*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#050b17;font-family:Poppins,Segoe UI,Inter,system-ui,-apple-system,sans-serif}body,h1,h2,h3,h4,p{margin:0}:root{--ink:#0c182a;--panel:#0a1220a6;--card:#ffffff0f;--accent:#67e8f9;--accent-strong:#14b8a6;--text:#e8f5ff;--muted:#9fb1c6;--border:#ffffff1f;--shadow:0 18px 40px #00000059}.glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0f;background:var(--card);border:1px solid #ffffff1f;border:1px solid var(--border);box-shadow:0 18px 40px #00000059;box-shadow:var(--shadow)}.auth-page{background:radial-gradient(circle at 20% 20%,#67e8f914,#0000 30%),radial-gradient(circle at 80% 10%,#14b8a61f,#0000 35%),#0a1223;color:#e8f5ff;color:var(--text);display:grid;min-height:100vh;padding:32px;place-items:center}.auth-card{border-radius:18px;padding:40px;width:min(520px,100%)}.auth-brand{align-items:center;display:flex;gap:14px;margin-bottom:12px}.auth-brand__logo{filter:drop-shadow(0 8px 16px rgba(0,0,0,.22));height:42px;object-fit:contain;width:42px}.eyebrow{color:#9fb1c6;color:var(--muted);font-size:12px;letter-spacing:.1em;margin:0 0 6px;text-transform:uppercase}.auth-card h1{margin:0}.muted{color:#9fb1c6;color:var(--muted);margin:0 0 16px}.auth-form{grid-gap:14px;display:grid;gap:14px}.auth-form label{grid-gap:6px;color:#e8f5ff;color:var(--text);display:grid;font-size:14px;gap:6px}.auth-form input{background:#ffffff0f;border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:10px;color:#e8f5ff;color:var(--text);font-size:15px;padding:12px 14px;transition:border-color .15s ease,box-shadow .15s ease}.auth-form input:focus{border-color:#67e8f9;border-color:var(--accent);box-shadow:0 0 0 3px #67e8f92e;outline:none}.primary-button{background:linear-gradient(120deg,#67e8f9,#14b8a6);background:linear-gradient(120deg,var(--accent),var(--accent-strong));border:none;border-radius:12px;color:#04101d;cursor:pointer;font-size:15px;font-weight:700;padding:12px 16px;transition:transform .16s ease,box-shadow .16s ease}.primary-button:hover{box-shadow:0 10px 22px #00000040;transform:translateY(-1px)}.error{color:#fca5a5;font-size:14px;margin:4px 0 0}.dashboard{background:#050b17;color:#e8f5ff;color:var(--text);min-height:100vh;overflow:hidden;position:relative}.dashboard-scale{transform-origin:top left}.dashboard-layer{min-height:100vh;position:relative;z-index:2}.logout-button{background:#060e1ae0;border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 40px #00000059;box-shadow:var(--shadow);color:#e8f5ff;color:var(--text);cursor:pointer;font-size:clamp(12px,1.4vw,15px);font-weight:700;padding:clamp(8px,1vw,12px) clamp(10px,1.2vw,14px);position:absolute;right:20px;top:20px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;z-index:8}.logout-button:hover{border-color:#9fb1c6;border-color:var(--muted);box-shadow:0 12px 26px #00000052;transform:translateY(-1px)}.brand-badge{grid-gap:6px;background:#060e1abf;border-radius:12px;bottom:16px;box-shadow:0 18px 40px #00000059;box-shadow:var(--shadow);color:#e8f5ff;color:var(--text);display:grid;font-size:clamp(11px,1.2vw,13px);gap:6px;left:16px;max-width:260px;padding:10px 12px;position:fixed;z-index:4}.brand-logos{align-items:center;display:flex;gap:10px}.brand-img{height:32px;object-fit:contain;width:auto}.brand-note{color:#9fb1c6;color:var(--muted);font-size:12px;line-height:1.1;text-align:left}.phase-legend{grid-gap:6px;background:#060e1ad1;border-radius:12px;box-shadow:0 18px 40px #00000059;box-shadow:var(--shadow);color:#e8f5ff;color:var(--text);display:grid;font-size:clamp(11px,1.2vw,13px);gap:6px;max-width:260px;padding:10px 12px;position:fixed;right:20px;top:70px;z-index:8}.legend-item{align-items:center;display:flex;font-size:13px;gap:8px}.legend-swatch{border:1px solid #ffffff4d;border-radius:4px;height:14px;width:14px}.legend-swatch.phase1{background:#058359e1}.legend-swatch.phase2{background:#06668d}.legend-label{color:#e8f5ff;color:var(--text)}.summary-card{border-radius:16px;left:16px;max-width:clamp(320px,24vw,380px);overflow:visible;padding:clamp(14px,1.5vw,18px);position:fixed;top:50%;transform:translateY(-50%);transform-origin:left center;transition:width .26s cubic-bezier(.22,1,.36,1),max-width .26s cubic-bezier(.22,1,.36,1),padding .26s cubic-bezier(.22,1,.36,1),opacity .22s ease,box-shadow .26s ease,border-color .22s ease,background .22s ease;-webkit-user-select:none;user-select:none;width:clamp(320px,24vw,380px);z-index:6}.summary-card.collapsed{background:#0000;border:#0000;box-shadow:none;height:0;max-width:0;min-height:0;min-width:0;outline:none;padding:0;pointer-events:none;width:0}.summary-card .collapsed-label{display:inline-block;font-weight:800;letter-spacing:.08em}.summary-card__content{opacity:1;overflow:hidden;transform:translateX(0);transition:opacity .18s ease,transform .26s cubic-bezier(.22,1,.36,1)}.summary-card.collapsed .summary-card__content{opacity:0;pointer-events:none;transform:translateX(-18px);width:0}.card-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.card-header h2{margin:0}.summary-card .card-header h2{color:#f0f8f8;font-size:clamp(18px,1.6vw,21px);font-weight:700;letter-spacing:-.025em;line-height:1.2}.summary-updated{font-feature-settings:"tnum";align-items:center;color:#a9bfcb;display:flex;flex-wrap:wrap;font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;gap:4px 8px;letter-spacing:.04em;margin:10px 0 0}.summary-updated:before{background:#40d6a3;border-radius:50%;box-shadow:0 0 0 3px #40d6a324;content:"";height:7px;width:7px}.summary-updated__label{text-transform:uppercase}.summary-updated__time{color:#d5e8e9;font-weight:700;letter-spacing:.02em}.sidebar-toggle{background:#060e1ae6;border:1px solid #ffffff40;border-radius:12px;box-shadow:0 10px 24px #00000059;color:#f7fbff;cursor:pointer;display:grid;font-weight:800;height:clamp(46px,3.5vw,56px);place-items:center;position:absolute;right:-12px;top:50%;transform:translateY(-50%);transition:right .26s cubic-bezier(.22,1,.36,1),background .22s ease,box-shadow .22s ease,transform .22s ease;width:clamp(24px,2.2vw,32px);z-index:10}.summary-card.collapsed .sidebar-toggle{pointer-events:auto;right:-16px;transform:translateY(-50%) scale(1)}.badge{background:#ffffff14;border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:999px;color:#e8f5ff;color:var(--text);font-size:13px;font-weight:700;padding:8px 12px}.badge.online{background:#22c55e26;border-color:#010f0659;color:#15ac4c}.badge.offline{background:#f9731626;border-color:#08040059;color:#e2310e}.badge.critical{background:#ef444429;border-color:#7f1d1d59;color:#ef4444}.badge.warning{background:#f59e0b29;border-color:#78350f59;color:#f59e0b}.badge.info{background:#38bdf829;border-color:#0e749059;color:#38bdf8}.metrics-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr;margin-top:16px}.metric{grid-gap:14px;align-items:center;background:linear-gradient(180deg,#111e1be6,#0b1413eb);border:1px solid #ffffff14;border-radius:16px;box-shadow:inset 0 1px 0 #ffffff0a;display:grid;gap:14px;grid-template-columns:44px 1fr;padding:12px 14px}.metric-icon{background:#ffffff08;border:1px solid;border-radius:999px;display:grid;height:44px;place-items:center;width:44px}.metric-icon-svg{display:block;flex:0 0 auto;height:22px;width:22px}.metric-copy{min-width:0}.metric-label{color:#eaf2ecc2;font-size:clamp(12px,1.3vw,14px);margin:0}.metric-value{font-size:clamp(18px,2vw,22px);font-weight:800;margin:6px 0 2px}.metric-detail{color:#9fb1c6;color:var(--muted);font-size:12px;margin:0}.metric--phase1{color:#9df05d}.metric--phase2{color:#2f9dff}.metric--overall{color:#ffb423}.metric--solar{color:#9bf169}.metric--co2{color:#88e26d}.metric--default{color:#e5e7eb}.metric--co2 .metric-icon,.metric--default .metric-icon,.metric--overall .metric-icon,.metric--phase1 .metric-icon,.metric--phase2 .metric-icon,.metric--solar .metric-icon{box-shadow:inset 0 0 18px #ffffff08}.layout-canvas{height:120vh;inset:0;position:fixed;width:100vw;z-index:1}.site-map{height:100%;inset:0;position:absolute;width:120%}.phase-pin{background:#041123e6;border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 40px #00000059;box-shadow:var(--shadow);color:#e8f5ff;color:var(--text);cursor:pointer;font-weight:700;max-width:220px;min-width:110px;overflow:visible;padding:6px 10px 8px;position:absolute;transform:translate(-50%,-110%);transform-origin:bottom center;transition:transform .16s ease,background .16s ease;z-index:3}.phase-pin:hover{background:#041123f2;transform:translate(-50%,-110%) scale(1.02);z-index:30}.phase-pin:after{background:inherit;border:1px solid #ffffff1f;border:1px solid var(--border);border-left:none;border-top:none;bottom:-9px;box-shadow:0 18px 40px #00000059;box-shadow:var(--shadow);content:"";height:14px;left:50%;position:absolute;transform:translateX(-50%) rotate(45deg);width:14px}.phase-pin--down{transform:translate(-50%,18px);transform-origin:top center}.phase-pin--down:hover{transform:translate(-50%,18px) scale(1.02)}.phase-pin--down:after{border:none;bottom:auto;box-shadow:none;-webkit-clip-path:polygon(50% 0,0 100%,100% 100%);clip-path:polygon(50% 0,0 100%,100% 100%);height:12px;top:-9px;transform:translateX(-50%);width:18px}.phase-pin--left{transform:translate(calc(-100% - 14px),-50%);transform-origin:right center}.phase-pin--left:hover{transform:translate(calc(-100% - 14px),-50%) scale(1.02)}.phase-pin--left:after{border:none;bottom:auto;box-shadow:none;-webkit-clip-path:polygon(100% 50%,0 0,0 100%);clip-path:polygon(100% 50%,0 0,0 100%);height:18px;left:auto;right:-9px;top:50%;transform:translateY(-50%);width:12px}.phase-pin__icon{background-position:50%;background-repeat:no-repeat;background-size:cover;height:28px;left:5%;position:absolute;top:50%;transform:translateY(-50%);width:18px}.phase-pin__label{align-items:center;display:flex;flex-direction:column;gap:2px;line-height:1.2;margin-left:0;white-space:normal;word-break:break-word}.phase-pin__name{font-size:clamp(11px,1.1vw,12px);line-height:1.2}.phase-pin__power{font-size:clamp(10px,1vw,11px);line-height:1.1}.phase-detail{border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:16px;padding:18px;position:absolute;transform:translate(-50%,-110%);width:min(340px,90vw);z-index:6}.phase-detail__header{align-items:center;display:flex;gap:12px;justify-content:space-between}.phase-detail__title{align-items:center;display:flex;gap:8px}.phase-detail__close{background:#183341;border:1px solid #6acdcb8c;border-radius:8px;color:#f4ffff;cursor:pointer;display:grid;flex:0 0 32px;font-size:20px;height:32px;padding:0;place-items:center;transition:background .16s ease,border-color .16s ease;width:32px}.phase-detail__close:focus-visible,.phase-detail__close:hover{background:#245565;border-color:#81e8df}.phase-detail__close:focus-visible{outline:2px solid #81e8df;outline-offset:2px}.analytics-page{background:#050b17;color:#e8f5ff;color:var(--text);min-height:100vh;padding:28px}.analytics-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.analytics-header p{font-size:26px;font-weight:700;margin-bottom:6px}.ghost-button{background:rgba(90,89,92,.596);border:2px solid #ffffff1f;border:2px solid var(--border);border-radius:12px;color:#e8f5ff;color:var(--text);cursor:pointer;font-weight:700;padding:10px 14px;transition:transform 3s ease-in-out}.ghost-button:hover{border-color:#9fb1c6;border-color:var(--muted);box-shadow:0 12px 26px #00000052;transform:translateY(-1px)}.analytics-grid{grid-gap:14px;display:grid;gap:14px}.filter-card{border-radius:16px;padding:16px}.filter-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:10px}.filter-row label{grid-gap:6px;color:#e8f5ff;color:var(--text);display:grid;gap:6px}.filter-row input,.filter-row select{border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:10px;color:#0c182a;color:var(--ink);cursor:pointer;padding:10px 12px}.filter-actions{display:flex;gap:10px;margin-top:12px}.chart-card{border-radius:16px;padding:16px}.summary-strip{display:grid}.summary-card-mini{border-radius:16px;padding:16px}.summary-card-mini__header{align-items:center;display:flex;gap:12px;justify-content:space-between}.summary-card-mini__header .eyebrow{margin-bottom:0}.live-pill{align-items:center;background:#145f2c38;border:1px solid #50d67947;border-radius:999px;color:#9df5ab;display:inline-flex;font-size:12px;font-weight:700;gap:8px;letter-spacing:.04em;padding:6px 10px;text-transform:uppercase}.live-pill__dot{background:#3ee46b;border-radius:999px;box-shadow:0 0 0 4px #3ee46b29;height:9px;width:9px}.building-summary-grid{grid-gap:16px;align-items:stretch;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.summary-label{color:#ffffffd1;display:block;font-size:.82rem;letter-spacing:.04em;margin-bottom:8px;text-transform:uppercase}.building-metric-card{align-items:center;border:1px solid #ffffff24;border-radius:18px;box-shadow:0 16px 32px #0000002e;display:flex;flex-direction:column;justify-content:center;min-height:122px;padding:18px 20px;text-align:center}.building-metric-card strong{color:#fff;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.15}@media (max-width:900px){.building-summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.building-metric-card--power{background:linear-gradient(145deg,#077e69f2,#054752eb)}.building-metric-card--daily{background:linear-gradient(145deg,#0a69a0f2,#1d376feb)}.building-metric-card--total{background:linear-gradient(145deg,#b46914f5,#763911eb)}.chart-context{color:#9fb1c6;color:var(--muted);margin-bottom:10px;margin-top:4px}.chart-placeholder{border:1px dashed #ffffff1f;border:1px dashed var(--border);border-radius:14px;color:#9fb1c6;color:var(--muted);display:grid;height:260px;margin-top:8px;place-items:center}.mini-chart{height:280px;width:100%}.chart-legend{fill:#9ca3af;font-size:16px}.error-text{color:#ef4444;margin-top:8px}.alerts-card{border-radius:16px;padding:16px}.alerts-list{grid-gap:10px;display:grid;gap:10px;margin-top:8px;max-height:calc(100vh - 180px);overflow-y:auto;padding-right:6px}.alerts-list::-webkit-scrollbar{width:8px}.alerts-list::-webkit-scrollbar-thumb{background:#94a3b873;border-radius:999px}.alerts-list::-webkit-scrollbar-track{background:#ffffff0a}.alert-row{align-items:center;background:#ffffff0a;border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:12px;display:flex;justify-content:space-between;padding:10px 12px}.phase-popup{max-width:280px}.phase-popup .leaflet-popup-content{margin:6px 8px 10px}.phase-popup__header{display:flex;flex-direction:column;gap:4px}.phase-popup__title{align-items:center;display:flex;gap:8px}.building-list{border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:12px;margin-top:10px;overflow:hidden}.building-row{background:#ffffff0a;border-bottom:1px solid #ffffff1f;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:10px 12px}.building-row:last-child{border-bottom:none}.leaflet-container{background:#0000}.alert-bar{background:#041123e6;border-top:1px solid #ffffff1f;border-top:1px solid var(--border);bottom:0;box-shadow:0 -10px 30px #00000059;color:#e8f5ff;color:var(--text);left:0;pointer-events:none;position:fixed;right:0;transform:translateY(100%);transition:transform .18s ease;z-index:7}.alert-bar.open{pointer-events:auto;transform:translateY(0)}.alert-toggle{background:#041123e6;border:1px solid #ffffff1f;border:1px solid var(--border);border-radius:12px 12px 0 0;bottom:4px;box-shadow:0 -6px 18px #00000040;color:#e8f5ff;color:var(--text);cursor:pointer;padding:8px 12px;position:fixed;right:16px;top:auto;transition:bottom .18s ease;z-index:8}.alert-content{padding:14px 18px 18px}@media (max-width:100%){.summary-card{left:auto;margin:20px;position:relative;top:auto;transform:none;width:auto;z-index:3}.phase-detail{bottom:16px;left:50%;margin:0;max-width:420px;padding:14px 18px 18px;position:fixed;top:auto;transform:translateX(-50%);width:calc(100vw - 24px)}}.auth-page{background:radial-gradient(circle at 15% 20%,#0d8b872e,#0000 35%),radial-gradient(circle at 85% 85%,#144a6947,#0000 38%),#07111c;font-family:Aptos,Segoe UI,sans-serif;padding:clamp(16px,4vw,48px)}.auth-shell{border:1px solid #aee2e629;border-radius:26px;box-shadow:0 32px 100px #0000007a;display:grid;grid-template-columns:1.05fr .95fr;min-height:min(650px,calc(100vh - 96px));overflow:hidden;width:min(1060px,100%)}.auth-showcase{background:radial-gradient(circle at 80% 20%,#52c1b740,#0000 32%),repeating-linear-gradient(135deg,#0000 0 40px,hsla(0,0%,100%,.018) 40px 41px),linear-gradient(160deg,#08635f,#071f35);border-right:1px solid #ffffff1a;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,4vw,56px)}.auth-showcase .auth-brand{font-size:17px;font-weight:800;letter-spacing:.11em;margin:0}.auth-showcase .auth-brand__logo{height:48px;width:48px}.auth-kicker,.auth-showcase__footer{color:#80d5cf;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.auth-showcase__copy h1{font-size:clamp(36px,4vw,56px);letter-spacing:-.035em;line-height:1.08;margin:14px 0;max-width:450px}.auth-showcase__copy p{color:#c0d6dd;font-size:17px;line-height:1.55;max-width:390px}.auth-card{background:#101c2a;display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,4vw,68px);width:auto}.auth-card__intro{margin-bottom:38px}.auth-card__intro h2{color:#f3f8fb;font-size:35px;letter-spacing:-.03em;margin:12px 0 7px}.auth-card__footnote,.auth-card__intro p{color:#9aafbe}.auth-card__footnote{font-size:12px;margin:32px 0 0}.auth-form{gap:22px}.auth-form label{color:#dceaf0;font-weight:600}.auth-form input{background:#182838;border-color:#345166;box-sizing:border-box;width:100%}.auth-password-field{display:flex;position:relative}.auth-password-field input{padding-right:52px}.auth-password-field button{background:#0000;border:0;color:#afcbd4;cursor:pointer;display:grid;font-size:18px;height:38px;place-items:center;position:absolute;right:7px;top:50%;transform:translateY(-50%);width:38px}.auth-submit{align-items:center;display:flex;gap:10px;justify-content:center;margin-top:8px;min-height:48px}.auth-submit:disabled{cursor:wait;opacity:.8}.auth-spinner{animation:auth-spin .9s linear infinite}@keyframes auth-spin{to{transform:rotate(1turn)}}.phase-detail.glass{background:#0a1826f7;border:1px solid #54cbc561;box-shadow:0 24px 55px #0000008c;font-family:Aptos,Segoe UI,sans-serif}.phase-detail__name{color:#9edbd7;font-size:13px;font-weight:800;letter-spacing:.09em}.phase-detail__power{font-feature-settings:"tnum";color:#f1fbfb;font-size:32px;font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin:18px 0 6px}.phase-detail__updated{font-feature-settings:"tnum";color:#a9c0ce;font-size:13px;font-variant-numeric:tabular-nums;font-weight:500;margin:0 0 16px}.phase-detail .building-list{border-color:#96c4ce33}.phase-detail .building-row{background:hsla(0,0%,100%,.035);color:#c7dbe3;font-size:14px}.phase-detail .building-row span:last-child{color:#f4fbfd;font-weight:700}.filter-row--granularity{grid-template-columns:minmax(0,1fr)}.granularity-field{min-width:0;position:relative;width:100%}.granularity-field__label{color:#e8f5ff;color:var(--text);display:block;font-size:14px;margin-bottom:6px}.granularity-field__trigger{align-items:center;background:#f5f8fb;border:1px solid #b7c7d3;border-radius:10px;color:#14283b;cursor:pointer;display:flex;font:inherit;font-size:14px;gap:12px;justify-content:space-between;min-height:42px;padding:10px 12px;text-align:left;width:100%}.granularity-field__trigger svg{flex:0 0 auto;transition:transform .15s ease}.granularity-field__trigger[aria-expanded=true] svg{transform:rotate(180deg)}.granularity-field__trigger:focus-visible{outline:2px solid #47c8c4;outline-offset:2px}.granularity-field__menu{background:#f5f8fb;border:1px solid #89b8c1;border-radius:10px;box-shadow:0 18px 34px #00000057;box-sizing:border-box;left:0;padding:5px;position:absolute;top:calc(100% + 4px);width:100%;z-index:20}.granularity-field__option{background:#0000;border:0;border-radius:6px;color:#14283b;cursor:pointer;display:block;font:inherit;font-size:14px;padding:10px 12px;text-align:left;width:100%}.granularity-field__option:focus-visible,.granularity-field__option:hover{background:#dbecee;color:#0b3440;outline:none}.granularity-field__option.is-selected{background:#146177;color:#fff;font-weight:700}.filter-row select{background:#f5f8fb;box-sizing:border-box;color:#14283b;color-scheme:light;font-size:14px;min-width:0;width:100%}.filter-row select option{background:#fff;color:#14283b}.filter-row select:focus{outline:2px solid #47c8c4;outline-offset:2px}.summary-card-mini{background:linear-gradient(135deg,#152331,#101925);border-color:#7fabb733}.building-metric-card{align-items:flex-start;box-shadow:inset 0 1px 0 #ffffff1f,0 15px 36px #0000002e;justify-content:flex-start;min-height:174px;overflow:hidden;padding:22px 24px;position:relative;text-align:left}.building-metric-card:after{border:1px solid #ffffff29;border-radius:50%;box-shadow:0 0 0 26px hsla(0,0%,100%,.025),0 0 0 54px #ffffff05;content:"";height:160px;position:absolute;right:-48px;top:-54px;width:160px}.building-metric-card__icon{background:#ffffff21;border-radius:10px;display:grid;font-size:21px;height:38px;margin-bottom:15px;place-items:center;width:38px}.building-metric-card .summary-label{color:#cce4e5;font-weight:700;letter-spacing:.1em;margin-bottom:5px}.building-metric-card strong{font-feature-settings:"tnum";font-size:clamp(1.35rem,2.1vw,1.9rem);font-variant-numeric:tabular-nums}.building-metric-card__foot{color:#ffffffad;font-size:10px;font-weight:800;letter-spacing:.15em;margin-top:auto;padding-top:13px}.building-metric-card--power{background:linear-gradient(135deg,#0c655b,#123743)}.building-metric-card--daily{background:linear-gradient(135deg,#145d8a,#1b365c)}.building-metric-card--total{background:linear-gradient(135deg,#966020,#653b20)}.ops-app{background:#09131e;color:#edf6f8;display:grid;font-family:Aptos,Segoe UI,sans-serif;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.ops-sidebar{background:#101f2b;border-right:1px solid #284152;display:flex;flex-direction:column;gap:7px;padding:28px 18px}.ops-brand{align-items:center;color:#71d8cb;display:flex;font-size:17px;font-weight:800;gap:12px;letter-spacing:.06em;padding:4px 10px 44px}.ops-brand svg{font-size:26px}.ops-brand small{color:#88a3b2;display:block;font-size:10px;letter-spacing:.2em;margin-top:3px}.ops-nav-label,.ops-overline{color:#8ca8b6;font-size:11px;font-weight:800;letter-spacing:.14em}.ops-nav-label{margin:0 10px 8px}.ops-sidebar button{align-items:center;background:#0000;border:1px solid #0000;border-radius:10px;color:#b9ccd5;cursor:pointer;display:flex;font-size:14px;font-weight:650;gap:12px;padding:13px 14px;text-align:left;width:100%}.ops-sidebar button.active{background:#1c3c47;border-color:#316c73;color:#dbfffa}.ops-sidebar button:hover{background:#1a303d;color:#fff}.ops-sidebar__bottom{border-top:1px solid #284152;margin-top:auto;padding-top:18px}.ops-sidebar__bottom span{align-items:center;color:#86bcba;display:flex;font-size:13px;gap:10px;padding:8px 14px}.ops-main{box-sizing:border-box;max-width:1500px;padding:clamp(24px,4vw,52px);width:100%}.ops-header{align-items:center;display:flex;gap:24px;justify-content:space-between;margin-bottom:34px}.ops-header h1{font-size:clamp(28px,3vw,40px);letter-spacing:-.035em;margin:10px 0 7px}.ops-header p{color:#a1b7c4;margin:0}.ops-live{align-items:center;border:1px solid #2b755f;border-radius:30px;color:#89dec1;display:flex;font-size:12px;font-weight:700;gap:8px;padding:9px 13px;white-space:nowrap}.ops-live span{background:#3ddd90;border-radius:50%;box-shadow:0 0 0 4px #3ddd901a;height:8px;width:8px}.ops-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,minmax(0,1fr))}.ops-panel,.ops-stat{background:#142331;border:1px solid #2a4354;border-radius:16px}.ops-stat{box-sizing:border-box;display:flex;flex-direction:column;gap:10px;min-height:155px;padding:22px}.ops-stat svg{color:#75d8cb;font-size:24px}.ops-stat span{color:#a7bdc8;font-size:13px}.ops-stat strong{font-feature-settings:"tnum";font-size:27px;font-variant-numeric:tabular-nums;text-transform:capitalize}.ops-stat small{color:#839dad;line-height:1.4}.ops-danger{color:#ffad8d}.ops-panels{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.ops-panel{padding:26px}.ops-panel h2{font-size:21px;margin:10px 0 21px}.ops-row{align-items:center;border-top:1px solid #2a4354;color:#a9bfca;display:flex;font-size:14px;gap:20px;justify-content:space-between;padding:16px 0}.ops-row strong{font-feature-settings:"tnum";color:#f3fafb;font-size:14px;font-variant-numeric:tabular-nums;font-weight:650;text-align:right}.ops-settings{display:flex;flex-direction:column;gap:18px}.ops-settings h2{margin-bottom:0}.ops-settings label:not(.ops-toggle){grid-gap:8px;color:#d9e7ed;display:grid;font-size:13px;font-weight:700;gap:8px}.ops-settings label span{color:#90aab8;font-weight:500}.ops-settings input[type=number]{background:#0d1c29;border:1px solid #3c5a69;border-radius:9px;box-sizing:border-box;color:#f3fafb;font-size:16px;padding:12px;width:100%}.ops-toggle{align-items:center;border:1px solid #365969;border-radius:12px;display:flex;justify-content:space-between;padding:15px}.ops-toggle span{grid-gap:4px;display:grid;gap:4px}.ops-toggle small{color:#9bb2bf}.ops-toggle input{-webkit-appearance:none;appearance:none;background:#466070;border-radius:99px;cursor:pointer;height:26px;margin:0;position:relative;transition:background .16s ease;width:45px}.ops-toggle input:after{background:#fff;border-radius:50%;box-shadow:0 2px 5px #00000040;content:"";height:20px;left:3px;position:absolute;top:3px;transition:transform .16s ease;width:20px}.ops-toggle input:checked{background:#19a998}.ops-toggle input:checked:after{transform:translateX(19px)}.ops-toggle input:focus-visible{outline:2px solid #8debe1;outline-offset:3px}.ops-note{color:#9ab2c0;font-size:13px;line-height:1.5;margin:0}.ops-error{color:#ffb5a7}.ops-success{color:#91e8c3}.auth-checking,.ops-loading{color:#afcbd4}@media (max-width:900px){.ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-panels{grid-template-columns:1fr}}@media (max-width:680px){.auth-shell{grid-template-columns:1fr}.auth-showcase{gap:26px;min-height:220px;padding:28px}.auth-showcase__copy h1{font-size:30px}.auth-showcase__copy p{font-size:14px}.auth-showcase__footer{display:none}.auth-card{padding:30px}.ops-app{grid-template-columns:1fr}.ops-sidebar{align-items:center;flex-direction:row;flex-wrap:wrap;padding:15px}.ops-brand{margin-right:auto;padding:0}.ops-nav-label{display:none}.ops-sidebar button{width:auto}.ops-sidebar__bottom{border:0;margin:0;padding:0}.ops-sidebar__bottom span{display:none}.ops-header{align-items:flex-start}.ops-live{display:none}.ops-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.61460d70.css.map*/