:root{--accent: #3d5ce0;--accent-strong: #2f4bc4;--accent-soft: #eef2ff;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", sans-serif;--mono: "JetBrains Mono", "Cascadia Code", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--ease: cubic-bezier(.32, .72, 0, 1)}html[data-theme=light]{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f1f3f6;--surface-3: #e9ecf1;--border: #e5e8ee;--border-strong: #d3d8e2;--text: #101828;--muted: #667085;--faint: #98a2b3;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 16px rgba(16, 24, 40, .07);--ok: #15803d;--ok-soft: #ecfdf3;--danger: #c02525;--danger-soft: #fef3f2;--warn: #b45309;--add-bg: #ebf9f0;--add-strong: #b9f0cd;--del-bg: #fdeeee;--del-strong: #fbd0d0;--tok-key: #1d4ed8;--tok-str: #0f766e;--tok-num: #b45309;--tok-bool: #7c3aed;--tok-null: #94a3b8;--tok-comment: #94a3b8;--scrollbar: #cfd5df;color-scheme:light}html[data-theme=dark]{--bg: #0b0e14;--surface: #121722;--surface-2: #171d29;--surface-3: #1d2533;--border: #232b3a;--border-strong: #303b4f;--text: #e7ecf5;--muted: #96a0b5;--faint: #6b768c;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .45);--accent: #8098ff;--accent-strong: #9db0ff;--accent-soft: rgba(128, 152, 255, .12);--ok: #4ade80;--ok-soft: rgba(74, 222, 128, .1);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .1);--warn: #fbbf24;--add-bg: rgba(52, 211, 153, .1);--add-strong: rgba(52, 211, 153, .3);--del-bg: rgba(248, 113, 113, .1);--del-strong: rgba(248, 113, 113, .28);--tok-key: #93b4ff;--tok-str: #5eead4;--tok-num: #fbbf24;--tok-bool: #c4b5fd;--tok-null: #7b8499;--tok-comment: #6b768c;--scrollbar: #303b4f;color-scheme:dark}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:620;letter-spacing:-.015em;line-height:1.25}button{font-family:inherit}::selection{background:color-mix(in srgb,var(--accent) 25%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--scrollbar);border:3px solid transparent;border-radius:999px;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{border-width:2px}:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 65%,transparent);outline-offset:1px}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.topbar-inner{max-width:1680px;margin:0 auto;height:56px;padding:0 24px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:10px;flex:none;border-radius:var(--radius-sm)}.brand-mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:-.04em;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 35%,transparent)}html[data-theme=dark] .brand-mark{color:#0b0e14}.brand-name{font-size:14.5px;font-weight:650;letter-spacing:-.02em;white-space:nowrap}.brand-sub{color:var(--faint);font-size:12px;padding-left:10px;margin-left:2px;border-left:1px solid var(--border);white-space:nowrap}.nav{display:flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.nav-link{padding:4px 12px;border-radius:var(--radius-xs);font-size:12.5px;font-weight:500;color:var(--muted);white-space:nowrap;transition:color .15s var(--ease),background .15s var(--ease)}.nav-link:hover{color:var(--text)}.nav-link.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow-sm)}.topbar-side{margin-left:auto;display:flex;align-items:center;gap:12px}.local-note{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--faint);white-space:nowrap}.local-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 18%,transparent)}.icon-btn{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);cursor:pointer;transition:color .15s var(--ease),border-color .15s var(--ease)}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.icon-btn.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.icon-btn svg{width:15px;height:15px}.main{flex:1;min-height:0}.footer{padding:14px 24px 20px;text-align:center;font-size:11.5px;color:var(--faint)}.page{max-width:1680px;margin:0 auto;padding:22px 24px 40px;display:flex;flex-direction:column;gap:14px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.page-title{font-size:20px}.page-desc{margin:3px 0 0;font-size:12.5px;color:var(--muted);max-width:88ch}.page-head-side{display:flex;align-items:center;gap:8px;flex:none}.btn{height:30px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12.5px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}html[data-theme=dark] .btn.primary{color:#0b0e14}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.xs{height:24px;padding:0 8px;font-size:11.5px;border-radius:var(--radius-xs)}.btn.sm{height:26px;padding:0 10px;font-size:12px;border-radius:7px}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border-strong))}.btn.is-ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--border-strong))}.segmented{display:inline-flex;padding:2px;gap:1px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.segmented button{height:24px;padding:0 9px;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--muted);font-size:11.5px;font-weight:500;cursor:pointer}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow-sm)}.select{height:30px;padding:0 28px 0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2398a2b3' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--text);font-size:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.input{height:30px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12.5px;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.input::placeholder{color:var(--faint)}.switch{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:16px;margin:0;flex:none;border-radius:999px;background:var(--border-strong);position:relative;cursor:pointer;transition:background .18s var(--ease)}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .18s var(--ease)}.switch input:checked{background:var(--accent)}.switch input:checked:after{transform:translate(12px)}.switch:hover{color:var(--text)}.divider-v{width:1px;height:20px;background:var(--border);flex:none}.spacer{margin-left:auto}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.toolbar-label{font-size:11.5px;color:var(--faint);margin-left:2px}.toolbar-hint{font-size:11.5px;color:var(--faint)}.menu{position:relative;display:inline-flex}.menu-trigger{gap:5px}.menu-trigger.is-open{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.menu-caret{width:9px;height:6px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;opacity:.6}.menu-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:70;display:flex;flex-direction:column;gap:1px;min-width:184px;padding:5px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-md)}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:18px;height:30px;padding:0 9px;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--text);font-size:12.5px;text-align:left;white-space:nowrap;cursor:pointer}.menu-item:hover:not(:disabled){background:var(--surface-2)}.menu-item:disabled{color:var(--faint);cursor:not-allowed}.menu-item.active{color:var(--accent);font-weight:600}.menu-hint{color:var(--faint);font-family:var(--mono);font-size:11px}.menu-check{color:var(--accent);font-size:12px}.menu-sep{height:1px;margin:4px 6px;background:var(--border)}.panel{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{display:flex;align-items:center;gap:8px;height:40px;flex:none;padding:0 10px 0 12px;border-bottom:1px solid var(--border);background:var(--surface)}.panel-title{font-size:12.5px;font-weight:600;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.panel-meta{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-actions{margin-left:auto;display:flex;align-items:center;gap:1px;min-width:0}.panel-actions .btn{flex:none}.panel-body{min-height:0;flex:1;display:flex;flex-direction:column}.workbench{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;height:calc(100vh - 236px);min-height:494px;--code-size: 12.5px;--code-line: calc(var(--code-size) + 9.5px)}.workbench.is-full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;height:auto;min-height:0;padding:14px;overflow:auto;background:var(--bg)}.wt-col{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.wt-col>.panel{flex:1;min-height:0}.workbench.is-full .wt-col{height:auto;min-height:320px}.editor{position:relative;flex:1;min-height:0;display:flex;background:var(--surface)}.editor.is-over:after{content:"松开以载入文件";position:absolute;top:6px;right:6px;bottom:6px;left:6px;display:grid;place-items:center;border:1.5px dashed var(--accent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:12.5px;font-weight:600;z-index:2;pointer-events:none}.editor-gutter{flex:none;width:50px;padding:12px 8px 12px 0;overflow:hidden;text-align:right;font-family:var(--mono);font-size:calc(var(--code-size, 12.5px) - 1px);line-height:var(--code-line, 22px);color:var(--faint);background:var(--surface);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.editor-area{flex:1;min-width:0;padding:12px 14px;border:0;outline:0;resize:none;background:transparent;color:var(--text);font-family:var(--mono);font-size:var(--code-size, 12.5px);line-height:var(--code-line, 22px);white-space:pre;overflow:auto;-moz-tab-size:2;tab-size:2}.editor-area::placeholder{color:var(--faint)}.code-view{flex:1;min-height:0;margin:0;padding:12px 16px;overflow:auto;font-family:var(--mono);font-size:var(--code-size, 12.5px);line-height:var(--code-line, 22px);white-space:pre;-moz-tab-size:2;tab-size:2}.code-empty{flex:1;display:grid;place-items:center;padding:24px;text-align:center;color:var(--faint);font-size:12.5px;line-height:1.8}.code-empty strong{color:var(--muted);font-weight:600}.result-foot{flex:none;display:flex;flex-wrap:wrap;gap:2px 14px;padding:6px 12px;border-top:1px solid var(--border);background:var(--surface-2);font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.result-foot b{margin-right:4px;color:var(--muted);font-family:var(--mono);font-weight:600}.tk-key{color:var(--tok-key)}.tk-str{color:var(--tok-str)}.tk-num{color:var(--tok-num)}.tk-bool{color:var(--tok-bool)}.tk-null{color:var(--tok-null)}.tk-punc{color:var(--faint)}.tk-comment{color:var(--tok-comment);font-style:italic}.tabs{display:flex;gap:2px;margin-left:6px}.tab{height:26px;padding:0 10px;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.tab:hover{color:var(--text)}.tab.active{background:var(--surface-2);color:var(--text);font-weight:600}.tab:disabled{opacity:.4;cursor:not-allowed}.banner{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border:1px solid;border-radius:var(--radius-sm);font-size:12.5px;line-height:1.6}.banner-error{border-color:color-mix(in srgb,var(--danger) 30%,var(--border));background:var(--danger-soft);color:var(--danger)}.banner-ok{border-color:color-mix(in srgb,var(--ok) 30%,var(--border));background:var(--ok-soft);color:var(--ok)}.banner-warn{border-color:color-mix(in srgb,var(--warn) 30%,var(--border));background:color-mix(in srgb,var(--warn) 8%,var(--surface));color:var(--warn)}.banner-body{min-width:0;flex:1}.banner-title{font-weight:600}.banner-detail{margin-top:2px;color:color-mix(in srgb,currentColor 80%,var(--text))}.banner-snippet{margin:6px 0 0;padding:8px 10px;border-radius:var(--radius-xs);background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--text);font-family:var(--mono);font-size:11.5px;line-height:1.55;overflow:auto;white-space:pre}.banner-snippet .caret{color:var(--danger);font-weight:700}.stats{display:flex;flex-wrap:wrap;gap:6px}.stat{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);white-space:nowrap}.stat b{font-family:var(--mono);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.stat span{font-size:11.5px;color:var(--muted)}.stat.add b{color:var(--ok)}.stat.del b{color:var(--danger)}.stat.mod b{color:var(--warn)}.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11px;white-space:nowrap}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,var(--border));background:var(--ok-soft)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,var(--border));background:transparent}.badge.err{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--border));background:var(--danger-soft)}.empty{padding:44px 20px;text-align:center;color:var(--faint);font-size:12.5px}.empty-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:16px}.jtree{flex:1;min-height:0;overflow:auto;padding:8px 0 16px;font-family:var(--mono);font-size:var(--code-size, 12.5px);line-height:var(--code-line, 22px)}.jrow{position:relative;display:flex;align-items:center;gap:3px;min-height:var(--code-line, 22px);padding-right:74px;white-space:nowrap}.jrow:hover{background:var(--surface-2)}.jtoggle{width:16px;height:16px;flex:none;display:grid;place-items:center;border:0;border-radius:4px;background:transparent;color:var(--faint);font-size:9px;cursor:pointer}.jtoggle:hover{background:var(--surface-3);color:var(--text)}.jtoggle.is-leaf{visibility:hidden}.jcolon{color:var(--faint);margin-right:4px}.jsummary{color:var(--faint);font-size:11.5px}.jtype{margin-left:6px;padding:0 5px;border-radius:4px;background:var(--surface-2);color:var(--faint);font-family:var(--font);font-size:10px;line-height:16px}.jcopy{position:absolute;right:10px;top:3px;height:18px;padding:0 6px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--muted);font-family:var(--font);font-size:10px;opacity:0;cursor:pointer;transition:opacity .12s var(--ease)}.jrow:hover .jcopy{opacity:1}.jcopy:hover{color:var(--text);border-color:var(--border-strong)}.diff-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch}.diff-inputs .panel{height:248px}.swap-col{display:flex;align-items:center;justify-content:center}.swap-btn{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface);color:var(--muted);cursor:pointer;transition:color .15s var(--ease),transform .2s var(--ease),border-color .15s var(--ease)}.swap-btn:hover{color:var(--text);border-color:var(--accent);transform:rotate(180deg)}.swap-btn svg{width:14px;height:14px}.file-chip{display:inline-flex;align-items:center;gap:6px;max-width:220px;min-width:0;flex:0 1 auto;height:22px;padding:0 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11px}.file-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chip button{border:0;background:transparent;color:var(--faint);font-size:13px;line-height:1;padding:0;cursor:pointer}.file-chip button:hover{color:var(--danger)}.diff-options{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.result-bar{position:sticky;top:57px;z-index:30}.option-group{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.option-group>label{font-size:11.5px;color:var(--faint)}.diff-view{flex:none;height:clamp(320px,calc(100vh - 470px),760px);min-height:320px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);font-size:12.5px;line-height:22px;box-shadow:var(--shadow-sm)}.diff-rows{min-width:100%}.d-row{display:grid;grid-template-columns:46px minmax(0,1fr) 46px minmax(0,1fr);align-items:stretch}.d-row.uni{grid-template-columns:46px 46px 18px minmax(0,1fr)}.d-num{flex:none;padding:0 8px 0 0;text-align:right;color:var(--faint);background:var(--surface-2);border-right:1px solid var(--border);font-size:11px;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.d-code{min-width:0;padding:0 10px;white-space:pre-wrap;overflow-wrap:anywhere;-moz-tab-size:2;tab-size:2}.d-code.empty{background:var(--surface-2);padding:0}.d-row.add .d-code.right,.d-row.add .d-code.uni{background:var(--add-bg)}.d-row.del .d-code.left,.d-row.del .d-code.uni,.d-row.mod .d-code.left{background:var(--del-bg)}.d-row.mod .d-code.right{background:var(--add-bg)}.d-row.mod .d-code.uni{background:var(--surface-2)}.d-code .ins{background:var(--add-strong);border-radius:2px}.d-code .rm{background:var(--del-strong);border-radius:2px}.d-sign{text-align:center;color:var(--faint);background:var(--surface-2);font-size:11px;-webkit-user-select:none;user-select:none;border-right:1px solid var(--border)}.d-row.add .d-sign{color:var(--ok)}.d-row.del .d-sign{color:var(--danger)}.d-row.mod .d-sign{color:var(--warn)}.d-gap{display:flex;align-items:center;justify-content:center;gap:8px;height:26px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--muted);font-family:var(--font);font-size:11px}.d-gap button{height:18px;padding:0 8px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text);font-size:10.5px;cursor:pointer}.d-gap button:hover{border-color:var(--accent);color:var(--accent)}.d-head{display:grid;grid-template-columns:46px minmax(0,1fr) 46px minmax(0,1fr);position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--border);font-family:var(--font);font-size:11px;color:var(--muted)}.d-head>div{padding:5px 10px;border-right:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.d-head>div:first-child,.d-head>div:nth-child(3){background:var(--surface-2);padding:0}.d-head.uni{grid-template-columns:46px 46px 18px minmax(0,1fr)}.d-head.uni>div:nth-child(2),.d-head.uni>div:nth-child(3){background:var(--surface-2);padding:0}.diff-hl{animation:hl 1.2s var(--ease)}@keyframes hl{0%{background:color-mix(in srgb,var(--accent) 22%,transparent)}to{background:transparent}}.sem-view{display:flex;flex-direction:column;overflow:hidden;font-family:var(--font)}.sem-list{flex:1;overflow:auto;padding:0}.sem-row{display:grid;grid-template-columns:20px minmax(190px,.9fr) minmax(0,1.2fr) minmax(0,1.2fr);gap:10px;align-items:center;min-height:28px;padding:3px 14px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);font-size:12px}.sem-row:hover{background:var(--surface-2)}.sem-sign{font-family:var(--mono);font-size:13px;font-weight:700;text-align:center}.sem-row.add .sem-sign{color:var(--ok)}.sem-row.del .sem-sign{color:var(--danger)}.sem-row.change .sem-sign,.sem-row.type .sem-sign{color:var(--warn)}.sem-path{font-family:var(--mono);font-size:11.5px;color:var(--text);overflow-wrap:anywhere}.sem-val{font-family:var(--mono);font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sem-val.old{color:var(--danger);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--danger) 50%,transparent)}.sem-val.new{color:var(--ok)}.sem-head{display:grid;grid-template-columns:20px minmax(190px,.9fr) minmax(0,1.2fr) minmax(0,1.2fr);gap:10px;flex:none;padding:6px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);font-size:11px;color:var(--faint)}.kbd{display:inline-block;min-width:18px;padding:0 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);color:var(--muted);font-family:var(--mono);font-size:10px;line-height:16px;text-align:center}.muted{color:var(--muted)}.faint{color:var(--faint)}.mono{font-family:var(--mono)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:80;padding:8px 14px;border:1px solid var(--border-strong);border-radius:999px;background:var(--text);color:var(--bg);font-size:12px;box-shadow:var(--shadow-md);animation:toast-in .2s var(--ease)}.hint-line{margin:0;padding:0 2px;font-size:11.5px;color:var(--faint)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}}.fade-enter-active,.fade-leave-active{transition:opacity .18s var(--ease)}.fade-enter-from,.fade-leave-to{opacity:0}@media(max-width:1180px){.workbench{height:auto}.wt-col{height:578px}}@media(max-width:980px){.workbench{grid-template-columns:minmax(0,1fr)}.wt-col{height:498px}.result-bar{position:static}.diff-inputs{grid-template-columns:minmax(0,1fr)}.swap-col{height:32px}.swap-btn:hover{transform:rotate(90deg)}.brand-sub,.local-note{display:none}}@media(max-width:720px){.topbar-inner,.page{padding-left:14px;padding-right:14px}.topbar-inner{gap:12px}.page-head{flex-direction:column;align-items:flex-start}.page-head-side{width:100%;overflow:auto}.d-row{grid-template-columns:38px minmax(0,1fr) 38px minmax(0,1fr)}.d-row.uni{grid-template-columns:38px 38px 16px minmax(0,1fr)}.diff-inputs .panel{height:300px}.panel-meta{display:none}.file-chip{max-width:120px}.sem-row,.sem-head{grid-template-columns:18px minmax(120px,1fr) minmax(0,1fr)}.sem-row .sem-val.old,.sem-head span:nth-child(3){display:none}.sem-head span:nth-child(4):before{content:"值"}}
