/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans", "Noto Sans", "Noto Sans Arabic", "Noto Sans SC", "Noto Sans JP", "Noto Sans KR", "Noto Sans Devanagari", ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Rajdhani", "IBM Plex Sans", sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07090c;--line:#2b3641;--green:#3dff8a;--amber:#f5a623;--red:#ff4d4d;--cyan:#6ee7f5}*{box-sizing:border-box}html,body,#root{height:100%}body{color:#d7dee6;font-family:var(--font-sans);background:radial-gradient(900px 420px at 10% -10%, #163024 0%, transparent 50%), radial-gradient(800px 380px at 100% 0%, #2a1a0c 0%, transparent 46%), var(--bg);margin:0}.shell{flex-direction:column;height:100%;min-height:0;display:flex}.work{flex:1;grid-template-columns:minmax(0,1.15fr) minmax(320px,.95fr);gap:10px;min-height:0;padding:10px 12px;display:grid;overflow:hidden}.tabs{border-top:1px solid var(--line);background:#0d1217;gap:8px;padding:8px 12px 12px;display:flex}.tabs button{color:#d7dee6;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#151c22;border:1px solid #3a4a58;height:32px;padding:0 12px;font-size:11px}.tabs button.on{color:#c8ffd9;background:#123324;border-color:#3dff8a66}.panel{border:1px solid var(--line);background:linear-gradient(#141b22,#0f141a);min-height:0;padding:10px 12px;overflow:auto}.panel-hd{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;margin-bottom:8px;font-size:13px;display:flex}.panel-hd em{font-style:normal;font-family:var(--font-mono);color:#8dffb7;border:1px solid #335246;padding:1px 6px;font-size:10px}.hmi-bar{border-bottom:1px solid var(--line);background:linear-gradient(#161d24,#0e1318);grid-template-columns:1.1fr auto auto 1fr;align-items:center;gap:12px;padding:10px 14px;display:grid}.brand{align-items:center;gap:10px;display:flex}.brand h1{font-family:var(--font-display);letter-spacing:.04em;margin:0;font-size:1.2rem}.brand p{color:#7d8b99;letter-spacing:.12em;text-transform:uppercase;margin:2px 0 0;font-size:11px}.mark{background:radial-gradient(circle,#3dff8a,#123324);border:1px solid #3dff8a55;width:28px;height:28px}.modes,.cmds{flex-wrap:wrap;gap:6px;display:flex}.sel,.cmd,.tiny,.hold,select,.estop{color:#d7dee6;cursor:pointer;background:#151c22;border:1px solid #3a4a58;font-size:11px}.sel,.cmd{letter-spacing:.08em;height:32px;padding:0 10px}.sel.on{color:#ffd89a;border-color:#f5a62388}.cmd.start{color:#c8ffd9;border-color:#2e6a48}.cmd.start:disabled{opacity:.4;cursor:not-allowed;color:#8aa;border-color:#3a4a58}.estop{letter-spacing:.06em;background:radial-gradient(circle at 40% 30%,#ff8a8a,#8a1818);border:3px solid #ff4d4d;border-radius:50%;width:72px;height:72px;font-weight:700}.estop.latched{box-shadow:0 0 22px #ff4d4d88}.kpis{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.kpi span{letter-spacing:.16em;color:#7d8b99;text-transform:uppercase;font-size:9px;display:block}.kpi strong{font-family:var(--font-mono);color:#8dffb7}.kpi.alert strong{color:#ff8a8a}.flags{letter-spacing:.08em;align-items:center;gap:8px;font-size:10px;display:flex}.led{background:#2a333b;border-radius:50%;width:9px;height:9px;display:inline-block}.led.on.green{background:var(--green);box-shadow:0 0 8px var(--green)}.led.on.amber{background:var(--amber);box-shadow:0 0 8px var(--amber)}.led.on.red{background:var(--red);box-shadow:0 0 8px var(--red)}.led.on.cyan{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.hint,.muted{color:#80909f;font-size:12px}.hint b,.act{color:#f5d49a}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.tiny{height:26px;padding:0 8px}.bay{background:#0c1116;border:1px solid #24303a;padding:10px;position:relative}.stations{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.st{background:#0d1318;border:1px solid #2c3944;padding:6px 8px}.st.on{border-color:#3dff8a66}.st span{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;font-size:12px;display:block}.st small{color:#7d8b99}.stage{height:210px;margin-top:8px;position:relative}.conveyor{background:#1a1510;border:1px solid #3a332c;height:50px;position:absolute;top:118px;left:4%;right:10%;overflow:hidden}.belt{background:repeating-linear-gradient(90deg,#2a241c 0 18px,#3a3328 18px 20px,#211c16 20px 38px) 0 0/40px 100%;position:absolute;inset:8px 0 10px}.conveyor.run .belt{animation:.7s linear infinite belt}@keyframes belt{to{background-position:40px 0}}.rails{border-top:3px solid #8a9098;border-bottom:3px solid #8a9098;position:absolute;inset:0}.tote{z-index:4;background:linear-gradient(#8b93a0,#4d5560);border:1px solid #d5dbe3;width:48px;height:34px;position:absolute}.tote.rojo{background:linear-gradient(#c45b5b,#7a2424)}.tote.azul{background:linear-gradient(#4d74b8,#1d355e)}.tote.metal{outline:1px solid #f5e0a0}.tote.blocked{outline:1px solid var(--amber)}.tote span{text-align:center;font:600 10px var(--font-mono);color:#0b0d10;padding-top:8px;display:block}.tote i{color:#111;font-size:9px;font-style:normal;position:absolute;top:2px;right:3px}.eye{position:absolute;top:36px;transform:translate(-50%)}.beam{background:#ff4d4d33;width:2px;height:80px;display:block}.beam.on{background:#ff4d4d;box-shadow:0 0 8px #ff4d4d}.ind{border:1px dashed #f5a62355;border-radius:50%;width:12px;height:12px;margin-top:4px;display:block}.ind.on{border-color:var(--amber);background:#f5a62344}.col{opacity:.45;border:1px solid #445;border-radius:2px;width:10px;height:10px;margin-top:16px;display:block}.col.rojo{background:#c45b5b}.col.azul{background:#4d74b8}.col.natural{background:#8b93a0}.col.on{opacity:1;box-shadow:0 0 8px}.ejector{z-index:5;width:28px;position:absolute;top:28px;transform:translate(-50%)}.rod{background:#c5ccd3;width:4px;margin:0 auto}.blade{background:repeating-linear-gradient(-45deg,#111 0 8px,#f5a623 8px 16px);border:2px solid #f8e08a;width:16px;height:78px;position:absolute;top:20px;left:50%}.vfd{z-index:5;background:#12181e;border:1px solid #33404a;padding:6px 8px;position:absolute;top:108px;right:1%}.vfd.on{border-color:#3dff8a66}.vfd.fault{border-color:#ff4d4d88}.vfd-scr{font-family:var(--font-mono);color:#8dffb7}.vfd-scr b{font-size:18px}.vfd-meta{color:#8a99a6;gap:8px;font-size:10px;display:flex}.tank{background:#0b1014;border:1px solid #3a4a58;width:54px;height:72px;position:absolute;top:18px;left:8px;overflow:hidden}.tank.on{border-color:#6ee7f555}.tank-fill{background:#1d4e5c;position:absolute;bottom:0;left:0;right:0}.tank-read{z-index:1;text-align:center;font-family:var(--font-mono);padding-top:16px;font-size:11px;position:relative}.bin{font-family:var(--font-mono);border:1px solid #3a3328;padding:4px 8px;font-size:11px;position:absolute;top:12px}.bin.ok{right:18%}.bin.ok.hit{border-color:#3dff8a66}.bin.nok{color:#ffb4b4;right:1%}.stack{flex-direction:column;align-items:center;display:flex;position:absolute;top:6px;right:28%}.globe{background:#1b2024;border:1px solid #4a555e;border-radius:50%;width:16px;height:16px;margin-bottom:3px}.globe.red.on{background:var(--red);box-shadow:0 0 12px var(--red)}.globe.amber.on{background:var(--amber);box-shadow:0 0 12px var(--amber)}.globe.green.on{background:var(--green);box-shadow:0 0 12px var(--green)}.pole{background:#6a737c;width:3px;height:28px}.door{letter-spacing:.12em;border:1px solid #3a4a58;padding:2px 6px;font-size:10px;position:absolute;top:8px;left:38%}.door.open{border-color:var(--red);color:#ffb4b4}.jogs{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.hold{touch-action:none;flex-direction:column;padding:6px 10px;display:inline-flex}.hold small{color:#7d8b99}.hold.go{border-color:#2e6a48}.hold.amber{border-color:#8a6420}.ladder{flex-direction:column;gap:8px;display:flex}.rung{background:#0c1116;border:1px solid #24303a;padding:6px}.rung.hot{border-color:#2e6a48}.rung-hd{align-items:center;gap:8px;display:flex}.rung-hd input{color:#9aabba;background:0 0;border:0;flex:1}.rung-hd b{font-family:var(--font-mono);color:var(--amber)}.rung-g{grid-template-columns:5px 1fr auto 5px;align-items:stretch;gap:6px;min-height:52px;display:grid}.rail{background:linear-gradient(#d7b44a,#8a6a16);width:4px}.branch{flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;display:flex}.wire{align-items:center;gap:4px;display:flex}.wire.pwr:before{content:"";background:var(--green);width:8px;height:2px}.contact,.box{color:#d7dee6;min-width:42px;height:34px;font-family:var(--font-mono);background:#151c22;border:1px solid #4a5560}.contact.hot,.box.hot,.coil.hot{border-color:var(--green);color:#c8ffd9}.contact.nc{color:var(--amber)}.coil{border:1px dashed #3a4a58;flex-direction:column;gap:4px;min-width:120px;padding:4px;display:flex}.coil.ghost{color:#7d8b99;justify-content:center}.tstat{font-family:var(--font-mono);color:#8a99a6;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:11px;display:flex}select{color:#d7dee6;background:#0b1014;height:28px}.io-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.io{grid-template-columns:12px 52px 1fr auto;align-items:center;gap:6px;padding:3px 4px;font-size:11px;display:grid}.io.on{background:#102018}.io.fz{border:1px solid #8a6420}.io code{font-size:11px}.io em{font-style:normal;font-family:var(--font-mono);color:#8dffb7}h4{letter-spacing:.18em;color:#7d8b99;margin:10px 0 6px;font-size:10px}.scada,.diag{flex-direction:column;gap:10px;min-height:0;display:flex}.alist,.elog,.faults{flex-direction:column;gap:6px;display:flex}.al,.faults article{background:#0c1116;border:1px solid #24303a;padding:8px}.al.critico{border-color:#6a3a3a}.al.alto{border-color:#8a6420}.al header,.faults header{align-items:center;gap:8px;display:flex}.al em{letter-spacing:.1em;font-size:10px}.faults article.on{border-color:#8a6420}.elog{font-family:var(--font-mono);font-size:11px}.elog div{border-bottom:1px solid #141b22;grid-template-columns:54px 56px 1fr;gap:8px;padding:2px 0;display:grid}.elog .alarm{color:#ffb4b4}.elog .warn{color:#f5d49a}.trend{background:#070a0d;border:1px solid #1c252e;width:100%;height:120px}.trend path{fill:none;stroke:#6ee7f5;stroke-width:1.6px}@media (width<=1100px){.hmi-bar{grid-template-columns:1fr}.work{grid-template-columns:1fr;overflow:auto}}.work-editor{grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr)}.editor-panel{flex-direction:column;min-height:0;display:flex}.editor-panel .ed-grid{flex:1;min-height:0}.ed-toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.file{cursor:pointer;align-items:center;height:26px;padding:0 8px;display:inline-flex}.file.off{opacity:.4;pointer-events:none}.ed-lock{color:#f5d49a;background:#21180c;border:1px solid #8a6420;margin:0 0 8px;padding:6px 10px;font-size:12px}.wire-err{color:#ffb4b4;margin:0 0 8px;padding-left:18px;font-size:12px}.ed-grid{grid-template-columns:168px minmax(0,1fr) 228px;gap:8px;min-height:420px;display:grid}.palette{background:#0c1116;border:1px solid #1c252e;padding:6px;overflow:auto}.palette h4{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:#8dffb7;margin:10px 0 4px;font-size:11px}.pal{text-align:left;color:#d7dee6;cursor:pointer;background:#151c22;border:1px solid #3a4a58;flex-direction:column;width:100%;margin-bottom:4px;padding:6px 8px;font-size:11px;display:flex}.pal.on{background:#24180c;border-color:#f5a62388}.pal:disabled{opacity:.45;cursor:not-allowed}.pal small{color:#f5d49a;letter-spacing:.04em}.ed-canvas{background-color:#0b1014;background-image:linear-gradient(#1c252e 1px,#0000 1px),linear-gradient(90deg,#1c252e 1px,#0000 1px);background-size:24px 24px;border:1px solid #24303a;min-height:420px;position:relative;overflow:hidden}.ed-canvas.placing{cursor:crosshair}.ed-canvas.locked{cursor:not-allowed}.ed-rail{z-index:1;font:700 10px var(--font-display);letter-spacing:.16em;color:#6ee7f5;position:absolute;top:6px;left:4px}.ed-wires{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ed-wires line{stroke:#6ee7f5;stroke-width:1.4px;opacity:.75}.ed-node{cursor:grab;-webkit-user-select:none;user-select:none;z-index:2;border:1px solid #3a4a58;background:#12181e;border-inline-start-width:3px;width:132px;padding:6px 8px;font-size:11px;position:absolute}.ed-node.sel{border-color:#f5a623;box-shadow:0 0 0 1px #f5a62355}.ed-node.pe,.ed-node.inductive,.ed-node.color,.ed-node.limit,.ed-node.pressostat,.ed-node.encoder{border-left-color:#6ee7f5}.ed-node.motor,.ed-node.energy{border-left-color:#3dff8a}.ed-node.cylinder,.ed-node.compressor,.ed-node.feeder{border-left-color:#c8ffd9}.ed-node.valve{border-left-color:#f5a623}.ed-node.conveyor,.ed-node.tank{border-left-color:#8b93a0}.ed-node.door{border-left-color:#ff4d4d}.ed-node strong{font-size:12px;display:block}.ed-node em{color:#7d8b99;font-size:10px;font-style:normal}.ports{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.port{letter-spacing:.06em;color:#d7dee6;background:#0b1014;border:1px solid #4a5560;padding:1px 5px;font-size:9px}.port.live{box-shadow:0 0 0 1px #f5a623}.port.out{border-color:#3dff8a66}.port.in{border-color:#f5a62366}.port.analog{border-style:dashed}.inspector{background:#0c1116;border:1px solid #1c252e;padding:8px;overflow:auto}.inspector h4{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin:10px 0 6px;font-size:11px}.inspector label{color:#9aabba;flex-direction:column;gap:3px;margin-bottom:8px;font-size:11px;display:flex}.inspector input,.inspector select{color:#d7dee6;background:#0b1014;border:1px solid #3a4a58;width:100%;height:26px}.inspector input[type=checkbox]{width:auto;height:auto}.ed-cables{font-family:var(--font-mono);flex-direction:column;gap:4px;max-height:180px;font-size:10px;display:flex;overflow:auto}.ed-cables div{border-bottom:1px solid #141b22;justify-content:space-between;align-items:center;gap:6px;padding:2px 0;display:flex}@media (width<=1100px){.ed-grid,.work-editor{grid-template-columns:1fr}}.work-lab{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr)}.lab{flex-direction:column;gap:10px;min-height:0;display:flex;overflow:auto}.ex-level{margin-bottom:12px}.ex-level h4{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:#8dffb7;margin:8px 0 6px;font-size:12px}.ex-card{background:#0c1116;border:1px solid #24303a;margin-bottom:6px;padding:8px 10px}.ex-card.on{border-color:#3dff8a66}.ex-card.off{opacity:.55}.ex-card header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ex-card header em{color:#8dffb7;letter-spacing:.08em;font-size:10px;font-style:normal}.ex-card p{color:#c5ced6;margin:6px 0;font-size:12px}.ex-res{color:#9aabba;margin:0 0 8px 16px;font-size:12px}.ex-hud{border-bottom:1px solid var(--line);background:#101820;grid-template-columns:minmax(180px,.7fr) minmax(0,1.4fr) auto;align-items:start;gap:8px;padding:8px 12px;display:grid}.ex-hud.passed{box-shadow:inset 0 -2px #3dff8a88}.ex-hud.failed{box-shadow:inset 0 -2px #ff4d4d88}.ex-hud-id b{font-family:var(--font-display);letter-spacing:.08em;display:block}.ex-hud-id span{color:#f5d49a;font-size:11px}.ex-checks{flex-wrap:wrap;gap:6px 12px;margin:0;padding:0;list-style:none;display:flex}.ex-checks li{color:#8a9aaa;align-items:center;gap:6px;font-size:11px;display:flex}.ex-checks li.ok{color:#c8ffd9}.ex-checks i{background:#2a333b;border-radius:50%;width:8px;height:8px;display:inline-block}.ex-checks li.ok i{background:var(--green);box-shadow:0 0 6px var(--green)}.ex-hud-actions{flex-wrap:wrap;gap:6px;display:flex}.ex-hints{color:#f5d49a;grid-column:1/-1;margin:4px 0 0;padding-left:18px;font-size:12px}.ex-score{flex-wrap:wrap;grid-column:1/-1;align-items:baseline;gap:10px 16px;display:flex}.ex-score div span{letter-spacing:.12em;text-transform:uppercase;color:#7d8b99;font-size:9px;display:block}.ex-score strong{font-family:var(--font-mono);color:#8dffb7}.ex-score .total strong{color:#f5d49a;font-size:1.2rem}@media (width<=1100px){.work-lab,.ex-hud{grid-template-columns:1fr}}.tutor-panel{flex-direction:column;min-height:0;display:flex}.tutor-toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.tutor-toolbar label,.tutor-actions-sec label{color:#9aabba;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;display:flex}.tutor-toolbar select,.tutor-actions-sec select{min-width:120px;height:26px}.tutor-gate{color:#8a9aaa;border:1px solid #24303a;margin:0 0 8px;padding:6px 8px;font-size:12px}.tutor-gate.on{color:#f5d49a;background:#21180c;border-color:#8a6420}.tutor-actions{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.tutor-log{flex-direction:column;gap:8px;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.tutor-msg{background:#0c1116;border:1px solid #24303a;padding:8px 10px}.tutor-msg.you{background:#12181e;border-color:#3a4a58}.tutor-msg.instructor{border-color:#2e6a48}.tutor-msg.gated{border-color:#8a6420}.tutor-msg header{letter-spacing:.08em;align-items:baseline;gap:8px;font-size:11px;display:flex}.tutor-msg header b{font-family:var(--font-display);color:#8dffb7;text-transform:uppercase}.tutor-msg header span{color:#9aabba}.tutor-msg header em{font-style:normal;font-family:var(--font-mono);color:#f5d49a;border:1px solid #8a6420;padding:0 5px;font-size:10px}.tutor-msg p{color:#d7dee6;white-space:pre-wrap;margin:6px 0 0;font-size:13px;line-height:1.45}.tutor-tags{flex-wrap:wrap;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tutor-tags li{font-family:var(--font-mono);color:#8dffb7;border:1px solid #335246;padding:1px 6px;font-size:10px}.tutor-float{z-index:30;width:min(440px,100vw - 20px);max-height:min(72vh,640px);position:fixed;bottom:56px;right:12px;box-shadow:0 18px 40px #0008}.tutor-float .panel{max-height:min(72vh,640px)}.tabs .tiny.on{color:#c8ffd9;background:#123324;border-color:#3dff8a66}@media (width<=1100px){.tutor-float{width:auto;bottom:52px;left:10px;right:10px}}.lang-sel{color:#d7dee6;background:#151c22;border:1px solid #3a4a58;align-items:center;gap:6px;height:32px;margin-inline-start:8px;padding:0 8px 0 6px;display:inline-flex}.lang-globe{color:#8dffb7;display:flex}.lang-sel select{color:#d7dee6;letter-spacing:.04em;background:0 0;border:0;max-width:11.5rem;height:30px;padding-inline:0 2px;font-size:11px}.lang-sel select:focus{outline:none}html[dir=rtl]{font-family:"Noto Sans Arabic", var(--font-sans)}html[dir=rtl] body{font-family:inherit}html[dir=rtl] .pal{text-align:start}html[dir=rtl] .ed-node{border-left-width:1px;border-right-width:3px}html[dir=rtl] .ed-node.pe,html[dir=rtl] .ed-node.inductive,html[dir=rtl] .ed-node.color,html[dir=rtl] .ed-node.limit,html[dir=rtl] .ed-node.pressostat,html[dir=rtl] .ed-node.encoder{border-right-color:#6ee7f5}html[dir=rtl] .ed-node.motor,html[dir=rtl] .ed-node.energy{border-right-color:#3dff8a}html[dir=rtl] .ed-node.cylinder,html[dir=rtl] .ed-node.compressor,html[dir=rtl] .ed-node.feeder{border-right-color:#c8ffd9}html[dir=rtl] .ed-node.valve{border-right-color:#f5a623}html[dir=rtl] .ed-node.conveyor,html[dir=rtl] .ed-node.tank{border-right-color:#8b93a0}html[dir=rtl] .ed-node.door{border-right-color:#ff4d4d}html[dir=rtl] .ed-rail{left:auto;right:4px}html[dir=rtl] .wire-err,html[dir=rtl] .ex-hints{padding-inline:18px 0}html[dir=rtl] .ex-res{margin-inline:16px 0}html[dir=rtl] .kpis{justify-content:flex-start}@media (width<=1100px){.lang-sel{margin-inline-start:0}}.scene-grid{grid-template-columns:1fr;gap:8px;display:grid}.scene-card p.muted{color:#8a99a6;font-size:11px}.scene-card button{margin-top:4px}.process-stage{height:230px}.proc-tank{background:#0b1014;border:1px solid #3a4a58;width:28%;height:168px;position:absolute;top:28px;overflow:hidden}.proc-tank.hi{border-color:#ff4d4d88}.proc-tank.lo{border-color:#f5a62388}.tank-fill.liquid{background:linear-gradient(#4ec4d8,#1a5d72)}.proc-tank .lim{letter-spacing:.12em;color:#7d8b99;font-size:9px;position:absolute;right:6px}.proc-tank .lim.hi{top:8px}.proc-tank .lim.lo{bottom:8px}.proc-pipe{background:#24303a;border:1px solid #3a4a58;height:10px;position:absolute;top:108px;left:32%;right:32%}.proc-pipe.on{background:linear-gradient(90deg,#1d4e5c,#6ee7f5,#1d4e5c);box-shadow:0 0 12px #6ee7f555}.proc-pump{text-align:center;z-index:3;background:#12181e;border:1px solid #3a4a58;min-width:140px;padding:8px 10px;position:absolute;top:86px;left:50%;transform:translate(-50%)}.proc-pump.on{border-color:#3dff8a66}.proc-pump b{font-family:var(--font-display);letter-spacing:.12em;display:block}.proc-pump span{color:#8a99a6;font-size:10px;font-family:var(--font-mono)}.proc-dose{background:#12181e;border:1px solid #3a4a58;padding:6px 10px;font-size:11px;position:absolute;top:18px;left:36%}.proc-dose.on{color:#f5d49a;border-color:#f5a62388}.proc-dose strong{font-family:var(--font-mono);color:#8dffb7;display:block}.fill-head{z-index:4;text-align:center;background:#12181e;border:1px solid #3a4a58;padding:4px 8px;font-size:10px;position:absolute;top:18px;transform:translate(-50%)}.fill-head.on{border-color:#6ee7f555}.fill-head em{font-style:normal;font-family:var(--font-mono);color:#8dffb7;display:block}.tote .fill-amt{background:#6ee7f5;height:4px;position:absolute;bottom:0;left:0}.ed-node.pump{border-left-color:#6ee7f5}.ed-node.robot{border-left-color:#c084fc}.ed-node.zone,.ed-node.heater,.ed-node.cooler{border-left-color:#fb923c}@media (width<=1100px){.proc-tank{width:34%}}html[dir=rtl] .ed-node.pump{border-right-color:#6ee7f5}html[dir=rtl] .ed-node.robot{border-right-color:#c084fc}html[dir=rtl] .ed-node.zone,html[dir=rtl] .ed-node.heater,html[dir=rtl] .ed-node.cooler{border-right-color:#fb923c}.gantry-rail{z-index:4;background:#3a4a58;height:4px;position:absolute;top:36px;left:18%;right:8%}.gantry{text-align:center;z-index:6;background:#16101f;border:1px solid #5b3d8a;min-width:54px;padding:4px 6px 18px;font-size:10px;position:absolute;top:18px;transform:translate(-50%)}.gantry.on{border-color:#c084fc;box-shadow:0 0 12px #c084fc44}.gantry em{font-style:normal;font-family:var(--font-mono);color:#e9d5ff;display:block}.gantry .grip{background:#24303a;border:1px solid #8b93a0;width:18px;height:8px;margin:4px auto 0;display:block}.gantry .grip.shut{background:#c084fc;border-color:#e9d5ff}.gantry .held{font-size:9px;font-family:var(--font-mono);color:#8dffb7;margin-top:4px;display:block}.pallet-stack{z-index:5;grid-template-columns:repeat(4,1fr);gap:3px;width:52px;display:grid;position:absolute;top:52px;right:7%}.pallet-stack span{background:#1a2229;border:1px solid #3a4a58;height:10px}.pallet-stack span.full{background:#3dff8a88;border-color:#3dff8a}.bin.pal-meta{letter-spacing:.04em}.hvac-stage{height:240px}.hvac-zone{background:#0b1014;border:1px solid #3a4a58;width:30%;height:188px;position:absolute;top:22px;left:6%;overflow:hidden}.hvac-zone.hi{border-color:#ff4d4d88}.hvac-zone.lo{border-color:#6ee7f588}.hvac-fill{background:linear-gradient(#fb923c,#7c2d12);position:absolute;bottom:0;left:0;right:0}.hvac-sp{letter-spacing:.08em;color:#fde68a;border-top:1px dashed #f5a62388;font-size:9px;position:absolute;left:6px;right:6px;transform:translateY(50%)}.hvac-acts{gap:8px;display:grid;position:absolute;top:40px;left:42%;right:8%}.hvac-act{background:#12181e;border:1px solid #3a4a58;padding:8px 10px}.hvac-act b{font-family:var(--font-display);letter-spacing:.12em;display:block}.hvac-act span{color:#8a99a6;font-size:10px;font-family:var(--font-mono)}.hvac-act.heat.on{color:#fdba74;border-color:#fb923c88}.hvac-act.cool.on{color:#a5f3fc;border-color:#6ee7f588}.hvac-act.fan.on{border-color:#3dff8a66}@media (width<=1100px){.hvac-zone{width:36%}.pallet-stack{right:2%}}.analytics{gap:12px}.an-cards{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px;margin:10px 0;display:grid}.an-card{background:linear-gradient(#121920,#0c1116);border:1px solid #24303a;min-height:92px;padding:10px 12px}.an-card span{letter-spacing:.14em;text-transform:uppercase;color:#7d8b99;font-size:9px;display:block}.an-card strong{font-family:var(--font-mono);color:#8dffb7;margin-top:6px;font-size:1.35rem;display:block}.an-card small{color:#6d7c8a;margin-top:6px;font-size:10px;line-height:1.35;display:block}.an-card.alert{border-color:#6a3a3a}.an-card.alert strong{color:#ff8a8a}.an-safety{color:#9aabba;letter-spacing:.04em;flex-wrap:wrap;gap:10px 16px;font-size:11px;display:flex}.an-safety b{font-family:var(--font-mono);color:#f5d49a}.an-levels{flex-direction:column;gap:8px;display:flex}.an-level{background:#0c1116;border:1px solid #24303a;padding:8px 10px}.an-level.off{opacity:.55}.an-level header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.an-level header b{font-family:var(--font-display);letter-spacing:.08em;font-size:12px}.an-level header em{font-style:normal;font-family:var(--font-mono);color:#8dffb7;font-size:11px}.an-bar{background:#1a232b;border:1px solid #2b3641;height:6px;margin:8px 0 6px}.an-bar i{background:linear-gradient(90deg,#1d6a44,#3dff8a);height:100%;display:block;box-shadow:0 0 8px #3dff8a55}.an-level footer{color:#80909f;letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;gap:8px 14px;font-size:10px;display:flex}.an-spark{height:88px}.an-log{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.an-log li{border-bottom:1px solid #141b22;grid-template-columns:minmax(96px,.4fr) 1fr;gap:10px;padding:4px 0;font-size:12px;display:grid}.an-log time{font-family:var(--font-mono);color:#7d8b99;font-size:10px}.an-scenes{flex-direction:column;gap:8px;display:flex}.an-dl{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:6px 10px;margin:8px 0 0;display:grid}.an-dl dt{letter-spacing:.12em;text-transform:uppercase;color:#7d8b99;font-size:9px}.an-dl dd{font-family:var(--font-mono);color:#8dffb7;margin:2px 0 0}@media (width<=1100px){.an-log li{grid-template-columns:1fr}}html[dir=rtl] .an-bar i{margin-inline-start:auto}.tutor-ai-badge{color:#8dffb7;letter-spacing:.08em;text-transform:uppercase;height:22px;font-size:10px;font-family:var(--font-display);background:#10261a;border:1px solid #2e6a48;border-radius:999px;align-items:center;padding:0 8px;display:inline-flex}.tutor-loading{color:#9ad4ff;letter-spacing:.04em;margin:0 0 8px;font-size:12px}.tutor-chat{flex-direction:column;gap:4px;margin:0 0 10px;display:flex}.tutor-chat-label{color:#9aabba;letter-spacing:.06em;text-transform:uppercase;font-size:11px}.tutor-chat-row{gap:6px;display:flex}.tutor-chat-row input{color:#d7dee6;background:#12181e;border:1px solid #3a4a58;border-radius:6px;flex:1;min-width:0;height:28px;padding:0 8px}.tutor-chat-row input:disabled{opacity:.6}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
