/* Colours come from stella17-ds.css (Stella17 Design System). */
:root{
  --bg:var(--ds-bg);--panel:var(--ds-raised);--ink:var(--ds-ink);--muted:var(--ds-muted);--rule:var(--ds-line-soft);--soft:var(--ds-line-soft);--ctl:var(--ds-line);
  --brand:var(--ds-accent);--brand-ink:var(--ds-on-accent);--link:var(--ds-accent-text);
  --data:var(--ds-cyan);--model:var(--ds-accent-text);--assump:var(--ds-coral-text);--rule-c:var(--ds-muted);--flag:var(--ds-port-text);
  --data-bg:color-mix(in srgb,var(--data) 14%,var(--panel));--model-bg:color-mix(in srgb,var(--ds-accent) 16%,var(--panel));--assump-bg:color-mix(in srgb,var(--ds-coral) 16%,var(--panel));--rule-bg:color-mix(in srgb,var(--ds-titanium) 22%,var(--panel));--flag-bg:color-mix(in srgb,var(--ds-port) 14%,var(--panel));
  --pole:var(--ds-accent-text);--sprit:var(--ds-cyan);
  --radius:0;--gut:16px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--font-text)}
a{color:var(--link)}
h1{font:400 1.45rem/1.3 var(--font-headline);letter-spacing:.04em;text-transform:uppercase;margin:.2em 0 .5em}
h2{font:italic 700 1.55rem/1.1 var(--font-display);text-transform:uppercase;margin:1.5em 0 .4em}
h3{font:italic 700 1.2rem/1.15 var(--font-display);text-transform:uppercase;margin:1.2em 0 .3em}
p{margin:.5em 0}
code{background:var(--soft);padding:1px 5px;border-radius:0;font-size:.88em;word-break:break-word}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px var(--gut);background:var(--panel);color:var(--ink);border-bottom:1px solid var(--rule)}
.topbar .title{font:400 .95rem/1 var(--font-headline);letter-spacing:.06em;text-transform:uppercase;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar #menubtn{padding:0;min-height:44px;min-width:44px}
.topbar button{background:transparent;color:inherit;border:1px solid var(--ctl);font-family:var(--font-mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;border-radius:0;padding:6px 10px;font:inherit;cursor:pointer;min-height:40px}
.layout{display:block}
nav#menu{display:none;background:var(--panel);border-bottom:1px solid var(--rule);padding:8px var(--gut) 14px}
nav#menu.open{display:block}
nav#menu h4{margin:14px 0 4px;font:400 .75rem/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:2px;color:var(--link)}
nav#menu .why{font-size:.78rem;color:var(--muted);margin:0 0 4px}
nav#menu a{display:block;padding:9px 10px;border-radius:0;text-decoration:none;color:var(--ink);min-height:40px}
nav#menu a.on{background:var(--brand);color:var(--brand-ink)}
main{padding:var(--gut);max-width:980px;margin:0 auto}
@media (min-width:900px){
  .layout{display:grid;grid-template-columns:280px 1fr;align-items:start}
  nav#menu{display:block;position:sticky;top:58px;height:calc(100vh - 58px);overflow:auto;border-right:1px solid var(--rule);border-bottom:0}
  .topbar #menubtn{display:none}
  main{padding:24px 32px}
}
.card{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:14px var(--gut);margin:12px 0}
.card.hl{border-top:3px solid var(--brand)}
.grid2{display:grid;gap:12px;grid-template-columns:1fr}
.grid3{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:700px){.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}}
.badge{display:inline-block;font:400 .7rem/1.4 var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;padding:2px 8px;border-radius:0;vertical-align:middle;white-space:nowrap}
.b-data{background:var(--data-bg);color:var(--data)}
.b-model{background:var(--model-bg);color:var(--model)}
.b-assump{background:var(--assump-bg);color:var(--assump)}
.b-rule{background:var(--rule-bg);color:var(--rule-c)}
.b-flag{background:var(--flag-bg);color:var(--flag)}
.note{font-size:.85rem;color:var(--muted)}
.status{border:1px dashed var(--rule);border-radius:0;padding:8px 12px;font-size:.85rem;color:var(--muted);background:var(--soft);margin:10px 0}
.warn{border-top:3px solid var(--flag);background:var(--flag-bg);padding:10px 12px;border-radius:0;margin:10px 0}
.warn.amber{border-color:var(--ds-coral);background:var(--assump-bg)}
.tabs{display:flex;gap:6px;margin:10px 0;overflow-x:auto;padding-bottom:4px}
.tabs button{flex:1 0 auto;min-height:44px;border:1px solid var(--ctl);background:var(--panel);color:var(--ink);border-radius:0;padding:8px 14px;font:400 12px/1.2 var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer}
.tabs button.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
label{display:block;font-weight:600;font-size:.88rem;margin:10px 0 3px}
select,input[type=number],input[type=text],input[type=date]{width:100%;min-height:44px;font:inherit;padding:8px 10px;border:1px solid var(--ctl);border-radius:0;background:var(--panel);color:var(--ink)}
input[type=range]{width:100%;min-height:36px}
.rv{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rv b{font-variant-numeric:tabular-nums}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{flex:1 1 auto;min-height:44px;border:1px solid var(--ctl);font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;background:var(--panel);color:var(--ink);border-radius:0;padding:6px 10px;font:inherit;cursor:pointer}
.seg button.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);font-weight:700}
.btn{min-height:44px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);border-radius:0;padding:8px 18px;font:400 12px/1.2 var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer}
.btn:hover{background:var(--ds-accent-hover);border-color:var(--ds-accent-hover)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ctl)}.btn.ghost:hover{background:var(--soft)}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th,td{border-bottom:1px solid var(--rule);padding:6px 8px;text-align:left;vertical-align:top}
th{background:var(--soft);position:sticky;top:0;font:400 .72rem/1.3 var(--font-mono);letter-spacing:1px;text-transform:uppercase}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.reco{font:italic 700 1.9rem/1.1 var(--font-display);text-transform:uppercase;margin:.1em 0}
.reco small{font-size:.9rem;font-weight:600;color:var(--muted)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:.92rem}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.pole{color:var(--pole);font-weight:700}.sprit{color:var(--sprit);font-weight:700}
.xo td{text-align:center;font-size:.78rem;padding:4px 3px;border:1px solid var(--bg);min-width:44px}
.xo td.cur{outline:3px solid var(--ds-focus);outline-offset:-3px}
.s-J1{background:color-mix(in srgb,var(--ds-accent) 28%,var(--panel));color:var(--ink)}.s-J3{background:color-mix(in srgb,var(--ds-coral) 30%,var(--panel));color:var(--ink)}.s-C0{background:color-mix(in srgb,var(--ds-cyan) 26%,var(--panel));color:var(--ink)}
.s-S1,.s-A2{background:color-mix(in srgb,var(--ds-port) 26%,var(--panel));color:var(--ink)}.s-R1{background:color-mix(in srgb,var(--ds-titanium) 30%,var(--panel));color:var(--ink)}
.chk{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--rule)}
.chk input{width:24px;height:24px;margin-top:2px;flex:0 0 auto}
.chk.done .t{text-decoration:line-through;color:var(--muted)}
.chk .meta{font-size:.8rem;color:var(--muted)}
footer{padding:20px var(--gut);font-size:.8rem;color:var(--muted);border-top:1px solid var(--rule);margin-top:30px}
.pagefoot{margin-top:24px;font-size:.78rem;color:var(--muted);border-top:1px solid var(--rule);padding-top:8px}
@media print{.topbar,nav#menu,.tabs,.noprint,footer{display:none!important}.layout{display:block}body{background:#fff;color:#000}.card{break-inside:avoid}}
