:root{--bg:#0b0c10;--card:#151823;--fg:#e8e9ef;--muted:#a7adbf;--accent:#6ee7ff;--line:#262a3a;--ok:#4ade80;--warn:#fbbf24;--bad:#fb7185}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:var(--bg);color:var(--fg)}
header{padding:16px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0b0c10,#0b0c10 60%,#0e1120)}
.top{display:flex;gap:12px;align-items:center;justify-content:space-between}
h1{margin:0 0 6px;font-size:18px}
.sub{margin:0;color:var(--muted);font-size:12px}
.pill{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px;color:var(--muted)}
main{max-width:860px;margin:0 auto;padding:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}
h2{margin:0;font-size:15px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.between{justify-content:space-between}
button,a{border-radius:12px;border:1px solid var(--line);padding:10px 12px;font-size:14px}
button{background:var(--accent);color:#081018;border-color:transparent;font-weight:800}
button.secondary{background:transparent;color:var(--fg);border-color:var(--line);font-weight:650}
button.ghost{background:transparent;color:var(--muted);border-color:transparent}
button:disabled{opacity:.45}
.small{font-size:12px;color:var(--muted)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
textarea{width:100%;margin-top:8px;background:#0f1220;color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:10px}
details>summary{cursor:pointer;color:var(--fg);margin-top:10px}
.toggle{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted);font-size:12px}
.toggle input{accent-color:var(--accent)}
.progressBox{margin-top:10px;border:1px dashed var(--line);border-radius:14px;padding:12px}
.big{display:flex;align-items:baseline;gap:8px}
.bigNum{font-size:44px;font-weight:900;letter-spacing:-.02em}
.bigDen{font-size:18px;color:var(--muted);font-weight:800}
.metaLine{display:grid;grid-template-columns:1fr;gap:6px;margin-top:6px}
.metaLine .k{color:var(--muted);font-size:11px;margin-right:6px}
.readerWrap{margin-top:12px}
.hidden{display:none}
.readerShell{position:relative;display:inline-block;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
#reader{width:min(96vw,420px)}
.overlayHud{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:10px}
.hudRow{display:flex;justify-content:space-between;gap:8px}
.hudPill{background:rgba(0,0,0,.55);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 10px;font-size:12px}
.hudHint{background:rgba(0,0,0,.45);border-radius:12px;padding:8px 10px;font-size:11px;color:var(--muted)}
#download{background:var(--accent);color:#081018;text-decoration:none;border-color:transparent;font-weight:900}
code{background:#0f1220;border:1px solid var(--line);border-radius:8px;padding:1px 6px}
.toast{margin-top:10px;border-radius:14px;border:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:2px}
.toast.ok{border-color:rgba(74,222,128,.35)}
.toast.warn{border-color:rgba(251,191,36,.35)}
.toast.bad{border-color:rgba(251,113,133,.35)}
.toastTitle{font-weight:900}
.toastSub{font-size:12px;color:var(--muted)}
.log{margin-top:10px;border:1px solid var(--line);border-radius:12px;padding:10px;max-height:180px;overflow:auto;background:#0f1220;color:var(--muted);font-size:12px}
