:root{--bg: #22262b;--bg-glow: #2d3238;--paper: #fdfdfb;--ink: #1c1f22;--muted: #6b7280;--line: #e3e5e2;--accent: #0f5f5c;--accent-soft: #e3efee;--warn: #9a6b00;--err: #a13333;--ok: #1c7a46;--radius: 8px;--mono: "SF Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--sans: "Avenir Next", "Segoe UI", system-ui, sans-serif;--head: #cfd4d9;--mast-border: #3a4046;--mast-mut: #9aa1a8;--hero: #f2f4f5;--tagline: #aab1b8;--rail-mut: #6d747b;--rail-on: #e8f4f3;--rail-done: #8fd0c9;--rail-warn: #e5c675;--uploads-bg: #f7f8f6;--err-bg: #f9e9e9;--warn-bg: #f7f0dd;--ok-bg: #e6f4ea;--input-bg: #fff}[data-theme=light]{--bg: #f2f4f3;--bg-glow: #ffffff;--paper: #ffffff;--ink: #1c1f22;--muted: #5b6470;--line: #d9dcd8;--accent: #0b4a48;--accent-soft: #dcefec;--warn: #8a5d00;--err: #a13333;--ok: #1c7a46;--head: #1c1f22;--mast-border: #d5d8d4;--mast-mut: #4b5563;--hero: #1c1f22;--tagline: #4b5563;--rail-mut: #6d747b;--rail-on: #1c1f22;--rail-done: #0f5f5c;--rail-warn: #8a5d00;--uploads-bg: #f4f5f3;--err-bg: #fbeaea;--warn-bg: #fbf3df;--ok-bg: #e3f3e8;--input-bg: #fff;--btn-ink: #fff}[data-theme=light] [data-logo-part=labs]{fill:#334155}[data-theme=light] [data-logo-part=mnemo]{fill:#8795ad}[data-theme=light] [data-logo-part=stroma]{fill:#0d0d1a}[data-theme=light] [data-logo-part=dot]{fill:#7e5490}*{box-sizing:border-box;margin:0}body{background:var(--bg);background-image:radial-gradient(circle at 50% -10%,var(--bg-glow, #2d3238) 0%,var(--bg) 60%);color:var(--ink);font:15px/1.55 var(--sans);min-height:100vh}.shell{max-width:720px;margin:0 auto;padding:28px 20px 60px}.mast{display:flex;justify-content:space-between;align-items:center;color:var(--head)}.brand{display:flex;align-items:center;height:20px;text-decoration:none}.brand svg{height:20px;width:auto}[data-logo-part=labs]{fill:#fff}[data-logo-part=mnemo]{fill:#9fb0cc}[data-logo-part=stroma]{fill:#6b7a8d}[data-logo-part=dot]{fill:#7e5490}.langs{display:flex;gap:6px}.lang{font-family:var(--mono);font-size:11px;padding:4px 8px;border-radius:4px;border:1px solid var(--mast-border);background:transparent;color:var(--mast-mut);cursor:pointer}.lang.on{border-color:var(--accent);color:var(--accent)}.lang:disabled{opacity:.45;cursor:default}.hero{margin:44px 0 26px;color:var(--hero)}.hero h1{font-size:30px;font-weight:650;letter-spacing:-.01em}.tagline{color:var(--tagline);margin-top:8px;max-width:46ch}.rail{display:flex;gap:0;list-style:none;padding:0;margin:0 0 18px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.rail li{flex:1;text-align:center;color:var(--rail-mut);padding:8px 0;position:relative;border-bottom:2px solid var(--mast-border)}.rail li.on{color:var(--rail-on);border-bottom-color:var(--accent)}.rail li.done{color:var(--rail-done);border-bottom-color:var(--accent)}.rail li.warn{color:var(--rail-warn);border-bottom-color:var(--warn)}.rail li.done:after{content:"✓";margin-left:6px}.panel{background:var(--paper);border-radius:var(--radius);box-shadow:0 1px #ffffff0f inset,0 24px 60px #00000059;padding:26px}.session{text-align:center;padding:26px 0}.timer{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;margin-bottom:14px}.timer b{color:var(--accent)}.field{display:block;margin-bottom:12px}.field span{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.field input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:6px;font:inherit;background:var(--input-bg);color:var(--ink)}.field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.primary{background:var(--accent);color:var(--btn-ink, #fff);border:0;border-radius:6px;padding:11px 18px;font:600 14px var(--sans);cursor:pointer}.primary:hover{filter:brightness(1.08)}.primary:disabled{opacity:.5;cursor:default}.primary.big{width:100%;padding:14px;margin-top:12px}.primary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.report{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.report h2{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.issues{list-style:none;padding:0;margin:10px 0 14px;display:grid;gap:6px}.issues li{font-size:13.5px;padding:8px 10px;border-radius:5px}.issues code{font-family:var(--mono);font-size:10.5px;opacity:.7;margin-right:8px}.issues .err{background:var(--err-bg);color:var(--err)}.issues .warn{background:var(--warn-bg);color:var(--warn)}.issues .ok{background:var(--accent-soft);color:var(--ok)}.stats{display:flex;gap:18px;flex-wrap:wrap;margin:0}.stats dt{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.stats dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}.uploads{margin-top:16px;background:var(--uploads-bg);border:1px dashed var(--line);border-radius:6px;padding:12px 14px}.uploads h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.uprow{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:14px}.uprow input[type=file]{font-size:12px}.uprow em{color:var(--accent);font-style:normal;font-size:12px}.go{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.row{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.grow{flex:1;min-width:220px}.format{border:1px solid var(--line);border-radius:6px;padding:6px 10px 10px;display:flex;gap:8px}.format legend{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 4px}.format label{padding:6px 12px;border-radius:4px;cursor:pointer;font-size:13px}.format label.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.format input{position:absolute;opacity:0}.status{margin-top:18px;padding:12px 14px;border-radius:6px;font-size:14px;background:var(--accent-soft);color:var(--accent)}.status.failed{background:var(--err-bg);color:var(--err)}.status.sent{background:var(--ok-bg);color:var(--ok)}.note{font-size:12.5px;color:var(--muted);margin:6px 0}.flash{margin-top:14px;font-size:13px;color:var(--warn)}.foot{text-align:center;color:var(--rail-mut);font-family:var(--mono);font-size:11px;margin-top:26px}@media (max-width: 520px){.panel{padding:18px}.row{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
