:root{--bg:#05080d;--panel:#0b111a;--panel2:#0f1824;--panel3:#121e2b;--line:#1c2c3b;--line2:#2c4960;--text:#eef7fb;--muted:#7890a4;--cyan:#50d7ff;--blue:#357dff;--green:#46dfa4;--amber:#ffbd5d;--red:#ff6678;--violet:#9f88ff;--shadow:0 20px 70px rgba(0,0,0,.35)}
*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{overflow:hidden;background-image:radial-gradient(circle at 78% -10%,rgba(44,117,177,.15),transparent 35%),radial-gradient(circle at 20% 30%,rgba(80,215,255,.04),transparent 34%)}button,input,select,textarea{font:inherit;color:inherit}.hidden{display:none!important}.app{height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);background:linear-gradient(180deg,#08101a,#05080d);padding:16px 13px;display:flex;flex-direction:column;overflow:auto}.brand{display:flex;align-items:center;gap:10px;padding:3px 5px 15px}.brand>img{width:43px;height:43px;border-radius:11px;box-shadow:0 0 30px rgba(80,215,255,.1)}.brand .wordmark{display:block;width:90px;height:auto}.brand span{display:block;margin-top:1px;color:#8da5b8;font-size:10px;letter-spacing:.17em;text-transform:uppercase}.tenant-card{border:1px solid var(--line);background:linear-gradient(180deg,rgba(80,215,255,.035),transparent);border-radius:13px;padding:10px;margin-bottom:12px}.eyebrow{font-size:8px;letter-spacing:.16em;color:#648197;text-transform:uppercase}.tenant-card select{width:100%;border:0;background:transparent;font-weight:750;font-size:12px;margin-top:5px;outline:none}.site-meta{display:flex;gap:5px;margin-top:7px}.pill{font-size:7px;border:1px solid var(--line);padding:3px 6px;border-radius:999px;letter-spacing:.05em}.pill.cyan{color:#9ee9ff;border-color:#2c6380}.pill.green{color:#8ef0c1;border-color:#245b48}.pill.amber{color:#ffd494;border-color:#6f5428}.pill.red{color:#ff9da8;border-color:#65323a}.nav-label{padding:10px 9px 5px;color:#526c80;font-size:8px;letter-spacing:.14em;text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:3px}.sidebar nav button{border:0;background:transparent;padding:9px 10px;text-align:left;border-radius:9px;color:#8299ab;cursor:pointer;font-size:11px;display:flex;align-items:center;gap:9px}.sidebar nav button i{width:16px;text-align:center;color:#6eb9d8;font-style:normal}.sidebar nav button:hover,.sidebar nav button.active{background:linear-gradient(90deg,rgba(80,215,255,.09),rgba(80,215,255,.015));color:#f6fcff;box-shadow:inset 2px 0 0 var(--cyan)}.sidebar-spacer{flex:1}.agent-mini{border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(255,255,255,.015)}.agent-mini>div:first-child{display:flex;align-items:center;gap:7px;font-size:9px}.agent-mini small{display:block;color:var(--muted);font-size:8px;margin:5px 0 9px}.pulse{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 12px var(--green)}.agent-row{display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.agent-row strong{color:var(--text)}main{display:grid;grid-template-rows:68px minmax(0,1fr);min-width:0}.topbar{border-bottom:1px solid var(--line);display:flex;align-items:center;padding:9px 18px;gap:16px;background:rgba(5,8,13,.82);backdrop-filter:blur(18px);z-index:10}.topbar h2{font-size:14px;margin:3px 0 0}.global-search{position:relative;margin-left:20px;flex:1;max-width:610px}.global-search>span{position:absolute;left:13px;top:7px;font-size:21px;color:#668399}.global-search input{width:100%;height:39px;border:1px solid var(--line);background:#0a121c;border-radius:10px;padding:0 12px 0 38px;outline:none;font-size:10px}.global-search input:focus{border-color:#2b6986;box-shadow:0 0 0 3px rgba(80,215,255,.045)}.suggestions{position:absolute;left:0;right:0;top:45px;background:#08111b;border:1px solid var(--line2);border-radius:11px;box-shadow:var(--shadow);overflow:hidden;display:none;z-index:30}.suggestions.open{display:block}.suggestion{padding:9px 11px;border-bottom:1px solid rgba(100,130,150,.12);cursor:pointer;display:flex;justify-content:space-between;gap:10px}.suggestion:hover{background:rgba(80,215,255,.055)}.suggestion b{font-size:9px}.suggestion small{display:block;color:var(--muted);font-size:7px;margin-top:3px}.suggestion mark{background:transparent;color:var(--cyan);font-weight:800}.top-actions{margin-left:auto;display:flex;gap:7px;align-items:center}.ghost,.danger-ghost,.primary,.secondary{border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:linear-gradient(180deg,#101b27,#0a121b);cursor:pointer;font-size:9px}.ghost:hover,.secondary:hover{border-color:#376078}.danger-ghost{border-color:#5a2830;color:#ff8e9b;background:rgba(255,102,120,.035)}.primary{border-color:#25779b;background:linear-gradient(180deg,#12698f,#0e4c6a);box-shadow:0 0 20px rgba(80,215,255,.08)}.wide{width:100%;padding:11px}.user-badge{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#152536;border:1px solid #31536b;font-size:9px;font-weight:800}.content{overflow:auto;padding:18px 20px 45px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}.page-head h1{font-size:22px;margin:0;letter-spacing:-.02em}.page-head p{font-size:9px;color:var(--muted);margin:5px 0 0;max-width:760px}.head-actions{display:flex;gap:6px;flex-wrap:wrap}.grid{display:grid;gap:11px}.kpis{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:11px}.card,.kpi{border:1px solid var(--line);background:linear-gradient(180deg,rgba(15,24,36,.97),rgba(8,15,23,.98));border-radius:13px;box-shadow:0 12px 40px rgba(0,0,0,.2)}.kpi{padding:12px}.kpi label{display:block;color:var(--muted);font-size:7px;text-transform:uppercase;letter-spacing:.1em}.kpi strong{display:block;font-size:21px;margin-top:5px}.kpi small{display:block;font-size:7px;color:var(--muted);margin-top:4px}.card{padding:13px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.card h3{font-size:10px;margin:0}.two{grid-template-columns:1.4fr .8fr}.three{grid-template-columns:repeat(3,1fr)}.status-bar{height:8px;border-radius:99px;background:#142332;overflow:hidden;display:flex}.status-bar span{height:100%}.online{background:var(--green)}.degraded{background:var(--amber)}.offline{background:var(--red)}.muted{color:var(--muted)}.row-list{display:flex;flex-direction:column}.row-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;border-bottom:1px solid rgba(110,140,160,.1);padding:8px 2px}.row-item:last-child{border-bottom:0}.row-item b{font-size:9px}.row-item small{display:block;font-size:7px;color:var(--muted);margin-top:2px}.row-item .right{text-align:right;font-size:8px;color:#9ec7da}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:900px;background:#08111a}.table th{text-align:left;position:sticky;top:0;background:#0d1823;color:#6f8ba0;font-size:7px;text-transform:uppercase;letter-spacing:.08em;padding:8px;border-bottom:1px solid var(--line);z-index:2}.table td{padding:7px 8px;border-bottom:1px solid rgba(110,140,160,.1);font-size:8px}.table tr:hover td{background:rgba(80,215,255,.025)}.clickable{cursor:pointer}.status{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:2px 6px;font-size:7px}.status:before{content:"";width:5px;height:5px;border-radius:50%;background:#718392}.status.accepted:before,.status.online:before{background:var(--green)}.status.imported:before{background:var(--amber)}.status.needs_review:before,.status.offline:before{background:var(--red)}.progress{height:6px;border-radius:99px;background:#172635;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#2f96d8,#50d7ff)}.locations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.location{border:1px solid #1d3a50;border-radius:11px;padding:10px;background:linear-gradient(180deg,rgba(18,36,53,.8),rgba(9,18,28,.9));cursor:pointer}.location:hover{border-color:#3a7797}.location b{font-size:9px}.location small{display:block;color:var(--muted);font-size:7px;margin-top:3px}.location .mini-devs{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.mini-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(70,223,164,.3)}.topology{height:640px;border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle at 50% 20%,rgba(80,215,255,.05),transparent 35%),linear-gradient(rgba(80,215,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(80,215,255,.025) 1px,transparent 1px),#050b11;background-size:auto,30px 30px,30px 30px,auto;position:relative;overflow:auto}.topology-world{position:relative;width:1180px;height:640px}.topology svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.topo-node{position:absolute;width:150px;border:1px solid #2b5169;border-radius:10px;background:linear-gradient(180deg,#102033,#08121e);padding:9px;cursor:pointer;box-shadow:0 12px 25px rgba(0,0,0,.25)}.topo-node:hover{border-color:var(--cyan);z-index:3}.topo-node b{font-size:8px;display:block}.topo-node small{font-size:7px;color:var(--muted)}.topo-node.firewall{border-color:#9a7eff}.topo-node.wan{border-color:#876e45}.topo-line{stroke:#5edcff;stroke-width:1.5;fill:none}.topo-line.secondary{stroke:#9988ff;stroke-dasharray:6 5}.topo-line.wan{stroke:#ffbd5d}.topo-label{fill:#8ebbd0;font-size:7px;paint-order:stroke;stroke:#050b11;stroke-width:4px}.toolbar{display:flex;gap:6px;align-items:center;margin-bottom:9px;flex-wrap:wrap}.toolbar input,.toolbar select{height:34px;border:1px solid var(--line);border-radius:8px;background:#09121c;padding:0 9px;font-size:8px;outline:none}.mode-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.mode-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#09121c}.mode-card.active{border-color:#2f7b9f;box-shadow:0 0 24px rgba(80,215,255,.06)}.mode-card b{font-size:10px}.mode-card p{font-size:8px;color:var(--muted);min-height:40px}.mode-card button{width:100%}.legal-card{border:1px solid var(--line);border-radius:11px;padding:11px;margin-bottom:8px;background:#09121b}.legal-card b{font-size:9px}.legal-card p{font-size:8px;color:var(--muted)}.alert{border:1px solid #6b4d27;background:rgba(255,189,93,.04);border-radius:10px;padding:9px;color:#ffd28e;font-size:8px;margin-bottom:10px}.danger-alert{border-color:#652f38;background:rgba(255,102,120,.04);color:#ffb0b9}.login-screen{height:100vh;display:grid;place-items:center;position:relative;overflow:hidden;background:#04070b}.login-glow{position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(39,132,185,.14),transparent 65%);filter:blur(20px)}.login-card{position:relative;width:390px;border:1px solid #1d3243;border-radius:18px;background:linear-gradient(180deg,rgba(13,23,34,.96),rgba(6,11,17,.98));box-shadow:0 30px 100px rgba(0,0,0,.5);padding:28px}.login-logo{width:170px;display:block;margin:auto}.product-title{text-align:center;font-size:22px;letter-spacing:.16em;margin-top:8px}.product-sub{text-align:center;color:var(--muted);font-size:8px;margin:7px 0 22px}.login-card label{display:block;color:#7590a4;font-size:8px;margin:10px 0}.login-card input{display:block;width:100%;height:40px;margin-top:5px;border:1px solid #22394b;border-radius:9px;background:#07101a;padding:0 11px;outline:none}.login-card input:focus{border-color:#3a7898}.login-foot{text-align:center;color:#526a7c;font-size:7px;margin-top:14px}.error-text{color:#ff8d99;font-size:8px;min-height:16px;margin-top:8px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.68);display:grid;place-items:center;z-index:100;padding:20px}.modal-card{width:min(1120px,96vw);max-height:90vh;overflow:auto;border:1px solid var(--line2);border-radius:16px;background:#09121c;box-shadow:0 30px 100px rgba(0,0,0,.6);padding:18px;position:relative}.modal-close{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:24px;color:#71899b;cursor:pointer}.modal h2{font-size:16px;margin:0 0 4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-grid label,.modal label{font-size:8px;color:#7892a6}.form-grid input,.form-grid select,.form-grid textarea,.modal input,.modal select,.modal textarea{width:100%;border:1px solid var(--line);background:#07101a;border-radius:8px;padding:8px;margin-top:4px;font-size:9px}.modal textarea{min-height:90px;resize:vertical}.asset-chips{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}.asset-chip{border:1px solid #2c566e;border-radius:999px;padding:4px 7px;font-size:7px;background:rgba(80,215,255,.035)}.device-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.info-box{border:1px solid var(--line);border-radius:10px;padding:10px;background:#08111a}.info-box h4{font-size:8px;color:#7892a6;text-transform:uppercase;letter-spacing:.08em;margin:0 0 7px}.kv{display:grid;grid-template-columns:115px 1fr;gap:5px;font-size:8px;margin:5px 0}.kv span{color:var(--muted)}@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,1fr)}.three{grid-template-columns:1fr}.two{grid-template-columns:1fr}.locations{grid-template-columns:repeat(2,1fr)}}

/* v0.5.1 viewport/scroll hotfix: grid children must be allowed to shrink or
   the browser never creates the intended scroll container. */
.app{min-height:0;overflow:hidden}
main{height:100vh;min-height:0;overflow:hidden}
.content{min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable}
.sidebar{min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.topbar{min-width:0}

/* Engineering views */
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.feature-card{border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#0d1823,#08111a);padding:12px;min-height:110px}
.feature-card h3{font-size:10px;margin:0 0 5px}.feature-card p{font-size:8px;color:var(--muted);margin:0 0 10px;line-height:1.5}
.rack-grid{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:11px}.rack-card{border:1px solid var(--line);border-radius:12px;background:#08111a;padding:11px}.rack-shell{border:1px solid #28475b;border-radius:8px;padding:6px;background:linear-gradient(180deg,#07101a,#050a10);margin-top:8px}.rack-u{min-height:18px;border-bottom:1px solid rgba(90,130,155,.11);font-size:7px;color:#607b8f;padding:3px 5px;display:flex;justify-content:space-between;gap:8px}.rack-u.device{color:#d7f5ff;background:rgba(80,215,255,.04)}
.cable-path{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:8px}.cable-hop{border:1px solid #284a60;border-radius:8px;padding:7px 9px;background:#091522}.cable-arrow{color:var(--cyan)}
.health-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--green);box-shadow:0 0 9px rgba(70,223,164,.35)}.health-dot.degraded{background:var(--amber)}.health-dot.offline{background:var(--red)}
.setting-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1.3fr);gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(110,140,160,.1)}.setting-row:last-child{border-bottom:0}.setting-row b{font-size:9px}.setting-row small{display:block;color:var(--muted);font-size:7px;margin-top:3px}.setting-row select,.setting-row input{height:34px;border:1px solid var(--line);border-radius:8px;background:#09121c;padding:0 9px;font-size:8px}
.module-state{font-size:7px;border-radius:999px;padding:3px 6px;border:1px solid var(--line)}.module-state.live{color:#8ef0c1;border-color:#245b48}.module-state.partial{color:#ffd494;border-color:#6f5428}.module-state.planned{color:#a7b7c5}
@media(max-width:1200px){.feature-grid,.rack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.app{grid-template-columns:210px minmax(0,1fr)}.topbar{padding:8px 10px}.global-search{display:none}.feature-grid,.rack-grid,.locations{grid-template-columns:1fr}.content{padding:14px 12px 40px}.setting-row{grid-template-columns:1fr}}
html[data-theme="light"]{--bg:#eef4f8;--panel:#ffffff;--panel2:#f7fbfd;--panel3:#eaf3f8;--line:#ccdce6;--line2:#9eb9c8;--text:#102331;--muted:#637b8b;--cyan:#087ea4;--blue:#2366c2;--green:#118458;--amber:#a66a13;--red:#bc3345;--violet:#6654c6;--shadow:0 20px 70px rgba(35,61,78,.14)}
html[data-theme="light"] body{background-image:radial-gradient(circle at 78% -10%,rgba(44,117,177,.12),transparent 35%),radial-gradient(circle at 20% 30%,rgba(80,215,255,.06),transparent 34%)}
html[data-theme="light"] .sidebar{background:linear-gradient(180deg,#f5fafc,#eaf2f6)}
html[data-theme="light"] .topbar{background:rgba(245,250,252,.9)}
html[data-theme="light"] .card,html[data-theme="light"] .kpi,html[data-theme="light"] .feature-card,html[data-theme="light"] .rack-card{background:linear-gradient(180deg,#fff,#f5fafc)}
html[data-theme="light"] .table,html[data-theme="light"] .info-box,html[data-theme="light"] .mode-card,html[data-theme="light"] .legal-card,html[data-theme="light"] .rack-shell{background:#f7fbfd}
html[data-theme="light"] .table th{background:#edf5f8}
html[data-theme="light"] .global-search input,html[data-theme="light"] .toolbar input,html[data-theme="light"] .toolbar select,html[data-theme="light"] .setting-row select,html[data-theme="light"] .setting-row input{background:#fff}

/* v0.6.0 Vessel Digital Twin */
.digital-twin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;min-width:0}
.deck-rail{border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#0b1621,#071019);padding:10px;min-width:0}
.deck-rail>.eyebrow{margin:2px 5px 8px}.deck-tab{width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:9px;padding:9px 10px;margin:2px 0;cursor:pointer;display:flex;flex-direction:column;gap:3px;color:var(--text)}
.deck-tab span{font-size:9px;font-weight:700}.deck-tab small{font-size:7px;color:var(--muted)}.deck-tab:hover{border-color:#27475b;background:rgba(80,215,255,.025)}.deck-tab.active{border-color:#327798;background:linear-gradient(90deg,rgba(80,215,255,.09),rgba(80,215,255,.015));box-shadow:inset 3px 0 0 var(--cyan)}
.ga-panel{border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle at 50% 0%,rgba(80,215,255,.045),transparent 40%),linear-gradient(rgba(80,215,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(80,215,255,.02) 1px,transparent 1px),#061019;background-size:auto,28px 28px,28px 28px,auto;padding:12px;min-width:0;overflow:hidden}
.ga-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.ga-toolbar h3{font-size:14px;margin:3px 0 0}.ga-stats{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.ga-stats span{border:1px solid var(--line);border-radius:999px;background:#081520;padding:5px 7px;font-size:7px;color:#8fa9ba}
.schematic-note{border:1px dashed #385468;border-radius:8px;padding:6px 8px;margin:8px 0 10px;font-size:7px;letter-spacing:.08em;color:#7f9caf;background:rgba(0,0,0,.12)}
.ga-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));grid-auto-rows:minmax(94px,auto);gap:8px;align-items:stretch;min-width:0}
.ga-room{border:1px solid #28485d;border-radius:10px;background:linear-gradient(180deg,rgba(16,33,48,.96),rgba(8,17,27,.98));padding:9px;text-align:left;cursor:pointer;color:var(--text);min-width:0;overflow:hidden;position:relative}
.ga-room:hover{border-color:var(--cyan);transform:translateY(-1px)}.ga-room.attention{border-color:#6c5730}.ga-room-top{display:flex;justify-content:space-between;gap:6px;color:#718ca0;font-size:7px}.ga-room-top span{border:1px solid #26465b;border-radius:999px;padding:2px 5px}.ga-room strong{display:block;font-size:8px;margin:7px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga-room small{display:block;color:var(--muted);font-size:6.7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga-room-health{display:flex;gap:3px;flex-wrap:wrap;margin-top:7px}.ga-room-health i{width:5px;height:5px;border-radius:50%;display:block}.ga-room-health i.ok{background:var(--green)}.ga-room-health i.warn{background:var(--amber)}
.area-modal-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.area-modal-head h2{margin-top:4px}.context-device{border:1px solid #263b49;border-radius:9px;padding:8px;margin:5px 0;background:rgba(110,130,145,.045);opacity:.72}.context-device:hover{opacity:1;border-color:#426780}.context-device>div{display:flex;align-items:center;gap:6px}.context-device b{font-size:8px}.context-device small{font-size:7px;color:var(--muted);display:block;margin-top:3px}.context-mask{font-size:6px;border:1px solid #51626d;border-radius:999px;padding:2px 5px;color:#9aaab3}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.module-card{border:1px solid var(--line);border-radius:10px;padding:10px;background:#08111a;display:flex;justify-content:space-between;gap:9px;align-items:center}.module-card.disabled{opacity:.65}.module-card b{font-size:8px}.module-card small{font-size:6.5px;color:var(--muted);display:block;margin-top:3px}.module-card>div:last-child{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
html[data-theme="light"] .deck-rail,html[data-theme="light"] .ga-panel,html[data-theme="light"] .ga-room,html[data-theme="light"] .module-card{background:#f7fbfd}.deck-tab:focus-visible,.ga-room:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media(max-width:1150px){.digital-twin-layout{grid-template-columns:1fr}.deck-rail{display:flex;gap:6px;overflow-x:auto;align-items:stretch}.deck-rail>.eyebrow{display:none}.deck-tab{min-width:155px;margin:0}.ga-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.ga-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.module-grid{grid-template-columns:1fr}.ga-toolbar{flex-direction:column}.ga-stats{justify-content:flex-start}.area-modal-head{flex-direction:column}}


/* v0.6.2 Engineering Editor */
.sidebar-version{padding:8px 4px 1px;text-align:center;color:var(--muted);font-size:7px;letter-spacing:.08em;border-top:1px solid rgba(110,140,160,.08);margin-top:7px}
.editor-banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid #2d667e;background:rgba(80,215,255,.045);border-radius:10px;padding:9px 11px;margin-bottom:11px;font-size:8px;color:var(--muted)}
.editor-banner b{color:var(--cyan);letter-spacing:.08em}.edit-tag{position:absolute;right:7px;bottom:7px;font-style:normal;font-size:6px;border:1px solid #2d667e;border-radius:999px;padding:2px 5px;color:var(--cyan)}
.mini-danger{border:1px solid #5a2830;color:#ff8e9b;background:rgba(255,102,120,.035);border-radius:7px;padding:5px 7px;font-size:7px;cursor:pointer;margin-top:6px}
.three-col{grid-template-columns:repeat(3,minmax(0,1fr))!important}.editor-table-actions{display:flex;justify-content:flex-end;margin-top:10px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.three-col,.form-grid.two{grid-template-columns:1fr!important}}

/* v0.6.4 Digital Twin Operations */
.device-filter-panel,.ga-filterbar{border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,rgba(15,24,36,.92),rgba(8,15,23,.94));padding:11px;margin-bottom:11px}
.status-filter{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.filter-chip{border:1px solid var(--line);background:#09131d;border-radius:999px;color:var(--muted);padding:6px 9px;display:inline-flex;gap:8px;align-items:center;cursor:pointer;font-size:8px;min-height:31px}
.filter-chip b{font-size:8px;color:var(--text)}.filter-chip:hover{border-color:#3a6077}.filter-chip.active{border-color:var(--cyan);color:var(--text);background:rgba(80,215,255,.07)}
.filter-chip.online.active{border-color:#2e7f62}.filter-chip.offline.active{border-color:#8c3b48}.filter-chip.degraded.active{border-color:#8c672f}.filter-chip.affected.active{border-color:#7659aa}.filter-chip.unknown.active{border-color:#566a78}
.device-filter-grid{display:grid;grid-template-columns:minmax(240px,1.6fr) repeat(4,minmax(130px,.7fr)) auto;gap:7px;margin-top:9px}.device-filter-grid input,.device-filter-grid select,.ga-search input{height:36px;border:1px solid var(--line);border-radius:9px;background:#07101a;padding:0 10px;font-size:8px;min-width:0}.filter-summary{font-size:7px;color:var(--muted);margin-top:8px}.filter-summary b{color:var(--text)}
.status.degraded:before{background:var(--amber)}.status.affected:before{background:var(--violet)}.status.unknown:before,.status.stale:before,.status.connecting:before{background:#718392}.status.disabled:before{background:#56616a}.status.live:before{background:var(--green)}.status.simulation:before{background:var(--blue)}.status.hybrid:before,.status.inherit:before{background:var(--cyan)}
.ga-filterbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:10px;align-items:center}.ga-search input{width:100%}.check-filter{font-size:8px;color:var(--muted);display:flex;gap:6px;align-items:center;white-space:nowrap}.check-filter input{accent-color:var(--cyan)}
.ga-main{min-width:0}.ga-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:11px;min-width:0}.ga-panel{min-height:420px}.ga-room.selected{border-color:var(--cyan);box-shadow:0 0 0 1px rgba(80,215,255,.18),0 0 22px rgba(80,215,255,.06)}
.health-stack{height:6px;border-radius:999px;background:#13212d;overflow:hidden;display:flex;width:100%;margin-top:8px}.health-stack>span{height:100%;min-width:0}.health-stack .online{background:var(--green)}.health-stack .degraded{background:var(--amber)}.health-stack .offline{background:var(--red)}.health-stack .affected{background:var(--violet)}.health-stack .unknown{background:#516677}
.room-status-line{display:flex;gap:8px;margin-top:7px;font-size:6.5px;color:var(--muted)}.room-status-line span:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:3px}.room-status-line .online:before{background:var(--green)}.room-status-line .degraded:before{background:var(--amber)}.room-status-line .offline:before{background:var(--red)}.room-status-line .unknown:before{background:#516677}.room-status-line span{background:transparent!important}
.deck-tab .health-stack{height:3px;margin-top:3px}.deck-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.deck-overview-card{border:1px solid #28485d;border-radius:11px;background:linear-gradient(180deg,rgba(16,33,48,.95),rgba(8,17,27,.98));padding:11px;text-align:left;color:var(--text);cursor:pointer}.deck-overview-card:hover{border-color:var(--cyan)}.deck-overview-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.deck-overview-head b{font-size:10px}.deck-overview-head small{display:block;color:var(--muted);font-size:7px;margin-top:3px}.deck-overview-head>span{font-size:6.5px;border:1px solid var(--line);border-radius:999px;padding:3px 6px;color:var(--muted);white-space:nowrap}.deck-health-labels{display:flex;gap:8px;flex-wrap:wrap;font-size:6.5px;color:var(--muted);margin-top:7px}
.area-inspector{border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#0b1621,#071019);padding:12px;min-width:0;max-height:680px;overflow:auto}.area-inspector.empty{display:grid;place-items:center;text-align:center;align-content:center;color:var(--muted);min-height:300px}.area-inspector.empty b{color:var(--text);font-size:10px}.area-inspector.empty p{font-size:8px;line-height:1.55;max-width:230px}.area-empty-icon{font-size:30px;color:#4d7186;margin-bottom:8px}.area-inspector-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.area-inspector-head h3{font-size:15px;margin:4px 0 0}.icon-btn{border:1px solid var(--line);border-radius:8px;background:#09131d;color:var(--muted);width:30px;height:30px;cursor:pointer;font-size:18px}.area-health-counts{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0 10px;font-size:6.5px;color:var(--muted)}.area-health-counts .ok{color:var(--green)}.area-health-counts .warn{color:var(--amber)}.area-health-counts .bad{color:var(--red)}.area-note{border-left:2px solid #355d73;padding:7px 8px;background:rgba(80,215,255,.025);font-size:7px;color:var(--muted);line-height:1.5;margin-bottom:9px}.area-actions{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.inspector-section{border-top:1px solid rgba(110,140,160,.12);padding-top:10px;margin-top:10px}.inspector-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.inspector-title b{font-size:8px}.inspector-title span{font-size:7px;color:var(--muted)}.area-device-list{display:flex;flex-direction:column;gap:4px}.area-device{width:100%;border:1px solid rgba(110,140,160,.15);border-radius:8px;background:rgba(255,255,255,.012);padding:7px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;text-align:left;color:var(--text);cursor:pointer}.area-device:hover{border-color:#365f77}.area-device b{font-size:7.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.area-device small{font-size:6.5px;color:var(--muted);display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-state-dot{width:7px;height:7px;border-radius:50%;background:#516677}.device-state-dot.online{background:var(--green)}.device-state-dot.degraded{background:var(--amber)}.device-state-dot.offline{background:var(--red)}.device-state-dot.affected{background:var(--violet)}.ga-empty{border:1px dashed var(--line2);border-radius:10px;padding:25px;text-align:center;color:var(--muted);font-size:8px;grid-column:1/-1}.ga-foot-cards{margin-top:12px}
html[data-theme="light"] .device-filter-panel,html[data-theme="light"] .ga-filterbar,html[data-theme="light"] .area-inspector,html[data-theme="light"] .deck-overview-card,html[data-theme="light"] .filter-chip{background:#f7fbfd}.asset-chips{display:flex;gap:5px;flex-wrap:wrap}
@media(max-width:1450px){.device-filter-grid{grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(130px,1fr));}.ga-filterbar{grid-template-columns:1fr}.ga-workspace{grid-template-columns:minmax(0,1fr) 290px}.deck-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.ga-workspace{grid-template-columns:1fr}.area-inspector{max-height:none}.deck-overview-grid{grid-template-columns:1fr}.device-filter-grid{grid-template-columns:1fr 1fr}.device-filter-grid input{grid-column:1/-1}}
@media(max-width:700px){.device-filter-grid{grid-template-columns:1fr}.device-filter-grid input{grid-column:auto}.status-filter{gap:4px}.filter-chip{padding:5px 7px}.ga-filterbar{padding:9px}}

/* v0.6.4.2 live device inspection / Focus Mode */
.device-focus-card{border:1px solid var(--line);background:linear-gradient(180deg,rgba(41,91,121,.16),rgba(7,15,24,.28));border-radius:16px;padding:14px;margin:10px 0 12px;min-width:0}
.focus-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.focus-head h4{margin:0 0 3px}.focus-head small{display:block;max-width:760px;color:var(--muted);line-height:1.45}
.focus-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.focus-kpis>div{border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(4,12,20,.38);min-width:0}
.focus-kpis span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.focus-kpis b{display:block;margin-top:4px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus-plot-title{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px;margin:8px 2px 4px}
.focus-plot{display:block;width:100%;height:118px;border:1px solid var(--line);border-radius:10px;background:rgba(2,9,15,.42);overflow:hidden}
.focus-plot.loss{height:70px}.focus-grid line{stroke:rgba(133,166,192,.15);stroke-width:1;vector-effect:non-scaling-stroke}.focus-line polyline{fill:none;stroke:#66d5ff;stroke-width:2.3;vector-effect:non-scaling-stroke}.focus-loss-bars rect{fill:#f1b64f;opacity:.82}
@media (max-width:850px){.focus-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

.focus-empty{fill:var(--muted);font-size:13px}.focus-line circle{fill:#66d5ff;stroke:#07101a;stroke-width:1.5;vector-effect:non-scaling-stroke}.device-focus-card{box-shadow:inset 0 0 0 1px rgba(80,215,255,.04)}
/* v0.6.4.4 focus plot readability */
.focus-axis text{fill:var(--muted);font-size:9px}
.focus-zero-line{stroke:rgba(105,225,170,.35)!important;stroke-width:1.4!important}
.focus-loss-marks .loss-ok{fill:#6fe0ad;opacity:.85}
.focus-loss-marks .loss-bad{fill:#ff6b6b;opacity:.9}
.focus-good-label{fill:#6fe0ad;font-size:11px;opacity:.8}

/* v0.6.4.5 Agent coverage / job assignment diagnostics */
.assignment-banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;background:rgba(255,255,255,.018);font-size:10px}.assignment-banner b{letter-spacing:.08em}.assignment-banner span{color:var(--muted);flex:1;min-width:260px}.assignment-banner code{font-size:9px}.assignment-banner.ok{border-color:rgba(81,216,163,.32);background:rgba(81,216,163,.045)}.assignment-banner.bad{border-color:rgba(255,102,112,.34);background:rgba(255,102,112,.045)}.assignment-banner.bad b{color:#ff9299}

/* ========================================================================== */
/* MAVIT SUPERVISOR FUTURISTIC UI — FX1                                      */
/* Visual refresh for production v0.6.4.6. Existing DOM IDs and JS actions    */
/* are intentionally preserved.                                               */
/* ========================================================================== */

:root{
  --bg:#02050a;
  --panel:#07111c;
  --panel2:#0a1724;
  --panel3:#0d1d2d;
  --line:rgba(123,220,255,.14);
  --line2:rgba(123,220,255,.28);
  --text:#f2f8fd;
  --muted:#7998ad;
  --cyan:#4de3ff;
  --blue:#3d82ff;
  --green:#37e4a6;
  --amber:#ffc45f;
  --red:#ff6078;
  --violet:#9d8cff;
  --shadow:0 26px 80px rgba(0,0,0,.42);
  --glass:linear-gradient(145deg,rgba(16,33,51,.78),rgba(5,12,21,.88));
}

html,body{background:#02050a;color:var(--text);font-size:16px}
body{
  background-image:
    radial-gradient(circle at 16% -10%,rgba(45,192,255,.16),transparent 28%),
    radial-gradient(circle at 88% 96%,rgba(61,130,255,.12),transparent 30%),
    linear-gradient(135deg,#02050a 0%,#06111c 48%,#02050a 100%);
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(77,227,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(77,227,255,.04) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.5),transparent 80%)}

.app{grid-template-columns:290px minmax(0,1fr);gap:0}
.sidebar{
  padding:24px 18px 18px;
  border-right:1px solid rgba(77,227,255,.18);
  background:linear-gradient(180deg,rgba(4,12,21,.97),rgba(2,7,13,.99));
  box-shadow:18px 0 60px rgba(0,0,0,.22);
}
.brand{padding:4px 7px 22px;gap:14px}
.brand>img{width:58px;height:58px;border-radius:16px;box-shadow:0 0 36px rgba(77,227,255,.14)}
.brand .wordmark{width:126px;filter:drop-shadow(0 0 14px rgba(255,255,255,.08))}
.brand span{font-size:12px;letter-spacing:.28em;color:#a9c7da;margin-top:4px}
.tenant-card{border:1px solid rgba(77,227,255,.18);border-radius:22px;padding:16px 15px;margin-bottom:18px;background:linear-gradient(145deg,rgba(19,39,60,.72),rgba(5,13,22,.86));box-shadow:0 18px 45px rgba(0,0,0,.18)}
.tenant-card select{font-size:15px;margin-top:8px}
.eyebrow{font-size:10px;letter-spacing:.20em;color:#82a6bd;font-weight:700}
.site-meta{gap:8px;margin-top:10px}
.pill{font-size:10px;padding:5px 9px;letter-spacing:.08em;background:rgba(255,255,255,.025)}
.nav-label{padding:14px 12px 7px;font-size:10px;letter-spacing:.19em;color:#506e83}
.sidebar nav{gap:5px}
.sidebar nav button{padding:12px 13px;border-radius:14px;font-size:14px;color:#91aabd;gap:12px;transition:.18s ease}
.sidebar nav button i{width:22px;font-size:13px;color:#70cce9}
.sidebar nav button:hover,.sidebar nav button.active{background:linear-gradient(90deg,rgba(77,227,255,.13),rgba(61,130,255,.03));color:#fff;box-shadow:inset 3px 0 0 var(--cyan),0 0 30px rgba(77,227,255,.05)}
.sidebar nav button.active{border:1px solid rgba(77,227,255,.2)}
.agent-mini{border-radius:18px;padding:14px;border-color:rgba(77,227,255,.14);background:linear-gradient(145deg,rgba(14,30,47,.75),rgba(5,13,22,.86))}
.agent-mini>div:first-child{font-size:11px}.agent-mini small{font-size:9px}.agent-row{font-size:9px}.sidebar-version{font-size:9px;color:#516b7d;padding:12px 4px 0;text-align:center;letter-spacing:.08em}

main{grid-template-rows:86px minmax(0,1fr)}
.topbar{
  padding:12px 28px;
  gap:24px;
  background:rgba(2,7,13,.82);
  border-bottom:1px solid rgba(77,227,255,.14);
  backdrop-filter:blur(24px) saturate(140%);
  box-shadow:0 12px 40px rgba(0,0,0,.14);
}
.topbar h2{font-size:19px;margin-top:5px;letter-spacing:-.01em}
.global-search{max-width:720px;margin-left:28px}
.global-search>span{left:16px;top:10px;font-size:23px;color:#688ca3}
.global-search input{height:48px;border-radius:16px;padding-left:46px;font-size:13px;background:rgba(4,12,21,.86);border:1px solid rgba(77,227,255,.14)}
.global-search input:focus{border-color:rgba(77,227,255,.5);box-shadow:0 0 0 3px rgba(77,227,255,.06),0 0 26px rgba(77,227,255,.06)}
.top-actions{gap:10px}
.ghost,.danger-ghost,.primary,.secondary{border-radius:14px;padding:10px 14px;font-size:12px;background:linear-gradient(180deg,rgba(17,34,50,.92),rgba(6,15,24,.96));transition:.18s ease}
.ghost:hover,.secondary:hover{border-color:rgba(77,227,255,.48);box-shadow:0 0 24px rgba(77,227,255,.08)}
.primary{border-color:rgba(77,227,255,.55);background:linear-gradient(135deg,#08779d,#245ed5);box-shadow:0 10px 32px rgba(28,132,211,.18)}
.danger-ghost{border-color:rgba(255,96,120,.36);background:rgba(255,96,120,.04)}
.user-badge{width:42px;height:42px;font-size:12px;border-color:rgba(77,227,255,.24);background:linear-gradient(145deg,rgba(18,40,61,.85),rgba(7,16,27,.95))}

.content{padding:24px 28px 56px;overflow:auto}
.page-head{margin-bottom:18px;align-items:flex-start;gap:20px}
.page-head h1{font-size:32px;letter-spacing:-.03em;margin-bottom:6px}
.page-head p{font-size:12px;line-height:1.55;color:#7e9aaf;max-width:840px}
.head-actions{gap:8px;align-items:center}

.card,.kpi,.ga-panel,.area-inspector,.device-filter-panel,.ga-filterbar,.mode-card,.legal-card,.info-box,.module-card{
  border-color:rgba(77,227,255,.13)!important;
  background:linear-gradient(145deg,rgba(13,28,44,.78),rgba(4,11,19,.92))!important;
  box-shadow:0 24px 60px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.02);
  backdrop-filter:blur(14px);
}
.card{border-radius:22px;padding:18px}
.card h3{font-size:14px}.card p{font-size:10px;line-height:1.65}.card-head{margin-bottom:12px}
.grid{gap:14px}.grid.kpis{gap:12px}
.kpi{border-radius:19px;padding:17px 18px;min-height:104px;position:relative;overflow:hidden}
.kpi:after{content:"";position:absolute;right:-28px;bottom:-40px;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,rgba(77,227,255,.10),transparent 65%)}
.kpi label{font-size:10px;letter-spacing:.13em}.kpi strong{font-size:28px;margin-top:10px}.kpi small{font-size:9px;margin-top:5px}

.table-wrap{border-radius:18px;border-color:rgba(77,227,255,.13)}
.table{background:rgba(4,12,20,.7)}
.table th{background:rgba(11,27,42,.96);font-size:9px;padding:11px;color:#7d9db2}
.table td{font-size:10px;padding:10px 11px}.table tr:hover td{background:rgba(77,227,255,.035)}
.status{font-size:9px;padding:4px 8px;gap:6px}.status:before{width:7px;height:7px;box-shadow:0 0 9px currentColor}
.row-list{gap:2px}.row-item{padding:10px 0}.row-item b{font-size:11px}.row-item small{font-size:9px;line-height:1.4}.row-item .right{font-size:10px}

/* Command Center */
.fx-command-shell{display:grid;gap:16px}
.fx-hero-card,.fx-health-panel,.fx-panel{
  border:1px solid rgba(77,227,255,.16);
  background:linear-gradient(145deg,rgba(10,25,40,.80),rgba(3,10,18,.94));
  border-radius:28px;
  box-shadow:0 30px 80px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.025);
  position:relative;
  overflow:hidden;
}
.fx-hero-card{min-height:420px;padding:26px 28px 22px}
.fx-hero-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 38%,rgba(37,142,255,.20),transparent 35%),linear-gradient(180deg,rgba(13,49,81,.20),transparent 60%);pointer-events:none}
.fx-hero-copy{position:relative;z-index:2;max-width:620px}
.fx-hero-copy h1{font-size:38px;line-height:1;margin:9px 0 12px;letter-spacing:-.035em}
.fx-live-line{display:flex;align-items:center;gap:10px;color:#c6edf7;font-size:12px}.fx-live-line span:last-child{color:var(--muted)}
.fx-hero-copy p{color:#83a0b4;font-size:11px;line-height:1.55;max-width:550px}
.fx-hero-meta{position:absolute;right:28px;top:28px;z-index:3;text-align:right;display:grid;gap:4px}.fx-hero-meta span{font-size:9px;letter-spacing:.18em;color:#64869d}.fx-hero-meta strong{font-size:15px;color:#6dffc7}.fx-hero-meta small{font-size:9px;color:var(--muted)}
.fx-yacht-stage{position:absolute;left:22px;right:22px;bottom:54px;height:255px;border-radius:22px;background:linear-gradient(180deg,rgba(19,73,114,.15),rgba(3,12,22,.34));overflow:hidden}
.fx-yacht-stage:after{content:"";position:absolute;left:7%;right:7%;bottom:24px;height:32px;background:radial-gradient(ellipse,rgba(55,184,255,.19),transparent 68%);filter:blur(12px)}
.fx-yacht-stage svg{width:100%;height:100%;filter:drop-shadow(0 0 20px rgba(77,227,255,.18))}
.fx-yacht-hull{fill:rgba(31,95,143,.18);stroke:#75e7ff;stroke-width:2.2}.fx-yacht-deck,.fx-yacht-mast{fill:none;stroke:rgba(189,243,255,.58);stroke-width:1.2}.fx-ga-point{stroke:#d9fbff;stroke-width:1.5}.fx-ga-point.ok{fill:var(--green);filter:drop-shadow(0 0 8px #37e4a6)}.fx-ga-point.warn{fill:var(--amber);filter:drop-shadow(0 0 8px #ffc45f)}.fx-ga-point.bad{fill:var(--red);filter:drop-shadow(0 0 8px #ff6078)}
.fx-hero-footer{position:absolute;z-index:3;left:28px;right:28px;bottom:20px;display:flex;justify-content:space-between;align-items:center}.fx-hero-footer span{font-size:9px;letter-spacing:.22em;color:#6d8ea4}.fx-hero-footer strong{font-size:22px;letter-spacing:.08em;background:linear-gradient(180deg,#fff,#69cdec);-webkit-background-clip:text;color:transparent}
.fx-health-panel,.fx-panel{padding:20px}
.fx-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.fx-section-head h3{font-size:17px;margin:4px 0 0}.fx-section-head .eyebrow{font-size:9px}
.fx-health-grid{display:grid;grid-template-columns:150px repeat(5,minmax(110px,1fr));gap:12px;align-items:stretch}
.fx-health-ring{width:126px;height:126px;margin:auto;border-radius:50%;background:conic-gradient(var(--green) 0 var(--health),rgba(255,255,255,.07) var(--health) 360deg);padding:11px;box-shadow:0 0 28px rgba(55,228,166,.13)}
.fx-health-ring>div{height:100%;border-radius:50%;display:grid;place-items:center;align-content:center;background:#05101a;border:1px solid rgba(77,227,255,.12)}.fx-health-ring strong{font-size:29px}.fx-health-ring small{font-size:8px;letter-spacing:.18em;color:#6d8da2}
.fx-status-tile{border:1px solid rgba(77,227,255,.12);border-radius:20px;background:rgba(255,255,255,.025);padding:17px 16px;display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:126px}.fx-status-tile i{width:10px;height:10px;border-radius:50%;display:block;box-shadow:0 0 10px currentColor}.fx-status-tile strong{font-size:28px}.fx-status-tile span{font-size:11px;color:#88a6b9}.fx-status-tile.online i{background:var(--green);color:var(--green)}.fx-status-tile.degraded i{background:var(--amber);color:var(--amber)}.fx-status-tile.offline i{background:var(--red);color:var(--red)}.fx-status-tile.affected i{background:var(--violet);color:var(--violet)}.fx-status-tile.unknown i{background:#6c8292;color:#6c8292}
.fx-command-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:16px}
.fx-list{display:grid;gap:0}.fx-alarm-row,.fx-agent-row,.fx-event-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(130,176,205,.08)}.fx-alarm-row:last-child,.fx-agent-row:last-child,.fx-event-row:last-child{border-bottom:0}.fx-alarm-row b,.fx-agent-row b,.fx-event-row b{font-size:11px}.fx-alarm-row small,.fx-agent-row small,.fx-event-row small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.fx-alert-icon,.fx-event-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);font-weight:800}.fx-alert-icon.offline{color:var(--red);background:rgba(255,96,120,.08)}.fx-alert-icon.degraded{color:var(--amber);background:rgba(255,196,95,.08)}.fx-alert-icon.affected{color:var(--violet)}.fx-event-icon{color:var(--cyan)}
.fx-live-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.fx-live-dot.online{background:var(--green);box-shadow:0 0 10px rgba(55,228,166,.65)}.fx-live-dot.offline{background:var(--red);box-shadow:0 0 10px rgba(255,96,120,.5)}
.fx-count-badge{min-width:30px;height:30px;padding:0 9px;border-radius:999px;display:grid;place-items:center;font-size:11px;font-weight:800}.fx-count-badge.danger{color:#ffb2be;border:1px solid rgba(255,96,120,.35);background:rgba(255,96,120,.08)}
.fx-text-action{border:0;background:transparent;color:#76dfff;font-size:10px;cursor:pointer;padding:10px 0 0}.fx-section-head>.fx-text-action{padding:0}.fx-text-action:hover{color:#d9f9ff}
.fx-network-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.fx-network-strip>div{padding:10px;border-radius:15px;background:rgba(255,255,255,.025);border:1px solid rgba(77,227,255,.08)}.fx-network-strip span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.fx-network-strip strong{font-size:12px;margin-top:5px;display:block}.fx-empty-state{border:1px dashed rgba(77,227,255,.15);border-radius:16px;padding:18px;text-align:center;color:var(--muted);font-size:10px}.fx-empty-state b{display:block;color:var(--text);font-size:11px}.fx-empty-state small{display:block;margin-top:4px}

/* GA Views / Room canvas */
.ga-filterbar{border-radius:20px;padding:13px 14px;margin-bottom:14px;grid-template-columns:minmax(260px,1fr) auto auto auto;gap:12px}
.ga-search input,.device-filter-grid input,.device-filter-grid select{height:42px;border-radius:13px;background:rgba(3,11,19,.86);font-size:10px;border-color:rgba(77,227,255,.13)}
.filter-chip{font-size:9px;padding:7px 10px;min-height:34px;background:rgba(255,255,255,.025)}.filter-chip b{font-size:9px}.check-filter{font-size:9px}
.digital-twin-layout{grid-template-columns:230px minmax(0,1fr);gap:14px}
.deck-rail{border:1px solid rgba(77,227,255,.13);border-radius:23px;padding:14px;background:linear-gradient(145deg,rgba(11,26,41,.78),rgba(3,10,18,.92));box-shadow:0 20px 50px rgba(0,0,0,.18)}
.deck-rail>.eyebrow{padding:2px 4px 10px}.deck-tab{border-radius:16px!important;padding:13px 12px!important;margin:0 0 7px;background:rgba(255,255,255,.02)!important;border:1px solid transparent!important;transition:.16s ease}.deck-tab:hover{border-color:rgba(77,227,255,.18)!important;background:rgba(77,227,255,.04)!important}.deck-tab.active{border-color:rgba(77,227,255,.44)!important;background:linear-gradient(90deg,rgba(77,227,255,.12),rgba(61,130,255,.03))!important;box-shadow:inset 3px 0 0 var(--cyan),0 0 22px rgba(77,227,255,.05)}.deck-tab span{font-size:11px}.deck-tab small{font-size:8px;margin-top:4px}.deck-tab .health-stack{height:5px;margin-top:8px}
.fx-ga-overview,.fx-room-canvas-panel{border:1px solid rgba(77,227,255,.13);border-radius:26px;padding:20px;background:linear-gradient(145deg,rgba(11,27,44,.80),rgba(3,10,18,.93));box-shadow:0 24px 60px rgba(0,0,0,.20)}
.fx-ga-titlebar,.fx-canvas-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.fx-ga-titlebar h2,.fx-canvas-head h2{font-size:27px;margin:5px 0 5px}.fx-ga-titlebar p,.fx-canvas-head p{font-size:10px;line-height:1.55;color:var(--muted);max-width:620px}
.ga-stats{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.ga-stats span{font-size:9px;border-radius:999px;padding:6px 9px;background:rgba(255,255,255,.025);border:1px solid rgba(77,227,255,.11);color:#90adbf}
.fx-ga-yacht{height:230px;border:1px solid rgba(77,227,255,.12);border-radius:22px;background:radial-gradient(circle at 50% 35%,rgba(52,135,207,.14),transparent 45%),linear-gradient(180deg,rgba(7,25,42,.65),rgba(3,11,19,.84));margin:16px 0;position:relative;overflow:hidden}.fx-ga-yacht svg{width:100%;height:100%;filter:drop-shadow(0 0 18px rgba(77,227,255,.16))}.fx-ga-yacht:after{content:"";position:absolute;left:10%;right:10%;bottom:22px;height:32px;background:radial-gradient(ellipse,rgba(77,227,255,.15),transparent 65%);filter:blur(11px)}
.fx-ga-callout{position:absolute;font-size:9px;color:#8fb3c8}.fx-ga-callout b{display:block;color:#dffaff;font-size:10px}.fx-ga-callout span{font-size:8px;color:#69e8b2}.fx-ga-callout.c1{left:19%;top:44%}.fx-ga-callout.c2{left:59%;top:25%}.fx-ga-callout.c3{right:11%;top:44%;text-align:right}
.fx-deck-stack{display:grid;gap:10px}.fx-ga-deck{width:100%;display:grid;grid-template-columns:180px minmax(260px,1fr) 180px;gap:18px;align-items:center;border:1px solid rgba(77,227,255,.11);border-radius:20px;background:rgba(255,255,255,.024);padding:13px 15px;color:var(--text);text-align:left;cursor:pointer;transition:.16s ease}.fx-ga-deck:hover{border-color:rgba(77,227,255,.38);transform:translateY(-1px);box-shadow:0 14px 32px rgba(0,0,0,.16)}.fx-ga-deck.attention{border-color:rgba(255,196,95,.20)}.fx-ga-deck-copy h3{font-size:14px;margin:4px 0}.fx-ga-deck-copy small,.fx-ga-deck-health small{font-size:8px;color:var(--muted)}.fx-ga-deck-health{text-align:right}.fx-ga-deck-health strong{font-size:22px;display:block}.fx-ga-deck-health span{font-size:9px;color:#9ab7c8;display:block;margin:2px 0 4px}
.fx-deck-plan{height:58px;position:relative;border:1px solid rgba(77,227,255,.13);border-radius:999px;background:linear-gradient(90deg,rgba(77,227,255,.025),rgba(61,130,255,.055),rgba(77,227,255,.02));overflow:hidden}.fx-deck-plan:before,.fx-deck-plan:after,.fx-deck-plan>span{content:"";position:absolute;border:1px solid rgba(77,227,255,.13);border-radius:999px;top:8px;bottom:8px}.fx-deck-plan:before{left:8%;right:8%}.fx-deck-plan:after{left:27%;right:27%}.fx-deck-plan>span:nth-child(1){left:16%;width:14%}.fx-deck-plan>span:nth-child(2){left:42%;width:12%}.fx-deck-plan>span:nth-child(3){right:14%;width:16%}.fx-deck-node{position:absolute;width:10px;height:10px;border-radius:50%;top:24px;z-index:3}.fx-deck-node.n1{left:24%}.fx-deck-node.n2{left:52%}.fx-deck-node.n3{right:20%}.fx-deck-node.ok{background:var(--green);box-shadow:0 0 9px var(--green)}.fx-deck-node.warn{background:var(--amber);box-shadow:0 0 9px var(--amber)}.fx-deck-node.bad{background:var(--red);box-shadow:0 0 9px var(--red)}.fx-deck-node.unknown{background:#69808f;box-shadow:0 0 8px #69808f}
.ga-workspace{grid-template-columns:minmax(0,1fr) 350px;gap:14px}.area-inspector{border-radius:24px;padding:16px;max-height:760px}.area-inspector-head h3{font-size:18px}.area-inspector.empty{min-height:420px}.area-inspector.empty b{font-size:13px}.area-inspector.empty p{font-size:10px}.area-empty-icon{font-size:40px}.area-health-counts{font-size:8px}.area-note{font-size:9px}.inspector-title b{font-size:10px}.inspector-title span{font-size:9px}.area-device{border-radius:12px;padding:9px}.area-device b{font-size:10px}.area-device small{font-size:8px}.context-device{border-radius:13px;padding:10px}.context-device b{font-size:10px}.context-device small{font-size:8px}
.fx-room-canvas{position:relative;margin-top:16px;border:1px solid rgba(77,227,255,.11);border-radius:26px;padding:26px;background:radial-gradient(circle at 50% 50%,rgba(43,114,180,.10),transparent 50%),linear-gradient(rgba(77,227,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(77,227,255,.022) 1px,transparent 1px),rgba(2,9,16,.45);background-size:auto,36px 36px,36px 36px,auto;min-height:500px;overflow:hidden}.fx-room-canvas-outline{position:absolute;left:5%;right:5%;top:8%;bottom:8%;border:1px solid rgba(77,227,255,.20);border-radius:45% 45% 30% 30% / 24% 24% 18% 18%;box-shadow:inset 0 0 60px rgba(77,227,255,.025);pointer-events:none}.fx-room-canvas-outline:before{content:"";position:absolute;left:50%;top:3%;bottom:3%;width:1px;background:rgba(77,227,255,.08)}
.ga-grid{position:relative;z-index:2;gap:10px;min-height:430px;align-content:center}.ga-room{border-radius:17px;padding:12px;background:linear-gradient(145deg,rgba(13,34,51,.90),rgba(4,13,22,.96));border-color:rgba(77,227,255,.18);box-shadow:0 12px 30px rgba(0,0,0,.18);min-height:104px;transition:.16s ease}.ga-room:hover{border-color:rgba(77,227,255,.75);transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.22),0 0 24px rgba(77,227,255,.05)}.ga-room.attention{border-color:rgba(255,196,95,.34)}.ga-room.selected{border-color:var(--cyan);box-shadow:0 0 0 1px rgba(77,227,255,.2),0 0 28px rgba(77,227,255,.09)}.ga-room-top{font-size:8px}.ga-room strong{font-size:11px;margin:8px 0 4px}.ga-room small{font-size:8px}.fx-room-icon{font-size:16px;color:#7bdfff;margin-top:7px}.room-status-line{font-size:7px!important}.health-stack{height:7px;border-radius:999px;background:#132330}.ga-foot-cards{margin-top:14px!important}.ga-foot-cards .card{border-radius:20px}

/* Devices / filters */
.device-filter-panel{border-radius:22px;padding:15px;margin-bottom:14px}.filter-summary{font-size:9px}.device-filter-grid{gap:9px}.device-filter-grid button{min-height:42px}.editor-banner{border-radius:16px;padding:12px 14px;font-size:10px}.editor-banner b{font-size:10px}.editor-banner span{font-size:9px}

/* Network / WAN / engineering panels */
.topology{border-radius:24px;border-color:rgba(77,227,255,.13);background:radial-gradient(circle at 50% 20%,rgba(77,227,255,.08),transparent 35%),linear-gradient(rgba(77,227,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(77,227,255,.03) 1px,transparent 1px),#030a11;background-size:auto,34px 34px,34px 34px,auto;box-shadow:inset 0 0 80px rgba(26,99,160,.04)}
.topo-node{border-radius:16px;padding:12px;background:linear-gradient(145deg,rgba(15,39,61,.95),rgba(5,15,26,.98));box-shadow:0 16px 34px rgba(0,0,0,.26)}.topo-node b{font-size:10px}.topo-node small{font-size:8px}.topo-line{stroke-width:2;filter:drop-shadow(0 0 5px rgba(94,220,255,.2))}.topo-label{font-size:8px}
.mode-card,.legal-card{border-radius:18px;padding:16px}.mode-card b,.legal-card b{font-size:11px}.mode-card p,.legal-card p{font-size:9px}
.alert{border-radius:15px;padding:12px 14px;font-size:9px}

/* Modal / editors */
.modal{background:rgba(0,3,7,.78);backdrop-filter:blur(8px)}
.modal-card{border-radius:24px;background:linear-gradient(145deg,rgba(11,26,41,.98),rgba(3,10,18,.99));border-color:rgba(77,227,255,.18);padding:22px;box-shadow:0 40px 120px rgba(0,0,0,.64)}
.modal h2{font-size:21px}.form-grid label,.modal label{font-size:9px}.form-grid input,.form-grid select,.form-grid textarea,.modal input,.modal select,.modal textarea{border-radius:12px;padding:10px;font-size:10px;background:rgba(3,11,19,.88);border-color:rgba(77,227,255,.13)}.info-box{border-radius:17px;padding:14px}.info-box h4{font-size:10px}.asset-chip{font-size:8px;padding:5px 8px;background:rgba(77,227,255,.04)}.kv{font-size:10px;gap:8px}

/* Login */
.login-screen{background:radial-gradient(circle at 50% 8%,rgba(45,164,255,.18),transparent 32%),linear-gradient(145deg,#010408,#06111c 55%,#02060b)}
.login-screen:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(77,227,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(77,227,255,.035) 1px,transparent 1px);background-size:54px 54px;opacity:.45}.login-glow{width:850px;height:850px;background:radial-gradient(circle,rgba(41,172,255,.17),transparent 67%)}
.login-card{width:440px;border-radius:28px;padding:34px;border-color:rgba(77,227,255,.20);background:linear-gradient(145deg,rgba(12,29,45,.88),rgba(3,10,17,.96));box-shadow:0 40px 120px rgba(0,0,0,.55),0 0 70px rgba(25,128,201,.05);backdrop-filter:blur(22px)}
.login-logo{width:200px}.product-title{font-size:25px;letter-spacing:.22em}.product-sub{font-size:10px;line-height:1.5;margin:9px 0 26px}.login-card label{font-size:10px;margin:13px 0}.login-card input{height:48px;border-radius:14px;padding:0 14px;background:rgba(3,11,19,.86);border-color:rgba(77,227,255,.16)}.login-card input:focus{border-color:rgba(77,227,255,.52);box-shadow:0 0 0 3px rgba(77,227,255,.05)}.wide{padding:14px}.login-foot{font-size:9px}.error-text{font-size:9px}

/* Scrollbars */
*{scrollbar-color:rgba(85,135,164,.45) rgba(2,8,14,.55);scrollbar-width:thin}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:rgba(2,8,14,.6)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(72,126,159,.65),rgba(43,84,111,.65));border-radius:999px;border:2px solid rgba(2,8,14,.6)}

/* Light theme remains functional but futuristic FX is intentionally dark-first. */
html[data-theme="light"] body{background:#eaf2f7;color:#102333}
html[data-theme="light"] .fx-hero-card,html[data-theme="light"] .fx-health-panel,html[data-theme="light"] .fx-panel,html[data-theme="light"] .fx-ga-overview,html[data-theme="light"] .fx-room-canvas-panel{background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(233,244,250,.96));color:#102333}

@media(max-width:1450px){
  .app{grid-template-columns:260px minmax(0,1fr)}
  .sidebar nav button{font-size:12px;padding:10px 11px}.brand>img{width:50px;height:50px}.brand .wordmark{width:112px}
  .fx-health-grid{grid-template-columns:130px repeat(3,minmax(110px,1fr))}.fx-status-tile{min-height:105px}.fx-health-ring{width:108px;height:108px}
  .fx-ga-deck{grid-template-columns:150px minmax(220px,1fr) 140px}
}
@media(max-width:1180px){
  .app{grid-template-columns:220px minmax(0,1fr)}
  .content{padding:20px}.global-search{margin-left:8px}.fx-command-grid{grid-template-columns:1fr}.fx-health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fx-health-ring{grid-column:span 1}.digital-twin-layout{grid-template-columns:1fr}.deck-rail{display:flex;gap:8px;overflow-x:auto}.deck-rail>.eyebrow{display:none}.deck-tab{min-width:170px;margin:0}.ga-workspace{grid-template-columns:1fr}.area-inspector{max-height:none}.fx-ga-deck{grid-template-columns:140px minmax(180px,1fr) 130px}
}
@media(max-width:880px){
  body{overflow:auto}.app{display:block;height:auto}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid rgba(77,227,255,.16)}.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-spacer,.agent-mini{display:none}main{display:block}.topbar{position:sticky;top:0;z-index:20;flex-wrap:wrap;height:auto}.global-search{order:3;flex-basis:100%;max-width:none;margin:0}.content{padding:16px}.fx-hero-card{min-height:390px}.fx-hero-meta{position:relative;right:auto;top:auto;text-align:left;margin-top:12px}.fx-yacht-stage{height:210px}.fx-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-health-ring{grid-column:span 2}.fx-ga-titlebar,.fx-canvas-head{display:block}.ga-stats{justify-content:flex-start;margin-top:10px}.fx-ga-deck{grid-template-columns:1fr}.fx-deck-plan{order:3}.fx-ga-deck-health{text-align:left}.ga-filterbar{grid-template-columns:1fr}.device-filter-grid{grid-template-columns:1fr}.page-head{display:block}.head-actions{margin-top:12px;justify-content:flex-start;flex-wrap:wrap}.grid.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ========================================================================== */
/* MAVIT SUPERVISOR — U1 NETWORK CONSOLE                                      */
/* UniFi-inspired visual language: clean, quiet, information-dense,            */
/* low-glow surfaces, neutral slate, restrained blue accent.                   */
/* Existing application structure, IDs and JavaScript behavior are unchanged. */
/* ========================================================================== */

:root{
  --bg:#f4f6f8;
  --panel:#ffffff;
  --panel2:#f8fafc;
  --panel3:#eef2f6;
  --line:#e2e8f0;
  --line2:#cbd5e1;
  --text:#16212d;
  --muted:#6b7a8b;
  --cyan:#1584ff;
  --blue:#1578e8;
  --green:#20b77a;
  --amber:#e9a23b;
  --red:#e25361;
  --violet:#7a6be8;
  --shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.05);
  --u1-sidebar:#111923;
  --u1-sidebar2:#0d141d;
  --u1-sidebar-line:rgba(255,255,255,.075);
  --u1-blue:#1677ff;
  --u1-blue-soft:#eaf3ff;
  --u1-hover:#f4f8fc;
  --u1-card-radius:12px;
}

html,body{background:var(--bg)!important;color:var(--text)!important;font-size:15px}
body{
  background-image:none!important;
  letter-spacing:0;
}
body:before{display:none!important}

/* Shell */
.app{grid-template-columns:244px minmax(0,1fr)!important;background:var(--bg)}
.sidebar{
  padding:14px 12px!important;
  background:linear-gradient(180deg,var(--u1-sidebar),var(--u1-sidebar2))!important;
  border-right:1px solid rgba(0,0,0,.28)!important;
  box-shadow:none!important;
}
.brand{padding:6px 8px 15px!important;gap:10px!important}
.brand>img{width:38px!important;height:38px!important;border-radius:9px!important;box-shadow:none!important}
.brand .wordmark{width:96px!important;filter:brightness(0) invert(1) opacity(.96)!important}
.brand span{font-size:9px!important;letter-spacing:.19em!important;color:#91a2b5!important;margin-top:1px!important}
.tenant-card{
  padding:11px 12px!important;
  margin-bottom:10px!important;
  border-radius:10px!important;
  background:#17222f!important;
  border:1px solid var(--u1-sidebar-line)!important;
  box-shadow:none!important;
}
.tenant-card .eyebrow{color:#7e91a5!important}
.tenant-card select{font-size:12px!important;color:#f3f6f9!important;margin-top:4px!important}
.site-meta{margin-top:8px!important;gap:5px!important}
.nav-label{padding:13px 10px 5px!important;color:#607287!important;font-size:8px!important;letter-spacing:.13em!important}
.sidebar nav{gap:2px!important}
.sidebar nav button{
  padding:9px 10px!important;
  border-radius:7px!important;
  color:#9aaabc!important;
  font-size:12px!important;
  gap:9px!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
}
.sidebar nav button i{width:18px!important;color:#718499!important;font-size:11px!important}
.sidebar nav button:hover{background:#172331!important;color:#eef4f8!important;border-color:rgba(255,255,255,.04)!important;box-shadow:none!important}
.sidebar nav button.active{
  background:#1b2a3b!important;
  color:#fff!important;
  border-color:rgba(73,149,255,.22)!important;
  box-shadow:none!important;
}
.sidebar nav button.active i{color:#5ca2ff!important}
.agent-mini{
  border-radius:9px!important;
  padding:10px!important;
  background:#151f2b!important;
  border-color:var(--u1-sidebar-line)!important;
  box-shadow:none!important;
}
.agent-mini>div:first-child{font-size:9px!important}.agent-mini small{font-size:8px!important}.agent-row{font-size:8px!important}
.sidebar-version{font-size:8px!important;color:#5d7085!important;padding-top:9px!important}

/* Top bar */
main{grid-template-rows:62px minmax(0,1fr)!important;background:var(--bg)}
.topbar{
  padding:8px 20px!important;
  gap:14px!important;
  background:rgba(255,255,255,.96)!important;
  color:var(--text)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:none!important;
  backdrop-filter:blur(12px)!important;
}
.topbar .eyebrow{color:#8b98a7!important;font-size:8px!important;letter-spacing:.1em!important}
.topbar h2{font-size:15px!important;margin-top:2px!important;color:#1e2936!important}
.global-search{max-width:610px!important;margin-left:14px!important}
.global-search>span{left:12px!important;top:7px!important;font-size:19px!important;color:#8694a3!important}
.global-search input{
  height:38px!important;
  border-radius:8px!important;
  padding-left:36px!important;
  font-size:11px!important;
  color:#263442!important;
  background:#f6f8fa!important;
  border:1px solid #e1e6eb!important;
  box-shadow:none!important;
}
.global-search input:focus{background:#fff!important;border-color:#80b6ff!important;box-shadow:0 0 0 3px rgba(22,119,255,.10)!important}
.suggestions{background:#fff!important;border-color:#dce3ea!important;box-shadow:0 12px 32px rgba(15,23,42,.12)!important}
.suggestion:hover{background:#f4f8fc!important}.suggestion b{color:#22313f!important}.suggestion small{color:#718093!important}.suggestion mark{color:var(--u1-blue)!important}
.top-actions{gap:6px!important}
.ghost,.danger-ghost,.primary,.secondary{
  border-radius:7px!important;
  padding:8px 11px!important;
  font-size:10px!important;
  box-shadow:none!important;
  transition:.12s ease!important;
}
.ghost,.secondary{background:#fff!important;border:1px solid #dce3ea!important;color:#39495a!important}
.ghost:hover,.secondary:hover{background:#f7f9fb!important;border-color:#c8d2dd!important;box-shadow:none!important}
.primary{background:var(--u1-blue)!important;border-color:var(--u1-blue)!important;color:white!important;box-shadow:none!important}
.primary:hover{background:#086ce7!important}
.danger-ghost{background:#fff!important;border-color:#f0c8cd!important;color:#c43e4e!important}
.user-badge{width:34px!important;height:34px!important;font-size:10px!important;background:#eef4fb!important;color:#31506e!important;border-color:#d9e3ec!important;box-shadow:none!important}

/* Main content */
.content{padding:20px 22px 48px!important;background:#f4f6f8!important}
.page-head{margin-bottom:14px!important;align-items:center!important}
.page-head h1{font-size:24px!important;color:#17212b!important;letter-spacing:-.02em!important;margin:0!important}
.page-head p{font-size:10px!important;color:#748292!important;line-height:1.5!important;margin-top:4px!important}
.head-actions{gap:6px!important}
.eyebrow{font-size:8px!important;letter-spacing:.11em!important;color:#8996a5!important}
.pill{
  font-size:8px!important;
  padding:4px 7px!important;
  letter-spacing:.03em!important;
  border-radius:999px!important;
  background:#f4f7fa!important;
  color:#657587!important;
  border:1px solid #dfe6ed!important;
}
.pill.cyan{color:#0d6fda!important;border-color:#bfdbff!important;background:#edf6ff!important}
.pill.green{color:#178158!important;border-color:#bde9d8!important;background:#eefbf6!important}
.pill.amber{color:#a86a14!important;border-color:#f2d5a7!important;background:#fff8eb!important}
.pill.red{color:#bd4450!important;border-color:#f3c4ca!important;background:#fff3f5!important}

.card,.kpi,.ga-panel,.area-inspector,.device-filter-panel,.ga-filterbar,.mode-card,.legal-card,.info-box,.module-card{
  background:#fff!important;
  color:#1e2935!important;
  border:1px solid #e0e6ec!important;
  box-shadow:var(--shadow)!important;
  backdrop-filter:none!important;
}
.card{border-radius:var(--u1-card-radius)!important;padding:14px!important}
.card h3{font-size:12px!important;color:#263442!important}
.card p{font-size:9px!important;color:#748292!important;line-height:1.55!important}
.card-head{margin-bottom:9px!important}
.grid{gap:10px!important}.grid.kpis{gap:9px!important}
.kpi{border-radius:10px!important;padding:13px 14px!important;min-height:86px!important;background:#fff!important;overflow:hidden!important}
.kpi:after{display:none!important}
.kpi label{font-size:8px!important;color:#7c8997!important;letter-spacing:.06em!important}
.kpi strong{font-size:24px!important;color:#17212b!important;margin-top:6px!important}
.kpi small{font-size:8px!important;color:#8a96a3!important;margin-top:3px!important}
.row-item{border-bottom-color:#edf1f4!important;padding:8px 0!important}.row-item b{font-size:10px!important;color:#2a3744!important}.row-item small{font-size:8px!important;color:#7a8897!important}.row-item .right{font-size:9px!important;color:#5f7183!important}
.table-wrap{border-radius:10px!important;border-color:#e0e6ec!important;box-shadow:var(--shadow)!important;background:#fff!important}
.table{background:#fff!important;color:#2a3744!important}
.table th{background:#f7f9fb!important;color:#758392!important;font-size:8px!important;padding:9px!important;border-bottom-color:#e0e6ec!important}
.table td{font-size:9px!important;padding:9px!important;border-bottom-color:#edf1f4!important}
.table tr:hover td{background:#f7fbff!important}
.status{font-size:8px!important;padding:3px 7px!important;background:#fff!important;border-color:#dfe5eb!important;color:#627183!important}
.status.accepted,.status.online{background:#effbf6!important;color:#1b845d!important;border-color:#c9eadc!important}
.status.needs_review,.status.offline{background:#fff4f5!important;color:#bc4653!important;border-color:#f0c8cd!important}
.status.imported{background:#fff8ec!important;color:#9f681a!important;border-color:#f0d8b2!important}
.progress{background:#edf1f4!important}.progress span{background:var(--u1-blue)!important}

/* Command Center — clean console layout */
.fx-command-shell{gap:12px!important}
.fx-hero-card,.fx-health-panel,.fx-panel{
  background:#fff!important;
  color:#1b2732!important;
  border:1px solid #e0e6ec!important;
  border-radius:12px!important;
  box-shadow:var(--shadow)!important;
  overflow:hidden!important;
}
.fx-hero-card{min-height:300px!important;padding:20px 22px 18px!important}
.fx-hero-card:before{background:linear-gradient(90deg,rgba(22,119,255,.06),transparent 55%)!important}
.fx-hero-copy{max-width:540px!important}
.fx-hero-copy h1{font-size:30px!important;color:#17212b!important;margin:7px 0 8px!important}
.fx-live-line{font-size:10px!important;color:#38516a!important}.fx-live-line span:last-child{color:#758392!important}
.fx-hero-copy p{color:#758392!important;font-size:9px!important}
.fx-hero-meta{color:#35495c!important}.fx-hero-meta strong{color:#17212b!important}.fx-hero-meta span{color:#758392!important}
.fx-yacht-stage{height:160px!important;opacity:.90!important}
.fx-yacht-hull{fill:rgba(22,119,255,.035)!important;stroke:#4d8fda!important;stroke-width:2!important}
.fx-yacht-deck,.fx-yacht-mast{stroke:#7aa9da!important;stroke-width:1.5!important}
.fx-ga-point.ok{fill:#20b77a!important}.fx-ga-point.warn{fill:#e9a23b!important}.fx-ga-point.bad{fill:#e25361!important}
.fx-hero-bottom{border-top:1px solid #edf1f4!important;color:#8491a0!important;font-size:8px!important}
.fx-health-panel,.fx-panel{padding:15px!important}
.fx-section-head h3{font-size:11px!important;color:#2d3a47!important}.fx-section-head small{color:#8593a1!important}
.fx-health-grid{gap:8px!important}
.fx-health-ring{background:#fff!important;box-shadow:none!important;border:1px solid #e6ebef!important}
.fx-health-ring:before{background:conic-gradient(var(--green) var(--health-angle),#edf1f4 0)!important;filter:none!important}
.fx-health-ring-inner{background:#fff!important;border-color:#eef1f4!important}.fx-health-ring-inner strong{color:#17212b!important}.fx-health-ring-inner span{color:#7b8998!important}
.fx-status-tile{background:#fafbfd!important;border:1px solid #e4e9ee!important;border-radius:10px!important;min-height:94px!important;box-shadow:none!important}
.fx-status-tile strong{color:#17212b!important}.fx-status-tile span{color:#7f8c99!important}
.fx-status-dot.online{background:var(--green)!important;box-shadow:none!important}.fx-status-dot.degraded{background:var(--amber)!important;box-shadow:none!important}.fx-status-dot.offline{background:var(--red)!important;box-shadow:none!important}.fx-status-dot.affected{background:var(--violet)!important;box-shadow:none!important}.fx-status-dot.unknown{background:#8a98a6!important;box-shadow:none!important}
.fx-command-grid{gap:10px!important}
.fx-alarm-row,.fx-agent-row,.fx-event-row{border-bottom-color:#edf1f4!important;padding:9px 0!important}.fx-alarm-row b,.fx-agent-row b,.fx-event-row b{font-size:10px!important;color:#2b3946!important}.fx-alarm-row small,.fx-agent-row small,.fx-event-row small{font-size:8px!important;color:#7b8996!important}
.fx-alert-icon,.fx-event-icon{width:30px!important;height:30px!important;border-radius:8px!important;background:#f6f8fa!important;border-color:#e5eaef!important;box-shadow:none!important}.fx-alert-icon.offline{color:#d74756!important;background:#fff5f6!important}.fx-alert-icon.degraded{color:#bf791f!important;background:#fff8ed!important}.fx-event-icon{color:#1474dd!important;background:#f0f6ff!important}
.fx-count-badge{height:25px!important;min-width:25px!important;font-size:9px!important}.fx-count-badge.danger{color:#bd4350!important;border-color:#f0c6cc!important;background:#fff3f5!important}
.fx-text-action{color:#1474dd!important;font-size:9px!important}.fx-network-strip{gap:7px!important}.fx-network-strip>div{padding:9px!important;border-radius:9px!important;background:#fafbfd!important;border-color:#e5eaef!important}.fx-network-strip span{font-size:7px!important;color:#84919e!important}.fx-network-strip strong{font-size:11px!important;color:#263442!important}
.fx-empty-state{border-color:#dfe6ec!important;color:#81909f!important;background:#fafbfd!important}.fx-empty-state b{color:#3b4a58!important}

/* GA / Areas — Site Manager inspired */
.ga-filterbar{border-radius:11px!important;padding:11px 12px!important;margin-bottom:10px!important;gap:8px!important;background:#fff!important}
.ga-search input,.device-filter-grid input,.device-filter-grid select,.toolbar input,.toolbar select{
  height:36px!important;border-radius:7px!important;background:#fff!important;color:#334253!important;font-size:9px!important;border:1px solid #dde4ea!important;box-shadow:none!important
}
.ga-search input:focus,.device-filter-grid input:focus,.device-filter-grid select:focus,.toolbar input:focus,.toolbar select:focus{border-color:#8fbeff!important;box-shadow:0 0 0 3px rgba(22,119,255,.08)!important}
.filter-chip{font-size:8px!important;padding:6px 9px!important;min-height:31px!important;background:#f7f9fb!important;border-color:#e2e8ee!important;color:#607183!important}.filter-chip.active{background:#edf5ff!important;color:#126ed6!important;border-color:#bfdbff!important}
.check-filter{font-size:8px!important;color:#657587!important}
.digital-twin-layout{grid-template-columns:210px minmax(0,1fr)!important;gap:10px!important}
.deck-rail{border:1px solid #e0e6ec!important;border-radius:11px!important;padding:10px!important;background:#fff!important;box-shadow:var(--shadow)!important}
.deck-tab{border-radius:8px!important;padding:10px!important;margin-bottom:4px!important;background:#fff!important;color:#435261!important;border:1px solid transparent!important;box-shadow:none!important}
.deck-tab:hover{background:#f5f8fb!important;border-color:#e4e9ee!important}.deck-tab.active{background:#edf5ff!important;border-color:#cfe2fb!important;box-shadow:none!important;color:#126ed6!important}.deck-tab span{font-size:10px!important}.deck-tab small{font-size:7px!important;color:#8793a0!important}.deck-tab .health-stack{height:4px!important;margin-top:6px!important}
.fx-ga-overview,.fx-room-canvas-panel{border:1px solid #e0e6ec!important;border-radius:12px!important;padding:16px!important;background:#fff!important;box-shadow:var(--shadow)!important;color:#263442!important}
.fx-ga-titlebar h2,.fx-canvas-head h2{font-size:22px!important;color:#17212b!important;margin:4px 0!important}.fx-ga-titlebar p,.fx-canvas-head p{font-size:9px!important;color:#758392!important}.ga-stats span{font-size:8px!important;border-radius:999px!important;padding:5px 8px!important;background:#f6f8fa!important;border-color:#e1e7ec!important;color:#68798a!important}
.fx-ga-yacht{height:190px!important;border:1px solid #e3e8ed!important;border-radius:10px!important;background:linear-gradient(180deg,#f8fbff,#f2f6fa)!important;margin:12px 0!important}.fx-ga-yacht svg{filter:none!important}.fx-ga-yacht:after{display:none!important}.fx-ga-callout{color:#64778a!important}.fx-ga-callout b{color:#334658!important}.fx-ga-callout span{color:#1f956a!important}
.fx-deck-stack{gap:7px!important}.fx-ga-deck{grid-template-columns:165px minmax(220px,1fr) 160px!important;gap:14px!important;border:1px solid #e1e7ec!important;border-radius:10px!important;background:#fff!important;padding:11px 12px!important;color:#243341!important;box-shadow:none!important}.fx-ga-deck:hover{border-color:#b7d6fb!important;transform:none!important;box-shadow:0 2px 10px rgba(15,23,42,.05)!important;background:#fbfdff!important}.fx-ga-deck.attention{border-color:#edd6ad!important}.fx-ga-deck-copy h3{font-size:12px!important;color:#2a3947!important}.fx-ga-deck-copy small,.fx-ga-deck-health small{font-size:7px!important;color:#82909e!important}.fx-ga-deck-health strong{font-size:19px!important;color:#17212b!important}.fx-ga-deck-health span{font-size:8px!important;color:#677789!important}
.fx-deck-plan{height:48px!important;border:1px solid #dfe6ec!important;border-radius:999px!important;background:#f8fafc!important}.fx-deck-plan:before,.fx-deck-plan:after,.fx-deck-plan>span{border-color:#d7e0e8!important}.fx-deck-node{width:8px!important;height:8px!important;top:20px!important}.fx-deck-node.ok{background:var(--green)!important;box-shadow:none!important}.fx-deck-node.warn{background:var(--amber)!important;box-shadow:none!important}.fx-deck-node.bad{background:var(--red)!important;box-shadow:none!important}.fx-deck-node.unknown{background:#94a0ad!important;box-shadow:none!important}
.ga-workspace{gap:10px!important}.area-inspector{border-radius:11px!important;padding:13px!important;background:#fff!important}.area-inspector-head h3{font-size:15px!important;color:#263442!important}.area-device,.context-device{border-radius:8px!important;background:#fafbfd!important;border-color:#e5eaef!important}.area-device b,.context-device b{font-size:9px!important;color:#344354!important}.area-device small,.context-device small{font-size:7px!important;color:#7e8c9a!important}
.fx-room-canvas{margin-top:12px!important;border:1px solid #e3e8ed!important;border-radius:10px!important;padding:20px!important;background:linear-gradient(#edf2f6 1px,transparent 1px),linear-gradient(90deg,#edf2f6 1px,transparent 1px),#f9fbfc!important;background-size:32px 32px,32px 32px,auto!important;min-height:460px!important}.fx-room-canvas-outline{border-color:#cbd9e6!important;box-shadow:none!important}.fx-room-canvas-outline:before{background:#e3eaf0!important}.ga-grid{gap:8px!important;min-height:395px!important}.ga-room{border-radius:9px!important;padding:10px!important;background:#fff!important;border-color:#dfe6ec!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important;min-height:90px!important}.ga-room:hover{border-color:#93c3ff!important;transform:none!important;box-shadow:0 2px 10px rgba(15,23,42,.06)!important}.ga-room.attention{border-color:#e7c98e!important}.ga-room.selected{border-color:#6aaaff!important;box-shadow:0 0 0 2px rgba(22,119,255,.10)!important}.ga-room-top{font-size:7px!important}.ga-room strong{font-size:10px!important;color:#2e3d4b!important;margin:6px 0 3px!important}.ga-room small{font-size:7px!important;color:#7f8d9b!important}.fx-room-icon{font-size:14px!important;color:#4089dd!important;margin-top:6px!important}.health-stack{height:5px!important;background:#edf1f4!important}.ga-foot-cards .card{border-radius:11px!important}

/* Devices / network / engineering */
.device-filter-panel{border-radius:11px!important;padding:12px!important;margin-bottom:10px!important}.editor-banner{border-radius:8px!important;padding:10px 12px!important;background:#fff8ea!important;border-color:#f0d49f!important;color:#8a5d16!important}.editor-banner b{font-size:9px!important}.editor-banner span{font-size:8px!important}
.topology{border-radius:11px!important;border-color:#e0e6ec!important;background:linear-gradient(#e9eef3 1px,transparent 1px),linear-gradient(90deg,#e9eef3 1px,transparent 1px),#f9fbfc!important;background-size:28px 28px,28px 28px,auto!important;box-shadow:var(--shadow)!important}
.topo-node{border-radius:8px!important;padding:9px!important;background:#fff!important;border-color:#ccd7e1!important;color:#263442!important;box-shadow:0 1px 3px rgba(15,23,42,.06)!important}.topo-node:hover{border-color:#70adf7!important}.topo-node b{font-size:9px!important}.topo-node small{font-size:7px!important;color:#7d8c9a!important}.topo-node.firewall{border-color:#c7bff1!important}.topo-node.wan{border-color:#e6d0ad!important}.topo-line{stroke:#478fdc!important;stroke-width:1.5!important;filter:none!important}.topo-line.secondary{stroke:#8175d8!important}.topo-line.wan{stroke:#d39944!important}.topo-label{fill:#5f7183!important;font-size:7px!important;stroke:#f9fbfc!important;stroke-width:4px!important}
.mode-card,.legal-card{border-radius:10px!important;padding:13px!important}.alert{border-radius:8px!important;padding:10px 12px!important}

/* Modal and forms */
.modal{background:rgba(20,30,40,.38)!important;backdrop-filter:blur(5px)!important}.modal-card{border-radius:13px!important;background:#fff!important;color:#263442!important;border-color:#dfe5eb!important;padding:18px!important;box-shadow:0 24px 70px rgba(15,23,42,.22)!important}.modal h2{font-size:18px!important;color:#18232e!important}.form-grid label,.modal label{font-size:8px!important;color:#6f7e8d!important}.form-grid input,.form-grid select,.form-grid textarea,.modal input,.modal select,.modal textarea{border-radius:7px!important;padding:9px!important;font-size:9px!important;color:#2d3c4b!important;background:#fff!important;border-color:#dce3e9!important}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#89baff!important;box-shadow:0 0 0 3px rgba(22,119,255,.08)!important}.info-box{border-radius:9px!important;padding:12px!important}.asset-chip{font-size:7px!important;padding:4px 7px!important;background:#f1f6fb!important;color:#456177!important}.kv{font-size:9px!important}

/* Login */
.login-screen{background:#f4f6f8!important;color:#17212b!important}.login-screen:before{display:none!important}.login-glow{display:none!important}.login-card{width:410px!important;border-radius:14px!important;padding:30px!important;border:1px solid #e0e6ec!important;background:#fff!important;box-shadow:0 16px 50px rgba(15,23,42,.10)!important;backdrop-filter:none!important}.login-logo{width:175px!important;filter:none!important}.product-title{font-size:21px!important;letter-spacing:.16em!important;color:#263442!important}.product-sub{font-size:9px!important;color:#7b8997!important;line-height:1.5!important;margin:8px 0 22px!important}.login-card label{font-size:9px!important;color:#5e6f80!important;margin:11px 0!important}.login-card input{height:42px!important;border-radius:7px!important;padding:0 12px!important;background:#fff!important;color:#263442!important;border-color:#dce3e9!important}.login-card input:focus{border-color:#83b5fa!important;box-shadow:0 0 0 3px rgba(22,119,255,.08)!important}.wide{padding:11px!important}.login-foot{font-size:8px!important;color:#8995a2!important}.error-text{font-size:8px!important;color:#cf4756!important}

/* Scrollbars */
*{scrollbar-color:#c1cbd5 #eef2f5!important;scrollbar-width:thin}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#eef2f5!important}::-webkit-scrollbar-thumb{background:#c1cbd5!important;border-radius:999px!important;border:2px solid #eef2f5!important}

/* Dark theme: same clean console geometry, dark neutral surfaces rather than neon. */
html[data-theme="dark"]{
  --bg:#0d1117;
  --panel:#141a22;
  --panel2:#171f28;
  --panel3:#1d2732;
  --line:#283340;
  --line2:#344251;
  --text:#e8edf2;
  --muted:#8493a3;
  --shadow:0 1px 2px rgba(0,0,0,.20),0 8px 24px rgba(0,0,0,.18);
  --u1-hover:#18212a;
}
html[data-theme="dark"] body{background:#0d1117!important;color:#e8edf2!important}
html[data-theme="dark"] main,html[data-theme="dark"] .content{background:#0d1117!important}
html[data-theme="dark"] .topbar{background:rgba(18,24,31,.96)!important;border-bottom-color:#28323d!important;color:#e8edf2!important}
html[data-theme="dark"] .topbar h2{color:#e8edf2!important}
html[data-theme="dark"] .global-search input{background:#171d25!important;color:#e8edf2!important;border-color:#2b3641!important}
html[data-theme="dark"] .suggestions{background:#151b23!important;border-color:#2b3641!important}
html[data-theme="dark"] .suggestion:hover{background:#1b2530!important}.suggestion b{color:inherit}
html[data-theme="dark"] .ghost,html[data-theme="dark"] .secondary{background:#181f27!important;color:#d9e1e8!important;border-color:#303b46!important}
html[data-theme="dark"] .danger-ghost{background:#181f27!important}
html[data-theme="dark"] .user-badge{background:#1a2632!important;color:#bdd1e4!important;border-color:#324253!important}
html[data-theme="dark"] .page-head h1{color:#edf2f6!important}
html[data-theme="dark"] .pill{background:#171f27!important;border-color:#303b46!important;color:#9cabb9!important}
html[data-theme="dark"] .pill.cyan{background:#13263c!important;border-color:#28517f!important;color:#74b5ff!important}
html[data-theme="dark"] .pill.green{background:#102a22!important;border-color:#285443!important;color:#69d8aa!important}
html[data-theme="dark"] .pill.amber{background:#2b2215!important;border-color:#5a4627!important;color:#efbe70!important}
html[data-theme="dark"] .pill.red{background:#2c181d!important;border-color:#5c2f37!important;color:#f48793!important}
html[data-theme="dark"] .card,html[data-theme="dark"] .kpi,html[data-theme="dark"] .ga-panel,html[data-theme="dark"] .area-inspector,html[data-theme="dark"] .device-filter-panel,html[data-theme="dark"] .ga-filterbar,html[data-theme="dark"] .mode-card,html[data-theme="dark"] .legal-card,html[data-theme="dark"] .info-box,html[data-theme="dark"] .module-card{background:#141a22!important;color:#e7edf2!important;border-color:#283340!important}
html[data-theme="dark"] .card h3,html[data-theme="dark"] .kpi strong{color:#edf2f6!important}
html[data-theme="dark"] .table-wrap{background:#141a22!important;border-color:#283340!important}.table{background:transparent!important}
html[data-theme="dark"] .table{color:#d9e1e8!important}.table th{background:#19212a!important;color:#8998a7!important;border-bottom-color:#2a3540!important}.table td{border-bottom-color:#232d37!important}.table tr:hover td{background:#18212a!important}
html[data-theme="dark"] .fx-hero-card,html[data-theme="dark"] .fx-health-panel,html[data-theme="dark"] .fx-panel,html[data-theme="dark"] .fx-ga-overview,html[data-theme="dark"] .fx-room-canvas-panel{background:#141a22!important;color:#e7edf2!important;border-color:#283340!important}
html[data-theme="dark"] .fx-hero-card:before{background:linear-gradient(90deg,rgba(22,119,255,.08),transparent 55%)!important}
html[data-theme="dark"] .fx-hero-copy h1,html[data-theme="dark"] .fx-hero-meta strong,html[data-theme="dark"] .fx-section-head h3{color:#eef3f7!important}
html[data-theme="dark"] .fx-yacht-hull{fill:rgba(22,119,255,.05)!important;stroke:#4b82bd!important}.fx-yacht-deck,.fx-yacht-mast{stroke:#678dad!important}
html[data-theme="dark"] .fx-status-tile,html[data-theme="dark"] .fx-network-strip>div{background:#171e26!important;border-color:#283340!important}.fx-status-tile strong,.fx-network-strip strong{color:inherit!important}
html[data-theme="dark"] .fx-alert-icon,html[data-theme="dark"] .fx-event-icon{background:#18212a!important;border-color:#2a3540!important}
html[data-theme="dark"] .deck-rail,html[data-theme="dark"] .fx-ga-deck,html[data-theme="dark"] .area-inspector,html[data-theme="dark"] .ga-room{background:#141a22!important;border-color:#283340!important;color:#e1e7ec!important}
html[data-theme="dark"] .deck-tab{background:#141a22!important;color:#aab6c2!important}.deck-tab:hover{background:#18212a!important;border-color:#2d3945!important}.deck-tab.active{background:#17283b!important;border-color:#315a86!important;color:#77b7ff!important}
html[data-theme="dark"] .fx-ga-yacht{background:linear-gradient(180deg,#17202a,#121820)!important;border-color:#283340!important}
html[data-theme="dark"] .fx-ga-callout{color:#8999aa!important}.fx-ga-callout b{color:#cfd8e0!important}
html[data-theme="dark"] .fx-deck-plan{background:#181f27!important;border-color:#303b46!important}.fx-deck-plan:before,.fx-deck-plan:after,.fx-deck-plan>span{border-color:#35414d!important}
html[data-theme="dark"] .fx-room-canvas{background:linear-gradient(#232d37 1px,transparent 1px),linear-gradient(90deg,#232d37 1px,transparent 1px),#11171e!important;background-size:32px 32px,32px 32px,auto!important;border-color:#283340!important}.fx-room-canvas-outline{border-color:#33404d!important}.fx-room-canvas-outline:before{background:#26313c!important}
html[data-theme="dark"] .ga-room strong,.fx-ga-deck-copy h3,.fx-ga-deck-health strong{color:inherit!important}
html[data-theme="dark"] .ga-search input,html[data-theme="dark"] .device-filter-grid input,html[data-theme="dark"] .device-filter-grid select,html[data-theme="dark"] .toolbar input,html[data-theme="dark"] .toolbar select{background:#171e26!important;color:#dfe6ec!important;border-color:#303b46!important}
html[data-theme="dark"] .filter-chip{background:#171e26!important;border-color:#303b46!important;color:#9caab8!important}.filter-chip.active{background:#17283b!important;border-color:#315a86!important;color:#79b9ff!important}
html[data-theme="dark"] .topology{background:linear-gradient(#232d37 1px,transparent 1px),linear-gradient(90deg,#232d37 1px,transparent 1px),#11171e!important;background-size:28px 28px,28px 28px,auto!important;border-color:#283340!important}.topo-node{background:#171e26!important;border-color:#34414d!important;color:#e2e8ed!important}.topo-node small{color:#8c9aa8!important}.topo-label{fill:#91a0af!important;stroke:#11171e!important}
html[data-theme="dark"] .modal-card{background:#151b23!important;color:#e4eaef!important;border-color:#2d3843!important}.modal h2{color:#eef2f6!important}.form-grid input,.form-grid select,.form-grid textarea,.modal input,.modal select,.modal textarea{background:#171e26!important;color:#dfe6ec!important;border-color:#303b46!important}
html[data-theme="dark"] *{scrollbar-color:#36424e #171e26!important}html[data-theme="dark"] ::-webkit-scrollbar-track{background:#171e26!important}html[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#36424e!important;border-color:#171e26!important}

/* Login stays light for clear identity; dark preference applies after authentication. */

@media(max-width:1450px){
  .app{grid-template-columns:228px minmax(0,1fr)!important}
  .sidebar nav button{font-size:11px!important}.brand .wordmark{width:90px!important}.brand>img{width:36px!important;height:36px!important}
  .fx-ga-deck{grid-template-columns:145px minmax(190px,1fr) 140px!important}
}
@media(max-width:1180px){
  .app{grid-template-columns:210px minmax(0,1fr)!important}.content{padding:16px!important}.digital-twin-layout{grid-template-columns:1fr!important}.deck-rail{display:flex!important;gap:5px!important;overflow-x:auto!important}.deck-tab{min-width:155px!important;margin:0!important}.ga-workspace{grid-template-columns:1fr!important}.fx-ga-deck{grid-template-columns:135px minmax(180px,1fr) 125px!important}
}
@media(max-width:880px){
  .sidebar{border-bottom:1px solid #283340!important}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}.topbar{background:rgba(255,255,255,.98)!important}.content{padding:12px!important}.fx-ga-deck{grid-template-columns:1fr!important}.ga-filterbar{grid-template-columns:1fr!important}
  html[data-theme="dark"] .topbar{background:rgba(18,24,31,.98)!important}
}

/* ========================================================================== */
/* MAVIT Supervisor v0.6.6 · GA Foundation + Placement GA6                                  */
/* ========================================================================== */
.ga065-foundation-note{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
.ga065-foundation-note>div{display:grid;gap:3px}.ga065-foundation-note span:not(.pill){font-size:9px;color:var(--muted)}
.ga065-all-decks{display:grid;gap:16px}.ga065-deck-card,.ga065-dedicated-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.ga065-deck-card{padding:14px}.ga065-deck-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px}.ga065-deck-head h3{margin:2px 0 3px}.ga065-deck-head small{color:var(--muted);font-size:8px}.ga065-deck-head-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ga065-preview{position:relative;width:100%;min-height:130px;background:linear-gradient(180deg,rgba(6,13,23,.7),rgba(12,21,34,.92));border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:zoom-in;touch-action:manipulation}.ga065-preview img,.ga065-artboard>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none}.ga065-preview-hint{position:absolute;right:8px;bottom:7px;padding:4px 7px;border-radius:999px;background:rgba(4,9,16,.78);color:#c8d8e8;font-size:7px;border:1px solid rgba(255,255,255,.1);pointer-events:none}.ga065-no-ga{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:5px;color:var(--muted);background:linear-gradient(135deg,rgba(69,116,171,.08),transparent)}.ga065-no-ga b{color:var(--text);font-size:11px}.ga065-no-ga small{font-size:8px}.ga065-no-ga.hidden{display:none}
.ga065-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.ga065-area-shape{pointer-events:auto;cursor:pointer;vector-effect:non-scaling-stroke;stroke-width:4;transition:.15s ease;fill:rgba(113,142,166,.08);stroke:#72889a}.ga065-area-shape.healthy{stroke:#35c98c;fill:rgba(53,201,140,.10)}.ga065-area-shape.degraded{stroke:#e5a92f;fill:rgba(229,169,47,.12)}.ga065-area-shape.critical{stroke:#ea566c;fill:rgba(234,86,108,.13);filter:drop-shadow(0 0 4px rgba(234,86,108,.45))}.ga065-area-shape.unknown{stroke:#8798a9;fill:rgba(135,152,169,.06)}.ga065-area-shape:hover,.ga065-area-shape.selected{stroke:#4aa3ff;stroke-width:7;fill:rgba(74,163,255,.16);filter:drop-shadow(0 0 5px rgba(74,163,255,.4))}.ga065-area-shape.draft{stroke:#4aa3ff;stroke-dasharray:12 8;fill:rgba(74,163,255,.12);pointer-events:none}
.ga065-area-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:10px 12px;border-radius:11px;background:var(--panel-2);border:1px solid var(--line)}.ga065-area-summary h4{margin:2px 0}.ga065-area-summary small{font-size:8px;color:var(--muted)}.ga065-mini-stats{display:flex;gap:8px;flex-wrap:wrap}.ga065-mini-stats span{font-size:7px;padding:4px 6px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.ga065-breadcrumb{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:9px;color:var(--muted)}.ga065-dedicated-card{padding:12px}.ga065-view-toolbar,.ga065-designer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ga065-tools,.ga065-toolset{display:flex;gap:6px;flex-wrap:wrap}.ga065-designer-toolbar{padding:10px 12px;border:1px solid rgba(74,163,255,.28);background:rgba(74,163,255,.07);border-radius:12px}.ga065-designer-toolbar>div:first-child{display:grid;gap:3px}.ga065-designer-toolbar small{font-size:8px;color:var(--muted)}
.ga065-viewport{position:relative;height:min(70vh,760px);min-height:430px;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:radial-gradient(circle at 50% 45%,rgba(77,119,166,.13),transparent 48%),#07101b;cursor:grab;touch-action:none}.ga065-viewport:active{cursor:grabbing}.ga065-viewport.designer{cursor:crosshair}.ga065-transform{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.ga065-artboard{position:relative;width:min(1400px,82vw);min-width:780px;background:#0c1622;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 50px rgba(0,0,0,.45)}.ga065-artboard .ga065-overlay{pointer-events:auto}.ga065-help{display:flex;justify-content:space-between;gap:12px;padding-top:8px;color:var(--muted);font-size:7px}
.ga065-settings-card{margin-top:11px}.ga065-persistence{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 11px;margin-bottom:10px;border-radius:10px;background:rgba(229,169,47,.07);border:1px solid rgba(229,169,47,.18);font-size:8px}.ga065-persistence>span:last-child{color:var(--muted)}.ga065-deck-config-list{display:grid;gap:7px}.ga065-deck-config-row{display:grid;grid-template-columns:28px minmax(220px,1fr) auto auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.ga065-deck-config-row[draggable=true]{cursor:grab}.ga065-drag{font-size:17px;color:var(--muted);letter-spacing:-4px}.ga065-deck-config-row b{display:block}.ga065-deck-config-row small{display:block;margin-top:2px;font-size:7px;color:var(--muted)}.ga065-config-rev{display:flex;justify-content:flex-end}
@media(max-width:900px){.ga065-deck-head,.ga065-foundation-note,.ga065-view-toolbar,.ga065-designer-toolbar,.ga065-area-summary{align-items:stretch;flex-direction:column}.ga065-deck-head-actions{justify-content:flex-start}.ga065-deck-config-row{grid-template-columns:24px 1fr}.ga065-deck-config-row .ga065-config-rev,.ga065-deck-config-row>button{grid-column:2}.ga065-viewport{height:62vh;min-height:380px}.ga065-artboard{width:1100px;min-width:740px}.ga065-help{flex-direction:column}}


/* MAVIT Supervisor v0.6.5 GA2 — explicit Area management */
.ga065-area-summary.expanded{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));margin-top:12px}
.ga065-area-summary-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.ga065-area-actions{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}
.ga065-device-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ga065-device-sections>section{padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:rgba(255,255,255,.025);min-width:0}
.ga065-subhead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.ga065-paired-device{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.055)}
.ga065-paired-device:last-child{border-bottom:0}
.ga065-device-main{display:flex;align-items:center;gap:9px;min-width:0;text-align:left;background:none;border:0;color:inherit;padding:0;cursor:pointer;flex:1}
.ga065-device-main span:last-child{min-width:0}
.ga065-device-main b,.ga065-device-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ga065-device-main small{color:var(--muted);font-size:11px;margin-top:2px}
.ga065-paired-device.projected{opacity:.9}
.ga065-paired-device .context-mask{font-size:9px;padding:3px 6px;border-radius:6px;background:rgba(148,163,184,.15);color:#aab7c5;border:1px solid rgba(148,163,184,.25)}
@media(max-width:900px){.ga065-area-summary-head{display:grid}.ga065-device-sections{grid-template-columns:1fr}.ga065-area-actions>button{flex:1 1 160px}}

/* MAVIT Supervisor v0.6.5 GA4 — direct Area/device management */
.ga065-edit-hint{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid rgba(74,163,255,.22);border-radius:10px;background:rgba(74,163,255,.06);font-size:9px}
.ga065-area-actions{background:rgba(7,16,27,.24);border-radius:10px;padding:10px!important}
.ga065-area-actions .primary{font-weight:700}.ga065-area-actions.readonly{align-items:center}.ga065-area-actions.readonly .muted{font-size:9px}
.ga065-designer-toolbar .ga065-toolset button:disabled{opacity:.4;cursor:not-allowed}

/* ========================================================================== */
/* MAVIT Supervisor v0.6.5 · GA Placement Manager GA5                        */
/* ========================================================================== */
.ga065-area-shape.maintenance{stroke:#4aa3ff;fill:rgba(74,163,255,.11);stroke-dasharray:8 6}
.ga065-placement-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:stretch}
.ga065-ga-stage{min-width:0}
.ga065-placement-manager{border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,rgba(22,34,48,.94),rgba(12,22,34,.96));padding:12px;display:flex;flex-direction:column;gap:12px;max-height:min(70vh,760px);overflow:auto}
.ga065-placement-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ga065-placement-head h3{margin:2px 0 4px;font-size:13px}.ga065-placement-head p{margin:0;color:var(--muted);font-size:8px;line-height:1.5}.ga065-placement-actions{display:flex;gap:6px}.ga065-placement-actions>*{flex:1}
.ga065-placement-manager section{display:grid;gap:7px;padding-top:4px}.ga065-placement-list{display:grid;gap:6px}.ga065-placement-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto 14px;gap:8px;align-items:center;padding:8px;border:1px solid rgba(136,158,179,.18);border-radius:9px;background:rgba(6,13,23,.48);cursor:grab}.ga065-placement-item:active{cursor:grabbing}.ga065-placement-item:hover{border-color:rgba(74,163,255,.48);background:rgba(74,163,255,.065)}.ga065-placement-item.rack{grid-template-columns:18px minmax(0,1fr) auto 14px}.ga065-placement-item.gap{grid-template-columns:18px minmax(0,1fr);cursor:default;border-color:rgba(229,169,47,.25)}.ga065-placement-item b{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga065-placement-item small{display:block;color:var(--muted);font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.ga065-rack-mini{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;background:rgba(74,163,255,.12);color:#72b8ff;font-size:11px}.ga065-drag-grip{color:var(--muted);font-size:11px;letter-spacing:-3px}.ga065-empty-ok{padding:9px;border:1px dashed rgba(53,201,140,.25);border-radius:9px;color:#77d9ad;font-size:8px;text-align:center}.ga065-panel-note{margin:0;color:var(--muted);font-size:7px;line-height:1.4}
button.mini,.ghost.mini{padding:4px 6px;min-height:24px;font-size:7px}
.ga065-placement-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}.ga065-placement-legend span{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:7px}.ga065-placement-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.ga065-placement-legend i.healthy{background:#35c98c}.ga065-placement-legend i.degraded{background:#e5a92f}.ga065-placement-legend i.critical{background:#ea566c}.ga065-placement-legend i.unknown{background:#8798a9}.ga065-placement-legend i.maintenance{background:#4aa3ff}
.ga065-marker-layer{position:absolute;inset:0;z-index:5;pointer-events:none}.ga065-ga-marker{position:absolute;transform:translate(-50%,-50%);width:17px;height:17px;padding:0;border-radius:50%;border:2px solid rgba(255,255,255,.86);box-shadow:0 2px 8px rgba(0,0,0,.5);display:grid;place-items:center;pointer-events:auto;cursor:pointer;z-index:1;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.ga065-ga-marker:hover{transform:translate(-50%,-50%) scale(1.28);z-index:10}.ga065-ga-marker.healthy{background:#35c98c;box-shadow:0 0 0 3px rgba(53,201,140,.13),0 2px 8px rgba(0,0,0,.5)}.ga065-ga-marker.degraded{background:#e5a92f;box-shadow:0 0 0 3px rgba(229,169,47,.14),0 2px 8px rgba(0,0,0,.5)}.ga065-ga-marker.critical{background:#ea566c;box-shadow:0 0 0 4px rgba(234,86,108,.16),0 0 13px rgba(234,86,108,.5)}.ga065-ga-marker.unknown{background:#6e8193}.ga065-ga-marker.maintenance{background:#4aa3ff;box-shadow:0 0 0 3px rgba(74,163,255,.15),0 2px 8px rgba(0,0,0,.5)}.ga065-ga-marker.rack{width:23px;height:23px;border-radius:6px}.ga065-ga-marker.rack .ga065-marker-core{font-size:10px;color:#07101b;font-weight:900}.ga065-marker-label{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);background:rgba(4,9,16,.92);border:1px solid rgba(255,255,255,.12);color:#dfeaf3;border-radius:5px;padding:3px 5px;font-size:7px;white-space:nowrap;opacity:0;pointer-events:none;transition:.12s ease}.ga065-ga-marker:hover .ga065-marker-label{opacity:1}.ga065-marker-layer.compact .ga065-ga-marker{width:10px;height:10px;border-width:1px}.ga065-marker-layer.compact .ga065-ga-marker.rack{width:14px;height:14px;border-radius:4px}.ga065-marker-layer.compact .ga065-marker-core{font-size:6px}.ga065-marker-layer.compact .ga065-marker-label{display:none}
.ga065-object-state{display:flex;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:11px;background:rgba(8,16,26,.55);margin:8px 0 12px}.ga065-object-state b{display:block;font-size:12px}.ga065-object-state small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.ga065-state-dot{width:13px;height:13px;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 auto}.ga065-state-dot.healthy{background:#35c98c}.ga065-state-dot.degraded{background:#e5a92f}.ga065-state-dot.critical{background:#ea566c}.ga065-state-dot.unknown{background:#8798a9}.ga065-state-dot.maintenance{background:#4aa3ff}.ga065-state-dot.rack{width:26px;height:26px;border-radius:6px;color:#07101b;font-weight:900}.ga065-modal-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.ga065-rack-device-list{display:grid;gap:6px;margin-top:10px}.ga065-rack-child{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:9px}.ga065-rack-child>button:not(.mini){text-align:left;background:none;border:0;color:var(--text);padding:0;cursor:pointer}.ga065-rack-child b{display:block;font-size:9px}.ga065-rack-child small{display:block;color:var(--muted);font-size:7px;margin-top:2px}
@media(max-width:1180px){.ga065-placement-workspace{grid-template-columns:1fr}.ga065-placement-manager{max-height:none}.ga065-placement-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.ga065-placement-list{grid-template-columns:1fr}.ga065-placement-manager{padding:9px}.ga065-ga-marker{width:20px;height:20px}.ga065-ga-marker.rack{width:26px;height:26px}}


/* ========================================================================== */
/* MAVIT Supervisor v0.6.6 · All Decks 3x2 + resizable GA tiles              */
/* ========================================================================== */
.ga065-all-decks.ga066-all-decks-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,auto);gap:12px;align-items:start}
.ga066-grid-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.ga066-grid-toolbar>div:first-child{display:grid;gap:2px}.ga066-grid-toolbar b{font-size:10px}.ga066-grid-toolbar span:not(.pill){font-size:8px;color:var(--muted)}.ga066-page-actions{display:flex;align-items:center;gap:6px}.ga066-page-actions button:disabled{opacity:.35;cursor:not-allowed}
.ga066-all-decks-grid .ga065-deck-card{min-width:0;padding:10px;border-radius:13px}.ga066-all-decks-grid .ga065-deck-head{gap:8px;margin-bottom:7px}.ga066-all-decks-grid .ga065-deck-head h3{font-size:12px}.ga066-all-decks-grid .ga065-deck-head small{font-size:7px}.ga066-all-decks-grid .ga065-deck-head-actions{gap:4px}.ga066-all-decks-grid .pill{font-size:7px;padding:3px 5px}
.ga066-all-decks-grid .ga065-preview{min-height:120px;max-height:380px;transition:border-color .12s ease;cursor:zoom-in}.ga066-all-decks-grid .ga065-preview img{object-fit:contain}
.ga066-tile-resizer{height:18px;margin-top:5px;border:1px solid transparent;border-radius:7px;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--muted);cursor:ns-resize;touch-action:none;user-select:none}.ga066-tile-resizer:hover{border-color:rgba(74,163,255,.30);background:rgba(74,163,255,.06);color:#9fd0ff}.ga066-tile-resizer span{font-size:12px}.ga066-tile-resizer small{font-size:7px}
.ga066-deck-placeholder{min-height:205px;border:1px dashed rgba(136,158,179,.16);border-radius:13px;background:rgba(255,255,255,.012);display:grid;place-content:center;text-align:center;gap:4px;color:rgba(136,158,179,.38)}.ga066-deck-placeholder span{font-size:8px;letter-spacing:.12em}.ga066-deck-placeholder small{font-size:7px}
@media(max-width:1280px){.ga065-all-decks.ga066-all-decks-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.ga066-deck-placeholder{display:none}}
@media(max-width:760px){.ga065-all-decks.ga066-all-decks-grid{grid-template-columns:1fr}.ga066-grid-toolbar{align-items:stretch;flex-direction:column}.ga066-page-actions{justify-content:flex-end}.ga066-deck-placeholder{display:none}}
/* GA7 live-patch state aliases: keep floating status dots readable without DOM rebuilds. */
.device-state-dot.healthy{background:var(--green)}
.device-state-dot.critical{background:var(--red)}
.device-state-dot.unknown{background:#516677}
.device-state-dot.maintenance{background:#4aa3ff;box-shadow:0 0 8px rgba(74,163,255,.28)}


/* ========================================================================== */
/* MAVIT Supervisor v0.6.7 · GA8 Area Canvas                                 */
/* ========================================================================== */
.ga068-shell{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}
.ga068-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line)}
.ga068-toolbar h2{margin:2px 0 4px;font-size:18px}.ga068-toolbar p{margin:0;color:var(--muted);font-size:8px}.ga068-toolbar-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ga068-health-strip{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:8px;color:var(--muted);background:rgba(255,255,255,.015)}
.ga068-health-strip .ok{color:var(--green)}.ga068-health-strip .warn{color:var(--amber)}.ga068-health-strip .bad{color:var(--red)}.ga068-health-strip strong{margin-left:auto;color:#8fc4ff;letter-spacing:.08em}.ga068-health-strip small{margin-left:auto}
.ga068-viewport{height:min(68vh,760px);min-height:470px;overflow:auto;overscroll-behavior:contain;background:linear-gradient(rgba(104,130,155,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(104,130,155,.08) 1px,transparent 1px),#08121e;background-size:32px 32px;position:relative}
.ga068-sizer{position:relative}.ga068-surface{position:absolute;left:0;top:0;overflow:hidden;background:linear-gradient(90deg,rgba(73,156,255,.025),transparent 34%,rgba(255,255,255,.015) 66%,rgba(128,139,151,.025));user-select:none}
.ga068-lane{position:absolute;top:0;bottom:0;border-right:1px dashed rgba(127,151,174,.18);pointer-events:none}.ga068-lane span{position:absolute;top:17px;left:18px;font-size:8px;letter-spacing:.12em;color:rgba(163,184,204,.48);font-weight:700}.ga068-lane.physical{left:0;width:500px}.ga068-lane.rack{left:500px;width:500px}.ga068-lane.projected{left:1000px;width:500px;border-right:0}
.ga068-edge-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.ga068-edge path{fill:none;stroke:rgba(75,163,255,.35);stroke-width:2;vector-effect:non-scaling-stroke}.ga068-edge text{fill:#66839d;font-size:10px;text-anchor:middle;paint-order:stroke;stroke:#08121e;stroke-width:3px;stroke-linejoin:round}
.ga068-node{position:absolute;z-index:3;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 10px;border:1px solid rgba(81,111,138,.5);border-radius:12px;background:linear-gradient(180deg,rgba(20,34,49,.97),rgba(11,22,34,.98));box-shadow:0 8px 26px rgba(0,0,0,.22);color:var(--text)}
.ga068-node.projected{opacity:.68;filter:saturate(.55);border-style:dashed;background:linear-gradient(180deg,rgba(30,38,48,.94),rgba(18,25,33,.96))}.ga068-node.rack{border-radius:9px;border-width:1.5px}
.ga068-node.healthy{border-color:rgba(53,201,140,.38)}.ga068-node.degraded{border-color:rgba(229,169,47,.58)}.ga068-node.critical{border-color:rgba(234,86,108,.72);box-shadow:0 0 0 2px rgba(234,86,108,.08),0 8px 26px rgba(0,0,0,.25)}.ga068-node.maintenance{border-color:rgba(74,163,255,.55)}
.ga068-node-state{width:9px;height:9px;border-radius:50%;background:#718396;box-shadow:0 0 8px rgba(113,131,150,.25)}.ga068-node-state.healthy{background:#35c98c}.ga068-node-state.degraded{background:#e5a92f}.ga068-node-state.critical{background:#ea566c}.ga068-node-state.maintenance{background:#4aa3ff}.ga068-node-state.unknown{background:#718396}
.ga068-node-body{min-width:0;display:grid;gap:2px}.ga068-node-body>b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga068-node-body>small{font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga068-node-body>em{font-size:7px;color:#a9b3bd;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ga068-node-kicker{display:flex;align-items:center;gap:5px;font-size:6px;color:var(--muted);letter-spacing:.06em}.ga068-projected-badge,.ga068-rack-badge,.ga068-physical-badge{font-size:6px;border-radius:4px;padding:2px 4px;border:1px solid rgba(124,149,173,.3);letter-spacing:.08em}.ga068-physical-badge{color:#78dbae;border-color:rgba(53,201,140,.26)}.ga068-rack-badge{color:#8fc4ff;border-color:rgba(74,163,255,.3)}.ga068-projected-badge{color:#aab4be}
.ga068-node-actions{display:grid;gap:4px}.ga068-node-actions button{min-width:36px;height:26px;border:1px solid rgba(114,143,170,.24);border-radius:6px;background:rgba(255,255,255,.025);color:#aebdca;font-size:7px;cursor:pointer}.ga068-node-actions button:hover{border-color:rgba(74,163,255,.55);color:#bdddff}.ga068-node-drag{cursor:grab!important;font-size:12px!important;touch-action:none}.ga068-node-drag:active{cursor:grabbing!important}
.ga068-surface.editing .ga068-node{outline:1px dashed rgba(74,163,255,.16);outline-offset:3px}.ga068-empty{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);padding:18px 24px;border:1px dashed rgba(121,148,173,.25);border-radius:12px;color:var(--muted);font-size:9px}
.ga068-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:7px}.ga068-footer .pill{margin-left:auto}
@media(max-width:900px){.ga068-toolbar{flex-direction:column}.ga068-toolbar-actions{justify-content:flex-start}.ga068-viewport{height:62vh}.ga068-health-strip{flex-wrap:wrap}.ga068-health-strip strong,.ga068-health-strip small{margin-left:0}.ga068-footer .pill{margin-left:0}}

/* GA9: explicit Area → Canvas navigation */
.ga069-open-canvas{min-width:138px;font-weight:700}
.ga069-canvas-hint{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;display:flex;gap:10px;align-items:center;justify-content:space-between;background:rgba(45,127,249,.05)}
.ga069-canvas-hint span{color:var(--muted);font-size:12px}
.ga065-area-shape.selected{stroke-width:4!important;filter:drop-shadow(0 0 4px rgba(45,127,249,.45))}


/* v0.6.7 GA10 — deterministic Area selection / Canvas access */
.ga070-quick-area{margin:0 0 10px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,rgba(17,30,44,.94),rgba(9,18,28,.96));min-height:54px;display:flex;align-items:center;padding:9px 12px}
.ga070-quick-empty{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:8px}.ga070-quick-empty b{color:var(--text);font-size:9px}.ga070-quick-selected{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px}.ga070-quick-selected>div:first-child{display:grid;gap:2px}.ga070-quick-selected b{font-size:11px}.ga070-quick-selected span{font-size:7px;color:var(--muted)}.ga070-quick-actions{display:flex;gap:6px;align-items:center}.ga070-quick-actions .primary{font-weight:800;box-shadow:0 0 0 2px rgba(74,163,255,.08),0 0 22px rgba(74,163,255,.12)}
#ga070AreaPanel:empty{display:none}


/* MAVIT Supervisor v0.6.8 GA11 — unified location & cabling topology */
.ga11-origin{display:inline-flex;align-items:center;margin-left:5px;padding:1px 6px;border-radius:999px;font-size:7px;letter-spacing:.08em;font-weight:800;border:1px solid var(--line);vertical-align:middle}.ga11-origin.ga{color:#64c8ff;border-color:#235f84;background:#0b2232}.ga11-origin.imported{color:#9aa9ba;background:#111923}.ga11-device-table td small{margin-top:3px;color:var(--muted)}.ga11-device-filters{grid-template-columns:minmax(190px,1.6fr) repeat(6,minmax(125px,1fr)) auto}.ga11-location-rule,.ga11-backend-note{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid #26384a;border-radius:9px;background:#0c151e;margin:8px 0 12px}.ga11-location-rule b,.ga11-backend-note b{white-space:nowrap;color:#d8e9f7}.ga11-location-rule span,.ga11-backend-note span{color:var(--muted);font-size:9px;line-height:1.45}.ga11-inherit-note{padding:8px 10px;border:1px solid #27445b;border-radius:8px;background:#0b1c29;color:#a9bfd2;font-size:8px;margin:8px 0}.ga11-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ga11-section-head.top-gap{margin-top:14px}.ga11-connection-list{display:grid;gap:6px}.ga11-connection-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid #223140;border-radius:8px;background:#0d151d}.ga11-connection-row b{font-size:9px}.ga11-connection-row small{display:block;margin-top:2px;color:var(--muted);font-size:8px}.ga11-link-dot{width:7px;height:7px;border-radius:50%;background:#50c8ff;box-shadow:0 0 8px #45bff877}.ga11-canvas-filters{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid #1e2e3d;background:#0a121a}.ga11-canvas-filters label{display:grid;gap:4px;font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:#8295a8}.ga11-canvas-filters select{min-width:150px;background:#101a24;color:#d7e1eb;border:1px solid #2a3a49;border-radius:7px;padding:7px 9px}.ga11-filter-summary{margin-left:auto;color:#8295a8;font-size:8px;padding-bottom:7px}.ga11-rack-meta{color:#73b7dd!important;font-style:normal!important;font-size:8px!important;margin-top:4px}.ga068-lane.ga11-wide{left:28px;right:390px;width:auto}.ga068-surface .ga068-lane.rack{display:none}.ga11-edge path{stroke-width:2}.ga11-edge text{font-size:10px}.ga068-node{min-height:108px}.ga068-node.projected .ga11-rack-meta{color:#7f8d9a!important}
@media(max-width:1200px){.ga11-device-filters{grid-template-columns:1fr 1fr 1fr}.ga11-filter-summary{width:100%;margin-left:0}.ga11-canvas-filters select{min-width:120px}}

/* MAVIT Supervisor v0.6.9 GA12 · unified GA-created Area sync */
.ga12-area-sync-state,.ga12-area-selection-info{display:flex;align-items:center;gap:12px;border:1px solid var(--line,#2a3a49);background:rgba(10,21,31,.72);border-radius:10px;padding:10px 12px;margin:10px 0;font-size:11px}.ga12-area-sync-state b,.ga12-area-selection-info b{font-size:10px;letter-spacing:.09em}.ga12-area-sync-state span,.ga12-area-selection-info span{color:var(--muted,#91a2b4)}.ga12-area-sync-state.synced{border-color:rgba(47,193,140,.38)}.ga12-area-sync-state.synced b{color:#55d6a2}.ga12-area-sync-state.pending{border-color:rgba(67,150,255,.42)}.ga12-area-sync-state.pending b,.ga12-area-selection-info b{color:#76b7ff}.ga12-sync-btn{border-color:rgba(67,150,255,.4)!important}.form-grid optgroup{background:#111a24;color:#9fb1c2;font-weight:700}.form-grid option{background:#111a24;color:#eef5fb}

/* v0.6.10 GA13 · imported-location reference vs GA physical placement */
.ga13-reference-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;margin:10px 0 16px;border:1px solid rgba(112,151,180,.28);border-radius:10px;background:rgba(39,61,78,.22)}
.ga13-reference-card>div{display:flex;flex-direction:column;gap:4px}.ga13-reference-card span{font-size:10px;letter-spacing:.09em;color:#86a2b8}.ga13-reference-card b{font-size:13px;color:#d5e1e9}.ga13-reference-card small{color:#7f96a7;text-align:right;max-width:44%}
.ga13-unassigned{display:inline-flex;padding:3px 7px;border:1px solid rgba(153,169,181,.24);border-radius:999px;color:#9baab5;font-size:10px;font-weight:700;letter-spacing:.05em}.ga13-reference-text{color:#aebfcb}.ga13-device-table td:nth-child(8){max-width:220px}.ga13-inspector-ref b{color:#aebfcb!important}

/* GA15 — Devices physical placement filter */
.ga15-placement-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0 10px;border-top:1px solid rgba(255,255,255,.035);margin-top:7px}.ga15-placement-filter>span{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:3px}.ga15-placement-filter label{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025);font-size:9px;color:#aebdca;cursor:pointer}.ga15-placement-filter label:has(input:checked){border-color:#2f86b4;background:#0b2232;color:#d9f3ff;box-shadow:inset 0 0 0 1px #1c5b7d}.ga15-placement-filter input{accent-color:var(--cyan);margin:0}.ga15-placement-filter label:hover{border-color:#35546b}

/* v0.6.13 GA16 · Rack management */
.ga16-rack-filters{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(240px,1fr) auto;gap:10px;align-items:center;margin:0 0 10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.ga16-rack-card .card-head h3{margin-bottom:2px}.ga16-rack-card .card-head small{display:block;margin-top:2px}.ga16-rack-reference{color:var(--muted);opacity:.85}.ga16-rack-help{margin:10px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:12px;color:var(--muted)}
@media(max-width:900px){.ga16-rack-filters{grid-template-columns:1fr}}

/* v0.6.14 GA17 · quick physical Area assignment from Devices table */
.ga17-quick-area-wrap{display:grid;gap:3px;min-width:180px}
.ga17-quick-area{width:100%;min-width:170px;max-width:240px;height:30px;padding:4px 28px 4px 8px;border-radius:7px;border:1px solid #2a3a49;background:#101a24;color:#dfe8ef;font-size:9px;cursor:pointer}
.ga17-quick-area:hover{border-color:#3e6d8d}.ga17-quick-area:focus{outline:none;border-color:#4aa3ff;box-shadow:0 0 0 2px rgba(74,163,255,.12)}
.ga17-quick-area.saving{opacity:.55;cursor:wait}.ga17-quick-area-wrap small,.ga17-inherited-area small{display:block;color:var(--muted);font-size:7px;margin-top:2px}
.ga17-inherited-area b{display:block}.ga17-device-table td:nth-child(7){min-width:190px}
@media(max-width:1200px){.ga17-quick-area{min-width:145px}.ga17-device-table td:nth-child(7){min-width:160px}}


/* v0.6.15 GA18 · Rack filter UX / stable text focus */
.ga16-rack-filters input,.ga16-rack-filters select{width:100%;min-width:0;height:38px;padding:0 11px;border:1px solid var(--line2,var(--line));border-radius:8px;background:var(--panel2);color:var(--text);font:inherit;font-size:10px;outline:none;box-sizing:border-box}
.ga16-rack-filters input::placeholder{color:var(--muted);opacity:.9}
.ga16-rack-filters input:hover,.ga16-rack-filters select:hover{border-color:#45617a}
.ga16-rack-filters input:focus,.ga16-rack-filters select:focus{border-color:#4aa3ff;box-shadow:0 0 0 2px rgba(74,163,255,.12)}
.ga16-rack-filters select option{background:var(--panel2);color:var(--text)}
.ga16-rack-filters .ghost{height:38px;white-space:nowrap}
html[data-theme="dark"] .ga16-rack-filters input,html[data-theme="dark"] .ga16-rack-filters select{background:#101820!important;color:#e8edf2!important;border-color:#2a3744!important;color-scheme:dark}
html[data-theme="dark"] .ga16-rack-filters input::placeholder{color:#718294!important}
html[data-theme="dark"] .ga16-rack-filters select option{background:#101820!important;color:#e8edf2!important}
.ga16-rack-card[hidden]{display:none!important}

/* v0.6.16 GA19 · Area-context rack selection + accessible incomplete rack devices */
.ga19-area-context-banner,.ga19-context-rule{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:9px 12px;border:1px solid #285170;border-radius:10px;background:#0d1c28;color:#cfe7f8}
.ga19-area-context-banner>span,.ga19-context-rule>b{font-size:8px;letter-spacing:.09em;text-transform:uppercase;color:#6fb8e6}.ga19-area-context-banner>b{font-size:11px}.ga19-area-context-banner small,.ga19-context-rule span{font-size:9px;color:var(--muted)}
.ga19-rack-u{cursor:pointer}.ga19-rack-u:hover{background:rgba(74,163,255,.08)}.ga19-rack-u.incomplete{background:rgba(233,167,56,.035)}
.ga19-u-device{display:flex;align-items:center;gap:6px;min-width:0}.ga19-u-device b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ga19-u-device em{font-size:7px;color:var(--amber);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ga19-incomplete-badge{display:inline-flex;align-items:center;min-height:18px;padding:2px 6px;border:1px solid rgba(233,167,56,.45);border-radius:999px;background:rgba(233,167,56,.1);color:#f2bd62;font-size:7px;font-weight:800;letter-spacing:.06em;white-space:nowrap}
.ga19-unpositioned{margin-top:10px;border:1px solid rgba(233,167,56,.32);border-radius:10px;overflow:hidden;background:rgba(233,167,56,.025)}.ga19-unpositioned-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid rgba(233,167,56,.2);color:#e7b45f;font-size:9px}.ga19-unpositioned-head span{font-size:8px}
.ga19-rack-device{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer}.ga19-rack-device:last-child{border-bottom:0}.ga19-rack-device:hover{background:rgba(74,163,255,.055)}.ga19-rack-device>div{min-width:0}.ga19-rack-device b,.ga19-rack-device small,.ga19-rack-device em{display:block}.ga19-rack-device small{font-size:8px;color:var(--muted);margin-top:1px}.ga19-rack-device em{font-size:7px;color:var(--amber);font-style:normal;margin-top:2px}
.ga19-rack-help{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding:8px 10px;border:1px solid rgba(233,167,56,.25);border-radius:9px;background:rgba(233,167,56,.025);font-size:8px;color:var(--muted)}.ga19-rack-help b{color:#efbd66}


/* v0.6.17 GA20 · Rack-contained AVPLATE */
.ga20-rack-note{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:9px 12px;border:1px solid rgba(64,152,219,.3);border-radius:10px;background:rgba(32,111,170,.08);font-size:9px;color:var(--muted)}
.ga20-rack-note b{color:#79c8f4;letter-spacing:.08em}.ga20-avplate-row{min-height:54px!important;align-items:stretch!important;background:linear-gradient(90deg,rgba(44,128,190,.10),rgba(44,128,190,.025));border-color:rgba(70,161,225,.34)!important;cursor:pointer}
.ga20-avplate-row>span:first-child{display:flex;align-items:center}.ga20-avplate-body{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:5px 0}.ga20-avplate-title{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:7px}.ga20-avplate-title>div{min-width:0}.ga20-avplate-title b,.ga20-avplate-title small{display:block}.ga20-avplate-title b{font-size:9px;color:#dff4ff}.ga20-avplate-title small{font-size:7px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga20-avplate-icon{display:inline-flex;align-items:center;justify-content:center;min-width:29px;height:20px;border:1px solid rgba(84,185,247,.55);border-radius:5px;background:rgba(57,154,218,.14);color:#80d2ff;font-size:7px;font-weight:900;letter-spacing:.08em}.ga20-plate-state{font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.ga20-plate-state.healthy,.ga20-plate-state.online{color:#63d5a8}.ga20-plate-state.degraded{color:#efb85b}.ga20-plate-state.critical,.ga20-plate-state.offline{color:#ff7181}.ga20-plate-state.maintenance{color:#66b6ff}.ga20-plate-state.unknown{color:#95a6b4}.ga20-avplate-children{display:flex;gap:4px;flex-wrap:wrap}.ga20-avplate-children button{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid rgba(83,125,152,.33);border-radius:999px;background:rgba(8,18,26,.72);color:#c8d8e4;font-size:7px}.ga20-avplate-children button:hover{border-color:#4aa3ff;color:white}.ga20-device-section{margin-top:12px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:rgba(5,12,18,.28)}.ga20-device-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.ga20-device-head b,.ga20-device-head small{display:block}.ga20-device-head small{font-size:8px;color:var(--muted);margin-top:2px}.ga20-device-list{max-height:320px;overflow:auto}.ga20-device-pick{display:grid;grid-template-columns:auto 10px minmax(0,1fr);align-items:center;gap:8px;padding:8px 11px;border-bottom:1px solid var(--line);cursor:pointer}.ga20-device-pick:last-child{border-bottom:0}.ga20-device-pick:hover{background:rgba(74,163,255,.045)}.ga20-device-pick.blocked{opacity:.55;cursor:not-allowed}.ga20-device-pick div{min-width:0}.ga20-device-pick b,.ga20-device-pick small,.ga20-device-pick em{display:block}.ga20-device-pick small{font-size:8px;color:var(--muted)}.ga20-device-pick em{font-size:7px;color:#e3ad58;font-style:normal;margin-top:2px}.ga20-modal-actions{display:flex;align-items:center;gap:8px;margin-top:12px}.ga20-modal-actions .spacer{flex:1}.ga20-plate-device{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line);cursor:pointer}.ga20-plate-device:last-child{border-bottom:0}.ga20-plate-device:hover{background:rgba(74,163,255,.045)}.ga20-plate-device b,.ga20-plate-device small,.ga20-plate-device em{display:block}.ga20-plate-device small{font-size:8px;color:var(--muted)}.ga20-plate-device em{font-size:7px;color:var(--amber);font-style:normal;margin-top:2px}.ga20-device-parent b{color:#7fd1ff}


/* MAVIT Supervisor v0.6.18 GA21 — Rack device visibility / U conflict repair */
.ga21-rack-conflicts{margin-top:10px;border:1px solid rgba(255,92,112,.34);border-radius:10px;overflow:hidden;background:rgba(255,65,89,.035)}
.ga21-rack-conflicts-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-bottom:1px solid rgba(255,92,112,.22)}
.ga21-rack-conflicts-head b,.ga21-rack-conflicts-head span{display:block}.ga21-rack-conflicts-head b{font-size:9px;color:#ff8897}.ga21-rack-conflicts-head div>span{margin-top:2px;font-size:7px;color:var(--muted)}
.ga21-rack-conflict-device{display:grid;grid-template-columns:34px 10px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(255,92,112,.16);cursor:pointer}
.ga21-rack-conflict-device:last-child{border-bottom:0}.ga21-rack-conflict-device:hover{background:rgba(255,92,112,.05)}
.ga21-rack-conflict-device b,.ga21-rack-conflict-device small{display:block}.ga21-rack-conflict-device b{font-size:8px}.ga21-rack-conflict-device small{font-size:7px;color:#e7a0aa;margin-top:1px}.ga21-conflict-u{font-size:8px;font-weight:800;color:#ff8c99}

/* MAVIT Supervisor v0.6.19 · GA22 Rack mounting */
.ga22-structured>span:first-child{min-width:70px;font-weight:700;color:#9fb5c8}
.ga22-u-continuation{background:rgba(31,124,255,.045);color:#73889b;cursor:pointer}
.ga22-u-continuation:hover{background:rgba(31,124,255,.09)}
.ga22-fixed{margin-top:10px;border:1px solid #284052;border-radius:10px;background:#0b151e;overflow:hidden}
.ga22-fixed>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;background:#0f1b25;user-select:none}
.ga22-fixed>summary::-webkit-details-marker{display:none}
.ga22-fixed>summary span:first-child{display:flex;flex-direction:column;gap:2px}
.ga22-fixed>summary small{color:#7f95a8;font-size:10px;font-weight:500}
.ga22-fixed>summary:before{content:'▸';color:#6f879a;margin-right:7px}
.ga22-fixed[open]>summary:before{content:'▾'}
.ga22-fixed-list{padding:8px;display:grid;gap:6px}
.ga22-rack-device{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:9px;align-items:center;border:1px solid #223848;border-radius:8px;background:#0d1821;padding:8px 10px;cursor:pointer}
.ga22-rack-device:hover{border-color:#356183;background:#10202d}
.ga22-rack-device>div{display:flex;flex-direction:column;min-width:0}
.ga22-rack-device small{color:#8ca1b2;font-size:10px}.ga22-rack-device em{color:#d09b5b;font-size:9px;font-style:normal}
.ga21-conflict-u{min-width:90px}

/* MAVIT Supervisor v0.6.20 GA23 · Area lifecycle + aliases */
.ga23-alias-editor{margin:16px 0;padding:14px;border:1px solid var(--line,#26384a);border-radius:12px;background:rgba(12,23,34,.55)}
.ga23-alias-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.ga23-alias-head>div{display:flex;flex-direction:column;gap:3px}.ga23-alias-head small{color:var(--muted,#8fa1b5);max-width:760px}
.ga23-alias-row{display:grid;grid-template-columns:minmax(150px,190px) minmax(220px,1fr) auto;gap:8px;margin-top:8px;align-items:center}
.ga23-alias-row select,.ga23-alias-row input{width:100%;min-width:0}
.ga23-area-aliases{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 2px;padding:10px;border:1px solid rgba(86,143,190,.24);border-radius:10px;background:rgba(9,20,30,.52)}
.ga23-area-aliases span{font-size:11px;color:var(--muted,#91a4b8);border:1px solid rgba(107,142,171,.22);border-radius:999px;padding:5px 8px;background:rgba(255,255,255,.018)}
.ga23-area-aliases span b{color:#d5e5f2;margin-right:4px;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.ga23-area-aliases .ga23-primary-name{border-color:rgba(45,144,255,.45);color:#e7f3ff;background:rgba(28,108,190,.12)}
.ga23-area-manager{margin:10px 0 12px;border:1px solid var(--line,#26384a);border-radius:12px;background:rgba(10,18,27,.82);overflow:hidden}
.ga23-area-manager-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid rgba(93,126,153,.2)}
.ga23-area-manager-head>div{display:flex;flex-direction:column;gap:2px}.ga23-area-manager-head small{color:var(--muted,#8fa1b5)}
.ga23-area-manager-filter{padding:9px 12px;border-bottom:1px solid rgba(93,126,153,.15)}.ga23-area-manager-filter input{width:100%}
.ga23-area-manager-list{max-height:270px;overflow:auto;padding:7px}
.ga23-area-manager-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px;border:1px solid transparent;border-radius:9px}
.ga23-area-manager-row:hover{background:rgba(255,255,255,.025)}.ga23-area-manager-row.selected{border-color:rgba(38,133,255,.55);background:rgba(32,111,202,.1)}
.ga23-area-manager-main{appearance:none;border:0;background:transparent;color:inherit;text-align:left;display:grid;grid-template-columns:10px minmax(0,1fr);gap:9px;align-items:start;padding:2px;cursor:pointer}
.ga23-area-manager-main span:last-child{display:flex;flex-direction:column;gap:2px}.ga23-area-manager-main small{color:var(--muted,#91a3b6)}.ga23-area-manager-main em{font-style:normal;color:#7f96aa;font-size:10px;line-height:1.35}
.ga23-area-manager-state{width:8px;height:8px;border-radius:50%;margin-top:5px;background:#6b7885}.ga23-area-manager-state.healthy{background:#34d399}.ga23-area-manager-state.degraded{background:#f5b942}.ga23-area-manager-state.critical{background:#ff5d6c}.ga23-area-manager-state.unknown{background:#7f8c99}
.ga23-area-manager-actions{display:flex;gap:6px;align-items:center}
@media(max-width:900px){.ga23-alias-row{grid-template-columns:1fr}.ga23-area-manager-row{grid-template-columns:1fr}.ga23-area-manager-actions{justify-content:flex-start;flex-wrap:wrap}}

/* ============================================================================
   MAVIT Supervisor v0.6.23 GA26 · screen-space GA geometry
   Area outlines and physical markers retain an elegant constant screen size
   while the GA itself zooms beneath them. Length variables are populated by
   the viewer on every zoom so this does not rely on CSS numeric multiplication.
   ============================================================================ */
.ga065-transform{
  --ga24-stroke:2px;--ga24-selected-stroke:2.5px;--ga24-glow:3px;
  --ga24-dash:8px;--ga24-gap:6px;--ga24-device-size:17px;
  --ga24-rack-size:23px;--ga24-marker-border:2px;--ga24-rack-radius:6px;
  --ga24-rack-font:10px;--ga24-label-gap:5px;--ga24-label-border:1px;
  --ga24-label-radius:5px;--ga24-label-py:3px;--ga24-label-px:5px;--ga24-label-font:7px
}
.ga065-area-shape{stroke-width:var(--ga24-stroke)!important;filter:none}
.ga065-area-shape:hover,.ga065-area-shape.selected{
  stroke-width:var(--ga24-selected-stroke)!important;
  filter:drop-shadow(0 0 var(--ga24-glow) rgba(74,163,255,.34));
}
.ga065-area-shape.critical{filter:drop-shadow(0 0 var(--ga24-glow) rgba(234,86,108,.32))}
.ga065-area-shape.draft{stroke-width:var(--ga24-stroke)!important;stroke-dasharray:var(--ga24-dash) var(--ga24-gap)}
.ga065-area-shape.maintenance{stroke-dasharray:var(--ga24-dash) var(--ga24-gap)}
.ga065-transform .ga065-ga-marker{width:var(--ga24-device-size);height:var(--ga24-device-size);border-width:var(--ga24-marker-border)}
.ga065-transform .ga065-ga-marker.rack{width:var(--ga24-rack-size);height:var(--ga24-rack-size);border-radius:var(--ga24-rack-radius)}
.ga065-transform .ga065-ga-marker.rack .ga065-marker-core{font-size:var(--ga24-rack-font)}
.ga065-transform .ga065-marker-label{
  top:calc(100% + var(--ga24-label-gap));border-width:var(--ga24-label-border);
  border-radius:var(--ga24-label-radius);padding:var(--ga24-label-py) var(--ga24-label-px);
  font-size:var(--ga24-label-font)
}
#ga24EditLayer{pointer-events:none}
.ga24-edit-handle{fill:#0b1825;stroke:#58adff;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:all;cursor:nwse-resize}
.ga24-edit-handle.vertex{cursor:move;fill:#14324c}
.ga24-edit-handle.radius{cursor:ew-resize;fill:#153851}
.ga24-edit-center{fill:#58adff;opacity:.9;pointer-events:none}
.ga24-shape-edit-hint{margin-top:8px;padding:8px 10px;border:1px solid rgba(74,163,255,.25);border-radius:8px;background:rgba(74,163,255,.055);color:#9db6cc;font-size:8px;line-height:1.45}
.ga24-shape-edit-hint b{color:#cce6ff}
.ga065-viewport.designer .ga065-area-shape{cursor:move}


/* MAVIT Supervisor v0.6.23 GA26 · smooth placement hot path */
.ga25-pointer-draggable{user-select:none;-webkit-user-select:none;touch-action:pan-y;contain:layout paint}
.ga25-pointer-draggable.ga25-drag-source,.ga065-ga-marker.ga25-drag-source{opacity:.45}
html.ga25-placement-dragging,html.ga25-placement-dragging *{cursor:grabbing!important}
.ga25-placement-ghost{position:fixed;left:0;top:0;z-index:100000;pointer-events:none;display:grid;grid-template-columns:22px auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;min-width:150px;max-width:260px;padding:8px 10px;border:1px solid rgba(111,148,181,.55);border-radius:10px;background:rgba(8,17,26,.94);box-shadow:0 10px 30px rgba(0,0,0,.38);backdrop-filter:blur(8px);will-change:transform;transform:translate3d(-9999px,-9999px,0)}
.ga25-placement-ghost.valid{border-color:rgba(53,201,140,.78);box-shadow:0 0 0 2px rgba(53,201,140,.12),0 10px 30px rgba(0,0,0,.38)}
.ga25-placement-ghost.invalid{border-color:rgba(229,169,47,.72)}
.ga25-placement-ghost b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga25-placement-ghost small{grid-column:2;color:var(--muted);font-size:7px}.ga25-ghost-dot{grid-row:1/3;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.8);font-size:9px;color:#061018}.ga25-ghost-dot.healthy,.ga25-ghost-dot.online{background:#35c98c}.ga25-ghost-dot.degraded,.ga25-ghost-dot.affected{background:#e5a92f}.ga25-ghost-dot.critical,.ga25-ghost-dot.offline{background:#ea566c}.ga25-ghost-dot.maintenance{background:#4aa3ff}.ga25-ghost-dot.unknown{background:#718396}.ga25-placement-ghost.rack .ga25-ghost-dot{border-radius:5px}
.ga065-area-shape.ga25-drop-target{filter:drop-shadow(0 0 var(--ga24-glow,3px) rgba(53,201,140,.85));stroke:#35c98c!important;fill:rgba(53,201,140,.10)!important}
.ga065-ga-marker{will-change:left,top,transform}.ga068-node.ga25-canvas-dragging{will-change:transform;z-index:20;box-shadow:0 14px 34px rgba(0,0,0,.38);pointer-events:none}

/* MAVIT Supervisor v0.6.23 GA26 · the equipment itself follows the pointer */
.ga065-ga-marker.ga26-live-drag{
  cursor:grabbing!important;
  opacity:1!important;
  z-index:80!important;
  transition:none!important;
  will-change:left,top;
  box-shadow:0 0 0 4px rgba(88,171,255,.16),0 8px 20px rgba(0,0,0,.46)!important;
}
.ga065-ga-marker.ga26-live-drag .ga065-marker-label{opacity:1}
.ga26-floating-marker{
  position:fixed!important;
  z-index:100000!important;
  pointer-events:none!important;
  transform:translate(-50%,-50%)!important;
  transition:none!important;
  cursor:grabbing!important;
  opacity:1!important;
  will-change:left,top;
}
.ga26-floating-marker .ga065-marker-label{opacity:1}
.ga26-floating-marker.ga26-valid,.ga065-ga-marker.ga26-live-drag:not(.ga26-invalid){
  box-shadow:0 0 0 4px rgba(53,201,140,.17),0 8px 20px rgba(0,0,0,.46)!important;
}
.ga26-floating-marker.ga26-invalid,.ga065-ga-marker.ga26-live-drag.ga26-invalid{
  box-shadow:0 0 0 4px rgba(229,169,47,.18),0 8px 20px rgba(0,0,0,.46)!important;
}

/* MAVIT Supervisor v0.6.24 · GA27 Area Interaction */
.ga27-area-prompt{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.ga27-area-prompt>div{display:grid;gap:2px}.ga27-area-prompt h4{margin:0;font-size:12px}.ga27-area-prompt small{color:var(--muted);font-size:8px}
.ga27-dialog-layer{position:fixed;inset:0;z-index:260;display:grid;place-items:center;padding:20px;background:rgba(3,8,14,.70);backdrop-filter:blur(7px)}
.ga27-dialog-layer.hidden{display:none}.ga27-dialog-card{width:min(520px,94vw);position:relative;overflow:hidden;border:1px solid var(--line2);border-radius:15px;background:linear-gradient(180deg,#151d26,#10171f);box-shadow:0 28px 90px rgba(0,0,0,.48);color:var(--text)}
.ga27-dialog-accent{height:3px;background:var(--cyan)}.ga27-dialog-layer.danger .ga27-dialog-accent{background:var(--red)}
.ga27-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 18px 10px}.ga27-dialog-head h3{margin:2px 0 0;font-size:16px}.ga27-dialog-x{margin-top:-4px}
.ga27-dialog-body{padding:3px 18px 16px;color:var(--muted);font-size:9px;line-height:1.55}.ga27-dialog-body p{margin:0 0 10px;color:var(--text)}
.ga27-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--line)}
.ga27-dialog-actions .danger{border:1px solid rgba(255,88,106,.48);background:rgba(255,88,106,.14);color:#ff9aa7;border-radius:8px;padding:8px 13px;cursor:pointer;font-weight:700}.ga27-dialog-actions .danger:hover{background:rgba(255,88,106,.20)}
.ga27-delete-summary{display:grid;gap:11px}.ga27-impact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ga27-impact-grid>div{border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025);padding:10px;display:grid;gap:3px}.ga27-impact-grid strong{font-size:16px;color:var(--text)}.ga27-impact-grid span{font-size:8px;color:var(--muted)}
.ga27-safe-note{border:1px solid rgba(74,163,255,.22);border-radius:10px;padding:10px;background:rgba(74,163,255,.06);display:grid;gap:3px}.ga27-safe-note b{color:var(--text)}.ga27-safe-note span{font-size:8px}
.ga27-edit-area-summary{border-color:rgba(74,163,255,.28)!important}.ga27-edit-area-summary .ga065-area-actions{background:rgba(74,163,255,.035)}
@media(max-width:700px){.ga27-area-prompt{align-items:stretch;flex-direction:column}.ga27-impact-grid{grid-template-columns:1fr}.ga27-dialog-actions>button{flex:1}}

/* ============================================================================
   MAVIT Supervisor v0.6.25 · GA28 Reference Frame
   All Decks tiles are presentation containers.  The GA image, Area geometry and
   physical markers share one contained reference surface matching the intrinsic
   Deck GA aspect ratio, so resizing/letterboxing cannot change engineering
   coordinates.
   ============================================================================ */
.ga28-reference-host{position:relative;overflow:hidden}
.ga28-reference-surface{position:absolute;overflow:visible;transform:none;transform-origin:0 0}
.ga28-reference-surface>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill!important;user-select:none;-webkit-user-drag:none;pointer-events:none}
.ga28-reference-surface>.ga065-overlay,.ga28-reference-surface>.ga065-marker-layer{position:absolute;inset:0;width:100%;height:100%}
.ga28-reference-surface .ga065-area-shape{vector-effect:non-scaling-stroke}
.ga28-reference-host .ga065-preview-hint{z-index:20}

/* GA29 persistent-data recovery notice */
.ga29-recovery-notice{margin:10px 0 14px;padding:10px 13px;border:1px solid rgba(55,180,120,.35);background:rgba(30,110,76,.12);border-radius:10px;display:flex;gap:10px;align-items:center;color:var(--text,#dfe8f2);font-size:12px}.ga29-recovery-notice b{color:#71d6a3}.ga29-recovery-notice span{color:var(--muted,#91a0b0)}

/* ========================================================================== 
   MAVIT Supervisor v0.6.27 GA30 · Network Workspace + Structural Equipment
   ========================================================================== */
.ga30-struct-tabs{display:flex;gap:7px;align-items:center;margin:10px 0 12px;padding:6px;border:1px solid var(--line,#243343);border-radius:12px;background:#0b1118;overflow:auto}.ga30-struct-tabs button{border:1px solid transparent;background:transparent;color:#92a3b5;padding:8px 13px;border-radius:8px;cursor:pointer;white-space:nowrap}.ga30-struct-tabs button.active{color:#eaf3ff;background:#142337;border-color:#2d5683}.ga30-struct-card{margin-bottom:11px}.ga30-struct-list{display:flex;flex-direction:column;gap:6px}.ga30-struct-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #223140;border-radius:9px;background:#0c141d}.ga30-struct-row>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.ga30-struct-row small{color:#8092a4}.ga30-rack-patch{margin-left:auto;min-width:260px;display:flex;align-items:center;gap:9px;padding:5px 8px;border:1px solid #27566f;border-radius:7px;background:#0c1b26;cursor:pointer}.ga30-rack-patch>div{display:flex;flex-direction:column;min-width:0}.ga30-rack-patch b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga30-rack-patch small{font-size:8px;color:#8fa9b9}.ga30-pp-icon{display:inline-grid;place-items:center;min-width:25px;height:19px;border-radius:5px;background:#123a50;color:#83d6ff;font-size:8px;font-weight:800;letter-spacing:.08em}.ga30-edit-hint{margin-left:auto;color:#6c8da3;font-size:8px}.rack-u.ga30-has-patch{min-height:38px;height:auto;gap:8px}.ga30-unpositioned-panels{margin-top:8px;border:1px dashed #345267;border-radius:9px;padding:8px;display:flex;flex-direction:column;gap:6px;color:#a8bfd0}

.ga30-net-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0;padding:8px 10px;border:1px solid #263543;border-radius:11px;background:#0c131b}.ga30-net-tools{display:flex;gap:6px;flex-wrap:wrap}.ga30-flow-toggle{display:flex;align-items:center;gap:7px;color:#9fb0c0;font-size:11px}.ga30-flow-toggle input{accent-color:#3ea6ff}.ga30-flow-note{display:flex;align-items:center;gap:12px;padding:8px 11px;margin-bottom:8px;border:1px solid #293b4a;border-radius:9px;background:#0c151e}.ga30-flow-note b{color:#74c8ff;font-size:9px;letter-spacing:.12em}.ga30-flow-note span{font-size:9px;color:#8499aa}.ga30-net-viewport{position:relative;overflow:auto;min-height:600px;max-height:760px;border:1px solid #2a3a47;border-radius:12px;background-color:#0a121a;background-image:linear-gradient(#1a2935 1px,transparent 1px),linear-gradient(90deg,#1a2935 1px,transparent 1px);background-size:30px 30px}.ga30-net-sizer{position:relative}.ga30-net-world{position:absolute;left:0;top:0}.ga30-net-world svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.ga30-node{position:absolute;width:160px;min-height:84px;padding:10px 11px;border:1px solid #405263;border-radius:10px;background:#121b25;color:#e6edf4;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 14px rgba(0,0,0,.16);z-index:2;user-select:none}.ga30-node b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ga30-node>small{font-size:8px;color:#8699aa}.ga30-node-top{display:flex;align-items:center;gap:6px}.ga30-node-top small{font-size:7px;letter-spacing:.12em;color:#8fa3b5}.ga30-node-status{margin-left:auto;font-size:7px;letter-spacing:.08em}.ga30-node.editing{cursor:grab}.ga30-node.dragging{cursor:grabbing;z-index:5;will-change:left,top;box-shadow:0 8px 24px rgba(0,0,0,.35)}.ga30-node.status-online{border-color:#37665a}.ga30-node.status-degraded{border-color:#8f6a27}.ga30-node.status-offline,.ga30-node.status-critical{border-color:#7d3d49}.ga30-node.status-unknown{border-color:#435261}.ga30-node.status-maintenance{border-color:#376aa1}.ga30-node-actions{display:flex;gap:4px;margin-top:4px}.ga30-node-actions button{padding:3px 6px;font-size:7px}.ga30-physical-line{stroke:#465766;stroke-width:1.4;vector-effect:non-scaling-stroke}.ga30-flow-line{stroke:#45a8ff;stroke-width:2;stroke-dasharray:3 12;fill:none;vector-effect:non-scaling-stroke;opacity:.9}.ga30-edge text{fill:#7f93a5;font-size:8px;paint-order:stroke;stroke:#0a121a;stroke-width:3px}.ga30-edge.blocked .ga30-flow-line{stroke:#6b7781;stroke-dasharray:3 8;opacity:.22;animation:none!important}.ga30-edge.blocked text{fill:#6d7a85}.ga30-net-world.flow-on .ga30-edge.active .ga30-flow-line{animation:ga30Flow 1.1s linear infinite}.ga30-net-world.flow-off .ga30-flow-line{animation:none!important;opacity:.35}.ga30-net-world.flow-on .ga30-edge.active:nth-child(3n) .ga30-flow-line{animation-duration:1.35s}.ga30-net-world.flow-on .ga30-edge.active:nth-child(3n+1) .ga30-flow-line{animation-duration:.95s}@keyframes ga30Flow{to{stroke-dashoffset:-30}}.ga30-net-empty{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);color:#758898;font-size:12px}.ga30-picker-filters{display:grid;grid-template-columns:1fr 220px;gap:8px;margin:9px 0}.ga30-device-picker{max-height:430px;overflow:auto;display:flex;flex-direction:column;gap:5px}.ga30-device-pick{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;text-align:left;padding:8px 10px;border:1px solid #263746;border-radius:8px;background:#0d151e;color:#e7eef5;cursor:pointer}.ga30-device-pick>div{display:flex;flex-direction:column}.ga30-device-pick small{color:#8194a5}.ga30-device-pick:hover{border-color:#3f6c91;background:#101d29}
@media (prefers-reduced-motion:reduce){.ga30-flow-line{animation:none!important}}
@media (max-width:760px){.ga30-picker-filters{grid-template-columns:1fr}.ga30-net-toolbar{align-items:stretch}.ga30-rack-patch{min-width:0;width:100%}}

/* MAVIT Supervisor v0.6.28 · GA31 Fine Engineering cabling import */
.ga31-import-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;margin:0 0 11px;border:1px solid var(--border);background:linear-gradient(90deg,rgba(66,153,225,.07),rgba(255,255,255,.015));border-radius:10px}.ga31-import-banner>div:first-child{display:flex;flex-direction:column;gap:3px}.ga31-import-banner b{font-size:11px}.ga31-import-banner span{font-size:8px;color:var(--muted)}.ga31-import-banner>div:last-child,.ga31-guide{display:flex;gap:7px;flex-wrap:wrap}.button-like{display:inline-flex;align-items:center;text-decoration:none}.ga31-drop{position:relative;display:flex;min-height:98px;border:1px dashed var(--border);border-radius:11px;flex-direction:column;align-items:center;justify-content:center;gap:5px;margin:11px 0;background:rgba(255,255,255,.018);transition:.15s}.ga31-drop.dragover{border-color:var(--accent);background:rgba(70,160,255,.08)}.ga31-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.ga31-drop b{font-size:11px}.ga31-drop small{font-size:8px;color:var(--muted)}.ga31-import-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0 8px}.ga31-import-summary>b{margin-left:auto;font-size:9px}.ga31-import-table{max-height:52vh;overflow:auto;border:1px solid var(--border);border-radius:9px}.ga31-import-table table{min-width:1160px}.ga31-import-table td{vertical-align:top}.ga31-import-table small{display:block;color:var(--muted);margin-top:3px;max-width:220px}.ga31-endpoint{min-width:190px}.ga31-endpoint select{width:100%;margin-top:5px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px;font-size:8px}.ga31-status{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:7px;font-weight:800;letter-spacing:.04em}.ga31-status.ready{background:rgba(40,190,120,.12);color:#67dca3}.ga31-status.review{background:rgba(241,180,55,.12);color:#f1c15b}.ga31-status.error{background:rgba(245,80,90,.12);color:#ff7c85}.ga31-status.duplicate{background:rgba(150,160,180,.14);color:var(--muted)}.ga31-row.ga31-error,.ga31-row.ga31-duplicate{opacity:.76}.ga31-import-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.ga31-schema-list{display:grid;gap:5px;margin:12px 0}.ga31-schema-list>div{display:grid;grid-template-columns:190px 1fr;gap:12px;padding:7px 8px;border-bottom:1px solid var(--border)}.ga31-schema-list b{font-size:9px}.ga31-schema-list span{font-size:8px;color:var(--muted)}.ga31-progress{margin-top:12px;border:1px solid var(--border);border-radius:9px;padding:10px}.ga31-progress>div{height:5px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;margin:7px 0}.ga31-progress>div span{display:block;height:100%;background:var(--accent);transition:width .15s}.ga31-progress small{color:var(--muted);font-size:8px}.ga31-result-errors{max-height:260px;overflow:auto;margin:10px 0}.ga31-result-errors>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--border);padding:7px}.ga31-result-errors span{font-size:8px;color:#ff7c85}

/* MAVIT Supervisor v0.6.30 · GA33 Device Import */
.ga33-import-table table{min-width:1380px}.ga33-import-table select{width:100%;min-width:180px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px;font-size:8px}.ga33-row.ga33-similar{background:rgba(241,180,55,.045)}.ga33-row.ga33-exact{background:rgba(70,160,255,.045)}.ga33-row.ga33-duplicate,.ga33-row.ga33-error{opacity:.78}.ga31-status.exact{background:rgba(70,160,255,.12);color:#75b9ff}.ga33-similarity-note{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;margin:0 0 8px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.018)}.ga33-similarity-note b{font-size:8px;color:var(--accent)}.ga33-similarity-note span{font-size:8px;color:var(--muted)}

/* MAVIT Supervisor v0.6.32 · GA35 Cable Location Register */
.ga35-entry-console,.ga35-register-card{margin-top:11px}.ga35-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.ga35-entry-grid label,.ga35-end-editor label{min-width:0}.ga35-entry-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px;flex-wrap:wrap}.ga35-register-kpis{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.ga35-register-kpis span{border:1px solid var(--border);border-radius:8px;padding:7px 10px;background:var(--panel);font-size:8px}.ga35-register-kpis b{font-size:12px;margin-right:4px}.ga35-register-table td{vertical-align:top}.ga35-register-table td>b,.ga35-register-table td>small{display:block}.ga35-end-state{display:inline-block;font-size:7px;font-weight:800;letter-spacing:.08em;padding:2px 5px;border-radius:4px;border:1px solid var(--border);margin-bottom:4px;color:var(--muted)}.ga35-status{display:inline-block;font-size:7px;font-weight:800;letter-spacing:.08em;padding:3px 6px;border-radius:999px;border:1px solid var(--border)}.ga35-status.terminated{color:#5fe3a1}.ga35-status.location-resolved{color:#6bc6ff}.ga35-status.partial-termination{color:#ffd36b}.ga35-status.incomplete{color:#ff8878}.ga35-end-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.ga35-end-editor{border:1px solid var(--border);border-radius:10px;padding:11px;background:var(--panel)}.ga35-end-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ga35-import-table{max-height:54vh;overflow:auto;border:1px solid var(--border);border-radius:8px}.ga35-import-table td{vertical-align:top;min-width:110px}.ga35-import-table td:nth-child(4),.ga35-import-table td:nth-child(5){min-width:250px}.ga35-import-table select{margin-top:6px;width:100%;min-width:220px}.ga35-cable-basket{margin:8px 0;border:1px solid var(--border);border-radius:9px;background:var(--panel);overflow:hidden}.ga35-cable-basket summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;cursor:pointer;list-style:none}.ga35-cable-basket summary::-webkit-details-marker{display:none}.ga35-cable-basket summary span:first-child{display:flex;flex-direction:column}.ga35-cable-basket summary small{color:var(--muted);font-size:8px}.ga35-basket-list{border-top:1px solid var(--border);padding:7px}.ga35-basket-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px;border-radius:7px}.ga35-basket-row:hover{background:rgba(255,255,255,.025)}.ga35-basket-row>div{display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center}.ga35-basket-row b{font-size:9px}.ga35-basket-row small{grid-column:2;color:var(--muted);font-size:8px}.ga35-cable-end-dot{width:9px;height:9px;border-radius:50%;background:#e8b24b;box-shadow:0 0 0 3px rgba(232,178,75,.12);grid-row:1/3}.ga35-register-card+.card{margin-top:11px}
@media(max-width:900px){.ga35-entry-grid{grid-template-columns:1fr 1fr}.ga35-end-grid{grid-template-columns:1fr}}@media(max-width:600px){.ga35-entry-grid{grid-template-columns:1fr}}


/* MAVIT Supervisor v0.6.33 · Imported Location Relations */
.v633-rel-card{margin-top:10px;border:1px solid var(--line,#2a3a47);background:var(--panel,#111a22);border-radius:12px;padding:12px}.v633-rel-head,.v633-rel-section-head,.v633-rel-selected{display:flex;align-items:center;justify-content:space-between;gap:12px}.v633-rel-head>div:first-child,.v633-rel-selected>div{display:flex;flex-direction:column;gap:3px}.v633-rel-head small,.v633-rel-selected small,.v633-rel-row small,.v633-unmapped-row small,.v633-queue-row small{color:var(--muted,#90a0ae)}.v633-rel-columns{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;margin-top:12px}.v633-rel-columns section{border:1px solid var(--line,#2a3a47);border-radius:10px;padding:10px;min-width:0}.v633-rel-section-head{margin-bottom:8px}.v633-rel-section-head span{color:var(--muted,#90a0ae)}.v633-rel-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto}.v633-rel-row,.v633-unmapped-row,.v633-queue-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(120,150,170,.18);background:rgba(8,16,23,.45);border-radius:9px;padding:8px 9px}.v633-rel-row>div,.v633-unmapped-row>span,.v633-queue-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}.v633-rel-row em,.v633-unmapped-row em{font-size:11px;color:var(--muted,#90a0ae);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v633-unmapped-row{justify-content:flex-start;cursor:pointer}.v633-unmapped-row input{flex:0 0 auto}.v633-rel-search{width:100%;margin-bottom:8px}.v633-rel-rule{display:flex;gap:10px;margin-top:10px;padding:9px 10px;border-radius:9px;background:rgba(46,134,222,.08);border:1px solid rgba(80,150,220,.18)}.v633-rel-rule span{color:var(--muted,#90a0ae)}.v633-queue-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.v633-queue-toolbar input{flex:1}.v633-queue{display:flex;flex-direction:column;gap:7px;max-height:55vh;overflow:auto;margin-bottom:12px}.v633-queue-row select{min-width:300px;max-width:48%}@media(max-width:900px){.v633-rel-columns{grid-template-columns:1fr}.v633-queue-row{align-items:stretch;flex-direction:column}.v633-queue-row select{max-width:none;min-width:0;width:100%}}

/* MAVIT Supervisor v0.6.34 · Structured Ports / Cable Termination / Local AI */
.v634-device-definition{margin-top:18px;padding:18px;border:1px solid var(--line,#28374d);border-radius:14px;background:linear-gradient(180deg,rgba(17,28,43,.74),rgba(10,18,29,.72))}.v634-def-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.v634-def-head h3{margin:2px 0 4px}.v634-def-head p{margin:0;color:var(--muted,#8394aa);max-width:720px}.v634-template-bar{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(160px,1fr) auto auto;gap:8px;align-items:center;margin:14px 0}.v634-template-bar select,.v634-template-bar input{min-width:0}.v634-range-builder{display:grid;grid-template-columns:1.2fr .55fr .55fr 1fr 1fr 1.2fr auto;gap:8px;margin:10px 0;padding:10px;border:1px dashed var(--line,#28374d);border-radius:10px}.v634-port-head,.v634-port-row{display:grid;grid-template-columns:34px minmax(110px,1.2fr) minmax(120px,1fr) minmax(110px,.8fr) minmax(120px,1fr) minmax(120px,1fr) minmax(110px,.8fr) 34px;gap:7px;align-items:center}.v634-port-head{padding:8px 6px;color:var(--muted,#8394aa);font-size:11px;text-transform:uppercase}.v634-port-row{padding:6px;border-top:1px solid rgba(120,145,175,.12)}.v634-port-row.terminated{background:rgba(67,144,255,.045)}.v634-port-row input,.v634-port-row select{min-width:0;width:100%}.v634-port-num{color:var(--muted,#8394aa);text-align:center}.v634-port-use{font-size:10px;font-weight:800;letter-spacing:.04em}.v634-port-use.free{color:#5fd49b}.v634-port-use.used{color:#73b8ff}.v634-ai-loading{margin-top:12px;padding:12px;border:1px solid rgba(87,161,255,.25);border-radius:10px;color:var(--muted,#8394aa)}.v634-ai-proposal{margin-top:14px;border:1px solid rgba(88,162,255,.32);border-radius:12px;padding:14px;background:rgba(16,30,48,.74)}.v634-ai-head{display:flex;justify-content:space-between;gap:12px}.v634-ai-head small{display:block;color:var(--muted,#8394aa)}.v634-ai-sources{display:flex;flex-direction:column;gap:4px;margin:10px 0}.v634-ai-sources a{color:#7fc0ff;font-size:12px}.v634-ai-port-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:260px;overflow:auto}.v634-ai-port-list label{display:flex;gap:8px;padding:8px;border:1px solid rgba(120,145,175,.13);border-radius:8px}.v634-ai-port-list small{display:block;color:var(--muted,#8394aa)}.v634-inspector-ports{margin-top:14px}.v634-inspector-port{display:grid;grid-template-columns:1.2fr 1fr .85fr 1.4fr;gap:8px;padding:8px 4px;border-top:1px solid rgba(120,145,175,.12);font-size:12px}.v634-inspector-port.used b{color:#73b8ff}.v634-inspector-port.free b{color:#5fd49b}.v634-cable-filters{display:flex;gap:9px;flex-wrap:wrap;align-items:end;margin:12px 0}.v634-cable-filters label{min-width:150px}.v634-cable-filters .form-check{min-width:auto;margin-left:auto}.v634-end-cell{display:flex;flex-direction:column;gap:5px;min-width:230px}.v634-end-cell select{max-width:330px}.v634-end-area{font-size:10px;font-weight:800;color:#77aee9;text-transform:uppercase;letter-spacing:.04em}.v634-end-cell small{max-width:330px;color:var(--muted,#8394aa)}.v634-cable-register table td{vertical-align:top}.v634-area-cables{margin:10px 0}.v634-area-cables .table-wrap{max-height:320px;overflow:auto}.v634-projected-ports{display:block;color:#93abc4!important;font-size:10px!important;margin-top:3px}.v634-projected-toggle{margin-left:auto}.ga068-node.projected{filter:saturate(.45);opacity:.78}
@media(max-width:1100px){.v634-port-head{display:none}.v634-port-row{grid-template-columns:32px 1fr 1fr}.v634-port-row>*:nth-child(n+4){grid-column:auto}.v634-template-bar,.v634-range-builder{grid-template-columns:1fr 1fr}.v634-ai-port-list{grid-template-columns:1fr}}

/* v0.6.35 — explicit Internet-Assisted Local AI progress */
.v635-ai-progress{margin-top:12px;padding:14px;border:1px solid rgba(87,161,255,.34);border-radius:12px;background:linear-gradient(180deg,rgba(16,31,49,.94),rgba(10,19,31,.94));overflow:hidden}
.v635-ai-progress-head{display:flex;align-items:center;gap:10px}.v635-ai-progress-head>div{min-width:0;flex:1}.v635-ai-progress-head b{display:block}.v635-ai-progress-head small{display:block;color:var(--muted,#8394aa);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v635-globe{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(94,176,255,.45);color:#78bdff;animation:v635Pulse 1.25s ease-in-out infinite}.v635-progress-track{height:7px;margin:12px 0 8px;border-radius:999px;background:rgba(112,139,173,.18);overflow:hidden}.v635-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4fa7ff,#76d4ff);transition:width .35s ease;position:relative}.v635-progress-track i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-100%);animation:v635Sweep 1.2s linear infinite}.v635-ai-progress-meta{display:grid;grid-template-columns:52px minmax(0,1fr) 62px;gap:8px;font-size:12px;color:var(--muted,#8394aa)}.v635-ai-progress-meta span:nth-child(2){color:var(--text,#dbe6f3)}.v635-ai-progress-meta span:last-child{text-align:right}.v635-ai-source-state{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0}.v635-ai-source-state span{font-size:10px;padding:4px 7px;border-radius:999px;border:1px solid rgba(112,145,180,.2);color:#9db3ca}.v635-ai-active-source{display:block;color:#8297ad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:9px}.v635-btn-spinner{display:inline-block;width:11px;height:11px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-1px;margin-right:6px;animation:v635Spin .7s linear infinite}@keyframes v635Spin{to{transform:rotate(360deg)}}@keyframes v635Pulse{50%{box-shadow:0 0 0 5px rgba(79,167,255,.08);transform:scale(1.05)}}@keyframes v635Sweep{to{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.v635-globe,.v635-btn-spinner,.v635-progress-track i:after{animation:none}.v635-progress-track i{transition:none}}

/* v0.6.36 Canvas performance */
.v636-canvas-status{display:inline-flex;align-items:center;gap:8px;max-width:360px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:rgba(9,17,29,.72);font-size:11px;color:var(--muted);white-space:nowrap}.v636-canvas-status b{color:var(--text);font-size:11px}.v636-canvas-status i{width:8px;height:8px;border:2px solid rgba(83,189,255,.28);border-top-color:#53bdff;border-radius:50%;animation:v636spin .8s linear infinite;flex:0 0 auto}@keyframes v636spin{to{transform:rotate(360deg)}}
.v636-lazy-cables{content-visibility:auto;contain-intrinsic-size:72px}.v636-lazy-cables>summary{cursor:pointer}.v636-area-cables-body{min-height:34px}.v636-inline-loading{display:flex;align-items:center;gap:9px;padding:14px;color:var(--muted)}.v636-inline-loading span{width:12px;height:12px;border:2px solid rgba(83,189,255,.25);border-top-color:#53bdff;border-radius:50%;animation:v636spin .8s linear infinite}.v636-lazy-end{min-width:205px;max-width:320px}.v636-pagebar,.v636-area-cable-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 2px;color:var(--muted);font-size:12px}.v636-pagebar>div,.v636-area-cable-toolbar>div{display:flex;align-items:center;gap:6px}
.ga068-node{contain:layout style paint}.ga068-edge-layer{pointer-events:none}.ga068-surface{will-change:transform}.ga068-viewport{contain:layout paint}

/* v0.6.38 · editable templates + Backbone + whole-node Canvas drag */
.v638-template-note{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;padding:11px 13px;border:1px solid rgba(80,150,220,.18);border-radius:11px;background:rgba(49,117,177,.06)}
.v638-template-note span{color:var(--muted);font-size:11px}.v638-template-grid{align-items:stretch}.v638-template-card{border:1px solid var(--line);border-radius:13px;padding:14px;background:linear-gradient(180deg,rgba(19,31,45,.88),rgba(9,16,25,.82));min-width:0}.v638-template-card.legacy{opacity:.82}.v638-template-card .head-actions{margin-top:12px}.v638-template-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.v638-template-editor-head h2{margin:2px 0 4px}.v638-template-editor-head p{margin:0;color:var(--muted);font-size:11px}.v638-template-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 8px}.v638-range-inline{display:grid;grid-template-columns:120px 65px 65px 130px 130px 140px auto;gap:7px;flex:1;min-width:620px}.v638-template-port-head,.v638-template-port{display:grid;grid-template-columns:34px minmax(110px,1.2fr) minmax(120px,1fr) minmax(110px,.9fr) minmax(120px,1fr) minmax(120px,1.2fr) 34px;gap:7px;align-items:center}.v638-template-port-head{padding:8px 6px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.v638-template-port{padding:7px 6px;border-top:1px solid rgba(120,145,175,.12)}.v638-template-port input,.v638-template-port select{min-width:0;width:100%}.v638-template-sources{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding:11px;border:1px solid rgba(85,155,220,.2);border-radius:10px}.v638-template-sources a{color:#7fc0ff;font-size:11px}.v638-ai-template-start p{color:var(--muted);max-width:760px}.v638-canvas-draggable{cursor:grab}.ga068-surface.editing .v638-canvas-draggable:hover{outline:1px solid rgba(87,168,255,.38);outline-offset:2px}.v638-canvas-draggable.ga25-canvas-dragging{cursor:grabbing!important;z-index:20!important;will-change:transform}.ga30-net-toolbar+ .ga30-flow-note{margin-top:8px}
@media(max-width:1100px){.v638-range-inline{grid-template-columns:1fr 1fr;min-width:0;width:100%}.v638-template-port-head{display:none}.v638-template-port{grid-template-columns:32px 1fr 1fr}.v638-template-port>*:nth-child(n+4){grid-column:auto}}

/* v0.6.41 · focused template research + responsive navigation */
.v641-research-panel{margin-top:16px;padding:14px;border:1px solid rgba(91,155,220,.24);border-radius:12px;background:rgba(13,25,39,.68)}
.v641-research-panel.needs-review{border-color:rgba(221,164,67,.36);background:rgba(94,65,18,.08)}
.v641-research-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.v641-research-head h3{margin:3px 0 4px}.v641-research-head p{margin:0;color:var(--muted);font-size:11px}
.v641-research-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.v641-research-result{margin-top:12px;padding:11px;border:1px solid rgba(68,180,132,.28);border-radius:10px;background:rgba(35,112,79,.08)}.v641-research-result.warn{border-color:rgba(221,164,67,.3);background:rgba(94,65,18,.08)}.v641-research-result p{margin:4px 0 0;color:var(--muted)}
.v641-source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.v641-source-head small{display:block;color:var(--muted);margin-top:2px}.v641-source-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.v641-source-row{display:flex;gap:10px;align-items:center;padding:7px;border:1px solid rgba(120,145,175,.12);border-radius:8px}.v641-source-row a{min-width:0;flex:1;text-decoration:none}.v641-source-row b,.v641-source-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v641-source-row small{color:var(--muted);margin-top:2px}.v641-source-add{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;margin-top:9px}
.content.v641-nav-pending{position:relative}.content.v641-nav-pending:after{content:'Opening ' attr(data-pending-view) '…';position:sticky;top:8px;float:right;z-index:80;margin:8px 8px -42px 0;padding:7px 10px;border:1px solid rgba(91,155,220,.26);border-radius:999px;background:rgba(11,20,31,.94);color:#9ecbfa;font-size:10px;letter-spacing:.03em;pointer-events:none}.content.v641-nav-pending>*{opacity:.985}
@media(max-width:900px){.v641-source-add{grid-template-columns:1fr}.v641-research-head{flex-direction:column}}

/* v0.6.42 · Backbone resilience + determinate page rendering progress */
main{position:relative}
.v642-render-progress{position:absolute;inset:62px 0 0 0;z-index:85;display:grid;place-items:center;background:rgba(7,11,16,.24);backdrop-filter:blur(1.5px);pointer-events:none;transition:opacity .18s ease}
.v642-render-progress.hidden{display:none!important}.v642-render-progress.done{background:rgba(7,11,16,.10)}
.v642-progress-card{width:min(420px,calc(100% - 40px));display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:center;padding:18px 20px;border:1px solid rgba(91,155,220,.32);border-radius:16px;background:rgba(12,19,28,.96);box-shadow:0 20px 60px rgba(0,0,0,.34);position:relative;overflow:hidden}
.v642-progress-ring{--progress:0;position:relative;width:104px;height:104px}.v642-progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.v642-progress-ring circle{fill:none;stroke-width:8}.v642-progress-ring .track{stroke:rgba(115,145,175,.14)}.v642-progress-ring .value{stroke:#6eb7ff;stroke-linecap:round;stroke-dasharray:320.44;stroke-dashoffset:calc(320.44 - (320.44 * var(--progress))/100);transition:stroke-dashoffset .28s ease,stroke .2s ease}.v642-render-progress.error .v642-progress-ring .value{stroke:#ff7888}
.v642-progress-value{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.v642-progress-value strong{font-size:22px;line-height:1;color:#e8f3ff}.v642-progress-value small{margin-top:3px;color:#7190aa;font-size:8px;text-transform:uppercase;letter-spacing:.15em}
.v642-progress-copy{min-width:0}.v642-progress-copy>b{display:block;margin-top:5px;font-size:15px}.v642-progress-copy>span{display:block;margin-top:6px;color:var(--muted);font-size:10px;line-height:1.45}.v642-progress-copy>.v642-progress-elapsed{display:block;margin-top:10px;color:#7fb7e8;font-size:9px}
.v642-progress-phases{position:absolute;left:150px;right:20px;bottom:13px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.v642-progress-phases i{height:2px;border-radius:999px;background:rgba(112,145,180,.16);transition:background .2s ease}.v642-progress-phases i.active{background:#5aa9ec}
.v642-backbone-note{display:flex;align-items:center;gap:9px;margin:8px 0;padding:8px 10px;border:1px solid rgba(222,171,79,.25);border-radius:10px;background:rgba(108,73,15,.07);color:#d6b576;font-size:9px}.v642-backbone-note span{color:var(--muted)}
@media(max-width:760px){.v642-progress-card{grid-template-columns:82px minmax(0,1fr);padding:14px}.v642-progress-ring{width:78px;height:78px}.v642-progress-ring circle{stroke-width:9}.v642-progress-value strong{font-size:17px}.v642-progress-phases{left:110px;right:14px}}
@media(prefers-reduced-motion:reduce){.v642-progress-ring .value,.v642-render-progress{transition:none}}


/* ========================================================================== */
/* v0.6.45 · UI polish + engineering source viewer                           */
/* ========================================================================== */
:root{--v645-surface:#111821;--v645-surface-2:#151e28;--v645-border:#2a3541;--v645-blue:#4b91ff;--v645-soft:#96a4b3}
html,body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html[data-theme="dark"] body{background:#0b1016!important;background-image:radial-gradient(circle at 72% -8%,rgba(54,113,180,.075),transparent 32%)!important}
html[data-theme="dark"] .sidebar{background:#0d131a!important;border-right-color:#202a34!important}
html[data-theme="dark"] .topbar{background:rgba(13,19,26,.94)!important;border-bottom-color:#232e39!important;box-shadow:none!important;backdrop-filter:blur(18px)!important}
html[data-theme="dark"] .content{padding:22px 24px 52px!important}
html[data-theme="dark"] .page-head{margin-bottom:16px!important;align-items:center!important}
html[data-theme="dark"] .page-head h1{font-size:27px!important;font-weight:720!important;letter-spacing:-.035em!important}
html[data-theme="dark"] .page-head p{font-size:11px!important;line-height:1.5!important;color:#8795a5!important}
html[data-theme="dark"] .card,html[data-theme="dark"] .kpi,html[data-theme="dark"] .device-filter-panel,html[data-theme="dark"] .rack-card,html[data-theme="dark"] .v638-template-card,html[data-theme="dark"] .info-box{background:#121920!important;border:1px solid #28333e!important;box-shadow:none!important;border-radius:14px!important;backdrop-filter:none!important}
html[data-theme="dark"] .card{padding:16px!important}.card-head{gap:12px}.card-head h3{font-size:13px!important;font-weight:700}
html[data-theme="dark"] .kpis{gap:10px!important}.kpi{min-height:92px!important;padding:14px 16px!important}.kpi strong{font-size:26px!important}.kpi label{font-size:9px!important;color:#8b9aa9!important}.kpi small{font-size:9px!important}
html[data-theme="dark"] .table-wrap{border:1px solid #28333e!important;border-radius:13px!important;background:#111820!important}
html[data-theme="dark"] .table{background:#111820!important}.table th{background:#171f28!important;color:#97a6b5!important;font-size:9px!important;padding:10px 11px!important;border-bottom:1px solid #2b3742!important}.table td{font-size:10px!important;line-height:1.35!important;padding:10px 11px!important;border-bottom:1px solid #242f39!important}.table tbody tr:last-child td{border-bottom:0!important}.table tr:hover td{background:#151f29!important}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{background:#151d25!important;border-color:#303b47!important;color:#e7edf3!important}
html[data-theme="dark"] input:focus,html[data-theme="dark"] select:focus,html[data-theme="dark"] textarea:focus{border-color:#4f82bc!important;box-shadow:0 0 0 3px rgba(75,145,255,.08)!important;outline:none!important}
.ghost,.danger-ghost,.primary,.secondary{min-height:34px;border-radius:9px!important;padding:8px 12px!important;font-size:10px!important;font-weight:620;box-shadow:none!important}.primary{background:#3478e5!important;border-color:#4788ec!important}.primary:hover{background:#3e82ee!important}.ghost{background:#171f27!important;border-color:#303b46!important}.ghost:hover{background:#1b2630!important;border-color:#465666!important}
.pill{font-size:8px!important;padding:4px 8px!important;font-weight:650}.status{font-size:8px!important;padding:4px 8px!important}
.row-item{padding:10px 2px!important;border-bottom-color:#25303a!important}.row-item b{font-size:10px!important}.row-item small{font-size:9px!important}.row-item .right{font-size:9px!important}
.sidebar nav button{font-size:10px!important;padding:8px 10px!important;border-radius:8px!important}.sidebar nav button:hover,.sidebar nav button.active{background:#182431!important;box-shadow:inset 2px 0 0 #5798e9!important}.nav-label{font-size:8px!important;color:#65778a!important}
.global-search input{border-radius:11px!important;background:#141c24!important;border-color:#2b3742!important;height:43px!important;font-size:11px!important}
.modal-card{width:min(1180px,96vw)!important;max-height:92vh!important;border-radius:16px!important;background:#131a22!important;border-color:#34404c!important;box-shadow:0 30px 90px rgba(0,0,0,.55)!important;padding:20px!important}.modal h2{font-size:20px!important}.device-panel{gap:12px!important}.info-box{padding:14px!important}.kv{font-size:9px!important;grid-template-columns:130px 1fr!important}.kv span{color:#8e9dad!important}
.fx-hero-card,.fx-health-panel,.fx-panel{border-radius:18px!important;box-shadow:none!important;border-color:#2a3642!important;background:#121a23!important}.fx-hero-card{min-height:355px!important;padding:22px!important}.fx-yacht-stage{height:205px!important;bottom:54px!important}.fx-hero-copy h1{font-size:34px!important}.fx-health-grid{grid-template-columns:135px repeat(5,minmax(100px,1fr))!important}.fx-status-tile{border-radius:14px!important;min-height:112px!important;background:#151e27!important}
.rack-grid{gap:12px!important}.rack-card{padding:14px!important}.rack-shell{border-color:#304252!important;background:#0e151c!important}.rack-u{min-height:20px!important}
.v638-template-grid{gap:12px!important}.v638-template-card{padding:16px!important}.v638-template-card h3{font-size:15px!important}.v641-research-panel{border-radius:14px!important}.v641-source-row{border-radius:9px!important}
.v645-security-note{display:flex;gap:12px;align-items:center;margin:0 0 12px;padding:11px 13px;border-radius:11px;border:1px solid rgba(255,102,120,.26);background:rgba(255,102,120,.055);color:#d9e2ea}.v645-security-note b{color:#ff9aa7;white-space:nowrap}.v645-security-note span{font-size:10px;color:#99a8b6}.v645-staging-table td:last-child{min-width:380px}.v645-staging-summary{display:grid;gap:5px}.v645-staging-summary p{margin:0;font-size:10px;line-height:1.45}.v645-staging-summary>div{display:flex;flex-wrap:wrap;gap:6px}.v645-staging-summary>div span{padding:4px 7px;border-radius:7px;background:#18222d;color:#9eacb9;font-size:8px}.v645-staging-summary>div b{margin-right:5px;color:#dce4eb;text-transform:capitalize}.v645-staging-message{font-size:10px;color:#aeb9c4}

/* Source provenance card in the Device inspector */
#v645DeviceSource{margin-top:12px}.v645-source-card{border:1px solid #2f3b47;border-radius:14px;background:#111820;padding:14px}.v645-source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.v645-source-head h3{font-size:14px;margin:3px 0 4px}.v645-source-head p{margin:0;color:#8e9cab;font-size:9px;line-height:1.45}.v645-source-facts{display:grid;grid-template-columns:2fr 1fr 1fr .7fr;gap:8px;margin-top:12px}.v645-source-facts>div{padding:9px 10px;border-radius:10px;background:#151e27;border:1px solid #283643;min-width:0}.v645-source-facts span{display:block;color:#8191a0;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.v645-source-facts b{display:block;margin-top:4px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v645-source-facts .accent{border-color:#315d92;background:#142236}.v645-source-facts .accent b{font-size:14px;color:#83baff}.v645-product-evidence{margin-top:12px;padding-top:11px;border-top:1px solid #28333d}.v645-source-subhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.v645-source-subhead b{font-size:10px}.v645-source-subhead span{color:#7f8f9f;font-size:8px}.v645-product-evidence>a{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;color:#dfe8f1;text-decoration:none}.v645-product-evidence>a:hover{background:#18232d}.v645-product-evidence>a>span{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#1b2e43;color:#78aff5;font-size:8px}.v645-product-evidence a b{font-size:9px}.v645-product-evidence a small{display:block;color:#788b9d;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* In-app document cross-check viewer */
.v645-doc-viewer{position:fixed;inset:0;z-index:190;background:rgba(4,8,12,.82);backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px}.v645-doc-shell{width:min(1500px,97vw);height:min(920px,94vh);display:grid;grid-template-rows:auto auto minmax(0,1fr);border:1px solid #344454;border-radius:16px;background:#10171f;box-shadow:0 40px 120px rgba(0,0,0,.62);overflow:hidden}.v645-doc-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid #293641;background:#151d26}.v645-doc-title{min-width:0}.v645-doc-title h2{margin:2px 0 2px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v645-doc-title p{margin:0;color:#8b9aa9;font-size:9px}.v645-doc-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.v645-doc-page-label{display:flex;align-items:center;gap:5px;color:#8b9aa9;font-size:9px}.v645-doc-page-label input{width:58px!important;margin:0!important;padding:7px!important}.v645-doc-close{width:34px;height:34px;border:0;background:transparent;color:#8d9ead;font-size:25px;cursor:pointer}.v645-doc-context{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 14px;border-bottom:1px solid #293641;background:#111920}.v645-doc-context>div:first-child{min-width:0}.v645-doc-context b{display:block;font-size:11px;margin-top:2px}.v645-doc-context small{color:#8393a3;font-size:8px}.v645-doc-context-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.v645-highlight-note{font-size:8px;color:#778a9c}.v645-doc-stage{min-height:0;position:relative;background:#0a0f14}.v645-doc-stage iframe{width:100%;height:100%;border:0;background:#31363b}.v645-doc-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;color:#dce4eb}.v645-doc-empty-icon{font-size:42px;color:#5c8fc8}.v645-doc-empty h3{margin:8px 0 4px}.v645-doc-empty p{max-width:620px;margin:4px auto;color:#91a1b0;font-size:10px;line-height:1.55}.button-like{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}

@media(max-width:1000px){.v645-source-facts{grid-template-columns:1fr 1fr}.v645-doc-head{align-items:flex-start;flex-direction:column}.v645-doc-actions{justify-content:flex-start}.v645-doc-shell{height:92vh}.fx-health-grid{grid-template-columns:repeat(3,1fr)!important}.fx-health-ring{grid-column:span 3}.device-panel{grid-template-columns:1fr!important}}

/* v0.6.46 · Device-vs-endpoint engineering source locator */
.v646-locator-wrap{display:flex;align-items:center;gap:7px;padding-left:6px;border-left:1px solid #2d3b48}.v646-locator-state{font-size:8px;color:#91a3b4;max-width:300px}.v646-locator-state.ok{color:#70d7a8}.v646-locator-state.warn{color:#e6bd68}.v646-locate-btn{white-space:nowrap}.v646-locate-progress{position:absolute;z-index:8;right:18px;top:18px;display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid #34516d;border-radius:12px;background:rgba(15,24,33,.96);box-shadow:0 18px 45px rgba(0,0,0,.35)}.v646-locate-progress b,.v646-locate-progress small{display:block}.v646-locate-progress b{font-size:10px}.v646-locate-progress small{font-size:8px;color:#8fa0b0;max-width:360px}.v646-mini-ring{width:28px;height:28px;border:2px solid #263d52;border-top-color:#63a9e8;border-radius:50%;animation:v646spin .9s linear infinite;display:block}.v646-mini-ring i{display:none}@keyframes v646spin{to{transform:rotate(360deg)}}.v646-candidate-tray{position:absolute;right:14px;bottom:14px;z-index:7;width:min(520px,calc(100% - 28px));max-height:46%;overflow:auto;border:1px solid #344b60;border-radius:13px;background:rgba(14,22,30,.97);box-shadow:0 22px 55px rgba(0,0,0,.42);padding:10px}.v646-candidate-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:2px 2px 8px}.v646-candidate-head b,.v646-candidate-head small{display:block}.v646-candidate-head small{color:#8597a8;font-size:8px;margin-top:2px}.v646-candidate-list{display:grid;gap:6px}.v646-candidate{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:8px;width:100%;padding:8px 9px;text-align:left;border:1px solid #2d3b47;border-radius:9px;background:#121b23;color:#dce5ed;cursor:pointer}.v646-candidate:hover{border-color:#4c7599;background:#172330}.v646-candidate b{font-size:9px}.v646-candidate small{font-size:8px;color:#8597a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v646-candidate em{font-size:8px;color:#9bb0c3;font-style:normal}.v646-source-locator-card{margin-top:10px;padding:10px 12px;border:1px solid #304252;border-radius:10px;background:#101820;display:flex;justify-content:space-between;align-items:center;gap:14px}.v646-source-locator-card b,.v646-source-locator-card small{display:block}.v646-source-locator-card b{font-size:10px;margin:2px 0}.v646-source-locator-card small{font-size:8px;color:#8597a8;max-width:760px}@media(max-width:900px){.v646-locator-wrap,.v646-source-locator-card{align-items:flex-start;flex-direction:column}.v646-locate-progress{left:12px;right:12px}.v646-candidate{grid-template-columns:auto auto 1fr}}

/* v0.6.48 · validated Device focus preview */
.v648-candidate-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:7px 8px;border:1px solid #2d3b47;border-radius:9px;background:#121b23}.v648-candidate-row:hover{border-color:#45647f;background:#15212b}.v648-candidate-page{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-width:0;border:0;background:transparent;color:#dce5ed;text-align:left;cursor:pointer;padding:2px}.v648-candidate-page b{font-size:9px;white-space:nowrap}.v648-candidate-page small{font-size:8px;color:#8597a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v648-candidate-row em{font-size:8px;color:#9bb0c3;font-style:normal}.v648-found-btn{border:1px solid rgba(72,205,145,.48);background:rgba(38,151,103,.20);color:#77dfad;border-radius:999px;padding:5px 9px;font-size:8px;font-weight:800;letter-spacing:.06em;cursor:pointer;white-space:nowrap}.v648-found-btn:hover{background:rgba(38,151,103,.34);border-color:#5ed39e;transform:translateY(-1px)}
.v648-device-focus{position:absolute;inset:0;z-index:18;display:grid;place-items:center;padding:24px;background:rgba(4,9,14,.86);backdrop-filter:blur(5px)}.v648-focus-card{width:min(1180px,94%);max-height:94%;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid #36546e;border-radius:15px;background:#101820;box-shadow:0 28px 85px rgba(0,0,0,.58)}.v648-focus-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border-bottom:1px solid #2c3a46;background:#151f29}.v648-focus-head b,.v648-focus-head small{display:block}.v648-focus-head b{margin-top:2px;font-size:12px}.v648-focus-head small{margin-top:3px;color:#889bab;font-size:8px}.v648-focus-actions{display:flex;gap:6px;align-items:center}.v648-focus-image-wrap{min-height:0;overflow:auto;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at center,#172634 0,#0b1117 65%)}.v648-focus-image-wrap img{display:block;max-width:100%;max-height:72vh;width:auto;height:auto;border:1px solid rgba(112,184,239,.38);border-radius:8px;background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.35)}.v648-focus-loading{min-height:360px;display:flex;align-items:center;justify-content:center;gap:14px;color:#dce6ef}.v648-focus-loading b,.v648-focus-loading small{display:block}.v648-focus-loading small{margin-top:3px;color:#8da0b0;font-size:8px}.v648-focus-ring{width:34px;height:34px;border:3px solid #28445c;border-top-color:#66b9f3;border-radius:50%;animation:v646spin .9s linear infinite}@media(max-width:780px){.v648-candidate-row{grid-template-columns:1fr auto}.v648-found-btn,.v648-candidate-row>.pill{grid-column:1/3;justify-self:start}.v648-focus-head{align-items:flex-start;flex-direction:column}.v648-device-focus{padding:10px}.v648-focus-card{width:98%}}


/* v0.6.51 · source Device focus fits the validated equipment to the viewport */
.v648-device-focus{background:rgba(3,8,13,.92)!important}.v648-focus-card{width:min(1280px,96%)!important;max-height:96%!important}.v648-focus-image-wrap{position:relative;overflow:auto!important;padding:22px!important;background:radial-gradient(circle at center,#1a2d3e 0,#0a1118 66%)!important}.v648-focus-image-wrap img{max-width:min(1180px,100%)!important;max-height:76vh!important;object-fit:contain!important;margin:auto!important;border:1px solid rgba(86,190,255,.7)!important;box-shadow:0 0 0 1px rgba(65,162,230,.2),0 18px 55px rgba(0,0,0,.48)!important}.v648-focus-head .eyebrow{color:#70c5ff}.v648-found-btn{box-shadow:0 0 0 1px rgba(72,205,145,.08),0 0 18px rgba(72,205,145,.08)}

/* v0.6.51 · fit validated Device to the available source-review viewport */
.v648-device-focus{padding:14px!important}
.v648-focus-card{width:min(1440px,98%)!important;height:min(92vh,960px)!important;max-height:92vh!important}
.v648-focus-image-wrap{overflow:hidden!important;padding:12px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.v648-focus-image-wrap img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;margin:0!important}
.v648-focus-actions .pill{align-self:center}
@media(max-width:780px){.v648-focus-card{height:94vh!important}.v648-focus-image-wrap{padding:6px!important}}

/* v0.6.51 · interactive source cross-check: persistent Device-name highlight */
.v651-interactive-focus{padding:10px!important;background:rgba(3,8,13,.94)!important}
.v651-focus-card{width:min(1540px,99%)!important;height:min(94vh,1040px)!important;max-height:94vh!important;grid-template-rows:auto minmax(0,1fr) auto!important}
.v651-focus-head{padding:10px 12px!important}
.v651-focus-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.v651-focus-actions .mini{min-height:31px;padding:6px 10px}
.v651-zoom-label{cursor:pointer;min-width:54px;text-align:center;justify-content:center}
.v651-panzoom-viewport{position:relative;min-height:0;overflow:hidden;background:#0a1016;cursor:grab;touch-action:none;user-select:none;border-top:1px solid #283744;border-bottom:1px solid #283744}
.v651-panzoom-viewport.dragging{cursor:grabbing}
.v651-panzoom-image{position:absolute;left:0;top:0;display:block;max-width:none!important;max-height:none!important;width:auto!important;height:auto!important;transform-origin:0 0;will-change:transform;pointer-events:none;image-rendering:auto;background:#fff;box-shadow:0 0 0 1px rgba(90,177,235,.18)}
.v651-focus-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 12px;background:#101820;color:#8193a4;font-size:8px}
.v651-focus-foot>span{display:flex;align-items:center;gap:6px}
.v651-highlight-key{display:inline-block;width:16px;height:10px;border:2px solid #16b9ff;background:rgba(16,176,255,.22);border-radius:3px;box-shadow:0 0 10px rgba(22,185,255,.25)}
@media(max-width:900px){.v651-focus-card{height:96vh!important}.v651-focus-head{align-items:flex-start!important}.v651-focus-actions{justify-content:flex-start}.v651-focus-foot{align-items:flex-start;flex-direction:column}}


/* MAVIT Supervisor v0.6.52 · live PDF.js source focus */
.v652-live-pdf-focus{background:rgba(3,8,13,.95)!important}
.v652-live-pdf-focus .v651-focus-card{width:min(1620px,99.3%)!important;height:min(95vh,1120px)!important}
.v652-pdf-viewport{position:relative;min-height:0;overflow:auto;background:#171b20;cursor:grab;overscroll-behavior:contain;scrollbar-color:#40505e #111820;scrollbar-width:thin}
.v652-pdf-viewport.dragging{cursor:grabbing}
.v652-pdf-page{position:relative;margin:18px auto;background:#fff;box-shadow:0 18px 55px rgba(0,0,0,.44),0 0 0 1px rgba(105,167,212,.18);transform-origin:0 0}
.v652-pdf-canvas{position:absolute;inset:0;display:block;background:#fff}
.v652-pdf-highlight{position:absolute;z-index:4;pointer-events:none;border:2px solid #12b8ff;background:rgba(16,184,255,.20);border-radius:3px;box-shadow:0 0 0 2px rgba(18,184,255,.08),0 0 16px rgba(18,184,255,.35)}
.v652-pdf-highlight.approx{border-style:dashed;background:rgba(16,184,255,.08)}
.v652-render-status{position:sticky;left:14px;bottom:14px;z-index:8;display:inline-flex;margin:0 0 14px 14px;padding:6px 9px;border:1px solid #34495b;border-radius:999px;background:rgba(11,18,25,.88);color:#8fa3b5;font-size:8px;opacity:0;transform:translateY(4px);transition:.18s ease;pointer-events:none}
.v652-render-status.active,.v652-render-status.error{opacity:1;transform:none}.v652-render-status.error{color:#ff9ca6;border-color:#7b3f49}
@media(max-width:900px){.v652-pdf-page{margin:8px auto}.v652-live-pdf-focus .v651-focus-card{height:97vh!important}}


/* MAVIT Supervisor v0.6.53 · centered engineering-document scan */
.v653-locate-overlay{position:absolute;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:rgba(5,10,15,.40);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:auto}
.v653-locate-card{width:min(560px,calc(100% - 32px));display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px;padding:24px 26px;border:1px solid #365675;border-radius:18px;background:rgba(13,22,31,.97);box-shadow:0 28px 85px rgba(0,0,0,.55),0 0 0 1px rgba(102,174,238,.05) inset}
.v653-locate-ring{width:58px;height:58px;border:3px solid rgba(91,135,176,.25);border-top-color:#69b5f5;border-right-color:#69b5f5;border-radius:50%;animation:v653scanSpin 1.1s linear infinite;display:block;box-shadow:0 0 24px rgba(65,151,226,.10)}
.v653-locate-ring i{display:block;width:10px;height:10px;margin:5px;border-radius:50%;background:#78c0ff;box-shadow:0 0 14px rgba(120,192,255,.7)}
.v653-locate-copy .eyebrow{display:block;margin-bottom:5px;color:#7f98ad;font-size:9px;letter-spacing:.16em}
.v653-locate-copy>b{display:block;color:#e8f0f7;font-size:17px;line-height:1.2;margin-bottom:6px}
.v653-locate-copy>small{display:block;color:#9aabba;font-size:10px;line-height:1.55}.v653-locate-copy strong{color:#dceaf5}
.v653-scan-status{margin-top:14px;padding-top:12px;border-top:1px solid #2b3a47;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;color:#9bb0c2;font-size:9px}.v653-scan-status em{font-style:normal;font-variant-numeric:tabular-nums;color:#6f879b}.v653-scan-dot{width:7px;height:7px;border-radius:50%;background:#69b5f5;box-shadow:0 0 0 5px rgba(105,181,245,.10);animation:v653scanPulse 1.3s ease-in-out infinite}
@keyframes v653scanSpin{to{transform:rotate(360deg)}}@keyframes v653scanPulse{50%{opacity:.45;box-shadow:0 0 0 9px rgba(105,181,245,.04)}}
@media(max-width:700px){.v653-locate-card{grid-template-columns:1fr;text-align:center}.v653-locate-ring{margin:auto}.v653-scan-status{text-align:left}}
@media(prefers-reduced-motion:reduce){.v653-locate-ring,.v653-scan-dot{animation:none}}

/* MAVIT Supervisor v0.6.54 · compact Device inspector */
.v654-device-modal{width:min(1500px,97vw)!important;max-height:95vh!important;padding:14px!important}
.v654-device-inspector{font-size:12px}
.v654-device-inspector .area-modal-head{margin-bottom:7px!important;align-items:center}
.v654-device-inspector .area-modal-head h2{font-size:22px!important;margin:0 0 2px!important}
.v654-device-inspector .area-modal-head p{margin:0!important}
.v654-device-inspector .head-actions{gap:6px!important;flex-wrap:wrap}
.v654-device-inspector .head-actions button{min-height:34px;padding:7px 11px}
.v654-device-inspector .assignment-banner{margin:6px 0 8px!important;padding:8px 11px!important;border-radius:10px!important;gap:10px!important;min-height:0!important}
.v654-device-inspector .assignment-banner b{font-size:9px!important;white-space:nowrap}
.v654-device-inspector .assignment-banner span{font-size:9px!important;line-height:1.35!important}
.v654-device-inspector .device-focus-card{padding:10px 12px!important;margin:8px 0 10px!important;border-radius:13px!important}
.v654-device-inspector .focus-head{align-items:center!important;gap:12px!important}
.v654-device-inspector .focus-head h4{font-size:14px!important;margin:0 0 2px!important}
.v654-device-inspector .focus-head small{font-size:9px!important;line-height:1.35!important;display:block;max-width:900px}
.v654-device-inspector .focus-kpis{margin:8px 0!important;gap:7px!important}
.v654-device-inspector .focus-kpis>div{padding:7px 9px!important;border-radius:9px!important}
.v654-device-inspector .focus-kpis span{font-size:8px!important}
.v654-device-inspector .focus-kpis b{font-size:14px!important;margin-top:2px!important}
.v654-focus-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start;margin-top:2px}
.v654-focus-chart{min-width:0;border:1px solid rgba(118,151,176,.16);border-radius:10px;padding:7px;background:rgba(3,10,16,.22)}
.v654-focus-chart .focus-plot-title{margin:0 2px 5px!important;font-size:8px!important;line-height:1.2;min-height:12px}
.v654-focus-chart .focus-plot{display:block!important;width:100%!important;height:auto!important;max-height:none!important;margin:0!important;background:rgba(2,9,15,.34)!important}
.v654-focus-chart.latency .focus-plot{aspect-ratio:720/150}
.v654-focus-chart.loss .focus-plot{aspect-ratio:720/90}
.v654-device-inspector .v654-device-panel{grid-template-columns:minmax(0,1.45fr) minmax(340px,.95fr)!important;gap:10px!important;margin-top:0!important}
.v654-device-inspector .info-box{padding:11px 13px!important;border-radius:11px!important}
.v654-device-inspector .info-box h4{font-size:11px!important;margin:0 0 7px!important}
.v654-device-inspector .kv{grid-template-columns:150px minmax(0,1fr)!important;min-height:22px!important;font-size:9px!important;gap:8px!important}
.v654-device-inspector .ga11-inherit-note{margin:5px 0!important;padding:7px 9px!important;font-size:8px!important;line-height:1.35!important}
.v654-device-inspector .ga11-section-head{margin-bottom:5px!important}
.v654-device-inspector .top-gap{margin-top:9px!important}
.v654-device-inspector .row-item,.v654-device-inspector .ga11-connection-row{padding:6px 7px!important;min-height:0!important}
.v654-device-inspector .v634-inspector-ports{margin-top:9px!important}
.v654-device-inspector .v654-empty-structured-hidden{display:none!important}
.v654-device-inspector .v645-source-card{margin-top:10px!important;padding:12px 14px!important;border-radius:12px!important}
.v654-device-inspector .v645-source-head h3{font-size:14px!important;margin:2px 0 3px!important}
.v654-device-inspector .v645-source-facts{gap:7px!important;margin-top:8px!important}
.v654-device-inspector .v645-source-facts>div{padding:8px 9px!important}
@media(max-width:1050px){.v654-focus-charts{grid-template-columns:1fr}.v654-device-inspector .v654-device-panel{grid-template-columns:1fr!important}.v654-focus-chart .focus-plot{max-height:150px!important}}
@media(max-width:700px){.v654-device-modal{width:99vw!important;padding:9px!important}.v654-device-inspector .focus-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v654-device-inspector .kv{grid-template-columns:110px minmax(0,1fr)!important}}


/* MAVIT Supervisor v0.6.55 · Device Inspector Density */
.v655-device-modal{width:min(1460px,96vw)!important;max-height:94vh!important;padding:11px!important}
.v655-device-inspector{line-height:1.28}
.v655-device-inspector .area-modal-head{padding-bottom:2px!important}
.v655-device-inspector .device-focus-card{padding:8px 10px!important;margin:6px 0 8px!important}
.v655-device-inspector .focus-head{min-height:28px!important}
.v655-device-inspector .focus-head small{font-size:8px!important;line-height:1.25!important;max-width:none!important}
.v655-device-inspector .focus-kpis{margin:6px 0!important;gap:6px!important}
.v655-device-inspector .focus-kpis>div{padding:6px 8px!important;min-height:48px!important}
.v655-focus-charts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;align-items:stretch!important;margin-top:0!important}
.v655-focus-chart{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;padding:6px!important;min-width:0!important}
.v655-focus-chart .focus-plot-title{margin:0 2px 4px!important;min-height:11px!important}
.v655-focus-chart .focus-plot{width:100%!important;height:auto!important;aspect-ratio:720/150!important;max-height:132px!important;min-height:102px!important;object-fit:contain!important}
.v655-focus-chart.latency .focus-plot,.v655-focus-chart.loss .focus-plot{aspect-ratio:720/150!important}
.v655-device-panel{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;gap:8px!important}
.v655-device-inspector .info-box{padding:9px 11px!important}
.v655-device-inspector .kv{min-height:19px!important}
.v655-device-inspector .v645-source-card{margin-top:8px!important}
@media(min-width:1250px) and (max-height:900px){
  .v655-device-modal{max-height:96vh!important}
  .v655-focus-chart .focus-plot{max-height:112px!important;min-height:92px!important}
  .v655-device-inspector .focus-kpis>div{min-height:43px!important}
}
@media(max-width:1050px){.v655-focus-charts{grid-template-columns:1fr!important}.v655-focus-chart .focus-plot{max-height:none!important;min-height:0!important}}


/* MAVIT Supervisor v0.6.56 · Area Canvas Parity + Direct Layout */
.ga068-surface.editing .v656-canvas-draggable{cursor:grab;outline:1px dashed rgba(74,163,255,.18);outline-offset:3px}
.ga068-surface.editing .v656-canvas-draggable:hover{outline-color:rgba(87,168,255,.52);box-shadow:0 12px 30px rgba(0,0,0,.30),0 0 0 1px rgba(74,163,255,.08)}
.ga068-surface.editing .v656-canvas-draggable.ga25-canvas-dragging{cursor:grabbing!important}
.ga068-edge-layer .ga068-edge path{pointer-events:stroke}
.ga068-edge-layer .ga068-edge text{pointer-events:auto}
.v656-return-hint{display:inline-flex;align-items:center;gap:6px;color:#9fb7ca}.v656-return-hint b{color:#74c8ff;font-size:11px}
.ga068-health-strip .v656-layout-state{margin-left:auto;color:#8fc4ff;letter-spacing:.07em;font-weight:700}

/* MAVIT Supervisor v0.6.59 · Native Area Canvas Device Size Controls */
.v657-card-density-controls{display:inline-flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid rgba(111,145,177,.25);border-radius:9px;background:rgba(10,20,30,.64);white-space:nowrap}
.v657-card-density-title{font-size:7px;letter-spacing:.10em;text-transform:uppercase;color:#8195aa;font-weight:800;padding:0 2px}
.v657-card-density-controls .v657-density-btn{min-width:30px;height:28px;padding:0 8px;font-size:13px;line-height:1}
.v657-card-density-controls .v657-density-btn:disabled{opacity:.32;cursor:not-allowed}
.v657-density-value{min-width:48px;height:28px;padding:0 8px;border:1px solid rgba(74,163,255,.28);border-radius:7px;background:rgba(74,163,255,.08);color:#a9d2ff;font-size:8px;font-weight:800;cursor:pointer}
.v657-density-value:hover{border-color:rgba(74,163,255,.55);background:rgba(74,163,255,.13)}
.v657-toolbar-separator{width:1px;height:24px;background:rgba(111,145,177,.20);margin:0 2px}
.v657-density-foot{margin-left:auto;color:#90a4b7}.v657-density-foot b{color:#b8c9d8}

/* Explicitly release the older 108px minimum so compact cards can shrink. */
.ga068-surface.v657-card-density .ga068-node{min-height:0!important;overflow:hidden}
.ga068-surface.v657-card-density .ga068-node-body{overflow:hidden}

.ga068-surface.v657-card-xs .ga068-node{padding:6px 6px;gap:6px;border-radius:9px}
.ga068-surface.v657-card-xs .ga068-node-state{width:7px;height:7px}
.ga068-surface.v657-card-xs .ga068-node-body{gap:1px}
.ga068-surface.v657-card-xs .ga068-node-body>b{font-size:8px}
.ga068-surface.v657-card-xs .ga068-node-body>small,.ga068-surface.v657-card-xs .ga068-node-body>em{font-size:6px}
.ga068-surface.v657-card-xs .ga068-node-kicker,.ga068-surface.v657-card-xs .ga068-projected-badge,.ga068-surface.v657-card-xs .ga068-rack-badge,.ga068-surface.v657-card-xs .ga068-physical-badge{font-size:5px}
.ga068-surface.v657-card-xs .ga068-node-actions{gap:2px}.ga068-surface.v657-card-xs .ga068-node-actions button{min-width:28px;height:21px;font-size:6px;padding:0 5px}.ga068-surface.v657-card-xs .ga068-node-drag{font-size:10px!important}

.ga068-surface.v657-card-sm .ga068-node{padding:8px 8px;gap:8px;border-radius:10px}
.ga068-surface.v657-card-sm .ga068-node-state{width:8px;height:8px}
.ga068-surface.v657-card-sm .ga068-node-body>b{font-size:9px}
.ga068-surface.v657-card-sm .ga068-node-body>small,.ga068-surface.v657-card-sm .ga068-node-body>em{font-size:6.5px}
.ga068-surface.v657-card-sm .ga068-node-kicker,.ga068-surface.v657-card-sm .ga068-projected-badge,.ga068-surface.v657-card-sm .ga068-rack-badge,.ga068-surface.v657-card-sm .ga068-physical-badge{font-size:5.5px}
.ga068-surface.v657-card-sm .ga068-node-actions{gap:3px}.ga068-surface.v657-card-sm .ga068-node-actions button{min-width:32px;height:23px;font-size:6.5px;padding:0 6px}.ga068-surface.v657-card-sm .ga068-node-drag{font-size:11px!important}

.ga068-surface.v657-card-md .ga068-node{padding:11px 10px;gap:10px}

.ga068-surface.v657-card-lg .ga068-node{padding:12px 12px;gap:11px;border-radius:13px}
.ga068-surface.v657-card-lg .ga068-node-state{width:10px;height:10px}
.ga068-surface.v657-card-lg .ga068-node-body>b{font-size:11px}
.ga068-surface.v657-card-lg .ga068-node-body>small,.ga068-surface.v657-card-lg .ga068-node-body>em{font-size:8px}
.ga068-surface.v657-card-lg .ga068-node-kicker,.ga068-surface.v657-card-lg .ga068-projected-badge,.ga068-surface.v657-card-lg .ga068-rack-badge,.ga068-surface.v657-card-lg .ga068-physical-badge{font-size:7px}
.ga068-surface.v657-card-lg .ga068-node-actions button{min-width:40px;height:29px;font-size:8px}.ga068-surface.v657-card-lg .ga068-node-drag{font-size:13px!important}

.ga068-surface.v657-card-xl .ga068-node{padding:14px 13px;gap:12px;border-radius:14px}
.ga068-surface.v657-card-xl .ga068-node-state{width:11px;height:11px}
.ga068-surface.v657-card-xl .ga068-node-body>b{font-size:12px}
.ga068-surface.v657-card-xl .ga068-node-body>small,.ga068-surface.v657-card-xl .ga068-node-body>em{font-size:9px}
.ga068-surface.v657-card-xl .ga068-node-kicker,.ga068-surface.v657-card-xl .ga068-projected-badge,.ga068-surface.v657-card-xl .ga068-rack-badge,.ga068-surface.v657-card-xl .ga068-physical-badge{font-size:7.5px}
.ga068-surface.v657-card-xl .ga068-node-actions button{min-width:44px;height:32px;font-size:9px}.ga068-surface.v657-card-xl .ga068-node-drag{font-size:14px!important}

@media(max-width:1100px){.v657-toolbar-separator{display:none}.v657-card-density-controls{order:-1}.v657-density-foot{margin-left:0}}
.ga068-surface.v657-card-xs .ga11-rack-meta{font-size:6px!important;margin-top:2px}
.ga068-surface.v657-card-sm .ga11-rack-meta{font-size:6.5px!important;margin-top:2px}
.ga068-surface.v657-card-md .ga11-rack-meta{font-size:8px!important}
.ga068-surface.v657-card-lg .ga11-rack-meta{font-size:8px!important}
.ga068-surface.v657-card-xl .ga11-rack-meta{font-size:9px!important}

/* v0.6.59 — native Area Canvas Device-size strip. Kept on its own row so it
   remains visible even when the main Canvas action toolbar is crowded. */
.ga659-device-size-strip{display:flex;align-items:center;gap:7px;padding:8px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(12,22,32,.92),rgba(9,17,25,.92));min-height:44px}
.ga659-device-size-label{font-size:7px;letter-spacing:.13em;font-weight:900;color:#8095aa;margin-right:2px}
.ga659-size-btn{height:30px;padding:0 11px;min-width:78px;font-size:8px;font-weight:800}
.ga659-size-btn:disabled{opacity:.32;cursor:not-allowed}
.ga659-size-value{height:30px;min-width:56px;padding:0 10px;border:1px solid rgba(74,163,255,.4);border-radius:8px;background:rgba(74,163,255,.11);color:#b9dcff;font-size:9px;font-weight:900;cursor:pointer}
.ga659-size-value:hover{background:rgba(74,163,255,.17);border-color:rgba(74,163,255,.65)}
.ga659-size-name{font-size:8px;color:#8fa3b6;margin-left:2px}
@media(max-width:900px){.ga659-device-size-strip{padding:8px 12px;flex-wrap:wrap}.ga659-size-name{width:100%;margin-left:0}}
