:root{color:#e9fbff;background:#041824;font-family:Microsoft YaHei,Segoe UI,Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh}body{margin:0;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);background:radial-gradient(circle at 68% 18%,rgba(24,217,255,.25),transparent 30%),radial-gradient(circle at 18% 76%,rgba(255,167,46,.18),transparent 28%),linear-gradient(135deg,#03111d,#062535 48%,#02121c)}.login-hero{position:relative;display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;overflow:hidden;padding:42px}.login-hero:before{position:absolute;inset:0;content:"";opacity:.7;background-image:linear-gradient(rgba(32,246,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(32,246,255,.08) 1px,transparent 1px),radial-gradient(circle at 28% 36%,rgba(32,246,255,.2),transparent 20%),radial-gradient(circle at 70% 62%,rgba(28,234,161,.16),transparent 22%);background-size:70px 70px,70px 70px,100% 100%,100% 100%}.login-hero:after{position:absolute;inset:10% 8%;content:"";border:1px solid rgba(75,245,255,.18);background:linear-gradient(120deg,transparent 0 46%,rgba(53,240,255,.2) 47%,transparent 49%),linear-gradient(32deg,transparent 0 56%,rgba(28,234,161,.18) 57%,transparent 60%);clip-path:polygon(6% 18%,31% 8%,50% 28%,76% 14%,93% 42%,72% 68%,82% 90%,42% 78%,16% 88%,8% 56%)}.login-header,.login-title,.login-metrics{position:relative;z-index:1}.login-header{display:inline-flex;width:fit-content;align-items:center;gap:10px;color:#eaffff;font-size:19px;font-weight:900;text-shadow:0 0 18px rgba(44,229,255,.7)}.login-title{max-width:760px}.login-title span{color:#46efff;font-size:15px;font-weight:900;letter-spacing:0;text-transform:uppercase}.login-title h1{margin:14px 0 16px;color:#fff;font-size:clamp(42px,6vw,78px);line-height:1.06;letter-spacing:0;text-shadow:0 0 26px rgba(51,223,255,.55)}.login-title p{max-width:600px;margin:0;color:#a8d6df;font-size:18px;line-height:1.8}.login-metrics{display:grid;max-width:760px;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.login-metrics div{border:1px solid rgba(53,235,255,.38);border-radius:6px;padding:16px;background:#04263ab8;box-shadow:inset 0 0 26px #1bdeff1f,0 0 20px #0bc6ff1f}.login-metrics strong,.login-metrics span{display:block}.login-metrics strong{color:#ffd04a;font-size:28px}.login-metrics span{margin-top:6px;color:#b4dce5}.login-panel{display:grid;align-items:center;padding:32px}.login-card{display:grid;gap:18px;width:min(100%,430px);margin:0 auto;border:1px solid rgba(56,240,255,.5);border-radius:10px;padding:30px;background:linear-gradient(180deg,#072e46e0,#051a2be0);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 0 32px #2ad7ff1f,0 30px 80px #00080e6b}.form-head{display:flex;align-items:center;gap:14px;margin-bottom:8px}.form-head svg{color:#ffd04a;filter:drop-shadow(0 0 10px rgba(255,208,74,.48))}.form-head h2{margin:0;color:#f6feff;font-size:28px}.form-head p{margin:4px 0 0;color:#8fc8d4}.login-card label{display:grid;gap:8px;color:#bce8f1;font-size:14px;font-weight:800}.login-card input{width:100%;border:1px solid rgba(92,223,255,.45);border-radius:6px;padding:13px 14px;outline:none;background:#021422c7;color:#eaffff}.login-card input:focus{border-color:#46efff;box-shadow:0 0 0 4px #46efff29}.form-error{border:1px solid rgba(255,95,104,.72);border-radius:6px;padding:12px;background:#5f172361;color:#ffd7dc;font-size:14px}.primary-button,.logout-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0}.primary-button{min-height:48px;border-radius:6px;padding:0 18px;background:linear-gradient(90deg,#079eea,#18f0d8);color:#02131e;font-weight:900;box-shadow:0 0 24px #18f0d84d}.primary-button:disabled{cursor:wait;opacity:.72}.screen{position:relative;min-height:100vh;overflow:hidden;padding:14px 18px 16px;background:radial-gradient(circle at 50% 0%,rgba(21,152,255,.22),transparent 28%),radial-gradient(circle at 82% 52%,rgba(24,240,162,.12),transparent 24%),linear-gradient(180deg,#041422,#05283a 54%,#03131f)}.screen:before{position:absolute;inset:64px 0 0;pointer-events:none;content:"";opacity:.46;background-image:linear-gradient(rgba(33,225,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(33,225,255,.12) 1px,transparent 1px),radial-gradient(circle at 30% 50%,rgba(23,230,184,.16),transparent 20%),radial-gradient(circle at 73% 45%,rgba(21,147,255,.18),transparent 22%);background-size:84px 84px,84px 84px,100% 100%,100% 100%}.screen-header,.screen-footer{position:relative;z-index:1}.screen-header{display:grid;min-height:76px;grid-template-columns:minmax(360px,.9fr) minmax(520px,1fr) minmax(360px,.9fr);align-items:center;gap:18px}.screen-header:after{position:absolute;right:18%;bottom:0;left:18%;height:2px;content:"";background:linear-gradient(90deg,transparent,rgba(57,232,255,.92),transparent);box-shadow:0 0 18px #39e8ffe6}.header-left{display:flex;align-items:center;gap:12px}.header-left svg{color:#4ff6ff;filter:drop-shadow(0 0 12px rgba(79,246,255,.8))}.header-left h1{margin:0;color:#f7ffff;font-size:clamp(24px,2.2vw,40px);font-style:italic;font-weight:900;letter-spacing:1px;text-shadow:0 0 18px rgba(48,215,255,.68)}.header-left span{display:block;margin-top:4px;color:#8ad9e9;font-size:13px}.screen-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:14px;justify-self:center;width:min(100%,960px)}.screen-tabs button,.map-nav button,.filter-buttons button,.task-button,.event-row button{border:1px solid rgba(66,235,255,.48);border-radius:6px;background:#052e46bd;color:#b9f5ff;font-weight:900}.screen-tabs button{min-height:38px;padding:0 14px;font-size:17px;box-shadow:inset 0 0 18px #32dcff1a}.screen-tabs button.active,.map-nav button.active,.filter-buttons button.active,.event-row button:hover,.task-button:hover{border-color:#4ff6ff;background:linear-gradient(180deg,#1ab9ff70,#0b577cbd);color:#fff;box-shadow:0 0 18px #32dcff40,inset 0 0 12px #4ff6ff1a}.screen.focus-devices .map-zone,.screen.focus-deviceLocations .location-map-panel,.screen.focus-realtimeCurve .curve-main-panel,.screen.focus-alarms .bottom-table{box-shadow:0 0 28px #4ff6ff42}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#72f4ff;font-family:Consolas,Courier New,monospace;font-size:15px;font-weight:900}.socket-status{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(88,255,218,.35);border-radius:999px;padding:6px 10px;color:#b8f9ff}.socket-status.online{color:#18f0a2}.socket-status.offline{color:#ff6b78}.logout-button{width:32px;height:32px;border:1px solid rgba(72,235,255,.45);border-radius:6px;background:#052b40bd;color:#b9f7ff}.left-stack,.right-stack{display:grid;min-width:0;grid-auto-rows:1fr;gap:18px}.left-stack>*,.right-stack>*{min-height:0}.panel-glow{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid rgba(66,233,255,.62);border-radius:6px;padding:18px;background:linear-gradient(180deg,#052d44c7,#041b2fc7);box-shadow:inset 0 0 34px #19d3ff14,0 4px 28px #00081252,0 0 22px #0ca2dc24}.panel-glow:before,.panel-glow:after{position:absolute;width:38px;height:22px;content:"";pointer-events:none}.panel-glow:before{top:-1px;left:-1px;border-top:2px solid #46efff;border-left:2px solid #46efff}.panel-glow:after{right:-1px;bottom:-1px;border-right:2px solid #46efff;border-bottom:2px solid #46efff}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-title-row h2{display:inline-flex;align-items:center;gap:8px;margin:0;color:#fff;font-size:17px;font-weight:900;letter-spacing:.5px}.panel-title-row svg{color:#52f3ff}.panel-title-row span{color:#7eeaff;font-size:13px;font-weight:900}.donut-wrap,.alarm-summary{display:grid;grid-template-columns:154px minmax(0,1fr);gap:20px;align-items:center;min-height:172px}.panel-body{flex:1;min-height:0;overflow-y:auto;scrollbar-color:rgba(82,243,255,.42) rgba(2,20,34,.4);scrollbar-width:thin}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-thumb{border-radius:999px;background:#52f3ff57}.panel-body::-webkit-scrollbar-track{background:transparent}.donut,.alarm-donut{position:relative;display:grid;width:150px;height:150px;place-items:center;border-radius:50%;filter:drop-shadow(0 0 18px rgba(34,211,255,.28))}.donut:before,.alarm-donut:before{position:absolute;width:86px;height:86px;border-radius:50%;content:"";background:#052538;box-shadow:inset 0 0 18px #17d3ff2e}.donut>div,.alarm-donut>div{position:relative;z-index:1;display:grid;place-items:center}.donut strong,.alarm-donut strong{color:#fff;font-size:28px;line-height:1}.donut span,.alarm-donut span{color:#8bdde8;font-size:12px}.legend-list,.alarm-legend{display:grid;gap:10px}.legend-list div,.alarm-legend div{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;color:#d9f9ff;font-size:13px}.legend-list i,.alarm-legend i{width:9px;height:9px;border-radius:2px}.legend-list strong,.alarm-legend strong{color:#fff}.run-chart{display:grid;gap:12px}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;color:#b8edf7;font-size:12px;font-weight:800}.chart-legend span:before{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:2px;content:""}.chart-legend .blue:before{background:#1f6cff}.chart-legend .green:before{background:#21d596}.chart-legend .red:before{background:#ff3147}.chart-legend .line:before{border-radius:50%;background:#efff41}.bar-row{display:grid;grid-template-columns:86px minmax(0,1fr) 44px;align-items:center;gap:10px;color:#dffaff;font-size:12px}.bar-track{display:grid;height:22px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:4px;overflow:hidden;border:1px solid rgba(66,235,255,.12);border-radius:4px;padding:3px;background:#041727c7}.bar-track i{display:block;min-width:0;height:100%;border-radius:3px}.bar-total{background:#1f6cffb8}.bar-online{background:#21d596c7}.bar-alarm{background:#ff3147db}.bar-row strong{color:#efff41}.ring-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;align-items:center;justify-items:center}.progress-ring{position:relative;display:grid;width:92px;height:92px;place-items:center;border-radius:50%;background:conic-gradient(var(--ring) var(--value),rgba(68,216,255,.16) 0);filter:drop-shadow(0 0 14px rgba(40,185,255,.2))}.progress-ring:before{position:absolute;width:68px;height:68px;border-radius:50%;content:"";background:#052538}.progress-ring div{position:relative;z-index:1;display:grid;place-items:center;text-align:center}.progress-ring strong{font-size:18px}.progress-ring span{max-width:88px;color:#d9faff;font-size:11px;line-height:1.25}.map-zone{display:grid;min-width:0;grid-template-rows:48px minmax(0,1fr) 31%;gap:14px}.map-nav{display:flex;align-items:center;justify-content:center;gap:20px}.map-nav button{min-width:120px;min-height:38px;padding:0 18px;font-size:18px}.map-canvas{position:relative;min-height:0;overflow:hidden;border:1px solid rgba(53,228,255,.2);background:radial-gradient(circle at 46% 42%,rgba(40,244,190,.12),transparent 20%),radial-gradient(circle at 70% 65%,rgba(255,77,94,.12),transparent 18%),linear-gradient(180deg,#022f3a3d,#011925ad)}.amap-host{position:absolute;inset:0;z-index:0;width:100%;height:100%;min-height:100%;background:transparent;opacity:0;transition:opacity .24s ease}.amap-host.is-active{opacity:1}.map-search-panel{position:absolute;top:14px;left:16px;z-index:6;display:grid;width:min(360px,calc(100% - 170px));grid-template-columns:minmax(0,1fr) 38px;gap:8px}.map-search-box{display:flex;min-width:0;height:38px;align-items:center;gap:8px;border:1px solid rgba(77,246,255,.42);border-radius:6px;padding:0 10px;background:#021826db;color:#8deeff;box-shadow:inset 0 0 18px #46efff14,0 0 18px #00000040}.map-search-box input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#eaffff;font-size:13px;font-weight:800}.map-search-box input::placeholder{color:#c6f4ff9e}.map-search-button{display:inline-flex;height:38px;align-items:center;justify-content:center;border:1px solid rgba(77,246,255,.42);border-radius:6px;background:#073a56eb;color:#eaffff}.map-search-results,.map-search-message{grid-column:1 / -1;border:1px solid rgba(77,246,255,.32);border-radius:6px;background:#021826eb;box-shadow:inset 0 0 18px #46efff14,0 10px 24px #00000047}.map-search-results{display:grid;overflow:hidden}.map-search-results button{display:grid;min-width:0;gap:3px;border:0;border-bottom:1px solid rgba(77,246,255,.12);padding:9px 10px;background:transparent;color:#eaffff;text-align:left}.map-search-results button:last-child{border-bottom:0}.map-search-results button:hover{background:#24c0ff1f}.map-search-results strong,.map-search-results span,.map-search-message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-search-results strong{font-size:13px}.map-search-results span,.map-search-message{color:#9bdce8;font-size:12px}.map-search-message{padding:8px 10px}.map-load-state,.map-provider-badge{position:absolute;right:16px;z-index:4;border:1px solid rgba(77,246,255,.32);border-radius:6px;padding:7px 10px;background:#021826c7;color:#c8fbff;font-size:12px;font-weight:900;pointer-events:none}.map-load-state,.map-provider-badge{bottom:18px}.amap-device-marker{position:relative;display:grid;min-width:74px;justify-items:center;color:#1df2a5;font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px rgba(0,0,0,.8)}.amap-device-marker.warning{color:#ffd04a}.amap-device-marker.critical{color:#ff4d5e}.amap-device-marker.estimated{opacity:.78}.amap-device-marker-pin{width:22px;height:22px;border:2px solid rgba(255,255,255,.82);border-radius:50% 50% 50% 0;background:currentColor;box-shadow:0 0 16px currentColor;transform:rotate(-45deg)}.amap-device-marker strong{margin-top:3px;padding:2px 6px;border-radius:6px;background:#021826d1}.amap-device-marker.selected:after{position:absolute;top:-12px;width:54px;height:54px;border:1px solid currentColor;border-radius:50%;content:"";animation:markerPulse 1.4s infinite}.amap-search-marker{display:grid;max-width:220px;place-items:center}.amap-search-marker span{overflow:hidden;max-width:220px;border:1px solid rgba(77,246,255,.42);border-radius:6px;padding:7px 9px;background:#021826e6;color:#eaffff;font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 0 18px #46efff40}.home-map-grid{position:absolute;inset:0;opacity:.7;pointer-events:none;background-image:linear-gradient(90deg,rgba(82,243,255,.16) 1px,transparent 1px),linear-gradient(rgba(82,243,255,.14) 1px,transparent 1px),radial-gradient(circle at 24% 34%,rgba(24,240,162,.24),transparent 8%),radial-gradient(circle at 68% 46%,rgba(82,243,255,.2),transparent 9%),radial-gradient(circle at 78% 72%,rgba(255,208,74,.18),transparent 8%);background-size:cover}.map-canvas:before{position:absolute;inset:0;content:"";pointer-events:none;background-image:linear-gradient(rgba(58,244,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(58,244,255,.06) 1px,transparent 1px);background-size:92px 92px}.layer-badge{position:absolute;top:14px;right:16px;z-index:3;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(77,246,255,.42);border-radius:6px;padding:8px 12px;background:#021826b8;color:#c8fbff;font-size:13px;font-weight:900;pointer-events:none;box-shadow:inset 0 0 16px #46efff14}.layer-badge svg{color:#52f3ff}.map-canvas.layer-collapsed .home-map-grid{opacity:.36}.map-marker{position:absolute;z-index:2;display:grid;width:74px;transform:translate(-50%,-50%);place-items:center;border:0;background:transparent;color:#1df2a5;font-size:11px;font-weight:900;text-shadow:0 0 8px rgba(0,0,0,.75)}.map-marker svg{fill:currentColor;filter:drop-shadow(0 0 12px currentColor)}.map-marker.warning{color:#ffd04a}.map-marker.critical{color:#ff4d5e}.map-marker span{margin-top:-4px}.map-marker.selected{z-index:4;transform:translate(-50%,-50%) scale(1.16)}.map-marker.selected:after{position:absolute;width:54px;height:54px;border:1px solid currentColor;border-radius:50%;content:"";animation:markerPulse 1.4s infinite}@keyframes markerPulse{0%{opacity:.95;transform:scale(.76)}to{opacity:0;transform:scale(1.35)}}.floating-stats{position:absolute;top:86px;left:4%;display:grid;width:min(360px,42%);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;border:1px solid rgba(75,245,255,.6);border-radius:8px;padding:20px;background:#042338d1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 0 34px #19d3ff14;pointer-events:none}.marker-detail{position:absolute;right:18px;bottom:18px;z-index:5;width:min(330px,calc(100% - 36px));border:1px solid rgba(78,246,255,.6);border-radius:8px;padding:14px;background:#031929e0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 24px #30dbff1f,0 0 24px #00000059}.marker-detail.warning{border-color:#ffd04ac7}.marker-detail.critical{border-color:#ff4d5ec7}.marker-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.marker-detail-head span,.marker-detail-grid span,.marker-detail p{color:#8bd4df;font-size:12px}.marker-detail-head strong{display:block;margin-top:4px;color:#fff;font-size:18px}.marker-detail-head button{width:28px;height:28px;border:1px solid rgba(77,246,255,.42);border-radius:6px;background:#04263ac2;color:#dffcff;font-size:20px;line-height:1}.marker-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.marker-detail-grid div{border:1px solid rgba(68,216,255,.12);border-radius:6px;padding:10px;background:#0830466b}.marker-detail-grid strong{display:block;margin-top:5px;color:#ffd04a;font-family:Consolas,Courier New,monospace;font-size:16px}.marker-detail p{margin:12px 0 0}.stat-item{display:grid;gap:6px}.stat-item span{color:#d9faff;font-size:13px;font-weight:900}.stat-item strong{color:#ffd04a;font-family:Consolas,Courier New,monospace;font-size:28px;line-height:1}.stat-item em{margin-left:2px;color:#fff;font-size:14px;font-style:normal}.bottom-table{padding:12px}.table-wrap{overflow:auto}table{width:100%;min-width:860px;border-collapse:collapse}th,td{border-bottom:1px solid rgba(72,221,255,.12);padding:11px 10px;text-align:left;white-space:nowrap}th{background:#0c4e7685;color:#d8fbff;font-size:12px;font-weight:900;letter-spacing:.3px}td{color:#c7eef7;font-size:12px;font-weight:800}td.warning{color:#ffd04a}td.critical{color:#ff4d5e}tbody tr:nth-child(2n){background:#1cb5f40f}.task-button{min-height:24px;padding:0 9px;color:#ffd04a}.task-button.done{border-color:#18f0a285;color:#18f0a2}.event-tools{display:grid;gap:10px;margin-bottom:12px}.filter-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.filter-buttons button{min-height:30px}.search-box{display:flex;align-items:center;gap:8px;border:1px solid rgba(66,235,255,.34);border-radius:6px;padding:0 9px;background:#031624ad;color:#8deeff}.search-box input{min-width:0;width:100%;height:34px;border:0;outline:0;background:transparent;color:#dffcff}.search-box input::placeholder{color:#5e9eab}.event-list{display:grid;gap:8px}.event-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:9px;min-height:44px;border:1px solid rgba(68,216,255,.12);border-radius:6px;padding:8px;background:#06273c7a}.event-row strong,.event-row span{display:block}.event-row strong{color:#fff;font-size:13px}.event-row span,.event-row small{color:#91cfda;font-size:11px}.event-row button{min-height:28px;padding:0 9px}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#18f0a2;box-shadow:0 0 12px currentColor}.status-dot.warning{background:#ffd04a}.status-dot.critical{background:#ff4d5e}.empty-state{display:grid;min-height:120px;place-items:center;color:#88cbd8;font-size:13px}.screen-footer{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-top:14px}.quick-metric{display:flex;min-width:0;min-height:64px;align-items:center;gap:12px;border:1px solid rgba(68,216,255,.36);border-radius:6px;padding:11px 13px;background:#05263bc2;box-shadow:inset 0 0 22px #27d7ff12}.quick-metric>span{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:6px;color:#18f0a2;background:#18f0a21f}.quick-metric.warning>span{color:#ffd04a;background:#ffd04a21}.quick-metric.critical>span{color:#ff4d5e;background:#ff4d5e21}.quick-metric small,.quick-metric strong{display:block}.quick-metric small{color:#8bd4df;font-size:12px}.quick-metric strong{margin-top:3px;color:#fff;font-family:Consolas,Courier New,monospace;font-size:20px}@media(max-width:1360px){.screen{overflow:auto}.screen-header{grid-template-columns:1fr}.screen-tabs,.header-right{justify-self:stretch}.header-right{justify-content:flex-start;flex-wrap:wrap}.left-stack,.right-stack,.map-zone{grid-template-rows:auto}.map-canvas{min-height:520px}.screen-footer{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.login-page,.login-metrics,.screen-footer,.donut-wrap,.alarm-summary{grid-template-columns:1fr}.login-hero,.login-panel,.screen{padding:18px}.screen-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.map-nav{align-items:stretch;flex-direction:column;gap:8px}.map-canvas{min-height:420px}.floating-stats{inset:auto 12px 12px;width:auto}.map-search-panel{right:12px;left:12px;width:auto}.ring-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--dash-cyan: #52f3ff;--dash-blue: #1f8cff;--dash-green: #18f0a2;--dash-amber: #ffd04a;--dash-red: #ff4d5e;--dash-ink: rgba(3, 19, 31, .82);--dash-panel: rgba(5, 37, 58, .78);--dash-border: rgba(76, 235, 255, .36);--dash-gap: clamp(12px, 1vw, 18px)}.screen{display:grid;min-height:100dvh;height:auto;grid-template-rows:auto minmax(0,1fr) auto;gap:var(--dash-gap);overflow-x:hidden;overflow-y:auto;padding:clamp(12px,1.1vw,18px);scroll-padding-bottom:112px}.screen-header,.view-shell,.screen-footer,.metric-dock{min-width:0}.view-shell{position:relative;z-index:1;align-self:stretch;min-height:0;margin-top:0}.view-shell{display:grid;height:clamp(620px,calc(100dvh - 190px),900px);grid-template-rows:minmax(0,1fr) auto;gap:var(--dash-gap);animation:viewShellEnter .52s cubic-bezier(.16,1,.3,1) both}.overview-view,.devices-view,.device-locations-view,.alarms-view,.realtime-view,.realtime-curve-view,.accounts-view{display:grid;min-width:0;min-height:0;gap:var(--dash-gap)}.view-shell>.overview-view,.view-shell>.devices-view,.view-shell>.device-locations-view,.view-shell>.alarms-view,.view-shell>.realtime-view,.view-shell>.realtime-curve-view,.view-shell>.accounts-view{height:100%}.overview-view{grid-template-columns:minmax(280px,.76fr) minmax(560px,1.5fr) minmax(300px,.78fr);grid-template-rows:minmax(0,1fr)}.devices-view{grid-template-columns:minmax(300px,.86fr) minmax(560px,1.38fr) minmax(300px,.82fr);grid-template-rows:minmax(0,1fr)}.device-locations-view{grid-template-columns:minmax(680px,1fr) minmax(340px,.36fr);grid-template-rows:minmax(0,1fr)}.location-map-panel{min-height:0}.location-map-canvas{flex:1;min-height:clamp(560px,calc(100dvh - 280px),760px)}.location-side{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(260px,.9fr) minmax(260px,1fr);gap:var(--dash-gap)}.location-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.location-stat-grid div,.location-address,.location-status-card{border:1px solid rgba(68,216,255,.14);border-radius:6px;background:#0830466b}.location-stat-grid div{display:grid;gap:5px;padding:11px}.location-stat-grid span,.location-address span,.location-status-card span,.location-status-card small{color:#8bd4df;font-size:12px;font-weight:800}.location-stat-grid strong,.location-address strong,.location-status-card strong{color:#ffd04a;font-family:Consolas,Courier New,monospace;font-size:18px}.location-detail{display:grid;gap:12px}.location-status-card{display:grid;gap:4px;padding:13px;border-left:3px solid #18f0a2}.location-status-card.warning{border-left-color:#ffd04a}.location-status-card.critical{border-left-color:#ff4d5e}.location-status-card strong{overflow-wrap:anywhere;color:#fff;font-size:20px}.location-address{display:grid;gap:5px;padding:10px}.location-address strong{overflow-wrap:anywhere;color:#eaffff;font-size:13px}.location-device-list{display:grid;gap:9px;overflow:auto;padding-right:4px}.location-device-list button{display:grid;min-width:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid rgba(76,235,255,.18);border-radius:6px;padding:10px;background:#03192975;color:#eaffff;text-align:left}.location-device-list button:hover,.location-device-list button.active{border-color:#52f3ff8a;background:#188ab833;box-shadow:inset 0 0 20px #52f3ff14}.location-device-list strong,.location-device-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-device-list small,.location-device-list em{color:#8bd4df;font-size:12px;font-style:normal;font-weight:800}.alarms-view{grid-template-columns:minmax(300px,.78fr) minmax(560px,1.36fr) minmax(320px,.88fr);grid-template-rows:minmax(0,1fr)}.realtime-view{grid-template-columns:minmax(280px,.7fr) minmax(600px,1.55fr) minmax(320px,.86fr);grid-template-rows:minmax(0,1fr)}.realtime-curve-view{grid-template-columns:minmax(280px,.72fr) minmax(640px,1.55fr) minmax(320px,.82fr);grid-template-rows:minmax(0,1fr)}.accounts-view{grid-template-columns:minmax(520px,1.15fr) minmax(420px,.85fr);grid-template-rows:minmax(0,1fr)}.overview-view .page-hero,.devices-view .page-hero,.device-locations-view .page-hero,.alarms-view .page-hero,.realtime-view .page-hero,.realtime-curve-view .page-hero,.overview-view .page-summary,.devices-view .page-summary,.device-locations-view .page-summary,.alarms-view .page-summary,.realtime-view .page-summary,.realtime-curve-view .page-summary{grid-column:1 / -1}.screen-footer,.metric-dock{position:relative;inset:auto;z-index:2;display:grid;grid-template-columns:repeat(6,minmax(132px,1fr));gap:clamp(9px,.8vw,14px);align-self:end;margin-top:0;padding:0;background:transparent;pointer-events:auto}.metric-dock{width:100%}.screen-tabs button,.map-nav button,.filter-buttons button,.task-button,.event-row button,.logout-button,.primary-button{position:relative;isolation:isolate;overflow:hidden;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease,box-shadow .22s ease}.screen-tabs button:after,.map-nav button:after,.filter-buttons button:after,.task-button:after,.event-row button:after,.logout-button:after,.primary-button:after{position:absolute;inset:-70% -42%;z-index:0;content:"";opacity:0;background:linear-gradient(105deg,transparent 22%,rgba(255,255,255,.34) 48%,transparent 70%);transform:translate(-62%) rotate(8deg);transition:opacity .22s ease,transform .52s cubic-bezier(.16,1,.3,1)}.screen-tabs button:hover,.map-nav button:hover,.filter-buttons button:hover,.task-button:hover,.event-row button:hover,.logout-button:hover,.primary-button:hover{transform:translateY(-1px)}.screen-tabs button:hover:after,.screen-tabs button.active:after,.map-nav button:hover:after,.map-nav button.active:after,.filter-buttons button:hover:after,.filter-buttons button.active:after,.task-button:hover:after,.event-row button:hover:after,.logout-button:hover:after,.primary-button:hover:after{opacity:.55;transform:translate(62%) rotate(8deg)}.screen-tabs button:active,.map-nav button:active,.filter-buttons button:active,.task-button:active,.event-row button:active,.logout-button:active,.primary-button:active{transform:translateY(1px) scale(.99)}.screen-tabs button.active{text-shadow:0 0 12px rgba(82,243,255,.55)}.panel-glow,.data-card{position:relative;min-width:0;overflow:hidden;border-color:var(--dash-border);background:linear-gradient(180deg,transparent 0%,rgba(92,244,255,.08) 48%,transparent 58%) 0 -140% / 100% 240% no-repeat,radial-gradient(circle at 8% 0%,rgba(82,243,255,.12),transparent 34%),linear-gradient(180deg,#073048d1,#03192bd1);box-shadow:inset 0 0 34px #19d3ff14,0 0 22px #0ca2dc1f;animation:panelFadeSlide .52s cubic-bezier(.16,1,.3,1) both,panelScan 7.5s linear infinite}.view-shell>*:nth-child(2),.panel-glow:nth-child(2),.data-card:nth-child(2){animation-delay:60ms,0ms}.view-shell>*:nth-child(3),.panel-glow:nth-child(3),.data-card:nth-child(3){animation-delay:.11s,0ms}.page-hero{position:relative;display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;overflow:hidden;border:1px solid rgba(82,243,255,.34);border-radius:6px;padding:clamp(14px,1.2vw,20px);background:linear-gradient(90deg,#0a4f6fb8,#05233ad6),radial-gradient(circle at 86% 18%,rgba(255,208,74,.16),transparent 28%);box-shadow:inset 0 0 28px #52f3ff14}.page-hero:after{position:absolute;inset:0;content:"";pointer-events:none;opacity:.42;background:linear-gradient(110deg,transparent 0 42%,rgba(82,243,255,.18) 50%,transparent 58%),linear-gradient(rgba(82,243,255,.08) 1px,transparent 1px);background-size:220% 100%,100% 34px;animation:heroSweep 6.5s linear infinite}.page-hero h1,.page-hero h2,.page-hero p,.page-summary,.data-card,.quick-metric,.realtime-feed{min-width:0}.page-hero h1,.page-hero h2,.page-hero p{overflow-wrap:anywhere}.page-hero h1,.page-hero h2{margin:0;color:#f7ffff;font-size:clamp(22px,1.7vw,34px);line-height:1.18;letter-spacing:0;text-shadow:0 0 18px rgba(82,243,255,.42)}.page-hero p{margin:6px 0 0;color:#9ed7e2;line-height:1.65}.page-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(156px,1fr));gap:12px}.data-card{display:grid;align-content:center;min-height:96px;border:1px solid rgba(82,243,255,.24);border-radius:6px;padding:14px}.data-card:after,.quick-metric:after{position:absolute;inset:0;content:"";pointer-events:none;opacity:0;background:linear-gradient(115deg,transparent 18%,rgba(255,255,255,.18) 48%,transparent 74%);transform:translate(-120%);animation:cardGlimmer 5.8s ease-in-out infinite}.data-card strong,.quick-metric strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-card strong{color:#fff;font-family:Consolas,Courier New,monospace;font-size:clamp(22px,1.8vw,34px);line-height:1.08}.data-card span,.data-card small{color:#9ed7e2;font-size:12px;font-weight:800}.quick-metric{position:relative;overflow:hidden;min-height:60px;transition:transform .18s ease,border-color .18s ease,box-shadow .22s ease}.quick-metric:hover,.data-card:hover{transform:translateY(-2px);border-color:#52f3ff94;box-shadow:inset 0 0 28px #52f3ff17,0 8px 26px #000a143d,0 0 22px #52f3ff29}.metric-dock .quick-metric:nth-child(2):after,.screen-footer .quick-metric:nth-child(2):after,.page-summary .data-card:nth-child(2):after{animation-delay:.7s}.metric-dock .quick-metric:nth-child(3):after,.screen-footer .quick-metric:nth-child(3):after,.page-summary .data-card:nth-child(3):after{animation-delay:1.4s}.metric-dock .quick-metric:nth-child(4):after,.screen-footer .quick-metric:nth-child(4):after,.page-summary .data-card:nth-child(4):after{animation-delay:2.1s}.map-canvas{border-color:#52f3ff42;box-shadow:inset 0 0 45px #18f0a20d,0 0 28px #1f8cff1f}.home-map-grid{position:absolute;overflow:hidden;filter:drop-shadow(0 0 10px rgba(82,243,255,.22))}.home-map-grid:before,.home-map-grid:after{position:absolute;inset:-12%;content:"";pointer-events:none;mix-blend-mode:screen}.home-map-grid:before{opacity:.46;background:repeating-linear-gradient(0deg,transparent 0 74px,rgba(82,243,255,.08) 76px,rgba(82,243,255,.42) 78px,transparent 82px);background-size:100% 280px;animation:homeGridFlow 7s linear infinite}.home-map-grid:after{opacity:.28;background:linear-gradient(90deg,transparent 0 18%,rgba(82,243,255,.16) 18% 18.5%,transparent 18.5% 100%),linear-gradient(90deg,transparent 0 43%,rgba(82,243,255,.12) 43% 43.5%,transparent 43.5% 100%),linear-gradient(90deg,transparent 0 71%,rgba(82,243,255,.14) 71% 71.5%,transparent 71.5% 100%),radial-gradient(circle at 24% 34%,rgba(24,240,162,.36),transparent 4%),radial-gradient(circle at 62% 32%,rgba(82,243,255,.38),transparent 4%),radial-gradient(circle at 78% 64%,rgba(255,208,74,.28),transparent 4%);animation:nodeDrift 7s ease-in-out infinite alternate}.map-marker{transition:transform .18s ease,filter .18s ease}.map-marker:before{position:absolute;width:46px;height:46px;border:1px solid currentColor;border-radius:50%;content:"";opacity:.55;transform:scale(.8);animation:markerBreath 2.8s ease-in-out infinite}.map-marker.warning:before{animation-duration:2.25s}.map-marker.critical:before{animation-duration:1.75s}.map-marker:hover:not(.selected){transform:translate(-50%,-50%) scale(1.08);filter:brightness(1.2) drop-shadow(0 0 8px currentColor)}.devices-view .data-card,.devices-view .panel-glow{border-left:2px solid rgba(24,240,162,.62)}.device-table,table.device-table{width:100%;min-width:0}.device-table{overflow:auto;border:1px solid rgba(82,243,255,.22);border-radius:6px;background:#031827a8}.device-table table,table.device-table{min-width:900px;border-collapse:collapse}.device-table th,table.device-table th{position:sticky;top:0;z-index:1;background:#0b5476eb}.device-table td,.device-table th,table.device-table td,table.device-table th{max-width:220px;overflow:hidden;text-overflow:ellipsis}.accounts-list-panel,.account-form-panel,.accounts-side-stack,.polling-settings-panel,.account-table-wrap{min-height:0}.account-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.account-summary div{overflow:hidden;border:1px solid rgba(82,243,255,.2);border-radius:8px;padding:12px;background:linear-gradient(135deg,#1c82b02e,#031827b8),radial-gradient(circle at 100% 0%,rgba(82,243,255,.14),transparent 46%);box-shadow:inset 0 0 22px #52f3ff0f}.account-summary span,.account-summary strong{display:block}.account-summary span{color:#8bd4df;font-size:12px;font-weight:900}.account-summary strong{margin-top:4px;color:#fff;font-family:Consolas,Courier New,monospace;font-size:24px;line-height:1}.account-actions{display:flex;flex-wrap:wrap;gap:6px}.accounts-side-stack{display:flex;height:100%;flex-direction:column;gap:var(--dash-gap);overflow-x:hidden;overflow-y:auto;padding-right:3px;scrollbar-color:rgba(82,243,255,.42) rgba(2,20,34,.4);scrollbar-width:thin}.account-form-panel{position:relative;flex:0 0 min(100%,clamp(420px,60dvh,620px));overflow:hidden;gap:14px}.account-form-scroll{display:grid;min-height:0;flex:1 1 auto;align-content:start;gap:14px;overflow-x:hidden;overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}.account-form-scroll::-webkit-scrollbar,.device-permission-grid::-webkit-scrollbar,.account-table-wrap::-webkit-scrollbar{width:7px;height:7px}.account-form-scroll::-webkit-scrollbar-thumb,.device-permission-grid::-webkit-scrollbar-thumb,.account-table-wrap::-webkit-scrollbar-thumb{border-radius:999px;background:#52f3ff57}.account-form-scroll::-webkit-scrollbar-track,.device-permission-grid::-webkit-scrollbar-track,.account-table-wrap::-webkit-scrollbar-track{background:transparent}.account-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.account-form-grid label,.permission-block{display:grid;gap:8px}.account-form-grid label{border:1px solid rgba(82,243,255,.12);border-radius:10px;padding:10px;background:#03182752}.permission-block{border:1px solid rgba(82,243,255,.14);border-radius:10px;padding:12px;background:#0318275c;box-shadow:inset 0 0 24px #52f3ff0a}.account-form-grid label>span,.permission-head{color:#9bdce7;font-size:12px;font-weight:900}.account-form-grid input,.account-form-grid select{min-width:0;min-height:40px;border:1px solid rgba(66,235,255,.34);border-radius:8px;padding:0 10px;outline:0;background:#02121fc7;color:#dffcff;font-weight:800;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.account-form-grid input:focus,.account-form-grid select:focus{border-color:#52f3ffc2;background:#041f32e0;box-shadow:0 0 0 3px #52f3ff14,inset 0 0 18px #52f3ff0f}.account-form-grid input:disabled{cursor:not-allowed;opacity:.72}.permission-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.permission-head-label,.permission-actions{display:inline-flex;align-items:center;gap:8px}.permission-actions button{min-height:24px;border:1px solid rgba(66,235,255,.28);border-radius:6px;padding:0 8px;background:#031624ad;color:#b9f5ff;font-size:12px;font-weight:900}.permission-actions button:hover{border-color:#52f3ff8f;background:#188ab833}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.device-permission-grid{max-height:clamp(140px,24dvh,220px);overflow:auto;padding-right:4px}.check-tile{display:grid;min-width:0;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center;border:1px solid rgba(66,235,255,.24);border-radius:8px;padding:9px;background:#02121f9e;color:#dffcff;font-size:12px;font-weight:900;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.check-tile:hover{border-color:#52f3ff7a;background:#082f4680;box-shadow:inset 0 0 18px #52f3ff0d}.check-tile:has(input:checked){border-color:#18f0d894;background:linear-gradient(135deg,#18f0d829,#031827b8),#03182794;box-shadow:inset 0 0 18px #18f0d814}.check-tile input{width:15px;height:15px;accent-color:#18f0d8}.check-tile span,.check-tile small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-tile small{grid-column:2;color:#76b8c5;font-size:11px}.field-hint{color:#76b8c5;font-size:11px;font-weight:800;line-height:1.45}.field-hint.warning{color:#ffd04a}.form-message{border:1px solid rgba(255,208,74,.34);border-radius:8px;padding:10px 12px;background:#53390a52;color:#ffe6a3;font-size:12px;font-weight:900}.account-form-actions{display:grid;flex:0 0 auto;gap:10px;margin:0 -2px -2px;border-top:1px solid rgba(82,243,255,.16);padding:12px 2px 2px;background:linear-gradient(180deg,#05253a00,#05253ab8 34%,#05253aeb),#05253ab8}.account-submit-button{width:100%;min-height:44px;border-radius:8px}.polling-settings-panel{display:grid;flex:0 0 auto;gap:14px}.polling-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.polling-status-grid div{border:1px solid rgba(82,243,255,.16);border-radius:8px;padding:10px;background:#03182761}.polling-status-grid span,.polling-status-grid strong,.polling-control-grid label>span{display:block}.polling-status-grid span,.polling-control-grid label>span{color:#9bdce7;font-size:12px;font-weight:900}.polling-status-grid strong{margin-top:5px;overflow:hidden;color:#fff;font-family:Consolas,Courier New,monospace;font-size:18px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.polling-control-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:12px}.polling-control-grid label{display:grid;gap:8px;border:1px solid rgba(82,243,255,.12);border-radius:10px;padding:10px;background:#03182752}.polling-control-grid input[type=number]{min-width:0;min-height:40px;border:1px solid rgba(66,235,255,.34);border-radius:8px;padding:0 10px;outline:0;background:#02121fc7;color:#dffcff;font-weight:800}.polling-control-grid input[type=number]:focus{border-color:#52f3ffc2;box-shadow:0 0 0 3px #52f3ff14}.toggle-row{grid-template-columns:auto minmax(0,1fr);align-items:center}.toggle-row input{width:18px;height:18px;accent-color:#18f0d8}.polling-presets,.polling-actions,.polling-device-list{display:flex;flex-wrap:wrap;gap:8px}.polling-presets button,.polling-device-list span{min-height:28px;border:1px solid rgba(66,235,255,.2);border-radius:7px;padding:5px 9px;background:#02121f94;color:#c8f7ff;font-size:12px;font-weight:900}.polling-presets button:hover{border-color:#52f3ff80;background:#188ab833}.polling-save-button{min-height:34px;border-radius:7px;padding:0 14px}.modbus-management-panel{display:grid;flex:0 0 auto;gap:14px}.modbus-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.modbus-tabs button{min-height:34px;border:1px solid rgba(66,235,255,.22);border-radius:8px;background:#03182785;color:#b9f5ff;font-weight:900}.modbus-tabs button.active,.modbus-tabs button:hover{border-color:#52f3ff94;background:linear-gradient(135deg,#1c90bd6b,#13c4b82e);color:#fff}.modbus-panel-body{display:grid;gap:12px}.modbus-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.modbus-form-grid label,.modbus-toggle-field{display:grid;gap:7px;border:1px solid rgba(82,243,255,.12);border-radius:9px;padding:9px;background:#03182752}.modbus-form-grid label>span,.modbus-toggle-field span{color:#9bdce7;font-size:12px;font-weight:900}.modbus-form-grid input,.modbus-form-grid select{min-width:0;min-height:36px;border:1px solid rgba(66,235,255,.3);border-radius:7px;padding:0 9px;outline:0;background:#02121fc7;color:#dffcff;font-weight:800}.modbus-toggle-field{grid-template-columns:auto minmax(0,1fr);align-items:center;align-content:center}.modbus-toggle-field input{width:17px;height:17px;accent-color:#18f0d8}.modbus-actions{display:flex;flex-wrap:wrap;gap:8px}.modbus-mini-table{max-height:260px}.modbus-mini-table table{min-width:620px}.modbus-mini-table small{color:#76b8c5;font-size:11px}.modbus-import-textarea{min-height:180px;border:1px solid rgba(66,235,255,.3);border-radius:8px;padding:10px;outline:0;resize:vertical;background:#02121fc7;color:#dffcff;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.5}.modbus-import-errors{display:grid;max-height:120px;gap:6px;overflow:auto;border:1px solid rgba(255,208,74,.2);border-radius:8px;padding:8px;background:#53390a33;color:#ffe6a3;font-size:12px;font-weight:800}.no-access-state{display:grid;place-items:center;min-height:260px}.alarms-view .page-hero,.alarms-view .data-card,.alarms-view .panel-glow{border-color:#ffd04a66}.event-row:has(.status-dot.warning),tbody tr:has(td.warning){animation:alarmSoftBlink 2.8s ease-in-out infinite}.event-row:has(.status-dot.critical),tbody tr:has(td.critical){animation:alarmCriticalBlink 2.2s ease-in-out infinite}.realtime-feed{display:grid;max-height:100%;align-content:start;gap:8px;overflow:auto;padding-right:3px}.realtime-feed>*{position:relative;min-width:0;overflow:hidden;border:1px solid rgba(82,243,255,.16);border-radius:6px;padding:10px 12px;background:#042032a3;animation:feedItemIn .42s ease both}.realtime-feed>*:before{position:absolute;inset:0 auto 0 0;width:2px;content:"";background:linear-gradient(180deg,var(--dash-cyan),var(--dash-green));box-shadow:0 0 12px #52f3ffa6}.table-wrap,.event-list,.realtime-feed{scrollbar-color:rgba(82,243,255,.42) rgba(2,20,34,.4);scrollbar-width:thin}.table-wrap::-webkit-scrollbar,.event-list::-webkit-scrollbar,.realtime-feed::-webkit-scrollbar{width:8px;height:8px}.table-wrap::-webkit-scrollbar-thumb,.event-list::-webkit-scrollbar-thumb,.realtime-feed::-webkit-scrollbar-thumb{border-radius:999px;background:#52f3ff57}.curve-metric-switch,.curve-device-list{display:grid;gap:10px}.curve-metric-switch button,.curve-device-list button{display:grid;min-width:0;border:1px solid rgba(82,243,255,.22);border-radius:6px;padding:12px;background:#0420329e;color:#d9fbff;text-align:left;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .22s ease}.curve-metric-switch button{grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;font-size:14px;font-weight:900}.curve-device-list button{grid-template-columns:12px minmax(0,1fr);align-items:center;gap:8px 10px}.curve-device-list small{grid-column:2;color:#8bd4df;font-size:12px;font-weight:800}.curve-device-list strong{min-width:0;overflow:hidden;color:#fff;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.curve-metric-switch button:hover,.curve-device-list button:hover,.curve-metric-switch button.active,.curve-device-list button.active{border-color:#52f3ffb8;background:linear-gradient(180deg,#1ab9ff52,#073752b8);box-shadow:0 0 18px #32dcff29,inset 0 0 18px #52f3ff14;transform:translateY(-1px)}.curve-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.curve-stat-grid div,.curve-range-note{border:1px solid rgba(82,243,255,.18);border-radius:6px;padding:12px;background:#04203285}.curve-stat-grid span,.curve-range-note span{display:block;color:#8fdbe6;font-size:12px;font-weight:800;line-height:1.5}.curve-stat-grid strong,.curve-range-note strong{display:block;margin-bottom:4px;color:#fff;font-family:Consolas,Courier New,monospace;font-size:19px;font-weight:900;line-height:1.2}.curve-main-panel{min-height:0}.curve-chart-wrap{position:relative;display:grid;flex:1;min-height:0;grid-template-rows:minmax(0,1fr) auto;gap:12px}.curve-chart{width:100%;height:100%;min-height:380px;border:1px solid rgba(82,243,255,.18);border-radius:8px;background:radial-gradient(circle at 20% 12%,rgba(82,243,255,.12),transparent 30%),radial-gradient(circle at 84% 24%,rgba(41,240,166,.1),transparent 28%),linear-gradient(180deg,#022032c2,#021422eb)}.curve-grid-line{stroke:#8eedff24;stroke-dasharray:6 8}.curve-axis-line{stroke:#8eedff52;stroke-width:1.2}.curve-axis-label,.curve-time-label{fill:#7fd8e8;font-family:Consolas,Courier New,monospace;font-size:13px;font-weight:800}.curve-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.curve-point{stroke:#ffffffdb;stroke-width:1.5}.curve-last-callout rect{fill:#021422e0;stroke:#52f3ff6b}.curve-last-callout text{fill:#fff;font-family:Consolas,Courier New,monospace;font-size:13px;font-weight:900}.curve-last-callout text+text{fill:#8fdbe6;font-size:11px}.curve-chart-caption{display:flex;align-items:center;gap:10px;color:#9ed7e2;font-size:13px;font-weight:900}.curve-chart-caption span{width:38px;height:4px;border-radius:999px;box-shadow:0 0 14px currentColor}.curve-empty{display:grid;min-height:380px;place-items:center;align-content:center;gap:10px;border:1px dashed rgba(82,243,255,.28);border-radius:8px;color:#8fdbe6;text-align:center;background:#0420326b}.curve-empty svg{color:#52f3ff}.curve-empty strong{color:#fff;font-size:18px;font-weight:900}.curve-empty span{color:#9ed7e2;font-size:13px;font-weight:800}.bottom-table{display:grid;min-height:0;grid-template-rows:auto minmax(0,1fr)}.table-wrap{min-height:0}.panel-title-row h2,.panel-title-row span,.event-row strong,.event-row span,.event-row small,.quick-metric small,.quick-metric strong,.data-card strong,.data-card span,.realtime-feed>*{overflow-wrap:anywhere}@keyframes viewShellEnter{0%{opacity:0;filter:blur(6px);transform:translateY(18px) scale(.992)}to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}@keyframes panelFadeSlide{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes panelScan{0%{background-position:0 -170%,0 0,0 0}to{background-position:0 170%,0 0,0 0}}@keyframes heroSweep{0%{background-position:-120% 0,0 0}to{background-position:120% 0,0 34px}}@keyframes cardGlimmer{0%,42%{opacity:0;transform:translate(-120%)}52%{opacity:.75}68%,to{opacity:0;transform:translate(120%)}}@keyframes homeGridFlow{0%{background-position:0 0}to{background-position:0 280px}}@keyframes nodeDrift{0%{transform:translate3d(-1%,-1%,0) scale(.98)}to{transform:translate3d(1%,1%,0) scale(1.02)}}@keyframes markerBreath{0%,to{opacity:.26;transform:scale(.72)}50%{opacity:.72;transform:scale(1.14)}}@keyframes alarmSoftBlink{0%,to{box-shadow:inset 0 0 #ffd04a00}50%{box-shadow:inset 3px 0 #ffd04ab8,0 0 16px #ffd04a1a}}@keyframes alarmCriticalBlink{0%,to{box-shadow:inset 0 0 #ff4d5e00}50%{box-shadow:inset 3px 0 #ff4d5ed1,0 0 18px #ff4d5e24}}@keyframes feedItemIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@media(max-width:1360px){.screen{grid-template-rows:auto auto auto;overflow-y:auto}.view-shell,.overview-view,.devices-view,.device-locations-view,.alarms-view,.realtime-view,.realtime-curve-view,.accounts-view{height:auto;min-height:0;grid-template-columns:1fr}.screen-footer,.metric-dock{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.screen{gap:12px;padding:14px;scroll-padding-bottom:0}.view-shell{gap:12px}.screen-tabs button{min-height:40px;padding:0 10px;font-size:14px;white-space:normal}.page-hero,.screen-footer,.metric-dock,.page-summary,.account-form-grid,.permission-grid{grid-template-columns:1fr}.quick-metric{min-height:56px}.event-row{grid-template-columns:auto minmax(0,1fr)}.event-row small,.event-row button{grid-column:2;justify-self:start}}@media(prefers-reduced-motion:reduce){.view-shell,.panel-glow,.data-card,.home-map-grid:before,.home-map-grid:after,.map-marker:before,.map-marker.selected:after,.quick-metric:after,.data-card:after,.event-row,tbody tr,.realtime-feed>*{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.view-shell{height:clamp(660px,calc(100dvh - 122px),960px);overflow-x:hidden;overflow-y:auto}.view-shell>.overview-view,.view-shell>.devices-view,.view-shell>.device-locations-view,.view-shell>.alarms-view,.view-shell>.realtime-view,.view-shell>.realtime-curve-view,.view-shell>.accounts-view{min-height:0;overflow:hidden}.view-shell .left-stack,.view-shell .right-stack,.view-shell .map-zone,.view-shell .panel-glow{min-height:0}.view-shell .panel-glow{display:flex;flex-direction:column}.view-shell .event-list,.view-shell .table-wrap{min-height:0;overflow:auto}.view-shell .bottom-table{min-height:0}.screen-footer{flex:none;min-height:64px}@media(max-width:1360px){.view-shell{height:auto;overflow:visible}.view-shell>.overview-view,.view-shell>.devices-view,.view-shell>.device-locations-view,.view-shell>.alarms-view,.view-shell>.realtime-view,.view-shell>.realtime-curve-view,.view-shell>.accounts-view{overflow:visible}}@media(max-width:1360px)and (min-width:861px){.view-shell>.accounts-view{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);grid-template-rows:minmax(0,1fr);align-items:stretch}.accounts-list-panel,.accounts-side-stack,.account-form-panel{max-height:calc(100dvh - 220px)}}@media(max-width:860px){.accounts-side-stack{height:auto;max-height:none;overflow:visible}.account-summary,.polling-status-grid,.polling-control-grid{grid-template-columns:1fr}.account-form-actions{position:sticky;right:0;bottom:0;left:0;z-index:3}}.zoom-badge{position:fixed;right:24px;bottom:24px;z-index:9999;display:grid;width:72px;height:72px;place-items:center;border:1px solid rgba(82,243,255,.62);border-radius:10px;background:#031929eb;color:#52f3ff;font-family:Consolas,Courier New,monospace;font-size:20px;font-weight:900;box-shadow:0 0 24px #52f3ff47;opacity:0;pointer-events:none;transform:scale(.8);transition:opacity .28s ease,transform .28s ease}.zoom-badge.visible{opacity:1;transform:scale(1)}
