:root{--bg0:#070b12;--bg1:#0b1220;--panel:#0f1726;--panel2:#0c1420;--line:#1c2a3f;--line2:#2a3d59;--ink:#e9f2fb;--ink2:#9fb4cc;--ink3:#61788f;--acc:#3ea6ff;--acc-soft:#3ea6ff1f;--ok:#2fd573;--warn:#ffb224;--crit:#ff4d5e;--info:#38cfe0;--gridc:#7ea4d60e;--f-disp:"Rajdhani","Noto Sans Myanmar",sans-serif;--f-body:"IBM Plex Sans","Noto Sans Myanmar",sans-serif;--f-mono:"IBM Plex Mono",monospace}[data-theme=light]{--bg0:#e8edf4;--bg1:#f2f5fa;--panel:#fff;--panel2:#f4f7fb;--line:#d7e0ec;--line2:#c2d0e2;--ink:#16222f;--ink2:#4a5d74;--ink3:#7f92a8;--acc:#0d7fe8;--acc-soft:#0d7fe81a;--ok:#0fa958;--warn:#d98b00;--crit:#e12d3f;--info:#0aa6b8;--gridc:#1e46780f}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--f-body);color:var(--ink);background:radial-gradient(1100px 560px at 82% -8%, #3ea6ff17, transparent 60%), radial-gradient(900px 520px at -8% 108%, #ffb2240f, transparent 60%), linear-gradient(var(--gridc) 1px, transparent 1px), linear-gradient(90deg, var(--gridc) 1px, transparent 1px), linear-gradient(var(--bg0), var(--bg1));background-size:auto,auto,34px 34px,34px 34px,auto;background-attachment:fixed;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.mono{font-family:var(--f-mono)}.dim{color:var(--ink3)}.crit{color:var(--crit)}.tiny{font-size:11.5px}.boot{place-items:center;min-height:100vh;display:grid}.boot-txt{font-family:var(--f-mono);letter-spacing:.35em;color:var(--ink2);animation:1.2s infinite blinkA}.led{background:#3a4656;border-radius:50%;flex:none;display:inline-block}.led-ok{background:var(--ok);box-shadow:0 0 9px var(--ok)}.led-warn{background:var(--warn);box-shadow:0 0 9px var(--warn)}.led-crit{background:var(--crit);box-shadow:0 0 10px var(--crit)}.led-info{background:var(--info);box-shadow:0 0 8px var(--info)}.led-off{background:#3a4656}.blink{animation:1.1s infinite blinkA}@keyframes blinkA{50%{opacity:.25}}.led-row{vertical-align:middle;gap:6px;margin-right:10px;display:inline-flex}.led-svg{stroke:none}.led-svg.ok{fill:var(--ok)}.led-svg.warn{fill:var(--warn)}.led-svg.crit{fill:var(--crit)}.led-svg.off{fill:#3a4656}.topbar{z-index:50;background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:18px;padding:10px 22px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{width:40px;height:40px;color:var(--acc);border:1px solid var(--line2);background:var(--acc-soft);border-radius:8px;place-items:center;font-size:22px;display:grid;box-shadow:inset 0 0 18px #3ea6ff40}.brand-mark.big{width:56px;height:56px;font-size:30px}.brand-name{font-family:var(--f-disp);letter-spacing:.12em;font-size:21px;font-weight:600}.brand-name b{color:var(--acc)}.brand-sub{color:var(--ink3);letter-spacing:.06em;font-size:11px}.conn-badges{flex-wrap:wrap;gap:8px;display:flex}.conn-badge{font-family:var(--f-mono);letter-spacing:.12em;color:var(--ink2);border:1px solid var(--line);background:var(--panel2);border-radius:6px;align-items:center;gap:7px;padding:4px 10px;font-size:10.5px;display:inline-flex}.topbar-right{flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto;display:flex}.clock{text-align:right;line-height:1.15}.clock-time{letter-spacing:.06em;font-size:19px;font-weight:600}.clock-date{color:var(--ink3);letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;display:block}.seg{border:1px solid var(--line2);background:var(--panel2);border-radius:7px;display:inline-flex;overflow:hidden}.seg button{color:var(--ink3);letter-spacing:.06em;background:0 0;border:0;padding:6px 12px;font-size:12px;font-weight:600}.seg button.on{background:var(--acc);color:#fff;box-shadow:0 0 12px #3ea6ff66}.switch-mini{border:1px solid var(--line2);background:var(--panel2);width:34px;height:34px;color:var(--warn);border-radius:7px;place-items:center;font-size:15px;transition:all .2s;display:grid}.switch-mini:hover{box-shadow:0 0 12px var(--acc-soft);border-color:var(--acc)}.userchip{align-items:center;gap:9px;font-size:12px;line-height:1.25;display:flex}.userchip b{letter-spacing:.05em;font-size:12px;display:block}.userchip span{font-size:10.5px}.user-ava{background:var(--acc-soft);border:1px solid var(--line2);width:32px;height:32px;color:var(--acc);font-family:var(--f-disp);border-radius:7px;place-items:center;font-weight:700;display:grid}.alarm-banner{border-bottom:1px solid color-mix(in srgb, var(--crit) 45%, transparent);color:var(--ink);background:linear-gradient(90deg,#ff4d5e38,#ff4d5e14);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 22px;font-size:13px;display:flex}.alarm-banner .blink{color:var(--crit);font-size:16px}.alarm-banner span:last-child{color:var(--ink2);margin-left:auto;font-size:12px}.ok-banner{letter-spacing:.1em;color:var(--ok);background:color-mix(in srgb, var(--ok) 7%, transparent);border-bottom:1px solid color-mix(in srgb, var(--ok) 25%, transparent);align-items:center;gap:10px;padding:6px 22px;font-size:12px;display:flex}.main{max-width:1560px;margin:0 auto;padding:26px 22px 60px}.section{margin-bottom:38px;scroll-margin-top:90px}.section-head{align-items:center;gap:14px;margin:26px 0 16px;display:flex}.sec-index{font-family:var(--f-mono);color:var(--acc);border:1px solid var(--line2);background:var(--acc-soft);letter-spacing:.1em;border-radius:6px;padding:4px 9px;font-size:12px}.sec-title{font-family:var(--f-disp);letter-spacing:.08em;text-transform:uppercase;font-size:26px;font-weight:700}.sec-sub{color:var(--ink3);font-size:12.5px}.sec-line{flex:1;min-width:40px;height:1px}.panel{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 96%, #fff 1%), var(--panel));border:1px solid var(--line);border-radius:10px;padding:16px;box-shadow:inset 0 1px #ffffff08,0 12px 30px #00000047}[data-theme=light] .panel{box-shadow:inset 0 1px #fffc,0 8px 22px #1e325014}.panel-h{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.panel-t{font-family:var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);font-size:15px;font-weight:600}.frame-corners{position:relative}.frame-corners:before,.frame-corners:after{content:"";border:2px solid var(--acc);opacity:.7;width:16px;height:16px;position:absolute}.frame-corners:before{border-bottom:0;border-right:0;top:-2px;left:-2px}.frame-corners:after{border-top:0;border-left:0;bottom:-2px;right:-2px}.tag{font-family:var(--f-mono);letter-spacing:.12em;color:var(--ink2);border:1px solid var(--line2);background:var(--panel2);border-radius:5px;padding:3px 8px;font-size:10.5px}.tag.tiny{padding:1px 6px;font-size:9.5px}.tag-crit{color:var(--crit);border-color:color-mix(in srgb, var(--crit) 50%, transparent)}.kpi-grid{grid-template-columns:repeat(6,1fr);gap:14px;display:grid}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.kpi:hover{transform:translateY(-2px);box-shadow:0 14px 30px #00000059}.kpi:after{content:"";background:linear-gradient(90deg, transparent, var(--acc), transparent);opacity:.5;height:2px;position:absolute;inset:0 0 auto}.kpi-label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:8px;font-size:10.5px;font-weight:600}.kpi-row{align-items:center;gap:12px;display:flex}.kpi-val{font-family:var(--f-disp);letter-spacing:.02em;font-size:34px;font-weight:700;line-height:1}.kpi-unit{color:var(--ink3);margin-left:5px;font-size:12px}.kpi-sub{color:var(--ink3);font-size:11.5px;font-family:var(--f-mono);margin-top:8px}.ring-bg{stroke:var(--line)}.ring-txt{font-family:var(--f-disp);fill:var(--ink);font-size:15px;font-weight:700}.arch-panel{overflow-x:auto}.arch{align-items:stretch;min-width:820px;display:flex}.arch-cell{flex:1;align-items:center;display:flex}.arch-node{border:1px solid var(--line2);background:var(--panel2);border-radius:8px;flex:none;align-items:center;gap:9px;padding:9px 13px;display:flex}.arch-name{font-family:var(--f-disp);letter-spacing:.1em;font-size:13px;font-weight:600}.arch-sub{color:var(--ink3);font-size:10px;font-family:var(--f-mono)}.arch-link{background-image:repeating-linear-gradient(90deg, var(--acc) 0 8px, transparent 8px 16px);opacity:.65;flex:1;height:2px;margin:0 8px;animation:1s linear infinite flowdash}.sumgrid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.sumcard{border:1px solid var(--line);transition:all .18s;display:block}.sumcard:hover{border-color:var(--acc);box-shadow:0 16px 34px #0006, 0 0 0 1px var(--acc-soft);transform:translateY(-3px)}.sumcard-head{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.sumcard-name{font-family:var(--f-disp);letter-spacing:.05em;font-size:16px;font-weight:600}.sumcard-mid{justify-content:space-between;align-items:center;margin:12px 0;display:flex}.sumcard-val{font-size:26px;font-weight:600}.sumcard-foot{border-top:1px dashed var(--line);justify-content:space-between;align-items:center;padding-top:10px;font-size:12px;display:flex}.btn-link{color:var(--acc);font-size:12px;font-weight:600}.chip{font-family:var(--f-mono);letter-spacing:.1em;border:1px solid var(--line2);border-radius:5px;padding:3px 9px;font-size:10px}.st-running{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 50%, transparent);background:color-mix(in srgb, var(--ok) 10%, transparent)}.st-stopped{color:var(--ink3)}.st-alarm{color:var(--crit);border-color:color-mix(in srgb, var(--crit) 55%, transparent);background:color-mix(in srgb, var(--crit) 12%, transparent);animation:1.1s infinite blinkA}.st-idle{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.chip.mode{color:var(--info);border-color:color-mix(in srgb, var(--info) 45%, transparent)}.chip.r-pass{color:var(--ok)}.chip.r-marg{color:var(--warn)}.chip.r-fail{color:var(--crit)}.machine-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.machine-id{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.machine-name{font-family:var(--f-disp);letter-spacing:.06em;text-transform:uppercase;font-size:23px;font-weight:700}.controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.controls-label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-right:4px;font-size:10.5px}.lockhint{color:var(--ink3);font-size:11px}.btn{font-family:var(--f-disp);letter-spacing:.14em;border:1px solid var(--line2);background:var(--panel2);color:var(--ink2);text-transform:uppercase;border-radius:7px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .15s}.btn:disabled{opacity:.38;cursor:not-allowed}.btn-ok:not(:disabled){color:var(--ok);border-color:color-mix(in srgb, var(--ok) 55%, transparent)}.btn-ok:not(:disabled):hover{background:color-mix(in srgb, var(--ok) 14%, transparent);box-shadow:0 0 16px color-mix(in srgb, var(--ok) 35%, transparent)}.btn-crit:not(:disabled){color:var(--crit);border-color:color-mix(in srgb, var(--crit) 55%, transparent)}.btn-crit:not(:disabled):hover{background:color-mix(in srgb, var(--crit) 14%, transparent);box-shadow:0 0 16px color-mix(in srgb, var(--crit) 35%, transparent)}.btn-warn:not(:disabled){color:var(--warn);border-color:color-mix(in srgb, var(--warn) 55%, transparent)}.btn-warn:not(:disabled):hover{background:color-mix(in srgb, var(--warn) 14%, transparent)}.btn-ghost:hover{border-color:var(--acc);color:var(--acc)}.btn-primary{background:var(--acc);border-color:var(--acc);color:#fff}.btn-primary:hover{box-shadow:0 0 20px #3ea6ff80}.btn-demo{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 55%, transparent)}.btn-demo:hover{background:color-mix(in srgb, var(--warn) 12%, transparent);box-shadow:0 0 18px color-mix(in srgb, var(--warn) 30%, transparent)}.btn.wide{width:100%}.m-grid{grid-template-columns:repeat(12,1fr);gap:14px;display:grid}.span-7{grid-column:span 7}.span-5{grid-column:span 5}.mimic{background:linear-gradient(var(--gridc) 1px, transparent 1px), linear-gradient(90deg, var(--gridc) 1px, transparent 1px);border:1px solid var(--line);background-size:22px 22px;border-radius:8px;overflow:hidden}.mimic-svg{width:100%;display:block}.mimic[data-run="0"] .anim-move,.mimic[data-run="0"] .anim-spin,.mimic[data-run="0"] .anim-seal,.mimic[data-run="0"] .anim-fill,.mimic[data-run="0"] .belt-dash,.mimic[data-run="0"] .pipe-flow,.mimic[data-run="0"] .pour,.mimic[data-run="0"] .heatwave{animation-play-state:paused!important}.mimic-frame{fill:none;stroke:var(--line2)}.mimic-part{fill:var(--panel2);stroke:var(--line2);stroke-width:1.5px}.mimic-line{stroke:var(--ink3);stroke-width:1.5px;fill:none}.mimic-box{fill:var(--acc-soft);stroke:var(--acc)}.mimic-box.shrink{stroke:var(--warn);fill:color-mix(in srgb, var(--warn) 14%, transparent)}.liquid{fill:color-mix(in srgb, var(--acc) 38%, transparent)}.svg-tag{font-family:var(--f-mono);fill:var(--ink3);letter-spacing:.1em;font-size:9px}.svg-val{font-family:var(--f-mono);fill:var(--ink);font-size:16px;font-weight:600}.belt-dash{stroke:var(--acc);stroke-dasharray:10 8;opacity:.8;animation:1s linear infinite belt}.pipe-flow{stroke:var(--info);stroke-dasharray:6 8;animation:.8s linear infinite flowdash}.pour{stroke:var(--info);stroke-width:2px;stroke-dasharray:3 4;animation:1.4s linear infinite pourA}.heatwave{stroke-width:1.6px;animation:1.8s ease-in-out infinite shimmer}.heatwave.idle{opacity:.2}.anim-spin{animation:5s linear infinite spinA}.anim-seal{animation:2.4s ease-in-out infinite sealA}.anim-move{animation:8s linear infinite moveA}.anim-fill{animation:2.8s linear infinite fillUp}.blinkDot{animation:1s infinite blinkA}@keyframes belt{to{stroke-dashoffset:-18px}}@keyframes flowdash{to{stroke-dashoffset:-14px}}@keyframes spinA{to{transform:rotate(360deg)}}@keyframes sealA{0%,52%,to{transform:translateY(0)}68%,84%{transform:translateY(24px)}}@keyframes moveA{0%{transform:translate(0)}to{transform:translate(352px)}}@keyframes pourA{to{stroke-dashoffset:-14px}}@keyframes shimmer{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:.85;transform:translateY(-5px)}}@keyframes fillUp{0%{transform:scaleY(.08)}78%{transform:scaleY(1)}to{opacity:.25;transform:scaleY(1)}}.readouts{grid-template-columns:1fr 1fr;gap:12px;display:grid}.readout{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:12px}.ro-label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);font-size:10px;font-weight:600}.ro-val{font-family:var(--f-mono);text-shadow:0 0 16px color-mix(in srgb, var(--acc) 30%, transparent);margin:4px 0 8px;font-size:25px;font-weight:600}.ro-unit{color:var(--ink3);margin-left:5px;font-size:11px}.ro-bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.ro-bar i{background:linear-gradient(90deg, var(--acc), var(--info));height:100%;transition:width .8s;display:block}.chart-svg{width:100%;height:auto;display:block}.grid-line{stroke:var(--line)}.chart-scale{fill:var(--ink3);font-family:var(--f-mono)}.legend{color:var(--ink2);gap:14px;font-size:11px;display:flex}.lg-item{align-items:center;gap:6px;display:inline-flex}.lg-item i{border-radius:2px;width:12px;height:3px;display:inline-block}.spark{display:block}.tbl-wrap{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:12.5px}.tbl th{text-align:left;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);border-bottom:1px solid var(--line2);padding:7px 10px;font-size:10px}.tbl td{border-bottom:1px solid var(--line);padding:7px 10px}.tbl tbody tr{transition:background .12s}.tbl tbody tr:hover{background:var(--acc-soft)}.alarm-row{border:1px solid var(--line);background:var(--panel2);border-left-width:3px;border-radius:7px;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;font-size:12.5px;display:flex}.alarm-row.sev-crit{border-left-color:var(--crit)}.alarm-row.sev-warn{border-left-color:var(--warn)}.alarm-row.sev-info{border-left-color:var(--info)}.alarm-row.log{border-left-color:var(--line2);opacity:.75}.alarm-body{flex:1;line-height:1.45}.alarm-body .dim{font-size:10.5px;display:block}.sev{font-family:var(--f-mono);letter-spacing:.1em;border-radius:4px;flex:none;padding:2px 7px;font-size:9px}.sev-crit{color:#fff;background:var(--crit)}.sev-warn{color:#221a00;background:var(--warn)}.sev-info{color:#04262b;background:var(--info)}.ackbtn{font-family:var(--f-mono);letter-spacing:.1em;border:1px solid var(--line2);background:var(--panel);color:var(--ink2);border-radius:5px;padding:4px 10px;font-size:10px}.ackbtn:hover{border-color:var(--ok);color:var(--ok)}.alarm-empty{color:var(--ok);padding:12px 4px;font-size:13px}.alarm-recent-label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin:12px 0 8px;font-size:10px}.stat{margin-bottom:13px}.stat-top{color:var(--ink2);justify-content:space-between;margin-bottom:5px;font-size:12px;display:flex}.stat-bar{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.stat-bar i{border-radius:3px;height:100%;transition:width .9s;display:block}.stat-grid{grid-template-columns:1fr 1fr;gap:9px;margin-top:14px;display:grid}.stat-cell{background:var(--panel2);border:1px solid var(--line);color:var(--ink3);border-radius:7px;padding:9px 11px;font-size:11px}.stat-cell b{color:var(--ink);margin-top:2px;font-size:16px;display:block}.stat-cell b.crit{color:var(--crit)}.footer{border-top:1px solid var(--line);color:var(--ink3);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:20px;padding-top:16px;font-size:11.5px;display:flex}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid;position:relative}.login-topbar{gap:10px;display:flex;position:absolute;top:18px;right:22px}.login-card{grid-template-columns:1.05fr 1fr;width:min(920px,100%);padding:0;display:grid;overflow:hidden}.login-head{border-bottom:1px solid var(--line);background:linear-gradient(120deg, var(--acc-soft), transparent 60%);grid-column:1/-1;padding:26px 30px 18px}.login-brand{align-items:center;gap:16px;display:flex}.login-brand h1{font-family:var(--f-disp);letter-spacing:.12em;font-size:30px}.login-brand b{color:var(--acc)}.login-brand p{color:var(--ink2);font-size:12px}.sysline{letter-spacing:.14em;color:var(--ink3);margin-top:14px;font-size:10.5px}.login-body{border-left:1px solid var(--line);padding:30px}.login-body h2{font-family:var(--f-disp);letter-spacing:.08em;text-transform:uppercase;font-size:22px}.login-body>p{margin:4px 0 20px;font-size:12px}.field{margin-bottom:15px}.field label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px;font-size:10.5px;font-weight:600;display:block}.field input{border:1px solid var(--line2);background:var(--panel2);width:100%;color:var(--ink);font-family:var(--f-mono);border-radius:7px;outline:none;padding:11px 13px;font-size:14px;transition:all .15s}.field input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}.form-err{color:var(--crit);margin-bottom:12px;font-size:12px}.login-or{text-align:center;color:var(--ink3);letter-spacing:.2em;margin:16px 0;font-size:10.5px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line2);border-radius:5px}::-webkit-scrollbar-track{background:0 0}@media (width<=1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.span-7,.span-5{grid-column:span 12}.sumgrid{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.sumgrid{grid-template-columns:1fr}.conn-badges{display:none}.login-card{grid-template-columns:1fr}.login-body{border-left:0;border-top:1px solid var(--line)}.machine-name{font-size:18px}.readouts{grid-template-columns:1fr}}.brand-name{letter-spacing:.1em;font-size:clamp(13px,1.5vw,19px)}.login-head h1{letter-spacing:.06em;font-size:clamp(18px,2.6vw,30px)}
