.admin-logo{height:64px;display:flex;align-items:center;justify-content:center;background:#0b1929;border-bottom:1px solid rgba(255,255,255,.1)}.admin-logo h2{color:#fff;font-size:16px;margin:0;font-weight:600;letter-spacing:1px}.user-info{display:flex;align-items:center;cursor:pointer;padding:8px 16px;border-radius:4px;transition:background .3s;color:#000000d9}.user-info:hover{background:#f5f5f5}.ant-menu-dark.ant-menu-inline,.ant-menu-dark .ant-menu-item{background:#0b1929!important}.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover{background:#ffffff1a!important;color:#fff!important}.ant-menu-dark .ant-menu-item-selected{background:#ffffff1a!important;color:#fff!important}.ant-menu-dark .ant-menu-submenu-title{background:#0b1929!important;cursor:default!important}.ant-menu-dark .ant-menu-submenu-title:hover{background:#0b1929!important;color:#ffffffd9!important}.ant-menu-dark .ant-menu-submenu .ant-menu-item{background:#0b1929!important;padding-left:48px!important;margin:0!important;border-radius:0!important}.ant-menu-dark .ant-menu-submenu .ant-menu-item-selected{background:#1890ff!important;color:#fff!important}.ant-menu-dark .ant-menu-submenu .ant-menu-item:not(.ant-menu-item-selected):hover{background:#ffffff1a!important;color:#fff!important}.ant-tabs-card .ant-tabs-tab{background:#fafafa;border-color:#d9d9d9}.ant-tabs-card .ant-tabs-tab-active{background:#fff;border-color:#1890ff}.ant-tabs-card .ant-tabs-tab-remove{color:#00000073}.ant-tabs-card .ant-tabs-tab-remove:hover{color:#000000d9}@media screen and (min-width:1200px)and (max-width:1366px){.login-container{font-size:.6875em}}@media screen and (min-width:1701px)and (max-width:1920px){.login-container{font-size:1em}}@media screen and (min-width:1451px)and (max-width:1701px){.login-container{font-size:.875em}}@media screen and (min-width:1367px)and (max-width:1450px){.login-container{font-size:.8125em}}.login-container{display:flex;height:100vh;background:url(/img/img91.png);background-size:100% 100%;position:relative}.login-left{display:none}.login-illustration{width:100%;max-width:37.5em}.illustration-img{width:100%;height:auto;object-fit:contain}.login-right{width:28%;height:100vh;position:absolute;right:8%;top:0;display:flex;align-items:center;justify-content:center;padding:2.5em}.login-form-wrapper{width:100%;max-width:25em}.login-logo{display:flex;align-items:center;justify-content:center;gap:.75em;margin-bottom:2.5em}.login-logo img{width:50%;object-fit:contain}.login-brand{display:flex;flex-direction:column;gap:2px}.brand-name{font-size:1.375em;font-weight:700;color:#fff;letter-spacing:.125em}.brand-en{font-size:.75em;color:#ffffffb3;letter-spacing:.0625em}.login-header{margin-bottom:2em;text-align:center;display:flex;align-items:center;justify-content:center;gap:1em}.header-decoration{width:20%;height:auto;object-fit:contain}.header-decoration-left{transform:rotate(180deg)}.header-decoration-right{transform:none}.login-title{font-size:2em;font-weight:700;color:#fff;margin:0;letter-spacing:.1875em;line-height:1.2}.form-label{font-size:.875em;color:#fffc;margin-bottom:.5em;padding-left:.25em}.login-subtitle{font-size:.9375em;color:#8c8c8c;margin:0;letter-spacing:.125em;font-weight:400}.login-form{margin-bottom:1.5em}.form-group{margin-bottom:1.5em;border-radius:.5em}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:.5em;font-size:1.875em;color:#4b9ef1;z-index:1;pointer-events:none}.login-input{border:1px solid #24354C;width:100%;height:3.75em;padding:.625em 1em .625em 3.75em;border-radius:.5em;background:transparent;color:#fff;font-size:.875em;outline:none;transition:all .3s;box-sizing:border-box}.login-input-password{padding-right:3em}.password-toggle{position:absolute;right:1em;font-size:1.25em;color:#ffffff80;cursor:pointer;transition:color .3s;z-index:1;pointer-events:auto}.password-toggle:hover{color:#fffc}.login-input:focus{border-color:#fff6;background:#ffffff26}.login-input::placeholder{color:#828ea3!important}.login-input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px rgba(255,255,255,.1) inset;-webkit-text-fill-color:#fff}.login-options{display:flex;justify-content:space-between;align-items:center}.forgot-password{color:#1890ff;font-size:.875em}.forgot-password:hover{color:#40a9ff}.button-wrapper{position:relative;margin-top:1em}.button-glow-top,.button-glow-bottom{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 20%,#CAF4FB 50%,rgba(255,255,255,.3) 80%,transparent 100%);pointer-events:none}.button-glow-top{top:-1px}.button-glow-bottom{bottom:-1px}.login-button{width:100%;height:3em;font-size:1.125em;font-weight:600;border-radius:.5em;background:#2870e6;border:none;color:#fff;cursor:pointer;letter-spacing:.125em;transition:all .3s;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:.5em;margin-top:2.5em}.login-button:disabled{opacity:.6;cursor:not-allowed}.button-arrow{font-size:1.2em;transition:transform .3s}.login-button:hover:not(:disabled) .button-arrow{transform:translate(.25em)}.login-footer{text-align:center;margin-top:7em;padding-top:1.5em;border-top:1px solid #f0f0f0}.footer-links{margin-bottom:1em}.footer-links a{color:#8c8c8c;font-size:.75em;margin:0 .75em;text-decoration:none}.footer-links a:hover{color:#1890ff}.copyright{font-size:.9375em;text-align:center;width:100%;position:absolute;bottom:3%;color:#758191}.copyright-top{padding-bottom:.625em}.user-management{background:#fff}.user-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.user-management-search{display:flex;align-items:center}.role-management{background:#fff}.role-management-content{display:flex;gap:24px;height:calc(100vh - 180px)}.role-list-section{width:350px;border:1px solid #f0f0f0;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}.section-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fafafa;border-bottom:1px solid #f0f0f0}.section-header h3,.section-header h4{margin:0;font-size:16px;font-weight:600;color:#333}.role-item{padding:12px 16px;cursor:pointer;transition:background .3s;border-bottom:1px solid #f0f0f0}.role-item:hover{background:#f5f5f5}.role-item.active{background:#e6f7ff;border-left:3px solid #1890ff}.role-item-content{display:flex;align-items:center;gap:12px}.role-avatar{width:40px;height:40px;border-radius:50%;background:#1890ff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex-shrink:0}.role-info{flex:1;min-width:0}.role-name{font-size:14px;font-weight:600;color:#333;margin-bottom:4px}.role-description{font-size:12px;color:#8c8c8c}.permission-section{flex:1;border:1px solid #f0f0f0;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}.current-role{font-size:14px}.current-role .label{color:#8c8c8c;margin-right:8px}.current-role .name{color:#1890ff;font-weight:600;font-size:16px}.permission-content{padding:24px;flex:1;overflow-y:auto}.permission-content h4{margin:0 0 16px;font-size:14px;color:#8c8c8c;font-weight:400}.permission-list{background:#fafafa;border-radius:4px;padding:16px}.permission-item{padding:12px 0;border-bottom:1px solid #f0f0f0}.permission-item:last-child{border-bottom:none}.system-log{background:#fff}.system-log-header{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.system-log-search{display:flex;align-items:center}:root{color-scheme:light;font-family:Microsoft YaHei,Segoe UI,sans-serif;font-weight:400;font-size:clamp(11px,calc(16 * 100vw / 1920),25px)!important;color:#172033;background:radial-gradient(circle at top left,rgba(255,215,96,.28),transparent 28%),radial-gradient(circle at top right,rgba(72,138,92,.24),transparent 34%),linear-gradient(180deg,#f6f1bf,#f3f6e5 44%,#eef4ff);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;font-size:clamp(11px,calc(16 * 100vw / 1920),25px)!important}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.primary-button,.ghost-button,.text-button{border:none;border-radius:14px;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.primary-button:hover,.ghost-button:hover,.text-button:hover{transform:translateY(-1px)}.primary-button{padding:.9em 1.25em;background:linear-gradient(135deg,#2188ff,#0c63ce);color:#fff;box-shadow:0 12px 30px #2188ff3d}.ghost-button{padding:.75em 1.1em;background:#ffffffbd;color:#1f2a44;border:1px solid rgba(93,123,163,.18)}.text-button{padding:0;background:transparent;color:#0c63ce}.text-button.danger{color:#d9485b}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(360px,.76fr);gap:1.5em;padding:2em}.auth-panel{border-radius:28px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 24px 60px #1c2b441f;animation:rise-in .6s ease}.auth-side{padding:3em;background:linear-gradient(145deg,#0d294deb,#12588ee0),linear-gradient(180deg,#102347,#1a4f8f);color:#f8fbff;display:flex;flex-direction:column;justify-content:center}.auth-side h1{margin:1em 0;font-size:clamp(2em,4vw,3.2em);line-height:1.1}.auth-side p{margin:0;max-width:540px;color:#ffffffd1}.auth-brand{display:inline-flex;align-items:center;width:fit-content;padding:.4em .9em;border-radius:999px;background:#ffffff1f;color:#9ee2ff;font-weight:700;letter-spacing:.08em}.auth-tip-grid{margin-top:2em;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1em}.auth-tip-grid article{padding:1em 1.1em;border-radius:20px;background:#ffffff14}.auth-tip-grid span{display:block;color:#ffffffa6;font-size:.85em}.auth-tip-grid strong{display:block;margin-top:.35em}.auth-form-panel{padding:2.4em;background:#ffffffd6;display:flex;flex-direction:column;justify-content:center}.auth-form-header p,.page-banner-kicker,.topbar-label{margin:0 0 .4em;color:#1570ef;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.82em}.auth-form-header h2,.page-banner h1{margin:0;font-size:clamp(1.9em,4vw,2.8em)}.auth-form{margin-top:1.4em;display:grid;gap:1em}.auth-form label,.modal-form label{display:grid;gap:.45em}.auth-form span,.modal-form span{color:#4f5d79;font-weight:600}.auth-form input,.modal-form input,.modal-form select,.filter-bar input,.filter-bar select{width:100%;padding:.92em 1em;border-radius:14px;border:1px solid rgba(114,132,165,.28);background:#f8fafff5;outline:none}.auth-form input:focus,.modal-form input:focus,.modal-form select:focus,.filter-bar input:focus,.filter-bar select:focus{border-color:#2188ff;box-shadow:0 0 0 4px #2188ff1f}.auth-footer{margin-top:1.4em;color:#5a6986}.auth-footer a{color:#0c63ce;font-weight:700}.form-error,.form-success,.status-card{padding:.95em 1em;border-radius:16px}.form-error,.status-card.error{background:#ff5d721f;color:#b42339;border:1px solid rgba(255,93,114,.2)}.form-success,.status-card{background:#1cbd8c1f;color:#0f8a63;border:1px solid rgba(28,189,140,.18)}.app-shell{min-height:100vh;display:grid;grid-template-columns:300px 1fr}.app-shell.scene-mode{grid-template-columns:1fr;background:#040d18}.app-shell.scene-mode .sidebar,.app-shell.scene-mode .topbar{display:none}.sidebar{padding:1.3em 1.1em;background:linear-gradient(180deg,#081f3ff7,#041124fa);color:#f4f9ff;border-right:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:center;gap:.85em;padding:.8em;border-radius:22px;background:#ffffff0d}.brand h1{margin:0;font-size:1.1em}.brand p{margin:.15em 0 0;color:#ffffff94;font-size:.85em}.brand-mark{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#1ea7ff,#2cffc6);color:#062240;font-size:1.2em;font-weight:800}.sidebar-nav{margin-top:1.5em}.nav-group+.nav-group{margin-top:1.5em}.nav-group h2{margin:0 0 .7em;font-size:.84em;color:#ffffff8c;letter-spacing:.08em}.nav-links{display:grid;gap:.45em}.nav-link{padding:.95em 1em;border-radius:16px;color:#f4f9ffd1;transition:transform .2s ease,background .2s ease}.nav-link:hover,.nav-link.active{transform:translate(3px);background:linear-gradient(135deg,#2d87ff3d,#1bc4ff33);color:#fff}.shell-content{min-width:0;padding:1.35em}.app-shell.scene-mode .shell-content{padding:0;min-height:100vh}.topbar,.page-banner,.filter-bar,.table-panel,.panel,.chart-panel,.center-stage{border:1px solid rgba(122,145,175,.16);background:#ffffffbd;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 40px #1c2b4414}.topbar{padding:1.2em 1.4em;border-radius:24px;display:flex;justify-content:space-between;align-items:center;gap:1em}.topbar h2{margin:0;font-size:1.5em}.topbar-actions{display:flex;align-items:center;gap:.9em}.user-pill{display:flex;align-items:center;gap:.7em;padding:.45em .75em;border-radius:999px;background:#f5f8ffeb}.user-pill strong,.user-pill span{display:block}.user-pill span{font-size:.78em;color:#6b7b93}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#ffcf70,#ff7d66);color:#1d1d1d;font-weight:800}.page-content{margin-top:1.3em}.app-shell.scene-mode .page-content{margin-top:0;min-height:100vh}.dashboard-page-scene-only{min-height:100vh;background:radial-gradient(circle at 18% 18%,rgba(63,155,255,.16),transparent 24%),radial-gradient(circle at 82% 16%,rgba(255,168,92,.12),transparent 22%),linear-gradient(180deg,#040d18,#07111d 44%,#030913)}.scene-page{min-height:100vh}.page-banner{padding:1.4em 1.5em;border-radius:28px;display:flex;justify-content:space-between;gap:1.2em;align-items:start}.page-banner.compact h1{font-size:2em}.page-banner-text{margin:.55em 0 0;color:#5e6d85;max-width:760px}.page-banner-meta{display:flex;flex-wrap:wrap;gap:.6em;justify-content:end}.source-badge,.page-updated{display:inline-flex;align-items:center;padding:.58em .88em;border-radius:999px;font-weight:600}.page-updated{background:#ffffffe6;color:#516072}.source-badge.solis,.source-badge.mysql,.source-badge.connected{background:#0f8a631f;color:#0f8a63}.source-badge.mock,.source-badge.mock-fallback{background:#ffb13e29;color:#a15b00}.hero-metrics{margin-top:1.2em;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1em}.hero-card{padding:1.15em 1.25em;border-radius:22px;border:1px solid rgba(122,145,175,.18);box-shadow:0 18px 34px #1c2b4414;background:#ffffffd6;overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;inset:auto -10% -60% 20%;height:120px;border-radius:50%;background:currentColor;opacity:.08;filter:blur(28px)}.hero-card.primary{color:#0c63ce}.hero-card.success{color:#0f8a63}.hero-card.warning{color:#a15b00}.hero-card span{display:block;color:#55657e;font-size:.92em}.hero-card strong{display:block;margin-top:.45em;font-size:1.85em}.dashboard-grid{margin-top:1.2em;display:grid;grid-template-columns:320px minmax(0,1fr) 320px;gap:1em}.dashboard-grid-scene{grid-template-columns:minmax(240px,276px) minmax(0,1.35fr) minmax(240px,276px)}.side-column{display:grid;gap:1em;align-content:start}.panel,.chart-panel,.center-stage,.filter-bar,.table-panel{border-radius:24px}.panel{padding:1.15em}.panel-header h3,.chart-panel h3,.modal-header h3{margin:0;font-size:1.18em}.panel-header p,.chart-panel p{margin:.25em 0 0;color:#61728b}.panel-list{margin-top:.9em;display:grid;gap:.8em}.metric-row{display:flex;justify-content:space-between;gap:1em;align-items:center}.metric-row-label{display:flex;align-items:center;gap:.5em;color:#52627a}.accent-dot{width:10px;height:10px;border-radius:50%;background:#2188ff}.accent-dot.primary,.accent-text.primary{color:#0c63ce;background:#2188ff}.accent-dot.success,.accent-text.success{color:#0f8a63;background:#14b67f}.accent-dot.warning,.accent-text.warning{color:#a15b00;background:#ffae36}.accent-dot.danger,.accent-text.danger{color:#b42339;background:#ff5d72}.accent-dot.muted,.accent-text.muted{color:#64748b;background:#94a3b8}.metric-row strong{text-align:right}.center-stage{min-height:420px;position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,rgba(255,210,88,.26),transparent 22%),radial-gradient(circle at 80% 18%,rgba(32,161,98,.2),transparent 24%),linear-gradient(135deg,#fffad6d6,#daefdddb)}.stage-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 42%),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 1px,transparent 1px,transparent 64px),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 64px)}.scene-stage{min-height:520px;padding:0;background:radial-gradient(circle at 18% 12%,rgba(62,165,255,.22),transparent 26%),radial-gradient(circle at 85% 18%,rgba(255,167,87,.16),transparent 24%),linear-gradient(180deg,#050f1dfa,#030a15fc)}.scene-shell,.scene-fallback{position:relative;isolation:isolate;width:100%;min-height:520px;height:100%}.scene-shell-immersive,.scene-fallback-immersive{min-height:100vh;height:100vh}.scene-shell-immersive:before,.scene-shell-immersive:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.scene-shell-immersive:before{background:radial-gradient(circle at 44% 44%,rgba(83,190,255,.16),transparent 22%),radial-gradient(circle at 68% 62%,rgba(255,150,74,.13),transparent 18%),radial-gradient(circle at 28% 72%,rgba(76,164,255,.1),transparent 24%);mix-blend-mode:screen}.scene-shell-immersive:after{background:linear-gradient(180deg,rgba(2,9,17,.28),transparent 24%,transparent 72%,rgba(2,7,13,.42)),radial-gradient(circle at center,transparent 48%,rgba(1,6,12,.42) 100%)}.scene-canvas,.scene-fallback img{position:absolute!important;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%}.scene-canvas canvas{touch-action:none}.scene-shell-immersive .scene-canvas canvas{filter:saturate(1.16) contrast(1.18) brightness(1.04)}.scene-overlay,.scene-fallback-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;min-height:520px;padding:1.25em}.scene-overlay{pointer-events:none;background:linear-gradient(180deg,rgba(5,12,23,.12),transparent 20%,transparent 82%,rgba(5,12,23,.2)),linear-gradient(90deg,rgba(5,12,23,.14),transparent 20%,transparent 82%,rgba(5,12,23,.12))}.scene-overlay-immersive{position:absolute;top:0;right:0;bottom:0;left:0;min-height:100vh;padding:1.08em 1.25em;justify-content:space-between;background:none}.scene-overlay-immersive .scene-topbar{justify-content:space-between;position:relative;z-index:5;min-height:9em}.scene-overlay-immersive .scene-toolbar{pointer-events:auto;margin-left:auto;align-items:flex-start}.scene-overlay-immersive .scene-action{background:#06101d94;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scene-topbar{display:flex;justify-content:space-between;gap:1em;align-items:flex-start}.scene-intro{width:min(248px,calc(100% - 5em));max-width:248px;padding:.8em .92em;border-radius:22px;background:#06112057;border:1px solid rgba(118,190,255,.14);box-shadow:0 12px 24px #020c1933;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.scene-kicker{display:inline-flex;align-items:center;gap:.35em;color:#8ed8ff;font-size:.8em;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.scene-intro h2,.scene-fallback-copy h2{margin:.45em 0 0;color:#f0f8ff;font-size:clamp(1.18em,1.9vw,1.72em);line-height:1.12}.scene-intro strong,.scene-fallback-copy strong{display:block;margin-top:.38em;color:#7ed3ff;font-size:.9em}.scene-intro p,.scene-fallback-copy p{margin:.6em 0 0;color:#e2efffd1;line-height:1.5;font-size:.9em}.scene-toolbar{pointer-events:auto;display:flex;align-items:flex-start;gap:.85em}.scene-action{background:#06101d8f;color:#e6f4ff;border:1px solid rgba(130,202,255,.2);white-space:nowrap}.scene-top-metrics{position:absolute;left:50%;top:.12em;transform:translate(-50%);display:grid;grid-template-columns:repeat(4,minmax(126px,1fr));gap:.58em;width:min(690px,calc(100vw - 34em));pointer-events:auto}.scene-top-metric{min-height:64px;display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto 12px;align-items:center;column-gap:.34em;padding:.52em .72em .46em;border-radius:6px;border:1px solid color-mix(in srgb,var(--metric-color, #37d8ff) 58%,rgba(42,203,255,.28));background:linear-gradient(180deg,#071b30b8,#030b16a3),linear-gradient(90deg,color-mix(in srgb,var(--metric-color, #37d8ff) 15%,transparent),transparent 46%);box-shadow:inset 0 0 22px #1697e81f,0 0 18px color-mix(in srgb,var(--metric-color, #37d8ff) 18%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.scene-top-metric i{grid-row:1 / 3;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--metric-color, #37d8ff) 76%,rgba(48,197,255,.22));color:var(--metric-color, #39d9ff);font-style:normal;font-size:1.05em;font-weight:900;box-shadow:inset 0 0 14px color-mix(in srgb,var(--metric-color, #37d8ff) 18%,transparent)}.scene-top-metric-value{display:flex;align-items:baseline;gap:.34em}.scene-top-metric strong{color:var(--metric-color, #3bd7ff);font-size:1.42em;line-height:1;font-weight:900;text-shadow:0 0 16px color-mix(in srgb,var(--metric-color, #3bd7ff) 42%,transparent)}.scene-top-metric em{align-self:end;color:#e9f5ffd1;font-style:normal;font-size:.72em;font-weight:800}.scene-top-metric span{grid-column:2 / 3;color:#ebf6ffe0;font-size:.78em;font-weight:800;white-space:nowrap}.scene-top-sparkline{grid-column:1 / -1;height:12px;display:flex;align-items:end;gap:3px;margin-top:.2em}.scene-top-sparkline b{flex:1;min-width:4px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--metric-color, #37d8ff) 92%,white 4%),color-mix(in srgb,var(--metric-color, #37d8ff) 40%,transparent));box-shadow:0 0 8px color-mix(in srgb,var(--metric-color, #37d8ff) 34%,transparent);opacity:.86}.scene-energy-toggle{display:inline-flex;align-items:center;gap:.28em;padding:.28em;border-radius:8px;border:1px solid rgba(130,202,255,.22);background:#06101d94;box-shadow:0 14px 34px #00000042,inset 0 0 22px #29d3ff0a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scene-energy-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:42px;height:42px;display:grid;place-items:center;gap:0;padding:.18em 0;border:1px solid transparent;border-radius:7px;background:#091a2a85;color:#e2f4ffc7;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.scene-energy-button:hover{transform:translateY(-1px);color:#f2fbff;background:#0b2439b8}.scene-energy-button span,.scene-energy-button em{display:block;line-height:1;font-style:normal}.scene-energy-button span{font-size:1.08em;font-weight:900}.scene-energy-button em{margin-top:.18em;font-size:.56em;font-weight:800;color:#b9d7e7b8}.scene-energy-button.is-active[data-tone=cyan]{border-color:#29d3ffb8;background:#14597894;color:#dffbff;box-shadow:0 0 18px #29d3ff42,inset 0 0 18px #29d3ff24}.scene-energy-button.is-active[data-tone=amber]{border-color:#ffb34ab8;background:#7c481494;color:#fff4dc;box-shadow:0 0 18px #ffb34a3d,inset 0 0 18px #ffb34a21}.scene-energy-button.is-active em{color:#f5fcffdb}.scene-design-header{max-width:min(520px,calc(100vw - 17em));padding-top:.15em;color:#f2f7ff;text-shadow:0 2px 16px rgba(0,0,0,.55)}.scene-design-header:after{content:"";display:block;width:162px;height:3px;margin-top:.44em;background:linear-gradient(90deg,rgba(59,215,255,.95),rgba(59,215,255,.16),transparent);box-shadow:0 0 16px #3bd7ffc7}.scene-design-header h2{margin:0;color:#f4f8ff;font-size:clamp(1.42em,2.2vw,2em);line-height:1.04;letter-spacing:0;font-weight:900}.scene-design-header p{margin:.45em 0 0;color:#39d6ff;font-weight:800;font-size:clamp(.78em,1.15vw,1em)}.scene-orbit-badge{width:150px;min-height:132px;display:grid;place-items:center;padding:.9em .8em;border-radius:8px;color:#9eeaff;border:1px solid rgba(159,224,255,.34);background:#0511208a;box-shadow:0 18px 42px #0000004d,inset 0 0 32px #29d3ff0e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center}.scene-orbit-badge span{display:grid;place-items:center;width:84px;height:44px;border-radius:50%;color:#62e0ff;border-top:3px solid #62e0ff;border-bottom:3px solid #62e0ff;font-size:2em;line-height:1;font-weight:900}.scene-orbit-badge strong,.scene-orbit-badge em{display:block;margin-top:.28em;font-style:normal}.scene-orbit-badge strong{color:#d9f7ff;font-size:.92em}.scene-orbit-badge em{color:#9eeaff;font-size:.82em}.scene-side-panels{position:absolute;z-index:4;display:grid;gap:.78em;width:min(242px,18.6vw);pointer-events:auto}.scene-side-panels-left{left:1.18em;top:26.8vh}.scene-side-panels-right{right:1.18em;top:24.8vh;width:min(286px,20.6vw)}.scene-dashboard-panel{position:relative;min-height:108px;padding:.72em .82em .76em;border-radius:8px;border:1px solid rgba(45,205,255,.72);color:#e9f7ff;background:radial-gradient(circle at 86% 8%,rgba(47,201,255,.16),transparent 36%),linear-gradient(180deg,#071d33d1,#030c18b3),linear-gradient(90deg,rgba(42,203,255,.11),transparent 62%);box-shadow:0 18px 44px #00000057,inset 0 0 28px #26b9ff17,0 0 18px #1db2ff24;-webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px)}.scene-dashboard-panel:before,.scene-dashboard-panel:after{content:"";position:absolute;height:2px;background:#2ed7ff;box-shadow:0 0 10px #2ed7ffcc}.scene-dashboard-panel:before{top:-1px;right:24px;width:38px}.scene-dashboard-panel:after{bottom:-1px;left:20px;width:56px}.scene-dashboard-panel-title{display:flex;align-items:center;gap:.52em;padding-bottom:.56em;border-bottom:1px solid rgba(103,189,235,.24)}.scene-dashboard-panel-title i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#66e3ff;border:1px solid rgba(82,218,255,.72);background:#0c3a608f;box-shadow:inset 0 0 12px #52daff2e,0 0 14px #52daff29;font-style:normal;font-size:1em;font-weight:900}.scene-dashboard-panel-title strong{color:#f2fbff;font-size:.92em;font-weight:900}.scene-capacity-bars,.scene-supply-bars,.scene-load-bars{display:grid;gap:.54em;margin-top:.62em}.scene-panel-park .scene-dashboard-panel-title{padding-bottom:.34em}.scene-panel-park .scene-capacity-bars{gap:.42em;margin-top:.34em}.scene-capacity-item{position:relative;display:grid;gap:.24em}.scene-capacity-line{display:flex;align-items:center;justify-content:space-between;gap:.5em;color:#e1eefcd1;font-size:.72em;font-weight:800}.scene-capacity-line strong{color:#f4fbff;font-size:.76em;font-weight:900}.scene-progress-track{position:relative;height:7px;overflow:hidden;border-radius:999px;background:#071728e6;box-shadow:inset 0 0 8px #0006}.scene-progress-track b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--bar-color, #3c8dff) 70%,#1e5dff),color-mix(in srgb,var(--bar-color, #3c8dff) 82%,white 8%));box-shadow:0 0 12px color-mix(in srgb,var(--bar-color, #3c8dff) 48%,transparent)}.scene-capacity-item>em{justify-self:end;color:var(--bar-color, #5ab3ff);font-style:normal;font-size:.66em;font-weight:900;line-height:1}.scene-status-strip{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:.46em;margin-top:.62em;color:#e1eefcd1;font-size:.72em;font-weight:800}.scene-status-strip strong{padding:.22em .58em;border:1px solid rgba(78,227,111,.28);border-radius:4px;color:#5cff82;background:#24864233;box-shadow:inset 0 0 16px #4ee36f1a;font-size:.66em;white-space:nowrap}.scene-supply-item,.scene-load-bar-row{display:grid;align-items:center;gap:.36em;color:#e1eefcd6;font-size:.7em;font-weight:800}.scene-supply-item{grid-template-columns:1em minmax(4.9em,1fr) minmax(56px,.92fr) max-content}.scene-supply-item i,.scene-load-bar-row i,.scene-load-distribution-row i{display:inline-grid;place-items:center;width:.92em;height:.92em;border-radius:3px;color:var(--bar-color, #5ab3ff);background:color-mix(in srgb,var(--bar-color, #5ab3ff) 18%,transparent);box-shadow:inset 0 0 8px color-mix(in srgb,var(--bar-color, #5ab3ff) 14%,transparent);font-style:normal;font-size:.66em}.scene-supply-item strong,.scene-load-bar-row strong{color:#f4fbff;font-size:.72em;font-weight:900;white-space:nowrap}.scene-supply-item-segmented .scene-progress-track{height:12px;border:1px solid rgba(85,145,200,.48);background:repeating-linear-gradient(90deg,transparent 0 9px,rgba(5,18,32,.95) 9px 12px),#081a2de6}.scene-load-bar-row{grid-template-columns:1em minmax(4.6em,1fr) minmax(64px,.9fr) max-content}.scene-load-axis{display:grid;grid-template-columns:repeat(6,1fr);gap:.24em;padding-left:calc(1em + 4.6em + .72em);color:#a2c5e1b8;font-size:.56em;line-height:1}.scene-benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.48em;margin-top:.68em}.scene-benefit-tile{min-height:62px;display:grid;align-content:center;justify-items:center;gap:.14em;padding:.5em .34em;border-radius:6px;border:1px solid color-mix(in srgb,var(--tile-color, #37d8ff) 28%,rgba(52,180,255,.18));background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--tile-color, #37d8ff) 24%,transparent),transparent 68%),#0a1f3494;box-shadow:inset 0 0 16px color-mix(in srgb,var(--tile-color, #37d8ff) 12%,transparent)}.scene-benefit-tile strong{color:var(--tile-color, #37d8ff);font-size:1em;font-weight:900;line-height:1;text-shadow:0 0 14px color-mix(in srgb,var(--tile-color, #37d8ff) 40%,transparent)}.scene-benefit-tile em{color:#e8f4ffc2;font-style:normal;font-size:.58em;font-weight:850}.scene-benefit-tile span{color:#daebfab8;font-size:.56em;font-weight:800;line-height:1.1;text-align:center}.scene-dashboard-list{display:grid;gap:.22em;margin-top:.52em}.scene-dashboard-row{display:grid;grid-template-columns:auto max-content;align-items:baseline;gap:.4em;color:#e1eefcd1;font-size:.72em;line-height:1.28}.scene-dashboard-row:before{content:"";grid-column:1 / -1;grid-row:1;align-self:center;height:1px;margin:0 .1em;background:linear-gradient(90deg,rgba(103,189,235,.18),transparent);transform:translateY(.58em)}.scene-dashboard-row span,.scene-dashboard-row b{position:relative;z-index:1;background:#040d19ad}.scene-dashboard-row span{padding-right:.28em;white-space:nowrap}.scene-dashboard-row b{padding-left:.28em;color:#f2fbff;font-weight:850}.scene-dashboard-row .is-green,.is-green{color:#62ff7e;text-shadow:0 0 12px rgba(98,255,126,.42)}.scene-donut-content{display:grid;grid-template-columns:106px minmax(0,1fr);gap:.72em;align-items:center;margin-top:.76em}.scene-donut-chart{width:104px;height:104px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,rgba(4,13,25,.98) 0 42%,transparent 43%),conic-gradient(#58df70 0,#58df70 16.7%,#9a5cff 16.7%,#9a5cff 41.7%,#2c8cff 41.7%,#2c8cff);border:1px solid rgba(165,222,255,.34);box-shadow:0 0 22px #40caff2e,0 0 34px #7f5bff2e}.scene-donut-chart span,.scene-donut-chart strong,.scene-load-ring span,.scene-load-ring strong{grid-column:1;grid-row:1;text-align:center}.scene-donut-chart span,.scene-load-ring span{align-self:end;margin-bottom:.86em;color:#e7f4ffb8;font-size:.62em;font-weight:800}.scene-donut-chart strong,.scene-load-ring strong{align-self:start;margin-top:3.05em;color:#f4fbff;font-size:.78em;font-weight:900}.scene-donut-legend{display:grid;gap:.48em;min-width:0}.scene-donut-legend strong{color:#ebf6ffeb;font-size:.72em}.scene-donut-legend span{display:grid;grid-template-columns:.65em minmax(0,1fr) max-content max-content;align-items:center;gap:.34em;color:#e1eefcd1;font-size:.66em;white-space:nowrap}.scene-donut-legend span i{width:.56em;height:.56em;border-radius:50%;background:var(--legend-color);box-shadow:0 0 8px var(--legend-color)}.scene-donut-legend span em{overflow:hidden;color:#e1eefcd6;font-style:normal;text-overflow:ellipsis}.scene-donut-legend span b,.scene-donut-legend span strong{color:#eef8ffeb;font-size:.66em;font-weight:850}.scene-load-content{display:grid;grid-template-columns:88px minmax(0,1fr);gap:.72em;align-items:center;margin-top:.76em}.scene-load-ring{width:84px;height:84px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,rgba(4,13,25,.98) 0 42%,transparent 43%),conic-gradient(#ffb36c 0,#ffb36c 44%,#2d94ff 44%,#2d94ff 64%,#2a5c91b8 64%,#2a5c91b8);border:1px solid rgba(165,222,255,.34);box-shadow:0 0 22px #40caff2e}.scene-load-ring:before{content:"";grid-column:1;grid-row:1;width:104px;height:104px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 7px,rgba(45,148,255,.16) 8px 9px);opacity:.78}.scene-load-distribution{display:grid;gap:.38em}.scene-load-distribution-row{display:grid;grid-template-columns:1em minmax(0,1fr) max-content max-content;align-items:center;gap:.34em;color:#e1eefcd6;font-size:.66em;font-weight:850}.scene-load-distribution-row i{color:var(--load-color, #5ab3ff);background:color-mix(in srgb,var(--load-color, #5ab3ff) 18%,transparent)}.scene-load-distribution-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-load-distribution-row b,.scene-load-distribution-row em{color:#eef8ffeb;font-style:normal;white-space:nowrap}.scene-reference-strip{pointer-events:none;width:min(980px,calc(100vw - 2.7em));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75em;align-self:center;position:relative;z-index:4}.scene-map-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.scene-callout{--callout-accent: #7ed9ff;--leader-height: 1.8em;position:absolute;display:inline-flex;align-items:center;min-height:28px;max-width:168px;padding:.32em .58em;border-radius:4px;border:1px solid rgba(215,223,234,.52);background:#040b13c7;box-shadow:0 12px 28px #0000004d,inset 0 0 18px #29d3ff0d;color:#f4f8ff;font-size:.74em;font-weight:850;line-height:1.1;text-shadow:0 1px 8px rgba(0,0,0,.55);white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-callout:before,.scene-callout:after{content:"";position:absolute;left:50%;transform:translate(-50%)}.scene-callout:before{bottom:-.46em;width:.42em;height:.42em;border-radius:50%;background:var(--callout-accent);box-shadow:0 0 12px var(--callout-accent)}.scene-callout:after{bottom:calc(-.46em - var(--leader-height));width:1px;height:var(--leader-height);background:linear-gradient(var(--callout-accent),rgba(126,217,255,0))}.scene-callout-main-building{left:43%;top:30%}.scene-callout-west-canopy{left:15%;top:51%}.scene-callout-front-canopy{left:38%;top:66%}.scene-callout-sports-court{left:59%;top:36%}.scene-callout-substation{left:73%;top:52%}.scene-callout-auxiliary-building{left:24%;top:71%}.scene-callout-road-lighting{left:80%;top:68%;--leader-height: 2.35em}.scene-reference-strip span{min-height:58px;display:grid;align-content:center;gap:.16em;padding:.58em .72em;border-radius:8px;border:1px solid rgba(103,147,178,.3);background:#040e1a8c;box-shadow:inset 0 0 28px #29d3ff0b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scene-reference-strip strong,.scene-reference-strip em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-reference-strip strong{color:#45dcff;font-size:.72em;font-weight:900}.scene-reference-strip em{color:#e7f2ffc7;font-style:normal;font-size:.8em}.scene-legend{align-self:flex-end;display:flex;flex-wrap:wrap;gap:.55em;pointer-events:none}.scene-legend span{display:inline-flex;align-items:center;padding:.5em .78em;border-radius:999px;background:#07132275;color:#d1ebff;border:1px solid rgba(126,205,255,.14);font-size:.82em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scene-anchor{padding:.36em .7em;border-radius:5px;border:1px solid color-mix(in srgb,var(--anchor-accent, #7ed9ff) 48%,transparent);background:#05101dd1;box-shadow:0 10px 24px #00000047,0 0 0 1px #7ed9ff14;color:#ebf7ff;font-size:.78em;font-weight:700;letter-spacing:.01em;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;display:inline-flex;align-items:center;gap:.35em}.scene-anchor-close-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.2em;height:1.2em;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#57c6ff33;color:#e5f7ffe6;cursor:pointer;font-size:1em;line-height:1;padding:0;transition:all .15s ease;flex-shrink:0;z-index:1000;position:relative;pointer-events:auto!important;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.scene-anchor-close-btn:hover{color:#fff;background:#ff646480;transform:scale(1.15)}.scene-anchor-close-btn:active{transform:scale(.95)}.scene-anchor-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.scene-anchor-button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--anchor-accent, #7ed9ff) 78%,white 8%);box-shadow:0 12px 28px #00000057,0 0 20px color-mix(in srgb,var(--anchor-accent, #7ed9ff) 34%,transparent)}.scene-anchor-stack{position:relative;display:inline-flex;justify-content:center;pointer-events:none;font-size:clamp(11px,calc(16 * 100vw / 1920),25px)}.scene-anchor-stack>*{pointer-events:auto}.scene-anchor-active{border-color:color-mix(in srgb,var(--anchor-accent, #7ed9ff) 86%,white 10%);background:linear-gradient(180deg,#0d2a43eb,#040d18db);box-shadow:0 14px 30px #0000005c,0 0 26px color-mix(in srgb,var(--anchor-accent, #7ed9ff) 42%,transparent),inset 0 0 22px #29d3ff1a}.scene-anchor-immersive{position:relative;padding:.34em .62em;background:#040b13c7;border-color:#d7dfea7a;color:#f4f8ff;text-shadow:0 1px 8px rgba(0,0,0,.55)}.scene-anchor-immersive:before{content:"";position:absolute;left:50%;bottom:-.42em;width:.42em;height:.42em;border-radius:50%;background:var(--anchor-accent, #7ed9ff);box-shadow:0 0 12px var(--anchor-accent, #7ed9ff);transform:translate(-50%)}.scene-anchor-immersive:after{content:"";position:absolute;left:50%;bottom:-2em;width:1px;height:1.55em;background:linear-gradient(var(--anchor-accent, #7ed9ff),transparent);transform:translate(-50%)}.scene-anchor-stack{position:relative;pointer-events:auto}.scene-anchor-card{position:absolute;left:50%;bottom:calc(100% + .72em);width:max-content;min-width:160px;max-width:250px;padding:.68em .78em .72em;border:1px solid rgba(52,200,255,.82);border-radius:8px;background:linear-gradient(135deg,#061a2df0,#040c18db),radial-gradient(circle at 86% 0%,rgba(52,205,255,.18),transparent 46%);box-shadow:0 16px 34px #0000006b,0 0 24px #24c0ff4d,inset 0 0 22px #2dc4ff14;color:#eaf8ff;transform:translate(-50%);pointer-events:auto;transform-origin:bottom center;max-height:80vh;overflow:hidden}.scene-anchor-card-static{position:relative;left:auto;bottom:auto;transform:none;pointer-events:none}.scene-anchor-card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;background:linear-gradient(90deg,transparent 8%,#37d4ff 20%,transparent 34%) top left / 100% 1px no-repeat,linear-gradient(90deg,transparent 66%,#37d4ff 82%,transparent 94%) bottom left / 100% 1px no-repeat;pointer-events:none}.scene-anchor-card:after{content:"";position:absolute;left:50%;bottom:-.74em;width:1px;height:.74em;background:linear-gradient(#44d5ffeb,#44d5ff00);transform:translate(-50%)}.scene-anchor-card-title{display:grid;grid-template-columns:1.8em minmax(0,1fr);align-items:center;gap:.42em;padding-bottom:.46em;border-bottom:1px solid rgba(115,207,255,.28);position:relative}.scene-anchor-card-title i{width:1.62em;height:1.62em;display:inline-grid;place-items:center;border:1px solid rgba(60,205,255,.72);border-radius:6px;color:#4bd7ff;font-style:normal;font-size:1.02em;line-height:1;background:#134c7342;box-shadow:inset 0 0 12px #2dc4ff21}.scene-anchor-card-title strong{overflow:hidden;color:#f1fbff;font-size:.88em;font-weight:500;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.scene-anchor-card-title button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.1em;height:1.1em;display:inline-grid;place-items:center;border:0;color:#fff;cursor:pointer;font:inherit;line-height:1}.scene-anchor-card-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.4em;height:1.4em;display:inline-flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;font-size:1.1em;font-weight:700;line-height:1;padding:0;transition:all .15s ease;margin-left:auto;position:absolute;right:-.8em;top:-.8em;z-index:1000;pointer-events:auto!important;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.scene-anchor-card-rows{display:grid;gap:.28em;padding-top:.54em}.scene-anchor-card-rows-cols{grid-template-columns:repeat(2,auto);column-gap:1em}.scene-anchor-card-wide{max-width:250px!important}.scene-anchor-card-rows span{display:flex;align-items:center;justify-content:flex-start;gap:.25em;color:#e0f1ffe0;font-size:.9em;line-height:1.2;white-space:nowrap}.scene-anchor-card-rows em{color:#d7e7f4d1;font-style:normal}.scene-anchor-card-rows strong{color:#fff;font-weight:500}.scene-anchor-card-rows .is-green{color:#48ff76;text-shadow:0 0 10px rgba(72,255,118,.38)}.scene-anchor-card-rows .is-neutral{color:#fff;text-shadow:none}.scene-data-panel{position:absolute;top:clamp(5.6em,8.4vh,7em);right:clamp(1em,3.8vw,5.5em);z-index:7;width:min(430px,calc(100vw - 2em));padding:1.05em 1.15em;pointer-events:auto;color:#e9f7ff;border:1px solid rgba(47,213,255,.74);border-radius:8px;background:linear-gradient(135deg,#051727f0,#030d18db),repeating-linear-gradient(135deg,rgba(44,211,255,.055) 0 1px,transparent 1px 10px);box-shadow:0 28px 70px #0000007a,0 0 0 1px #5fe1ff24,0 0 42px #1db8ff2e,inset 0 0 42px #1db8ff14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:scene-panel-rise .22s ease both}.scene-data-panel:before,.scene-data-panel:after{content:"";position:absolute;pointer-events:none}.scene-data-panel:before{top:.55em;right:.55em;bottom:.55em;left:.55em;border-top:2px solid rgba(42,220,255,.82);border-bottom:1px solid rgba(42,220,255,.3);border-radius:5px;opacity:.72}.scene-data-panel:after{left:62%;bottom:-9.6em;width:2px;height:9.6em;background:linear-gradient(#29d3fff2,#29d3ff0f),linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);box-shadow:0 0 18px #29d3ffb8;transform:rotate(7deg);transform-origin:top center}.scene-data-panel-glow{position:absolute;right:4.9em;bottom:-10.2em;width:1.05em;height:1.05em;border-radius:50%;border:2px solid rgba(41,211,255,.86);background:#29d3ff33;box-shadow:0 0 0 .34em #29d3ff1c,0 0 26px #29d3ffd1}.scene-data-panel-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.8em;padding-bottom:.62em}.scene-data-panel-header strong{color:#fff;font-size:1.18em;font-weight:900;letter-spacing:0}.scene-data-panel-close{width:2em;height:1.55em;display:grid;place-items:center;cursor:pointer;color:#6ee6ff;border:1px solid rgba(56,198,255,.58);border-radius:4px;background:#051c2ead;font-size:1.08em;line-height:1}.scene-data-current,.scene-data-status{position:relative;z-index:1;display:flex;align-items:baseline;gap:.78em;padding:.64em 0 .48em;border-top:1px solid rgba(43,214,255,.38);color:#e8f3ffc7}.scene-data-current b{font-size:clamp(1.35em,2.4vw,1.9em);font-weight:900}.scene-data-current i{color:#e9f7ff94;font-style:normal}.is-cyan{color:#20bbff;text-shadow:0 0 18px rgba(32,187,255,.36)}.is-amber{color:#ff9f31;text-shadow:0 0 18px rgba(255,159,49,.34)}.scene-data-cards{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.58em;border:1px solid rgba(74,164,214,.26);border-radius:7px;overflow:hidden}.scene-data-card{min-height:104px;display:grid;grid-template-columns:auto auto auto;align-content:center;justify-content:center;column-gap:.42em;row-gap:.16em;padding:.8em;background:#04111e8a}.scene-data-card+.scene-data-card{border-left:1px solid rgba(74,164,214,.24)}.scene-data-card-icon{grid-row:1 / span 3;align-self:center;width:2.15em;height:3.05em;border:2px solid currentColor;border-radius:.28em;position:relative;box-shadow:inset 0 0 14px color-mix(in srgb,currentColor 20%,transparent),0 0 18px color-mix(in srgb,currentColor 26%,transparent)}.scene-data-card-icon:before,.scene-data-card-icon:after{content:"";position:absolute}.scene-data-card-icon:before{left:50%;top:-.42em;width:.72em;height:.28em;border-radius:.18em .18em 0 0;background:currentColor;transform:translate(-50%)}.scene-data-card-icon:after{left:.34em;right:.34em;bottom:.34em;height:1.35em;border-radius:.15em;background:currentColor;box-shadow:0 -.48em color-mix(in srgb,currentColor 66%,transparent)}.scene-data-card span{grid-column:1 / -1;font-size:.92em;font-weight:900;text-align:center}.scene-data-card .scene-data-card-icon+span{grid-column:2 / -1}.scene-data-card strong{font-size:2.1em;line-height:.96;font-weight:500}.scene-data-card em{align-self:end;color:#e2f1ffdb;font-style:normal;font-weight:800}.scene-data-card-cyan{color:#21baff;box-shadow:inset 0 0 36px #20bbff0f}.scene-data-card-amber{color:#ff9c2a;box-shadow:inset 0 0 36px #ff9c2a0f}.scene-data-status{margin-top:.2em;padding-bottom:.55em}.scene-data-status strong{color:#28e4ff;font-size:1em;font-weight:200}.scene-data-rows{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.48em 1em;padding-top:.68em;border-top:1px solid rgba(43,214,255,.18)}.scene-data-rows span{min-width:0;display:grid;gap:.08em}.scene-data-rows em{color:#dfecfb94;font-size:.76em;font-style:normal}.scene-data-rows strong{overflow:hidden;color:#fff;font-size:.95em;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.scene-data-trend{position:relative;z-index:1;height:44px;display:flex;align-items:end;gap:.26em;margin-top:.8em;padding-top:.64em;border-top:1px solid rgba(43,214,255,.14)}.scene-data-trend span{flex:1;min-width:.24em;border-radius:999px 999px 0 0;background:linear-gradient(180deg,#2adcffe0,#2adcff1a);box-shadow:0 0 12px #2adcff2e}@keyframes scene-panel-rise{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.scene-fallback{overflow:hidden}.scene-fallback-immersive .scene-fallback-copy{min-height:100vh;max-width:560px;justify-content:flex-end;padding:1.25em}.scene-fallback img{object-fit:cover;filter:saturate(1.08) brightness(.76)}.scene-fallback:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#040b1540,#040b15ad),linear-gradient(90deg,#040b1570,#040b1514 42%,#040b1561)}.scene-fallback-copy{justify-content:flex-end;max-width:520px}.scene-fallback-copy em{margin-top:.85em;color:#9fdcff;font-style:normal}.stage-copy{position:relative;z-index:1;text-align:center;padding:2em}.stage-copy p{margin:0;color:#17203373;letter-spacing:.12em;text-transform:uppercase}.stage-copy h2{margin:1em 0 .6em;font-size:clamp(2em,4vw,3.2em)}.stage-copy strong{display:block;font-size:clamp(1.2em,2.4vw,2em);color:#fff}.stage-copy span{display:block;margin-top:1em;color:#5e6d85}.chart-grid{margin-top:1.2em;display:grid;gap:1em}.chart-grid-primary,.chart-grid-single{min-width:0}.chart-grid-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1em}.chart-grid-secondary .chart-panel:last-child:nth-child(odd){grid-column:1 / -1}.chart-panel{padding:1.15em}.chart-frame{margin-top:1em;height:320px}.filter-bar{margin-top:1.2em;padding:1em;display:grid;grid-template-columns:220px 220px minmax(0,1fr) auto;gap:.8em}.table-panel{margin-top:1em;padding:1em}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:980px}th,td{padding:1em .8em;text-align:left;border-bottom:1px solid rgba(122,145,175,.14)}thead th{color:#3f4d65;font-weight:800}tbody tr:hover{background:#2188ff0a}.table-actions{display:flex;gap:.8em;flex-wrap:wrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c1a347a;display:grid;place-items:center;padding:1.5em;z-index:50}.modal-card{width:min(760px,100%);max-height:calc(100vh - 3em);overflow:auto;border-radius:28px;background:#fffffff2;box-shadow:0 24px 64px #1521353d;padding:1.25em}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:1em}.modal-form{margin-top:1em;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1em}.modal-form .primary-button{grid-column:1 / -1}@keyframes rise-in{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid-secondary{grid-template-columns:1fr}.scene-stage,.scene-shell,.scene-fallback,.scene-overlay,.scene-fallback-copy{min-height:460px}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.auth-shell{grid-template-columns:1fr;padding:1em}.filter-bar{grid-template-columns:1fr}.topbar,.page-banner{flex-direction:column;align-items:stretch}.scene-topbar{flex-direction:column}.scene-overlay-immersive .scene-topbar{flex-direction:row;align-items:flex-start}.scene-intro{max-width:100%}.scene-design-header{max-width:calc(100vw - 8.2em)}.scene-orbit-badge{width:116px;min-height:102px;padding:.65em .5em}.scene-orbit-badge span{width:64px;height:34px;font-size:1.45em}.scene-orbit-badge em{display:none}.scene-callout{font-size:.68em;padding:.28em .48em;min-height:25px}.scene-callout-auxiliary-building,.scene-callout-road-lighting{display:none}.scene-callout-main-building{left:41%;top:32%}.scene-callout-west-canopy{left:12%;top:54%}.scene-callout-front-canopy{left:33%;top:68%}.scene-callout-sports-court{left:57%;top:40%}.scene-callout-substation{left:70%;top:56%}.scene-legend{align-self:flex-start}.scene-anchor{font-size:.72em;padding:.32em .62em}.scene-data-panel{top:auto;right:1em;bottom:1em;width:min(400px,calc(100vw - 2em))}.scene-data-panel:after,.scene-data-panel-glow{display:none}}@media(max-width:640px){.hero-metrics,.modal-form{grid-template-columns:1fr}.auth-side,.auth-form-panel,.shell-content,.sidebar{padding:1em}.center-stage,.scene-stage,.scene-shell,.scene-fallback,.scene-overlay,.scene-fallback-copy{min-height:430px}.scene-overlay,.scene-fallback-copy{padding:.9em}.scene-overlay-immersive{padding:.85em}.scene-design-header{max-width:calc(100vw - 7.1em)}.scene-design-header h2{font-size:1em;line-height:1.08}.scene-design-header p{margin-top:.3em;font-size:.68em}.scene-toolbar{gap:.45em}.scene-energy-toggle{gap:.22em;padding:.22em}.scene-energy-button{width:36px;height:36px}.scene-energy-button span{font-size:.96em}.scene-energy-button em,.scene-orbit-badge{display:none}.scene-orbit-badge span{width:52px;height:28px;font-size:1.12em;border-top-width:2px;border-bottom-width:2px}.scene-orbit-badge strong{font-size:.68em}.scene-action{padding:.55em .72em;border-radius:10px;font-size:.78em}.scene-reference-strip{display:none}.scene-callout{font-size:.62em;min-height:22px;padding:.24em .38em;--leader-height: 1.15em}.scene-callout-west-canopy,.scene-callout-sports-court,.scene-callout-auxiliary-building,.scene-callout-road-lighting{display:none}.scene-callout-main-building{left:28%;top:34%}.scene-callout-front-canopy{left:18%;top:58%}.scene-callout-substation{left:58%;top:52%}.scene-anchor-immersive{padding:.28em .48em;font-size:.64em}.scene-data-panel{right:.75em;bottom:.75em;width:calc(100vw - 1.5em);padding:.85em}.scene-data-panel-header strong{font-size:1em}.scene-data-current{gap:.52em}.scene-data-current b{font-size:1.18em}.scene-data-card{min-height:82px;padding:.62em}.scene-data-card strong{font-size:1.58em}.scene-data-rows{grid-template-columns:1fr;gap:.34em}}.logout-button{position:absolute;top:.5em;right:1em;z-index:300;display:flex;align-items:center;gap:.5em;padding:.2em 1em;border:2px solid rgba(0,212,255,.5);border-radius:4px;cursor:pointer;transition:all .3s ease;pointer-events:auto}.logout-button:hover{border-color:#0ff;box-shadow:0 0 1em #00d4ff80;background:#005096cc}.logout-icon{width:1.5em;height:1.5em;object-fit:contain;filter:drop-shadow(0 0 4px rgba(0,212,255,.6))}.logout-text{color:#fff;font-size:.9em;font-weight:700;letter-spacing:2px;white-space:nowrap}
