:root{--bg: #141b26;--bg-2: #0f151e;--surface: #1d2633;--surface-2: #253041;--surface-3: #2d3a4d;--line: #2f3b4d;--line-2: #4a5a71;--text: #f2f5f8;--text-2: #c3ccd7;--muted: #9aa6b5;--head: #232e3d;--tile: #141b26;--brand: #2a62a8;--brand-strong: #1f4f8a;--brand-text: #8fbfe6;--on-brand: #ffffff;--bar-bg: #12294a;--bar-line: #2c4a72;--bar-text: #ffffff;--bar-muted: #b9c7da;--bar-hover: #1b3a63;--green: #2f9e5b;--green-bg: #17271f;--green-ink: #7fd9a8;--cyan: #5ab8f5;--cyan-bg: #142431;--cyan-ink: #9ccff5;--yellow: #d9a21b;--yellow-bg: #2a2416;--yellow-ink: #f0c873;--red: #d0342c;--red-bg: #2b2023;--red-ink: #ff9d95;--gray: #8a939c;--on-state: #0b1a30;--bezel: #0e1620;--bezel-edge: #000000;--bezel-text: #f2f5f8;--bezel-muted: #9aa6b5;--win-off: #3a4554;--win-off-ink: #d5dce5;--win-dark-ink: #1a1405;--chart-1: #2f9e5b;--chart-2: #d0342c;--art-bg: #121518;--art-col: #2a2f34;--art-rail: #4a5259;--art-girder: #e6a800;--art-girder-line: #b88400;--art-trolley: #e6e8ea;--art-cable: #8a939c;--radius: 2px;--radius-sm: 2px;--shadow: 0 8px 24px rgb(0 0 0 / .45);--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-cond: var(--font);--font-win: "IBM Plex Sans Condensed", "Arial Narrow", var(--font);--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;color-scheme:dark}:root[data-theme=light]{--bg: #e4e7eb;--bg-2: #f6f7f9;--surface: #ffffff;--surface-2: #f3f4f6;--surface-3: #e9ecef;--line: #d5dae0;--line-2: #aeb6c0;--text: #111821;--text-2: #3a4450;--muted: #59636f;--head: #f3f4f6;--tile: #ffffff;--brand: #1f4f8a;--brand-strong: #14365f;--brand-text: #1f4f8a;--on-brand: #ffffff;--bar-bg: #12294a;--bar-line: #0b1d36;--bar-text: #ffffff;--bar-muted: #b9c7da;--bar-hover: #1b3a63;--green: #1b7a3e;--green-bg: #e7f5ed;--green-ink: #0d6b3c;--cyan: #0b7fa0;--cyan-bg: #e4f3f8;--cyan-ink: #08647e;--yellow: #c58f00;--yellow-bg: #fbf3dc;--yellow-ink: #845a00;--red: #b42318;--red-bg: #fceaea;--red-ink: #a3211f;--gray: #6f7a88;--on-state: #ffffff;--bezel: #1b2532;--bezel-edge: #0f1620;--bezel-text: #ffffff;--bezel-muted: #b4bfcc;--win-off: #4a5666;--win-off-ink: #e3e8ee;--win-dark-ink: #1a1405;--chart-1: #1b7a3e;--chart-2: #b42318;--art-bg: #e6eaef;--art-col: #cfd6de;--art-rail: #a3adb9;--art-girder: #f0b400;--art-girder-line: #c48f00;--art-trolley: #1c2430;--art-cable: #5d6874;--shadow: 0 8px 24px rgb(16 24 40 / .14);color-scheme:light}*{box-sizing:border-box}html,body{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html{overflow-x:hidden;overscroll-behavior:none}body{overflow-x:clip;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;min-height:100vh;font-feature-settings:"tnum" 0}h1,h2,h3{font-family:var(--font);margin:0;line-height:1.25;font-weight:600}h1{font-size:1.15rem}h2{font-size:.95rem}h3{font-size:.7rem;color:var(--muted);margin-top:18px;text-transform:uppercase;letter-spacing:.07em}a{color:var(--brand-text)}small{font-size:.8rem}b,strong{font-weight:600}.icon{flex:none;display:inline-block;vertical-align:-.18em}input,select,button,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:8px 11px;min-height:38px;width:100%;transition:border-color .15s,box-shadow .15s}input:hover,select:hover{border-color:color-mix(in srgb,var(--line-2) 60%,var(--text-2))}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-text);box-shadow:0 0 0 1px var(--brand-text)}input::placeholder{color:var(--muted)}:focus-visible{outline:2px solid var(--brand-text);outline-offset:2px}.muted{color:var(--muted)}.center{display:grid;place-items:center;min-height:60vh;text-align:center;padding:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.err{background:var(--red-bg);border:1px solid color-mix(in srgb,var(--red) 45%,transparent);color:var(--red-ink);border-radius:var(--radius-sm);padding:10px 12px;margin:10px 0}.hint{color:var(--muted);font-size:.85rem;margin:6px 0 0}.link{background:none;border:0;padding:0 4px;color:var(--brand-text);text-decoration:underline;text-underline-offset:2px;cursor:pointer;font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.btn:hover:not(:disabled){background:var(--surface-3);border-color:color-mix(in srgb,var(--line-2) 55%,var(--text-2))}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--on-brand)}.btn.primary:hover:not(:disabled){background:var(--brand);border-color:var(--brand)}.btn.warn .icon{color:var(--yellow)}.btn.maint-toggle{background:transparent;border:2px solid var(--yellow);color:var(--text);font-weight:600}.btn.maint-toggle .icon{color:var(--yellow)}.btn.maint-toggle:hover:not(:disabled){background:color-mix(in srgb,var(--yellow) 14%,transparent);border-color:var(--yellow)}.btn.maint-toggle.on{background:var(--yellow);color:var(--win-dark-ink)}.btn.maint-toggle.on .icon{color:var(--win-dark-ink)}.btn.maint-toggle.on:hover:not(:disabled){background:var(--yellow);filter:brightness(1.06)}.om{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:3px 8px;background:#fff;color:#0a0f16;border:0;border-radius:2px;font:600 .75rem var(--font);box-sizing:border-box}button.om{cursor:pointer}button.om:hover:not(:disabled){background:#e9edf2}button.om:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.om.opened{background:none;border:0;outline:0;padding:2px 0;color:inherit;cursor:default}.om.opened .icon{color:var(--om-check, var(--green));stroke-width:2.5}.window .om.opened{color:#fff;--om-check: #0f5a2a}.om-slot{grid-column:2;justify-self:start}.window-om{display:flex;align-items:center;gap:6px;padding:0 12px 10px;white-space:nowrap}.window-om .window-alert-btn{margin-left:auto}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.small{min-height:30px;padding:4px 10px;font-size:.84rem;gap:6px}.btn.icon-only{padding:0;width:32px;min-height:32px}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:var(--radius-sm);font-family:var(--font-cond);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.pill.demo{color:var(--text-2);border:1px solid var(--line-2);background:var(--surface-2)}.pill.demo:before{content:none}.form{display:grid;gap:8px;margin:14px 0}.form label{font-weight:500;color:var(--text-2);font-size:.86rem}.row{display:flex;gap:8px;align-items:center}.row input{flex:1}.lamp{--c: var(--gray);display:inline-block;flex:none;width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent)}.lamp.green{--c: var(--green)}.lamp.yellow{--c: var(--yellow)}.lamp.red{--c: var(--red)}.lamp.gray{--c: var(--gray)}.lamp.big{width:30px;height:30px;box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 18%,transparent)}.lamp.blink{animation:lamp-blink 1s ease-in-out infinite}@keyframes lamp-blink{50%{background:color-mix(in srgb,var(--c) 18%,var(--surface));box-shadow:0 0 0 3px transparent}}.login{display:grid;place-items:center;min-height:100vh;padding:20px;background:var(--bg)}.login-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px 28px 22px}.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--line)}.login-brand h1{font-size:1rem;letter-spacing:.12em;text-transform:uppercase}.login-brand p{margin:2px 0 0;color:var(--text-2);font-size:.88rem}.login-card>.muted{font-size:.9rem;margin:0 0 4px}.role-grid{display:grid;gap:8px;margin-top:16px}.role-grid .btn{min-height:46px;justify-content:space-between;padding:0 14px}.role-grid .btn .icon{color:var(--muted)}.role-grid .btn:hover .icon{color:var(--text)}.role-grid .btn.ghost{justify-content:center;margin-top:4px;font-size:.88rem}.login-foot{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{--text: var(--bar-text);--text-2: var(--bar-muted);--muted: var(--bar-muted);--line: var(--bar-line);--line-2: color-mix(in srgb, var(--bar-muted) 40%, var(--bar-bg));--surface: var(--bar-hover);--surface-2: var(--bar-hover);--surface-3: var(--bar-hover);position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;height:48px;padding:0 18px;background:var(--bar-bg);color:var(--bar-text);border-bottom:1px solid var(--bar-line)}.brand{display:flex;align-items:center;gap:10px}.brand>div{display:grid;line-height:1.15}.brand strong{font-size:.86rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.brand span{color:var(--muted);font-size:.72rem}.tabs{display:flex;gap:2px;align-self:stretch}.tabs a{display:flex;align-items:center;padding:0 14px;color:var(--text-2);text-decoration:none;font-weight:500;font-size:.92rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{color:var(--text);border-bottom-color:var(--text);background:var(--bar-hover)}.who{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.86rem;min-width:0}.who-sep{width:1px;height:22px;background:var(--line)}.clock{font-family:var(--font-mono);font-size:.84rem;color:var(--text-2);font-variant-numeric:tabular-nums}.conn{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:.82rem}.conn:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}.conn.off{color:var(--red-ink)}.conn.off:before{background:var(--red)}.panel{padding:14px 18px 40px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}@media (min-width: 1200px){.panel.with-drawer{padding-right:calc(min(480px,100vw) + 18px)}}.scope{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding-bottom:12px;border-bottom:1px solid var(--line-2)}.scope h1{margin:0 6px 8px 0;font-size:1.1rem}.scope .field{display:grid;gap:3px;font-size:.75rem;font-weight:600;color:var(--text-2)}.scope select{width:auto;min-width:210px;min-height:36px;font-weight:500;border-color:var(--muted)}.scope input[type=search]{width:230px;min-height:36px}.scope .others,.scope .check{min-height:36px;display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:var(--text-2)}.scope .others{background:none;border:0;padding:0 2px;cursor:pointer}.scope .others u{text-underline-offset:2px;color:var(--brand-text)}.scope .others .ind{margin:0}.scope .check input{width:16px;height:16px;min-height:16px;padding:0;accent-color:var(--brand-strong)}.scope .stamp{margin-left:auto;min-height:36px;display:inline-flex;align-items:center;gap:4px;font-size:.78rem;color:var(--muted)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.panel-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:12px;align-items:start}.panel-main{display:grid;gap:16px;min-width:0}.panel-rail{display:grid;gap:10px;min-width:0}.annunciator{background:var(--bezel);border:1px solid var(--bezel-edge);padding:12px;display:grid;gap:10px;min-width:0;box-shadow:inset 0 1px #ffffff0f}.annunciator-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;padding:0 2px}.annunciator-head h2{margin:0;font-family:var(--font-win);font-size:1.15rem;font-weight:600;color:var(--bezel-text)}.tally{display:flex;flex-wrap:wrap;gap:6px 8px;margin:0;padding:0;list-style:none;font-size:.82rem;color:var(--bezel-muted);font-variant-numeric:tabular-nums}.tally li{display:inline-flex;align-items:center}.tally button{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;margin:0;background:#ffffff0f;border:1px solid rgb(255 255 255 / .32);border-radius:2px;color:var(--bezel-text);font:inherit;cursor:pointer}.tally button:hover{background:#ffffff24;border-color:var(--bezel-text)}.tally button[aria-pressed=true]{background:#fff;border-color:#fff;color:#0a0f16}.tally button:focus-visible{outline:2px solid var(--bezel-text);outline-offset:2px}.windows{position:relative}.window.picked{box-shadow:inset 0 0 0 1px #00000059,0 0 0 2px var(--bezel-text)}.sw{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--gray)}.sw.released{background:var(--green)}.sw.blocked,.sw.verifying{background:var(--red)}.sw.maintenance{background:var(--yellow)}.sw.offline{background:var(--win-off);box-shadow:inset 0 0 0 1px var(--win-off-ink)}.windows{display:grid;grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:6px}.window{--win: var(--win-off);--ink: var(--win-off-ink);position:relative;display:grid;min-width:0;height:112px;overflow:hidden;background:var(--win);color:var(--ink);border-radius:2px;box-shadow:inset 0 0 0 1px #00000059}.window.green{--win: var(--green);--ink: #ffffff}.window.yellow{--win: var(--yellow);--ink: var(--win-dark-ink)}.window.red{--win: var(--red);--ink: #ffffff}.window.verifying{background:repeating-linear-gradient(135deg,var(--red) 0 12px,color-mix(in srgb,var(--red) 86%,#000) 12px 24px)}.window.stale{--win: transparent;--ink: var(--bezel-muted);box-shadow:inset 0 0 0 2px var(--bezel-muted);background:repeating-linear-gradient(135deg,transparent 0 8px,rgb(255 255 255 / .04) 8px 16px)}.window.pulse:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;pointer-events:none;background:#000;opacity:0;animation:win-veil 1.4s ease-in-out infinite}.window>*{position:relative;z-index:1}@keyframes win-veil{50%{opacity:.45}}@keyframes win-pulse{50%{filter:brightness(.55)}}.window.dim{opacity:.22}.window.dim:before{animation:none}.window-face{display:grid;align-content:start;gap:2px;padding:8px 12px 2px;min-width:0;min-height:0;overflow:hidden;text-align:left;background:none;border:0;color:inherit;font:inherit;cursor:pointer;border-radius:4px}.window-face:focus-visible{outline:3px solid var(--bezel-text);outline-offset:2px}.window-code{font-family:var(--font-win);font-size:1.7rem;font-weight:700;line-height:1.05;letter-spacing:.01em;font-variant-numeric:tabular-nums}.window{grid-template-rows:minmax(0,1fr) auto}.window{container-type:inline-size}.window-lines{display:grid;gap:1px;margin-top:4px;font-family:var(--font-mono);font-size:min(.72rem,calc((100cqi - 44px) / 11.8));line-height:1.35;font-variant-numeric:tabular-nums}.window-lines>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:.9}.window-lines .icon{vertical-align:-2px;margin-right:4px}.window-lines>span:first-child{font-weight:600;opacity:1}.window-alert{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 6px;height:52px;padding:3px 8px 3px 10px;box-sizing:border-box;background:none;color:inherit;font-size:.78rem;font-weight:600;line-height:1.2;border-radius:0 0 2px 2px}.window-alert>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-alert .icon{flex:none;color:inherit}.window-alert .window-alert-btn{grid-column:1 / -1;justify-self:end}.timebar{grid-column:1 / -1;position:relative;display:block;height:6px;margin:0 2px;border-radius:999px;background:#ffffff38;overflow:visible}.timebar-in{position:absolute;inset:0 auto 0 0;border-radius:999px 0 0 999px;background:#3fbf6a}.window-bar{display:flex;flex-direction:column;padding:0 8px 14px 10px}.timebar-over{position:absolute;top:0;bottom:0;right:0;border-radius:0 999px 999px 0;background:repeating-linear-gradient(135deg,#ff5a4f 0,#ff5a4f 4px,#8f1410 4px,#8f1410 7px)}.timebar-mark{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px;background:#fff}.window-alert-btn{flex:none;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;min-height:24px;font:600 .75rem var(--font);color:#0a0f16;background:#fff;border:0;border-radius:2px;cursor:pointer}.window-alert-btn:hover{background:#dfe5ec}.window-alert-btn .icon{color:inherit}.window-alert-btn:focus-visible{outline:3px solid #ffffff;outline-offset:2px}.plant-list{list-style:none;margin:0;padding:2px 0;max-height:560px;overflow-y:auto}.plant .box-head{padding:7px 10px}.plant .box-head h2{font-size:.9rem}.plant-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;width:100%;padding:5px 10px;background:none;border:0;border-left:3px solid transparent;text-align:left;cursor:pointer;font:inherit;color:var(--text)}.plant-list button:hover{background:var(--surface-2)}.plant-list button.on{background:var(--surface-2);border-left-color:var(--brand-strong)}.plant-name{font-size:.8rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plant-n{font-size:.75rem;color:var(--text-2);font-variant-numeric:tabular-nums}.plant-bar{grid-column:1 / -1;display:flex;gap:2px;height:4px}.plant-bar .sw{flex-basis:0;width:auto;height:4px;min-width:3px;border-radius:1px}.plant-bar .sw.offline{background:var(--win-off)}.scope .found{min-height:36px;display:inline-flex;align-items:center;font-size:.84rem;color:var(--text-2)}.scope .found .link{font-family:var(--font)}.box{background:var(--surface);border:1px solid var(--line-2);min-width:0;box-shadow:0 1px 2px #0a192f14}.box-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--head)}.box-head h2{font-size:1rem;font-weight:600;color:var(--text);display:flex;align-items:baseline;gap:8px}.box-head h2 .n{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--text);background:var(--surface-3);padding:1px 7px}.box-head small{color:var(--text-2);font-size:.75rem}.areas{display:grid;background:var(--surface-2)}.areas>.muted{padding:12px;margin:0}.area{display:grid;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line)}.area:first-child{border-top:0}.area h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:.9rem}.area h2 .muted{font-size:.75rem;font-weight:400;color:var(--text-2)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px;align-items:start}.card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;align-items:center;align-content:start;min-width:0;padding:8px 10px;background:var(--tile);border:1px solid var(--line-2);color:var(--text);text-align:left;cursor:pointer;font:inherit}.card:hover{background:var(--surface-2)}.card b{font-family:var(--font-mono);font-size:.95rem;font-weight:700}.lamp-row.stale{opacity:.8}.panel-offline{border:1px solid color-mix(in srgb,var(--red) 45%,transparent);padding:10px 14px}.panel.disconnected .windows,.panel.disconnected .plant-list{opacity:.75}.detail-alerts{display:grid;border:1px solid var(--line-2)}.detail-alerts .alert{--c: var(--gray);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line);box-shadow:inset 3px 0 0 var(--c)}.detail-alerts .alert:first-child{border-top:0}.detail-alerts .alert.crit-red{--c: var(--red)}.detail-alerts .alert.crit-yellow,.detail-alerts .alert.signal{--c: var(--yellow)}.alert-text{min-width:0}.alert-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.drawer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.drawer-actions .btn{min-height:42px;justify-content:center;white-space:normal}.axes{display:grid;gap:8px}.axes>.muted{font-family:var(--font-cond);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.axes-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.axis{display:flex;align-items:center;gap:8px;padding:9px 12px;font-size:.86rem;color:var(--muted);border-left:1px solid var(--line)}.axis:first-child{border-left:0}.axis:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--line-2);transition:background .2s,box-shadow .2s}.axis .icon{margin-left:auto;color:var(--green)}.axis.axis-on{color:var(--text)}.axis.axis-on:before{background:var(--cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 22%,transparent)}.axis.axis-done{color:var(--text)}.axis.axis-done:not(.axis-on):before{background:var(--green);box-shadow:none}.sim-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.sim-buttons .btn.on{color:var(--cyan-ink);border-color:var(--cyan);background:var(--cyan-bg)}.flow{display:grid;gap:12px;padding:0 0 14px;background:var(--surface);border:1px solid var(--line-2);box-shadow:0 1px 2px #0a192f14}.flow>*:not(.flow-head){margin-inline:12px}.flow-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--head)}.flow-head h2{font-size:1rem;font-weight:600;color:var(--text)}.flow-head h2 .muted{font-family:var(--font);font-size:.82rem;font-weight:400;text-transform:none;letter-spacing:0;margin-left:8px}.flow-chain{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:24px}.flow-node{--c: var(--gray);position:relative;display:grid;gap:6px;align-content:start;padding:9px 10px;background:var(--tile);border:1px solid var(--line-2)}.flow-node.ok{--c: var(--green)}.flow-node.warn{--c: var(--red);border-color:var(--red);border-style:dashed}.flow-node.warn .flow-state:before{background:transparent;border:1.5px solid var(--red);border-radius:0}.flow-node.fail{--c: var(--red);border-color:var(--red)}.flow-node.unknown{--c: var(--line-2);opacity:.65}.flow-icon{color:var(--text-2);line-height:0}.flow-node.fail .flow-icon,.flow-node.warn .flow-icon{color:var(--red)}.flow-text{display:grid;gap:2px;min-width:0}.flow-text b{font-size:.84rem;line-height:1.25}.flow-text small{color:var(--text-2);font-size:.74rem;line-height:1.35;overflow-wrap:anywhere}.flow-state{justify-self:start;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-cond);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-2)}.flow-state:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}.flow-node.fail .flow-state:before{border-radius:0}.flow-link{position:absolute;top:50%;right:-25px;width:26px;height:2px;transform:translateY(-50%);background:var(--line-2);height:1px}.flow-link.live{background:var(--muted)}.flow-link.broken{background:var(--red)}.flow-diag{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-2)}.flow-diag p{margin:3px 0 0;color:var(--text-2);font-size:.88rem}.flow-diag.ok .flow-diag-icon{color:var(--green)}.flow-diag.warn{border-color:var(--red);border-style:dashed;background:var(--bg)}.flow-diag.fail{border-color:var(--red);background:var(--bg);box-shadow:inset 3px 0 0 var(--red)}.flow-diag-icon{display:grid;place-items:center;flex:none;color:var(--muted);padding-top:1px}.flow-diag.warn .flow-diag-icon,.flow-diag.fail .flow-diag-icon{color:var(--red)}.flow-cranes{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.flow-cranes .btn{font-family:var(--font-mono)}.flow-sim{min-width:0;flex-wrap:wrap}.flow-sim select{min-height:30px;width:auto;min-width:0;max-width:100%;flex:1 1 200px}.crane-flow{display:grid;gap:8px}.crane-flow3d{position:relative;height:300px;border:1px solid var(--line);background:var(--bg)}.crane-flow3d>.flow3d{position:absolute;top:0;right:0;bottom:0;left:0}.flow-chain.compact{grid-template-columns:1fr;gap:10px}.flow.flow-rail{gap:0;padding:0}.flow.flow-rail>*{margin-inline:0}.flow-rail summary{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;cursor:pointer;list-style:none}.flow-rail summary::-webkit-details-marker{display:none}.flow-rail summary b{display:block;font-size:.85rem;font-weight:600}.flow-rail summary small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.75rem;color:var(--text-2);line-height:1.3}.flow-rail summary:hover{background:var(--surface-2)}.flow-rail.ok summary .flow-diag-icon{color:var(--green)}.flow-rail.warn summary .flow-diag-icon,.flow-rail.fail summary .flow-diag-icon{color:var(--red)}.flow-rail.fail{box-shadow:inset 3px 0 0 var(--red)}.flow-rail details[open]>summary{border-bottom:1px solid var(--line-2)}.flow-rail details>:not(summary){margin:10px}.flow-chain.compact .flow-node{grid-template-columns:auto 1fr auto;align-items:center;padding:7px 10px;box-shadow:inset 2px 0 0 var(--c)}.flow-chain.compact .flow-link{top:auto;bottom:-11px;right:auto;left:18px;width:2px;height:10px;transform:none;background:repeating-linear-gradient(180deg,var(--line-2) 0 3px,transparent 3px 5px)}.flow-chain.compact .flow-link.live{background:var(--green);animation:none}.flow-chain.compact .flow-link.broken{background:var(--red)}@media (max-width: 1100px){.flow-chain:not(.compact){grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.flow-chain:not(.compact) .flow-link{display:none}}@media (max-width: 640px){.flow-chain:not(.compact){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:40;width:min(480px,100vw);display:flex;flex-direction:column;background:var(--bg-2);border-left:1px solid var(--line-2);box-shadow:var(--shadow);animation:slide-in .2s cubic-bezier(.2,.7,.2,1)}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface)}.drawer-head small{color:var(--muted);font-size:.78rem}.drawer-head h2{font-size:1.25rem;font-family:var(--font-mono);font-weight:600;letter-spacing:.01em;margin-top:2px}.drawer-body{overflow-y:auto;padding:16px 18px 28px;display:grid;gap:14px;align-content:start}.drawer-body h3{margin:6px 0 0}.lamp-row{display:flex;gap:16px;align-items:center;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.lamp-row>div{display:grid;gap:2px}.lamp-row b{font-size:1.05rem}.lamp-row span{font-size:.88rem;color:var(--text-2)}.lamp-row .muted{color:var(--muted);font-size:.8rem}.lamp-mismatch{display:inline-flex;align-items:center;gap:6px;color:var(--red-ink);font-weight:500}.signals{display:grid;grid-template-columns:repeat(2,1fr);margin:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.signals>div{padding:9px 12px;border-top:1px solid var(--line)}.signals>div:nth-child(-n+2){border-top:0}.signals>div:nth-child(2n){border-left:1px solid var(--line)}.signals .wide{grid-column:1 / -1;border-left:0!important}.signals dt{color:var(--muted);font-family:var(--font-cond);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.signals dd{margin:2px 0 0;font-weight:500}.signals dd.on{color:var(--cyan-ink)}.signals dd.warn{color:var(--yellow-ink)}.signals dd.bad{color:var(--red-ink)}.timer{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px 10px}.timer-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:10px;font-size:.86rem;color:var(--text-2)}.timer-head b{font-family:var(--font-mono);font-weight:500;font-size:1.7rem;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.timer-head b.over{color:var(--red)}.bar{position:relative;display:flex;height:6px;background:var(--surface-3);border-radius:3px;overflow:visible}.bar .fill{background:var(--text-2);transition:width .5s linear;border-radius:3px 0 0 3px}.bar .over{background:var(--red);transition:width .5s linear}.bar .mark{position:absolute;left:66.67%;top:-4px;bottom:-4px;width:2px;background:var(--text-2);border-radius:1px}.timer-scale{position:relative;display:flex;justify-content:space-between;margin-top:7px;font-family:var(--font-mono);font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums}.timer-scale span:nth-child(2){position:absolute;left:66.67%;transform:translate(-50%)}.maint .form{margin:0}.maint>.btn{width:100%;min-height:42px}.maint .row{justify-content:flex-end}.sim{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border:1px dashed var(--line-2);border-radius:var(--radius-sm);font-size:.84rem}.events{list-style:none;margin:0;padding:0;display:grid;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.events li{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:7px 12px;font-size:.86rem;border-top:1px solid var(--line)}.events li:first-child{border-top:0}.events time{font-family:var(--font-mono);color:var(--muted);font-size:.78rem;padding-top:1px;font-variant-numeric:tabular-nums}.events li.checklist_blocked,.events li.checklist_rejected,.events li.verification_exceeded{color:var(--red-ink)}.events li.checklist_approved{color:var(--green-ink)}.ck{width:min(720px,100%);margin:0 auto;padding:20px 16px 48px}.ck>h1{margin-bottom:6px}.ck>p{margin:0 0 12px}.ck-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}.ck-head small{color:var(--muted)}.ck-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;margin-bottom:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.ck-timer{margin-left:auto;font-family:var(--font-mono);font-size:.86rem;font-variant-numeric:tabular-nums;color:var(--text);background:var(--surface-2);padding:3px 9px;border-radius:var(--radius-sm)}.ck-timer.over{color:var(--red-ink);background:var(--red-bg);animation:lamp-fade 1.6s ease-in-out infinite}@keyframes lamp-fade{50%{opacity:.6}}.pick{list-style:none;padding:0;margin:14px 0 0;display:grid;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.pick li+li{border-top:1px solid var(--line)}.pick-item{width:100%;display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;min-height:56px;background:transparent;border:0;text-align:left;cursor:pointer}.pick-item:hover{background:var(--surface-2)}.pick-item b{font-family:var(--font-mono)}.pick-status{color:var(--text-2);font-size:.84rem;text-align:right}.person{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;margin:4px 0 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.person>span:last-child{display:grid;gap:3px}.person small{display:inline-flex;align-items:center;gap:5px;color:var(--text-2)}.person small.ok{color:var(--green-ink)}.person small.bad{color:var(--red-ink)}.avatar{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--surface-3);color:var(--text);font-family:var(--font-cond);font-weight:600;letter-spacing:.04em;border:1px solid var(--line-2)}.items{list-style:none;counter-reset:item;padding:0;margin:10px 0 0;display:grid;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.items li{counter-increment:item;display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:10px 12px 10px 14px;border-top:1px solid var(--line);transition:background .15s}.items li:first-child{border-top:0}.items li>span:first-child:before{content:counter(item,decimal-leading-zero);display:inline-block;width:2.2em;color:var(--muted);font-family:var(--font-mono);font-size:.82rem}.items li.nok{background:var(--red-bg)}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--radius-sm);overflow:hidden}.seg button{min-width:64px;min-height:44px;padding:0 14px;background:var(--surface-2);border:0;cursor:pointer;font-weight:600;color:var(--text-2);font-family:var(--font-cond);letter-spacing:.06em;font-size:.92rem;transition:background .15s,color .15s}.seg button:hover{color:var(--text)}.seg button+button{border-left:1px solid var(--line-2)}.seg button.ok.on{background:var(--green);color:#fff}.seg button.nok.on{background:var(--red);color:#fff}.ck-actions{position:sticky;bottom:0;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding:12px 0;margin-top:10px;background:linear-gradient(transparent,var(--bg) 30%)}.ck-actions .btn{min-height:48px}.done{display:grid;gap:8px;justify-items:start;margin-top:14px;padding:18px 20px;border-radius:var(--radius);border:1px solid;background:var(--surface)}.done b{display:inline-flex;align-items:center;gap:10px;font-size:1.1rem;font-family:var(--font-cond)}.done span{color:var(--text-2)}.done.good{border-color:color-mix(in srgb,var(--green) 55%,var(--line))}.done.good b{color:var(--green-ink)}.done.good b .icon{color:var(--green)}.done.bad{border-color:color-mix(in srgb,var(--yellow) 65%,var(--line));background:var(--yellow-bg)}.done.bad b{color:var(--yellow-ink)}.done .btn{margin-top:6px}.done .rejected-items{display:grid;gap:2px}.done .rejected-items ul{margin:0;padding-left:20px;color:var(--text);font-weight:600}.done .rejected-items small{color:var(--text-2);font-weight:400}.done .signaled{display:inline-flex;align-items:center;gap:8px;color:var(--text)}.done .signaled .icon{color:var(--green)}.btn.signal{background:var(--yellow);border-color:var(--yellow);color:#17130a;font-weight:700;letter-spacing:.06em}.btn.signal:hover:not(:disabled){filter:brightness(1.08);background:var(--yellow)}.done .btn.signal{min-height:52px;min-width:220px;justify-content:center}.release{display:grid;gap:10px;justify-items:start;margin-top:14px;padding:18px 20px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--yellow) 65%,var(--line));background:var(--yellow-bg)}.release>b{display:inline-flex;align-items:center;gap:10px;font-size:1.1rem;font-family:var(--font-cond);color:var(--yellow-ink)}.release>span{color:var(--text-2)}.release .btn.signal{min-height:52px;min-width:220px;justify-content:center}.release .form{width:100%}.release-confirm{display:grid;gap:10px;width:100%;padding:14px 16px;border-radius:var(--radius-sm);border:2px solid var(--yellow);background:var(--surface)}.release-confirm b{display:inline-flex;align-items:center;gap:8px}.release-confirm .row{flex-wrap:wrap}.release-confirm .btn{min-height:48px;flex:1 1 140px;justify-content:center}.key-box{display:block;padding:8px 10px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);overflow-wrap:anywhere;font-size:.82rem}.code-box{margin:6px 0 10px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);overflow-x:auto;font-size:.8rem;line-height:1.45}.kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:10px 0}.kv dt{color:var(--text-2);font-size:.86rem}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}@media (max-width: 720px){.kv{grid-template-columns:minmax(0,1fr);gap:2px}.kv dd{margin-bottom:8px}}@media (max-width: 1100px){.clock{display:none}}@media (max-width: 720px){body{font-size:15px}.topbar{flex-wrap:wrap;gap:0 12px;height:auto;padding:8px 12px 0}.tabs{order:3;width:100%;overflow-x:auto;overflow-y:hidden;height:42px;overscroll-behavior:contain;touch-action:pan-x;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{flex:1 0 auto;justify-content:center;padding:0 10px}.who{gap:8px}.who>.muted,.who-sep,.conn,.who .btn-label{display:none}.ck-head{align-items:flex-start}.ck-head h1{font-size:1.2rem}.panel{padding:12px 12px 32px}.scope .field{flex:1 1 100%}.scope select,.scope input[type=search]{width:100%;min-width:0}.scope h1{flex:1 1 100%;margin-bottom:0}.pick-item{grid-template-columns:auto auto 1fr}.pick-status{grid-column:1 / -1;text-align:left}.items li{grid-template-columns:1fr}.seg{justify-self:stretch;display:flex}.seg button{flex:1;min-height:52px}.ck-actions .btn{flex:1}}@media (min-width: 2400px){html{font-size:20px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}.window.pulse:before{animation:none}.window.pulse{outline:3px dashed var(--bezel-text);outline-offset:-6px}.lamp.blink{outline:2px dashed var(--c);outline-offset:3px}}.mono{font-family:var(--font-mono)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.small{font-size:.85rem}.spacer{flex:1}.end{justify-content:flex-end}.ok-text{color:var(--green-ink)}.warn-text{color:var(--text);font-weight:600}.login-links{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;font-size:.86rem}.login-links .link{padding:0;font-family:var(--font)}.table-wrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem}.table th{position:sticky;top:0;z-index:1;text-align:left;font-family:var(--font-cond);font-weight:600;color:var(--text-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--surface-2);white-space:nowrap}.table td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums}.table td.mono{white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .12s}.table tbody tr[tabindex]{cursor:pointer}.table tbody tr[tabindex]:hover,.table tbody tr[tabindex]:focus-visible{background:var(--surface-2)}.table tr.inactive td{color:var(--muted)}.table tr.pending td{background:var(--surface-2)}.table.compact td{padding:5px 8px}.table input,.table select{min-height:32px;padding:4px 8px}.tag{display:inline-flex;align-items:center;gap:5px;margin:1px 4px 1px 0;padding:1px 7px;border-radius:var(--radius-sm);font-size:.74rem;font-weight:500;white-space:nowrap;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line-2)}.tag.ok,.tag.warn,.tag.bad{background:transparent}.tag.ok:before,.tag.warn:before,.tag.bad:before{content:"";width:6px;height:6px;border-radius:50%}.tag.ok{color:var(--green-ink);border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.tag.ok:before{background:var(--green)}.tag.warn{color:var(--text);border-color:var(--muted)}.tag.warn:before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--text)}.tag.bad{color:var(--red-ink);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}.tag.bad:before{background:var(--red)}.admin{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 56px)}.admin-nav{display:flex;flex-direction:column;gap:1px;padding:16px 10px;border-right:1px solid var(--line);background:var(--bg-2)}.admin-nav a{padding:8px 12px;border-radius:var(--radius-sm);color:var(--text-2);text-decoration:none;font-weight:500;font-size:.9rem}.admin-nav a:hover{background:var(--surface-2);color:var(--text)}.admin-nav a[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:inset 2px 0 0 var(--brand),0 0 0 1px var(--line)}.admin-main{padding:20px 26px 48px;min-width:0}.admin-section{display:grid;gap:16px;max-width:1400px}.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.admin-head p{margin:4px 0 0;max-width:760px;color:var(--text-2)}.admin-actions{display:flex;gap:8px;flex:none}.card-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:grid;gap:12px}.card-box h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.grid3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px 12px}.grid2 .wide{grid-column:1 / -1}.form label{display:grid;gap:4px}.form label.check,label.check{display:flex;align-items:center;gap:8px;font-weight:400;color:var(--text)}label.check input{width:auto;min-height:0;accent-color:var(--brand)}label.inline{display:flex;align-items:center;gap:8px}label.inline select{width:auto}fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px 12px;display:grid;gap:8px;margin:0}legend{color:var(--text-2);font-size:.86rem;padding:0 4px}.quals .row input:first-child{max-width:140px}input.tiny{width:64px;display:inline-block;margin:0 4px;min-height:30px;padding:4px 8px}.settings{max-width:720px}details summary{cursor:pointer;color:var(--text-2);margin-bottom:8px}.item-edit{margin:0;padding-left:26px;display:grid;gap:6px}.item-edit li{display:grid;grid-template-columns:1fr auto auto auto auto;gap:6px;align-items:center}.item-edit li::marker{color:var(--muted);font-family:var(--font-mono)}.issues{display:grid;gap:8px;padding:12px;border:1px solid color-mix(in srgb,var(--red) 45%,transparent);background:var(--red-bg);border-radius:var(--radius-sm)}.issues b{color:var(--red-ink)}.issues .table{background:var(--surface);border-radius:var(--radius-sm)}.summary{display:grid;gap:6px;justify-items:start;padding:14px;border-radius:var(--radius-sm);border:1px solid}.summary.ok{background:var(--green-bg);border-color:color-mix(in srgb,var(--green) 50%,var(--line))}.summary.ok b{display:inline-flex;align-items:center;gap:8px;color:var(--green-ink)}.steps{margin:0;padding-left:20px;color:var(--text-2);font-size:.88rem;display:grid;gap:4px}.file{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.file:focus-within .btn{outline:2px solid var(--brand);outline-offset:2px}.daybar{position:relative;height:32px;margin-bottom:22px;border-radius:var(--radius-sm);background:repeating-linear-gradient(45deg,var(--red-bg) 0 8px,color-mix(in srgb,var(--red) 25%,var(--red-bg)) 8px 16px)}.daybar>span{position:absolute;top:0;bottom:0;display:grid;place-items:center;font-family:var(--font-mono);font-weight:500;font-size:.82rem;color:var(--text);overflow:hidden;border-right:2px solid var(--surface)}.daybar .seg-0{background:color-mix(in srgb,var(--brand) 45%,var(--surface))}.daybar .seg-1{background:color-mix(in srgb,var(--brand) 30%,var(--surface))}.daybar .seg-2{background:color-mix(in srgb,var(--brand) 60%,var(--surface))}.daybar .seg-3{background:color-mix(in srgb,var(--brand) 20%,var(--surface))}.daybar-hours{position:absolute;left:0;right:0;top:100%;height:18px}.daybar-hours i{position:absolute;transform:translate(-50%);font-style:normal;font-size:.7rem;color:var(--muted);font-family:var(--font-mono);padding-top:3px}.daybar-hours i:first-child{transform:none}.daybar-hours i:last-child{transform:translate(-100%)}@media (max-width: 900px){.admin{grid-template-columns:minmax(0,1fr);align-content:start}.admin-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px}.admin-nav a{white-space:nowrap}.admin-main{padding:14px 12px 40px}.admin-head{flex-direction:column}.card-box{min-width:0}.card-box>.row{flex-wrap:wrap}.card-box>*{min-width:0}.table.compact{width:100%;table-layout:fixed}.table.compact th:first-child{width:18%}.table.compact th:last-child{width:40px}.table.compact input{width:100%;min-width:0}.table.compact td{padding:5px 4px}.grid2,.grid3{grid-template-columns:1fr}.item-edit li{grid-template-columns:1fr auto auto}.item-edit li .check{grid-column:1}}.report-filters{flex-wrap:wrap}.report-filters select{width:auto;min-width:200px}.report-filters input[type=date]{width:auto}.seg-group{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--bg-2)}.seg-group .btn{border-color:transparent;background:transparent}.seg-group .btn.on{background:var(--surface);border-color:var(--line-2);color:var(--text)}.report-hero{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:12px}.hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;display:grid;align-content:center;gap:6px}.hero span{color:var(--text-2);font-family:var(--font-cond);font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.hero b{font-size:3rem;line-height:1;font-family:var(--font);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.hero small{color:var(--text-2)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.stat{--c: var(--line-2);padding:12px 14px;display:grid;gap:2px;border-left:1px solid var(--line);border-top:1px solid var(--line)}.stat:nth-child(3n+1){border-left:0}.stat:nth-child(-n+3){border-top:0}.stat span{display:inline-flex;align-items:center;gap:7px;color:var(--text-2);font-size:.8rem}.stat span:before{content:"";width:7px;height:7px;border-radius:2px;background:var(--c)}.stat b{font-size:1.5rem;font-weight:500;font-variant-numeric:tabular-nums}.stat small{color:var(--muted);font-size:.76rem}.stat.ok{--c: var(--green)}.stat.warn{--c: var(--text-2)}.stat.bad{--c: var(--red)}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.report-grid .table-wrap{border:0}.report-grid .card-box{align-content:start}.chart{margin:0;display:grid;gap:8px}.chart figcaption{display:flex;align-items:center;gap:16px;font-size:.84rem;color:var(--text-2)}.chart figcaption .btn{margin-left:auto}.legend{display:inline-flex;align-items:center;gap:6px}.legend i,.tooltip i{display:inline-block;width:10px;height:10px;border-radius:2px}.chart-scroll{position:relative;overflow-x:auto}.chart svg{display:block}.chart svg .grid{stroke:var(--line);stroke-width:1}.chart svg .tick{fill:var(--muted);font-size:11px;font-family:var(--font)}.tooltip{position:absolute;top:4px;transform:translate(-50%);pointer-events:none;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:6px 10px;display:grid;gap:2px;font-size:.8rem;white-space:nowrap;box-shadow:var(--shadow)}.tooltip span{display:flex;align-items:center;gap:6px}.answers{list-style:none;counter-reset:a;margin:0;padding:0;display:grid;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.answers li{counter-increment:a;display:flex;justify-content:space-between;gap:10px;padding:7px 10px;background:var(--surface);border-top:1px solid var(--line)}.answers li:first-child{border-top:0}.answers li:before{content:counter(a,decimal-leading-zero);color:var(--muted);font-family:var(--font-mono);font-size:.8rem;margin-right:4px}.answers li span{flex:1}.answers li.nok{background:var(--red-bg)}.answers li b{font-family:var(--font-cond);letter-spacing:.05em}.answers li.ok b{color:var(--green-ink)}.answers li.nok b{color:var(--red-ink)}@media (max-width: 1100px){.report-hero,.report-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3n+1){border-left:1px solid var(--line)}.stat:nth-child(odd){border-left:0}.stat:nth-child(3){border-top:1px solid var(--line)}}.banner{display:flex;align-items:center;gap:12px;padding:8px 20px;border-bottom:1px solid;font-size:.9rem}.banner span{flex:1}.banner.warn{background:var(--surface-2);border-color:var(--muted);color:var(--text)}.banner.bad{background:var(--red-bg);border-color:color-mix(in srgb,var(--red) 45%,transparent);color:var(--red-ink)}.row.wrap{flex-wrap:wrap;gap:8px 18px}.license-box{max-width:720px}.platform{max-width:1500px}.meter{display:inline-block;width:70px;height:4px;border-radius:2px;background:var(--surface-3);margin-right:8px;vertical-align:middle;overflow:hidden}.meter i{display:block;height:100%;background:var(--brand)}.meter i.hot{background:var(--text)}.table th.num{text-align:right}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#05080cb8;display:grid;place-items:center;padding:16px}.modal{width:min(980px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.camera-view{position:relative;aspect-ratio:16 / 9;background:#000}.camera-view iframe,.camera-view video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#000}.camera-view .center{min-height:0;height:100%}.demo-camera{position:absolute;top:0;right:0;bottom:0;left:0}.demo-camera svg{width:100%;height:100%;display:block}.cam-tag{position:absolute;top:12px;left:12px;padding:3px 8px;border-radius:var(--radius-sm);background:#0009;color:#ff8f8c;font-weight:600;font-size:.76rem;font-family:var(--font-mono);letter-spacing:.04em}.cam-time{position:absolute;top:12px;right:12px;padding:3px 8px;border-radius:var(--radius-sm);background:#0009;color:#e8ecf1;font-size:.78rem;font-family:var(--font-mono)}.cam-note{position:absolute;bottom:10px;left:50%;transform:translate(-50%);padding:4px 10px;border-radius:var(--radius-sm);background:#0000008c;color:#c4ccd6;font-size:.78rem;white-space:nowrap}@media (max-width: 720px){.cam-note{white-space:normal;width:90%;text-align:center}}.qr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#fff;color:#111;overflow:auto}.qr-bar{position:sticky;top:0;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--bg-2);color:var(--text);border-bottom:1px solid var(--line)}.qr-sheet{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:10mm;max-width:210mm;margin:0 auto}.qr-label{display:grid;grid-template-columns:30mm 1fr;gap:3mm;align-items:center;padding:4mm;border:1px dashed #999;break-inside:avoid}.qr-code svg{width:30mm;height:30mm;display:block}.qr-text{display:grid;gap:1mm;font-family:Arial,Helvetica,sans-serif}.qr-text b{font-size:16pt;letter-spacing:.02em}.qr-text span{font-size:9pt}.qr-text small{font-size:7pt;color:#444}@media print{body *{visibility:hidden}.qr-overlay,.qr-overlay *{visibility:visible}.qr-overlay{position:absolute;top:0;right:0;bottom:0;left:0}.no-print{display:none!important}.qr-sheet{padding:0}@page{size:A4;margin:10mm}}@media (max-width: 720px){.qr-sheet{grid-template-columns:1fr}.qr-bar{flex-wrap:wrap}}@media (max-width: 1180px){.panel-grid{grid-template-columns:minmax(0,1fr)}}@media (min-width: 1181px){.panel.with-drawer .panel-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px){.annunciator{padding:8px}.windows{grid-template-columns:repeat(2,minmax(0,1fr))}.window{height:108px}.window-om{padding:0 8px 8px;gap:4px}.window-om .om,.window-om .window-alert-btn{padding:3px 6px;gap:4px}.window-code{font-size:1.4rem}}@media (max-width: 340px){.window-face{padding-left:8px;padding-right:8px}.window-om .om,.window-om .window-alert-btn{font-size:.68rem;padding:3px 5px}.window-alert{font-size:.7rem}}.flow3d-open{display:grid;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.flow3d-open:hover .flow3d-sum{background:var(--surface-2)}.flow3d-open:focus-visible{outline:3px solid var(--focus, var(--brand));outline-offset:-3px}.flow3d--rail{height:150px;border-bottom:1px solid var(--line)}.flow3d{position:relative;overflow:hidden}.flow3d-sum{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:8px;padding:8px 10px}.flow3d-sum b{display:block;font-size:.85rem;font-weight:600}.flow3d-sum small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.75rem;color:var(--text-2);line-height:1.3}.flow3d-sum>.icon:last-child{color:var(--text-2);margin-top:2px}.flow-rail.ok .flow3d-sum .flow-diag-icon{color:var(--green)}.flow-rail.warn .flow3d-sum .flow-diag-icon,.flow-rail.fail .flow3d-sum .flow-diag-icon{color:var(--red)}.flow3d-full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--bg);color:var(--text);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.flow3d-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);background:var(--surface)}.flow3d-head h2{margin:0;font-size:1.05rem;flex:1 1 260px}.flow3d-head h2 .muted{font-weight:400;font-size:.85rem;margin-left:6px}.flow3d-stage{position:relative;min-height:0}.flow3d-stage>.flow3d{position:absolute;top:0;right:0;bottom:0;left:0}.flow3d-tip{position:absolute;left:12px;bottom:10px;font-size:.72rem;color:var(--text-2);pointer-events:none}.flow3d-bar{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:6px max(16px,env(safe-area-inset-right,0px)) 6px max(16px,env(safe-area-inset-left,0px));border-top:1px solid var(--line);background:var(--surface);font-size:.74rem}.flow3d-bar .flow-diag{flex:1 1 320px;min-width:0;display:flex;align-items:center;gap:8px;padding:0;margin:0;border:0;background:none;box-shadow:none;font-size:.74rem;line-height:1.35}.flow3d-bar .flow-diag>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0}.flow3d-bar .flow-diag b{font-size:.76rem}.flow3d-bar .flow-diag p{margin:0;color:var(--text-2);flex:1 1 280px;min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.flow3d-bar .flow-diag-icon .icon{width:14px;height:14px}.flow3d-bar .flow-cranes{display:inline-flex;flex-wrap:wrap;gap:4px}.flow3d-bar .flow-cranes .btn.small{min-height:22px;padding:1px 7px;font-size:.7rem}.flow3d-steps{position:relative}.flow3d-steps>summary{cursor:pointer;color:var(--text-2);font-weight:600;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;list-style:none}.flow3d-steps>summary::-webkit-details-marker{display:none}.flow3d-steps>summary:after{content:" ▴"}.flow3d-steps[open]>summary:after{content:" ▾"}.flow3d-pop{position:absolute;right:0;bottom:calc(100% + 10px);width:min(320px,86vw);max-height:60vh;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 10px 30px #00000040;z-index:2}.flow3d-pop .flow-node{font-size:.72rem}.flow3d-bar .flow-sim{display:flex;align-items:center;gap:8px;padding:0;margin:0;border:0;font-size:.7rem}.flow3d-bar .flow-sim select{font-size:.74rem;min-height:28px;padding:2px 6px}
