/* Worker-rendered /gaps/:slug and dossier pages. Shared pieces live in components.css. */
body{color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
main.shell{padding-top:28px}
.gp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:clamp(28px,4vw,56px);align-items:start}
.gp-head h1,.dos-head h1{font:500 clamp(34px,4.6vw,56px)/1.06 var(--sans);letter-spacing:-.05em;margin:0 0 12px;text-wrap:balance}
.gp-head .lead,.dos-head .lead{color:var(--muted);font-size:15.5px;line-height:1.65;margin:12px 0 0}
.gp-side{position:sticky;top:76px;display:grid;gap:14px}
.gp-sec{border-top:1px solid var(--line);padding:28px 0 8px;margin-top:28px}
.gp-main .gp-sec:first-of-type{margin-top:22px}
.gp-sec h2{font:500 22px/1.2 var(--sans);letter-spacing:-.03em;margin:0 0 14px}
.gp-sec p{margin:0 0 8px;line-height:1.65}
.unlock{padding:20px}
.unlock h2{font:500 19px/1.2 var(--sans);letter-spacing:-.03em;margin:0 0 8px}
.unlock .btn-row{margin:14px 0 10px}
.unlock.wide{max-width:640px}
.asks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.asks.one{margin:2px 0 0}
.ask{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.ask p{margin:0 0 8px;font-size:14px;line-height:1.55}
.ask .fine{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ask a{color:var(--brand-purple);text-decoration:none}.ask a:hover{text-decoration:underline}
.reqs{margin:0;padding-left:18px;line-height:1.8}
.reqs a{color:var(--brand-purple)}
.locked{position:relative;border:1px dashed var(--edge);border-radius:12px;padding:10px 14px 4px;background:#fff;margin-top:10px}
.locked .fine{display:flex;align-items:center;gap:6px;margin:8px 0 6px}
.lock-ic{width:12px;height:12px}
.gp-licence{margin-top:36px}
.dos-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:6px 0 18px}
.dos-head .gcard-chips,.dos-head .gcard-src{margin-top:10px}
.bars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px}
.bar-head{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.bar-head .n{font:500 13px var(--mono)}
.bar{height:6px;border-radius:3px;background:#EFEDF4;margin:7px 0 5px;overflow:hidden}
.bar u{display:block;height:100%;background:var(--brand-purple);border-radius:3px;text-decoration:none}
.spark{display:flex;align-items:flex-end;gap:6px;height:48px;margin:4px 0 8px}
.spark span{width:18px;background:#D9D1FA;border-radius:3px 3px 0 0}
.matrix td.fit{text-align:center;font:600 14px var(--mono)}
.fit.yes{color:var(--go)}.fit.partial{color:var(--maybe)}.fit.no{color:#B42318}.fit.unknown{color:var(--faint)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:900px){.gp-grid{grid-template-columns:1fr}.gp-side{position:static;order:-1}.bars{grid-template-columns:1fr}}
@media print{.gp-sec{break-inside:avoid}.dos-head{margin-top:0}.bar u,.spark span{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
