/* /facility-watch/fw.css — Facility watch, control-room design.
 * Built from the canvas claude.ai/artifact/Bvustw8qzyk1KRw4ZCCAvP (Sam picked Porcelain, 2026-09-20).
 * Every colour is a token on .pw, so one markup serves three palettes:
 *   porcelain (light, default) · blueprint (VISION dark) · rust (matte, painted plates; data-pal="rust").
 * Roles: ground/ink = the page; paper/pink = instrument faces; card = a facility's dial card and the
 * drawn building; plate = where lamps and lit windows sit (transparent except in rust); board = the
 * departures board. Red and amber are lamps only — PUT-compliance highlighting (2026-09-26) is the one exception, adding
 * --good as a third lamp because that reading genuinely has a "no action needed" state, not just an
 * absence of one. All fills are flat: no gradient, glow or shadow. */
.pw{--ground:#f5f8fc;--panel:#e1eaf6;--paper:#fff;--ink:#11205e;--soft:#4a5a8f;--pink:#11205e;--psoft:#4a5a8f;--hair:#c9d4ea;
  --bar:#11205e;--bar-ink:#f5f8fc;--bar-soft:#aab6dd;--bezel:#11205e;--ring:#d5deee;--trace:#1f3fd1;--wave:#1f3fd1;--wave-op:.14;
  --red:#d92f14;--red-t:#c0260e;--amber:#f2a20c;--good:#1a8f4c;--unlit:#c3cee3;--red-ink:#fff;--amber-ink:#11205e;--focus:#1f3fd1;
  --card:var(--panel);--card-ink:var(--ink);--card-soft:var(--soft);--card-read:var(--red-t);--card-b:var(--ink);
  --plate:transparent;--plate-ink:var(--ink);--plate-soft:var(--soft);--plate-pad:0px;--pipe:var(--ink);--win-b:var(--ink);
  --board:#11205e;--board-ink:#f5f8fc;--board-soft:#aab6dd;--board-line:#2c3c7d;--board-red:#ff6a5c;--board-amber:#ffb938;--board-unlit:#47578f;
  --vessel:#fff;--liquid:#a9b9ee;--tank:#1f3fd1;--tank-ink:#fff;--head:'B612';--head-w:700}
[data-nerve-theme="dark"] .pw{--ground:#123c73;--panel:#1a4b8c;--paper:#eaf2fb;--ink:#f3f8ff;--soft:#bcd3ee;--pink:#0d2c57;--psoft:#3d5f8a;--hair:#2d5c9c;
  --bar:#0a2547;--bar-ink:#f3f8ff;--bar-soft:#9fbce0;--bezel:#0a2547;--ring:#c3d6ec;--trace:#123c73;--wave:#123c73;--wave-op:.18;
  --red:#e5283d;--red-t:#ffa3a6;--amber:#ffbf2e;--good:#3ddc84;--unlit:#3f68a3;--amber-ink:#0d2c57;--focus:#ffbf2e;--card-read:#ffa3a6;
  --board:#0a2547;--board-line:#1d4475;--board-unlit:#33588c;--vessel:#0f3261;--liquid:#9fc0ea;--tank:#eaf2fb;--tank-ink:#0d2c57}
.pw[data-pal="rust"]{--ground:#2b2521;--panel:#4a3f38;--paper:#e9dfcb;--ink:#f3e7d3;--soft:#c9b8a0;--pink:#241a14;--psoft:#5e4a38;--hair:#4a3c34;
  --bar:#8a4526;--bar-ink:#f8ecd8;--bar-soft:#f0dec2;--bezel:#1a1512;--ring:#d2c4a6;--trace:#1f5560;--wave:#a5512b;--wave-op:.3;
  --red:#d5301f;--red-t:#ff9a8f;--amber:#f0b323;--good:#7a9a4a;--unlit:#4f433b;--amber-ink:#241a14;--focus:#f0b323;
  --card-ink:#f8ecd8;--card-soft:#eadbc0;--card-read:#f8ecd8;--card-b:#1c1410;--plate:#1f1a17;--plate-ink:#f8ecd8;--plate-soft:#c9b79c;--plate-pad:18px;--pipe:#a5512b;--win-b:#120e0c;
  --board:#1f1a17;--board-ink:#f8ecd8;--board-soft:#c9b79c;--board-line:#3d332d;--board-red:#e8452f;--board-amber:#f0b323;--board-unlit:#4f433b;
  --vessel:#00000038;--liquid:#d9ccb073;--tank:#f3e7d3;--tank-ink:#241a14;--head:'Allerta Stencil';--head-w:400}
.pw[data-pal="rust"] [data-role="mega"]{--card:#3b5c88}.pw[data-pal="rust"] [data-role="cross"]{--card:#25616a}
.pw[data-pal="rust"] [data-role="origin"]{--card:#525f27}.pw[data-pal="rust"] [data-role="dest"]{--card:#74405f}

html,body{margin:0}
body.fw-body{background:#f5f8fc;font-family:'B612','Trebuchet MS',Verdana,sans-serif}
[data-nerve-theme="dark"] body.fw-body{background:#123c73}
.pw{min-height:100vh;min-height:100dvh;box-sizing:border-box;background:var(--ground);color:var(--ink);display:flex;flex-direction:column;font-size:14px;line-height:1.35;overflow-x:clip}
.pw a{color:inherit}.pw a:hover{text-decoration:underline}
.pw button,.pw input{font-family:inherit;color:inherit}
.pw button:focus-visible,.pw a:focus-visible,.pw input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.pw [hidden]{display:none!important}
.pw h1,.pw h2,.pw h3{margin:0;font-family:var(--head),'B612',sans-serif;font-weight:var(--head-w)}
.pw h1{font-size:22px}.pw h2{font-size:20px}.pw h3{font-size:16px}
.mono,.fw-m12,.fw-m11{font-variant-numeric:tabular-nums}.fw-asof{font-family:'B612 Mono',ui-monospace,Menlo,monospace}.arc{font-weight:700}
.t-red{color:var(--red-t)}.t-amber,.t-ok,.t-flat,.t-ghost{color:inherit}.fw-r{text-align:right}.fw-err{color:var(--red-t)}
.fw-fine{display:block;margin-top:8px;font-size:12.5px;color:var(--soft)}
.fw-state{padding:64px 0;text-align:center;color:var(--soft)}.fw-state b{display:block;margin-bottom:6px;font-size:18px;color:var(--ink)}
.fw-wrap{width:100%;max-width:1440px;margin:0 auto;box-sizing:border-box;padding:0 36px}
.fw-lamp{flex:none;display:inline-block;width:14px;height:14px;box-sizing:border-box;border-radius:50%;border:2px solid currentColor;background:var(--unlit)}
.fw-lamp.red{background:var(--red)}.fw-lamp.amber{background:var(--amber)}.fw-lamp.flat{background:transparent}

/* top bar + scope row: full-bleed, content on the 1440 column */
.fw-top,.fw-scope,.fw-strip{padding-left:max(36px,calc((100% - 1440px)/2 + 36px));padding-right:max(36px,calc((100% - 1440px)/2 + 36px))}
.fw-top,.fw-scope,.fw-strip{padding-left:max(36px,calc((100% - 1440px)/2 + 36px),env(safe-area-inset-left));padding-right:max(36px,calc((100% - 1440px)/2 + 36px),env(safe-area-inset-right))}
.fw-top{min-height:52px;box-sizing:border-box;display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-top:env(safe-area-inset-top);background:var(--bar);color:var(--bar-ink)}
.fw-menu-btn{display:none;align-items:center;gap:8px;min-height:44px;padding:0 10px;font:700 14px 'B612',sans-serif;cursor:pointer;color:var(--bar-ink);background:transparent;border:2px solid var(--bar-soft);border-radius:3px}
.fw-menu-btn::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}.fw-top.open .fw-menu-btn::after{transform:translateY(2px) rotate(-135deg)}
.fw-brand b{font-size:17px}.fw-brand i{margin-left:6px;font-style:normal;font-size:17px;color:var(--bar-soft)}
.fw-nav{display:flex;gap:4px}
.pw .fw-nav a{display:flex;align-items:center;height:44px;padding:0 14px;font-size:14px;color:var(--bar-soft);text-decoration:none;border-radius:3px}
.pw .fw-nav a.on{font-weight:700;color:var(--bar);background:var(--bar-ink)}
.fw-top-r{margin-left:auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.fw-asof{font-size:12px;color:var(--bar-soft)}
.fw-user{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--bar-soft)}
.fw-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:700;color:var(--bar);background:var(--bar-ink)}
.fw-seg{display:flex;border:2px solid currentColor;border-radius:3px;overflow:hidden}
.fw-seg button{min-height:40px;padding:0 14px;font-size:13.5px;cursor:pointer;border:0;background:transparent}
.fw-scope .fw-seg button[aria-pressed="true"]{font-weight:700;color:var(--ground);background:var(--ink)}
.fw-top .fw-seg button{min-height:32px}.fw-top .fw-seg button[aria-pressed="true"]{font-weight:700;color:var(--bar);background:var(--bar-ink)}
.fw-scope{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px;border-bottom:2px solid var(--ink)}
.fw-city,.fw-find{position:relative;display:flex;align-items:center;gap:10px}
.fw-citybtn{min-height:44px;padding:0 16px;font-size:14px;cursor:pointer;background:transparent;border:2px solid var(--ink);border-radius:3px}
.fw-citybtn.on{font-weight:700;color:var(--ground);background:var(--ink)}
.fw-find label{font-size:14px;color:var(--soft)}
.fw-find input,.fw-pop input{width:210px;height:44px;box-sizing:border-box;padding:0 12px;font-size:14px;color:var(--pink);background:var(--paper);border:2px solid var(--ink);border-radius:3px}
.fw-pop{position:absolute;z-index:30;top:50px;left:0;width:320px;max-height:380px;overflow:auto;padding:6px;color:var(--pink);background:var(--paper);border:2px solid var(--ink);border-radius:3px}
.fw-pop input{width:100%;margin-bottom:6px}
.fw-pop button{display:flex;justify-content:space-between;gap:10px;width:100%;min-height:40px;padding:0 8px;text-align:left;font-size:13.5px;cursor:pointer;color:var(--pink);background:transparent;border:0}
.fw-pop button:hover:not(:disabled){background:var(--ring)}.fw-pop button span{color:var(--psoft);font-size:12px}
.pw .fw-pop-x{display:none;width:auto;flex:none;justify-content:center;align-items:center;margin:0 0 6px auto;padding:0 12px;font-weight:700;border:2px solid var(--pink);border-radius:3px}
.fw-status{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:15px}.fw-status .fw-lamp{width:18px;height:18px}

/* sections */
.fw-sec{padding-top:28px}
.fw-sh{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:14px}.fw-sh>span{font-size:13.5px;color:var(--soft)}

/* act first: one dial per facility */
.fw-acts{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:24px;align-items:stretch}
.fw-acts-r{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pw a.fw-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:8px 12px;align-items:center;padding:12px;text-decoration:none;color:var(--card-ink);background:var(--card);border:2px solid var(--card-b);border-radius:6px}
.pw a.fw-card.lead{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:22px;padding:18px}
.fw-card>.fw-card-n{grid-column:1/-1}
.fw-card:hover .fw-card-n{text-decoration:underline}.fw-card .fw-dial{width:100%;height:auto}
.fw-card-b{display:flex;flex-direction:column;gap:5px;min-width:0}.lead .fw-card-b{gap:10px}
.fw-card-n{font-family:var(--head),'B612',sans-serif;font-weight:var(--head-w);font-size:15px;line-height:1.15}.lead .fw-card-n{font-size:24px}
.fw-card-m{font-size:14px;color:var(--card-soft)}.fw-fhead .fw-card-m{color:var(--soft)}
.fw-card-v{font-size:22px;font-weight:700;line-height:1}.fw-card-v.red{color:var(--card-read)}.fw-card-v small{font-size:12px;font-weight:400;color:var(--card-soft)}.fw-lead-v{display:none}
.fw-card-l{font-size:12.5px}.lead .fw-card-l{font-size:17px}
.fw-card-w{font-size:13px;color:var(--card-soft)}.fw-card-c{font-size:12.5px;font-weight:700}.lead .fw-card-c{font-size:14px}
.fw-lamps{display:flex;flex-direction:column;gap:6px;font-size:14px}.fw-lamps span{display:flex;align-items:center;gap:9px}
.fw-lamps.row{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px;max-width:860px}
.fw-key{display:block;padding:12px 14px;font-size:12.5px;color:var(--pink);background:var(--paper);border:2px solid var(--card-b);border-radius:6px}
.fw-key summary{font-size:14px;font-weight:700;list-style:none;pointer-events:none}.fw-key summary::-webkit-details-marker{display:none}.fw-key-b{display:flex;flex-direction:column;gap:7px;margin-top:7px}
.fw-key b{font-size:14px}.fw-key span{display:flex;align-items:center;gap:8px}.fw-key i{flex:none;width:22px}
.k-wave{height:10px;background:var(--wave);opacity:.35}.k-line{height:3px;background:var(--trace)}.k-arc{height:7px;background:var(--red)}
.d-bezel{fill:var(--bezel)}.d-face,.d-hub{fill:var(--paper)}.d-hub{stroke:var(--pink);stroke-width:2}.d-ring{fill:none;stroke:var(--ring)}
.d-tick{fill:none;stroke:var(--pink);stroke-width:1.4}.d-wave{fill:var(--wave);fill-opacity:var(--wave-op);stroke:var(--wave);stroke-opacity:.5}
.d-today{fill:none;stroke:var(--trace);stroke-linejoin:round}.d-hand{fill:none;stroke:var(--pink)}
.d-arc{fill:none;stroke:var(--psoft)}.d-arc.red{stroke:var(--red)}.d-arc.amber{stroke:var(--amber)}
.d-read{font:700 22px 'B612',sans-serif;fill:var(--pink)}.d-read.red{fill:var(--red)}.d-lab{font:8.5px 'B612',sans-serif;fill:var(--psoft)}.d-hr{font:9px 'B612 Mono',monospace;fill:var(--psoft);paint-order:stroke;stroke:var(--paper);stroke-width:3px}

/* flow line: six steps on one pipe, a lamp each */
.fw-flow{position:relative;display:grid;padding:22px var(--plate-pad) 8px;color:var(--plate-ink);background:var(--plate);border-radius:6px}
.fw-flow::before{content:"";position:absolute;left:calc(var(--plate-pad) + 14px);right:calc(var(--plate-pad) + 14px);top:33px;height:6px;background:var(--pipe)}
.fw-flow>*{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:0 16px 12px 0;text-align:left;background:transparent;border:0}
.fw-flow>button{cursor:pointer}.fw-flow>button[aria-pressed="true"] b{text-decoration:underline}
.fw-flow .fw-lamp{width:28px;height:28px;border-width:3px}.fw-flow>*>b{padding-top:6px;font-size:15px}
.fw-flow-v{font-size:32px;font-weight:700;line-height:1}.fw-flow-l{font-size:13.5px}.fw-flow-d,.fw-flow-s{font-size:12.5px;color:var(--plate-soft)}.fw-flow-s{display:none}
/* a drill moved under the row of the thing pressed (FW.under, ≤1180px) spans its grid and takes none of the row's styling */
.pw .fw-under{display:block;grid-column:1/-1;padding:0;text-align:left;background:none;border:0}.pw .fw-under:empty{display:none}

/* annunciator: lit named windows, unlit squares */
.fw-anns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.fw-ann{padding:var(--plate-pad);color:var(--plate-ink);background:var(--plate);border-radius:6px}.fw-ann .fw-sh>span,.fw-ann .fw-fine{color:var(--plate-soft)}
.fw-ann h2{font-size:18px}
.fw-wins{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:5px}
.pw .fw-wins a{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;box-sizing:border-box;padding:0 10px;font-size:12.5px;text-decoration:none;border:2px solid var(--win-b);border-radius:3px}
.fw-wins a b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pw .fw-wins a.red{color:var(--red-ink);background:var(--red)}.pw .fw-wins a.amber{color:var(--amber-ink);background:var(--amber)}
.fw-unlit{display:flex;flex-wrap:wrap;gap:3px;padding-top:10px}.fw-unlit a{width:13px;height:13px;border-radius:2px;background:var(--unlit)}.fw-unlit a:hover{background:var(--plate-ink)}
.fw-ann-all{display:none;align-items:center;min-height:44px;margin-top:10px;padding:0 14px;font-size:14px;cursor:pointer;color:var(--plate-ink);background:transparent;border:2px solid var(--plate-ink);border-radius:3px}
.fw-ann-all[aria-pressed="true"]{font-weight:700;color:var(--ground);background:var(--ink);border-color:var(--ink)}

/* reference fold */
.fw-ref{min-height:44px;padding:0 14px;font-size:14px;cursor:pointer;background:transparent;border:2px solid var(--ink);border-radius:3px}
.fw-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding-top:16px}.fw-lines div{display:flex;flex-direction:column;gap:4px}
.fw-lines span{font-size:12px;color:var(--soft)}.fw-lines em{font-style:normal;font-size:13px}
.fw-miss{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding-top:16px}
.fw-dash{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:2px dashed var(--hair);border-radius:3px}.fw-dash span{font-size:13px;color:var(--soft)}.fw-dash em{margin-left:8px;font-style:normal;font-weight:400}

/* drill-down: opens inline, on paper */
.fw-dr{margin-top:14px;padding:16px 18px;color:var(--pink);background:var(--paper);border:2px solid var(--card-b);border-radius:6px}
.fw-dr-h{display:flex;justify-content:space-between;align-items:center;gap:12px}
.fw-dr-x,.fw-dr-more,.fw-dr-dl{min-height:40px;padding:0 12px;font-size:13px;cursor:pointer;color:var(--pink);background:transparent;border:2px solid var(--pink);border-radius:3px}
.fw-dr-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.fw-dr-tools .fw-dr-more{margin-top:0}
.fw-dr-n{margin:6px 0 0;font-size:13px;color:var(--psoft)}.fw-dr-t{margin-top:16px;font-weight:700}.fw-dr-e{padding:14px 0;font-size:13.5px;color:var(--soft)}.fw-dr .fw-dr-e{color:var(--psoft)}
.fw-dr-s{display:flex;flex-wrap:wrap;gap:8px 28px;padding-top:12px}.pw .fw-dr-s small{display:block;font-size:12px;color:var(--psoft)}.fw-dr-s b{font-size:20px}
.fw-dr-f{display:flex;flex-wrap:wrap;gap:14px;padding-top:12px}
.fw-dr-fl{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--psoft)}
.fw-dr-fl select,.fw-dr-fl input{height:36px;box-sizing:border-box;padding:0 8px;font-size:13px;color:var(--pink);background:var(--paper);border:2px solid var(--card-b);border-radius:3px}
.fw-dr-fl input[type=number]{width:90px}.fw-dr-fl select{min-width:150px}
.fw-ms{position:relative}
.fw-ms-btn{display:flex;align-items:center;gap:8px;min-height:36px;min-width:170px;box-sizing:border-box;padding:0 10px;font-size:13px;text-align:left;cursor:pointer;color:var(--pink);background:var(--paper);border:2px solid var(--card-b);border-radius:3px}
.fw-ms-car{flex:none;margin-left:auto;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.6}
.fw-ms-pop{position:absolute;z-index:20;top:calc(100% + 4px);left:0;display:flex;flex-direction:column;gap:2px;min-width:220px;max-height:240px;overflow-y:auto;padding:8px;color:var(--pink);background:var(--paper);border:2px solid var(--card-b);border-radius:4px}
.fw-ms-opt{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:13px;cursor:pointer;border-radius:2px}
.fw-ms-opt:hover{background:var(--panel)}
.fw-ms-act{margin-top:4px;padding-top:6px;border-top:1px solid var(--ring)}
.fw-ms-clear{min-height:30px;padding:0 10px;font-size:12px;cursor:pointer;color:var(--pink);background:transparent;border:2px solid var(--pink);border-radius:3px}
.fw-tbl-h,.fw-tbl-r{display:grid;gap:12px;align-items:center;padding:8px 0;font-size:13px}
.fw-tbl-h{margin-top:10px;font-size:12px;color:var(--psoft);border-bottom:2px solid var(--pink)}.fw-tbl-r{border-bottom:1px solid var(--ring)}
/* drill tables: every column keeps a real minimum (name / number / words) and the table scrolls sideways INSIDE .fw-tbl-x
   with its first column held still — never squeezed to a letter a line, never widening the page. Rows are flex, not grid,
   so the sticky first cell's containing block is the whole row. */
.fw-tbl-x{overflow-x:auto;overscroll-behavior-x:contain}.fw-tbl-in{--c0:160px;--cn:68px;--ct:116px}
.fw-tbl-h.fw-dr-g,.fw-tbl-r.fw-dr-g{display:flex;gap:0}.fw-dr-g>*{flex:1 1 0;box-sizing:border-box;min-width:var(--ct);padding-right:12px;overflow-wrap:anywhere}
.fw-dr-g>.fw-r{min-width:var(--cn);overflow-wrap:normal}.fw-dr-g>:last-child{padding-right:0}.fw-dr-g>:first-child{flex-grow:1.6;min-width:var(--c0);position:sticky;left:0;z-index:1;align-self:stretch;display:flex;align-items:center;background:var(--paper)}
.fw-scrolls .fw-dr-g>:first-child{border-right:1px solid var(--ring)}
.fw-th-s{cursor:pointer;user-select:none}.fw-th-s:hover{color:var(--pink)}
.fw-nm{display:flex;align-items:center;gap:8px;min-width:0}.fw-nm i{flex:none;width:10px;height:10px;border-radius:50%}.fw-nm b{overflow-wrap:anywhere}
.fw-m12,.fw-m11{font-size:12.5px}.fw-tx{font-size:13px}

/* facility: the building */
.fw-fhead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding:18px 0 16px;border-bottom:2px solid var(--ink)}
.fw-fhead h1{font-size:28px;line-height:1.1;margin:2px 0 4px}.pw a.fw-back{display:inline-flex;align-items:center;min-height:32px;font-size:13px;color:var(--soft)}
.fw-bld{display:grid;grid-template-columns:220px repeat(3,minmax(0,130px)) minmax(0,190px) minmax(300px,1fr);gap:18px;align-items:start;padding:18px;color:var(--card-ink);background:var(--card);border:2px solid var(--card-b);border-radius:6px}
.fw-bld small{font-size:12px;color:var(--card-soft)}.fw-bl{font-size:15px}.fw-ves>.fw-bl{display:flex;align-items:flex-end;min-height:40px}
.fw-out{align-self:stretch;display:flex;flex-direction:column;gap:12px}
.pw .fw-yard,.pw .fw-pick{display:flex;flex-direction:column;gap:6px;padding:10px;text-align:left;font-size:13.5px;cursor:pointer;color:var(--pink);background:var(--paper);border:2px solid var(--card-b);border-radius:4px}
.fw-bld .fw-yard small{color:var(--psoft)}.pw .fw-pick{display:block;font-size:12.5px;line-height:1.4}
.fw-marks{display:flex;flex-wrap:wrap;gap:3px}.fw-marks i{width:16px;height:9px;border-radius:1px;background:var(--psoft);opacity:.55}.fw-marks i.l{width:24px}.fw-marks i.on{background:var(--red);opacity:1}.fw-marks em{font-style:normal;font-size:11.5px}
.fw-ves{display:flex;flex-direction:column;gap:6px;padding:0;text-align:left;cursor:pointer;background:transparent;border:0}div.fw-ves{cursor:default}
.fw-ves[aria-pressed="true"] .fw-bl,.fw-yard[aria-pressed="true"] b{text-decoration:underline}
.fw-bv{font-size:26px;font-weight:700;line-height:1}.fw-bv em{font-style:normal;font-size:14px;font-weight:400}.fw-bv.red{color:var(--card-read)}.fw-bn{font-size:12.5px}
.fw-vessel{position:relative;display:block;width:100%;height:calc(300px*var(--vk,1));box-sizing:border-box;overflow:hidden;background:var(--vessel);border:3px solid var(--card-ink);border-top:0;border-radius:0 0 10px 10px}
.fw-vessel.tank{border-top:3px solid var(--card-ink);border-radius:4px 4px 10px 10px}
.fw-vessel i{position:absolute;left:0;right:0;bottom:0}.fw-vessel .liq{background:var(--liquid)}.fw-vessel.tank .liq,.fw-vessel .liq.bags{background:var(--tank)}.fw-vessel .old{background:var(--red)}
.fw-vessel .swell{background:repeating-linear-gradient(135deg,var(--amber) 0 6px,transparent 6px 12px)}.fw-vessel .brim{height:0;border-top:3px dashed var(--card-ink)}
.fw-vessel em{position:absolute;font-style:normal}.brim-l{right:8px;font-size:11.5px}.in-l{left:10px;bottom:14px;font-size:13px;color:var(--tank-ink)}
.fw-dep{align-self:stretch;display:flex;flex-direction:column;gap:8px;min-width:0}.fw-dep-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.fw-board{flex:1;padding:6px 12px;font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--board-ink);background:var(--board);border-radius:4px}
.fw-board-h,.fw-board button{display:grid;grid-template-columns:14px 50px minmax(0,1fr) 58px 60px;gap:10px;align-items:center;width:100%}
.fw-board-h{min-height:28px;font-size:12px;color:var(--board-soft)}.fw-board span:nth-child(n+4){text-align:right}
.fw-board button{min-height:44px;padding:0;text-align:left;font:inherit;cursor:pointer;color:var(--board-ink);background:transparent;border:0;border-top:1px solid var(--board-line)}
.fw-board button[aria-pressed="true"] .to b{text-decoration:underline}
.fw-board i{width:12px;height:12px;border-radius:50%;background:var(--board-unlit)}.fw-board i.red{background:var(--board-red)}.fw-board i.amber{background:var(--board-amber)}
.fw-board .to{display:flex;flex-direction:column;min-width:0}.fw-board .to b{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fw-board .to em{font-style:normal;font-size:11.5px;color:var(--board-amber)}.fw-board .to b wbr,.fw-wins a b wbr{display:none}.fw-board-e{padding:16px 0;color:var(--board-soft)}
.fw-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;padding-top:28px;align-items:start}.fw-two.a{grid-template-columns:minmax(0,600px) minmax(0,1fr)}
.fw-clr{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:20px;align-items:center}.fw-clr .fw-dial{width:100%;height:auto}
.fw-clr p{margin:0 0 12px;font-size:13.5px}.fw-clr p.lead{font-size:17px}.fw-clr p.fine{font-size:12.5px;color:var(--soft)}
.fw-bays{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;width:100%;padding:16px 16px 12px;text-align:left;cursor:pointer;color:var(--card-ink);background:var(--card);border:2px solid var(--card-b);border-radius:6px}
.fw-bay{display:flex;flex-direction:column;gap:6px;min-width:0}.fw-bay b{font-size:12px;line-height:1.25;overflow-wrap:anywhere}.fw-bay small{font-size:11.5px;color:var(--card-soft)}
.fw-bay-d{position:relative;display:block;height:calc(195px*var(--bk,1))}.fw-bay-d i{position:absolute;left:0;right:0;bottom:0}.fw-bay-d .over{background:var(--red)}
.fw-bay-d .room{box-sizing:border-box;background:var(--tank);border:3px solid var(--card-ink);border-top:0}.fw-bay-d .line{left:-4px;right:-4px;height:0;border-top:2px dashed var(--card-ink)}
.fw-bay-d em{position:absolute;left:0;right:0;text-align:center;font-style:normal;font-size:17px;font-weight:700}
.fw-why-i{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;margin-bottom:10px;padding:12px 14px;color:var(--pink);background:var(--paper);border-left:6px solid var(--pipe)}
.fw-why-i small{font-size:12px;color:var(--psoft)}.fw-why-i span{font-size:13.5px}.fw-why-i b{display:block;margin-bottom:4px;font-size:14.5px}
.fw-who{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--hair)}.fw-who span{font-size:12.5px;color:var(--soft)}.fw-who b.ph{font-weight:400;color:var(--soft)}
.fw-who.first{padding:14px;color:var(--board-ink);background:var(--board);border:0;border-radius:4px}.fw-who.first b{font-size:20px}.fw-who.first span,.fw-who.first b.ph{color:var(--board-soft)}
.fw-cl{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr) 90px;gap:12px;align-items:center;padding:6px 0;font-size:13px}.fw-cl b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fw-cl i{height:12px;background:var(--trace)}.fw-cl span{text-align:right;font-size:12.5px}
.fw-trends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.fw-trends em{font-style:normal;font-size:12px;color:var(--soft)}
.fw-bars{display:flex;align-items:flex-end;gap:8px;height:70px;margin:8px 0 4px}.fw-bars div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px}
.fw-bars span{font-size:11.5px;font-variant-numeric:tabular-nums}.fw-bars i{width:100%;border-radius:2px 2px 0 0}

/* peak monitor: HUB pressure tiles, same feed as Nerve's Facility Peak Monitor */
.fw-peak{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.fw-peak-t{display:flex;flex-direction:column;gap:5px;width:100%;margin:0;padding:12px 14px;font:inherit;text-align:left;cursor:pointer;appearance:none;-webkit-appearance:none;color:var(--card-ink);background:var(--card);border:2px solid var(--card-b);border-radius:6px}
.fw-peak-t[aria-pressed="true"] .fw-peak-l{text-decoration:underline}
.fw-peak-t.bad{border-color:var(--red-t)}.fw-peak-t.warn{border-color:var(--amber)}
.fw-peak-l{font-size:12.5px;color:var(--card-soft)}
.fw-peak-v{font-size:22px;font-weight:700;line-height:1.1}.fw-peak-t.bad .fw-peak-v{color:var(--card-read)}
.fw-peak-sub{font-size:12px;color:var(--card-soft)}
.fw-peak-asof{font-size:11px;color:var(--card-soft)}

/* admin: usage log (Facility Watch's own in-page Admin tab) */
.fw-adm-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 0 10px;position:relative}
.fw-adm-form input{height:40px;box-sizing:border-box;padding:0 12px;font-size:13.5px;color:var(--pink);background:var(--paper);border:2px solid var(--ink);border-radius:3px}
.fw-adm-form label{display:flex;align-items:center;gap:6px;font-size:13px}
.pw .fw-adm-primary{min-height:40px;padding:0 16px;font-size:13.5px;font-weight:700;cursor:pointer;color:var(--ground);background:var(--ink);border:2px solid var(--ink);border-radius:3px}
.fw-adm-h,.fw-adm-r{display:grid;gap:12px;align-items:center;padding:8px 0;font-size:13px}
.fw-adm-r5{grid-template-columns:150px minmax(0,1fr) 80px 140px 140px}
.fw-adm-r6{grid-template-columns:110px minmax(0,1fr) 80px 140px 90px 140px}
.fw-adm-h{font-size:12px;color:var(--psoft);border-bottom:2px solid var(--ink)}
.fw-adm-r{border-bottom:1px solid var(--ring)}
.fw-adm-sub{margin:18px 0 4px;font-size:14px}

/* city */
.fw-strip{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--hair)}
.fw-tcounts{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px}.fw-tcounts em{margin-left:6px;font-style:normal;color:var(--soft)}
.fw-verdict{padding:18px 0 4px}.fw-over{display:block;font-size:13px;color:var(--soft)}.fw-name{font-size:28px;margin:4px 0}.fw-one{margin:0;font-size:16px}
.fw-city3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-top:20px;align-items:start}
.pw a.fw-hub{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding:14px;text-decoration:none;color:var(--card-ink);background:var(--card);border:2px solid var(--card-b);border-radius:6px}
.fw-now{display:flex;align-items:center;gap:8px}.fw-now i{width:12px;height:12px;border-radius:50%}.fw-meta{font-size:12.5px;color:var(--card-soft)}
.fw-hub-v{display:flex;align-items:baseline;gap:10px}.fw-hub-v b{font-size:24px}.fw-hub-v span,.fw-note{font-size:12.5px}
.fw-tbl-h.fw-dc,.fw-tbl-r.fw-dc{grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) 56px 66px 56px;color:inherit}.fw-tbl-h.fw-dc{color:var(--soft);border-color:var(--ink)}.fw-tbl-r.fw-dc{border-color:var(--hair)}
.fw-slbar{display:flex;align-items:center;gap:8px}.fw-slbar u{flex:1;height:8px;background:var(--unlit);text-decoration:none}.fw-slbar u i{display:block;height:8px}

/* title block */
.fw-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;width:100%;max-width:1440px;box-sizing:border-box;margin-left:auto;margin-right:auto;padding:36px 36px 28px;font-size:12.5px;color:var(--soft)}
.fw-block{display:grid;grid-template-columns:150px minmax(0,330px);color:var(--pink);background:var(--paper);border:2px solid var(--pink)}
.fw-block:empty{display:none}.fw-block span{padding:7px 10px;border-bottom:1px solid var(--pink)}.fw-block span:nth-child(odd){color:var(--psoft);border-right:1px solid var(--pink)}
.fw-block span:nth-last-child(-n+2){border-bottom:0}

/* ≤1180: one column of sections; the flow is a grid of step cards you press, each step's status printed (no hover title) */
@media (max-width:1180px){.fw-acts,.fw-anns,.fw-two,.fw-two.a,.fw-city3{grid-template-columns:minmax(0,1fr)}.fw-acts-r{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fw-flow{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px;padding:var(--plate-pad)}.fw-flow::before{display:none}.fw-flow-s{display:block}
  .fw-flow>*{padding:10px;border:2px solid var(--hair);border-radius:6px}.fw-flow>button{padding-right:30px;color:var(--card-ink);background:var(--card);border-color:var(--card-b)}.fw-flow>button .fw-flow-d,.fw-flow>button .fw-flow-s{color:var(--card-soft)}
  .fw-flow>button::after{content:"";position:absolute;right:12px;top:16px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg)}
  .fw-flow>button[aria-pressed="true"]{color:var(--ground);background:var(--ink);border-color:var(--ink)}.fw-flow>button[aria-pressed="true"] .fw-flow-d,.fw-flow>button[aria-pressed="true"] .fw-flow-s{color:inherit}.fw-flow>button[aria-pressed="true"]::after{top:12px;transform:rotate(45deg)}
  .fw-bld{grid-template-columns:repeat(4,minmax(0,1fr))}.fw-out,.fw-dep{grid-column:1/-1}.fw-status{margin-left:0}}
/* ≤760: the phone — the same drawing re-flowed for one hand: what to act on in the first screen, nothing wider than the screen but a drill table */
@media (max-width:760px){.fw-wrap{padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}.fw-scope,.fw-strip{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .fw-foot{padding:24px 16px max(24px,env(safe-area-inset-bottom))}.fw-block{grid-template-columns:minmax(0,40%) minmax(0,1fr)}
  /* header: ONE bar — tools, brand, this section as a menu (the other sections and the colours fold into it), read time, initials */ .fw-top{gap:8px 6px;min-height:56px;padding:max(6px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 6px max(12px,env(safe-area-inset-left))}
  .fw-top-r{display:contents}.fw-top .vtr-burger{order:1}.fw-brand{order:2;white-space:nowrap}.fw-brand b,.fw-brand i{font-size:14px}.fw-brand i{margin-left:4px}.fw-menu-btn{order:3;display:inline-flex;margin-left:auto}.fw-asof{order:4;white-space:nowrap}.fw-user{order:5}#user-name,.fw-asof-x{display:none}
  .fw-nav,.fw-top .fw-seg{display:none;order:10;flex:1 1 100%}.fw-top.open .fw-nav,.fw-top.open .fw-seg{display:flex}.fw-nav{flex-wrap:wrap}.fw-top .fw-seg button{flex:1 1 0}
  /* scope: the two lists as halves; City and Find share a row; the status is one line under them */ .fw-scope{gap:8px;padding-top:10px;padding-bottom:10px}.fw-scope>.fw-seg{flex:1 1 100%}.fw-scope>.fw-seg button{flex:1 1 0;padding:0 8px}.fw-status{flex:1 1 100%;align-items:flex-start;font-size:14px}
  .fw-find{flex:1 1 0;min-width:0}.fw-find input{width:100%}.fw-find label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.fw-status .fw-lamp{margin-top:1px}
  .fw-citybtn{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-pop{box-sizing:border-box;width:calc(100vw - 32px);max-height:60vh;max-height:60dvh}.fw-find .fw-pop{left:auto;right:0}
  .fw-pop-h{display:flex;gap:6px}.fw-pop-h input{flex:1;min-width:0}.fw-find input,.fw-pop input,.fw-dr-fl select,.fw-dr-fl input{font-size:16px}.fw-find input,.fw-pop input{-webkit-appearance:none;appearance:none}.pw .fw-pop-x{display:flex}.fw-sec{padding-top:22px}.pw h1{font-size:20px}.fw-sh{margin-bottom:10px}.fw-sh>span{font-size:13px}
  /* act first: the lead names its facility and worst number beside a smaller dial; the rest are tight rows, dial left */ .fw-acts-r,.fw-trends{grid-template-columns:minmax(0,1fr)}.fw-acts-r{gap:10px}.pw a.fw-card.lead{grid-template-columns:clamp(104px,34vw,140px) minmax(0,1fr);gap:4px 14px;padding:14px;align-items:start}
  .lead .fw-card-b{display:contents}.lead .fw-card-n,.lead .fw-card-m,.lead .fw-card-w,.lead .fw-card-c{grid-column:1/-1}.lead .fw-card-v,.lead .fw-card-l,.lead .fw-lamps{grid-column:2}
  .pw a.fw-card.lead>.fw-dial{grid-column:1;grid-row:3/span 3}.pw .fw-lead-v{display:block;margin:4px 0 2px;font-size:28px}.lead .fw-card-n{font-size:21px}.lead .fw-card-l{font-size:15px}.lead .fw-card-c{margin-top:6px}
  .pw a.fw-card{grid-template-columns:72px minmax(0,1fr);gap:4px 12px;align-items:start}.fw-card>.fw-card-n{grid-column:2;grid-row:1}.fw-card>.fw-dial{grid-column:1;grid-row:1/span 2}.fw-card>.fw-card-b{grid-column:2}
  .fw-key{padding:0 14px}.fw-key[open]{padding-bottom:12px}.fw-key summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;pointer-events:auto;cursor:pointer}.fw-key summary::after{content:"";width:8px;height:8px;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}.fw-key[open] summary::after{transform:rotate(-135deg)}
  /* steps: two cards a row, the lamp beside the name; the drill opens under the row pressed (FW.under) */ .fw-flow{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}.fw-flow,.fw-ann{padding:calc(var(--plate-pad) / 2)}.fw-flow>*{display:grid;grid-template-columns:18px minmax(0,1fr);gap:4px 8px;align-content:start}.fw-flow>*>*{grid-column:1/-1}
  .fw-flow>*>.fw-lamp{grid-column:1;width:18px;height:18px;border-width:2px}.fw-flow>*>b,.fw-flow>*>.fw-flow-s{grid-column:2}.fw-flow>*>b{padding-top:0;font-size:14px}.fw-flow-v{font-size:24px}.fw-flow-l{font-size:13px}
  .fw-wins{grid-template-columns:repeat(2,minmax(0,1fr))}.pw .fw-wins a{padding:4px 8px;gap:6px}.fw-wins a b{white-space:normal;overflow-wrap:break-word}.fw-ann h2{font-size:17px}.fw-ref{width:100%;padding:8px 12px;text-align:left}
  /* facility: name and a one-line verdict, who to call right after the steps, the building and bays at half height */ .fw-fac{display:flex;flex-direction:column}.fw-fac>.fw-two{display:contents}.fw-fac>.fw-two>section{padding-top:24px}.fw-fac>.fw-two>section:empty{display:none}
  .fw-fac>.fw-fhead{order:-3}.fw-fac>.fw-fhead+.fw-sec{order:-2}.fw-fac #sec-who{order:-1}.fw-fhead{padding:4px 0 14px;gap:10px}.fw-fhead h1{font-size:22px}.fw-lamps.row{justify-content:flex-start;gap:6px 16px;font-size:13.5px}
  .fw-bld{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;padding:12px;--vk:.5}.fw-bv{font-size:22px}.in-l{bottom:4px;font-size:12px}.brim-l,.fw-marks em{font-size:12px}
  .fw-board{padding:4px 10px}.fw-board-h,.fw-board button{grid-template-columns:12px 44px minmax(0,1fr) 50px 54px;gap:8px}.fw-board .to b{white-space:normal;overflow-wrap:break-word}.fw-board .to b wbr,.fw-wins a b wbr{display:inline}.fw-board .to em{font-size:12px}
  .fw-clr{grid-template-columns:clamp(116px,40vw,160px) minmax(0,1fr);gap:12px 16px}.fw-clr>div{display:contents}.fw-clr p{grid-column:1/-1;margin:0}.fw-clr p.lead{grid-column:2;font-size:15px}
  .fw-bays{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;padding:26px 10px 10px;--bk:.6}.fw-bay small{font-size:12px}.fw-bay-d em{font-size:15px}
  .fw-peak{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fw-peak-t{padding:10px 12px}.fw-peak-v{font-size:20px}.fw-peak-asof,.fw-bars span{font-size:12px}
  .fw-why-i{grid-template-columns:minmax(0,1fr);gap:6px}.fw-cl{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 64px}.fw-cl b{white-space:normal;overflow-wrap:anywhere}
  /* drills: a tighter panel, filters two a row, rows tall enough to press */ .fw-dr{padding:12px}.fw-dr-f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fw-dr-f .fw-ms{grid-column:1/-1}.fw-ms-pop{right:0}.fw-tbl-in{--c0:150px;--cn:68px;--ct:100px}.fw-dr-fl select,.fw-dr-fl input,.fw-dr-fl input[type=number],.fw-ms-btn{width:100%;min-width:0}.fw-tbl-r.fw-dr-g{padding:2px 0}
  /* city: the type counts on one sliding line; each delivery centre's name on its own line, its numbers under it */ .fw-strip{flex-wrap:nowrap;gap:12px;overflow-x:auto}.fw-strip>b{flex:none}.fw-tcounts{flex-wrap:nowrap;white-space:nowrap}
  .fw-tbl-h.fw-dc,.fw-tbl-r.fw-dc{grid-template-columns:minmax(0,1.3fr) 56px 66px 56px;gap:2px 10px}.fw-dc>:first-child{grid-column:1/-1}.fw-adm-r5,.fw-adm-r6{grid-template-columns:minmax(0,1fr)}.fw-adm-h.fw-adm-r5,.fw-adm-h.fw-adm-r6{display:none}}
@media (max-width:389px){.fw-brand i{display:none}}
@media (max-width:760px),(hover:none){/* no hover: what a hover title said is printed; the 13px roster squares give way to one list button */.fw-flow-s{display:block}.fw-unlit,.fw-hov{display:none}.fw-ann-all{display:flex}}
@media (max-width:760px),(pointer:coarse){/* a finger, not a mouse: every control at least 44px */.pw a.fw-back,.fw-seg button,.fw-top .fw-seg button,.fw-dr-x,.fw-dr-more,.fw-dr-dl,.fw-ms-btn,.fw-ms-clear,.fw-ms-opt,.fw-pop button,.pw .fw-adm-primary,.fw-adm-form input{min-height:44px}
  .fw-dr-fl select,.fw-dr-fl input{height:44px}.fw-top .vtr-burger{width:44px;height:44px}.pw .fw-pick{min-height:44px}.fw-dr-g .fw-nm b a,.fw-dr-g .fw-tx a,.fw-tbl-r.fw-dc .fw-nm a{display:inline-flex;align-items:center;min-height:44px}}
@media (prefers-reduced-motion:reduce){.pw *,.pw *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
