:root{
  --surface-1:#1c1c20; --surface-2:#232329;
  --border:#313138; --border-strong:#45454d;
  --text-primary:#ececef; --text-secondary:#a8a8b0; --text-muted:#7c7c85;
  --text-success:#59c58f; --text-danger:#e2726e; --text-accent:#7fb3f0; --text-warning:#eec27a;
  --bg-accent:rgba(55,138,221,.18); --bg-success:rgba(89,197,143,.15); --bg-warning:rgba(239,159,39,.13);
  --border-accent:#378add; --fill-accent:#378add; --fill-control:rgba(255,255,255,.08);
  --font-mono:ui-monospace,"IBM Plex Mono",Menlo,monospace;
}
body{background:#131316;color:var(--text-primary);font-family:"Space Grotesk",-apple-system,system-ui,sans-serif;margin:0;padding:32px 16px;display:flex;justify-content:center}
.stage{width:680px;max-width:100%}
#app{background:var(--surface-2);border:0.5px solid var(--border);border-radius:12px;padding:16px 18px}
button{font:inherit;color:inherit;background:transparent;border:0.5px solid var(--border-strong);border-radius:6px;cursor:pointer;padding:6px 10px}
input{font:inherit;color:var(--text-primary);background:var(--surface-1);border:0.5px solid var(--border-strong);border-radius:6px;padding:8px 10px}
a{color:var(--text-accent)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.hdr{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.hdr .brand{font-family:var(--font-mono);font-size:16px;font-weight:500}
.hdr .tag{font-size:12px;color:var(--text-muted)}
.hdr .meth{margin-left:auto;font-size:12px;color:var(--text-muted)}
.loginlink{border:none;background:none;font-size:12px;color:var(--text-muted);padding:0;cursor:pointer}
.loginbar{display:none;gap:10px;align-items:center;padding:8px 12px;background:var(--surface-1);border-radius:8px;margin-bottom:8px;flex-wrap:wrap}

.console{background:var(--surface-1);border-radius:8px;padding:10px 14px;margin-bottom:12px}
.pline{font-size:12px;color:var(--text-secondary);margin:0;line-height:1.6}
.chargebar{display:flex;align-items:center;gap:12px;border-top:0.5px solid var(--border);margin-top:10px;padding-top:10px}
.track{position:relative;flex:1;height:8px;background:var(--border);border-radius:4px;min-width:80px;display:inline-block}
#tfill{position:absolute;left:0;top:0;height:8px;width:0;background:var(--fill-accent);border-radius:4px;transition:width .3s}
.clentry{font-size:12px;padding:2px 0;color:var(--text-secondary)}
.clv{font-family:var(--font-mono);font-size:11px;color:var(--text-accent);margin-right:6px;display:inline-block;min-width:20px}

#toast{display:none;background:var(--bg-success);color:var(--text-success);font-size:12px;padding:6px 12px;border-radius:6px;margin-bottom:8px}
#saveBar{padding:10px 12px;background:var(--bg-accent);border-radius:8px;margin-bottom:8px}
.addrow{display:flex;gap:8px;margin-top:10px;padding-top:12px;border-top:0.5px solid var(--border)}
.loading{font-size:12px;font-family:var(--font-mono);color:var(--text-muted);padding:24px 4px}

.chip{font-size:12px;padding:4px 12px;border:0.5px solid var(--border-strong);border-radius:999px;cursor:pointer;background:transparent;color:var(--text-secondary)}
.ib{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:0.5px solid var(--border-strong);border-radius:6px;background:transparent;cursor:pointer;padding:0;font-size:13px}
.row{display:flex;gap:10px;padding:8px 4px;border-top:0.5px solid var(--border);align-items:flex-start;transition:background .6s}
.row:hover .acts{opacity:1}
.acts{opacity:0;display:flex;gap:6px;margin-left:auto;transition:opacity .15s;flex:none}
.urow .acts{opacity:1}
.tm{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:nowrap;margin-top:3px;width:46px;flex:none}
.hl{font-size:14px;font-weight:500;margin:0;line-height:1.45;color:var(--text-primary)}
.hl a{color:inherit;text-decoration:none}
.hl a:hover{text-decoration:underline}
.why{font-size:12px;color:var(--text-muted);margin:3px 0 0}
.dim .hl{color:var(--text-muted);font-weight:400}
.srcs{display:inline-flex;align-items:center;color:var(--text-muted);font-size:11px;font-family:var(--font-mono);vertical-align:bottom;margin-left:8px}
.why > .srcs:first-child{margin-left:0}
.mini{width:16px;height:16px;border-radius:50%;background:var(--fill-control);border:1.5px solid var(--surface-2);display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-secondary);flex:none}
.srcs .nm{margin-left:5px}
.rel{display:inline-flex;align-items:center;margin-left:8px;padding:1px 9px;border:0.5px solid var(--border-strong);border-radius:999px;color:var(--text-secondary);font-size:11px;font-family:var(--font-mono);white-space:nowrap}
.rel+.rel{margin-left:4px}
.unsure{display:inline-flex;align-items:center;gap:4px;color:var(--text-warning);font-size:11px;font-family:var(--font-mono)}
.unsure + .srcs{margin-left:8px}
.ddiv{display:flex;align-items:center;gap:10px;margin:8px 0 2px}
.ddiv div{flex:1;height:0.5px;background:var(--border)}
.ddiv span{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}
.fdiv{display:flex;align-items:center;gap:10px;margin:8px 0 2px;padding-left:4px}
.fdiv span{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}
.fdiv div{flex:1;height:0.5px;background:var(--border)}
@keyframes rdy{0%,100%{opacity:1}50%{opacity:.7}}
.ready{animation:rdy 1.6s ease-in-out infinite}
