:root{--bg:#fbfaf7;--surface:#fff;--text:#1c1b19;--muted:#6b6862;--border:#d9d5cc;--grid:#ece8e0;--dot:#1f5f8b;--out:#f0ede6;--accent:#b8531f;--crosshair:#b8531f29;--window:#f4dccb;--match:#2f7d32;--mismatch:#b3261e;--gap-open:#92610a;--gap-extend:#6a4bab;--cell:18px}@media (prefers-color-scheme:dark){:root{--bg:#16181a;--surface:#1e2124;--text:#e8e6e1;--muted:#9a968e;--border:#383c40;--grid:#2a2e31;--dot:#6fb2d9;--out:#24282b;--accent:#e8894f;--crosshair:#e8894f33;--window:#4a3728;--match:#7cc47f;--mismatch:#f0938b;--gap-open:#dfa74e;--gap-extend:#b6a2e8}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.page{max-width:62rem;margin:0 auto;padding-block:2.5rem 4rem;padding-inline:1rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tabs{border-bottom:1px solid var(--border);gap:.2rem;margin-bottom:1.8rem;display:flex}.tabs a{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .9rem;font-size:1.05rem;font-weight:600;text-decoration:none}.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}.tabs a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool[hidden]{display:none}.inputs{flex-wrap:wrap;gap:1rem;margin:1.8rem 0 1rem;display:flex}.input{flex-direction:column;flex:20rem;gap:.35rem;display:flex}.input-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.82rem;font-weight:600}.input-label em{text-transform:none;letter-spacing:0;font-weight:400}textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);letter-spacing:.08em;resize:vertical;border-radius:6px;padding:.6rem .7rem;font:.95rem/1.6 ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:.4rem;font-size:.86rem;display:flex}.toggle input{accent-color:var(--accent);margin:0}button{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;align-self:flex-start;padding:.4rem .8rem;font-size:.9rem}button:hover{border-color:var(--accent);color:var(--accent)}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.controls{flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;margin-bottom:1rem;display:flex}.control-group{flex-wrap:wrap;gap:1rem 1.5rem;display:flex}.control-group[hidden]{display:none}.control{flex-direction:column;gap:.35rem;display:flex}select,input[type=number]{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;border-radius:6px;padding:.4rem .5rem;font-size:.92rem}input[type=number]{width:5.5rem}select:focus-visible,input[type=number]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.status,.readout{color:var(--muted);margin:.2rem 0;font-size:.88rem}.readout{min-height:1.55em;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace}.readout.match{color:var(--dot);font-weight:600}.status.warn{color:var(--accent)}h1{margin:0 0 .6rem;font-size:1.6rem}h2{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:2rem 0 .6rem;font-size:1rem}.prose{max-width:44rem;margin:0 0 1.4rem}.prose p{margin:0 0 .8rem}.caption{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:1.4rem 0 .4rem;font-size:.78rem;font-weight:600}.told{margin:1.2rem 0 .8rem;font-size:.95rem}.told-label{color:var(--muted)}.told-value{font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace;font-weight:600}.answer{margin:0 0 .2rem;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace}.answer-value{color:var(--accent);font-size:1.5rem;font-weight:700}.answer-aside{color:var(--muted);font-size:.95rem}.complement{color:var(--dot);margin:0 0 .6rem;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace;font-size:1.05rem;font-weight:600}.bayes-slot{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:.9rem 1rem;overflow-x:auto}.bayes-line{white-space:nowrap;align-items:center;gap:.6rem;margin-bottom:.5rem;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace;font-size:.86rem;display:flex}.bayes-label{color:var(--muted)}.fraction{flex-direction:column;align-items:center;display:inline-flex}.fraction .numerator{border-bottom:1px solid var(--text);padding:0 .4rem .15rem}.fraction .denominator{padding:.15rem .4rem 0}.bayes-answer{color:var(--accent);font-size:1.1rem;font-weight:700}.table-slot{overflow-x:auto}table.frequencies{border-collapse:collapse;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace;font-size:.9rem}.frequencies th,.frequencies td{border:1px solid var(--border);text-align:right;padding:.35rem .8rem}.frequencies thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:600}.frequencies th.row-label{color:var(--text);text-align:left;white-space:nowrap;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.82rem;font-weight:600}.frequencies td.total{color:var(--muted)}.frequencies td.true-positive{color:var(--mismatch);font-weight:700}.frequencies td.false-positive{color:var(--accent);font-weight:700}.frequencies td.false-negative{color:var(--gap-extend);font-weight:700}.grid-slot{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin-bottom:.4rem;padding:.5rem;overflow-x:auto}.people{flex-wrap:wrap;align-content:flex-start;gap:1px;display:flex}.person{background:var(--grid);border-radius:1px;width:4px;height:4px}.people.positives{gap:3px}.people.positives .person{border-radius:2px;width:12px;height:12px}.person.true-positive{background:var(--mismatch)}.person.false-positive{background:var(--accent)}.person.false-negative{background:var(--gap-extend)}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.3rem 1rem;margin:.2rem 0 0;font-size:.8rem;display:flex}.key{background:var(--grid);vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:.15rem;display:inline-block}.key.true-positive{background:var(--mismatch)}.key.false-positive{background:var(--accent)}.key.false-negative{background:var(--gap-extend)}
