:root{--bg:#EDF1F4;--surface:#FFFFFF;--surface-2:#F5F7F9;--ink:#14202B;--ink-2:#4E5D6C;--ink-3:#5E6D79;--line:#D9E0E6;--line-2:#EAEFF3;--aura:#0B8EA6;--aura-ink:#06697B;--aura-soft:#DCF2F6;--aura-mist:#F0F9FB;--ok:#1E9A6A;--ok-soft:#DFF4EA;--warn:#C97D00;--warn-soft:#FFF1DA;--alarm:#CB3A31;--alarm-soft:#FBE3E1;--iso5:#0B8EA6;--iso7:#4FAEC0;--iso8:#9BCFDA;--amb:#C9D3DA;--r-s:6px;--r-m:10px;--r-l:14px;--font:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}[data-theme=dark]{--bg:#0D171F;--surface:#132230;--surface-2:#182B3B;--ink:#E7EEF4;--ink-2:#A9BAC8;--ink-3:#8FA3B3;--line:#22384B;--line-2:#1C3041;--aura:#3FB5CB;--aura-ink:#7FD3E2;--aura-soft:#153744;--aura-mist:#112C37;--ok:#3FBF84;--ok-soft:#153427;--warn:#E5A03A;--warn-soft:#3A2C12;--alarm:#F0616A;--alarm-soft:#3F1B1F;--iso8:#2A4256;--iso7:#2E6E80;--iso5:#3FB5CB;--amb:#1E2F3D}*{box-sizing:border-box}body,html{margin:0;height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--aura);outline-offset:1px}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:16px}h3{font-size:13.5px;color:var(--ink-2);font-weight:600}a{color:var(--aura-ink)}.num,.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app{grid-template-columns:232px 1fr;grid-template-rows:60px 1fr;height:100vh;overflow:hidden}.app,.top{display:grid}.top{grid-column:1/3;background:var(--surface);border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;grid-gap:16px;gap:16px;padding:0 20px;height:60px}.brand,.top{align-items:center}.brand{display:flex;gap:8px;min-width:0}.brand .logo{height:30px;width:auto;display:block}.brand .ctrl{font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--aura-ink);line-height:1}[data-theme=dark] .brand .logo{filter:brightness(0) invert(1)}.brand .mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(160deg,var(--aura) 0,#5CC3D3 100%);position:relative;overflow:hidden;flex:none}.brand .mark:after{content:"";position:absolute;inset:6px;border-radius:5px;border:2px solid rgba(255,255,255,.85);border-bottom-color:transparent;transform:rotate(45deg)}.brand b{font-size:17px;font-weight:800;letter-spacing:-.02em}.brand small{display:block;font-size:11px;color:var(--ink-3);font-weight:600;margin-top:-2px}.statusbar{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;overflow:hidden}.statusbar .tag{font-size:12px;padding:4px 10px}.state{display:flex;align-items:center;gap:10px;padding:7px 14px 7px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-weight:700;font-size:15px;white-space:nowrap}.state .dot{width:10px;height:10px;border-radius:50%;background:var(--ink-3);box-shadow:0 0 0 4px var(--line-2)}.state[data-s=PRODUCTION] .dot,.state[data-s=READY] .dot{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 20%,transparent)}.state[data-s=STABILIZING] .dot,.state[data-s=STARTING] .dot{background:var(--aura);box-shadow:0 0 0 4px var(--aura-soft)}.state[data-s=ALARM] .dot,.state[data-s=FIRE_SHUTDOWN] .dot,.state[data-s=POWER_FAIL] .dot{background:var(--alarm);box-shadow:0 0 0 4px var(--alarm-soft);animation:pulse 1.2s infinite}.state[data-s=ALARM],.state[data-s=FIRE_SHUTDOWN],.state[data-s=POWER_FAIL]{border-color:var(--alarm);background:var(--alarm-soft);color:var(--alarm)}@keyframes pulse{50%{box-shadow:0 0 0 7px var(--alarm-soft)}}.meta{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:13px;justify-content:flex-end}.clock{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:12.5ch;text-align:center;white-space:nowrap}.clock,.userbtn{color:var(--ink)}.userbtn{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px 5px 6px;font-weight:600}.userbtn .av{width:26px;height:26px;border-radius:50%;background:var(--aura-soft);color:var(--aura-ink);display:grid;place-items:center;font-size:11px;font-weight:800}.userbtn .role{color:var(--ink-3);font-weight:500}.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:999px;width:34px;height:34px;display:grid;place-items:center;color:var(--ink-2)}.rail{background:var(--surface);border-right:1px solid var(--line);padding:14px 10px 14px 0;display:flex;flex-direction:column;gap:2px;overflow:auto}.rail .grp{font-size:11px;font-weight:700;color:var(--ink-3);padding:12px 12px 6px 22px}.rail a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:9px 12px 9px 19px;border-radius:0 var(--r-s) var(--r-s) 0;border-left:3px solid transparent;font-weight:600;color:var(--ink-2)}.rail a:hover{background:var(--surface-2);color:var(--ink)}.rail a.act{background:var(--aura-mist);color:var(--aura-ink);border-left-color:var(--aura)}.rail a svg{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rail .badge{margin-left:auto;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--alarm);color:#fff}.rail .foot{margin-top:auto;padding:12px 12px 0 22px;font-size:11px;color:var(--ink-3);line-height:1.5;border-top:1px solid var(--line-2)}main{overflow:auto;padding:22px 26px 40px;min-width:0}.page{width:100%}@media (min-width:2200px){.page{max-width:1720px;margin:0 auto}}.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.head p{margin:4px 0 0;color:var(--ink-2);max-width:80ch;text-wrap:pretty}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-s);padding:8px 14px;font-weight:600;color:var(--ink);min-height:36px}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--aura);border-color:var(--aura);color:#fff}.btn.primary:hover{background:var(--aura-ink)}.btn.danger{color:var(--alarm);border-color:var(--alarm)}.btn.warn{color:var(--warn);border-color:var(--warn)}.btn.sm{padding:5px 10px;font-size:12.5px;min-height:30px}.btn:disabled{opacity:.45;cursor:not-allowed}.grid{display:grid;grid-gap:12px;gap:12px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-2-1{grid-template-columns:2fr 1fr}.g-1-2{grid-template-columns:1fr 2fr}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:16px 18px;min-width:0}.card.flat{background:var(--surface-2);border-color:var(--line-2)}.card h2{margin-bottom:10px}.card .sub{color:var(--ink-3);font-size:12px;font-weight:500;margin-left:8px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.row.top{align-items:flex-start}.stack{gap:8px}.kpi,.stack{display:flex;flex-direction:column}.kpi{gap:2px;padding:14px 18px}.kpi .l{font-size:12px;color:var(--ink-2);font-weight:600}.kpi .v{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .v small{font-size:13px;font-weight:600;color:var(--ink-3);margin-left:4px}.kpi .s{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi.big .v{font-size:32px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap}.tag.ok{background:var(--ok-soft);color:var(--ok)}.tag.ok,.tag.warn{border-color:transparent}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.alarm{background:var(--alarm-soft);color:var(--alarm)}.tag.alarm,.tag.aura{border-color:transparent}.tag.aura{background:var(--aura-soft);color:var(--aura-ink)}.tag.iso5{background:var(--iso5)}.tag.iso5,.tag.iso7{color:#fff;border-color:transparent}.tag.iso7{background:var(--iso7)}.tag.iso8{background:var(--iso8);color:var(--ink);border-color:transparent}[data-theme=dark] .tag.ok{color:#8FE0B8}[data-theme=dark] .tag.warn{color:#F3C27A}[data-theme=dark] .tag.alarm{color:#F9A3A8}[data-theme=dark] .tag.iso8{color:#E7EEF4}.tbl{overflow:auto;min-width:0}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:600;color:var(--ink-3);font-size:12px;padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:8px 10px;border-bottom:1px solid var(--line-2);vertical-align:middle}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right}th.grp{text-align:center;color:var(--ink-2);border-bottom:1px solid var(--line-2);padding-bottom:4px;font-size:11.5px}tr.hl-warn td{background:var(--warn-soft)}tr.hl-alarm td{background:var(--alarm-soft)}.mono,td .mono{font-family:var(--mono);font-size:11.5px}.bar{height:8px;background:var(--line-2);overflow:visible;position:relative}.bar,.bar i{border-radius:999px}.bar i{display:block;height:100%;background:var(--aura);transition:width .6s}.bar i.warn{background:var(--warn)}.bar i.alarm{background:var(--alarm)}.bar i.ok{background:var(--ok)}.bar .mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink-2);border-radius:1px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field label{font-size:12px;font-weight:600;color:var(--ink-2)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--r-s);padding:8px 10px;background:var(--surface);min-height:36px;width:100%}.field .hint,.field .was{font-size:11px;color:var(--ink-3)}.field.changed input{border-color:var(--aura)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;flex:none}.seg.lang button{padding:0 8px;min-height:30px;font-size:11.5px;letter-spacing:.03em}.seg button{border:0;background:var(--surface);padding:6px 12px;font-weight:600;color:var(--ink-2)}.seg button.act{background:var(--aura);color:#fff}.note{font-size:12px;color:var(--ink-3);line-height:1.5;text-wrap:pretty}.note.verify{color:var(--warn);font-weight:600}.info{position:relative;display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--ink-3);color:var(--ink-3);font-size:10px;font-weight:700;cursor:help;vertical-align:middle;margin-left:6px;line-height:1}.info:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);right:-6px;width:max-content;max-width:340px;background:var(--ink);color:var(--bg);padding:8px 10px;border-radius:var(--r-s);font-size:12px;font-weight:500;line-height:1.4;white-space:normal;display:none;z-index:20;text-align:left}.info:focus-visible:after,.info:hover:after{display:block}.list{display:flex;flex-direction:column}.list .it{display:grid;grid-template-columns:auto 1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-2)}.list .it:last-child{border-bottom:0}.list .it .t{font-weight:600}.list .it .d{font-size:12px;color:var(--ink-3)}.pri{width:6px;height:38px;border-radius:3px;background:var(--line)}.pri.alarm{background:var(--alarm)}.pri.warn{background:var(--warn)}.empty{padding:26px;text-align:center;color:var(--ink-3);border:1px dashed var(--line);border-radius:var(--r-m)}.offnote{gap:12px;justify-content:space-between;padding:10px 14px;border-radius:var(--r-m);background:var(--surface-2);border:1px dashed var(--line);color:var(--ink-2);font-weight:600;font-size:13px;margin-bottom:12px}.filt,.offnote{display:flex;align-items:center;flex-wrap:wrap}.filt{gap:8px}.filt input,.filt select{border:1px solid var(--line);border-radius:var(--r-s);padding:6px 10px;background:var(--surface);min-height:34px}.bar+.pf{font-size:11px;color:var(--ink-3);margin-top:4px}canvas.trend{width:100%;height:200px;display:block}.trendwrap{position:relative}.trendwrap .offlay{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--surface) 72%,transparent);font-weight:600;color:var(--ink-2);border-radius:var(--r-l);text-align:center;padding:16px}.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.steps .st{height:48px;display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface-2);font-size:12.5px;min-width:0}.steps .st i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--surface);border:1px solid var(--line);flex:none}.steps .st b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.steps .st span{margin-left:auto;color:var(--ink-3);white-space:nowrap}.steps .st.done{border-color:var(--ok);background:var(--ok-soft)}.steps .st.done i{background:var(--ok);border-color:var(--ok);color:#fff}.steps .st.now{border-color:var(--aura);background:var(--aura-mist);box-shadow:inset 0 0 0 1px var(--aura)}.steps .st.now i{background:var(--aura);border-color:var(--aura);color:#fff}.check{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:13px}.check:last-child{border-bottom:0}.check input{width:16px;height:16px;accent-color:var(--aura)}.check .ref{margin-left:auto;font-size:11px;color:var(--ink-3);white-space:nowrap}.ffu{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.ffu .u{border-radius:var(--r-m);border:1px solid var(--line);padding:10px;text-align:center;background:var(--surface-2)}.ffu .u b{display:block;font-size:12px}.ffu .u span{font-size:12px;color:var(--ink-3)}.ffu .u.run{border-color:var(--aura);background:var(--aura-mist)}.ffu .u.fault{border-color:var(--alarm);background:var(--alarm-soft)}.ffu .u.fault span{color:var(--alarm);font-weight:700}.ffu .fan{width:26px;height:26px;margin:2px auto 6px;border-radius:50%;border:3px solid var(--aura);border-top:3px solid transparent;animation:spin 1.1s linear infinite}.ffu .fault .fan{border-color:var(--alarm);animation:none}.ffu .off .fan{animation:none;border-color:var(--line)}@keyframes spin{to{transform:rotate(1turn)}}.cascade{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:0}.cascade .hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 0;flex-wrap:wrap}.cascade .hd h2{margin:0}.cascade .body{flex:1 1;min-height:0;padding:4px 10px 6px}.cascade svg{width:100%;height:100%;max-height:100%;display:block}.cascade text{font-family:inherit;fill:var(--ink)}.cascade .zl{font-size:13px;font-weight:700}.cascade .zs{font-size:11.5px;fill:var(--ink-2);font-weight:500}.cascade .zv{font-size:18px;font-weight:800}.cascade .zu{font-size:11px;fill:var(--ink-3);font-weight:600}.cascade .lostbg{fill:var(--alarm-soft)}.cascade .lost{font-size:11px;font-weight:700;fill:var(--alarm)}.cascade .flow{stroke:var(--aura);stroke-width:2;fill:none;stroke-dasharray:6 7;animation:flow 1.4s linear infinite;opacity:.85}.cascade .flow.off{animation:none;opacity:.2}.cascade .flow.static{animation:none;opacity:.5}@keyframes flow{to{stroke-dashoffset:-13}}.cascade .door{stroke:var(--ink-3);stroke-width:2.5}.cascade .door.open{stroke:var(--alarm);stroke-dasharray:3 3}.cascade .doorlbl.open{fill:var(--alarm);font-weight:700}.cascade .zone{stroke:var(--line);stroke-width:1.5}.cascade .zone.bad{stroke:var(--alarm);stroke-width:2}.cascade .plenum{fill:var(--surface-2);stroke:var(--line)}.cascade .hepa{fill:var(--surface);stroke:var(--aura);stroke-width:1.5}.cascade .ground{stroke:var(--ink-3);stroke-width:1.5}.cascade.static{border:0;background:transparent}.ov{display:flex;flex-direction:column;gap:12px}.ov .head{margin-bottom:0}.ov-top{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:12px;gap:12px}.ov-top,.ov-top>.card{height:340px}.alarmcol{display:flex;flex-direction:column;min-height:0}.alarmcol .list{overflow:auto;flex:1 1;min-height:0}.alarmcol .empty{flex:1 1;display:grid;place-items:center}.alarmcol .it{padding:8px 0}.alarmcol .it .t{font-size:13px}.alarmrow td:first-child{padding-left:0}.alarmrow .pri{height:32px}.alarmrow.unack.alarm td{background:var(--alarm-soft)}.alarmrow.unack.warn td{background:var(--warn-soft)}.airlock{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;align-items:stretch}.doorcard{border:1px solid var(--line);border-radius:var(--r-m);padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center}.doorcard .leaf{width:64px;height:88px;border:2px solid var(--ink-2);border-radius:4px;position:relative;background:var(--surface);transition:transform .3s;transform-origin:left center}.doorcard .leaf:after{content:"";position:absolute;right:8px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--ink-3)}.doorcard.open .leaf{transform:perspective(200px) rotateY(-55deg);border-color:var(--alarm)}.doorcard.locked .leaf{border-style:dashed;opacity:.6}.interlock{grid-column:1/3;text-align:center;font-size:12.5px;font-weight:600;padding:8px;border-radius:var(--r-s);background:var(--surface-2);color:var(--ink-2)}.interlock.on{background:var(--warn-soft);color:var(--warn)}.track{display:inline-flex;gap:0;font-size:11px;color:var(--ink-3);white-space:nowrap}.track,.track .p{align-items:center}.track .p{display:flex;flex-direction:column;gap:2px;width:64px}.track .p i{width:10px;height:10px;border-radius:50%;border:2px solid var(--line);background:var(--surface)}.track .p.done i{background:var(--ok);border-color:var(--ok)}.track .p.now i{background:var(--aura);border-color:var(--aura);box-shadow:0 0 0 3px var(--aura-soft)}.track .p.now{color:var(--aura-ink);font-weight:700}.track .ln{width:26px;height:2px;background:var(--line);margin-bottom:16px}.track .ln.done{background:var(--ok)}.scn{position:relative;display:flex;flex-direction:column;gap:8px}.scn.active{border-color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}.scn h3{color:var(--ink)}.scn .btn{align-self:flex-start;margin-top:auto}.modelbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);margin-bottom:12px;flex-wrap:wrap}.modelbar b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.json{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);white-space:pre-wrap;word-break:break-all;max-width:36ch;cursor:pointer;background:none;border:0;text-align:left;padding:0}.json.open{max-width:none}.json .more{color:var(--aura-ink);font-family:var(--font);font-size:11px;font-weight:600}td.edit input{width:100%;border:1px solid var(--aura);border-radius:4px;padding:4px 6px;min-height:30px;font-size:12.5px}.savebar,td.edit input{background:var(--surface)}.savebar{position:-webkit-sticky;position:sticky;bottom:0;display:flex;gap:10px;align-items:flex-end;padding:12px 16px;border:1px solid var(--aura);border-radius:var(--r-m);margin-top:12px;box-shadow:0 -6px 20px rgba(0,0,0,.06)}.savebar .field{flex:1 1}.overlay{position:fixed;inset:0;background:rgba(20,32,43,.45);display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--surface);border-radius:var(--r-l);width:min(560px,94vw);max-height:92vh;overflow:auto;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.25);outline:none}.modal.wide{width:min(820px,94vw)}.modal h2{margin-bottom:6px}.modal .foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.modal .cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 14px;gap:10px 14px}.modal .sect{margin-top:14px}.modal .sect h3{margin-bottom:6px}.cond{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:13px}.cond:last-child{border-bottom:0}.cond i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;flex:none;background:var(--line-2);color:var(--ink-3)}.cond.ok i{background:var(--ok-soft);color:var(--ok)}.cond.bad i{background:var(--alarm-soft);color:var(--alarm)}.summary{background:var(--surface-2);border-radius:var(--r-m);padding:10px 12px;font-size:13px;display:grid;grid-template-columns:auto 1fr;grid-gap:4px 12px;gap:4px 12px}.summary b{color:var(--ink-2);font-weight:600}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:600;z-index:60;max-width:90vw}.toast.alarm{background:var(--alarm);color:#fff}.toast.ok{background:var(--ok);color:#fff}.sig{border:1px dashed var(--line);border-radius:var(--r-m);padding:10px 12px;font-size:12.5px;background:var(--surface-2)}.sig b{color:var(--aura-ink)}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth .side{background:var(--surface-2);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:20px;padding:48px}.auth .side p{margin:0;color:var(--ink-2);max-width:48ch;font-size:15px;text-wrap:pretty}.auth .form{display:grid;place-items:center;padding:24px}.auth .form .card{width:min(400px,94vw)}.auth .hdr{display:flex;flex-direction:column;gap:8px}.auth .hdr .row{justify-content:space-between;gap:8px}.auth .hdr .ttl{font-size:13px;color:var(--ink-2);font-weight:600}.auth .err{background:var(--alarm-soft);color:var(--alarm)}.auth .err,.auth .okmsg{border-radius:var(--r-s);padding:8px 10px;font-size:12.5px;font-weight:600}.auth .okmsg{background:var(--ok-soft);color:var(--ok)}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(420px,94vw)}.lp{--ink:#0F2A47;--ink2:#4A5F74;--tl:#0B8EA6;--tl2:#2BB8CF;--bg:#F6F9FB;--wh:#FFFFFF;--ln:#E3EAF0;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5;min-height:100vh}.lp h1,.lp h2,.lp h3{letter-spacing:-.025em;margin:0;color:var(--ink)}.lp p{margin:0}.lp-kicker{display:inline-block;font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tl);margin-bottom:16px}.lp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 26px;border-radius:999px;background:var(--tl);color:#fff;font-weight:800;text-decoration:none;border:2px solid var(--tl);font-size:15px;transition:transform .15s,background .15s}.lp-btn:hover{background:#087A90;border-color:#087A90;transform:translateY(-1px)}.lp-btn.ghost{background:transparent;color:var(--ink);border-color:#CFDBE4}.lp-btn.ghost:hover{border-color:var(--ink);background:rgba(15,42,71,.04)}.lp-btn:disabled{opacity:.6;cursor:wait}.lp-nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 5vw;background:rgba(246,249,251,.8);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--ln)}.lp-foot img,.lp-logo img{height:34px;width:auto;display:block}.lp-nav nav{display:flex;gap:32px}.lp-nav nav a{color:var(--ink2);text-decoration:none;font-weight:600;font-size:15px}.lp-nav nav a:hover{color:var(--ink)}.lp-nav-right{display:flex;align-items:center;gap:10px;flex:none}.lp-nav-right .lp-btn{min-height:36px;padding:0 14px;font-size:13.5px}.lp-lang{display:inline-flex;border:1px solid #cfdbe4;border-radius:999px;overflow:hidden;background:var(--wh)}.lp-lang button{border:0;background:transparent;color:var(--ink2);font-weight:700;font-size:11.5px;letter-spacing:.04em;padding:0 9px;min-height:34px;cursor:pointer}.lp-lang button.act{background:var(--ink);color:#fff}.lp-lang button:hover{color:var(--ink)}.lp-bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32;filter:saturate(.55);pointer-events:none;mask:linear-gradient(180deg,#000 30%,transparent);-webkit-mask:linear-gradient(180deg,#000 30%,transparent)}.lp-bgimg.dim{opacity:.22;mask:linear-gradient(0deg,#000 30%,transparent);-webkit-mask:linear-gradient(0deg,#000 30%,transparent)}.lp-hero{position:relative;overflow:hidden;background:radial-gradient(900px 500px at 85% 10%,rgba(43,184,207,.16),transparent 60%),var(--bg)}.lp-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;padding:12vh 5vw 14vh;min-height:min(80vh,760px)}.lp-hero-body{max-width:820px}.lp-hero h1{font-size:clamp(40px,5.2vw,78px);line-height:1;font-weight:800;margin-bottom:22px;text-wrap:balance}.lp-hero p{font-size:clamp(17px,1.35vw,20px);max-width:48ch;color:var(--ink2);text-wrap:pretty}.lp-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.lp-std{overflow:hidden;border-block:1px solid var(--ln);padding:22px 0;background:var(--wh);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.lp-std-track{display:flex;gap:64px;width:max-content;animation:lpmarq 45s linear infinite;padding-right:64px}.lp-std span{font-size:15px;font-weight:800;letter-spacing:.1em;color:var(--ink2);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes lpmarq{to{transform:translateX(-50%)}}.lp-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--ln)}.lp-pillar{background:var(--bg);padding:72px 40px 72px 5vw;display:flex;flex-direction:column;gap:12px}.lp-num{font-size:13px;font-weight:800;color:var(--tl);letter-spacing:.1em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lp-pillar h2{font-size:clamp(22px,2vw,28px);font-weight:800}.lp-pillar p{color:var(--ink2);text-wrap:pretty;max-width:34ch}.lp-system{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:6vw;gap:6vw;align-items:center;padding:112px 5vw;background:var(--wh);border-block:1px solid var(--ln)}.lp-system h2{font-size:clamp(30px,3.2vw,46px);font-weight:800;line-height:1.05;margin-bottom:20px;text-wrap:balance}.lp-system p{color:var(--ink2);font-size:17px;margin-bottom:30px;max-width:50ch;text-wrap:pretty}.lp-feats{list-style:none;margin:0;padding:0;display:grid;grid-gap:1px;gap:1px;background:var(--ln);border:1px solid var(--ln);border-radius:18px;overflow:hidden}.lp-feats li{background:var(--bg);padding:22px 24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);grid-gap:16px;gap:16px;align-items:baseline}.lp-feats b{font-size:17px}.lp-feats span{color:var(--ink2);font-size:14.5px;text-wrap:pretty}.lp-contact{position:relative;overflow:hidden;background:var(--bg)}.lp-contact-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:6vw;gap:6vw;padding:112px 5vw}.lp-contact h2{font-size:clamp(30px,3.2vw,46px);font-weight:800;line-height:1.05;margin-bottom:20px;text-wrap:balance}.lp-contact p a{font-size:22px;font-weight:800;color:var(--tl);text-decoration:none}.lp-contact address{font-style:normal;color:var(--ink2);margin-top:32px;line-height:1.7}.lp-contact address b{color:var(--ink)}.lp-form{display:grid;grid-gap:14px;gap:14px;background:var(--wh);border:1px solid var(--ln);border-radius:22px;padding:28px;box-shadow:0 30px 60px -40px rgba(15,42,71,.35)}.lp-form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.lp-form label{display:grid;grid-gap:6px;gap:6px;font-size:13px;font-weight:600;color:var(--ink2)}.lp-form input,.lp-form textarea{border:1px solid #cfdbe4;border-radius:12px;padding:12px 14px;font-size:15px;background:var(--wh);color:var(--ink);min-height:50px;font-family:inherit}.lp-form input:focus,.lp-form textarea:focus{outline:2px solid var(--tl);outline-offset:0;border-color:var(--tl)}.lp-form .lp-btn{justify-self:start}.lp-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.lp-err{color:#CB3A31;font-weight:600;font-size:14px}.lp-done{align-content:center;text-align:center}.lp-done h3{font-size:30px}.lp-done p{color:var(--ink2);margin-top:8px}.lp-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:30px 5vw;border-top:1px solid var(--ln);color:var(--ink2);font-size:13px;background:var(--wh)}.lp-foot img{height:26px}@media (max-width:1000px){.lp-hero-grid{padding:8vh 5vw}.lp-nav{padding:10px 4vw;gap:10px}.lp-logo img{height:28px}.lp-hero h1{font-size:clamp(34px,9vw,52px)}.lp-pillars{grid-template-columns:1fr}.lp-pillar{padding:40px 5vw}.lp-contact-grid,.lp-system{grid-template-columns:1fr;gap:40px;padding:72px 5vw}.lp-nav nav{display:none}.lp-feats li,.lp-form-row{grid-template-columns:1fr}.lp-feats li{gap:4px}}@media (max-width:480px){.lp-nav-right .lp-btn{display:none}.lp-pillar{padding:32px 5vw}.lp-form{padding:20px}.lp-contact-grid,.lp-system{padding:56px 5vw}}@media (prefers-reduced-motion:reduce){.lp-std-track{animation:none}.lp-btn{transition:none}}.norm-row{display:none}@media (max-width:1400px){.ov-top{grid-template-columns:1fr}.ov-top,.ov-top>.card{height:auto}.ov-top>.cascade{height:340px}.alarmcol .list{max-height:260px}table{font-size:12.5px}td,th{padding:6px 8px}.col-norm{display:none}.norm-row{display:table-row}}@media (max-width:1100px){.g3,.g4{grid-template-columns:1fr 1fr}.steps{grid-template-columns:repeat(5,minmax(0,1fr))}.statusbar .tag,.steps .st span{display:none}.statusbar .state{font-size:14px}}@media (max-width:1023px){.auth{grid-template-columns:1fr}.auth .side{display:none}}@media (max-width:840px){.app{grid-template-columns:64px 1fr}.brand small,.meta .seg:not(.lang),.rail .foot,.rail .grp,.rail a span,.statusbar .tag{display:none}.top{padding:0 10px;gap:8px}.brand .logo{height:24px}.brand .ctrl{font-size:13px}.meta{gap:6px}.state{font-size:13px;padding:5px 10px 5px 8px}.rail a{justify-content:center;padding-left:9px}.rail .badge{display:none}.g-1-2,.g-2-1,.g2,.g3,.g4{grid-template-columns:1fr}.brand{min-width:0}.meta .clock,.meta .who{display:none}main{padding:14px}.steps{grid-template-columns:repeat(2,1fr)}.airlock,.modal .cols{grid-template-columns:1fr}.interlock{grid-column:auto}}@media (prefers-reduced-motion:reduce){.cascade .flow,.ffu .fan,.state .dot{animation:none}.bar i,.doorcard .leaf{transition:none}}