:root{--bg:#f6f6f4;--surface:#fff;--text:#1c1c1a;--muted:#6b6b66;--border:#deded9;--accent:#2f5bd3;--accent-text:#fff;--accent-soft:#e8eefc;--warn:#9a5b00;--warn-soft:#fdf3e2;--radius:10px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#141413;--surface:#1e1e1c;--text:#ececea;--muted:#a3a39d;--border:#34342f;--accent:#7c9dff;--accent-text:#0d1633;--accent-soft:#1f2a4a;--warn:#f0b560;--warn-soft:#3a2b12}}*{box-sizing:border-box}body{background:var(--bg);margin:0;padding:0 16px 48px}.site-header,main{max-width:680px;margin:0 auto}.site-header{padding:32px 0 8px}h1{margin:0 0 4px;font-size:1.6rem}.lede{color:var(--muted);margin:0}h2{margin:0 0 16px;font-size:1.15rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:20px;padding:20px}input,textarea,button{font:inherit;color:inherit}input[type=text],input[type=password],textarea{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;min-width:0;padding:8px 10px}textarea{resize:vertical;width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{margin-bottom:16px}.field>label,.unlock>label{margin-bottom:6px;font-weight:600;display:block}#calc-x{width:8rem}.hint,.error{color:var(--warn);margin:4px 0 0;font-size:.875rem}.counter{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:.8rem}.btn-primary,.btn-link,.segmented button{cursor:pointer;border-radius:6px}.btn-primary{background:var(--accent);color:var(--accent-text);border:0;padding:9px 18px;font-weight:600}.btn-link{color:var(--accent);background:0 0;border:0;padding:6px 4px;text-decoration:underline}button:disabled{opacity:.45;cursor:default}.segmented{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:3px;margin-bottom:16px;padding:3px;display:inline-flex}.segmented button{background:0 0;border:0;padding:6px 12px}.segmented button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.stage-top{color:var(--muted);justify-content:space-between;padding:8px 12px;font-size:.9rem;display:flex}.stage-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.stage{border:1px solid var(--border);border-radius:8px;grid-template-columns:1fr auto;align-items:start;gap:8px;padding:10px;display:grid}.stage.is-zero{border-color:var(--warn);background:var(--warn-soft)}.stage-main{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stage-num{color:var(--muted);width:1.2em;font-size:.85rem}.stage-label{flex:10rem}.pct{color:var(--muted);align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.pct-input{text-align:right;font-variant-numeric:tabular-nums;width:4.2rem}.stage-count{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:6.5rem;padding-top:7px;font-size:.95rem;font-weight:600}.stage-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.result{background:var(--accent-soft);border-radius:8px;min-height:4.5rem;margin-top:20px;padding:16px}.result p{margin:0}.result-main{font-size:1.1rem}.result-num{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.result-rate,.result-hint{color:var(--muted);font-size:.9rem}.result-unreachable{color:var(--warn)}.unlock-row{gap:8px;display:flex}.unlock-row input{flex:1}.privacy{color:var(--muted);margin:10px 0 0;font-size:.8rem}.check-status{color:var(--muted);margin:12px 0 0}.check-status:empty{display:none}.check-status.is-error{color:var(--warn)}.overall{margin:20px 0 8px}.overall-num{font-size:2rem;font-weight:700}.overall-of{color:var(--muted)}.note{color:var(--muted);font-size:.9rem}.rule-list{border-top:1px solid var(--border);margin:12px 0 0;padding:0;list-style:none}.rule{border-bottom:1px solid var(--border);padding:12px 0}.rule-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.rule-label{font-weight:600}.rule-value{font-variant-numeric:tabular-nums}.low-conf{color:var(--muted);font-size:.85rem}.rule-feedback{margin:6px 0 0}@media (width<=480px){.card{padding:16px}}
