:root{--bg:#0f1419;--card:#1a2028;--fg:#e6e9ec;--muted:#8b98a5;--line:#2a333d;--br:#2e7d32;--us:#0b5394;--warn:#b8860b;--err:#a33;--ok:#2e7d32}
*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}
a{color:#6bb3ff}code{background:#0009;padding:1px 5px;border-radius:4px;font-size:12px}
.muted{color:var(--muted)}
header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--card)}
header h1{font-size:18px;margin:0}.who{font-size:13px;color:var(--muted)}
.tabs{display:flex;gap:6px;padding:12px 20px 0;flex-wrap:wrap}
.tab{background:var(--card);color:var(--fg);border:1px solid var(--line);padding:8px 16px;border-radius:8px 8px 0 0;cursor:pointer}
.tab.active{background:#243}.tab:hover{border-color:#456}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.actions{display:flex;gap:10px;align-items:center}
select,button{background:#243040;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:8px 12px;font-size:13px}
button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:hover:not(:disabled){border-color:#68f}
button.danger{background:#5a1e1e;border-color:#833}button.danger:hover{background:#772}
button.ghost{background:transparent}
.summary{font-size:13px}
.pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px}
.pill.only_br{background:#0b539433;color:#9cf}.pill.only_us{background:#5a1e1e33;color:#f9a}
.pill.divergent{background:#b8860b33;color:#fd6}.pill.identical{background:#2e7d3233;color:#9e9}
.pill.create{background:#2e7d32;color:#fff}.pill.alter{background:#b8860b;color:#000}
.diff{padding:16px 20px}.loading{color:var(--muted);padding:20px}
.difftable{width:100%;border-collapse:collapse}
.difftable th,.difftable td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
.difftable th{color:var(--muted);font-weight:600;font-size:12px}
.row.identical{opacity:.5}.row:hover{background:#ffffff08}
.key{font-family:ui-monospace,monospace;font-size:13px}
.ok{color:#5c5}.no{color:#666}
.modal{position:fixed;inset:0;background:#000a;display:flex;align-items:center;justify-content:center;z-index:50}
.modal.hidden,.toast.hidden,.login .card~*{display:none}
.hidden{display:none}
.modal-card{background:var(--card);border:1px solid var(--line);border-radius:12px;max-width:720px;width:92%;max-height:80vh;overflow:auto;padding:20px}
.modal-card h2{margin:0 0 12px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.planlist{list-style:none;padding:0}.planlist>li{padding:8px 0;border-bottom:1px solid var(--line)}
.changes{margin:6px 0 0 12px;font-size:12px;color:var(--muted)}
.de{color:#f9a}.para{color:#9e9}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--card);border:1px solid var(--line);padding:12px 20px;border-radius:8px;z-index:60;max-width:80%}
.toast.ok{border-color:var(--ok)}.toast.warn{border-color:var(--warn)}.toast.err{border-color:var(--err)}
.err{color:#f9a}
body.login{display:flex;align-items:center;justify-content:center;height:100vh}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:32px;width:320px;display:flex;flex-direction:column;gap:12px}
.login-card h1{margin:0}.login-card input{background:#243040;border:1px solid var(--line);color:var(--fg);padding:10px;border-radius:6px}
.login-card button{background:#243;padding:10px}
.okmsg{color:#9e9;background:#2e7d3222;border:1px solid var(--ok);padding:8px 10px;border-radius:6px;font-size:13px}
