.inspect-tip{position:absolute;pointer-events:none;z-index:60;padding:8px 12px;border-radius:8px;background:#061a2beb;border:1px solid rgba(0,228,255,.5);box-shadow:0 6px 20px #00e4ff40;color:#eaffff;font-size:12px;line-height:1.7;white-space:nowrap;opacity:0;transition:opacity .15s ease}:root{--c-bg: #020813;--c-deep-blue: #04162e;--c-blue-mid: #0a2547;--c-blue-light: #163a6a;--c-cyan: #1ea0d8;--c-cyan-dim: rgba(30, 160, 216, .3);--c-gold: #e8b84a;--c-text: #b8d4f0;--c-text-dim: #5a7a9a;--font: "Microsoft YaHei", "Arial Black", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;overflow:hidden}body{background:#020813}.screen{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform:translate(-50%,-50%);background:url(./%E8%83%8C%E6%99%AF%E5%9B%BE3-DkVIRpF2.png);background-size:cover;background-repeat:no-repeat;overflow:hidden;display:flex;flex-direction:column}.topbar{position:relative;flex:0 0 84px;display:grid;grid-template-columns:1fr 800px 1fr;align-items:center;border-bottom:1px solid rgba(30,160,216,.15);box-shadow:0 4px 24px #000000b3,inset 0 -2px 12px #1ea0d80a;z-index:10;overflow:hidden}.topbar:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--c-cyan),var(--c-gold),var(--c-cyan),transparent);opacity:.5;z-index:20}.topbar:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(30,160,216,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(30,160,216,.02) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}.header-left{position:relative;height:100%;display:flex;align-items:center;padding-left:28px;gap:16px}.time-panel{display:flex;align-items:center;gap:10px}.time-digit-group{display:flex;align-items:center;gap:4px}.time-digit{min-width:36px;height:44px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0a2547e6,#04162ef2);border:1px solid rgba(30,160,216,.2);border-radius:4px;box-shadow:inset 0 1px #1ea0d814,0 2px 6px #0006;position:relative;overflow:hidden}.time-digit:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(30,160,216,.3),transparent)}.time-digit span{font:800 19px/1 Arial;color:#c8e0f8;text-shadow:0 0 10px rgba(30,160,216,.4);font-variant-numeric:tabular-nums;letter-spacing:1px}.time-colon{font:800 20px/1 Arial;color:var(--c-cyan);text-shadow:0 0 6px rgba(30,160,216,.5);animation:colonBlink 1.5s ease-in-out infinite}@keyframes colonBlink{0%,60%{opacity:1}61%,to{opacity:.2}}.time-sec-block{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:42px;height:44px;background:linear-gradient(180deg,#1ea0d826,#0a2547e6);border:1px solid rgba(30,160,216,.3);border-radius:4px;box-shadow:inset 0 1px #1ea0d81a,0 0 8px #1ea0d814}.time-sec-block .sec-val{font:800 18px/1 Arial;color:var(--c-gold);text-shadow:0 0 8px rgba(232,184,74,.4)}.time-sec-block .sec-label{font-size:9px;color:var(--c-text-dim);letter-spacing:1px;margin-top:2px}.date-panel{display:flex;flex-direction:column;gap:3px;padding-left:14px;border-left:1px solid rgba(30,160,216,.15)}.date-text{font-size:13px;font-weight:600;color:#8fb4d6;letter-spacing:1px;display:flex;align-items:center;gap:6px}.date-text i{width:14px;height:14px;color:var(--c-cyan)}.header-center{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;clip-path:polygon(4% 0,96% 0,100% 50%,96% 100%,4% 100%,0% 50%);background:linear-gradient(180deg,#0a3050,#04182e,#061b33);border-top:2px solid var(--c-cyan);border-bottom:2px solid var(--c-cyan);box-shadow:0 0 24px #1ea0d826,inset 0 0 18px #1ea0d814;z-index:2}.header-center:before{content:"";position:absolute;inset:2px;background:radial-gradient(ellipse at top,rgba(30,160,216,.12),transparent 60%);pointer-events:none}.title-wings{position:absolute;top:50%;width:100px;height:2px;background:linear-gradient(90deg,transparent,var(--c-cyan));transform:translateY(-50%);opacity:.5}.title-wings--left{left:30px;transform:translateY(-50%) rotate(180deg)}.title-wings--right{right:30px}.title-main{margin:0;font-size:32px;font-weight:900;letter-spacing:8px;background:linear-gradient(to bottom,#e8f4ff 20%,var(--c-cyan) 80%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 16px rgba(30,160,216,.35);z-index:2}.title-sub{font-size:10px;letter-spacing:4px;color:#6a8bad;margin-top:2px;opacity:.65;z-index:2}.header-right{position:relative;height:100%;display:flex;align-items:center;justify-content:flex-end;padding-right:28px;gap:14px}.weather-card{display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;background:linear-gradient(135deg,#0a2547cc,#04162ee6);border:1px solid rgba(30,160,216,.15);border-radius:4px;box-shadow:inset 0 1px #1ea0d80f,0 2px 8px #0000004d}.weather-card i{width:18px;height:18px;color:var(--c-gold)}.weather-card span{font-size:13px;font-weight:600;color:var(--c-gold);text-shadow:0 0 6px rgba(232,184,74,.3)}.status-tag{display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;background:linear-gradient(135deg,#0a2547cc,#04162ee6);border:1px solid rgba(30,160,216,.15);border-radius:4px;box-shadow:inset 0 1px #1ea0d80f,0 2px 8px #0000004d}.status-tag .dot{width:7px;height:7px;border-radius:50%;background:#2ee6a6;box-shadow:0 0 6px #2ee6a6;animation:dotPulse 2s ease-in-out infinite}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.status-tag span{font-size:12px;font-weight:600;color:var(--c-text);letter-spacing:.5px}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a2547cc,#04162ee6);border:1px solid rgba(30,160,216,.15);border-radius:4px;cursor:pointer;transition:all .3s;box-shadow:inset 0 1px #1ea0d80f,0 2px 8px #0000004d;position:relative}.icon-btn:hover{border-color:var(--c-cyan-dim);box-shadow:0 0 10px #1ea0d826}.icon-btn i{width:16px;height:16px;color:var(--c-text-dim)}.icon-btn .badge{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;background:#ff5b5b;color:#fff;font-size:10px;font-weight:700;border-radius:8px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 6px #ff5b5b66}.corner-mark{position:absolute;width:12px;height:12px;border-color:var(--c-cyan);border-style:solid;border-width:0;opacity:.5;z-index:5}.corner-mark.tl{top:4px;left:4px;border-top-width:2px;border-left-width:2px}.corner-mark.tr{top:4px;right:4px;border-top-width:2px;border-right-width:2px}.corner-mark.bl{bottom:4px;left:4px;border-bottom-width:2px;border-left-width:2px}.corner-mark.br{bottom:4px;right:4px;border-bottom-width:2px;border-right-width:2px}.layout{flex:1;min-height:0;display:grid;grid-template-columns:550px 1fr 550px;grid-template-rows:100%;gap:16px;padding:14px 20px 12px}.panel{position:relative;min-height:0;overflow:hidden;box-shadow:inset 0 0 104px #5c7fff21;border-radius:5px}.panel-head{padding:10px 12px 12px;display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,#0d3a8a,#082b5a,#122543)}.panel-head svg,.panel-head i{color:#61d8ff}.panel-head h2{margin:0;font-size:19px;font-weight:600;color:#f3f8ff}.asset-grid{padding:14px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px}.asset-cell{display:flex;align-items:center;gap:14px;height:84px;padding:0 16px;border-radius:10px;background:linear-gradient(135deg,#0d2868b8,#061434d9);box-shadow:inset 0 1px #ffffff0d,0 4px 14px #00000040;position:relative;overflow:hidden;animation:assetIn .5s ease-out both}@keyframes assetIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.asset-cell:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;background:var(--asset-accent, #00e4ff);box-shadow:0 0 8px var(--asset-accent, #00e4ff);border-radius:2px 0 0 2px}.asset-cell:nth-child(1){--asset-accent: #00e4ff}.asset-cell:nth-child(2){--asset-accent: #3a7bff}.asset-cell:nth-child(3){--asset-accent: #ffb800}.asset-cell:nth-child(4){--asset-accent: #f7555d}.asset-icon{width:46px;height:46px;flex:0 0 auto;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:#00e4ff1f;border:1px solid rgba(0,228,255,.35);box-shadow:inset 0 0 12px #00e4ff33}.asset-cell:nth-child(2) .asset-icon{background:#3a7bff29;border-color:#3a7bff73;box-shadow:inset 0 0 12px #3a7bff40}.asset-cell:nth-child(3) .asset-icon{background:#ffb80029;border-color:#ffb80073;box-shadow:inset 0 0 12px #ffb80040}.asset-cell:nth-child(4) .asset-icon{background:#f7555529;border-color:#f7557073;box-shadow:inset 0 0 12px #f7555540}.asset-icon i{width:22px;height:22px;color:#67e8ff}.asset-cell:nth-child(2) .asset-icon i{color:#7fa8ff}.asset-cell:nth-child(3) .asset-icon i{color:#ffcf54}.asset-cell:nth-child(4) .asset-icon i{color:#f75555}.asset-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.asset-label{display:block;color:#a9c5e8;font-size:13px;font-weight:600;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-label small{color:#6f93b8;font-size:11px;font-weight:500;margin-left:3px}.asset-info strong{font:800 26px/1 Arial;color:#eaffff;letter-spacing:.5px;text-shadow:0 0 12px rgba(0,228,255,.4);font-variant-numeric:tabular-nums}.asset-cell:nth-child(3) .asset-info strong{color:#ffcf54;text-shadow:0 0 12px rgba(255,184,0,.4)}.asset-cell:nth-child(4) .asset-info strong{color:#fc8484;text-shadow:0 0 12px rgba(247,85,85,.4)}.map-stage{position:relative;min-width:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,2fr) minmax(0,.8fr);gap:12px;overflow:visible}.top-stats-bar{grid-row:1}#map{grid-row:2;height:100%;min-height:0}.quality-panel{grid-row:3;display:flex;flex-direction:column;min-height:0}.quality-panel .quality-chart{flex:1 1 auto;min-height:0;height:100%}.alarm-strip{position:absolute}.map-card-hover{position:fixed}.top-stats-bar{flex:0 0 auto;padding:12px 14px 0;z-index:999}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{--accent: #00e4ff;min-width:0;container-type:inline-size;min-height:104px;padding:14px 18px;border-radius:14px;display:grid;grid-template-rows:auto 1fr;gap:10px;position:relative;overflow:hidden;background:linear-gradient(160deg,#0e2a6ee6,#05102cf2);border:1px solid rgba(0,228,255,.22);box-shadow:0 6px 22px #00000059,inset 0 1px #ffffff0f;animation:statIn .5s ease-out both}@keyframes statIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.stat-card:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;background:linear-gradient(120deg,transparent 0%,rgba(0,228,255,.22) 45%,rgba(255,184,0,.16) 55%,transparent 100%);background-size:220% 100%;animation:sheen 6s linear infinite;-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;padding:1px}@keyframes sheen{0%{background-position:220% 0}to{background-position:-20% 0}}.stat-card:before{content:"";position:absolute;left:0;top:16%;bottom:16%;width:3px;background:var(--accent);box-shadow:0 0 10px var(--accent);border-radius:2px 0 0 2px;z-index:1}.stat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;z-index:2}.stat-head-left{display:flex;align-items:center;gap:9px;min-width:0}.stat-icon{width:30px;height:30px;border-radius:8px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:#00e4ff24;border:1px solid rgba(0,228,255,.4);box-shadow:inset 0 0 10px #00e4ff40}.stat-icon i{color:#5be8ff;width:16px;height:16px}.stat-label{font-size:14px;color:#a9c5e8;letter-spacing:.5px;white-space:nowrap;font-weight:600}.stat-trend{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:700}.stat-trend i{width:12px;height:12px}.stat-trend.up{color:#2ee6a6;background:#2ee6a61f}.stat-trend.down{color:#ff7a7a;background:#ff7a7a1f}.stat-value{display:flex;align-items:baseline;gap:4px;line-height:1;position:relative;z-index:2}.val-prefix{font-size:20px;font-weight:800;color:var(--accent);text-shadow:0 0 10px rgba(0,228,255,.5)}.stat-value strong{font:800 34px/1 Arial;color:#eaffff;letter-spacing:.5px;text-shadow:0 0 14px rgba(0,228,255,.45);font-variant-numeric:tabular-nums}.stat-unit{font-style:normal;font-size:13px;color:#7fa8cc;margin-left:4px;font-weight:500}.stat-card.money-card{--accent: #00e4ff;border-color:#00e4ff66;box-shadow:0 8px 28px #0006,0 0 22px #00e4ff1f,inset 0 1px #ffffff14}.stat-card.money-card .stat-value strong{font-size:36px;background:linear-gradient(90deg,#fff,#67e8ff,#00e4ff);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:valueShine 4s linear infinite}@keyframes valueShine{0%{background-position:200% 0}to{background-position:-200% 0}}.stat-card--year,.stat-card--load{--accent: #ffb800}.stat-card--load .stat-icon{background:#ffb80029;border-color:#ffb80080;box-shadow:inset 0 0 10px #ffb8004d}.stat-card--load .stat-icon i{color:#ffcf54}.stat-card--load .stat-value strong{font-size:32px;color:#ffcf54;text-shadow:0 0 14px rgba(255,184,0,.45)}@media(max-width:1400px){.stat-row{gap:10px}.stat-card{padding:12px 14px;min-height:92px}.stat-card.money-card .stat-value strong,.stat-value strong{font-size:28px}.stat-label{font-size:13px}}#map{flex:1 1 auto;min-height:0;height:100%;z-index:1;opacity:.7}.stat-head{flex-wrap:wrap;justify-content:flex-start;row-gap:5px}.stat-head-left{flex:1 0 auto}.stat-trend{margin-left:auto;white-space:nowrap}.stat-trend svg{width:12px;height:12px;flex:0 0 12px}.stat-icon svg{width:16px;height:16px}.stat-value{min-width:0;flex-wrap:wrap;row-gap:5px}.stat-value strong,.stat-card.money-card .stat-value strong,.stat-card--load .stat-value strong{max-width:100%;font-size:clamp(18px,17cqw,36px);letter-spacing:0;line-height:1.12;overflow-wrap:anywhere}.stat-unit{flex:0 0 auto;white-space:nowrap}@container (max-width: 180px){.stat-value .stat-unit{flex-basis:100%;margin-left:0}.stat-label{font-size:12px;letter-spacing:0}.stat-head-left{gap:6px}}.map-card-hover{position:fixed;pointer-events:none;z-index:999;width:370px;padding:22px 28px 26px;background:#02133b;border:1px solid rgba(0,228,255,.4);border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #00e4ff33}.map-card-hover .card-title{display:flex;align-items:center;gap:12px;color:#59d8ff;font-size:21px;font-weight:800;border-bottom:1px solid #2b69a8;padding-bottom:16px}.village-detail{margin-top:14px}.detail-main{height:58px;display:flex;flex-direction:column;justify-content:center;padding:0 16px;border:1px solid #348cff;background:linear-gradient(90deg,#0c2a63,#061632);box-shadow:inset 0 0 20px #5a7dff24}.detail-main strong{font-size:24px;color:#67dcff;text-shadow:0 0 12px #00fff0}.detail-main span{margin-top:5px;color:#bed4f5;font-size:13px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:12px}.detail-grid>div{height:58px;padding:9px 12px;border:1px solid #2d72ff;background:linear-gradient(180deg,#0a2452,#05142f);box-shadow:inset 0 0 16px #00fff018}.detail-grid span{display:block;color:#a9c5f0;font-size:12px}.detail-grid strong{font:800 22px Arial;color:#5bd8ff;margin-right:4px}.detail-grid small{color:#f0f7ff;font-size:12px}.alarm-strip{position:absolute;z-index:6;left:3%;right:3%;bottom:26.5%;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #5c7fff21;background:#07173de6;color:#9fc3ff;font-size:18px;font-weight:700;box-shadow:0 0 15px #5d7dff88;border-radius:15px}.left-panel,.right-panel{display:grid;grid-template-rows:auto minmax(0,2fr) minmax(0,1fr);gap:12px;min-height:0;overflow:hidden}.side-chart-panel{min-height:0;display:flex;flex-direction:column}.side-chart-panel .panel-head{flex:0 0 auto}.side-table-panel{flex:1;min-height:0;display:flex;flex-direction:column}.bottom-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;padding:0 20px 12px}.bottom-panel{position:relative;overflow:hidden;box-shadow:inset 0 0 104px #5c7fff21;border-radius:5px}.bottom-panel .chart{min-height:250px}.panel--usage .chart.side-chart,.inspect-panel .chart.inspect-chart,.panel--energy .chart.energy-chart,.alarm-panel .chart.alarm-chart,.quality-panel .chart.quality-chart{flex:1 1 auto;min-height:0;height:100%;width:100%}.quality-toolbar{position:absolute;top:5px;right:14px;z-index:5}.quality-legend{display:flex;align-items:center;gap:12px}.ql-item{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#8fb4d6;letter-spacing:.5px}.ql-item i{width:9px;height:9px;border-radius:2px;display:inline-block;box-shadow:0 0 6px currentColor}.status-grid{gap:8px;padding:11px}.status-cell{position:relative;overflow:hidden;flex-direction:row;align-items:center;gap:12px;height:auto;min-height:85px;padding:10px 14px;background:linear-gradient(135deg,#0d2868b8,#061434d9);isolation:isolate;transition:transform .25s ease}.status-cell:hover{transform:translateY(-2px)}.status-fill{position:absolute;inset:0;width:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,#00e4ff47,#00e4ff1a);border-right:0;box-shadow:0 0 18px #00e4ff2e}.status-cell .asset-icon,.status-cell .asset-info{position:relative;z-index:2}.status-cell .asset-icon{width:38px;height:38px;flex:0 0 auto}.status-cell .asset-icon i{width:18px;height:18px}.status-cell .asset-info{flex-direction:column;align-items:flex-start;gap:5px;flex:1;min-width:0}.status-cell .asset-label{font-size:12px;white-space:nowrap}.status-cell .asset-label small{font-size:10px;color:#6f93b8}.status-cell .asset-info strong{display:inline-flex;align-items:baseline;gap:2px;font:800 18px/1 Arial;font-variant-numeric:tabular-nums}.status-online{color:#eaffff;text-shadow:0 0 10px rgba(0,228,255,.5)}.status-sep{color:#5a7a9a;font-weight:500;font-size:15px}.status-total{color:#c8e6ff;font-size:16px}.status-pct{position:absolute;inset:auto 10px 4px auto;z-index:3;display:inline-flex;align-items:baseline;gap:1px;padding:0;font:italic 800 28px/1 Arial;font-variant-numeric:tabular-nums;color:#eaffff;text-shadow:0 0 10px currentColor;pointer-events:none;letter-spacing:.5px;opacity:.85}.status-pct b{font-weight:800;font-style:italic}.status-pct i{font-style:italic;font-size:14px;opacity:.8;margin-left:1px}.status-cell--concentrator .status-fill{background:linear-gradient(90deg,#00e4ff57,#00e4ff1a);border-right-color:#00e4ffbf;box-shadow:0 0 20px #00e4ff38}.status-cell--concentrator .status-pct{color:#67e8ff;text-shadow:0 0 16px rgba(103,232,255,.65)}.status-cell--meter .status-fill{background:linear-gradient(90deg,#40a9ff57,#40a9ff1a);border-right-color:#40a9ffbf;box-shadow:0 0 20px #40a9ff38}.status-cell--meter .status-pct{color:#7fa8ff;text-shadow:0 0 16px rgba(127,168,255,.6)}.status-cell--breaker .status-fill{background:linear-gradient(90deg,#ffc63361,#ffc6331a);border-right-color:#ffc633cc;box-shadow:0 0 20px #ffc6333d}.status-cell--breaker .status-pct{color:#ffcf54;text-shadow:0 0 16px rgba(255,207,84,.6)}.status-cell--alarm .status-fill{background:linear-gradient(90deg,#cc2e3b61,#cc2e3b1a);border-right-color:#cc2e36d9;box-shadow:0 0 22px #cc2e2e47}.status-cell--alarm .status-pct{color:#ff6e6e;text-shadow:0 0 16px rgba(255,110,110,.6)}.status-cell--alarm .asset-icon{background:#2ecc7129;border-color:#2ecc7173;box-shadow:inset 0 0 12px #2ecc7140}.status-cell--alarm .asset-icon i{color:#6effb8}.status-cell--alarm .status-pct{animation:pctFull 2.4s ease-in-out infinite}@keyframes pctFull{0%,to{text-shadow:0 0 12px rgba(255,110,110,.5)}50%{text-shadow:0 0 26px rgba(255,110,110,.95),0 0 8px rgba(255,110,110,.5)}}@media(max-width:1400px){.status-cell{padding:10px 12px;min-height:70px}.status-cell .asset-info strong{font-size:20px}.status-pct{font-size:26px;bottom:3px;right:8px}.status-pct i{font-size:13px}}.inspect-overview{display:flex;flex-direction:column;gap:0px;padding:10px 12px 12px;flex:1 1 auto;min-height:0}.inspect-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:0 0 auto}.donut-wrap{position:relative;display:flex;align-items:center;gap:20px;flex:1;min-height:180px}.donut-wrap .inspect-chart{width:60%;height:150px;min-height:130px}.donut-legend{flex:0 0 auto;width:140px;display:flex;flex-direction:column;gap:16px;padding-right:17px}.donut-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#c8e0f8;letter-spacing:.3px}.donut-legend-item .dot{width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);flex:0 0 auto}.donut-legend-item .name{flex:1;font-weight:600}.donut-legend-item .pct{font:700 13px/1 Arial;color:#eaffff;font-variant-numeric:tabular-nums;text-shadow:0 0 6px rgba(0,228,255,.3)}.inspect-stat{display:flex;align-items:center;gap:12px;height:70px;padding:0 14px;border-radius:10px;background:linear-gradient(135deg,#0d2868b8,#061434d9);border:1px solid rgba(0,228,255,.18);box-shadow:inset 0 1px #ffffff0d,0 4px 14px #00000040;position:relative;overflow:hidden}.inspect-stat:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;background:var(--accent);box-shadow:0 0 8px var(--accent);border-radius:2px 0 0 2px}.inspect-icon{width:38px;height:38px;flex:0 0 auto;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#00e4ff1f;border:1px solid rgba(0,228,255,.35)}.inspect-stat:nth-child(1) .inspect-icon{background:#00e4ff24;border-color:#00e4ff66}.inspect-stat:nth-child(2) .inspect-icon{background:#2ee6a624;border-color:#2ee6a666}.inspect-stat:nth-child(3) .inspect-icon{background:#ffb80024;border-color:#ffb80066}.inspect-stat:nth-child(4) .inspect-icon{background:#ff5b5b24;border-color:#ff5b5b66}.inspect-icon i{width:20px;height:20px;color:var(--accent)}.inspect-info{display:flex;flex-direction:column;gap:3px;min-width:0}.inspect-label{display:block;color:#a9c5e8;font-size:12px;font-weight:600;letter-spacing:.5px}.inspect-value{display:flex;align-items:baseline;gap:3px;margin:0;line-height:1}.inspect-value strong{font:800 22px/1 Arial;color:var(--accent);letter-spacing:.5px;text-shadow:0 0 12px currentColor;font-variant-numeric:tabular-nums}.inspect-value small{color:#7fa8cc;font-size:12px;font-weight:600}.inspect-toolbar{position:static;padding:0}.inspect-chart{min-height:0;flex:1}.alarm-toolbar{display:flex;align-items:center;gap:14px;right:14px;top:6px;padding:0}.alarm-badge{display:inline-flex;align-items:center;gap:7px;padding:4px 14px 4px 10px;border-radius:10px;white-space:nowrap;border:1px #fff solid}.alarm-badge i{width:15px;height:15px;flex:0 0 auto}.alarm-badge strong{font:800 20px/1 Arial;font-variant-numeric:tabular-nums}.alarm-badge span{font-size:11px;letter-spacing:1px}.alarm-type{display:flex;gap:6px}.type-btn{padding:4px 11px;border:1px solid rgba(0,228,255,.3);border-radius:6px;background:#0a1e3c99;color:#8fb4c8;font-size:12px;cursor:pointer;transition:all .2s}.type-btn:hover{color:#e0f7ff;border-color:#00e4ff99}.type-btn.active{color:#fff;background:#00e4ff38;border-color:#00e4ff;box-shadow:0 0 8px #00e4ff4d}.type-btn.active[data-key=severe],.type-btn[data-key=severe].active{color:#fff;background:#ff5b5b40;border-color:#ff5b5b;box-shadow:0 0 8px #ff5b5b59}.type-btn.active[data-key=urgent],.type-btn[data-key=urgent].active{color:#fff;background:#ffb80038;border-color:#ffb800;box-shadow:0 0 8px #ffb80059}.type-btn.active[data-key=normal],.type-btn[data-key=normal].active{color:#fff;background:#00e4ff38;border-color:#00e4ff}.alarm-panel .panel-head{flex:0 0 auto}.alarm-panel .chart-toolbar.arrear-toolbar{position:absolute;top:9px;right:14px;padding:0;z-index:6}.alarm-panel .chart-toolbar.arrear-toolbar .alarm-badge{flex:0 0 auto}.alarm-panel .alarm-badge{border-color:#00e4ff66;box-shadow:0 0 12px #00e4ff2e}.alarm-panel .alarm-badge i{color:#5be8ff}.alarm-panel .alarm-badge strong{color:#67e8ff;text-shadow:0 0 8px rgba(0,228,255,.5)}.arrear-donut-border{flex:1 1 auto;min-height:180px;padding:4px 8px 12px}.arrear-chart{width:58%;height:100%;min-height:170px;flex:0 0 auto}.arrear-donut-border .donut-legend{padding-left:85px;width:42%;gap:14px;justify-content:center}.arrear-donut-border .donut-legend-item{font-size:13px;cursor:default;transition:transform .2s ease}.arrear-donut-border .donut-legend-item.hover{transform:translate(4px)}.arrear-donut-border .donut-legend-item .dot{width:12px;height:12px}.arrear-donut-border .donut-legend-item .name{color:#d6e8fa;font-weight:600}.arrear-donut-border .donut-legend-item .pct{font:700 14px/1 Arial;color:#eaffff;font-variant-numeric:tabular-nums;text-shadow:0 0 6px rgba(0,228,255,.3)}.chart-toolbar{position:absolute;right:14px;top:8px;padding:4px 2px;color:#66d9ff;font-size:14px;z-index:5}.time-switch{display:grid;grid-template-columns:1fr 1fr;width:120px;border:1px solid #0fe4dc;border-radius:5px;overflow:hidden}.time-switchs{display:grid;grid-template-columns:1fr 1fr 1fr;width:120px;border:1px solid #0fe4dc;border-radius:5px;overflow:hidden}.times-switch{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;width:160px;border:1px solid #0fe4dc;border-radius:5px;overflow:hidden}.time-btn{padding:4px 0;border:none;background:transparent;color:#9ebcbc;font-size:12px;cursor:pointer;text-align:center;transition:all .2s}.time-btn+.time-btn{border-left:1px solid #0fe4dc}.time-btn.active{background:#00e4ff33;color:#00e4ff;font-weight:700}.time-btn:hover:not(.active){background:#0fe4dc14;color:#c8eeee}.yoy-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border:1px solid rgba(0,228,255,.3);border-radius:8px;background:#0a1e3c99;color:#8fb4d6;font-size:11px;font-weight:500;letter-spacing:1px;cursor:pointer;transition:all .28s ease}.yoy-btn:hover{border-color:#00e4ff99;color:#e0f7ff;background:#00e4ff1a}.yoy-btn.on{color:#ffb800;background:#ffb80033;border-color:#ffb800;box-shadow:0 0 12px #ffb80059}.yoy-dot{width:7px;height:7px;border-radius:50%;background:#4a6a8a;transition:all .28s ease;display:inline-block}.yoy-dot.on{background:#ffb800;box-shadow:0 0 6px #ffb800cc}.rank-head{padding:0 10px}.rank-viewport{flex:1 1 auto;min-height:0;overflow:hidden;position:relative;padding:0 10px 10px;mask-image:linear-gradient(180deg,#000 calc(100% - 24px),transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 24px),transparent 100%)}.rank-track{will-change:transform;transform:translateZ(0);padding-top:2px}.rank-row{display:grid;grid-template-columns:40px minmax(0,1fr) 50px 60px 50px 55px 88px;align-items:center;height:38px;padding:0 8px;margin-bottom:6px;background:linear-gradient(90deg,#0a255aaa,#061229cc);border:1px solid #2d72ff33;border-radius:4px;transition:all .2s}.rank-row:hover{background:linear-gradient(90deg,#0e3380cc,#0a1c44ee);transform:translate(2px);box-shadow:inset 0 0 16px #00e4ff1f}.rank-row.head{height:36px;color:#7be2ff;background:#071e4a;border-color:#2d82ff;font-weight:700;position:sticky;top:0;z-index:2}.rank-row .col-rank{text-align:center;color:#8fb4d6;font-size:13px}.rank-row .col-rank .medal{font-style:normal;font-size:14px}.rank-row .col-name{color:#edf6ff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-row .col-num{text-align:right;font:700 14px Arial;color:#d8eeff}.rank-row .col-num.alarm{color:#ff5b5b;text-shadow:0 0 6px rgba(255,91,91,.5)}.rank-row.top{border-color:#ffb8004d}.rank-play-btn{font-size:12px;padding:5px 14px}.inspect-tip{position:absolute;pointer-events:none;z-index:60;padding:6px 10px;border-radius:8px;background:#061a2beb;border:1px solid rgba(0,228,255,.5);box-shadow:0 6px 20px #00e4ff40;color:#eaffff;font-size:12px;line-height:1.5;display:flex;flex-direction:column;gap:2px;opacity:0;transition:opacity .15s ease;white-space:nowrap}.inspect-tip b{font-size:13px}@media(max-width:1400px){.topbar{grid-template-columns:1fr 600px 1fr}.header-center{clip-path:polygon(6% 0,94% 0,100% 50%,94% 100%,6% 100%,0% 50%)}.title-main{font-size:32px;letter-spacing:4px}.layout{grid-template-columns:360px minmax(520px,1fr) 360px}.rank-row{grid-template-columns:34px minmax(0,1fr) 44px 52px 44px 50px 76px;font-size:12px}}.donut-summary{position:absolute;left:50%;bottom:20px;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:6px 18px;background:#061434b8;border:1px solid rgba(0,228,255,.2);border-radius:22px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap}.donut-summary .item{display:flex;align-items:baseline;gap:4px;font-size:12px;color:#8fb4d6}.donut-summary .item b{font-size:14px;color:#eaffff;font-variant-numeric:tabular-nums}.donut-summary .item b small{font-size:11px;color:#7fa8cc;font-weight:600}.donut-summary .sep{width:1px;height:12px;background:#00e4ff40}.inspect-donut-border{padding-bottom:20px;margin-top:10px;position:relative;border:1px solid rgba(0,228,255,.3);border-radius:5px;background:linear-gradient(180deg,#06193799,#041228b3);box-shadow:0 0 10px #00e4ff1f,inset 0 0 16px #00e4ff0f;animation:inspectDonutGlow 4s ease-in-out infinite}@keyframes inspectDonutGlow{0%,to{box-shadow:0 0 10px #00e4ff1f,inset 0 0 16px #00e4ff0f}50%{box-shadow:0 0 18px #00e4ff47,inset 0 0 24px #00e4ff1f}}.inspect-donut-border:before,.inspect-donut-border:after{content:"";position:absolute;width:12px;height:12px;border:2px solid rgba(0,228,255,.7);pointer-events:none;z-index:10}.inspect-donut-border:before{top:10px;left:10px;border-right:none;border-bottom:none;border-top-left-radius:3px}.inspect-donut-border:after{bottom:10px;right:10px;border-left:none;border-top:none;border-bottom-right-radius:3px}.inspect-donut-border .inspect-chart:before,.inspect-donut-border .inspect-chart:after{content:"";position:absolute;width:12px;height:12px;border:2px solid rgba(0,228,255,.7);pointer-events:none;z-index:10}.inspect-donut-border .inspect-chart:before{top:10px;right:-150px;border-left:none;border-bottom:none;border-top-right-radius:3px}.inspect-donut-border .inspect-chart:after{bottom:-10px;left:10px;border-right:none;border-top:none;border-bottom-left-radius:3px}.arrear-donut-border{background:linear-gradient(180deg,#06193766,#04122880);box-shadow:0 0 12px #00e4ff14,inset 0 0 20px #00e4ff0a;padding:8px 8px 16px}.arrear-chart{width:52%;min-height:180px}.arrear-donut-border .donut-legend{padding-left:60px;gap:12px}.arrear-donut-border .donut-legend-item{padding:4px 8px;border-radius:6px;transition:all .25s ease}.arrear-donut-border .donut-legend-item.hover{background:#00e4ff14;transform:translate(6px);box-shadow:0 0 8px #00e4ff26}.panel-head-sci{padding:0;margin-bottom:4px}.panel-title-bar{position:relative;display:inline-flex;align-items:center;gap:8px;width:100%;padding:14px 18px 14px 14px;clip-path:polygon(0 0,100% 0,100% 100%,12px 100%,0 calc(100% - 12px));background:linear-gradient(90deg,#1ea0d847,#0a30508c 60%,#04162e4d);border-left:3px solid #1ea0d8;border-bottom:1px solid rgba(30,160,216,.55);box-shadow:0 2px 10px #0000004d}.panel-title-deco{position:absolute;left:-3px;top:4px;bottom:4px;width:3px;background:linear-gradient(180deg,transparent,#1ea0d8,transparent);border-radius:2px;box-shadow:0 0 8px #1ea0d8}.panel-title-bar:before{content:"";position:absolute;top:0;right:0;width:24px;height:2px;background:#1ea0d8;box-shadow:0 0 8px #1ea0d8}.panel-title-bar:after{content:"";position:absolute;bottom:-1px;left:14px;right:30%;height:1px;background:linear-gradient(90deg,#1ea0d8,transparent);opacity:.8}.panel-title-icon{width:16px;height:16px;color:#5be8ff;filter:drop-shadow(0 0 4px rgba(30,160,216,.8));flex-shrink:0}.panel-title-text{font-size:16px;font-weight:700;letter-spacing:1.5px;color:#d6f0ff;text-shadow:0 0 8px rgba(30,160,216,.7),0 0 16px rgba(30,160,216,.3);white-space:nowrap}.panel-title-glow{position:absolute;right:0;top:0;bottom:0;width:40px;background:linear-gradient(90deg,transparent,rgba(30,160,216,.15));pointer-events:none}@media(max-width:1400px){.panel-title-bar{padding:5px 14px 5px 10px}.panel-title-text{font-size:13px;letter-spacing:1px}.panel-title-icon{width:14px;height:14px}}.village-back{flex:0 0 auto;padding:5px 14px;border:1px solid #37c8ef;border-radius:6px;color:#eaffff;background:#08335c;font-size:14px;cursor:pointer;white-space:nowrap}.village-back:hover{background:#105184}.village-back:focus-visible{outline:2px solid #fff;outline-offset:3px}.village-back:disabled{opacity:.6;cursor:wait}.village-view .header-left .time-panel,.village-view .header-left .date-panel{display:none}.village-faults{margin-top:16px;max-height:420px;overflow-y:auto}.fault-count{color:#f99;font-size:14px;margin-bottom:12px}.fault-entry{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid rgba(255,100,100,.25);font-size:13px;color:#c8e0f8;overflow-wrap:anywhere}.fault-entry strong{color:#ffb3b3;font-size:15px;line-height:1.6}.fault-state{color:#ff7373}.fault-empty{color:#6de0b5;padding:8px 0}.village-api-panel{position:absolute;top:135px;left:16px;right:16px;z-index:20;padding:10px 14px;color:#b8d4f0;background:#03142df2;border:1px solid #167caa;border-radius:8px;font-size:13px}.village-api-panel summary{cursor:pointer;color:#72e5ff}.village-api-panel[open]{max-height:55%;overflow:auto}.village-api-panel p{margin:12px 0}.village-api-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:8px;font-size:12px;max-height:200px;overflow:auto}.village-settings-button{position:relative;z-index:3;flex:0 0 auto;padding:7px 12px;border:1px solid #258dbb;border-radius:6px;background:#092b4b;color:#d3f6ff;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}.village-settings-dialog{position:fixed;inset:0;margin:auto;width:min(660px,94vw);max-height:88vh;padding:24px;border:1px solid #238baf;border-radius:12px;background:#071b35;color:#d0e8f6;box-shadow:0 15px 65px #0009}.village-settings-dialog::backdrop{background:#0009}.village-settings-dialog form{display:flex;flex-direction:column;gap:16px}.village-settings-heading{display:flex;align-items:center;justify-content:space-between}.village-settings-heading h2{font-size:20px}.village-settings-dialog p{font-size:13px;line-height:1.6;color:#8eafcb}.village-settings-rows{max-height:55vh;overflow:auto;padding-right:6px}.village-settings-row{display:grid;grid-template-columns:26px minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;margin-bottom:12px}.village-settings-row label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#93b8cc}.village-settings-row input{width:100%;min-width:0;padding:9px 10px;border:1px solid #205579;border-radius:5px;background:#05132b;color:#e4faff;font-size:14px}.village-settings-dialog button{padding:8px 16px;background:#123d5e;color:#e4faff;border:1px solid #267c9c;border-radius:5px;cursor:pointer}.village-settings-dialog button:disabled{opacity:.5;cursor:wait}.village-settings-dialog :focus-visible{outline:2px solid #64e1ff;outline-offset:2px}.village-settings-dialog .village-settings-error{color:#f99}.village-settings-actions{display:flex;justify-content:flex-end;gap:12px}.village-settings-button{width:34px;height:34px;padding:7px;display:inline-flex;align-items:center;justify-content:center;transition:border-color .2s,background .2s}.village-settings-button svg{width:19px;height:19px}.village-settings-button:hover{background:#104263;border-color:#52cde8}.village-settings-button:focus-visible{outline:2px solid #64e1ff;outline-offset:3px}.village-settings-dialog,.village-settings-rows{scrollbar-width:thin;scrollbar-color:#24617d #071b35}.village-settings-rows{scrollbar-gutter:stable;overscroll-behavior:contain}.village-settings-dialog::-webkit-scrollbar,.village-settings-rows::-webkit-scrollbar{width:6px;height:6px}.village-settings-dialog::-webkit-scrollbar-track,.village-settings-rows::-webkit-scrollbar-track{background:#071b35;border-radius:8px}.village-settings-dialog::-webkit-scrollbar-thumb,.village-settings-rows::-webkit-scrollbar-thumb{background:#24617d;border-radius:8px}.village-settings-dialog::-webkit-scrollbar-thumb:hover,.village-settings-rows::-webkit-scrollbar-thumb:hover{background:#3889a5}.village-settings-dialog::-webkit-scrollbar-corner,.village-settings-rows::-webkit-scrollbar-corner{background:transparent}@media(max-width:2559px){.layout{grid-template-columns:clamp(340px,24vw,520px) minmax(0,1fr) clamp(340px,24vw,520px);gap:12px;padding:12px}.left-panel,.right-panel,.map-stage{min-width:0}.topbar{grid-template-columns:minmax(0,1fr) minmax(480px,36vw) minmax(0,1fr)}.header-left,.header-right{padding-inline:14px;gap:8px;min-width:0}.title-main{font-size:30px;letter-spacing:3px}.asset-grid,.asset-cell{padding:10px;gap:8px}.asset-icon{width:30px;height:30px}.asset-info{min-width:0}.asset-label,.status-cell .asset-label{white-space:normal;overflow-wrap:anywhere}.status-cell{padding-bottom:30px}.status-cell .asset-label small{display:block}.status-pct{font-size:24px}.arrear-donut-border .donut-legend{padding-left:0}.donut-legend{width:112px;padding-right:6px;gap:12px}.inspect-stat{padding:8px;gap:8px}.inspect-icon{width:28px;height:28px}.panel-title-bar{padding:10px 12px}}@media(max-width:1700px){.layout{grid-template-columns:340px minmax(0,1fr) 340px;gap:10px;padding:10px}.topbar{grid-template-columns:minmax(0,1fr) 500px minmax(0,1fr)}.header-left{gap:8px;padding-left:10px}.date-panel{padding-left:8px}.date-text{font-size:12px}.weather-card{display:none}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.top-stats-bar{padding:6px 4px 0}.stat-card{min-height:88px;padding:10px 12px;gap:6px}.stat-card .stat-value strong{font-size:28px}.stat-card .stat-label{font-size:13px}.stat-head{gap:4px}.stat-icon{width:24px;height:24px}.stat-card .stat-value .stat-unit{flex-basis:auto}.asset-cell>.asset-icon{display:none}.asset-cell .asset-info strong{font-size:23px}.status-cell .asset-info strong{font-size:20px}.status-cell .asset-label,.inspect-label{font-size:13px}.panel-title-text{font-size:15px}}@media(max-width:1250px){.layout{grid-template-columns:300px minmax(0,1fr) 300px}.topbar{grid-template-columns:minmax(0,1fr) 430px minmax(0,1fr)}.title-main{font-size:25px;letter-spacing:1px}.date-panel,.status-tag{display:none}.stat-trend{padding-inline:4px}.stat-card .stat-value strong{font-size:24px}}@media(max-height:900px)and (max-width:2559px){.left-panel,.right-panel{grid-template-rows:auto minmax(280px,2fr) minmax(230px,1fr);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#24617d #071b35}.topbar{flex-basis:72px}.asset-cell{min-height:76px;height:auto}.inspect-stats{gap:6px}}
