:root{--font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--bg: #ececec;--bg-content: #ffffff;--bg-titlebar: rgba(236, 236, 236, .72);--bg-toolbar: rgba(246, 246, 246, .78);--bg-sidebar: #f4f4f4;--fg: #1d1d1f;--fg-muted: #6b6b70;--fg-faint: #a1a1a6;--border: rgba(0, 0, 0, .1);--border-strong: rgba(0, 0, 0, .18);--hairline: rgba(0, 0, 0, .06);--accent: #007aff;--accent-soft: rgba(0, 122, 255, .14);--add-bg: #e8f5ec;--add-fg: #1f7a3a;--add-strong: #b9e3c5;--del-bg: #fdecec;--del-fg: #b3261e;--del-strong: #f4c2c1;--rep-bg: #fff7e0;--rep-strong: #f6d97a;--traffic-red: #ff5f57;--traffic-yellow: #febc2e;--traffic-green: #28c840;--row-h: 22px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #1e1e1e;--bg-content: #1e1e1e;--bg-titlebar: rgba(46, 46, 46, .72);--bg-toolbar: rgba(40, 40, 40, .78);--bg-sidebar: #252526;--fg: #f5f5f7;--fg-muted: #a1a1a6;--fg-faint: #6e6e73;--border: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .22);--hairline: rgba(255, 255, 255, .06);--accent-soft: rgba(10, 132, 255, .22);--add-bg: rgba(48, 209, 88, .14);--add-fg: #5dd28c;--add-strong: rgba(48, 209, 88, .32);--del-bg: rgba(255, 69, 58, .16);--del-fg: #ff7b73;--del-strong: rgba(255, 69, 58, .34);--rep-bg: rgba(255, 214, 10, .12);--rep-strong: rgba(255, 214, 10, .3)}}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%}body{font-family:var(--font-ui);font-size:13px;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;color:inherit}.seg{display:inline-flex;background:#0000000d;border:1px solid var(--border);border-radius:6px;padding:1px;height:22px}@media (prefers-color-scheme: dark){.seg{background:#ffffff0f}}.seg button{border:0;background:transparent;padding:0 10px;font-size:12px;border-radius:5px;color:var(--fg);cursor:pointer;height:100%}.seg button.active{background:var(--bg-content);box-shadow:0 1px 1px #0000000f,0 0 0 .5px var(--border-strong)}.btn{height:22px;padding:0 10px;border-radius:6px;border:1px solid var(--border-strong);background:linear-gradient(to bottom,#fff,#f3f3f3);font-size:12px;cursor:pointer;color:var(--fg)}.btn:hover{background:linear-gradient(to bottom,#fafafa,#ececec)}.btn.primary{background:var(--accent);border-color:#0000002e;color:#fff}.btn.primary:hover{filter:brightness(1.05)}@media (prefers-color-scheme: dark){.btn{background:#3a3a3c;border-color:#ffffff2e}.btn:hover{background:#48484a}}.app{display:flex;flex-direction:column;height:100%;background:var(--bg-content)}.app .content{flex:1;min-height:0}.titlebar{flex:0 0 38px;display:flex;align-items:center;padding:0 12px;background:var(--bg-titlebar);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--hairline);user-select:none;position:relative}.titlebar .title{position:absolute;left:50%;transform:translate(-50%);font-size:13px;font-weight:600;color:var(--fg)}.toolbar{flex:0 0 44px;display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--bg-toolbar);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border)}.toolbar .spacer{flex:1}.toolbar .stats{font-size:11px;color:var(--fg-muted);display:flex;gap:10px;align-items:center}.stat-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;font-size:11px;font-variant-numeric:tabular-nums}.stat-pill.add{background:var(--add-bg);color:var(--add-fg)}.stat-pill.del{background:var(--del-bg);color:var(--del-fg)}.stat-pill.rep{background:var(--rep-bg);color:var(--fg)}.statusbar{flex:0 0 22px;display:flex;align-items:center;padding:0 10px;background:var(--bg-toolbar);border-top:1px solid var(--border);font-size:11px;color:var(--fg-muted);gap:12px}.statusbar a{color:var(--accent);text-decoration:none}.statusbar a:hover{text-decoration:underline}.empty{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:100%;gap:1px;background:var(--border)}.drop{background:var(--bg-content);display:flex;flex-direction:column;position:relative;min-height:0}.drop.hover{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-8px}.drop-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--hairline);background:var(--bg-sidebar);font-size:12px}.drop-header .slot-tag{text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:600;color:var(--fg-muted)}.drop-header .file-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;font-family:var(--font-mono)}.drop-header .file-name{font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.drop-header .line-count{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:11px}.drop-header .spacer{flex:1}.drop-header .file-picker{height:22px;font:11px var(--font-ui);border:1px solid var(--border-strong);border-radius:5px;background:var(--bg-content);color:var(--fg);padding:0 4px;max-width:140px}.drop-header .iconbtn{width:22px;height:22px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--fg-muted);cursor:pointer;font-size:11px;display:inline-flex;align-items:center;justify-content:center}.drop-header .iconbtn:hover{background:var(--del-bg);color:var(--del-fg);border-color:var(--del-strong)}.drop-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;padding:24px;text-align:center}.drop-empty h2{margin:0;font-size:14px;font-weight:600}.drop-empty p{margin:0;font-size:12px;color:var(--fg-muted)}.drop-empty .hint{font-size:11px}.drop-empty .hint a{color:var(--accent);text-decoration:none;font-family:var(--font-mono);font-weight:600}.drop-empty .hint a:hover{text-decoration:underline}.drop-preview{flex:1;display:flex;flex-direction:column;gap:10px;padding:12px;min-height:0}.drop-preview pre{flex:1;margin:0;padding:10px 12px;background:var(--bg);border:1px solid var(--hairline);border-radius:6px;font:11px / 1.5 var(--font-mono);color:var(--fg-muted);overflow:auto;white-space:pre-wrap;word-break:break-word;max-height:100%}.drop-preview .hint{margin:0;font-size:11px;color:var(--fg-faint)}.drop-preview .btn{align-self:flex-start}.drop-paste{flex:1;display:flex;flex-direction:column;gap:10px;padding:12px;min-height:0}.drop-paste textarea{flex:1;font:12px var(--font-mono);resize:none;padding:10px 12px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-content);color:var(--fg);min-height:0}.drop-paste textarea:focus{outline:2px solid var(--accent);outline-offset:-2px}.row-actions{display:flex;align-items:center;gap:8px}.row-actions .spacer{flex:1}.row-actions .hint{font-size:11px;color:var(--fg-faint);margin:0}.toolbar .slot-pick{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--fg-muted)}.toolbar .slot-pick label{text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:600}.toolbar .slot-pick select{height:22px;font:11px var(--font-ui);border:1px solid var(--border-strong);border-radius:5px;background:var(--bg-content);color:var(--fg);padding:0 4px;max-width:160px}.toolbar .btn.swap{font-size:14px;padding:0 8px}.toolbar .toggle{display:inline-flex;align-items:center;gap:5px;height:22px;line-height:1;font-size:11px;color:var(--fg-muted);user-select:none;cursor:pointer}.toolbar .toggle input[type=checkbox]{margin:0;cursor:pointer;vertical-align:middle;flex-shrink:0}.toolbar .ctx-input{display:inline-flex;align-items:center;gap:5px;height:22px;line-height:1;font-size:11px;color:var(--fg-muted)}.toolbar .ctx-input input[type=number]{width:56px;height:22px;box-sizing:border-box;font:11px var(--font-mono);line-height:1;border:1px solid var(--border-strong);border-radius:5px;background:var(--bg-content);color:var(--fg);padding:0 4px;text-align:right}.filelib{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-sidebar);border-bottom:1px solid var(--hairline);overflow-x:auto;white-space:nowrap}.filelib .label{text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:600;color:var(--fg-muted);margin-right:4px}.filelib .chip{display:inline-flex;align-items:center;gap:6px;padding:3px 6px 3px 4px;background:var(--bg-content);border:1px solid var(--border);border-radius:999px;font-size:11px;color:var(--fg)}.filelib .chip.in-left,.filelib .chip.in-right{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.filelib .chip.in-left.in-right{border-color:var(--rep-strong)}.filelib .badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-size:10px;font-weight:700;font-family:var(--font-mono)}.filelib .name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filelib .lines{color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:10px}.filelib .slotbtn{width:18px;height:18px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--fg-muted);font-size:10px;font-weight:600;cursor:pointer;font-family:var(--font-mono)}.filelib .slotbtn:hover{background:var(--accent-soft);color:var(--accent)}.filelib .slotbtn.on{background:var(--accent);color:#fff;border-color:var(--accent)}.filelib .x{width:18px;height:18px;border-radius:50%;border:0;background:transparent;color:var(--fg-faint);cursor:pointer;font-size:10px}.filelib .x:hover{background:var(--del-bg);color:var(--del-fg)}.filelib .add-btn{margin-left:4px}.label-bar .file-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;font-family:var(--font-mono);margin-right:4px}.diff{display:grid;grid-template-columns:1fr 1fr;height:100%;overflow:hidden;background:var(--bg-content);position:relative}.diff.unified{grid-template-columns:1fr}.diff .pane{position:relative;overflow:auto;font:12px / var(--row-h) var(--font-mono);border-right:1px solid var(--border)}.diff .pane:last-child{border-right:0}.viewport{position:relative;width:100%}.row{position:absolute;left:0;right:0;height:var(--row-h);display:grid;grid-template-columns:56px 14px 1fr;white-space:pre}.row .gutter{text-align:right;padding-right:8px;color:var(--fg-faint);font-variant-numeric:tabular-nums;user-select:none;background:var(--bg-content)}.row .marker{text-align:center;color:var(--fg-faint);user-select:none;font-weight:600}.row .text{padding-left:6px;overflow:hidden}.row.add{background:var(--add-bg)}.row.add .marker{color:var(--add-fg)}.row.del{background:var(--del-bg)}.row.del .marker{color:var(--del-fg)}.row.rep{background:var(--rep-bg)}.row.pad{background:repeating-linear-gradient(-45deg,transparent,transparent 6px,var(--hairline) 6px,var(--hairline) 12px)}.row .text .seg-add{background:var(--add-strong);border-radius:2px}.row .text .seg-del{background:var(--del-strong);border-radius:2px;text-decoration:line-through;text-decoration-color:var(--del-fg)}.row.unified-hunk{background:var(--accent-soft);color:var(--fg-muted);font-style:italic}.row.unified-hunk .gutter,.row.unified-hunk .marker,.row.unified-hunk .text{background:transparent}.label-bar{display:flex;align-items:center;height:22px;padding:0 10px;font-size:11px;color:var(--fg-muted);background:var(--bg-sidebar);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}
