/* Layout: an engineering datasheet. Title block per page, numbered sections, gridded tables, square
   controls, IBM Plex throughout, neutral greys with one signal colour per product used sparingly. */
:root{
  color-scheme:light;
  --bg:#fbfbfa; --sheet:#ffffff; --ink:#16181a; --dim:#5f6468; --rule:#d5d8da; --grid:#eef0f1; --head:#f1f2f3;
  --accent:#e8590c;
  --sans:'IBM Plex Sans','Helvetica Neue',Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
}
body.van-ish{--accent:#e8590c} body.power-lab{--accent:#c88a00} body.nutrucalc{--accent:#1f8a4c}
*{box-sizing:border-box}
html,body{overflow-x:clip}
body{background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);counter-reset:sec;
  padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));padding-block:0 48px}
a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:44px}

nav.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 24px;padding-block:14px;border-bottom:2px solid var(--ink);font:500 13px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.04em}
nav.crumbs a{text-decoration:none;color:var(--dim)}
nav.crumbs a:hover{color:var(--ink)}
nav.crumbs a[aria-current]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:6px}
nav.crumbs .brand{display:flex;align-items:center;gap:10px;margin-right:auto;color:var(--ink);font:600 14px var(--sans);text-transform:none;letter-spacing:0}
.tslot{width:22px;height:22px;flex:0 0 auto}
.tslot rect{fill:var(--ink)} .tslot path,.tslot circle:first-of-type{fill:var(--bg)} .tslot circle:last-of-type{fill:var(--accent)}

/* title block */
header.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding-top:28px}
.kicker{font:500 12px/1 var(--mono);color:var(--dim);text-transform:uppercase;letter-spacing:.08em}
.kicker::before{content:"";display:inline-block;width:8px;height:8px;background:var(--accent);margin-right:8px;vertical-align:0}
h1{font:600 clamp(2.2rem,5.5vw,3.4rem)/1.05 var(--sans);letter-spacing:-.02em;margin:0;text-wrap:balance}
.tagline{font:400 1.15rem/1.4 var(--sans);color:var(--dim);margin:0}
.titleblock{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--ink);background:var(--sheet);margin-top:6px}
.titleblock div{padding:8px 12px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);min-width:0}
.titleblock dt{font:500 10.5px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.titleblock dd{margin:2px 0 0;font:500 14px/1.4 var(--mono);color:var(--ink);overflow-wrap:anywhere}
h2{font:600 1.35rem/1.25 var(--sans);letter-spacing:-.01em;margin:0;text-wrap:balance;padding-bottom:8px;border-bottom:1px solid var(--ink)}
section > h2{counter-increment:sec}
section > h2::before{content:counter(sec) ".0";font:500 13px/1 var(--mono);color:var(--accent);margin-right:14px;vertical-align:3px}
h3{font:600 1rem/1.35 var(--sans);margin:0}
p{margin:0;max-width:68ch}
.lede{font-size:1.08rem;color:#2e3236;max-width:70ch}
section{display:flex;flex-direction:column;gap:18px;min-width:0}
section > p{color:#2e3236}
.note{color:var(--dim);font-size:.9rem}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0;border:1px solid var(--rule);background:var(--sheet)}
.grid>*{min-width:0}
.plate,.card{display:flex;flex-direction:column;gap:8px;padding:18px 20px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);min-width:0}
.card{text-decoration:none;color:var(--ink);border-top:3px solid var(--c)}
.card:hover{background:var(--head)}
.card h2{font-size:1.45rem;border:0;padding:0}
.card h2::before{content:none}
.card .go{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);margin-top:auto;padding-top:10px}
.tag{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}

dl.spec{display:grid;grid-template-columns:max-content 1fr;margin:0;border:1px solid var(--rule);background:var(--sheet)}
dl.spec dt,dl.spec dd{padding:9px 14px;border-bottom:1px solid var(--rule);margin:0}
dl.spec dt{font:500 12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--dim);background:var(--head);border-right:1px solid var(--rule)}
dl.spec dd{font:400 14px/1.6 var(--mono)}
.mono{font-family:var(--mono);font-size:.9em;font-variant-numeric:tabular-nums}
ol.flow{list-style:none;margin:0;padding:0;display:grid;counter-reset:s;border:1px solid var(--rule);background:var(--sheet)}
ol.flow li{counter-increment:s;display:grid;grid-template-columns:3.4rem 1fr;gap:12px;padding:14px 16px;border-bottom:1px solid var(--rule)}
ol.flow li:last-child{border-bottom:0}
ol.flow li::before{content:counter(s,decimal-leading-zero);font:500 13px/1.6 var(--mono);color:var(--accent)}
.tablewrap{overflow-x:auto;border:1px solid var(--rule);background:var(--sheet)}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--rule);border-right:1px solid var(--grid);vertical-align:top}
th{font:500 11px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);background:var(--head)}
tr:last-child td{border-bottom:0}
td.n{font:500 14px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}

.tool{background:var(--sheet);border:1px solid var(--ink);padding:20px;display:flex;flex-direction:column;gap:18px;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:20px 20px}
.tool > h3{font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.row{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end}
label{font:500 11px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--dim);display:flex;flex-direction:column;gap:6px}
input[type=number],select{font:500 15px var(--mono);color:var(--ink);background:var(--sheet);border:1px solid var(--ink);border-radius:0;padding:7px 9px;width:9rem}
input[type=range]{width:min(100%,440px);accent-color:var(--accent)}
button.toggle{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--sheet);color:var(--ink);border:1px solid var(--ink);border-radius:0;padding:8px 12px;cursor:pointer}
button.toggle[aria-pressed="true"]{background:var(--ink);color:var(--sheet)}
.readout{font:500 clamp(2rem,5vw,2.8rem)/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.readout small{font:500 12px var(--mono);color:var(--dim);margin-left:8px;text-transform:uppercase;letter-spacing:.06em}
.bar{height:8px;background:var(--grid);border:1px solid var(--rule);margin-top:10px}
.bar i{display:block;height:100%;background:var(--accent);transition:width .4s ease}
.status-ok{color:#1f8a4c}.status-warn{color:#9a6a00}.status-bad{color:#c0341d}

.cta{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-flex;align-items:center;font:500 13px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;padding:13px 18px;border:1px solid var(--ink);background:var(--ink);color:var(--sheet)}
.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--sheet)}
.btn.ghost{background:var(--sheet);color:var(--ink)}
.btn.ghost:hover{color:var(--accent);background:var(--sheet)}

footer.initiative{padding-top:16px;border-top:2px solid var(--ink);display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;color:var(--dim);font:400 12px/1.6 var(--mono)}
footer.initiative .mark{color:var(--ink);font-weight:500}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
