:root{--bg:#f2f5f8;--panel:#fff;--sunk:#e8edf3;--ink:#111822;--muted:#4e5c6e;--faint:#7e8c9e;--line:#dbe2ea;--accent:#14707f;--accent-ink:#fff;--deep:#0c1626;--warn:#b4453f;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0a1018;--panel:#121b28;--sunk:#0e1622;--ink:#e6edf6;--muted:#9bacc2;--faint:#6b7d95;--line:#223044;--accent:#4fc3d9;--accent-ink:#071019;--deep:#070e18;--warn:#e07a74;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.wrap{max-width:1040px;margin:0 auto;padding:28px 20px}.narrow{max-width:680px}.stack{display:grid;grid-gap:34px;gap:34px}.stack-sm{display:grid;grid-gap:12px;gap:12px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.baseline{align-items:baseline}.grow{flex:1 1}h1{font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.03em}h1,h2{margin:0}h2{font-size:1.2rem;letter-spacing:-.02em}p{margin:0}a{color:var(--accent)}.nav{background:var(--deep);position:-webkit-sticky;position:sticky;top:0;z-index:10}.nav .wrap{padding:12px 20px}.nav a{color:#aebfd4;text-decoration:none;font-size:.9rem}.logo{font-weight:700;color:#dce6f2!important;letter-spacing:-.02em}.logo em{font-style:normal;color:#ffea46}.kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;color:var(--accent)}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:.85rem}.mono{font-family:var(--mono)}.btn{display:inline-block;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:9px 16px;font:inherit;font-size:.9rem;cursor:pointer;text-decoration:none}.btn.go{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.wide{width:100%}.btn.danger{border-color:var(--warn);color:var(--warn)}.btn:disabled{opacity:.6;cursor:default}.grid{grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.card,.grid{display:grid}.card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:18px;grid-gap:9px;gap:9px;align-content:start;min-width:0}.card.carried{border-color:var(--accent)}.card.locked{opacity:.55}.cardtop{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.price{font-size:1.9rem;font-weight:600;letter-spacing:-.03em}.geno{font-size:1.05rem;display:flex;gap:10px;align-items:baseline}.geno .mono{font-weight:600;letter-spacing:.08em}.verdict{font-size:.84rem;color:var(--muted)}.card.carried .verdict{color:var(--accent);font-weight:600}.flag{font-size:.78rem;border-left:2px solid var(--line);padding-left:9px}.flag,.src{color:var(--faint)}.src{font-size:.68rem}.ticks{padding-left:18px;font-size:.9rem;grid-gap:6px;gap:6px}.steps,.ticks{margin:0;color:var(--muted);display:grid}.steps{padding-left:20px;grid-gap:9px;gap:9px}.dropzone{border:1.5px dashed var(--line);border-radius:12px;padding:24px;display:grid;grid-gap:10px;gap:10px;justify-items:start}.status{font-family:var(--mono);font-size:.8rem;color:var(--accent)}.err{color:var(--warn);font-size:.85rem}.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl td,.tbl th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}.tbl .r{text-align:right}footer{display:flex;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);color:var(--faint);font-size:.85rem}:where(a,button,input,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.consent{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:14px 16px;display:grid;grid-gap:8px;gap:8px;background:var(--panel)}.consent label{display:block;font-size:.92rem;cursor:pointer}.dropzone.disabled{opacity:.5}.dropzone.disabled input{cursor:not-allowed}