:root{--paper: #eef1f4;--card: #ffffff;--ink: #16211f;--muted: #5c6b68;--line: #d7dde0;--accent: #0b6b5d;--accent-soft: #e2f1ed;--warn: #b4540a;--warn-soft: #fdf1e4;--danger: #a3352c;--danger-soft: #faeceb;--mono: "SF Mono", "Cascadia Mono", "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 -apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top{display:flex;align-items:baseline;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--card)}.wordmark{font-weight:700;letter-spacing:.02em}.wordmark small{font-weight:400;color:var(--muted);margin-left:8px}.top .who{font-family:var(--mono);font-size:13px;color:var(--muted)}.top .who button{margin-left:12px}.auth-wrap{min-height:calc(100vh - 60px);display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;padding:28px}.auth-card h1{margin:0 0 4px;font-size:20px}.auth-card .sub{margin:0 0 20px;color:var(--muted);font-size:13px}label{display:block;margin:14px 0 4px;font-size:13px;color:var(--muted)}input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:4px;font:inherit;background:var(--card);color:var(--ink)}button{font:inherit;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:#fff;padding:9px 16px;cursor:pointer}button.quiet{background:transparent;color:var(--accent)}button:disabled{opacity:.55;cursor:default}.auth-card button[type=submit]{width:100%;margin-top:18px}.form-links{margin-top:14px;display:flex;justify-content:space-between;font-size:13px}.notice{border-radius:4px;padding:10px 12px;margin:14px 0 0;font-size:13px}.notice.ok{background:var(--accent-soft);color:var(--accent)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.err{background:var(--danger-soft);color:var(--danger)}.page{max-width:720px;margin:0 auto;padding:20px 16px 48px}.banner{display:flex;align-items:center;gap:12px;justify-content:space-between;background:var(--warn-soft);color:var(--warn);border:1px solid #ecd7bd;border-radius:6px;padding:10px 14px;margin-bottom:20px;font-size:13px}.banner button{border-color:var(--warn);background:transparent;color:var(--warn);white-space:nowrap}.portal{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:18px 20px;margin-bottom:14px}.portal .head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.portal h2{margin:0;font-size:16px}.chip{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--accent-soft);border-radius:3px;padding:3px 8px}.figures{display:flex;gap:28px;margin:14px 0 4px}.figure .num{font-family:var(--mono);font-size:20px;font-weight:600}.figure .cap{font-size:12px;color:var(--muted)}.tape{display:flex;gap:2px;margin:12px 0 6px;height:8px}.tape i{flex:1;background:var(--line);border-radius:1px}.tape i.done{background:var(--accent)}.tape i.live{background:var(--accent);opacity:.45;animation:pulse 1.2s ease-in-out infinite alternate}@keyframes pulse{to{opacity:1}}@media (prefers-reduced-motion: reduce){.tape i.live{animation:none;opacity:.7}}.scanline{font-size:13px;color:var(--muted)}.scanline .mono{font-family:var(--mono)}.scanline .err{color:var(--danger)}.empty{text-align:center;color:var(--muted);padding:48px 0}
