/* Gateway Three — Hi-vis.
   Safety yellow, black rules, Archivo Black headings. One hazard-stripe motif
   (--hz), used once per screen at most. Brand cyan is not used in the product
   (decision 15). */
:root{
  --yel:#FFD400; --yel-2:#FFE24D; --yel-wash:#FFF7CC;
  --ink:#0B0B0C; --ink-2:#2A2A2E; --grey:#5F6368; --grey-2:#9AA0A6; --line:#111; --line-2:#D9D9D9;
  --paper:#FFFFFF; --paper-2:#F5F5F3;
  --red:#C5221F; --red-wash:#FBE9E7; --amber:#D97706; --amber-wash:#FEF3C7;
  --green:#1E8E3E; --green-wash:#E6F4EA; --violet:#6E56CF; --violet-wash:#EEEBFB;
  --font:'Archivo',system-ui,-apple-system,sans-serif; --head:'Archivo Black','Archivo',sans-serif; --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --hz:repeating-linear-gradient(135deg,var(--ink) 0 14px,var(--yel) 14px 28px);
  --r:4px; --gutter:16px;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ --paper:#0F0F10; --paper-2:#17171A; --ink:#F4F4F2; --ink-2:#DADAD6; --grey:#A3A7AD; --grey-2:#6F747B; --line:#F4F4F2; --line-2:#2E2E33; --yel-wash:#3A3200; --red-wash:#3A1412; --amber-wash:#3A2A05; --green-wash:#0F2A17; --violet-wash:#221C3A; } }
:root[data-theme="dark"]{ --paper:#0F0F10; --paper-2:#17171A; --ink:#F4F4F2; --ink-2:#DADAD6; --grey:#A3A7AD; --grey-2:#6F747B; --line:#F4F4F2; --line-2:#2E2E33; --yel-wash:#3A3200; --red-wash:#3A1412; --amber-wash:#3A2A05; --green-wash:#0F2A17; --violet-wash:#221C3A; }

*{box-sizing:border-box} [hidden]{display:none!important}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);overflow-x:hidden}
body{font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum"}
h1,h2,h3{font-family:var(--head);font-weight:400;letter-spacing:-.01em;margin:0;text-transform:uppercase}
h1{font-size:22px} h2{font-size:15px} h3{font-size:12px;letter-spacing:.04em;color:var(--grey)}
button{font:inherit;cursor:pointer;color:inherit} a{color:inherit}
input,select,textarea{font:inherit;color:inherit}
.mono{font-family:var(--mono);font-size:12.5px}
.muted{color:var(--grey)} .small{font-size:12px} .right{text-align:right}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.grow{flex:1}

/* ---------- shell */
.top{display:flex;align-items:center;gap:14px;padding:12px var(--gutter) 10px;border-bottom:3px solid var(--line);flex-wrap:wrap}
.top img{height:22px;display:block}
.top .brand{font-family:var(--head);font-size:16px;text-transform:uppercase;letter-spacing:.02em}
.top .brand b{background:var(--yel);color:#0B0B0C;padding:1px 6px;margin-left:6px}
.top .who{margin-left:auto;font-size:12.5px;color:var(--grey)} .top .who b{color:var(--ink)}
.top select{border:2px solid var(--line);background:var(--paper);padding:4px 8px;border-radius:var(--r);font-weight:600}
.hz{height:8px;background:var(--hz)}
nav.tabs{display:flex;gap:0;border-bottom:2px solid var(--line);padding:0 var(--gutter);overflow-x:auto}
nav.tabs button{background:none;border:0;border-bottom:4px solid transparent;margin-bottom:-2px;padding:12px 14px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:12.5px;color:var(--grey);white-space:nowrap}
nav.tabs button.on{color:var(--ink);border-bottom-color:var(--yel)}
nav.tabs button .n.info{background:var(--grey-2);color:var(--paper)}
nav.tabs button .n{display:inline-block;min-width:18px;padding:0 5px;margin-left:6px;background:var(--ink);color:var(--yel);border-radius:9px;font-family:var(--mono);font-size:11px;line-height:18px;text-align:center}
main{padding:18px var(--gutter) 30px;max-width:1500px;margin:0 auto}
.lead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.lead p{margin:0;color:var(--grey);max-width:70ch}
.btn{border:2px solid var(--line);background:var(--paper);padding:7px 12px;border-radius:var(--r);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:12px}
.btn.y{background:var(--yel);border-color:var(--yel);color:#0B0B0C} .btn.k{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn:disabled{opacity:.5;cursor:default}
.btn.sm{padding:4px 8px;font-size:11px}

/* ---------- sign-in */
.signin{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}
.signin .hero{background:var(--yel);color:#0B0B0C;padding:40px;display:flex;flex-direction:column;justify-content:space-between;position:relative}
.signin .hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:12px;background:var(--hz)}
.signin .hero h1{font-size:clamp(34px,5vw,64px);line-height:.95}
.signin .hero p{font-size:15px;max-width:44ch;font-weight:500}
.signin .hero img{height:32px;align-self:flex-start}
.signin .side{display:flex;flex-direction:column;justify-content:center;padding:24px 0;overflow:auto}
.signin form{padding:40px 40px 16px;max-width:420px;margin:0 auto;width:100%}
.signin .demo{max-width:560px;margin:0 auto;padding:16px 40px 32px;width:100%;border-top:2px dashed var(--line-2)}
.signin .demo h2{font-size:16px;margin:0 0 8px}.signin .demo h3{font-size:14px;margin:16px 0 6px}
.demo-list{display:flex;flex-direction:column;gap:6px}
.demo-acc{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--paper);border:2px solid var(--line-2);border-radius:var(--r);padding:8px 10px;cursor:pointer;font:inherit;color:inherit}
.demo-acc:hover{border-color:var(--ink,#0B0B0C);background:var(--yel-wash,#FFF8D6)}
.demo-top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.demo-links{display:flex;flex-wrap:wrap;gap:6px}.demo-links a{border:1.5px solid var(--line-2);border-radius:var(--r);padding:4px 8px;font-size:13px;text-decoration:none;color:inherit}
.demo-links a:hover{border-color:var(--ink,#0B0B0C)}
.signin label{display:block;font-weight:700;text-transform:uppercase;font-size:11.5px;letter-spacing:.05em;margin:14px 0 4px}
.signin input{width:100%;border:2px solid var(--line);background:var(--paper);padding:10px 12px;border-radius:var(--r);font-size:15px}
.signin .err{background:var(--red-wash);color:var(--red);padding:8px 10px;border-radius:var(--r);margin-top:12px;font-weight:600}
@media (max-width:820px){.signin{grid-template-columns:1fr}.signin .hero{min-height:38dvh;padding:24px var(--gutter)}.signin form{padding:24px var(--gutter)}.signin .demo{padding:16px var(--gutter) 24px}}

/* ---------- tiles and tables */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:18px}
.tile{border:2px solid var(--line);border-radius:var(--r);padding:10px 12px;background:var(--paper);text-align:left;position:relative;min-height:84px}
.tile .k{font-family:var(--head);font-size:28px;line-height:1}
.tile .l{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--grey);margin-top:6px}
.tile .s{font-size:11.5px;color:var(--grey);margin-top:2px}
.tile.on{background:var(--yel);border-color:var(--yel);color:#0B0B0C} .tile.on .l,.tile.on .s{color:#3A3200}
.tile.sealed .k{color:var(--red)} .tile.atrisk .k{color:var(--amber)} .tile.complete .k{color:var(--green)} .tile.unresolved .k{color:var(--violet)}
.tile.sealed::before,.tile.atrisk::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;border-radius:2px 0 0 2px;background:var(--red)} .tile.atrisk::before{background:var(--amber)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px;align-items:start}
@media (max-width:480px){.grid2{grid-template-columns:1fr}}
section.card{border:2px solid var(--line);border-radius:var(--r);background:var(--paper);overflow:hidden}
section.card>header{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:2px solid var(--line);background:var(--paper-2)}
section.card>header h2{font-size:13px} section.card>header .muted{margin-left:auto;font-size:12px}
section.card .body{padding:12px}
section.card .empty{padding:18px 12px;color:var(--grey);font-style:italic}
table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--grey);padding:7px 10px;border-bottom:1px solid var(--line-2);font-weight:700}
table.t td{padding:7px 10px;border-bottom:1px solid var(--line-2);vertical-align:top}
table.t tr:last-child td{border-bottom:0}
table.t tr.click{cursor:pointer} table.t tr.click:hover td{background:var(--yel-wash)}
table.t td.num,table.t th.num{text-align:right;font-family:var(--mono);font-size:12.5px}
.bar{height:8px;background:var(--line-2);border-radius:4px;overflow:hidden;display:flex;min-width:120px}
.bar i{display:block;height:100%}
.bar .complete{background:var(--green)} .bar .sealed{background:var(--red)} .bar .atrisk{background:var(--amber)} .bar .returned{background:var(--red);opacity:.5} .bar .outstanding{background:var(--grey-2)} .bar .unresolved{background:var(--violet)} .bar .dormant{background:var(--line-2)}
.chip{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border:1.5px solid currentColor;line-height:16px;white-space:nowrap}
.chip.warn{color:#B45309}
.chip.complete{color:var(--green);background:var(--green-wash)} .chip.sealed{color:var(--red);background:var(--red-wash)} .chip.atrisk{color:var(--amber);background:var(--amber-wash)}
.chip.returned{color:var(--red)} .chip.outstanding{color:var(--grey)} .chip.unresolved{color:var(--violet);background:var(--violet-wash)} .chip.dormant{color:var(--grey-2);border-style:dashed}
.chip.pending{color:var(--amber)} .chip.accepted{color:var(--green)} .chip.open{color:var(--amber)} .chip.overdue{color:var(--red)} .chip.closed{color:var(--green)} .chip.linked{color:var(--green)} .chip.dismissed{color:var(--grey)}
.chip.recordable{color:var(--grey)} .chip.notifiable{color:var(--amber)} .chip.major{color:var(--red)} .chip.departure{color:var(--red);background:var(--red-wash)} .chip.proposed{color:var(--grey)}
.chip.k{background:var(--ink);color:var(--yel);border-color:var(--ink)}
.gap{display:inline-block;background:var(--amber-wash);color:#7A4A00;border-radius:3px;padding:1px 6px;font-size:11.5px;margin:2px 4px 2px 0;font-family:var(--mono)}
.days{font-family:var(--mono);font-weight:500} .days.neg{color:var(--red)} .days.soon{color:var(--amber)}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:13px}
.kv dt{color:var(--grey);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding-top:2px} .kv dd{margin:0}
.note{background:var(--yel-wash);border-left:4px solid var(--yel);padding:8px 12px;font-size:12.5px;margin:0 0 14px;color:var(--ink-2)}
.note b{color:var(--ink)}

/* ---------- building */
.bld{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;align-items:start}
.rail{border:2px solid var(--line);border-radius:var(--r);overflow:hidden;position:sticky;top:10px;max-height:calc(100dvh - 20px);overflow-y:auto}
.rail button{display:flex;width:100%;align-items:center;gap:8px;background:none;border:0;border-bottom:1px solid var(--line-2);padding:8px 10px;text-align:left}
.rail button:last-child{border-bottom:0}
.rail button.on{background:var(--yel);color:#0B0B0C}
.rail .code{font-family:var(--head);font-size:13px;width:38px}
.rail .nm{flex:1;font-size:12px;line-height:1.2;color:var(--grey)} .rail button.on .nm{color:#3A3200}
.rail .mini{display:flex;gap:2px;width:44px;height:6px}
.rail .mini i{display:block;height:100%;flex:1}
.plan-wrap{border:2px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper-2)}
.plantools{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:2px solid var(--line);background:var(--paper);flex-wrap:wrap}
.plantools .zb{border:2px solid var(--line);background:var(--paper);width:30px;height:28px;border-radius:var(--r);font-weight:700}
.plantools .zl{font-family:var(--mono);font-size:12px;min-width:36px}
.plantools .hint{font-size:11.5px;color:var(--grey);margin-left:auto}
.plantools .leg{display:flex;gap:8px;font-size:11px;flex-wrap:wrap}
.plantools .leg span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px;border:1.5px solid var(--ink)}
.leg .complete::before{background:var(--green)} .leg .sealed::before{background:var(--red)} .leg .atrisk::before{background:var(--amber)} .leg .outstanding::before{background:#fff} .leg .unresolved::before{background:var(--violet)} .leg .returned::before{background:#fff;border-color:var(--red)} .leg .seal::before{background:var(--yel);border-radius:0}
svg.plan{display:block;width:100%;height:min(62dvh,760px);touch-action:none;cursor:grab;background:#fff}
svg.plan:active{cursor:grabbing}
svg.plan .mk{cursor:pointer}
svg.plan .mk circle.c{stroke:#0B0B0C;stroke-width:1.2}
svg.plan .mk.complete circle.c{fill:var(--green)} svg.plan .mk.sealed circle.c{fill:var(--red)} svg.plan .mk.atrisk circle.c{fill:var(--amber)} svg.plan .mk.outstanding circle.c{fill:#fff} svg.plan .mk.unresolved circle.c{fill:var(--violet)} svg.plan .mk.returned circle.c{fill:#fff;stroke:var(--red);stroke-width:2} svg.plan .mk.dormant circle.c{fill:#eee;stroke-dasharray:2 2}
svg.plan .mk.dim{opacity:.18}
svg.plan .mk.sel circle.c{stroke:var(--yel);stroke-width:4}
svg.plan .mk circle.hit{fill:transparent}
svg.plan .ts rect{fill:var(--yel);stroke:#0B0B0C;stroke-width:1.2}
svg.plan .gl{stroke:#0B0B0C;stroke-opacity:.18;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}
svg.plan .gt{font-family:var(--mono);fill:#0B0B0C;fill-opacity:.55;font-weight:500}
.nosheet{padding:40px;text-align:center;color:var(--grey)}
.listtools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0 8px}
.listtools input{border:2px solid var(--line);padding:7px 10px;border-radius:var(--r);min-width:220px;flex:1;max-width:360px;background:var(--paper)}
.facets{display:flex;gap:4px;flex-wrap:wrap}
.facets button{border:2px solid var(--line);background:var(--paper);border-radius:14px;padding:3px 10px;font-size:12px;font-weight:700}
.facets button.on{background:var(--ink);color:var(--yel);border-color:var(--ink)}
.facets button .n{font-family:var(--mono);font-weight:500;margin-left:5px;opacity:.8}
@media (max-width:860px){.bld{grid-template-columns:minmax(0,1fr)}.rail{position:static;max-height:none;display:flex;overflow-x:auto}.rail button{flex-direction:column;align-items:flex-start;min-width:84px;border-bottom:0;border-right:1px solid var(--line-2);gap:3px}.rail .nm{display:none}.rail .mini{width:100%}}

/* ---------- drawer (the chain) */
#drawer{position:fixed;inset:0 0 0 auto;width:min(560px,100%);background:var(--paper);border-left:3px solid var(--line);z-index:30;overflow-y:auto;box-shadow:-10px 0 40px rgba(0,0,0,.15)}
#drawer .dh{position:sticky;top:0;background:var(--yel);color:#0B0B0C;padding:12px 16px;display:flex;align-items:flex-start;gap:12px;border-bottom:3px solid var(--line);z-index:1}
#drawer .dh h2{font-size:20px;text-transform:none;letter-spacing:0;font-family:var(--mono);font-weight:500}
#drawer .dh .x{margin-left:auto;border:2px solid #0B0B0C;background:transparent;width:32px;height:32px;border-radius:var(--r);font-weight:700}
#drawer .dh .sub{font-size:12.5px;color:#3A3200;margin-top:2px}
#drawer .sec{padding:12px 16px;border-bottom:1px solid var(--line-2)}
#drawer .sec h3{margin-bottom:8px}
.req{display:flex;align-items:flex-start;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line-2);font-size:13px}
.req:last-child{border-bottom:0}
.req .st{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex:none;display:grid;place-items:center;font-size:12px;font-weight:700}
.req .st.ok{background:var(--green);border-color:var(--green);color:#fff} .req .st.ret{background:var(--red);border-color:var(--red);color:#fff} .req .st.pend{background:var(--amber);border-color:var(--amber);color:#fff}
.req .lvl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--grey);font-weight:700}
.ev{border:1.5px solid var(--line-2);border-radius:var(--r);padding:8px 10px;margin:6px 0;font-size:12.5px}
.ev .row{justify-content:space-between}
.photo{display:inline-block;width:96px;height:72px;object-fit:cover;background:var(--paper-2);border:1px solid var(--line-2);border-radius:3px;margin:6px 6px 0 0}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:29}
@media (max-width:640px){#drawer{inset:auto 0 0 0;width:100%;max-height:88dvh;border-left:0;border-top:3px solid var(--line);border-radius:12px 12px 0 0}}

/* ---------- capture (link session) */
.cap{max-width:560px;margin:0 auto}
.cap .work{border:2px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:8px;display:flex;gap:12px;align-items:center}
.cap .work .id{font-family:var(--mono);font-weight:500;font-size:14px}
.cap .work .where{font-size:12px;color:var(--grey)}

/* ---------- footer, toast */
.foot{padding:10px var(--gutter) 16px;font-size:11px;color:var(--grey);border-top:1px solid var(--line-2);display:flex;gap:14px;flex-wrap:wrap;max-width:1500px;margin:0 auto}
#toast{position:fixed;left:50%;bottom:48px;transform:translateX(-50%);background:var(--ink);color:var(--yel);padding:10px 16px;border-radius:var(--r);font-weight:700;z-index:40;max-width:90vw}
.loading{padding:60px;text-align:center;color:var(--grey);font-family:var(--head);text-transform:uppercase;letter-spacing:.1em}
@media (max-width:640px){.plantools .hint{display:none}.plantools .leg{width:100%;order:9}.top .who{margin-left:0;width:100%}svg.plan{height:52dvh}}

/* ---------- session 3: forms, gate results, inbox, capture item */
.acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
.ev.faded{opacity:.55}
.recform{border:2px solid var(--line);border-radius:var(--r);padding:12px;margin:10px 0;background:var(--paper-2)}
.recform h4{margin:0 0 4px;font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:13px}
.recform label{display:block;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.05em;margin:12px 0 4px;color:var(--grey)}
.recform input[type=text],.recform input[type=number],.recform select,.recform textarea,.reasonbox textarea,.reasonbox select{width:100%;border:2px solid var(--line);background:var(--paper);padding:9px 10px;border-radius:var(--r);font-size:15px}
.recform input[type=file]{display:block;width:100%;padding:8px 0;font-size:13px}
.recform .quick,.reasonbox .quick{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:4px 0 2px}
.recform .quick .btn.on{background:var(--yel);border-color:var(--yel)}
.recform .err,.reasonbox .err{background:var(--red-wash);color:var(--red);padding:8px 10px;border-radius:var(--r);margin-top:10px;font-weight:600}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.thumb img{width:112px;height:84px;object-fit:cover;border:1px solid var(--line-2);border-radius:3px;display:block}
.thumb .ok{color:var(--green)} .thumb .warn{color:var(--amber)} .thumb .bad{color:var(--red)}
.gate{border-left:4px solid var(--green);background:var(--green-wash);padding:8px 12px;border-radius:var(--r);margin-top:10px;font-size:13px}
.gate.bad{border-color:var(--red);background:var(--red-wash)}
ul.checks{list-style:none;margin:6px 0 0;padding:0;font-size:12.5px}
ul.checks li{display:flex;gap:8px;align-items:flex-start;padding:2px 0}
ul.checks .m{width:18px;height:18px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--green)}
ul.checks li.bad .m{background:var(--red)} ul.checks li.note .m{background:var(--grey-2);font-style:italic;font-family:serif}
ul.checks li.note{color:var(--grey)}
.reasonbox{margin-top:8px;padding:10px;border:2px dashed var(--line-2);border-radius:var(--r)}
.reasonbox label{display:block;font-weight:700;font-size:12px;margin-bottom:6px}
details summary{cursor:pointer;margin-top:8px;color:var(--grey)}

.inbox{display:flex;flex-direction:column;gap:12px}
.inbox .item{display:grid;grid-template-columns:200px 1fr;gap:14px;border:2px solid var(--line);border-radius:var(--r);padding:12px;background:var(--paper)}
.inbox .media{display:flex;flex-direction:column;gap:6px}
.inbox .media img{width:100%;height:140px;object-fit:cover;border:1px solid var(--line-2);border-radius:3px;display:block;background:var(--paper-2)}
.inbox .media .doc{display:block;border:1.5px solid var(--line-2);border-radius:3px;padding:10px;font-size:12.5px;text-decoration:none;background:var(--paper-2)}
.inbox .nomedia{height:80px;display:grid;place-items:center;color:var(--grey-2);border:1px dashed var(--line-2);border-radius:3px;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.inbox .id{font-size:14px;font-weight:500;cursor:pointer;text-decoration:underline;text-decoration-color:var(--yel);text-underline-offset:3px}
@media (max-width:700px){.inbox .item{grid-template-columns:1fr}.inbox .media{flex-direction:row;overflow-x:auto}.inbox .media img{width:140px;height:100px;flex:none}}

.cap .work{cursor:pointer}
.cap .work.ret{border-color:var(--red)}
.cap .work .st{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);flex:none;display:grid;place-items:center;font-size:13px;font-weight:700}
.cap .work .st.ok{background:var(--green);border-color:var(--green);color:#fff} .cap .work .st.ret{background:var(--red);border-color:var(--red);color:#fff} .cap .work .st.pend{background:var(--amber);border-color:var(--amber);color:#fff}
.cap .capsearch{width:100%;border:2px solid var(--line);padding:9px 10px;border-radius:var(--r);margin:0 0 10px;background:var(--paper);font-size:15px}
.cap .caphead{margin:12px 0 14px} .cap .caphead h1{font-size:20px;text-transform:none;font-weight:500} .cap .caphead .where{color:var(--grey);font-size:13px}
.cap .recform input,.cap .recform select{font-size:16px}
.tablewrap{overflow-x:auto;max-width:100%}

/* ---------- session 4: people, competence, sessions */
.instline{margin-top:6px;color:var(--grey);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.instline b{color:var(--ink)}
img.selfie{width:34px;height:34px;object-fit:cover;border-radius:50%;border:2px solid var(--line);vertical-align:middle}
tr.faded td{opacity:.5}
.recform textarea{width:100%;border:2px solid var(--line);background:var(--paper);padding:9px 10px;border-radius:var(--r);font-size:15px}
.recform input[type=date],.recform input[type=password]{width:100%;border:2px solid var(--line);background:var(--paper);padding:9px 10px;border-radius:var(--r);font-size:16px}
.cap .recform input[type=password]{font-size:28px;letter-spacing:12px;text-align:center}

/* ---------- Today as a desk */
section.card.attention{margin-bottom:18px;border-width:3px}
section.card.attention>header{background:var(--yel);color:#0B0B0C}
section.card.attention>header .muted{color:#3A3200}
table.att td.rk{width:14px;padding-right:0}
table.att td.rk i{display:block;width:8px;height:8px;border-radius:50%;margin-top:6px}
table.att td.rk i.sealed{background:var(--red)} table.att td.rk i.atrisk{background:var(--amber)} table.att td.rk i.outstanding{background:var(--grey-2)} table.att td.rk i.dormant{background:var(--line-2)}
table.att td.k{width:120px;white-space:nowrap}
table.att td.go{width:28px;text-align:right;color:var(--grey);font-size:18px}
table.att td{font-size:14px;padding:10px}
.tiles{margin-bottom:14px}
.tile{min-height:72px;padding:8px 10px} .tile .k{font-size:24px} .tile .s{display:none}
@media (min-width:1100px){.tile .s{display:block}}
@media (max-width:700px){table.att td.k{display:none} table.att td{padding:10px 6px}}

/* ---------- import */
.chip.import{background:#E8F0FE;color:#1A3E8A;border-color:#1A3E8A}
table.imp td{vertical-align:top;font-size:13px} table.imp td.small{max-width:360px}
.tiles.small .tile{min-height:56px} .tiles.small .tile .k{font-size:20px}

/* ---------- organisational capability */
.scores{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.score{font-family:var(--mono);font-size:12px;padding:2px 7px;border-radius:4px;border:1px solid var(--line);background:var(--paper-2)}
.score.s0{border-color:var(--red);color:var(--red)} .score.s1{border-color:var(--amber);color:#7A4A00} .score.s2{border-color:var(--green);color:var(--green)} .score.s3{border-color:var(--green);background:var(--green-wash);color:var(--green)}
.recform table.t select, .recform table.t input{margin:0;width:100%}

/* ---------- setup */
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--grey)} .dot.red{background:var(--red)}
.recform input[type=checkbox]{width:auto;margin:4px 0 10px}
.georef .gwrap{border:2px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper-2);margin:8px 0}
.georef svg.gplan{width:100%;height:520px;display:block;cursor:crosshair;touch-action:none}
.georef .gpts circle{fill:rgba(255,212,0,.35);stroke:var(--ink);stroke-width:2} .georef .gpts circle.on{fill:var(--red);stroke:#fff}
.georef .gpts text{font-family:var(--mono);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:3px}
.georef table tr.on td{background:var(--yel-wash)}
body.placing svg.plan{cursor:crosshair;outline:3px solid var(--yel)}

/* Today — the closure programme (one closure at a time over the programme table) */
.cl-next{background:var(--yel);color:var(--ink);padding:14px 20px 16px;border-bottom:2px solid var(--line);outline:none}
.cl-next:focus-visible{box-shadow:inset 0 0 0 3px var(--ink)}
.cl-next.past{background:var(--red-wash)} .cl-next.done{background:var(--paper-2)}
.cl-top{display:flex;align-items:center;gap:8px}
.cl-k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.cl-pos{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin-right:4px}
.cl-arrow{width:32px;height:32px;border:2px solid var(--line);border-radius:var(--r);background:var(--paper);font:inherit;font-size:20px;line-height:1;cursor:pointer;color:var(--ink)}
.cl-arrow:disabled{opacity:.35;cursor:default}
.cl-arrow:hover:not(:disabled){background:var(--ink);color:var(--yel)} .cl-next.past .cl-arrow:hover:not(:disabled),.cl-next.done .cl-arrow:hover:not(:disabled){color:var(--paper)}
.cl-big{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:2px 0 10px}
.cl-big .n{font-family:var(--head);font-size:clamp(64px,9vw,112px);line-height:.85;letter-spacing:-.03em}
.cl-big .n.sm{font-size:clamp(40px,5vw,64px);line-height:1}
.cl-big .w{font-family:var(--head);font-size:26px;line-height:1;padding-bottom:6px}
.cl-big .cl-what{font-size:14px;font-weight:500;padding-bottom:6px;line-height:1.35;margin-left:10px}
.cl-counts{display:flex;gap:22px;align-items:baseline;flex-wrap:wrap;font-size:13px;font-weight:600}
.cl-counts b.mono{font-family:var(--mono);font-size:28px;font-weight:500;margin-right:4px}
.red{color:var(--red)}
.amber{color:var(--amber)}
.cl-counts .link{text-decoration:underline;color:inherit}
.cl-t tr.shown td{background:var(--yel-wash)} .cl-t tr.shown td:first-child{box-shadow:inset 4px 0 0 var(--ink)}
.cl-t tr.closed td{color:var(--grey)}
.cl-foot{padding:10px 16px 12px;border-top:2px solid var(--line)}

/* Today — packages open to their storeys */
.pkgs td.tw{width:22px;padding-right:0;color:var(--grey)}
.pkgs .tri{display:inline-block;transition:transform .12s}
.pkgs tr.parent.open .tri{transform:rotate(90deg)}
.pkgs tr.parent.open td{background:var(--paper-2)}
.pkgs tr.kid td{background:var(--paper);border-bottom-style:dashed}
.pkgs tr.kid td:nth-child(2){padding-left:14px}
.pkgs tr.kid b{font-weight:600}
.cl-next.seal{background:var(--amber-wash)} .cl-next.seal.past{background:var(--red-wash)}
.cl-t tr.seal td{background:#FFFDF5}
.cl-next.comp{background:var(--violet-wash)} .cl-next.comp.past{background:var(--red-wash)}
.cl-t tr.comp td{background:#FBFAFF}
section.card header .facets.sm{display:inline-flex;gap:4px;margin-left:12px}
section.card header .facets.sm button{font:inherit;font-size:11px;font-weight:600;padding:3px 8px;border:1.5px solid var(--line-2);border-radius:999px;background:var(--paper);cursor:pointer;color:var(--ink)}
section.card header .facets.sm button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
section.card header .facets.sm button .n{margin-left:5px;font-family:var(--mono);font-weight:500;opacity:.8}
section.card header .grow{flex-grow:1}
@media (max-width:700px){section.card header .facets.sm{display:none}}

/* form help: a plain sentence under the label, not part of it */
.recform .fhint{font-size:12.5px;line-height:1.4;color:var(--grey);margin:-2px 0 6px;text-transform:none;letter-spacing:0;font-weight:400;max-width:90ch}

/* whose move on Needs attention */
table.att td.who{white-space:nowrap;text-align:right;width:1%}
.whose{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-2)}
.whose.me{color:var(--ink);background:var(--yel);padding:1px 6px;border-radius:9px}
@media (max-width:640px){table.att td.who{display:none}table.att tr.mine td:nth-child(3){font-weight:600}}

.offsheet{padding:6px 10px;background:var(--amber-wash);border-bottom:2px solid var(--line)}
@media (max-width:640px){nav.tabs{flex-wrap:wrap;padding:0 6px}nav.tabs button{padding:10px 7px;font-size:11px;letter-spacing:.01em}}
.note.sealedhead{background:var(--red-wash);border-left:4px solid var(--red);margin-top:14px}

/* ---------- Gateway 3 build (g3.js) */
.recform h4{margin:16px 0 4px}
.changeform{max-width:860px}
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:6px 0}
.tier{display:flex;gap:8px;align-items:flex-start;border:2px solid var(--line);border-radius:var(--r);padding:8px 10px;cursor:pointer;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;font-size:13px!important;margin:0!important}
.tier input{margin-top:3px}
.checks{display:flex;flex-direction:column;gap:4px;margin:4px 0}
.ck{display:flex!important;gap:8px;align-items:center;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;font-size:13px!important;margin:0!important}
tr.hist td{background:var(--paper-2)}
.g3sub{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.g3sub .grow{flex:1}
.g3foot{margin-top:16px;font-size:12px;color:var(--grey)}
.state{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border:1.5px solid currentColor;white-space:nowrap}
.state.held{color:var(--green)} .state.partly{color:#B45309} .state.not{color:var(--red)} .state.na,.state.settled{color:var(--grey)}
@media (max-width:640px){.tiers{grid-template-columns:1fr}}
table.matrix td{vertical-align:top}
.stcounts{display:flex;flex-direction:column;gap:1px;white-space:nowrap}
.green{color:var(--green)}
.sysline{padding:6px 10px;border:2px solid var(--line);border-radius:var(--r);background:var(--paper-2);margin-bottom:10px}
.sysrec{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0}
.sysrec .st{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:50%;font-size:11px;font-weight:700}
.sysrec .st.ok{background:var(--green);border-color:var(--green);color:#fff}.sysrec .st.pend{border-color:var(--amber)}.sysrec .st.ret{border-color:var(--red);color:var(--red)}
tr.faded td{opacity:.55}
.counts{display:flex;flex-wrap:wrap;gap:6px 18px;background:var(--yel-wash);border-bottom:2px solid var(--line)}
table.ready tr.sec td{background:var(--paper-2);font-family:var(--head);text-transform:uppercase;font-size:12px;letter-spacing:.04em}
table.ready td{vertical-align:top}
/* raised from site (13 Oct) */
.raisebtn{display:block;text-align:center;margin:10px 0 14px;padding:14px;border:2px dashed var(--ink,#0b0b0c);background:#fff;font-weight:700;text-decoration:none}
.raisedrow{display:flex;gap:16px;align-items:flex-start;padding:14px 16px}
.raisedrow .grow{flex:1;min-width:0}
.rphoto{flex:0 0 132px}
.rphoto img{width:132px;height:99px;object-fit:cover;display:block;border:1px solid #ccc}
.raisedlist{display:flex;flex-direction:column;gap:12px}
.card.raised{padding:0}
svg.plan .pin{fill:#ffd400;stroke:#0b0b0c;stroke-width:3}
@media (max-width:480px){.raisedrow{flex-direction:column}.rphoto{flex:none}.rphoto img{width:100%;height:auto}}
/* project areas (024) */
nav button.off,.facets button.off{opacity:.45}
.offpanel .body{padding:28px 30px;max-width:760px}
.offpanel h2{margin:0 0 10px;font-size:22px}
.areas{display:flex;flex-direction:column;gap:12px}
.ck.area{display:flex;gap:10px;align-items:flex-start}
/* 025 detected from revisions; the sample project */
.samplebar{background:var(--yel);color:#0B0B0C;padding:7px 16px;font-size:13px;text-align:center}
.drev{border-top:1px solid var(--line-2);padding:12px 0}
.drev:first-child{border-top:0}
.drev .row{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.drev .note{margin:6px 0}
.overlay img{max-width:100%;border:1px solid var(--line,#ddd);margin:8px 0;background:#fff}
.sw{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin:0 3px 0 8px}
.sw.grey{background:#afafaf}.sw.red{background:#d62828}.sw.blue{background:#1e5adc}
table.diffs td{vertical-align:top}
.decidebar{position:sticky;bottom:0;background:var(--paper,#fff);border:1.5px solid var(--ink,#111);padding:10px 14px;margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;z-index:5}
.decidebar .bslot{flex-basis:100%}
.subtabs{display:flex;gap:6px;margin:0 0 12px}
.subtabs button{border:1.5px solid var(--ink);background:none;color:var(--ink);padding:4px 12px;border-radius:14px;font-size:12px;cursor:pointer}
.subtabs button.on{background:var(--ink);color:var(--paper)}
.prog{margin-top:10px}.prog .bar{height:8px;border:1.5px solid var(--ink);border-radius:5px;overflow:hidden}.prog .bar i{display:block;height:100%;width:0;background:var(--yel);transition:width .4s}
.card h4{margin:12px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.findform .frow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}
.findform .frow label{margin:0}
.findform .cond input[name=p]{width:220px}.findform .cond input[name=v]{width:180px}
.findform select,.findform input{width:auto;min-width:180px;max-width:100%}
.findform .frow select[name=cls]{min-width:260px}
.recform label.chk{display:flex;align-items:center;gap:8px;text-transform:none;font-size:14px;letter-spacing:0;color:var(--ink);font-weight:600}
.recform label.chk input[type=checkbox]{margin:0}
.rail button.all{border-bottom:2px solid var(--line)}
