:root{--bg: #04111d;--bg-soft: #071a29;--panel: #071d2e;--panel-2: #0a263a;--line: #1d4963;--line-soft: rgba(76, 143, 179, .24);--text: #f0f8fd;--muted: #86a8bd;--muted-2: #587a90;--cyan: #39dcff;--blue: #3897ff;--green: #4bea8a;--amber: #ffc34a;--red: #ff6d66;--shadow: 0 18px 48px rgba(0, 0, 0, .28);--header-h: 60px;--nav-w: 86px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 46% -10%,rgba(24,92,130,.32),transparent 42%),linear-gradient(145deg,#061726,var(--bg) 55%);color:var(--text);font-family:Inter,Pretendard,Noto Sans KR,Apple SD Gothic Neo,Arial,sans-serif;letter-spacing:-.02em}button,select,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ems-topbar{position:fixed;z-index:50;inset:0 0 auto;height:var(--header-h);display:grid;grid-template-columns:288px minmax(320px,1fr) auto;align-items:center;padding:0 15px;background:#04111df5;border-bottom:1px solid rgba(71,139,175,.35);box-shadow:0 10px 28px #0003;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:15px;color:var(--text);text-decoration:none}.brand-logo{width:auto;height:44px;display:block;padding:4px 7px;border-radius:5px;background:#fff;object-fit:contain}.efd-wordmark{font-size:27px;font-style:italic;font-weight:950;line-height:.75;letter-spacing:.07em}.efd-wordmark small{display:block;margin-top:8px;color:var(--cyan);font-size:6px;font-style:normal;font-weight:800;letter-spacing:.04em}.brand-divider{width:1px;height:34px;background:#365b72}.product-name{display:flex;flex-direction:column;gap:3px}.product-name b{font-size:18px}.product-name small{color:var(--muted);font-size:7px;letter-spacing:.18em}.fleet-control{display:flex;align-items:center;gap:8px;min-width:0}.control-caption{color:var(--muted);font-size:7px;letter-spacing:.15em}.vessel-select{width:min(320px,42vw);height:38px;appearance:none;border:1px solid #2a5975;border-radius:6px;outline:none;background:linear-gradient(45deg,transparent 50%,#8eb6ca 50%) calc(100% - 15px) 16px / 5px 5px no-repeat,linear-gradient(135deg,#8eb6ca 50%,transparent 50%) calc(100% - 10px) 16px / 5px 5px no-repeat,#081f32;color:#e3f3fb;padding:0 35px 0 12px;font-size:11px;font-weight:800}.vessel-select:focus{border-color:var(--cyan);box-shadow:0 0 0 2px #39dcff1f}.fleet-count{height:26px;padding:0 8px;display:flex;align-items:center;gap:6px;border-left:1px solid #315a72;color:var(--muted);font-size:7px;letter-spacing:.12em;border-top:0;border-right:0;border-bottom:0;background:transparent;cursor:pointer}.fleet-count b{color:var(--cyan);font-size:11px}.fleet-count i{color:var(--cyan);font-size:8px;font-style:normal;transition:transform .2s ease}.fleet-count:hover{color:#fff}.fleet-count:hover i{transform:translate(2px,-2px)}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.stream-pill{height:38px;display:flex;align-items:center;gap:9px;border:1px solid rgba(75,234,138,.42);border-radius:6px;background:#4bea8a0f;color:var(--text);padding:0 11px;cursor:pointer}.stream-pill:hover{border-color:var(--green);background:#4bea8a1a}.stream-pill.external{border-color:#39dcff94;background:#39dcff14}.stream-pulse{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #4bea8a1a,0 0 12px var(--green);animation:pulse 1.8s infinite}.stream-pill>span:last-child{display:flex;flex-direction:column;align-items:flex-start}.stream-pill b{font-size:8px;letter-spacing:.08em}.stream-pill small{margin-top:2px;color:var(--muted);font-size:6px}.scenario-control{height:38px;display:grid;place-items:center;border:1px solid #315972;border-radius:6px;background:#081f32}.scenario-control.warning{border-color:#ffc34abf;background:#ffc34a14}.scenario-control select{max-width:158px;border:0;outline:0;background:transparent;color:var(--green);padding:0 8px;font-size:8px;font-weight:900}.scenario-control.warning select{color:var(--amber)}#clock{min-width:116px;color:#a8c2d2;font-size:8px;line-height:1.35;text-align:right;font-variant-numeric:tabular-nums}.side-nav{position:fixed;z-index:40;top:var(--header-h);bottom:0;left:0;width:var(--nav-w);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,#082640,#061a2b);border-right:1px solid rgba(71,139,175,.28)}.side-nav nav{padding-top:6px}.nav-item{position:relative;width:100%;height:54px;display:flex;align-items:center;gap:10px;padding:0 9px;border:0;border-left:3px solid transparent;background:transparent;color:#89a9bc;cursor:pointer;text-align:left;transition:.2s ease}.nav-item:hover,.nav-item.active{border-left-color:var(--cyan);background:linear-gradient(90deg,rgba(57,151,255,.24),transparent);color:#fff}.nav-item>span{width:22px;color:#b9d8e9;font-size:17px;text-align:center}.nav-item b{font-size:8px}.nav-item i{position:absolute;top:10px;right:10px;display:none;min-width:15px;padding:2px 4px;border-radius:10px;background:var(--red);color:#fff;font:800 7px/1 sans-serif;text-align:center}.nav-item i.show{display:block}.side-foot{position:relative;margin:12px;padding:12px 10px;border:1px solid rgba(67,123,153,.3);border-radius:6px;background:#08253a99}.side-foot span{display:block;color:var(--green);font-size:7px;font-weight:900;letter-spacing:.12em}.side-foot small{color:var(--muted);font-size:6px}.side-foot i{position:absolute;top:13px;right:10px;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.control-main{min-height:100vh;padding:68px 10px 10px calc(var(--nav-w) + 10px)}.dashboard-canvas{width:min(100%,calc((100vh - 78px)*1.7778));max-width:1920px;aspect-ratio:16 / 9;margin:0 auto;display:grid;grid-template-rows:.78fr 4.75fr 3.72fr .75fr;gap:7px}.telemetry-strip{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr .9fr;gap:7px;min-height:0}.kpi-tile{position:relative;min-width:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:7px 11px;border:1px solid var(--line-soft);border-radius:6px;overflow:hidden;background:linear-gradient(145deg,#0c293ef5,#061a2afa);box-shadow:var(--shadow)}.kpi-tile:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,rgba(57,220,255,.55),transparent)}.kpi-tile.emphasis{border-color:#39dcff6b}.kpi-icon{width:31px;height:31px;display:grid;place-items:center;border:1px solid #2e647e;border-radius:50%;background:#082238;color:var(--cyan);font-size:14px}.battery-icon{color:var(--green)}.solar-icon{color:var(--amber)}.speed-icon{color:#67aaff;transform:rotate(-12deg)}.kpi-tile small{display:block;color:var(--muted);font-size:clamp(6px,.48vw,8px);letter-spacing:.1em;white-space:nowrap}.kpi-tile strong{display:block;margin-top:3px;font-size:clamp(12px,1vw,18px);font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-tile strong em{color:var(--muted);font-size:8px;font-style:normal;font-weight:600}.kpi-delta{align-self:end;padding-bottom:3px;color:var(--green);font-size:8px;font-weight:850;white-space:nowrap}.weather-icon{color:#78d7ff}.weather-risk-tile.warning{border-color:#ffc34ac7;background:linear-gradient(145deg,#462e0ff5,#1a1919fa)}.weather-risk-tile.warning .kpi-delta{color:var(--amber)}.link-bars{height:26px;display:flex;align-items:flex-end;gap:2px}.link-bars i{width:4px;border-radius:2px;background:var(--green);box-shadow:0 0 6px #4bea8a59}.link-bars i:nth-child(1){height:8px}.link-bars i:nth-child(2){height:13px}.link-bars i:nth-child(3){height:19px}.link-bars i:nth-child(4){height:25px}.primary-grid{display:grid;grid-template-columns:2.55fr 3.8fr 2.7fr 3.1fr;gap:7px;min-height:0}.secondary-grid{display:grid;grid-template-columns:3.55fr 2.35fr 2.4fr 2.7fr 2.6fr;gap:7px;min-height:0}.monitor-panel{min-width:0;min-height:0;display:grid;grid-template-rows:40px 1fr;overflow:hidden;border:1px solid #1d4a65;border-radius:6px;background:linear-gradient(150deg,#092234fa,#051726fc);box-shadow:var(--shadow);transition:border-color .22s ease,box-shadow .22s ease}.monitor-panel.focus{border-color:var(--cyan);box-shadow:0 0 0 1px #39dcff4d,0 0 36px #39dcff1f}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #173d55;background:linear-gradient(180deg,#0f334ce6,#081f31e6)}.panel-header>div:first-child{min-width:0;display:flex;align-items:center;gap:8px}.panel-index{color:var(--cyan);font-size:7px;font-weight:900;letter-spacing:.1em}.panel-header h2{overflow:hidden;margin:0;font-size:clamp(11px,.76vw,14px);white-space:nowrap;text-overflow:ellipsis}.panel-meta{overflow:hidden;color:var(--muted);font-size:8px;white-space:nowrap;text-overflow:ellipsis}.panel-meta b{color:#cfe4ef}.panel-meta em{margin-left:7px;padding:3px 5px;border:1px solid rgba(75,234,138,.45);border-radius:3px;background:#4bea8a0f;color:var(--green);font-size:5px;font-style:normal;font-weight:900;letter-spacing:.08em}.live-tag{color:var(--green);font-size:7px;font-weight:900;letter-spacing:.12em}.live-tag i{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.panel-actions{display:flex;align-items:center;gap:7px}.pms-mini{display:flex;align-items:center;gap:5px;padding:3px 6px;border:1px solid rgba(57,220,255,.38);border-radius:4px;background:#39dcff0d;color:var(--cyan);cursor:pointer}.pms-mini small{font-size:4px;font-weight:900;letter-spacing:.08em}.pms-mini b{font-size:6px;white-space:nowrap}.pms-mini:hover{border-color:var(--cyan);background:#39dcff1a}.map-visual{position:relative;min-height:0;overflow:hidden;background:#082338}.map-visual>img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.82) contrast(1.08) brightness(.72) hue-rotate(4deg);transform:scale(1.02)}.map-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#020c1414,#020c1457);pointer-events:none}.route-overlay{position:absolute;z-index:2;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 5px rgba(57,220,255,.8))}.route-overlay path{fill:none;stroke:var(--cyan);stroke-width:2;stroke-dasharray:7 7;animation:routeDash 12s linear infinite}.route-pin{position:absolute;z-index:4;min-width:92px;padding:6px 8px 6px 23px;border:1px solid rgba(73,139,174,.55);border-radius:4px;background:#051a2ae6;box-shadow:0 8px 18px #00000057}.route-pin.start{top:6%;left:7%}.route-pin.end{right:3%;bottom:9%}.route-pin i{position:absolute;top:9px;left:8px;width:8px;height:8px;border:2px solid var(--red);border-radius:50%}.route-pin small{display:block;color:var(--muted);font-size:5px;letter-spacing:.1em}.route-pin b{display:block;margin-top:2px;font-size:8px}.vessel-marker{position:absolute;z-index:5;left:51%;top:48%;display:flex;align-items:center;gap:5px;transform:translate(-50%,-50%);transition:left 1s linear,top 1s linear}.vessel-marker:before{content:"";position:absolute;width:38px;height:38px;left:-13px;top:-12px;border:1px solid rgba(57,220,255,.65);border-radius:50%;animation:mapPulse 1.8s infinite}.vessel-marker i{color:#fff;font-size:15px;font-style:normal;filter:drop-shadow(0 0 5px var(--cyan));transform:rotate(32deg)}.vessel-marker b{padding:3px 5px;border-radius:3px;background:#03111cd1;color:var(--cyan);font-size:6px}.geofence-zone{position:absolute;z-index:1;right:-8%;bottom:-10%;width:42%;aspect-ratio:1.45;border:1px dashed rgba(255,195,74,.85);border-radius:50%;background:#ffc34a0d;box-shadow:inset 0 0 20px #ffc34a0f}.geofence-zone i{position:absolute;inset:8%;border:1px solid rgba(255,195,74,.24);border-radius:inherit}.geofence-zone b{position:absolute;top:16%;left:22%;color:var(--amber);font-size:4px;letter-spacing:.1em}.ais-target{position:absolute;z-index:6;display:flex;align-items:center;gap:4px;padding:3px 5px;border:1px solid rgba(115,177,209,.5);border-radius:4px;background:#041623d6;color:#d7eaf3;cursor:pointer;text-align:left}.ais-target:hover{border-color:var(--cyan);background:#0c364ef0}.ais-target>i{color:#6faeca;font-size:8px;font-style:normal;transform:rotate(24deg)}.ais-target b{display:block;font-size:5px;letter-spacing:.04em}.ais-target small{display:block;color:var(--muted);font-size:4px;white-space:nowrap}.ais-target.risk{border-color:var(--amber);background:#4f310fe6;animation:targetAlert 1.3s infinite}.ais-target.risk>i,.ais-target.risk small{color:var(--amber)}.target-a{left:28%;top:38%}.target-b{right:22%;top:27%}.target-c{left:46%;bottom:26%}.map-layer-controls{position:absolute;z-index:7;top:39px;right:8px;display:grid;gap:3px}.map-layer-controls button{min-width:48px;padding:4px 5px;border:1px solid rgba(65,126,159,.5);border-radius:3px;background:#041623d6;color:var(--muted);font-size:4px;font-weight:900;cursor:pointer;letter-spacing:.05em}.map-layer-controls button.active{border-color:#39dcffb3;background:#39dcff17;color:var(--cyan)}.map-visual.hide-ais .ais-target,.map-visual.hide-weather .map-environment,.map-visual.hide-geofence .geofence-zone{display:none}.map-coordinates{position:absolute;z-index:4;left:8px;bottom:8px;display:flex;gap:5px}.map-coordinates span{padding:4px 6px;border:1px solid rgba(65,126,159,.45);border-radius:3px;background:#041623d1;color:#c4dbe8;font-size:6px;font-variant-numeric:tabular-nums}.map-environment{position:absolute;z-index:4;top:8px;right:8px;display:flex;gap:4px}.map-environment span{padding:4px 5px;border:1px solid rgba(65,126,159,.45);border-radius:3px;background:#041623d6;color:var(--muted);font-size:5px;letter-spacing:.05em}.map-environment b{margin-left:2px;color:#d9edf7;font-size:6px}.voyage-progress{position:absolute;z-index:5;right:8px;bottom:8px;width:38%;padding:5px 7px;border:1px solid rgba(65,126,159,.5);border-radius:4px;background:#041623e0}.voyage-progress>span{display:flex;align-items:center;justify-content:space-between}.voyage-progress b{color:#d9edf7;font-size:6px}.voyage-progress small{color:var(--cyan);font-size:6px}.voyage-progress>i{display:block;height:3px;margin-top:4px;overflow:hidden;border-radius:3px;background:#183b50}.voyage-progress u{display:block;width:58%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 6px #39dcff99;text-decoration:none;transition:width .8s linear}.voyage-eta{margin-top:4px;padding-top:4px;border-top:1px solid rgba(65,126,159,.45)}.voyage-eta b{color:var(--muted);font-size:5px;letter-spacing:.06em}.voyage-eta em{color:var(--cyan);font-size:7px;font-style:normal}.voyage-eta small{color:#d7eaf3;font-size:5px}.weather-card{border-color:#4487a8a6}.weather-card.warning{border-color:#ffc34ad1;box-shadow:0 0 0 1px #ffc34a29,var(--shadow)}.weather-source{display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid rgba(57,220,255,.35);border-radius:4px;background:#39dcff0a;color:var(--cyan);cursor:pointer}.weather-source i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 7px var(--green)}.weather-source span{font-size:5px;font-weight:900;letter-spacing:.08em}.weather-dashboard{min-height:0;display:grid;grid-template-rows:1.15fr .82fr auto .72fr;padding:0;overflow:hidden;border:0;background:linear-gradient(155deg,#092a40,#061b2c 72%);color:var(--text);cursor:pointer;text-align:left}.weather-dashboard:hover{background:linear-gradient(155deg,#0b3049,#071f32 72%)}.weather-hero{min-height:0;display:grid;grid-template-columns:1.15fr .85fr;border-bottom:1px solid #173d55}.wave-hero{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:8px 10px;overflow:hidden;border-right:1px solid #173d55}.wave-hero>small,.wind-hero div>small{color:var(--muted);font-size:6px;letter-spacing:.1em}.wave-hero strong{position:relative;z-index:2;display:flex;align-items:baseline;gap:3px;margin-top:2px;font-size:clamp(24px,2vw,38px);font-variant-numeric:tabular-nums}.wave-hero strong em{color:var(--cyan);font-size:10px;font-style:normal}.wave-hero>b{position:relative;z-index:2;color:var(--green);font-size:7px;letter-spacing:.1em}.wave-hero svg{position:absolute;right:-10px;bottom:4px;width:82%;height:42%;opacity:.5}.wave-hero path{fill:none;stroke:var(--cyan);stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px rgba(57,220,255,.6))}.weather-card.warning .wave-hero>b{color:var(--amber)}.weather-card.warning .wave-hero path{stroke:var(--amber)}.wind-hero{min-width:0;display:grid;grid-template-columns:56px 1fr;align-items:center;gap:6px;padding:8px}.wind-hero div strong,.wind-hero div em{display:block;white-space:nowrap}.wind-hero div strong{margin-top:4px;font-size:9px}.wind-hero div em{margin-top:3px;color:var(--cyan);font-size:6px;font-style:normal}.wind-compass{position:relative;width:48px;aspect-ratio:1;display:grid;place-items:center;border:1px solid #3b7998;border-radius:50%;background:radial-gradient(circle,rgba(57,220,255,.08),transparent 65%)}.wind-compass:before,.wind-compass:after{content:"";position:absolute;background:#5e9fbf59}.wind-compass:before{width:1px;height:84%}.wind-compass:after{width:84%;height:1px}.wind-compass i{position:relative;z-index:2;color:var(--cyan);font-size:18px;font-style:normal;transform:rotate(247deg);filter:drop-shadow(0 0 5px var(--cyan));transition:transform .5s ease}.wind-compass b,.wind-compass em,.wind-compass u,.wind-compass small{position:absolute;color:var(--muted);font-size:4px;font-style:normal;text-decoration:none}.wind-compass b{top:2px}.wind-compass em{right:3px}.wind-compass u{bottom:2px}.wind-compass small{left:3px}.weather-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#173d55}.weather-metrics span{min-width:0;padding:6px 7px;background:#071f32}.weather-metrics small,.weather-metrics b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weather-metrics small{color:var(--muted);font-size:5px;letter-spacing:.07em}.weather-metrics b{margin-top:3px;font-size:7px;font-variant-numeric:tabular-nums}.weather-decision{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:6px 8px;border-block:1px solid rgba(75,234,138,.22);background:#4bea8a0d}.weather-decision>i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.weather-decision span b,.weather-decision span small{display:block}.weather-decision span b{color:var(--green);font-size:7px}.weather-decision span small{margin-top:2px;color:#b8d4c5;font-size:5px}.weather-decision>em{color:var(--muted);font-size:5px;font-style:normal;white-space:nowrap}.weather-card.warning .weather-decision{border-color:#ffc34a52;background:#ffc34a14}.weather-card.warning .weather-decision>i{background:var(--amber);box-shadow:0 0 8px var(--amber)}.weather-card.warning .weather-decision span b{color:var(--amber)}.weather-forecast{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#173d55}.weather-forecast span{min-width:0;display:grid;grid-template-columns:auto 1fr;align-content:center;gap:2px 5px;padding:5px 6px;background:#071b2b}.weather-forecast time{grid-row:1 / 3;align-self:center;color:var(--muted);font-size:5px}.weather-forecast b{font-size:7px}.weather-forecast small{color:var(--cyan);font-size:5px}.marine-forecast-list{padding:5px 12px 12px}.marine-forecast-list article{display:grid;grid-template-columns:54px 1fr 1fr 1fr;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid rgba(36,77,104,.65)}.marine-forecast-list article:last-child{border:0}.marine-forecast-list time{color:var(--cyan);font-size:7px}.marine-forecast-list b{font-size:7px}.marine-forecast-list span{color:var(--muted);font-size:6px}.marine-forecast-list em{color:#d9ebf4;font-size:6px;font-style:normal;text-align:right}.weather-guidance{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px}.weather-guidance span{padding:10px;border:1px solid #244d68;border-radius:6px;background:#071b2c}.weather-guidance small,.weather-guidance b{display:block}.weather-guidance small{color:var(--muted);font-size:6px}.weather-guidance b{margin-top:5px;font-size:8px}.vessel-schematic{position:relative;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(28,82,112,.28),transparent 50%)}.vessel-schematic:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(65,126,159,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(65,126,159,.07) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:linear-gradient(transparent,black 25%,black 75%,transparent);mask-image:linear-gradient(transparent,black 25%,black 75%,transparent)}.system-wires{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}.system-wires path{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.system-wires .power-wire{stroke:var(--cyan);filter:drop-shadow(0 0 4px rgba(57,220,255,.8))}.system-wires .data-wire{stroke:#ffb84b;stroke-dasharray:4 5}.system-wires circle{fill:#fff;stroke:var(--cyan);stroke-width:2}.ship-hull{position:absolute;z-index:2;top:7%;left:50%;width:30%;height:84%;transform:translate(-50%);clip-path:polygon(50% 0,81% 11%,95% 67%,79% 100%,21% 100%,5% 67%,19% 11%);background:linear-gradient(90deg,#153e55,#24546b 48%,#103449 52%,#08273b);filter:drop-shadow(0 0 .8px #8cc8e5) drop-shadow(0 12px 18px rgba(0,0,0,.52))}.ship-hull:after{content:"";position:absolute;inset:5px;clip-path:inherit;border:1px solid rgba(121,190,222,.5);background:linear-gradient(90deg,transparent 49.4%,rgba(101,170,200,.3) 50%,transparent 50.6%)}.hull-grid{position:absolute;z-index:1;inset:12% 23%;background-image:linear-gradient(rgba(90,163,196,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(90,163,196,.15) 1px,transparent 1px);background-size:12px 12px}.solar-array{position:absolute;z-index:3;top:21%;left:24%;right:24%;display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.solar-array i{aspect-ratio:.72;border:1px solid #4b8ead;background:linear-gradient(135deg,#164963,#0e2b3f);box-shadow:inset 0 0 5px #39dcff2e}.solar-array b{grid-column:1 / -1;color:var(--muted);font-size:4px;letter-spacing:.15em;text-align:center}.battery-pack{position:absolute;z-index:3;top:43%;left:27%;right:27%;padding:6px 3px;border:1px solid rgba(75,234,138,.65);border-radius:3px;background:#0a2e37;text-align:center;box-shadow:0 0 10px #4bea8a1f}.battery-pack b{display:block;color:#9ac6b1;font-size:4px;letter-spacing:.12em}.battery-pack em{display:block;margin-top:2px;color:var(--green);font-size:9px;font-style:normal;font-weight:900}.efd-controller{position:absolute;z-index:3;top:63%;left:31%;right:31%;padding:6px 2px;border:1px solid #87a7b8;border-radius:3px;background:linear-gradient(145deg,#b9c6cd,#5e7582);color:#0b2738;text-align:center;box-shadow:0 0 13px #39dcff2e}.efd-controller b{display:block;font-size:10px;font-style:italic;font-weight:950}.efd-controller small{display:block;font-size:3px;font-weight:900;letter-spacing:.08em}.efd-controller i{position:absolute;top:4px;right:4px;width:3px;height:3px;border-radius:50%;background:var(--green);box-shadow:0 0 5px var(--green)}.ship-name{position:absolute;z-index:3;bottom:11%;left:0;right:0;color:#d3e9f49e;font-size:4px;letter-spacing:.12em;text-align:center}.equipment-node{position:absolute;z-index:5;min-width:0;display:flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid rgba(51,105,135,.7);border-radius:5px;background:#051a2ae6;color:var(--text);cursor:pointer;text-align:left;transition:.2s ease}.equipment-node:hover{border-color:var(--cyan);transform:translateY(-1px);box-shadow:0 0 16px #39dcff1a}.equipment-node>div{min-width:0}.equipment-node small,.motor-metric small{display:block;color:var(--muted);font-size:6px;letter-spacing:.05em;white-space:nowrap}.equipment-node strong{display:block;margin-top:2px;font-size:9px;font-variant-numeric:tabular-nums}.equipment-node em{display:block;margin-top:2px;color:var(--green);font-size:5px;font-style:normal;font-weight:900;letter-spacing:.08em}.equipment-node.warning{border-color:#ffc34aad}.equipment-node.warning em{color:var(--amber)}.bow-node{top:4%;left:4%}.port-node{left:3%;top:52%}.starboard-node{right:3%;top:52%;flex-direction:row-reverse;text-align:right}.stern-node{right:4%;bottom:4%}.motor-art,.compact-motor{flex:0 0 auto;position:relative;display:grid;place-items:center}.motor-art{width:36px;height:36px}.rim-art{border:4px solid var(--cyan);border-radius:50%;box-shadow:inset 0 0 0 3px #0a2c42,0 0 9px #39dcff4d}.rim-art:before,.rim-art:after{content:"";position:absolute;width:3px;height:58%;border-radius:2px;background:#5eb7d7;transform:rotate(45deg)}.rim-art:after{transform:rotate(-45deg)}.rim-art i{width:33%;height:33%;border-radius:50%;background:#061a2b;border:2px solid #a9d8e9;z-index:2}.rim-art u{position:absolute;inset:4px;border:1px dashed rgba(255,255,255,.55);border-radius:50%;text-decoration:none;animation:spin 4s linear infinite}.thruster-art{border:2px solid #6faecb;border-radius:50%;background:#09273a;box-shadow:0 0 8px #39dcff29}.thruster-art i{width:70%;height:4px;border-radius:3px;background:var(--cyan);box-shadow:0 -7px 0 -1px #5aa6c7,0 7px 0 -1px #5aa6c7}.schematic-legend{position:absolute;z-index:6;right:7px;top:7px;display:flex;gap:8px;color:var(--muted);font-size:5px}.schematic-legend span:before{content:"";display:inline-block;width:12px;height:2px;margin-right:3px;vertical-align:middle;background:#456c81}.schematic-legend .energy-key:before{background:var(--cyan)}.schematic-legend .data-key:before{background:#ffb84b}.digital-vessel{background:#061827;isolation:isolate}.digital-vessel:before{z-index:2;opacity:.4;pointer-events:none}.digital-vessel-image{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.07) brightness(.76)}.vessel-image-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,#030e1814,#030e1829 54%,#030e18d4),linear-gradient(90deg,rgba(3,14,24,.24),transparent 32%,transparent 70%,rgba(3,14,24,.18));pointer-events:none}.digital-vessel-status{position:absolute;z-index:8;top:8px;left:9px;padding:6px 8px;border:1px solid rgba(57,220,255,.42);border-radius:4px;background:#041623db;box-shadow:0 8px 20px #0000003d}.digital-vessel-status span{display:flex;align-items:center;gap:5px;color:var(--green);font-size:6px;letter-spacing:.06em}.digital-vessel-status i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.digital-vessel-status small{display:block;margin-top:3px;color:var(--muted);font-size:5px;letter-spacing:.12em}.sensor-hotspot{position:absolute;z-index:7;min-width:0;display:flex;align-items:center;gap:4px;padding:3px 5px;border:1px solid rgba(87,157,191,.68);border-radius:4px;background:#041623e6;color:#dff3fb;box-shadow:0 6px 14px #00000038;cursor:pointer;text-align:left;transition:.18s ease}.sensor-hotspot:hover,.sensor-hotspot:focus-visible{z-index:12;border-color:var(--cyan);background:#083046f5;transform:translateY(-1px);outline:none}.sensor-hotspot>i{width:7px;height:7px;flex:0 0 auto;border:2px solid var(--cyan);border-radius:50%;background:#071d2e;box-shadow:0 0 0 3px #39dcff17,0 0 7px #39dcff99}.sensor-hotspot b,.sensor-hotspot small{display:block;white-space:nowrap}.sensor-hotspot b{font-size:4px;letter-spacing:.06em}.sensor-hotspot small{margin-top:1px;color:var(--cyan);font-size:5px;font-variant-numeric:tabular-nums}.sensor-hotspot.warning{border-color:var(--amber);background:#4d300deb;animation:targetAlert 1.3s infinite}.sensor-hotspot.warning>i{border-color:var(--amber);box-shadow:0 0 0 3px #ffc34a1a,0 0 8px var(--amber)}.sensor-hotspot.warning small{color:var(--amber)}.weather-sensor{top:5%;left:58%}.nav-sensor{top:23%;left:64%}.bridge-sensor{top:36%;right:4%}.fire-sensor{top:46%;left:54%}.battery-sensor{top:51%;left:23%}.controller-sensor{top:35%;left:38%}.bilge-sensor{left:9%;bottom:19%}.depth-sensor{left:48%;bottom:17%}.cooling-sensor{right:8%;bottom:23%}.propulsion-tag{position:absolute;z-index:7;bottom:15%;display:grid;grid-template-columns:auto auto;gap:1px 5px;min-width:75px;padding:4px 6px;border:1px solid rgba(57,220,255,.62);border-radius:4px;background:#041623e6;color:#e8f8ff;cursor:pointer;text-align:left}.propulsion-tag b{color:var(--cyan);font-size:5px}.propulsion-tag strong{font-size:7px}.propulsion-tag em{grid-column:1/-1;color:var(--green);font-size:4px;font-style:normal;letter-spacing:.08em}.propulsion-tag.warning{border-color:var(--amber)}.propulsion-tag.warning em{color:var(--amber)}.port-drive{left:20%}.stbd-drive{right:16%}.hidden-device-data{display:none}.sensor-bus-rail{position:absolute;z-index:8;left:8px;right:8px;bottom:6px;min-height:23px;display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid rgba(64,126,158,.55);border-radius:4px;background:#03121eeb;overflow:hidden}.sensor-bus-rail span{padding:2px 4px;border:1px solid rgba(57,220,255,.28);border-radius:3px;color:#9fc5d7;font-size:4px;white-space:nowrap}.sensor-bus-rail strong{margin-left:auto;color:var(--cyan);font-size:5px;white-space:nowrap}.digital-vessel .schematic-legend{left:auto;right:8px;top:8px}.digital-vessel .schematic-legend .warning-key:before{background:var(--amber)}.energy-card{grid-template-rows:40px 1fr 33px}.energy-flow{min-height:0;display:grid;grid-template-columns:1fr 28px .85fr 28px 1.12fr;align-items:center;gap:3px;padding:8px 10px}.source-column,.load-column{display:grid;gap:8px}.flow-node,.controller-node{min-width:0;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #285875;border-radius:5px;background:#082339;color:var(--text);cursor:pointer;text-align:left}.flow-node:hover,.controller-node:hover{border-color:var(--cyan)}.flow-node>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#0d3049;color:var(--cyan);font-size:12px}.solar-source>span{color:var(--amber)}.battery-source>span{color:var(--green)}.flow-node small,.bus-node small,.controller-node small,.load-node small{display:block;color:var(--muted);font-size:6px;letter-spacing:.08em}.flow-node strong{display:block;margin-top:3px;font-size:9px}.flow-arrows{display:grid;gap:23px}.flow-arrows i{position:relative;display:block;width:100%;height:2px;overflow:visible;background:linear-gradient(90deg,transparent,var(--cyan))}.flow-arrows i:after{content:"";position:absolute;right:-1px;top:-3px;width:6px;height:6px;border-top:2px solid var(--cyan);border-right:2px solid var(--cyan);transform:rotate(45deg)}.flow-arrows.outbound i{background:linear-gradient(90deg,var(--cyan),transparent)}.conversion-column{display:grid;gap:9px}.bus-node{position:relative;padding:8px 4px;border:1px solid rgba(57,220,255,.6);border-radius:5px;background:#39dcff0f;text-align:center}.bus-node strong{display:block;margin-top:2px;color:var(--cyan);font-size:10px}.bus-node i{position:absolute;top:5px;right:5px;width:4px;height:4px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}.controller-node{display:block;padding:10px 4px;border-color:#708d9e;background:linear-gradient(145deg,#a8bac4,#566f7e);color:#09273a;text-align:center}.controller-node b{display:block;font-size:14px;font-style:italic;font-weight:950}.controller-node small{color:#244151;font-weight:900}.controller-node em{display:block;margin-top:3px;color:#0b7950;font-size:6px;font-style:normal;font-weight:900}.load-column{gap:6px}.load-node{padding:7px 8px;border-left:2px solid var(--blue);background:#082339}.load-node strong{display:block;margin-top:2px;font-size:9px;font-variant-numeric:tabular-nums}.energy-footer{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #173d55;background:#061b2c}.energy-footer span{display:flex;align-items:center;justify-content:center;gap:5px;border-right:1px solid #173d55;color:var(--muted);font-size:6px;white-space:nowrap}.energy-footer span:last-child{border:0}.energy-footer b{color:#d2e8f2;font-size:7px}.motor-grid{min-height:0;display:grid;grid-template-columns:1fr 1fr}.motor-metric{position:relative;min-width:0;display:grid;grid-template-columns:auto 1fr 4px;align-items:center;gap:9px;padding:8px 10px;border:0;border-right:1px solid #173d55;border-bottom:1px solid #173d55;background:transparent;color:var(--text);cursor:pointer;text-align:left}.motor-metric:nth-child(2n){border-right:0}.motor-metric:nth-child(n+3){border-bottom:0}.motor-metric:hover{background:#39dcff0a}.motor-metric.warning{background:#ffc34a0d}.compact-motor{width:clamp(31px,2.8vw,44px);height:clamp(31px,2.8vw,44px)}.compact-motor.rim-art{border-width:4px}.motor-metric strong{display:block;margin-top:3px;font-size:clamp(12px,1vw,17px);font-variant-numeric:tabular-nums;white-space:nowrap}.motor-metric strong em{color:var(--muted);font-size:6px;font-style:normal}.motor-metric p{display:flex;gap:7px;margin:4px 0 0;color:var(--muted);font-size:7px}.motor-metric p b{color:#b9d8e9;font-size:inherit;font-weight:750}.motor-metric p i{color:var(--green);font-style:normal;font-weight:900}.motor-metric.warning p i{color:var(--amber)}.load-bar{width:4px;height:72%;align-self:center;overflow:hidden;display:flex;align-items:flex-end;border-radius:4px;background:#15384e}.load-bar i{width:100%;height:60%;border-radius:4px;background:linear-gradient(var(--cyan),var(--blue));transition:height .6s ease}.motor-metric.warning .load-bar i{background:linear-gradient(var(--amber),#ef8a35)}.battery-content{min-height:0;display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:8px;padding:10px}.soc-ring{--soc: 82%;width:min(7.5vw,106px);aspect-ratio:1;display:grid;place-items:center;margin:auto;border-radius:50%;background:conic-gradient(var(--green) 0 var(--soc),#153b50 var(--soc) 100%);box-shadow:0 0 20px #4bea8a1f}.soc-ring:before{content:"";grid-area:1 / 1;width:82%;height:82%;border-radius:50%;background:#071e30;box-shadow:inset 0 0 12px #00000061}.soc-ring>span{z-index:1;grid-area:1 / 1;text-align:center}.soc-ring small{display:block;color:var(--muted);font-size:6px;letter-spacing:.12em}.soc-ring b{display:block;margin:2px 0;font-size:clamp(20px,2vw,31px)}.soc-ring em{display:block;color:var(--green);font-size:5px;font-style:normal;font-weight:900;letter-spacing:.08em}.battery-content dl{margin:0}.battery-content dl div{display:flex;align-items:center;justify-content:space-between;min-height:31px;border-bottom:1px solid #173d55}.battery-content dl div:last-child{border:0}.battery-content dt{color:var(--muted);font-size:6px;letter-spacing:.08em}.battery-content dd{margin:0;font-size:9px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}.comm-content{min-width:0;min-height:0;display:grid;grid-template-rows:66px 1fr 25px;gap:6px;padding:8px;border:0;background:transparent;color:var(--text);cursor:pointer;text-align:left}.comm-content:hover{background:#39dcff09}.bus-gauge{display:grid;grid-template-columns:66px 1fr;align-items:center;gap:8px;min-width:0}.bus-ring{--bus: 28%;width:62px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--cyan) 0 var(--bus),#153b50 var(--bus) 100%);box-shadow:0 0 15px #39dcff1f}.bus-ring:before{content:"";grid-area:1 / 1;width:81%;height:81%;border-radius:50%;background:#071e30}.bus-ring>i{z-index:1;grid-area:1 / 1;color:var(--text);font-style:normal;text-align:center}.bus-ring small,.bus-ring em{display:block;color:var(--muted);font-size:4px;font-style:normal;letter-spacing:.1em}.bus-ring b{display:block;margin:1px 0;color:var(--cyan);font-size:13px}.gateway-state{min-width:0;padding:9px;border:1px solid #285875;border-radius:5px;background:#082339}.gateway-state span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:5px;letter-spacing:.09em}.gateway-state span i{width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}.gateway-state b{display:block;margin-top:5px;color:var(--green);font-size:9px}.protocol-stack{min-height:0;display:grid;grid-template-rows:repeat(4,1fr);border:1px solid #173d55;border-radius:5px;overflow:hidden}.protocol-stack>div{min-width:0;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:5px;padding:0 7px;border-bottom:1px solid #173d55;background:#071e30b8}.protocol-stack>div:last-child{border:0}.protocol-stack span{overflow:hidden;color:#a9c4d3;font-size:6px;white-space:nowrap;text-overflow:ellipsis}.protocol-stack span i{display:inline-block;width:4px;height:4px;margin-right:5px;border-radius:50%;background:var(--green);box-shadow:0 0 5px var(--green);vertical-align:middle}.protocol-stack b{color:#d7eaf3;font-size:6px;font-variant-numeric:tabular-nums;white-space:nowrap}.protocol-stack em{color:var(--green);font-size:5px;font-style:normal;font-weight:900}.link-summary{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #173d55}.link-summary span{display:flex;flex-direction:column;justify-content:center;border-right:1px solid #173d55;color:var(--muted);font-size:4px;text-align:center}.link-summary span:last-child{border:0}.link-summary b{margin-top:2px;color:#d7eaf3;font-size:6px;font-variant-numeric:tabular-nums}.comm-card.warning .bus-ring{background:conic-gradient(var(--amber) 0 var(--bus),#4a3521 var(--bus) 100%)}.comm-card.warning .bus-ring b,.comm-card.warning .gateway-state b,.comm-card.warning .protocol-stack em{color:var(--amber)}.comm-card.warning .gateway-state span i,.comm-card.warning .protocol-stack span i{background:var(--amber);box-shadow:0 0 6px var(--amber)}.connection-tile.warning{border-color:#ffc34ab8;background:#ffc34a12}.connection-tile.warning .kpi-delta{color:var(--amber)}.trend-card{grid-template-rows:40px 30px 1fr}.trend-tabs{display:flex;gap:3px}.trend-tabs button{padding:4px 7px;border:1px solid #2a526a;border-radius:3px;background:transparent;color:var(--muted);font-size:5px;font-weight:900;cursor:pointer}.trend-tabs button.active{border-color:var(--cyan);background:#39dcff14;color:var(--cyan)}.trend-summary{display:flex;align-items:baseline;gap:8px;padding:6px 12px 0}.trend-summary span{color:var(--muted);font-size:5px;letter-spacing:.1em}.trend-summary b{font-size:13px}.trend-summary small{color:var(--green);font-size:6px}.trend-chart{position:relative;min-height:0;margin:5px 13px 8px 25px}.trend-chart svg{width:100%;height:calc(100% - 15px);overflow:visible}.chart-grid path{fill:none;stroke:#1c4157;stroke-width:1;vector-effect:non-scaling-stroke}.trend-area{fill:#3997ff1c;stroke:none}.trend-line{fill:none;stroke:var(--cyan);stroke-width:2.5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(57,220,255,.5))}.trend-dot{fill:#fff;stroke:var(--cyan);stroke-width:3;vector-effect:non-scaling-stroke}.trend-card.efficiency .trend-area{fill:#4bea8a1a}.trend-card.efficiency .trend-line,.trend-card.efficiency .trend-dot{stroke:var(--green)}.y-label{position:absolute;left:-19px;color:var(--muted-2);font-size:5px}.y-label.top{top:-2px}.y-label.bottom{bottom:16px}.chart-time{height:12px;display:flex;justify-content:space-between;color:var(--muted-2);font-size:5px}.command-dock{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;min-height:0}.command-dock button{min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-soft);border-radius:5px;background:linear-gradient(180deg,#0a263b,#061c2d);color:var(--text);cursor:pointer;text-align:left}.command-dock button:hover{border-color:var(--cyan);background:#39dcff0f}.command-dock button>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid #3b7697;border-radius:4px;color:var(--cyan);font-size:13px}.command-dock b{display:block;font-size:9px}.command-dock small{display:block;margin-top:2px;color:var(--muted);font-size:6px}.sensor-card.warning{border-color:#ffc34ac7;box-shadow:0 0 0 1px #ffc34a26,var(--shadow)}.sensor-matrix{min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:0;border:0;background:#173d55;color:var(--text);cursor:pointer;text-align:left}.sensor-matrix>span{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:6px 8px;background:linear-gradient(145deg,#08243a,#061b2c)}.sensor-matrix>span:hover{background:#39dcff14}.sensor-matrix small,.sensor-matrix b,.sensor-matrix em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-matrix small{color:var(--muted);font-size:5px;letter-spacing:.08em}.sensor-matrix b{margin-top:3px;font-size:8px}.sensor-matrix em{margin-top:3px;color:var(--cyan);font-size:5px;font-style:normal}.sensor-matrix>span.warning b,.sensor-matrix>span.warning em{color:var(--amber)}.io-topology{display:grid;grid-template-columns:1.25fr auto 1fr auto 1.15fr auto 1fr;align-items:center;gap:6px;padding:15px;overflow-x:auto}.io-topology span,.io-topology strong{min-width:90px;padding:10px 7px;border:1px solid #2a5b76;border-radius:5px;background:#08243a;font-size:7px;text-align:center}.io-topology strong{border-color:var(--cyan);color:var(--cyan)}.io-topology i{color:var(--cyan);font-style:normal}.io-topology small{display:block;margin-top:4px;color:var(--muted);font-size:5px}.sensor-inventory{padding:4px 12px 12px}.sensor-inventory article{display:grid;grid-template-columns:1.15fr .8fr .75fr 72px;align-items:center;gap:8px;min-height:48px;border-bottom:1px solid rgba(36,77,104,.65)}.sensor-inventory article:last-child{border-bottom:0}.sensor-inventory article.selected{margin-inline:-6px;padding-inline:6px;border:1px solid rgba(57,220,255,.5);border-radius:5px;background:#39dcff0d}.sensor-inventory b,.sensor-inventory small,.sensor-inventory span,.sensor-inventory em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-inventory b{font-size:7px}.sensor-inventory small{display:block;margin-top:3px;color:var(--muted);font-size:5px}.sensor-inventory span{color:#d9ebf4;font-size:7px}.sensor-inventory em{color:var(--cyan);font-size:6px;font-style:normal}.sensor-inventory strong{color:var(--green);font-size:6px;text-align:right}.sensor-inventory article.warning strong,.sensor-inventory article.warning em{color:var(--amber)}.protocol-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px}.protocol-matrix span{padding:9px;border:1px solid #244d68;border-radius:5px;background:#071b2c}.protocol-matrix b,.protocol-matrix small{display:block}.protocol-matrix b{color:var(--cyan);font-size:7px}.protocol-matrix small{margin-top:4px;color:var(--muted);font-size:5px}.drawer-backdrop{position:fixed;z-index:80;inset:0;opacity:0;pointer-events:none;background:#01080eb8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:.25s}.drawer-backdrop.open{opacity:1;pointer-events:auto}.ops-drawer{position:absolute;top:0;right:0;bottom:0;width:min(560px,95vw);overflow:auto;transform:translate(100%);border-left:1px solid #2b607e;background:linear-gradient(160deg,#0b2941,#061827);box-shadow:-30px 0 80px #00000073;transition:.32s cubic-bezier(.2,.8,.2,1)}.drawer-backdrop.open .ops-drawer{transform:translate(0)}.ops-drawer>header{position:sticky;z-index:2;top:0;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #244960;background:#081f31f7}.ops-drawer header small{color:var(--cyan);font-size:7px;letter-spacing:.18em}.ops-drawer header h2{margin:5px 0 0;font-size:18px}.ops-drawer header button{width:36px;height:36px;border:1px solid #315a74;border-radius:50%;background:transparent;color:#fff;font-size:23px;cursor:pointer}.drawer-body{padding:20px}.detail-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.detail-kpi{padding:13px;border:1px solid #244d68;border-radius:8px;background:#0a2134}.detail-kpi small{display:block;color:#86a6ba;font-size:7px}.detail-kpi strong{display:block;margin-top:7px;font-size:18px}.detail-section{margin-top:17px;overflow:hidden;border:1px solid #244d68;border-radius:9px;background:#081d2f}.detail-section h3{margin:0;padding:13px 15px;border-bottom:1px solid #244d68;font-size:10px}.detail-list{margin:0;padding:0 15px;list-style:none}.detail-list li{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid rgba(36,77,104,.65);font-size:9px}.detail-list li:last-child{border:0}.detail-list span{color:#91aebe}.detail-list b{text-align:right}.detail-list b.good{color:var(--green)}.detail-list b.warning{color:var(--amber)}.drawer-note{margin-top:14px;padding:12px;border-left:2px solid var(--cyan);background:#39dcff0f;color:#9db7c8;font-size:9px;line-height:1.65}.drawer-note strong{color:#d9edf7}.drawer-actions,.remote-controls{display:flex;gap:8px;margin-top:15px}.drawer-actions button,.remote-controls button{flex:1;min-height:40px;border:1px solid #32617e;border-radius:7px;background:#0b2b44;color:#d9edf8;padding:10px;font-size:9px;font-weight:800;cursor:pointer}.drawer-actions button:hover,.drawer-actions button.primary,.remote-controls button.active{border-color:var(--cyan);background:#39dcff1a;color:var(--cyan)}.drawer-actions button.danger,.remote-controls button.danger{border-color:#ff6d6699;color:#ff8e89}.phase-controls{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:12px}.phase-controls button{min-height:52px;border:1px solid #2c5872;border-radius:6px;background:#08243a;color:#d5e8f2;font-size:9px;font-weight:850;cursor:pointer}.phase-controls button small{display:block;margin-top:4px;color:var(--muted);font-size:5px;letter-spacing:.08em}.phase-controls button:hover,.phase-controls button.active{border-color:var(--cyan);background:#39dcff1a;color:var(--cyan)}.phase-controls button.active small{color:var(--cyan)}.drawer-table{width:100%;border-collapse:collapse;font-size:9px}.drawer-table th,.drawer-table td{padding:11px 8px;border-bottom:1px solid #24475e;text-align:left}.drawer-table th{color:#85a3b7;font-weight:500}.drawer-table td:last-child{color:var(--green)}.connection-status{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #285875;border-radius:7px;background:#081f32}.connection-status i{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green)}.connection-status b{font-size:10px}.connection-status small{display:block;margin-top:3px;color:var(--muted);font-size:8px}.connection-form{display:grid;gap:8px;padding:14px}.connection-form label{color:var(--muted);font-size:8px}.connection-form input{width:100%;height:42px;border:1px solid #315d78;border-radius:6px;outline:none;background:#061a2b;color:#fff;padding:0 11px;font-size:10px}.connection-form input:focus{border-color:var(--cyan)}.connection-form code{display:block;overflow:auto;padding:11px;border-radius:6px;background:#051522;color:#92c9dd;font-size:8px;line-height:1.55;white-space:pre}.schema-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.schema-grid span{padding:8px;border:1px solid #244d68;border-radius:5px;color:#92adbd;font-size:7px}.network-topology{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:5px;padding:16px}.network-topology span,.network-topology strong{min-width:0;padding:12px 5px;border:1px solid #2b5a75;border-radius:7px;background:#09253a;color:#d9ebf4;font-size:7px;font-weight:800;text-align:center}.network-topology strong{border-color:#39dcff9e;background:#39dcff12}.network-topology span small,.network-topology strong small{display:block;margin-top:5px;color:var(--cyan);font-size:5px;font-weight:700}.network-topology i{color:var(--cyan);font-style:normal;text-align:center}.warning-text{color:var(--amber)!important}.pms-balance{display:grid;gap:12px;padding:15px}.pms-balance>div{display:grid;grid-template-columns:88px 1fr 62px;align-items:center;gap:9px}.pms-balance span{color:var(--muted);font-size:7px;font-weight:850}.pms-balance b{font-size:8px;text-align:right}.pms-balance i{height:8px;overflow:hidden;border-radius:8px;background:#173c54}.pms-balance u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));text-decoration:none}.pms-balance u.reserve{background:linear-gradient(90deg,#1bb867,var(--green))}.priority-table td:first-child{color:var(--cyan);font-weight:900}.priority-table td:last-child{color:#cfe5ef}.performance-compare{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:16px;text-align:center}.performance-compare>div{padding:12px;border:1px solid #28516b;border-radius:7px;background:#09243a}.performance-compare small,.performance-compare strong,.performance-compare em{display:block}.performance-compare small{color:var(--muted);font-size:6px;letter-spacing:.08em}.performance-compare strong{margin-top:6px;font-size:20px}.performance-compare em{margin-top:3px;color:var(--cyan);font-size:7px;font-style:normal}.performance-compare>i{color:var(--cyan);font-style:normal}.asset-health-list{padding:4px 14px}.asset-health-list article{display:grid;grid-template-columns:1.2fr 1fr 72px;align-items:center;gap:10px;min-height:62px;border-bottom:1px solid rgba(36,77,104,.65)}.asset-health-list article:last-child{border:0}.asset-health-list article>div b,.asset-health-list article>div small{display:block}.asset-health-list article>div b{font-size:8px}.asset-health-list article>div small{margin-top:4px;color:var(--muted);font-size:6px}.asset-health-list article>span{display:flex;align-items:center;gap:6px}.asset-health-list article>span i{flex:1;height:6px;overflow:hidden;border-radius:6px;background:#173c54}.asset-health-list article>span u{display:block;height:100%;border-radius:inherit;background:var(--green);text-decoration:none}.asset-health-list article>span u.warning{background:var(--amber)}.asset-health-list article>span em{color:#cfe5ef;font-size:7px;font-style:normal}.asset-health-list article>strong{color:var(--cyan);font-size:7px;text-align:right}.good-text{color:var(--green)!important}.mode-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px}.mode-controls button{min-height:54px;border:1px solid #2c5872;border-radius:6px;background:#08243a;color:#d5e8f2;font-size:9px;font-weight:850;cursor:pointer}.mode-controls button small{display:block;margin-top:4px;color:var(--muted);font-size:5px;letter-spacing:.08em}.mode-controls button:hover,.mode-controls button.active{border-color:var(--cyan);background:#39dcff1a;color:var(--cyan)}.readiness-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:0 12px 12px}.readiness-grid span{min-width:0;padding:10px;border:1px solid #234963;border-radius:6px;background:#071a2a}.readiness-grid small,.readiness-grid b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.readiness-grid small{color:var(--muted);font-size:6px}.readiness-grid b{margin-top:5px;font-size:8px}.capability-assets{padding:5px 14px}.capability-assets article{min-height:48px;display:grid;grid-template-columns:112px 1fr 38px;align-items:center;gap:9px;border-bottom:1px solid rgba(36,77,104,.65)}.capability-assets article:last-child{border:0}.capability-assets div b,.capability-assets div small{display:block}.capability-assets div b{font-size:7px}.capability-assets div small{margin-top:3px;color:var(--green);font-size:5px}.capability-assets article.warning div small{color:var(--amber)}.capability-assets article>i{height:7px;overflow:hidden;border-radius:7px;background:#173c54}.capability-assets article>i u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));text-decoration:none}.capability-assets article.warning>i u{background:linear-gradient(90deg,#d58c1d,var(--amber))}.capability-assets article>strong{color:#d9ebf4;font-size:7px;text-align:right}.capability-envelope{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0 12px 12px}.capability-envelope span{padding:9px;border:1px solid #234963;border-radius:6px;text-align:center}.capability-envelope small,.capability-envelope b{display:block}.capability-envelope small{min-height:18px;color:var(--muted);font-size:5px}.capability-envelope b{margin-top:4px;font-size:9px}.trust-score{display:flex;align-items:center;gap:12px;padding:14px;border-bottom:1px solid #244d68}.trust-score>strong{color:var(--cyan);font-size:24px}.trust-score span b,.trust-score span small{display:block}.trust-score span b{font-size:8px}.trust-score span small{margin-top:4px;color:var(--muted);font-size:6px}.maintenance-timeline{padding:6px 14px}.maintenance-timeline article{min-height:58px;display:grid;grid-template-columns:48px 1fr 54px;align-items:center;gap:9px;border-bottom:1px solid rgba(36,77,104,.65)}.maintenance-timeline article:last-child{border:0}.maintenance-timeline time{color:var(--cyan);font-size:7px}.maintenance-timeline span b,.maintenance-timeline span small{display:block}.maintenance-timeline span b{font-size:8px}.maintenance-timeline span small{margin-top:4px;color:var(--muted);font-size:6px}.maintenance-timeline em{color:var(--green);font-size:6px;font-style:normal;text-align:right}.maintenance-timeline article.warning time,.maintenance-timeline article.warning em{color:var(--amber)}.alarm-replay{padding:10px 14px 13px}.alarm-replay ol{margin:0;padding:0;list-style:none}.alarm-replay li{display:grid;grid-template-columns:42px 66px 1fr;align-items:center;gap:7px;min-height:34px;opacity:.22;border-bottom:1px solid rgba(36,77,104,.5)}.alarm-replay li.visible{opacity:1}.alarm-replay time{color:var(--cyan);font-size:6px}.alarm-replay li b{font-size:6px;letter-spacing:.06em}.alarm-replay li small{color:var(--muted);font-size:6px}.alarm-replay input{width:calc(100% - 70px);margin-top:12px;accent-color:var(--cyan)}.alarm-replay>span{float:right;margin-top:12px;color:var(--cyan);font-size:6px}.alarm-action{padding:0 14px 14px}.alarm-action button{width:100%;min-height:38px;border:1px solid rgba(255,195,74,.62);border-radius:6px;background:#ffc34a14;color:var(--amber);font-size:8px;font-weight:900;cursor:pointer}.alarm-action button:disabled{border-color:#2d5b74;color:var(--green);cursor:default}.cause-chain{margin:0;padding:10px 15px;list-style:none}.cause-chain li{display:grid;grid-template-columns:48px 1fr;gap:9px;min-height:54px;padding:9px 0;border-bottom:1px solid rgba(36,77,104,.65)}.cause-chain li:last-child{border:0}.cause-chain time{color:var(--cyan);font-size:7px}.cause-chain span b,.cause-chain span small{display:block}.cause-chain span b{font-size:8px}.cause-chain span small{margin-top:4px;color:var(--muted);font-size:7px}.fleet-table-wrap{overflow-x:hidden}.fleet-table{min-width:0;table-layout:fixed}.fleet-table th:nth-child(1){width:25%}.fleet-table th:nth-child(2){width:20%}.fleet-table th:nth-child(3){width:27%}.fleet-table th:nth-child(4){width:13%}.fleet-table th:nth-child(5){width:15%}.fleet-table tr.active{background:#39dcff0e}.fleet-table th,.fleet-table td{padding-inline:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fleet-table td button{width:100%;min-width:0;padding:0;overflow:hidden;border:0;background:transparent;color:#d9ebf4;cursor:pointer;text-align:left}.fleet-table td button b,.fleet-table td button small{overflow:hidden;text-overflow:ellipsis}.fleet-table td button:hover b{color:var(--cyan)}.fleet-table td button b,.fleet-table td small{display:block}.fleet-table td small{margin-top:3px;color:var(--muted);font-size:6px}.status-dot{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot.warning{background:var(--amber);box-shadow:0 0 6px var(--amber)}.fleet-timelines{display:grid;gap:7px;padding:12px}.fleet-timelines button{display:grid;grid-template-columns:120px 1fr 94px;align-items:center;gap:8px;min-height:45px;padding:7px 9px;border:1px solid #244d68;border-radius:6px;background:#081f32;color:#d9ebf4;cursor:pointer;text-align:left}.fleet-timelines button.active,.fleet-timelines button:hover{border-color:var(--cyan);background:#39dcff0f}.fleet-timelines button span b,.fleet-timelines button span small{display:block}.fleet-timelines button span b{font-size:8px}.fleet-timelines button span small{margin-top:3px;color:var(--muted);font-size:6px}.fleet-timelines button>div{position:relative;height:4px;border-radius:4px;background:#173d55}.fleet-timelines button>div i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}.fleet-timelines button>div u{position:absolute;top:-7px;transform:translate(-50%) rotate(25deg);color:#fff;font-size:8px;text-decoration:none;filter:drop-shadow(0 0 4px var(--cyan))}.fleet-timelines button em{color:#a9c4d3;font-size:7px;font-style:normal;text-align:right}.event-timeline{margin:0;padding:8px 15px 8px 56px;list-style:none}.event-timeline li{position:relative;min-height:58px;padding:10px 0 10px 18px;border-left:1px solid #2b607e}.event-timeline li:before{content:"";position:absolute;top:16px;left:-4px;width:7px;height:7px;border-radius:50%;background:#5f8499}.event-timeline li.live:before{background:var(--green);box-shadow:0 0 8px var(--green)}.event-timeline time{position:absolute;left:-52px;top:13px;color:var(--muted);font-size:6px}.event-timeline span b,.event-timeline span small{display:block}.event-timeline span b{font-size:8px}.event-timeline span small{margin-top:5px;color:var(--muted);font-size:7px}.track-playback{padding:14px}.track-playback>div{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:7px}.track-playback>div b{color:var(--cyan);font-size:8px}.track-playback input{width:100%;margin-top:15px;accent-color:var(--cyan)}.cpa-visual{position:relative;height:180px;overflow:hidden;background-image:linear-gradient(rgba(65,126,159,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(65,126,159,.08) 1px,transparent 1px);background-size:24px 24px}.cpa-visual>span{position:absolute;display:grid;place-items:center;gap:4px;color:#d9ebf4}.cpa-visual>span i{color:var(--cyan);font-size:20px;font-style:normal}.cpa-visual>span b{font-size:7px}.cpa-visual .own{left:22%;bottom:24%}.cpa-visual .target{right:20%;top:20%}.cpa-visual .target i{color:#8bb6ca;transform:rotate(145deg)}.cpa-visual .target.risk i{color:var(--amber);filter:drop-shadow(0 0 6px var(--amber))}.cpa-visual>u{position:absolute;left:27%;right:26%;top:49%;border-top:1px dashed var(--cyan);transform:rotate(-20deg);text-decoration:none}.cpa-visual>em{position:absolute;left:50%;bottom:10px;transform:translate(-50%);padding:6px 8px;border:1px solid #2b607e;border-radius:4px;background:#061a2b;color:var(--cyan);font-size:7px;font-style:normal;white-space:nowrap}.toast{position:fixed;z-index:100;right:20px;bottom:20px;min-width:280px;display:flex;align-items:center;gap:11px;padding:13px 16px;transform:translateY(120px);opacity:0;border:1px solid #32627e;border-radius:9px;background:#0c2a40;box-shadow:0 18px 50px #0000008c;transition:.3s}.toast.show{transform:translateY(0);opacity:1}.toast>i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}.toast.warning>i{background:var(--amber);box-shadow:0 0 10px var(--amber)}.toast div{display:flex;flex-direction:column}.toast b{font-size:10px}.toast small{margin-top:4px;color:#8faabc;font-size:8px}.warning-mode .energy-card,.warning-mode .motor-card,.warning-mode .battery-card,.warning-mode .comm-card{border-color:#ffc34a7a}.map-card.warning{border-color:#ffc34ac7;box-shadow:0 0 0 1px #ffc34a2e,var(--shadow)}@keyframes pulse{50%{box-shadow:0 0 0 8px #4bea8a00,0 0 14px var(--green)}}@keyframes mapPulse{50%{transform:scale(1.35);opacity:0}}@keyframes routeDash{to{stroke-dashoffset:-140}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes targetAlert{50%{box-shadow:0 0 0 5px #ffc34a00,0 0 12px #ffc34ab3}}@media(max-width:1380px){:root{--nav-w: 78px}.ems-topbar{grid-template-columns:245px minmax(260px,1fr) auto;padding:0 12px}.product-name b{font-size:16px}.fleet-count,#clock{display:none}.nav-item{padding:0 11px}.nav-item b{font-size:8px}.connection-tile .kpi-delta{display:none}.equipment-node{padding:4px 5px;gap:5px}.motor-art{width:30px;height:30px}.sensor-hotspot span{display:none}.sensor-hotspot{min-width:18px;min-height:18px;justify-content:center;padding:4px;border-radius:50%}.sensor-hotspot>i{width:8px;height:8px}.sensor-bus-rail span:nth-child(4),.sensor-bus-rail span:nth-child(5){display:none}.command-dock button{gap:5px}.command-dock button>span{width:23px;height:23px;font-size:11px}.command-dock small{display:none}.wind-hero{grid-template-columns:44px 1fr;padding:6px}.wind-compass{width:40px}.weather-metrics span{padding:5px}}@media(max-width:1100px){.ems-topbar{grid-template-columns:210px 1fr auto}.product-name small,.control-caption,.connection-tile{display:none}.telemetry-strip{grid-template-columns:repeat(4,1fr)}.dashboard-canvas{width:100%;max-width:none;aspect-ratio:auto;grid-template-rows:70px auto auto 58px}.primary-grid{grid-template-columns:1fr 1fr}.primary-grid>.monitor-panel{min-height:355px}.energy-card{grid-column:auto;min-height:355px!important}.weather-card{min-height:355px!important}.secondary-grid{grid-template-columns:1fr 1fr}.secondary-grid>.monitor-panel{min-height:270px}.trend-card{grid-column:1 / -1;min-height:290px!important}.sensor-card,.comm-card{min-height:290px!important}.energy-flow{max-width:760px;width:100%;margin:auto}.soc-ring{width:106px}}@media(max-width:760px){:root{--header-h: 62px;--nav-w: 0px}body{padding-bottom:62px}.ems-topbar{grid-template-columns:auto 1fr;padding:0 9px}.brand{gap:0}.brand-divider,.product-name{display:none}.brand-logo{height:42px;padding:3px 5px}.efd-wordmark{font-size:23px}.efd-wordmark small{display:none}.fleet-control{justify-self:end;width:calc(100% - 10px)}.vessel-select{width:100%;height:36px;font-size:8px;padding-left:8px}.top-actions{grid-column:1 / -1;position:absolute;left:8px;right:8px;top:68px;justify-content:space-between;pointer-events:none}.stream-pill,.scenario-control{height:34px;pointer-events:auto;box-shadow:0 6px 20px #00000059}.stream-pill b{font-size:7px}.stream-pill small{font-size:5px}.scenario-control select{width:128px;font-size:7px}.side-nav{z-index:60;inset:auto 0 0;width:auto;height:62px;display:block;overflow-x:auto;overflow-y:hidden;border:0;border-top:1px solid #28516b;background:#061b2cf7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.side-nav nav{width:max-content;height:100%;display:flex;padding:0}.nav-item{width:68px;min-width:68px;height:62px;flex-direction:column;justify-content:center;gap:2px;padding:0;border:0;border-top:2px solid transparent}.nav-item:hover,.nav-item.active{border:0;border-top:2px solid var(--cyan);background:#39dcff12}.nav-item>span{width:auto;font-size:16px}.nav-item b{display:block;font-size:6px}.nav-item i{top:5px;right:7px}.side-foot{display:none}.control-main{padding:112px 8px 10px}.dashboard-canvas{display:block}.telemetry-strip{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}.kpi-tile{min-height:66px}.kpi-tile.connection-tile{display:none}.primary-grid,.secondary-grid{display:block}.monitor-panel{min-height:360px!important;margin-bottom:8px}.map-card{min-height:330px!important}.vessel-card{min-height:410px!important}.weather-card{min-height:430px!important}.energy-card{min-height:330px!important}.motor-card{min-height:350px!important}.battery-card,.comm-card{min-height:360px!important}.trend-card{min-height:310px!important}.sensor-card{min-height:330px!important}.panel-header h2{font-size:11px}.equipment-node small{font-size:4px}.equipment-node strong{font-size:8px}.motor-art{width:31px;height:31px}.bow-node{left:2%}.stern-node{right:2%}.port-node{left:1%}.starboard-node{right:1%}.ship-hull{width:34%}.schematic-legend{display:none}.sensor-hotspot span{display:block}.sensor-hotspot{min-width:0;min-height:0;padding:3px 5px;border-radius:4px}.sensor-hotspot>i{width:7px;height:7px}.sensor-bus-rail span:nth-child(4),.sensor-bus-rail span:nth-child(5){display:inline}.digital-vessel .schematic-legend{display:none}.energy-flow{grid-template-columns:1fr 24px .85fr 24px 1fr;padding:8px}.command-dock{grid-template-columns:1fr 1fr;gap:7px}.command-dock button{min-height:58px;margin-bottom:7px}.toast{left:10px;right:10px;bottom:72px;min-width:0}.ops-drawer{width:100vw}.detail-kpis{grid-template-columns:1fr 1fr}.remote-controls{flex-direction:column}.phase-controls{grid-template-columns:repeat(3,1fr)}.fleet-timelines button{grid-template-columns:90px 1fr}.fleet-timelines button em{grid-column:1 / -1;text-align:left}.io-topology{grid-template-columns:1fr}.io-topology i{transform:rotate(90deg);text-align:center}.sensor-inventory article{grid-template-columns:1fr .75fr 64px}.sensor-inventory article>span{display:none}.weather-dashboard{grid-template-rows:1.2fr .9fr auto .75fr}.wind-hero{grid-template-columns:56px 1fr}.wind-compass{width:48px}.weather-guidance{grid-template-columns:1fr}}@media(max-width:430px){.equipment-node{gap:4px;padding:4px}.equipment-node small{max-width:92px;overflow:hidden;text-overflow:ellipsis}.motor-grid{grid-template-columns:1fr}.motor-metric{min-height:66px;border-right:0;border-bottom:1px solid #173d55!important}.motor-metric:last-child{border-bottom:0!important}.motor-card{min-height:410px!important}.map-coordinates span{font-size:5px}.map-environment span:nth-child(3),.map-coordinates span:nth-child(2){display:none}.voyage-progress{width:44%}.target-b,.target-c{display:none}.map-layer-controls{right:5px}.detail-kpis,.schema-grid{grid-template-columns:1fr}.mode-controls{grid-template-columns:1fr 1fr}.capability-envelope{grid-template-columns:1fr}.alarm-replay li{grid-template-columns:38px 58px 1fr}.sensor-hotspot span{display:none}.sensor-hotspot{min-width:18px;min-height:18px;justify-content:center;padding:4px;border-radius:50%}.sensor-bus-rail{gap:2px}.sensor-bus-rail span{font-size:3px}.sensor-bus-rail strong{font-size:4px}.protocol-matrix{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{body{background:#fff;color:#111}.ems-app,.toast,.ops-drawer header button{display:none!important}.drawer-backdrop{position:static;opacity:1;pointer-events:auto;background:#fff}.ops-drawer{position:static;width:100%;transform:none;border:0;background:#fff;box-shadow:none}.ops-drawer header{position:static;border-bottom:2px solid #111;background:#fff}.ops-drawer *{color:#111!important}.drawer-body{padding:0}.detail-section,.detail-kpi,.drawer-note{border-color:#aaa;background:#fff}.drawer-actions{display:none}}
