/* Page-level CSS derived from tokens. Identity overrides live in /identity.css. */
.hero{padding:40px 0 16px}
.hero h1{font-size:var(--text-2xl);margin:0 0 12px;max-width:20ch}
.hero p.lead{font-size:var(--text-lg);max-width:60ch;color:var(--muted);margin:0 0 24px}
.drop{border:2px dashed var(--line);background:var(--surface);border-radius:var(--radius);padding:36px 20px;text-align:center;cursor:pointer;transition:border-color .15s}
.drop:hover,.drop.over,.drop:focus-within{border-color:var(--accent)}
.drop strong{display:block;font-size:var(--text-lg);margin-bottom:4px}
.drop input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.drop .btn{margin-top:14px}
.priv{font-size:14px;color:var(--muted);margin:10px 0 0}
.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:12px 0 6px}
.progress>span{display:block;height:100%;background:var(--accent);width:4%;transition:width .2s}
.accepted{margin:10px 0 0;padding-left:18px;font-size:15px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.stack>*+*{margin-top:16px}
.sec{margin-top:48px}
.sec h2{font-size:var(--text-xl);margin:0 0 12px}
.tag{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line);border-radius:99px;padding:2px 9px;color:var(--muted);background:var(--bg)}
.tag.sample{border-color:var(--warn);color:var(--warn)}
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}
.summary .card .label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.summary .card .big{font-family:var(--font-num);font-size:var(--text-xl);font-weight:700;margin-top:2px}
.summary .card.accent .big{color:var(--accent)}
.finding{margin:14px 0;padding:0}
.finding>.head{display:flex;gap:14px;padding:14px 16px;align-items:flex-start;flex-wrap:wrap}
.finding .rank{font-family:var(--font-num);font-size:22px;font-weight:700;color:var(--muted);min-width:2ch}
.finding .ttl{flex:1;min-width:200px}
.finding .ttl h3{margin:0 0 4px;font-size:18px}
.finding .amt{font-family:var(--font-num);font-size:22px;font-weight:700;color:var(--accent);text-align:right;white-space:nowrap}
.finding .amt small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:12px;border:1px solid var(--line);border-radius:99px;padding:1px 9px;color:var(--muted)}
.chip.high{border-color:var(--good);color:var(--good)} .chip.medium{border-color:var(--warn);color:var(--warn)} .chip.low{border-color:var(--crit);color:var(--crit)}
.finding .body{border-top:1px solid var(--line);padding:4px 16px 16px}
.finding h4{margin:16px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.finding ul,.finding ol{margin:0;padding-left:20px}
.finding li+li{margin-top:4px}
.math{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}
.math .formula{font-family:var(--font-num);font-size:14px;overflow-wrap:anywhere}
.math table{width:100%;border-collapse:collapse;margin-top:8px;font-size:14px}
.math th,.math td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.math td.money{text-align:right}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-top:6px}
.tabs button{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:6px 12px;font-weight:600}
.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}
pre.cli{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;overflow-x:auto;font-family:var(--font-num);font-size:13px;margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.evid{width:100%;border-collapse:collapse;font-size:14px}
.evid th,.evid td{padding:4px 6px;border-bottom:1px solid var(--line);text-align:left}
.evid .money{text-align:right}
.locked{opacity:.95}
.locked .head{align-items:center}
.cta-lock{padding:16px;text-align:center;border:1px dashed var(--accent);border-radius:var(--radius);margin:16px 0}
.statusbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.statusbar select,.statusbar input{width:auto}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:20px 0}
.plan{display:flex;flex-direction:column;gap:8px}
.plan .price{font-family:var(--font-num);font-size:var(--text-xl);font-weight:700}
.plan ul{padding-left:18px;margin:0;flex:1}
.plan.cur{border-color:var(--accent)}
.prose{max-width:70ch}
.prose h2{margin-top:36px}
.prose code,code.inline{font-family:var(--font-num);font-size:.92em;background:var(--bg);padding:1px 5px;border-radius:4px}
.form-row{display:grid;gap:4px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.steps-list{counter-reset:s;list-style:none;padding:0}
.steps-list>li{counter-increment:s;position:relative;padding:0 0 14px 40px}
.steps-list>li::before{content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:14px}
.pmf{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:480px){.hero h1{font-size:30px}.finding .amt{text-align:left}}
