@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-condensed-latin-400-normal-DKyD6XsY.woff2) format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-400-normal-5i361Byk.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-latin-500-normal-BqaLkUoX.woff2) format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-500-normal-BLe87hIu.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-condensed-latin-600-normal-CRd5VyFf.woff2) format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-600-normal-6XnkKYvF.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-condensed-latin-700-normal-D8r4s4aS.woff2) format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-700-normal-D3enqrvP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}:root{--bench: #d6dbd5;--card: #f5f6f2;--paper: #fbfbf7;--ink: #1c2834;--ink-2: #56636e;--ink-3: #87929a;--rule: #b9c1bc;--chrome: #26333b;--chrome-2: #33434d;--safety: #f2b600;--safety-deep: #c48d00;--danger: #c0321d;--go: #2f8a4f;--amber: #e39b1a;--blue: #2c69b0;--probe-red: #d7263d;--sans: "IBM Plex Sans Condensed", "Arial Narrow", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--bench);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}button,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--safety);outline-offset:2px}h2{font-size:16px;font-weight:600;margin:0;letter-spacing:.01em}h3{font-size:13px;font-weight:600;color:var(--ink-2);margin:12px 0 4px}code{font-family:var(--mono);font-size:12.5px}.topbar{height:56px;display:flex;align-items:center;gap:24px;padding:0 18px;background:var(--chrome);color:#e9ede9}.brand{display:flex;align-items:baseline;gap:10px;white-space:nowrap}.brand-mark{font-weight:700;font-size:19px;color:var(--safety);letter-spacing:.01em}.brand-sub{font-size:15px;color:#c9d2ce}.seg{display:inline-flex;background:#ffffff12;border-radius:8px;padding:3px;gap:2px}.seg button{border:0;background:transparent;padding:6px 14px;border-radius:6px;cursor:pointer;color:inherit;white-space:nowrap}.seg button[aria-selected=true]{background:var(--safety);color:var(--ink);font-weight:600}.seg-small{background:#c8cec8}.seg-small button[aria-selected=true]{background:var(--ink);color:#f2f4f1}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.wo-timer{font-family:var(--mono);font-size:13px;color:#c9d2ce;margin-right:6px;white-space:nowrap}.btn{border:1px solid transparent;border-radius:6px;padding:8px 14px;cursor:pointer;font-weight:600;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);color:#f5f6f2}.btn-primary:hover{background:#2c3c4a}.btn-secondary{background:var(--safety);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:#ffc61a}.btn-quiet{background:transparent;border-color:currentColor;color:inherit;font-weight:500;padding:6px 12px;opacity:.85}.btn-quiet[aria-pressed=true]{background:#f2b60033;border-color:var(--safety);opacity:1}.icon-btn{width:32px;height:32px;border-radius:6px;border:1px solid var(--rule);background:var(--card);cursor:pointer;font-size:18px;line-height:1}.linkish{border:0;background:none;padding:0;color:var(--blue);text-decoration:underline;cursor:pointer;font-size:13px}.instructor-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 18px;background:#fff3c4;border-bottom:1px solid var(--safety-deep);font-size:14px}.instructor-bar[hidden]{display:none}.bench{display:grid;grid-template-columns:330px minmax(0,1fr) 352px;gap:14px;padding:14px;height:calc(100vh - 56px)}.col{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:14px;padding-bottom:8px}.col-center{overflow:hidden}.card{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:14px 16px}.wo-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.chip{font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px}.chip-down{background:#f8d9d3;color:#8a2312}.chip-run{background:#d4ecdb;color:#1d5e35}.wo-asset{margin:6px 0 0;color:var(--ink-2);font-size:14px}.wo-meta{margin:4px 0 10px;color:var(--ink-2);font-size:13px}.complaint{margin:12px 0 6px;padding:10px 12px;background:#fff;border-left:4px solid var(--safety);font-size:16px;line-height:1.4}.workorder .btn-primary{width:100%;margin-top:4px}.view-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.zoom{display:flex;gap:6px;align-items:center}.zoom .btn-quiet{color:var(--ink);padding:5px 12px}.onboarding{display:flex;align-items:flex-start;gap:14px;background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:10px 14px;font-size:14px}.onboarding[hidden]{display:none}.onboarding ol{margin:0;padding-left:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px;flex:1}.onboarding .btn-quiet{color:var(--ink)}.view-host{flex:1;min-height:0;border-radius:10px;overflow:hidden;border:1px solid var(--rule);background:#c9cfca}.sheet{width:100%;height:100%;display:block;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.sheet:active{cursor:grabbing}.print .paper{fill:var(--paper)}.print .border{fill:none;stroke:var(--ink-2);stroke-width:1}.print .zone{font:9px var(--mono);fill:var(--ink-3)}.ink{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.ink.fill{fill:var(--ink)}.ink.box{fill:#fff}.ink.thick{stroke-width:2.2}.ink.dashed{stroke-dasharray:4 3;stroke-width:1.2}.junction{fill:var(--ink)}.wire-line{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}.wire-hit{fill:none;stroke:transparent;stroke-width:14}.mode-amp .wire{cursor:pointer}.mode-amp .wire:hover .wire-line{stroke:var(--safety-deep);stroke-width:3.4}.wire-tag{font:600 10.5px var(--mono);fill:var(--ink)}.wire-tag-bg{fill:var(--paper)}.t-tag{font:600 13px var(--sans);fill:var(--ink)}.t-label{font:11.5px var(--sans);fill:var(--ink-2)}.t-term{font:9.5px var(--mono);fill:var(--ink-2)}.t-mini{font:9.5px var(--sans);fill:var(--ink-2)}.t-coil{font:600 11px var(--sans);fill:var(--ink)}.t-rail,.t-heading{font:600 12px var(--sans);fill:var(--ink)}.t-rung{font:600 11px var(--mono);fill:var(--ink-2)}.t-xref{font:10px var(--mono);fill:var(--ink-2)}.t-note{font:italic 11.5px var(--sans);fill:var(--ink-2)}.t-title{font:600 15px var(--sans);fill:var(--ink)}.t-small{font:10.5px var(--sans);fill:var(--ink-2)}.term{cursor:pointer;outline:none}.term-ring{fill:var(--safety);opacity:0;transition:opacity .12s}.mode-leads .term:hover .term-ring,.term:focus-visible .term-ring{opacity:.45}.term-dot{fill:#fff;stroke:var(--ink);stroke-width:1.4}.term-hit{fill:transparent}.lead-wire{stroke-width:4;stroke-linecap:round}.lead-tip{stroke-width:2.2;stroke:#c9cfd3;stroke-linecap:round}.lead-ring{stroke-width:2.6}.lead-red .lead-wire,.lead-red .lead-ring{stroke:var(--probe-red)}.lead-black .lead-wire,.lead-black .lead-ring{stroke:var(--ink)}.lead-ring{fill:#f2b6002e}.lead-label{font:600 11px var(--mono);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:3px}.lead,.clamp{pointer-events:none}.clamp-jaw{fill:#f2b60040;stroke:var(--safety-deep);stroke-width:3}.panel-bg{fill:#c9cfca}.area-backplate{fill:#edede8;stroke:#a9b1ad}.area-door{fill:#dfe3dd;stroke:#a9b1ad}.area-field{fill:#e6e8df;stroke:#a9b1ad;stroke-dasharray:6 4}.area-label{font:600 12px var(--sans);fill:var(--ink-2)}.din-rail{fill:#bcc3c6;stroke:#8f989c}.din-slot{fill:#8f989c}.duct{fill:#a8b0b4;stroke:#848d92}.duct-finger{stroke:#8a9398;stroke-width:2}.pdev-body{fill:#f2f3f0;stroke:#8f989c;stroke-width:1.2}.look-psu .pdev-body{fill:#586979;stroke:#3c4a57}.look-contactor .pdev-body{fill:#3e464a;stroke:#262c2f}.look-plc .pdev-body{fill:#2f363a;stroke:#1d2225}.look-strip .pdev-body{fill:#c4cac6}.look-door .pdev-body{fill:#f7f7f3}.look-field .pdev-body{fill:#f7f7f3;stroke-dasharray:5 3}.look-psu .pterm-name,.look-contactor .pterm-name,.look-plc .pterm-name,.light{fill:#e6eaec}.halo{paint-order:stroke;stroke:#edede8;stroke-width:5px;stroke-linejoin:round}.pdev-title{font:600 12.5px var(--sans);fill:var(--ink)}.pdev-sub{font:10.5px var(--sans);fill:var(--ink-2)}.pdev-mini{font:600 9.5px var(--sans);fill:var(--ink-2)}.pterm-name{font:9px var(--mono);fill:var(--ink-2)}.led{fill:#4b5358;stroke:#1d2225}.led-green{fill:#46e07a;filter:drop-shadow(0 0 4px #46e07a)}.led-amber{fill:#ffb52e;filter:drop-shadow(0 0 4px #ffb52e)}.handle{fill:#f8f8f6;stroke:#6c757a}.handle-trip{fill:#e4572e}.ol-flag{fill:#d9dcd8;stroke:#8f989c}.ol-tripped{fill:var(--amber)}.window{fill:#1c2124}.window-bar{fill:#7e888e;transition:y .12s}.window-in{fill:#f2f4f5}.jumper-bar{fill:#e08a2e}.operator-ring{fill:#c7cdd1;stroke:#8f989c}.estop-ring{fill:var(--safety)}.button-back.btn-green{fill:var(--go)}.button-back.btn-red{fill:var(--danger)}.button-back.btn-black{fill:#262b2e}.contact-block{fill:#f0f0ec;stroke:#9aa2a6}.lens{stroke:#3a4247;stroke-width:2}.lens-green{fill:#3e5f47}.lens-amber{fill:#6d5a2e}.lens-green.lens-lit{fill:#4be07a;filter:drop-shadow(0 0 7px #4be07a)}.lens-amber.lens-lit{fill:#ffb52e;filter:drop-shadow(0 0 7px #ffb52e)}.sensor-barrel{fill:#8e989d;stroke:#5f696e}.valve-body{fill:#5e6b74;stroke:#3f4a51}.screw{fill:#ced4d7;stroke:#6f787d}.screw-slot{stroke:#5a6368;stroke-width:1.4}.cond{stroke-width:4.5;stroke-linecap:round}.cond-stripe{stroke-width:1.6;stroke-dasharray:5 4}.ferrule{cursor:default}.ferrule-bg{fill:#fff;stroke:#8f989c}.ferrule-txt{font:600 9.5px var(--mono);fill:var(--ink)}.mode-amp .ferrule{cursor:pointer}.mode-amp .ferrule:hover .ferrule-bg{fill:var(--safety)}.panel .lead-label{stroke:#edede8}.operator h2{margin-bottom:8px}.machine{width:100%;display:block;background:#e8ebe6;border-radius:8px}.floor{fill:#cdd2cc}.frame{fill:#6c767b}.belt{fill:#3d454a}.belt-dash{stroke:#79838a;stroke-width:2;stroke-dasharray:10 8}.roller-face{fill:#a3abb0;stroke:#5d676c}.roller-spoke{stroke:#5d676c;stroke-width:2}.roller,.fan{transform-box:view-box}.carton{fill:#c9a46b;stroke:#9c7a44}.motor{fill:#3d6f93;stroke:#2a5170}.fan-ring{fill:#2a5170}.fan-blade{fill:#c9d6df}.m-label{font:600 10px var(--mono);fill:var(--ink-2)}.pe{fill:#3a4247}.beam{stroke:#e8412e;stroke-width:2;stroke-dasharray:3 3}.beam.blocked{opacity:.25}.cyl{fill:#8c969b;stroke:#5d676c}.rod{fill:#d5dadd;stroke:#6c767b;transition:y .18s,height .18s}.reject-bin{fill:none;stroke:#8c969b;stroke-dasharray:4 3}.part{transition:transform .3s ease-in}.part.pushed{transform:translate(150px,-14px)}.running .belt-dash{animation:belt .5s linear infinite}.running .belt-dash.rev{animation-direction:reverse}.running .roller{animation:spin .6s linear infinite}.running .fan{animation:spin .25s linear infinite}.running .cartons{animation:ride 2.4s linear infinite}@keyframes belt{to{stroke-dashoffset:-18}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ride{0%{transform:translate(-72px)}to{transform:translate(0)}}.station-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:12px;padding:12px;background:#d8dcd5;border-radius:8px}.station,.station-lamps{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}.op-btn,.op-sel,.pilot{display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:none;padding:0;cursor:pointer;touch-action:none}.op-cap{width:50px;height:50px;border-radius:50%;border:6px solid #b7bec2;box-shadow:inset 0 -4px #00000047,0 2px #0003;transition:transform .06s}.op-green .op-cap{background:var(--go)}.op-red .op-cap{background:var(--danger)}.op-btn.pressed .op-cap{transform:scale(.92);box-shadow:inset 0 3px 4px #00000059}.op-estop .op-cap{width:58px;height:58px;background:radial-gradient(circle at 40% 35%,#e0503a,#a5240f 70%);border-color:var(--safety)}.op-estop.latched .op-cap{transform:scale(.9);box-shadow:inset 0 3px 5px #0006}.op-label,.pilot-label{font-size:12px;font-weight:600;color:var(--ink);max-width:84px;text-align:center;line-height:1.2}.sel-face{width:50px;height:50px;border-radius:50%;background:#262b2e;border:6px solid #b7bec2;display:grid;place-items:center}.sel-knob{width:8px;height:30px;border-radius:4px;background:#f2f4f1;transform:rotate(-45deg);transition:transform .15s}.op-sel.on .sel-knob{transform:rotate(45deg)}.sel-legend{display:flex;gap:14px;font:600 10px var(--mono);color:var(--ink-2)}.op-toggle{align-self:center;border:1px solid var(--ink-2);background:#fff;border-radius:6px;padding:8px 12px;cursor:pointer;font-weight:600}.pilot{cursor:default}.pilot-lens{width:34px;height:34px;border-radius:50%;border:5px solid #b7bec2;margin-top:8px}.pilot-green .pilot-lens{background:#3e5f47}.pilot-amber .pilot-lens{background:#6d5a2e}.pilot-green.lit .pilot-lens{background:#4be07a;box-shadow:0 0 14px 2px #4be07abf}.pilot-amber.lit .pilot-lens{background:#ffb52e;box-shadow:0 0 14px 2px #ffb52ebf}.loto-row{display:flex;gap:14px;align-items:center;margin-top:10px}.disc{width:112px;flex:none;cursor:pointer}.disc-plate{fill:var(--safety);stroke:var(--safety-deep)}.disc-ring{fill:#2b3237}.disc-mark{font:700 11px var(--sans);fill:var(--ink)}.disc-handle{transform-box:view-box;transition:transform .25s ease}.disc-grip{fill:var(--danger);stroke:#7d1d0e}.disc-hub{fill:#2b3237}.shackle{fill:none;stroke:#9aa2a6;stroke-width:4}.lock-body{fill:#b3261e;stroke:#6d150f}.loto-side{display:flex;flex-direction:column;gap:8px;min-width:0}.loto-status{margin:0;font-weight:600}.st-live{color:var(--danger)}.st-off{color:var(--ink-2)}.st-safe{color:var(--go)}.btn-loto{background:#fff;border-color:var(--ink-2);color:var(--ink)}.danger-tag{border:2px solid var(--ink);border-radius:6px;background:#fff;font-size:12px;line-height:1.3;overflow:hidden}.danger-tag strong{display:block;background:var(--danger);color:#fff;text-align:center;letter-spacing:.08em;padding:2px}.danger-tag span{display:block;padding:4px 6px}.io-row{display:grid;grid-template-columns:16px 42px 1fr;gap:8px;align-items:center;font-size:14px;padding:2px 0}.io-led{width:12px;height:12px;border-radius:50%;background:#8c959a;border:1px solid #5f686d}.io-led.on{background:#46e07a;box-shadow:0 0 8px #46e07a}.meter-card{padding:14px}.meter-body{background:linear-gradient(180deg,#f6bf12,var(--safety));border-radius:24px;padding:12px 14px 14px;box-shadow:inset 0 -6px 0 var(--safety-deep),0 2px #0000002e}.meter-brand{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:#4a3a00;padding:0 4px 8px}.meter-brand strong{font-size:14px;color:var(--ink)}.lcd{background:#b7c3a3;border:4px solid #2b3237;border-radius:8px;padding:6px 12px 8px;color:#1f2a1e;box-shadow:inset 0 2px 6px #00000040}.lcd-anns{display:flex;gap:10px;height:14px;font:600 10px var(--mono)}.ann{opacity:.12}.ann.show{opacity:.9}.ann-live.show{color:#b01c06;animation:blink .8s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.lcd-digits{position:relative;text-align:right;font:600 46px/1.05 var(--mono);letter-spacing:.02em;height:50px}.lcd-ghost{position:absolute;right:0;opacity:.06}.lcd-main{position:relative}.lcd-unit{display:block;text-align:right;font:600 14px var(--mono);min-height:18px}.meter-off .lcd{background:#8f9a80}.dial{width:100%;display:block;margin-top:6px}.dial-face{fill:#313a41}.dial-tick{stroke:#e9ede9;stroke-width:2}.dial-hit{fill:transparent;cursor:pointer}.dial-opt{cursor:pointer;outline:none}.dial-label{font:600 16px var(--sans);fill:#2b2400}.dial-opt.on .dial-label{fill:#000;text-decoration:underline}.dial-opt:focus-visible .dial-hit{fill:#0000001f}.knob{transform-box:view-box;transform-origin:120px 104px;transition:transform .18s ease}.knob-base{fill:#1f2428}.knob-grip{fill:#3b444b;stroke:#15191c}.knob-pointer{fill:var(--safety)}.jacks{display:flex;justify-content:space-between;gap:10px;margin-top:6px}.jack{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 8px;border-radius:999px;border:2px solid transparent;background:#2b3237;color:#e9ede9;font:600 12px var(--mono);cursor:pointer}.jack-hole{width:16px;height:16px;border-radius:50%;background:#111;box-shadow:0 0 0 3px #1c2834}.jack-red .jack-hole{box-shadow:0 0 0 3px var(--probe-red)}.jack.armed{border-color:#fff;box-shadow:0 0 0 2px var(--ink)}.leads{margin-top:12px;display:grid;gap:6px;font-size:14px}.leads[hidden]{display:none}.lead-row{display:grid;grid-template-columns:14px auto 1fr;gap:8px;align-items:center}.lead-row code{justify-self:end}.swatch{width:12px;height:12px;border-radius:3px}.swatch.red{background:var(--probe-red)}.swatch.black{background:var(--ink)}.swatch.clampc{background:var(--safety-deep)}.leads .linkish{justify-self:start}.meter-hint{margin:10px 0 0;font-size:13px;color:var(--ink-2)}.logcard{max-height:260px;display:flex;flex-direction:column}.log{list-style:none;margin:8px 0 0;padding:0;overflow:auto;font-size:13px}.log li{display:grid;grid-template-columns:26px 1fr auto;gap:8px;padding:4px 0;border-bottom:1px solid #e1e5df;align-items:baseline}.log li.log-empty{display:block;color:var(--ink-2);border:0}.log-mode{font:600 12px var(--mono);color:var(--ink-2)}.log-where{font:12px var(--mono);color:var(--ink);overflow-wrap:anywhere}.log strong{font:600 12.5px var(--mono);white-space:nowrap}.field{display:grid;gap:4px;margin:8px 0;font-size:13px;color:var(--ink-2)}.field.inline{display:inline-flex;align-items:center;gap:8px;margin:0}.field select,.instructor-bar select{width:100%;padding:7px 8px;border-radius:6px;border:1px solid var(--rule);background:#fff;color:var(--ink);font-size:14px}.instructor-bar select{width:auto;max-width:420px}.ticket .btn-secondary{width:100%;margin-top:4px}.ticket-msg{font-size:14px;margin:10px 0 4px}.history{list-style:none;padding:0;margin:0;font-size:13px}.history li{display:grid;padding:5px 0;border-top:1px solid #e1e5df}.history small{color:var(--ink-2)}.toasts{position:fixed;left:50%;bottom:18px;transform:translate(-50%);display:grid;gap:8px;z-index:20;width:min(560px,calc(100vw - 32px))}.toast{background:var(--chrome);color:#f2f4f1;padding:10px 14px;border-radius:8px;box-shadow:0 6px 18px #00000040;font-size:14px;transition:opacity .4s}.toast-warn{border-left:5px solid var(--safety)}.toast-danger{border-left:5px solid #ff6a4d}.toast.out{opacity:0}.results{border:0;border-radius:14px;padding:0;width:min(520px,calc(100vw - 32px));background:var(--card);color:var(--ink)}.results::backdrop{background:#1c28348c}.results-inner{padding:24px}.grade{display:flex;align-items:center;gap:16px;margin-bottom:8px}.grade-letter{width:64px;height:64px;border-radius:50%;background:var(--safety);display:grid;place-items:center;font:700 34px var(--sans)}.grade-score{font:600 22px var(--mono)}.results h2{font-size:20px}.cause{margin:8px 0 14px;font-size:15px}.cause span{display:block;font-size:13px;color:var(--ink-2)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 14px}.stats div{background:#fff;border:1px solid var(--rule);border-radius:8px;padding:8px}.stats dt{font-size:12px;color:var(--ink-2)}.stats dd{margin:0;font:600 16px var(--mono)}.deductions{margin:0 0 14px;padding-left:18px;font-size:14px}.clean{color:var(--go);font-weight:600}.results-actions{display:flex;justify-content:flex-end;gap:10px}.results-actions .btn-quiet{color:var(--ink)}@media (max-width: 1240px){.bench{grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:auto}.col-center{grid-column:1 / -1;order:-1;height:72vh}.col{overflow:visible}}@media (max-width: 760px){.topbar{height:auto;flex-wrap:wrap;gap:10px;padding:10px 14px}.top-actions{margin-left:0;flex-wrap:wrap}.bench{grid-template-columns:1fr;padding:10px}.onboarding ol{grid-template-columns:1fr}.col-center{height:auto}.view-host{flex:none;aspect-ratio:4 / 3}.stats{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}a.brand-link{color:inherit;text-decoration:none}a.brand-link:hover .brand-sub{color:#fff}.hl-band{fill:#f2b60029}.wire.hl .wire-line{stroke:var(--safety-deep);stroke-width:2.6}.sym.hl .ink{stroke:var(--safety-deep)}.sym[data-device]{cursor:default}.fx{--top: 56px;--hud: rgba(245, 246, 242, .93);position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#1d252b}.fx-stage{position:absolute;inset:var(--top) 0 0 0}.fx-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.fx-top{position:absolute;inset:0 0 auto 0;z-index:5}.fx-where{color:#c9d2ce;font-size:15px;white-space:nowrap}.fx-scene-pick{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:500 15px/1.2 var(--sans);color:#e6ece9;background:var(--chrome-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23c9d2ce' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid #4a5b65;border-radius:4px;padding:6px 30px 6px 10px;cursor:pointer}.fx-scene-pick:hover{border-color:#6c7f89}.fx-scene-pick:focus-visible{outline:2px solid var(--safety);outline-offset:2px}.fx-scene-pick option{color:var(--ink);background:var(--paper)}.fx-top .top-actions{gap:8px}.fx-top .btn-quiet{padding:6px 10px}.fx-instructor{position:absolute;top:var(--top);left:0;right:0;z-index:5}.fx-left,.fx-right{position:absolute;top:calc(var(--top) + 12px);bottom:64px;z-index:4;display:flex;flex-direction:column;gap:10px;overflow-y:auto;scrollbar-width:thin;pointer-events:none;padding-bottom:4px}.fx-left>*,.fx-right>*{pointer-events:auto}.fx-left{left:12px;width:292px}.fx-right{right:12px;width:322px}.fx-card{background:var(--hud);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 22px #0a101438;border-color:#b9c1bcb3}.fx-card details>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;list-style:none}.fx-card details>summary::-webkit-details-marker{display:none}.fx-card details>summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:rotate(45deg) translateY(-3px);transition:transform .15s;margin-left:6px}.fx-card details[open]>summary:after{transform:rotate(-135deg) translateY(-1px)}.fx-card details>summary .chip{margin-left:auto}.fx-card .complaint{font-size:15px}.fx-safety h2{margin-bottom:4px}.fx-state{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 10px;font-size:14px}.fx-dot{width:10px;height:10px;border-radius:50%;flex:none}.fx-dot.live{background:var(--danger);box-shadow:0 0 0 3px #c0321d33}.fx-dot.dead{background:var(--go)}.fx-safety-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.fx-safety-row .btn-quiet,.fx-tabs .btn-quiet{color:var(--ink);border-color:var(--rule);background:#fff}.fx-safety-row .btn-quiet:hover{border-color:var(--ink-3)}.fx-safety-row [hidden]{display:none}.fx-plc .io-row{font-size:13px}.fx-meter .card{background:var(--hud);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 22px #0a101438}.fx-tabs{display:flex;flex-direction:column;min-height:160px}.fx-tabbar{align-self:flex-start;margin-bottom:6px}.fx-tabpane .log{max-height:210px}.fx-tabpane .ticket{border:0;padding:0;background:none}.fx-inspecting .fx-left .workorder,.fx-inspecting .fx-left .plc{display:none}.fx-hint{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:4;display:flex;align-items:center;gap:12px;padding:7px 8px;background:#161e24d1;color:#e3e8e6;border-radius:999px;font-size:14px;white-space:nowrap;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);max-width:calc(100vw - 680px);overflow:hidden;text-overflow:ellipsis}.fx-hint>span:last-of-type{padding-right:8px}.fx-mode{background:var(--safety);color:var(--ink);font-weight:600;padding:3px 12px;border-radius:999px}.fx-hint .btn-quiet{padding:3px 12px;border-radius:999px;color:#fff;border-color:#fff6}.fx-tip{position:absolute;left:0;top:0;z-index:3;max-width:300px;padding:6px 10px;background:#161e24e6;color:#f2f4f1;border-left:3px solid var(--safety);border-radius:4px;font-size:13.5px;line-height:1.35;pointer-events:none}.fx-print{position:absolute;inset:calc(var(--top) + 10px) 12px 12px 12px;z-index:8;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);border-radius:10px;box-shadow:0 18px 50px #0006;overflow:hidden}.fx-print[hidden]{display:none}.fx-print-bar{display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--rule)}.fx-print-bar .wo-meta{margin:0;flex:1}.fx-print-bar .zoom .btn-quiet,.fx-print-bar>.btn-quiet{color:var(--ink);border-color:var(--rule)}.fx-print-host{flex:1;min-height:0;background:#e9ece6}.fx-print-host svg{width:100%;height:100%}.fx-intro{position:absolute;inset:var(--top) 0 0 0;z-index:9;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#141c2259,#0c1115c7)}.fx-intro[hidden]{display:none}.fx-intro-card{width:min(560px,calc(100vw - 32px));background:var(--card);border-radius:12px;padding:26px 28px 24px;box-shadow:0 30px 80px #00000073;border-top:6px solid var(--safety)}.fx-intro-wo{margin:0 0 6px;font-family:var(--mono);font-size:13px;color:var(--danger)}.fx-intro-card h1{margin:0 0 10px;font-size:27px;line-height:1.18;font-weight:700;letter-spacing:-.005em}.fx-intro-sub{margin:0 0 16px;color:var(--ink-2)}.fx-keys{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:0 0 16px;padding:12px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.fx-keys div{display:grid;grid-template-columns:112px 1fr;gap:8px;align-items:baseline}.fx-keys dt{font-family:var(--mono);font-size:12.5px;font-weight:600}.fx-keys dd{margin:0;font-size:14px;color:var(--ink-2)}.fx-intro-note{margin:0 0 16px;padding:8px 12px;background:#fbf1cc;border-left:4px solid var(--safety);font-size:14px}.fx-go{width:100%;padding:12px;font-size:16px;font-weight:600}.fx-pad{display:none}@media (pointer: coarse){.fx-pad{position:absolute;left:16px;bottom:70px;z-index:4;display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px);gap:4px}.fx-pad button{border:0;border-radius:10px;background:#161e24b3;color:#fff;font-size:18px;touch-action:none}.pad-f{grid-column:2;grid-row:1}.pad-l{grid-column:1;grid-row:2}.pad-r{grid-column:3;grid-row:2}.pad-b{grid-column:2;grid-row:3}}@media (max-width: 1100px){.fx-where,.brand-sub{display:none}.fx-left{width:260px}.fx-right{width:290px}.fx-hint{max-width:calc(100vw - 32px);bottom:auto;top:calc(var(--top) + 10px)}}@media (max-width: 760px){.fx{--top: 52px}.fx-top{gap:10px;overflow-x:auto}.fx-left,.fx-right{top:auto;bottom:0;left:0;right:0;width:auto;max-height:42vh;padding:8px;background:#d6dbd599}.fx-left,.fx-hint{display:none}}.fx-modes button{padding:5px 12px}.fx-commission .fx-src{margin:4px 0 10px}.fx-status{margin:0 0 10px;display:grid;gap:4px;font-size:13.5px}.fx-status div{display:grid;grid-template-columns:78px 1fr;gap:8px;align-items:baseline}.fx-status dt{color:var(--ink-2)}.fx-status dd{margin:0;display:flex;gap:7px;align-items:baseline}.fx-status .fx-dot{transform:translateY(1px)}.fx-dot.ok{background:var(--go)}.fx-dot.warn{background:var(--amber)}.fx-dot.off{background:var(--ink-3)}.fx-check{display:flex;gap:8px;align-items:center;font-size:13.5px;margin:0 0 10px;color:var(--ink-2)}.fx-check[hidden]{display:none}.fx-commission .btn-primary{width:100%}.fx-brief-body{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(280px,.9fr) minmax(420px,1.4fr);gap:28px;padding:16px 20px 24px}.fx-brief-col h3{margin:0 0 8px;font-size:14px;color:var(--ink)}.fx-brief-col h3:not(:first-child){margin-top:20px}.fx-seq{margin:0;padding-left:20px;display:grid;gap:6px;font-size:14px;line-height:1.45}.fx-seq ul{margin:4px 0 0;padding-left:18px}.fx-seq code{font-size:12.5px}.fx-note{margin:10px 0 0;padding:7px 10px;border-left:3px solid var(--safety);background:#fbf1cc;font-size:13.5px}.fx-iotable{width:100%;border-collapse:collapse;font-size:13px}.fx-iotable th{text-align:left;font-weight:600;color:var(--ink-2);border-bottom:1px solid var(--rule);padding:4px 8px 4px 0;white-space:nowrap}.fx-iotable td{border-bottom:1px solid #e1e5df;padding:4px 8px 4px 0;vertical-align:top}.fx-iotable td:nth-child(2),.fx-iotable td:nth-child(3),.fx-now{font-family:var(--mono);font-size:12.5px}.fx-iotable tr.on .fx-now{color:var(--go);font-weight:600}.fx-codeblock{margin-top:18px}.fx-codehead{display:flex;align-items:center;gap:8px;margin-bottom:6px}.fx-codehead h3{margin:0 auto 0 0!important}.fx-codehead .btn-quiet{color:var(--ink);border-color:var(--rule);padding:3px 10px}.fx-code{margin:0;padding:12px 14px;background:#1f272d;color:#e3e8e6;border-radius:6px;font-family:var(--mono);font-size:12.5px;line-height:1.5;overflow:auto;max-height:320px}.fx-scene-error{margin:24px;padding:16px;background:#fff;border-left:4px solid var(--danger);font-family:var(--mono);white-space:pre-wrap}@media (max-width: 1100px){.fx-brief-body{grid-template-columns:1fr}}.fx-checks{max-height:min(60vh,520px);display:flex;flex-direction:column}.fx-checks-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.fx-checks-head h2{margin:0;font-size:17px}.fx-checklist{list-style:none;margin:8px 0;padding:0;overflow-y:auto;flex:1;min-height:0}.fx-checklist li{display:grid;grid-template-columns:20px 1fr;gap:6px;padding:6px 0;border-top:1px solid var(--rule)}.fx-checklist li:first-child{border-top:0}.fx-checklist .ck-icon{font:600 14px/1.3 var(--mono);color:var(--ink-3);text-align:center}.fx-checklist .ck-name{margin:0;font-size:14px;line-height:1.3;color:var(--ink-2)}.fx-checklist .ck-why{margin:3px 0 0;font-size:13px;line-height:1.35;color:var(--danger)}.fx-checklist .ck-running .ck-name{color:var(--ink);font-weight:600}.fx-checklist .ck-running .ck-icon{color:var(--safety-deep);animation:ck-spin 1.2s linear infinite}.fx-checklist .ck-pass .ck-icon{color:var(--go)}.fx-checklist .ck-pass .ck-name{color:var(--ink)}.fx-checklist .ck-fail .ck-icon{color:var(--danger)}.fx-checklist .ck-fail .ck-name{color:var(--ink);font-weight:600}.fx-checks-actions{display:flex;gap:8px;justify-content:flex-end}.fx-run-checks{margin-top:8px;width:100%}@keyframes ck-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.fx-checklist .ck-running .ck-icon{animation:none}}.fx-intro-skills{margin:-4px 0 12px;font-size:14px;color:var(--ink-2)}.ed{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:auto 1fr;background:var(--chrome);font-family:var(--sans)}.ed .ed-top{position:static}.ed-top .brand{text-decoration:none}.ed-title{color:#e6ece9;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ed-body{display:grid;grid-template-columns:250px minmax(0,1fr) 360px;min-height:0}.ed-palette,.ed-side{background:var(--card);overflow-y:auto;min-height:0}.ed-palette{padding:14px 12px 24px;border-right:1px solid var(--rule)}.ed-palette h2,.ed-side h2{font-size:18px;margin:2px 0 8px;color:var(--ink)}.ed-palette h3,.ed-side h3{font-size:13px;font-weight:600;color:var(--ink-2);margin:18px 0 6px}.ed-part{display:block;width:100%;text-align:left;font:inherit;background:var(--paper);border:1px solid var(--rule);border-left:4px solid var(--safety);border-radius:4px;padding:8px 10px;margin-bottom:8px;cursor:pointer;color:var(--ink)}.ed-part strong{display:block;font-size:15px}.ed-part span{display:block;font-size:12.5px;line-height:1.35;color:var(--ink-2);margin-top:2px}.ed-part:hover{border-color:var(--ink-3);border-left-color:var(--safety-deep)}.ed-part:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.ed-part:disabled{opacity:.5;cursor:default;border-left-color:var(--rule)}.ed-center{position:relative;min-width:0;min-height:0}.ed-stage{position:absolute;top:0;right:0;bottom:0;left:0}.ed-stage canvas{display:block;width:100%;height:100%;touch-action:none}.ed-hint,.ed-status{position:absolute;left:12px;right:12px;font-size:13px;pointer-events:none}.ed-hint{top:10px;width:fit-content;max-width:calc(100% - 200px);color:#e6ece9;background:#1c2834c7;padding:5px 10px;border-radius:4px}.ed-status{bottom:10px;justify-self:start;width:fit-content;max-width:calc(100% - 24px);background:#1c2834e0;color:#e6ece9;padding:6px 10px;border-radius:4px;border-left:4px solid var(--go)}.ed-status[data-tone=warn]{border-left-color:var(--amber)}.ed-status:empty{display:none}.ed-side{border-left:1px solid var(--rule);display:flex;flex-direction:column}.ed-tabs{margin:12px 12px 0}.ed-pane{padding:10px 14px 28px}.ed-field{display:block;margin:10px 0}.ed-field>span{display:block;font-size:13px;color:var(--ink-2);margin-bottom:3px}.ed-field small{display:block;font-size:12px;color:var(--ink-3);margin-top:3px}.ed-field input[type=text],.ed-field input[type=number],.ed-field textarea,.ed-json textarea,.ed-pane>textarea{width:100%;box-sizing:border-box;font:15px/1.35 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:6px 8px}textarea.mono{font:13px/1.45 var(--mono);-moz-tab-size:4;tab-size:4;white-space:pre}.ed-field input:focus-visible,.ed-field textarea:focus-visible,.ed-pane textarea:focus-visible{outline:2px solid var(--blue);outline-offset:0}.ed-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ed-row .ed-field{flex:1 1 80px}.ed-actions{margin:4px 0 8px}.ed-danger{color:var(--danger)!important}.ed-blurb,.ed-empty{font-size:13.5px;line-height:1.45;color:var(--ink-2)}.ed-empty{font-size:15px}.ed-error{color:var(--danger);font-size:13px}.ed-ok{color:var(--go);font-size:13px}.ed-eye{border:1px solid var(--rule);border-radius:4px;padding:6px 10px 10px;margin-bottom:8px;background:var(--paper)}.ed-json{margin-top:18px}.ed-json summary{cursor:pointer;font-size:13px;color:var(--ink-2)}.ed-problems{margin:6px 0 10px;padding-left:18px;color:var(--danger);font-size:13.5px;line-height:1.4}.ed-io{width:100%;font-size:13px}.ed-check{display:flex;gap:8px;align-items:center;font-size:14px;margin:4px 0}.ed-check code{margin-left:auto;font-size:12px;color:var(--ink-2)}.ed-print{z-index:20}.ed-open{width:min(720px,92vw);border:none;border-radius:6px;padding:18px 22px;background:var(--card);color:var(--ink)}.ed-open::backdrop{background:#141c228c}.ed-list{list-style:none;padding:0;margin:0 0 12px}.ed-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--rule)}.ed-list strong{display:block}.ed-list span{display:block;font-size:13px;color:var(--ink-2);max-width:440px}.fx-scene{display:flex;gap:8px;align-items:center}@media (max-width: 1100px){.ed-body{grid-template-columns:200px minmax(0,1fr) 300px}}@media (max-width: 760px){.ed-body{grid-template-columns:1fr;grid-template-rows:45vh auto auto}.ed-center{order:-1}}.ed-views{position:absolute;top:10px;right:12px;display:flex;gap:4px;background:#1c2834c7;padding:4px;border-radius:6px}.ed-views .btn{color:#e6ece9;border-color:#e6ece959;padding:3px 10px;font-size:13px}.ed-views .btn:hover{border-color:var(--safety)}.ed-boxsel{position:absolute;border:1px dashed var(--safety);background:#f2b6001f;pointer-events:none}.ed-center>.ed-print{position:absolute;inset:auto 0 0 0;height:48%;border-radius:0;border-width:1px 0 0;box-shadow:0 -8px 24px #00000040}.ed-printing .ed-status{bottom:calc(48% + 10px)}.ed-part{touch-action:none;cursor:grab}.ed-part:active{cursor:grabbing}.lib{min-height:100vh;background:var(--bench)}.lib-top{justify-content:space-between}.lib-top a.btn{text-decoration:none}.lib-main{max-width:1240px;margin:0 auto;padding:28px 24px 64px}.lib-intro{max-width:68ch;margin-bottom:26px}.lib-intro h1{margin:0 0 6px;font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.01em}.lib-intro p{margin:0;font-size:17px;line-height:1.5;color:var(--ink-2)}.lib-section{margin:40px 0 14px;font-size:22px;font-weight:700}.lib-empty{color:var(--ink-2);max-width:70ch}.lib-empty a{color:var(--ink);font-weight:600}.lib-grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.lib-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);border-radius:8px;overflow:hidden}.lib-plan-link{display:block;background:var(--paper);border-bottom:1px solid var(--rule);line-height:0}.lib-plan-link:focus-visible{outline:3px solid var(--safety);outline-offset:-3px}.lib-plan{width:100%;height:auto;display:block}.lib-grid{fill:none;stroke:#e3e7e1;stroke-width:.6}.lib-outline{fill:var(--paper);stroke:var(--ink);stroke-width:1.2}.lib-fill{fill:#d9dfdb}.lib-hatch{stroke:var(--ink-3);stroke-width:.6}.lib-flow{stroke:var(--safety-deep);stroke-width:1.6}.lib-arrowhead{fill:var(--safety-deep)}.lib-label{font:600 9px var(--mono);fill:var(--ink-2);paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round}.lib-block{fill:var(--paper);stroke:var(--ink);stroke-width:.8}.lib-block-text{font:500 9px var(--mono);fill:var(--ink)}.lib-body{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px;flex:1}.lib-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.lib-title-row h2{margin:0;font-size:19px;line-height:1.2;font-weight:700}.lib-level-wrap{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);white-space:nowrap}.lib-level{display:inline-flex;gap:2px}.lib-level span{width:7px;height:12px;border-radius:1px;background:var(--rule)}.lib-level span.on{background:var(--ink)}.lib-summary{margin:0;font-size:15px;line-height:1.45;color:var(--ink-2)}.lib-problem{margin:0;color:var(--danger);font-size:14px}.lib-facts{display:grid;grid-template-columns:repeat(4,1fr);margin:2px 0 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.lib-facts div{border-left:1px solid var(--rule);padding:7px 0 6px 10px}.lib-facts div:first-child{border-left:0;padding-left:0}.lib-facts dt{font-size:12px;color:var(--ink-3)}.lib-facts dd{margin:0;font:600 18px/1.2 var(--mono)}.lib-skills{margin:0;font-size:14px;line-height:1.4}.lib-objectives summary{cursor:pointer;font-weight:600;font-size:14px}.lib-objectives ul{margin:6px 0 0;padding-left:18px;font-size:14px;line-height:1.45;color:var(--ink-2)}.lib-progress{margin:0;font-size:14px;color:var(--go);font-weight:600}.lib-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}.lib-actions .btn{text-decoration:none}.lib-actions .btn-quiet{color:var(--ink)}@media (max-width: 520px){.lib-main{padding:20px 16px 48px}.lib-intro h1{font-size:28px}.lib-grid-cards{grid-template-columns:1fr}}
