.vw-page,.vw-page *,.vw-page :before,.vw-page :after{direction:ltr!important;transition:none!important}.vw-map-page,.vw-map-page *,.vw-map-page :before,.vw-map-page :after{transition:unset!important}@keyframes flowMove{0%{stroke-dashoffset:20px}to{stroke-dashoffset:0}}@keyframes flowMoveSlow{0%{stroke-dashoffset:40px}to{stroke-dashoffset:0}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes glowPulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes rotateGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes needleBounce{0%{transform:rotate(var(--needle-start))}70%{transform:rotate(var(--needle-end-bounce))}to{transform:rotate(var(--needle-end))}}.vw-page{color:#fff;width:100vw;height:100vh;font-family:var(--font-geist-sans),"Segoe UI",sans-serif;background:radial-gradient(70% 35% at 50% 0,#00dcff21,#0000 65%),radial-gradient(600px at 88% 18%,#00b4ff1a,#0000 70%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80'><path d='M 80 0 L 0 0 0 80' fill='none' stroke='%23ffffff' stroke-opacity='0.10' stroke-width='1' stroke-dasharray='4 4'/></svg>") 0 0/80px 80px,radial-gradient(90% 80%,#0000 35%,#00061e8c 100%),linear-gradient(#020e4a 0%,#031680 25%,#041dac 45%,#031a95 60%,#02146e 80%,#010c48 100%);flex-direction:column;display:flex;position:relative;overflow:hidden}.vw-page:after{content:"";pointer-events:none;z-index:200;background:repeating-linear-gradient(0deg,#0000,#0000 3px,#00b4ff02 3px 6px);position:absolute;inset:0}.vw-topbar{z-index:50;background:linear-gradient(#020c3cd9 0%,#020c3c80 100%);border-bottom:1px solid #008cff26;justify-content:space-between;align-items:center;height:52px;min-height:52px;padding:0 28px;display:flex;position:relative}.vw-topbar .back-btn{color:#fff9;letter-spacing:.05em;cursor:pointer;align-items:center;gap:6px;font-size:.75rem;text-decoration:none;transition:color .2s;display:flex}.vw-topbar .back-btn:hover{color:#00d4ff}.vw-topbar .title{letter-spacing:.18em;text-transform:uppercase;text-shadow:0 0 20px #00b4ff66;font-size:.95rem;font-weight:700}.vw-topbar .subtitle{letter-spacing:.12em;text-transform:uppercase;opacity:.5;font-size:.65rem}.vw-topbar .clock{font-family:var(--font-geist-mono),monospace;opacity:.6;font-size:.8rem}.vw-topbar:after{content:"";background:linear-gradient(90deg,#0000,#00b4ff4d,#0000);width:80%;height:1px;position:absolute;bottom:-1px;left:10%}.status-indicators{align-items:center;gap:16px;display:flex}.status-item{letter-spacing:.06em;opacity:.8;align-items:center;gap:6px;font-size:.65rem;display:flex}.status-item .dot{border-radius:50%;width:7px;height:7px;animation:2.5s ease-in-out infinite pulse}.status-item:nth-child(2) .dot{animation-delay:.5s}.status-item:nth-child(3) .dot{animation-delay:1s}.status-item:nth-child(4) .dot{animation-delay:1.5s}.vw-content{flex:1;min-height:0;position:relative}.vw-bottombar{z-index:50;letter-spacing:.1em;text-transform:uppercase;opacity:.5;background:#000f3299;border-top:1px solid #00b4ff26;justify-content:space-between;align-items:center;height:32px;min-height:32px;padding:0 28px;font-size:.6rem;display:flex}.flow-bg{stroke:#00b4ff26;stroke-width:2.5px;fill:none;stroke-linecap:round;stroke-linejoin:round}.flow-particles{stroke:#00c8ffb3;stroke-width:2.5px;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 14;animation:2s linear infinite flowMove}.flow-particles.slow{stroke-dasharray:8 16;animation:4s linear infinite flowMoveSlow}.flow-particles.fast{stroke-dasharray:4 12;animation:1.2s linear infinite flowMove}.flow-particles.green{stroke:#00e676b3}.facility-wrapper{z-index:10;position:absolute;transform:translate(-50%,-50%)}.facility-canvas{cursor:default}.facility-ring{pointer-events:none;background:radial-gradient(#00b4ff26 0%,#0000 70%);border:1px solid #00b4ff33;border-radius:50%;width:80%;height:30%;animation:3s ease-in-out infinite glowPulse;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.gauge-wrap{flex-direction:column;align-items:center;gap:4px;animation:.8s ease-out both fadeInUp;display:flex}.gauge-label{letter-spacing:.1em;text-transform:uppercase;opacity:.6;font-size:.6rem}.gauge-value-text{font-family:var(--font-geist-mono),monospace;font-weight:700}.kpi-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#001e50b3;border:1px solid #00b4ff40;border-radius:6px;min-width:100px;padding:8px 14px;animation:.6s ease-out both fadeInUp}.kpi-badge .badge-title{letter-spacing:.1em;text-transform:uppercase;opacity:.5;margin-bottom:2px;font-size:.55rem}.kpi-badge .badge-value{font-size:1.4rem;font-weight:700;font-family:var(--font-geist-mono),monospace;line-height:1.2}.kpi-badge .badge-unit{opacity:.4;margin-left:2px;font-size:.6rem}.kpi-badge .badge-sub{opacity:.5;align-items:center;gap:4px;margin-top:2px;font-size:.55rem;display:flex}.kpi-badge .badge-sub .trend-up{color:#00e676}.kpi-badge .badge-sub .trend-down{color:#ff5252}.vw-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00194680;border:1px solid #00b4ff26;border-radius:10px;animation:.7s ease-out both fadeInUp;overflow:hidden}.vw-panel-header{letter-spacing:.12em;text-transform:uppercase;opacity:.7;border-bottom:1px solid #00b4ff1a;padding:10px 16px;font-size:.65rem;font-weight:600}.overview-grid{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:16px;height:100%;padding:16px;display:grid}.view-card{cursor:pointer;background:#00194666;border:1px solid #00b4ff26;border-radius:12px;flex-direction:column;transition:border-color .3s,box-shadow .3s,transform .3s;animation:.6s ease-out both fadeInUp;display:flex;position:relative;overflow:hidden}.view-card:first-child{animation-delay:0s}.view-card:nth-child(2){animation-delay:.1s}.view-card:nth-child(3){animation-delay:.2s}.view-card:nth-child(4){animation-delay:.3s}.view-card:hover{border-color:#00b4ff66;transform:scale(1.01);box-shadow:0 0 30px #00b4ff1a,inset 0 0 30px #00b4ff08}.view-card .card-header{justify-content:space-between;align-items:center;padding:14px 18px 10px;display:flex}.view-card .card-title{letter-spacing:.12em;text-transform:uppercase;text-shadow:0 0 12px #00b4ff4d;font-size:.75rem;font-weight:700}.view-card .card-dot{border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}.view-card .card-content{flex:1;min-height:0;position:relative}.view-card .card-footer{opacity:.4;border-top:1px solid #00b4ff14;justify-content:space-between;padding:10px 18px;font-size:.6rem;display:flex}.section-label{z-index:20;letter-spacing:.12em;text-transform:uppercase;opacity:.5;font-size:.6rem;font-weight:600;position:absolute}.stat-row{align-items:center;gap:8px;display:flex}.stat-mini{font-family:var(--font-geist-mono),monospace;background:#00b4ff14;border:1px solid #00b4ff26;border-radius:4px;padding:3px 8px;font-size:.7rem}.connector-box{text-align:center;letter-spacing:.08em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#003c8c99;border:1px solid #00b4ff4d;border-radius:4px;min-width:80px;padding:8px 16px;font-size:.7rem;font-weight:600;transition:border-color .3s}.connector-box:hover{border-color:#00b4ff80}.connector-box .box-label{opacity:.5;text-transform:uppercase;letter-spacing:.1em;font-size:.55rem}.connector-box .box-values{font-family:var(--font-geist-mono),monospace;opacity:.7;gap:12px;margin-top:4px;font-size:.6rem;display:flex}.svg-layer{z-index:5;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.h-bar-wrap{flex-direction:column;gap:3px;display:flex}.h-bar-label{text-transform:uppercase;letter-spacing:.08em;opacity:.5;justify-content:space-between;font-size:.55rem;display:flex}.h-bar-track{background:#ffffff0d;border-radius:3px;width:100%;height:6px;overflow:hidden}.h-bar-fill{border-radius:3px;height:100%;transition:width 1.5s ease-out}.big-number{font-family:var(--font-geist-mono),monospace;font-weight:700;line-height:1}.big-number-unit{opacity:.5;margin-left:2px;font-size:.5em}.facility-node{flex-direction:column;align-items:center;display:flex}.facility-node-orbit,.facility-clickable{position:relative}.facility-clickable:hover{filter:drop-shadow(0 0 18px #00dc8273);transform:scale(1.04)}.facility-clickable:focus-visible{outline-offset:4px;border-radius:6px;outline:2px solid #00e676}.facility-clickable:after{content:"→ OPEN";letter-spacing:.12em;color:#00e676;opacity:0;pointer-events:none;z-index:5;background:#00e6762e;border:1px solid #00e6764d;border-radius:3px;padding:2px 6px;font-size:.55rem;font-weight:700;transition:opacity .2s;position:absolute;top:6px;right:6px}.facility-clickable:hover:after{opacity:1}.facility-ring-pulse{animation:.6s ease-out ringPulseOnce}@keyframes ringPulseOnce{0%{filter:drop-shadow(0 0 #00b4ff00)}40%{filter:drop-shadow(0 0 24px #00b4ffb3)}to{filter:drop-shadow(0 0 #00b4ff00)}}.orbit-track{pointer-events:none;width:0;height:0;position:absolute;top:72%;left:50%}.orbit-track:before{content:"";left:calc(-1*var(--orbit-rx,130px));top:calc(-1*var(--orbit-ry,35px));width:calc(2*var(--orbit-rx,130px));height:calc(2*var(--orbit-ry,35px));pointer-events:none;border:1px dashed #00b4ff14;border-radius:50%;position:absolute}.orbit-item{pointer-events:auto;will-change:transform,opacity;position:absolute}.orbit-arrow{all:unset;z-index:25;color:#fff9;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-sizing:border-box;background:#001e50b3;border:1px solid #00b4ff40;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:1.1rem;line-height:1;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;display:flex;position:absolute;top:72%}.orbit-arrow:hover{border-color:var(--arrow-color,#00b4ff80);color:var(--arrow-color,#00d4ff);box-shadow:0 0 10px color-mix(in srgb,var(--arrow-color,#00d4ff)25%,transparent);background:#003278d9}.orbit-arrow-prev{left:calc(50% - var(--orbit-rx,130px) - 20px);transform:translateY(-50%)}.orbit-arrow-next{left:calc(50% + var(--orbit-rx,130px) - 6px);transform:translateY(-50%)}.kpi-gauge-panel{flex-direction:column;align-items:center;gap:2px;animation:.7s ease-out both fadeInUp;display:flex}.kpi-gauge-panel-title{letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 0 20px #00b4ff66,0 2px 4px #00000080;font-size:1rem;font-weight:800}.kpi-gauge-panel-subtitle{letter-spacing:.08em;opacity:.45;margin-top:1px;margin-bottom:4px;font-size:.65rem}.kpi-gauge-panel-trend{font-size:.7rem;font-family:var(--font-geist-mono),monospace;opacity:.8;align-items:center;gap:5px;margin-top:-2px;font-weight:600;display:flex}.kpi-gauge-panel-trend .trend-up{color:#00e676}.kpi-gauge-panel-trend .trend-down{color:#ff5252}.facility-tab{all:unset;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;box-sizing:border-box;white-space:nowrap;background:linear-gradient(#003278d9 0%,#001946f2 100%);border:1px solid #00b4ff40;border-bottom:2px solid #00081eb3;border-radius:4px;flex-direction:column;align-items:center;gap:2px;min-width:64px;max-width:90px;padding:6px 10px 8px;transition:border-color .3s,box-shadow .3s,transform .3s,background .3s;display:flex;position:relative;overflow:hidden;transform:perspective(500px)rotateX(8deg);box-shadow:0 6px 16px #00000073,0 2px 4px #00000040,inset 0 1px #ffffff1a}.facility-tab:hover{border-color:#00b4ff80;transform:perspective(500px)rotateX(4deg)scale(1.08);box-shadow:0 6px 20px #00b4ff2e,0 2px 4px #0003,inset 0 1px #ffffff1f}.facility-tab-active{box-shadow:0 0 24px color-mix(in srgb,var(--tab-color,#00d4ff)30%,transparent),0 6px 16px #00000059,inset 0 1px 0 #ffffff26;background:linear-gradient(#0046a0e6 0%,#00286efa 100%)}.facility-tab-accent{border-radius:2px 2px 0 0;height:2px;transition:background .3s,height .3s,box-shadow .3s;position:absolute;top:0;left:0;right:0}.facility-tab-active .facility-tab-accent{height:3px;box-shadow:0 0 12px var(--tab-color,#00d4ff)}.facility-tab-label{letter-spacing:.08em;text-transform:uppercase;font-size:.55rem;font-weight:700;transition:color .25s}.facility-tab-values{gap:8px;display:flex}.facility-tab-val{flex-direction:column;align-items:center;gap:1px;display:flex}.facility-tab-val-num{font-family:var(--font-geist-mono),monospace;color:#fff;font-size:.7rem;font-weight:700;line-height:1.1}.facility-tab-val-lbl{text-transform:uppercase;letter-spacing:.06em;opacity:.4;color:#fff;font-size:.4rem}.map-detail-popup .maplibregl-popup-content{box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;padding:0!important}.map-detail-popup .maplibregl-popup-tip{display:none!important}.delay-1{animation-delay:.1s!important}.delay-2{animation-delay:.2s!important}.delay-3{animation-delay:.3s!important}.delay-4{animation-delay:.4s!important}.delay-5{animation-delay:.5s!important}.delay-6{animation-delay:.6s!important}.hh-wrap{z-index:35;pointer-events:auto;flex-direction:column;align-items:stretch;gap:10px;width:390px;max-height:calc(100vh - 96px);display:flex;position:absolute;top:58px;left:22px}.hh-card-head{flex:none}.hh-card-head .hh-head{margin-bottom:0}.hh-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#00b4ff59 transparent;flex-direction:column;flex:auto;gap:10px;min-height:0;padding-bottom:2px;padding-right:4px;display:flex;overflow:hidden auto}.hh-scroll::-webkit-scrollbar{width:5px}.hh-scroll::-webkit-scrollbar-thumb{background:#00b4ff52;border-radius:3px}.hh-scroll::-webkit-scrollbar-thumb:hover{background:#00b4ff8c}.hh-scroll::-webkit-scrollbar-track{background:0 0}.hh-card{-webkit-backdrop-filter:blur(18px)saturate(150%);text-align:left;background:linear-gradient(158deg,#7ab0ff21,#0a162e6b 46%,#060e2080);border:1px solid #96c3ff33;border-radius:16px;flex:none;padding:13px 14px 15px;animation:.6s both fadeInUp;position:relative;overflow:hidden;box-shadow:0 22px 50px -24px #000000e6,inset 0 1px #ffffff29,inset 0 0 60px -34px #00b4ff}.hh-card:before{content:"";background:linear-gradient(90deg,#00b4ff,#00b4ff0d);height:2px;position:absolute;top:0;left:0;right:0}.hh-head{align-items:center;gap:7px;margin-bottom:12px;display:flex}.hh-title{letter-spacing:.12em;text-transform:uppercase;color:#b4caf0f2;white-space:nowrap;font-size:.68rem;font-weight:800}.hh-sub{letter-spacing:.05em;text-transform:uppercase;color:#788fb9d9;white-space:nowrap;text-overflow:ellipsis;font-size:.56rem;overflow:hidden}.hh-toggle{pointer-events:auto;cursor:pointer;letter-spacing:.09em;text-transform:uppercase;color:#00b4ffe6;background:#00b4ff1a;border:1px solid #00b4ff4d;border-radius:6px;flex:none;margin-left:auto;padding:3px 8px;font-family:inherit;font-size:.56rem;font-weight:700}.hh-toggle:hover{background:#00b4ff29}.hh-groups{flex-direction:column;gap:13px;display:flex}.hh-group{flex-direction:column;gap:7px;display:flex}.hh-group-label{letter-spacing:.12em;text-transform:uppercase;color:#a8c6f2f2;align-items:center;gap:7px;font-size:.7rem;font-weight:700;display:flex}.hh-group-label:after{content:"";background:linear-gradient(90deg,#78aaeb4d,#0000);flex:1;height:1px}.hh-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.hh-metric{background:linear-gradient(150deg,#ffffff17,#78aaf008 55%,#ffffff04);border:1px solid #96c3ff29;border-radius:11px;flex-direction:column;gap:4px;min-width:0;padding:8px 10px 9px;transition:border-color .2s,background .2s,transform .2s;display:flex;box-shadow:inset 0 1px #ffffff21}.hh-metric:hover{background:linear-gradient(150deg,#ffffff21,#00b4ff0f 60%,#ffffff05);border-color:#00b4ff6b;transform:translateY(-1px)}.hh-value{font-family:var(--font-geist-mono),monospace;color:#f4f9ff;font-variant-numeric:tabular-nums lining-nums;text-shadow:0 2px 8px #000000e6;align-items:baseline;gap:3px;font-size:1.62rem;font-weight:800;line-height:1;display:flex}.hh-unit{color:#b2caf2f2;font-size:.88rem;font-weight:600}.hh-of{color:#96aed8d9;font-size:.82rem;font-weight:600}.hh-label{letter-spacing:.06em;text-transform:uppercase;color:#bed3f5f2;white-space:nowrap;align-items:center;gap:5px;font-size:.66rem;font-weight:600;display:flex;overflow:hidden}.hh-label>span:first-child{text-overflow:ellipsis;overflow:hidden}.hh-breaks{flex-direction:column;gap:13px;display:flex}.hh-break{background:linear-gradient(150deg,#ffffff14,#78aaf006 55%,#ffffff03);border:1px solid #96c3ff26;border-radius:11px;flex-direction:column;gap:5px;min-width:0;padding:9px 10px 10px;display:flex;box-shadow:inset 0 1px #ffffff1f}.hh-break-row{align-items:center;gap:8px;font-size:.68rem;display:flex}.hh-break-name{color:#bacff2f2;white-space:nowrap;text-overflow:ellipsis;width:92px;overflow:hidden}.hh-break-bar{background:#1e3157b3;border-radius:3px;flex:1;height:6px;overflow:hidden}.hh-break-fill{border-radius:3px;height:100%;display:block}.hh-break-val{text-align:right;width:40px;font-family:var(--font-geist-mono),monospace;color:#eaf2ff;font-variant-numeric:tabular-nums;font-weight:700}@media (max-width:1400px){.hh-wrap{width:356px}.hh-value{font-size:1.45rem}.hh-metrics{gap:6px}.hh-groups{gap:11px}}@media (max-width:700px){.hh-wrap{width:auto;max-height:calc(100vh - 130px);left:12px;right:12px}.hh-value{font-size:1.5rem}}
