:root{--paper:#fbfaf8;--panel:#fff;--sunken:#f4f2ee;--edge:#e3e0da;--edge-strong:#cfcac1;--ink:#1c1e21;--ink-soft:#3d4247;--muted:#5f6469;--accent:#b8801a;--accent-ink:#7d5610;--accent-soft:#fdf5e6;--accent-edge:#e8cf9b;--good:#1f7a55;--bad:#b3323d;--good-soft:#eaf6f1;--bad-soft:#fdeef0;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "Cascadia Mono", Consolas, monospace;--read:17px;--work:15px;--measure:68ch;--step--1:.875rem;--step-0:1rem;--step-1:1.125rem;--step-2:1.35rem;--step-3:1.75rem;--step-4:2.15rem;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--radius:6px;--radius-sm:4px;--radius-pill:999px;--shadow:0 1px 2px #1c1e210f, 0 4px 12px #1c1e210d;--speed:.14s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#14171a;--panel:#191d21;--sunken:#0e1216;--edge:#262b30;--edge-strong:#38414a;--ink:#e6e8ea;--ink-soft:#c3c9ce;--muted:#99a0a6;--accent:#e8b339;--accent-ink:#f0c765;--accent-soft:#241d0d;--accent-edge:#4a3c1a;--good:#3fb68b;--bad:#d9525e;--good-soft:#10231d;--bad-soft:#241417;--shadow:0 1px 2px #0006, 0 4px 14px #0000004d}}:root[data-theme=dark]{--paper:#14171a;--panel:#191d21;--sunken:#0e1216;--edge:#262b30;--edge-strong:#38414a;--ink:#e6e8ea;--ink-soft:#c3c9ce;--muted:#99a0a6;--accent:#e8b339;--accent-ink:#f0c765;--accent-soft:#241d0d;--accent-edge:#4a3c1a;--good:#3fb68b;--bad:#d9525e;--good-soft:#10231d;--bad-soft:#241417;--shadow:0 1px 2px #0006, 0 4px 14px #0000004d}.masthead{gap:var(--s3) var(--s5);padding:var(--s3) var(--s5);border-bottom:1px solid var(--edge);background:var(--panel);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.masthead .wordmark{letter-spacing:-.01em;color:var(--ink);font-weight:700;font-size:var(--step-1);white-space:nowrap;text-decoration:none}.masthead .wordmark .rs{color:var(--accent)}.masthead nav{align-items:center;gap:var(--s1);flex-wrap:wrap;display:flex}.masthead nav a,.masthead nav button.navlink{padding:var(--s2) var(--s3);border-radius:var(--radius-sm);color:var(--muted);font:inherit;font-size:var(--step--1);cursor:pointer;transition:color var(--speed), background var(--speed);background:0 0;border:1px solid #0000;text-decoration:none;display:inline-block}.masthead nav a:hover,.masthead nav button.navlink:hover{color:var(--ink);background:var(--sunken)}.masthead nav a[aria-current=page],.masthead nav button.navlink[aria-current=page]{color:var(--ink);background:var(--accent-soft);border-color:var(--accent-edge)}.masthead nav .sep{background:var(--edge);width:1px;height:20px;margin:0 var(--s2)}:where(a):focus-visible,:where(button):focus-visible,:where(input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:var(--work) / 1.55 var(--font);margin:0}.app{flex-direction:column;min-height:100vh;display:flex}.app>main{width:100%;max-width:1120px;padding:var(--s5) var(--s5) var(--s7);flex:1;margin:0 auto}.app>main.narrow{max-width:460px;padding-top:var(--s7)}h1,h2,h3,h4{text-wrap:balance;margin:0;line-height:1.25}a{color:var(--accent)}.page-head{gap:var(--s3) var(--s5);margin-bottom:var(--s5);padding-bottom:var(--s4);border-bottom:1px solid var(--edge);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;display:flex}.page-head h1{font-size:var(--step-3);letter-spacing:-.015em}.page-head .sub{margin:var(--s2) 0 0;color:var(--muted);max-width:58ch}.page-head .actions{gap:var(--s2);flex-wrap:wrap;display:flex}.card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);padding:var(--s5);margin-bottom:var(--s4)}.card-head{gap:var(--s2) var(--s4);margin-bottom:var(--s4);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.card-head h2,.card-head h3{font-size:var(--step-1)}.card-head .hint{color:var(--muted);font-size:var(--step--1)}.panel{composes:card;background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);padding:var(--s5);margin-bottom:var(--s4)}.muted{color:var(--muted)}.error{color:var(--bad);background:var(--bad-soft);border:1px solid var(--bad);border-radius:var(--radius-sm);padding:var(--s3) var(--s4);margin-bottom:var(--s4)}.cite{align-items:baseline;gap:var(--s2);font-size:var(--step--1);color:var(--muted);border-bottom:1px dotted var(--edge-strong);text-decoration:none;display:inline-flex}.cite:hover{color:var(--accent);border-bottom-color:var(--accent)}.cite .numeral{font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:.02em;font-weight:600}.stat-grid{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat .label{font-size:var(--step--1);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s1);display:block}.stat .value{font-size:var(--step-2);font-variant-numeric:tabular-nums;letter-spacing:-.01em;display:block}.stat .value.pos{color:var(--good)}.stat .value.neg{color:var(--bad)}.stat .note{font-size:var(--step--1);color:var(--muted);margin-top:var(--s1);display:block}.statgrid{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.statgrid span{font-size:var(--step--1);color:var(--muted);display:block}.gauge{background:var(--sunken);border:1px solid var(--edge);border-radius:var(--radius-pill);height:8px;margin-top:var(--s2);position:relative;overflow:hidden}.gauge>.fill{background:var(--good);height:100%;transition:width var(--speed), background var(--speed)}.gauge.warm>.fill{background:var(--accent)}.gauge.hot>.fill{background:var(--bad)}.gauge-row{font-size:var(--step--1);color:var(--muted);margin-top:var(--s1);justify-content:space-between;display:flex}.heatbar{background:var(--sunken);border-radius:var(--radius-pill);height:8px;margin-top:var(--s2);overflow:hidden}.heatbar div{background:var(--accent);height:100%}.pill{align-items:center;gap:var(--s1);font-size:var(--step--1);padding:2px var(--s3);border-radius:var(--radius-pill);white-space:nowrap;border:1px solid #0000;font-weight:600;display:inline-flex}.pill.pass,.badge.pass{background:var(--good-soft);color:var(--good);border-color:var(--good)}.pill.open,.badge.open{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-edge)}.pill.lock,.badge.lock{background:var(--sunken);color:var(--muted);border-color:var(--edge)}.pill.warn{background:var(--bad-soft);color:var(--bad);border-color:var(--bad)}.badge{align-items:center;gap:var(--s1);font-size:var(--step--1);padding:2px var(--s3);border-radius:var(--radius-pill);white-space:nowrap;border:1px solid #0000;font-weight:600;display:inline-flex}.banner{border-radius:var(--radius);padding:var(--s3) var(--s4);margin-bottom:var(--s4);gap:var(--s2) var(--s4);border:1px solid;flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.banner strong{font-weight:600}.lock-banner{background:var(--bad-soft);color:var(--bad);border-color:var(--bad)}.pilot-banner{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-edge)}.empty{text-align:center;padding:var(--s7) var(--s5);border:1px dashed var(--edge-strong);border-radius:var(--radius);color:var(--muted);background:var(--sunken)}.empty h3{font-size:var(--step-1);color:var(--ink);margin-bottom:var(--s2)}.empty p{margin:0 auto var(--s4);max-width:46ch}button{background:var(--panel);color:var(--ink);border:1px solid var(--edge-strong);border-radius:var(--radius-sm);padding:var(--s2) var(--s4);cursor:pointer;font:inherit;transition:border-color var(--speed), background var(--speed);font-weight:500}button:hover:not(:disabled){border-color:var(--accent);background:var(--sunken)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#17130a;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.07);background:var(--accent)}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){color:var(--ink)}button.linkish{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}button.danger{color:var(--bad);border-color:var(--bad);background:var(--bad-soft)}input,select,textarea{background:var(--sunken);border:1px solid var(--edge-strong);border-radius:var(--radius-sm);color:var(--ink);padding:var(--s2) var(--s3);font:inherit;width:100%}input:hover,select:hover{border-color:var(--muted)}.field{margin:var(--s4) 0}.field label{color:var(--muted);margin-bottom:var(--s1);font-size:var(--step--1);display:block}.field button{margin-top:var(--s2)}.field-row{gap:var(--s2);align-items:center;display:flex}code.token{background:var(--sunken);border:1px dashed var(--accent);border-radius:var(--radius-sm);padding:var(--s3);margin:var(--s3) 0;word-break:break-all;font-family:var(--font-mono);font-size:var(--step--1);display:block}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.table-wrap{overflow-x:auto}th{text-align:left;color:var(--muted);font-weight:600;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.05em;padding:var(--s2) var(--s3);border-bottom:1px solid var(--edge)}td{padding:var(--s3);border-top:1px solid var(--edge)}tbody tr:hover{background:var(--sunken)}.row-actions{gap:var(--s1);display:flex}.pos{color:var(--good)}.neg{color:var(--bad)}.set{margin-bottom:var(--s4)}.set-head{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.set.locked{opacity:.55}.challenges{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.run-head{align-items:baseline;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.chart{border:1px solid var(--edge);border-radius:var(--radius);height:440px;margin-bottom:var(--s4);background:var(--sunken)}.prompt{font-size:var(--step-1);margin-top:0}.options{gap:var(--s2);flex-wrap:wrap;display:flex}.ticket{gap:var(--s3);flex-wrap:wrap;align-items:flex-end;display:flex}.ticket label{color:var(--muted);font-size:var(--step--1)}.ticket input{width:110px;display:block}.reveal{border-top:1px solid var(--edge);margin-top:var(--s4);padding-top:var(--s4)}.reveal-head{gap:var(--s3);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.explain{color:var(--ink-soft);margin-bottom:0}.dot{font-weight:700}.dot.good{color:var(--good)}.dot.part{color:var(--accent)}.dot.miss{color:var(--bad)}.ticket-grid{gap:var(--s3);margin-bottom:var(--s4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.tf{color:var(--muted);font-size:var(--step--1)}.tf input,.tf select{width:100%;margin-top:var(--s1);display:block}.grade-row{margin:var(--s2) 0}.grade-row input{flex:1}.desk-item{text-align:left;width:100%;margin:var(--s2) 0;padding:var(--s4);background:var(--panel);display:block}.desk-item:hover{border-color:var(--accent)}.badges-strip{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.consent label{margin:var(--s3) 0;color:var(--muted);line-height:1.5;display:block}.consent input[type=checkbox]{width:auto;margin-right:var(--s1);accent-color:var(--accent)}pre.legal{white-space:pre-wrap;word-break:break-word;font:inherit;background:var(--sunken);border:1px solid var(--edge);border-radius:var(--radius);max-height:60vh;padding:var(--s4);line-height:1.6;overflow-y:auto}.school-block{border-top:1px solid var(--edge);padding-top:var(--s4);margin-top:var(--s5)}.school-block h4{margin:0 0 var(--s2);font-size:var(--step-1)}.lesson-list{margin:var(--s3) 0 0;padding:0;list-style:none}.lesson-list li{padding:var(--s1) 0}.lesson-list label{align-items:baseline;gap:var(--s2);display:flex}.lesson-list input[type=checkbox]{accent-color:var(--accent);width:auto}.lesson-list a{color:var(--ink);text-decoration:none}.lesson-list a:hover{color:var(--accent);text-decoration:underline}.badge-pill{font-size:var(--step--1);color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent-edge);border-radius:var(--radius-pill);padding:1px var(--s3);margin-left:var(--s2)}.progress{background:var(--sunken);border:1px solid var(--edge);border-radius:var(--radius-pill);height:6px;margin-top:var(--s2);overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width var(--speed)}.lab-grid{gap:var(--s5);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;display:grid}.lab-side{top:var(--s4);position:sticky}.plan-group{border:none;border-top:1px solid var(--edge);margin:0 0 var(--s4);padding:var(--s4) 0 0}.plan-group:first-of-type{border-top:none;padding-top:0}.plan-group legend{font-size:var(--step--1);color:var(--ink);text-transform:uppercase;letter-spacing:.06em;align-items:baseline;gap:var(--s2);padding:0;font-weight:600;display:flex}.plan-row{gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.plan .field{margin:var(--s3) 0 0}.plan .field>span{color:var(--muted);font-size:var(--step--1);margin-bottom:var(--s1);display:block}ul.plain{margin:var(--s2) 0 var(--s4);padding:0;list-style:none}ul.plain li{padding:var(--s1) 0;border-bottom:1px solid var(--edge)}ul.plain li:last-child{border-bottom:none}.price{font-size:var(--step-1);margin:0 0 var(--s3)}.price strong{font-size:var(--step-3);font-variant-numeric:tabular-nums;color:var(--accent-ink)}.run-row{align-items:center;gap:var(--s3);text-align:left;width:100%;margin:var(--s2) 0;padding:var(--s3) var(--s4);display:flex}.run-row .run-label{flex:1}.disclosure{background:var(--sunken);border:1px dashed var(--edge-strong);border-radius:var(--radius);padding:var(--s3) var(--s4);margin-bottom:var(--s4);color:var(--ink-soft);font-size:var(--step--1)}.warnline{border-left:2px solid var(--accent);padding-left:var(--s3);margin-top:var(--s4)}.finding{font-size:var(--step-1);margin:0 0 var(--s4);text-wrap:pretty}.refusals{margin:var(--s3) 0 0;padding:0;list-style:none}.refusals li{padding:var(--s2) 0;border-top:1px solid var(--edge)}.refusals strong{font-variant-numeric:tabular-nums;margin-right:var(--s2);color:var(--ink)}.errorbars{margin-top:var(--s4);border-top:1px solid var(--edge);padding-top:var(--s3)}.errorbars h4{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.nullstrip{margin:var(--s4) 0}.nullstrip .axis{background:var(--sunken);border:1px solid var(--edge);border-radius:var(--radius-sm);height:34px;position:relative}.nullstrip .tick{background:var(--edge-strong);width:2px;height:22px;position:absolute;top:6px;transform:translate(-1px)}.nullstrip .tick.real{background:var(--accent);width:3px;height:34px;top:0}.nullstrip .axis-labels{font-size:var(--step--1);color:var(--ink-soft);margin-top:var(--s1);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.integrity{border-left:3px solid var(--accent)}.integrity code{font-family:var(--font-mono);font-size:var(--step--1);background:var(--sunken);border:1px solid var(--edge);border-radius:var(--radius-sm);padding:1px var(--s2)}.curve{margin-bottom:var(--s4)}.curve svg{background:var(--sunken);border:1px solid var(--edge);border-radius:var(--radius);width:100%;height:220px;display:block}.curve-line{fill:none;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.curve-base{stroke:var(--edge-strong);stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.curve-labels{font-size:var(--step--1);color:var(--muted);margin-top:var(--s1);justify-content:space-between;display:flex}@media (width<=900px){.lab-grid{grid-template-columns:1fr}.lab-side{position:static}}.live-head{justify-content:space-between;align-items:flex-start;gap:var(--s4);flex-wrap:wrap;display:flex}.sim-badge{white-space:nowrap;border:1px solid var(--edge);padding:var(--s1) var(--s3);font-size:var(--step--1);color:var(--muted);background:var(--panel);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-self:center}.live-grid{gap:var(--s5);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;display:grid}.stat-row{gap:var(--s5);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.stat{flex-direction:column;display:flex}.stat-label{font-size:var(--step--1);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:var(--step-1);font-variant-numeric:tabular-nums}.small{font-size:var(--step--1)}.num{text-align:right;font-variant-numeric:tabular-nums}table.tight{white-space:nowrap;display:block;overflow-x:auto}.sizing{border-left:3px solid var(--accent);padding-left:var(--s3);margin:var(--s4) 0}.ok{color:var(--good)}.inline-edit{gap:var(--s2);flex-wrap:wrap;align-items:center;display:inline-flex}.inline-edit input{font-variant-numeric:tabular-nums;width:7rem}.timeframes{gap:var(--s2)}.chip{border:1px solid var(--edge);padding:var(--s1) var(--s3);font-size:var(--step--1);background:var(--panel);color:var(--muted);border-radius:999px}.chip.on{color:var(--fg);border-color:var(--accent)}@media (width<=900px){.live-grid{grid-template-columns:1fr}}.balance{font-size:var(--step-1);margin:0 0 var(--s4)}.balance strong{font-size:var(--step-4);font-variant-numeric:tabular-nums}.packages{gap:var(--s3);margin-bottom:var(--s4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.package{gap:var(--s1);border:1px solid var(--edge);border-radius:var(--radius);background:var(--sunken);padding:var(--s4);flex-direction:column;align-items:flex-start;display:flex}.package .pkg-credits{font-size:var(--step-2);font-variant-numeric:tabular-nums}.package .pkg-label{font-size:var(--step--1);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.package .pkg-price{font-size:var(--step-1);margin-top:var(--s2)}.package .pkg-vat{font-size:var(--step--1);color:var(--muted)}.package button{margin-top:var(--s3);align-self:stretch}.consent-row{gap:var(--s3);margin:var(--s4) 0;align-items:flex-start;line-height:1.55;display:flex}.consent-row input[type=checkbox]{width:auto;accent-color:var(--accent);margin-top:4px}details.history{margin-top:var(--s4)}details.history summary{cursor:pointer;color:var(--muted);font-size:var(--step--1)}details.history[open] summary{margin-bottom:var(--s3)}.danger-card{border-color:var(--bad)}.danger-card .card-head h2{color:var(--bad)}.card.narrow{max-width:46ch;margin:var(--s6) auto}footer.app-footer{border-top:1px solid var(--edge);background:var(--panel);padding:var(--s5);color:var(--muted);font-size:var(--step--1)}footer.app-footer p{max-width:var(--measure);margin:0 auto var(--s2)}footer.app-footer a{color:var(--muted)}@media (width<=640px){.app>main{padding:var(--s4) var(--s4) var(--s6)}.page-head{flex-direction:column}}.feedback-tab{right:var(--s4);bottom:var(--s4);z-index:50;border:1px solid var(--edge-strong);border-radius:var(--radius-pill);background:var(--panel);color:var(--muted);padding:var(--s2) var(--s4);font-size:var(--step--1);box-shadow:var(--shadow);position:fixed}.feedback-tab:hover{color:var(--ink);border-color:var(--accent)}.feedback-panel{right:var(--s4);bottom:var(--s4);z-index:50;width:min(30rem, calc(100vw - var(--s4) * 2));gap:var(--s3);background:var(--panel);border:1px solid var(--edge-strong);border-radius:var(--radius);max-height:min(80vh,44rem);box-shadow:var(--shadow);padding:var(--s4);flex-direction:column;display:flex;position:fixed;overflow-y:auto}.feedback-head{align-items:baseline;gap:var(--s3);display:flex}.feedback-where{font-size:var(--step--1);color:var(--muted);font-family:var(--font-mono);margin-right:auto}.feedback-close{color:var(--muted);font-size:var(--step-2);padding:0 var(--s1);background:0 0;border:none;line-height:1}.feedback-close:hover{color:var(--ink)}.feedback-kinds{gap:var(--s2);flex-wrap:wrap;display:flex}.feedback-panel textarea{resize:vertical;width:100%}.feedback-hint{font-size:var(--step--1);color:var(--muted);margin:0}.feedback-hint kbd{font-family:var(--font-mono);border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--sunken);padding:0 .3em;font-size:.9em}.feedback-shots{gap:var(--s3);flex-wrap:wrap;display:flex}.feedback-shots figure{width:8rem;margin:0}.feedback-shots img{object-fit:cover;border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--sunken);width:100%;height:5rem}.feedback-shots figcaption{font-size:var(--step--1);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;display:flex}.feedback-shots figcaption button{color:var(--muted);font-size:var(--step--1);background:0 0;border:none;padding:0;text-decoration:underline}.feedback-shots figcaption button:hover{color:var(--bad)}.feedback-actions{gap:var(--s2);display:flex}.feedback-sent{color:var(--good);margin:0}@media (width<=640px){.feedback-tab,.feedback-panel{right:var(--s3);bottom:var(--s3)}}
