:root{color-scheme:light;--bg: #f6f7f9;--surface: #ffffff;--surface-muted: #eef2f6;--border: #d9e0e8;--border-strong: #b9c5d2;--text: #17212b;--muted: #607080;--accent: #0f766e;--accent-strong: #115e59;--accent-soft: #d9f3ef;--danger: #b42318;--danger-soft: #fee4e2;--warning: #b54708;--warning-soft: #fff2d6;--success: #067647;--success-soft: #dcfae6;--info: #175cd3;--info-soft: #dbeafe;--shadow: 0 18px 50px rgba(20, 34, 48, .1);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.4rem;padding:0 .85rem;transition:border-color .16s ease,background .16s ease,color .16s ease}button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}button:disabled{cursor:not-allowed;opacity:.48}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:.85rem}.brand-mark{width:2.5rem;height:2.5rem;border-radius:8px;display:grid;place-items:center;background:#12343b;color:#fff}h1,h2,p{margin:0}h1{font-size:1.15rem;line-height:1.2}.brand p,.panel-header p{color:var(--muted);font-size:.88rem;margin-top:.18rem}.privacy-pill{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--border);background:var(--success-soft);color:var(--success);padding:.5rem .75rem;border-radius:999px;font-size:.86rem;white-space:nowrap}.workspace{width:min(1560px,calc(100vw - 2rem));margin:1rem auto;display:flex;flex-direction:column;gap:1rem}.tool-tabs{display:inline-flex;align-self:flex-start;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:.25rem;box-shadow:0 8px 30px #1422300f}.tool-tabs button{border:0;min-height:2.35rem}.tool-tabs button.active{background:#12343b;color:#fff}.tool-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow);min-width:0}.panel-header{min-height:74px;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--border);background:#fbfcfd}.panel-header h2{font-size:.98rem}.panel-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.icon-button{width:2.35rem;padding:0}.icon-button.danger:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.code-editor{display:flex;height:56vh;min-height:480px;max-height:760px;overflow:hidden;resize:vertical;background:#fcfdff}.code-editor.compact{height:34vh;min-height:300px}.ce-gutter{width:3.5rem;flex-shrink:0;background:#f3f5f8;border-right:1px solid var(--border);overflow:hidden;position:relative}.ce-line-nums{padding:1rem 0;will-change:transform}.ce-line-num{height:1.395rem;display:flex;align-items:center;justify-content:flex-end;padding-right:.6rem;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.78rem;color:#94a3b8;-webkit-user-select:none;user-select:none;transition:color .1s}.ce-line-num.error{color:var(--danger);font-weight:700}.ce-body{position:relative;flex:1;overflow:hidden;min-width:0}.ce-highlight-clip{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.ce-highlights{padding-top:1rem;will-change:transform}.ce-row{height:1.395rem}.ce-row.error{background:#b4231814}.ce-textarea{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:1rem;border:0;outline:none;resize:none;background:transparent;color:#10202a;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9rem;line-height:1.55;-moz-tab-size:2;tab-size:2;z-index:1;caret-color:var(--accent)}.ce-textarea.output{background:#f8fafceb;cursor:default}.command-bar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 8px 30px #1422300f}.commands{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-strong);color:#fff}.status{display:flex;align-items:center;gap:.5rem;min-width:0;color:var(--muted);font-size:.9rem}.status span{overflow-wrap:anywhere}.status.success{color:var(--success)}.status.error{color:var(--danger)}.select-control,.checkbox-control{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.86rem;white-space:nowrap}.select-control select{border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);min-height:2.25rem;padding:0 .55rem}.checkbox-control input{accent-color:var(--accent)}.diff-layout{display:flex;flex-direction:column;gap:1rem}.diff-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.diff-results{display:flex;flex-direction:column;gap:1rem}.diff-command-bar{margin:0}.summary-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.metric{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.85rem;display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.metric strong{font-size:1.45rem}.metric span{color:var(--muted);font-size:.86rem}.metric.added strong{color:var(--success)}.metric.removed strong{color:var(--danger)}.metric.changed strong{color:var(--warning)}.metric.same strong{color:var(--info)}.diff-view{border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);overflow:auto;max-height:60vh;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.84rem}.dv-header{display:flex;position:sticky;top:0;z-index:2;background:#f3f5f8;border-bottom:2px solid var(--border)}.dv-header-label{flex:1;padding:.4rem 1rem;font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dv-header-label+.dv-header-label{border-left:2px solid var(--border)}.dv-row{display:flex;min-width:min-content;border-bottom:1px solid #edf1f5}.dv-row:last-child{border-bottom:none}.dv-cell{flex:1 1 0;display:flex;align-items:stretch;min-width:0}.dv-cell+.dv-cell{border-left:2px solid var(--border)}.dv-num{width:3.5rem;flex-shrink:0;text-align:right;padding:.22rem .5rem;color:#94a3b8;background:#f3f5f8;border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;line-height:1.55}.dv-sign{width:1.4rem;flex-shrink:0;text-align:center;padding:.22rem 0;font-weight:700;line-height:1.55;-webkit-user-select:none;user-select:none}.dv-text{padding:.22rem .6rem;white-space:pre;flex:1;line-height:1.55}.dv-cell.del{background:#b423180d}.dv-cell.del .dv-num{background:#b423181f;color:var(--danger)}.dv-cell.del .dv-sign{color:var(--danger)}.dv-cell.del .dv-text{background:#b423180f}.dv-cell.add{background:#0676470d}.dv-cell.add .dv-num{background:#0676471f;color:var(--success)}.dv-cell.add .dv-sign{color:var(--success)}.dv-cell.add .dv-text{background:#0676470f}.dv-cell.empty{background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(0,0,0,.025) 3px,rgba(0,0,0,.025) 6px)}.empty-state{color:var(--muted);padding:1rem}@media(max-width:980px){.topbar{position:static;align-items:flex-start;flex-direction:column}.workspace{width:min(100vw - 1rem,900px)}.tool-grid,.diff-inputs,.summary-row{grid-template-columns:1fr}.code-editor{height:38vh;min-height:320px}.code-editor.compact{height:28vh;min-height:240px}.command-bar{align-items:flex-start;flex-direction:column}.commands{justify-content:flex-start}.dv-num{width:2.4rem}.dv-sign{width:1rem}}
