:root{color-scheme:dark;--bg:#09121e;--panel:#101e2b;--panel2:#142433;--border:#2a3a47;--text:#eff7f7;--sub:#9cadb6;--mint:#b9edcb;--aqua:#80dad8;--gold:#e6c98c;--red:#ffa89b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}button,input{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}[hidden]{display:none!important}.ambient{position:fixed;pointer-events:none;filter:blur(70px);opacity:.19;z-index:-1}.ambient-a{top:0;left:8%;width:470px;height:400px;background:#3a877e;border-radius:50%}.ambient-b{bottom:0;right:0;width:300px;height:300px;background:#335881;border-radius:50%}
.login-layout{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,440px);background:linear-gradient(155deg,#182c37,#10202d);border:1px solid #33505a;box-shadow:0 30px 90px #0007;border-radius:28px;padding:48px}.brandmark{width:55px;height:55px;display:grid;place-items:center;border-radius:15px;background:var(--mint);position:relative;margin-bottom:27px}.brandmark .roof{width:20px;height:20px;border-left:4px solid #153b39;border-top:4px solid #153b39;transform:translateY(6px) rotate(45deg)}.home-dot{width:6px;height:8px;background:#153b39;position:absolute;bottom:12px;left:24px}.eyebrow{font-weight:750;font-size:10px;letter-spacing:2px;color:var(--mint)}.login-card h1{font-size:36px;letter-spacing:-1.5px;margin:12px 0 9px}.muted{color:var(--sub);line-height:1.7;font-size:14px}.login-card form{margin:30px 0}.login-card label{font-size:13px;display:block;margin-bottom:10px;color:#dee8e7}.login-card input{width:100%;border:1px solid #4c626d;border-radius:11px;background:#0b1a25;padding:15px 14px;color:#fff;outline:0}.login-card input:focus{border-color:var(--mint);box-shadow:0 0 0 3px #b9edcb1b}.main-button{display:flex;width:100%;justify-content:space-between;padding:15px 17px;margin-top:15px;background:var(--mint);border:0;border-radius:11px;color:#142c28;font-weight:760}.main-button:hover{filter:brightness(1.08)}.error{color:var(--red);font-size:13px;min-height:16px}.login-foot{color:#8ca6a9;font-size:11px;border-top:1px solid #34505a;padding-top:22px}.lock-indicator{color:var(--mint);margin-right:7px}
.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border);padding:33px 21px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;background:#0a1722ee}.side-brand{display:flex;gap:13px;align-items:center}.brandmark.mini{width:39px;height:39px;margin:0;border-radius:11px;transform:scale(.92)}.brandmark.mini .roof{transform:translateY(5px) rotate(45deg) scale(.8)}.brandmark.mini .home-dot{left:17px;bottom:9px}.side-brand strong{display:block;letter-spacing:1.5px;font-size:13px}.side-brand small{display:block;color:var(--sub);font-size:10px;margin-top:5px}.side-title{color:#627d87;font-size:10px;letter-spacing:1.5px;font-weight:700;margin:65px 12px 15px}.side-nav{display:grid;gap:6px}.side-nav a{display:flex;align-items:center;gap:17px;padding:14px;border-radius:11px;color:#aabac3;font-size:13px}.side-nav a span{font-size:18px;width:18px;text-align:center}.side-nav a.active,.side-nav a:hover{color:var(--mint);background:#1c353a}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--border);padding-top:20px}.status-pill{font-size:12px;color:var(--sub);display:flex;align-items:center;gap:9px}.live-dot{height:8px;width:8px;border-radius:50%;background:#87d7ae;box-shadow:0 0 10px #87d7ae70}.logout{margin-top:18px;background:none;border:0;color:var(--sub);padding:8px 0;font-size:12px}.logout:hover{color:white}
.main-content{min-width:0;width:100%;max-width:1540px;margin:auto;padding:0 46px}.topbar{height:91px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.breadcrumb{color:#879ca7;font-size:10px;letter-spacing:1.7px;font-weight:700}.breadcrumb span{color:#536e7c;margin:0 12px}.top-right{display:flex;gap:25px;align-items:center;color:#bbced4;font-size:13px}.read-badge{color:var(--mint);background:#1a3938;border:1px solid #385d57;padding:9px 11px;border-radius:7px;font-size:10px;letter-spacing:1.2px;font-weight:800}.heading{display:flex;justify-content:space-between;gap:15px;align-items:end;margin:47px 0 25px}.heading h1{font-size:clamp(26px,3vw,41px);font-weight:650;letter-spacing:-1.8px;margin:10px 0}.heading p{color:var(--sub);font-size:13px;line-height:1.6}.period{color:var(--mint)}.date-chip{border:1px solid var(--border);border-radius:10px;padding:13px 15px;font-size:12px;color:var(--sub);white-space:nowrap}.info-bar{background:#173136;border:1px solid #2d5350;color:#b6e5df;border-radius:12px;padding:14px 18px;font-size:12px;margin-bottom:22px;line-height:1.6}.info-bar.ok{background:#142730;border-color:#2b404b;color:#adbec7}.section{margin-top:36px;scroll-margin-top:20px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:16px}.section-top h2{font-size:21px;letter-spacing:-.6px;font-weight:650;margin:7px 0}.section-note{font-size:11px;color:#829ba8}.metrics{display:grid;gap:14px}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics.two{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics.one{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card,.panel{border:1px solid var(--border);border-radius:17px;background:linear-gradient(145deg,#142432,#101d29)}.metric-card{padding:22px;min-width:0;min-height:145px}.metric-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#a7bac3}.metric-icon{background:#1f3b40;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--mint);font-size:18px}.metric-value{font-weight:650;font-size:clamp(23px,2.6vw,35px);letter-spacing:-1.2px;margin:20px 0 5px;font-variant-numeric:tabular-nums}.metric-value small{font-size:13px;font-weight:400;color:#a7bac3;letter-spacing:0}.metric-foot{font-size:10px;color:#829ba8}.panel{padding:26px;margin-top:15px}.panel-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}.panel-heading h3{font-size:16px;letter-spacing:-.2px;margin:0 0 6px;font-weight:650}.panel-heading p{color:#8fa2ad;font-size:11px;margin:0}.chart-filters{display:flex;gap:5px;background:#0b1925;border:1px solid #243c49;padding:4px;border-radius:8px}.time-btn{background:transparent;color:#96acb6;font-size:11px;border:0;border-radius:6px;padding:7px 10px}.time-btn.active{color:#16342f;background:var(--mint);font-weight:800}.chart-container{height:205px;margin:20px 0 8px;position:relative}.chart-empty{display:grid;place-items:center;height:100%;font-size:12px;color:#77939e;text-align:center}.chart-container svg{width:100%;height:100%;overflow:visible}.chart-legend{display:flex;gap:25px;justify-content:center;font-size:11px;color:var(--sub)}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.legend-solar{background:var(--mint)}.legend-load{background:var(--gold)}.split-sections{display:grid;grid-template-columns:1fr 1fr;gap:23px}.split-sections .metrics.one{grid-template-columns:repeat(2,minmax(0,1fr))}.split-sections .metric-card{padding:18px;min-height:132px}.split-sections .metric-value{font-size:clamp(19px,2.1vw,29px)}.utilities{margin-top:40px}.footer{display:flex;justify-content:space-between;gap:14px;color:#66818d;font-size:10px;border-top:1px solid var(--border);padding:25px 0 35px;margin-top:48px;letter-spacing:.3px}
@media(max-width:1100px){.main-content{padding:0 24px}.sidebar{width:198px}.split-sections{grid-template-columns:1fr}.metric-card{padding:17px}}
@media(max-width:700px){.sidebar{position:fixed;top:auto;bottom:0;left:0;z-index:4;min-height:0;height:62px;width:100%;padding:8px 12px;display:block;border-right:0;border-top:1px solid var(--border);background:#091722}.sidebar .side-brand,.sidebar .side-title,.sidebar .sidebar-bottom{display:none}.side-nav{grid-template-columns:repeat(4,1fr);gap:4px}.side-nav a{display:flex;flex-direction:column;gap:2px;padding:5px 0;font-size:10px}.side-nav a span{font-size:18px}.main-content{padding:0 17px 75px}.topbar{height:65px}.top-right{gap:12px}.top-right #clock{display:none}.heading{margin:35px 0 18px;align-items:start}.date-chip{display:none}.heading h1{font-size:30px}.heading p{font-size:12px}.metrics.three{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics.three .metric-card:first-child{grid-column:span 2}.metric-value{font-size:29px}.panel{padding:17px}.panel-heading{align-items:start;flex-direction:column}.split-sections .metric-card{min-height:125px}.footer{flex-direction:column}.login-card{padding:32px 25px}}
@media(max-width:370px){.metrics.one,.split-sections .metrics.one{grid-template-columns:1fr}.heading h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Best of Both v2: genuine, exclusive tab views instead of section-scroll navigation */
.side-nav .nav-btn{display:flex;align-items:center;gap:17px;width:100%;padding:14px;text-align:left;border:0;border-radius:11px;background:transparent;color:#aabac3;font-size:13px;line-height:1.4}
.side-nav .nav-btn span{font-size:18px;width:18px;text-align:center;flex-shrink:0}
.side-nav .nav-btn.active,.side-nav .nav-btn:hover{color:var(--mint);background:#1c353a}
.side-nav .nav-btn:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.page-view{min-height:min(420px,50vh)}
.utility-group{margin-top:18px}
.utility-group+.utility-group{margin-top:32px}
.utility-group h3{font-size:17px;letter-spacing:-.3px;font-weight:650;margin:0 0 6px}
.group-description{font-size:12px;color:var(--sub);margin:0 0 15px;line-height:1.6}
.security-placeholder{margin-top:0;min-height:270px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 22px}
.security-symbol{width:52px;height:52px;border:1px solid #3a5e62;border-radius:16px;display:grid;place-items:center;background:#1f3b40;color:var(--mint);font-size:30px;margin-bottom:15px}
.security-placeholder h3{font-size:19px;margin:0 0 10px;letter-spacing:-.4px}
.security-placeholder p{font-size:13px;line-height:1.7;color:var(--sub);margin:0;max-width:490px}
.security-placeholder .security-disclaimer{margin-top:17px;color:#87afa9;font-size:11px}
@media(max-width:700px){
  .sidebar{padding-bottom:max(8px,env(safe-area-inset-bottom));height:calc(62px + env(safe-area-inset-bottom))}
  .side-nav .nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:5px 0;font-size:10px;min-height:46px}
  .side-nav .nav-btn span{font-size:18px}
  .main-content{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .page-view{min-height:280px}
}

/* Best of Both v3: energy cards in a stable 2×2 grid and dual-axis history */
.metrics.energy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.chart-container{height:255px;overflow:hidden}
.chart-container svg{display:block;width:100%;height:100%}
.chart-legend{flex-wrap:wrap;row-gap:11px}
.legend-battery-power{background:#d3acdf}
.legend-battery-soc{background:var(--aqua)}
@media(max-width:700px){.metrics.energy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics.energy-grid .metric-card{grid-column:auto;min-height:132px}.metrics.energy-grid .metric-card .metric-value{font-size:clamp(20px,5.3vw,29px)}.chart-container{height:245px}.chart-legend{justify-content:space-evenly;column-gap:16px}.footer{line-height:1.8}}
@media(max-width:370px){.metrics.energy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics.energy-grid .metric-card{padding:13px}.metrics.energy-grid .metric-card .metric-value{font-size:20px}.metrics.energy-grid .metric-card .metric-label{font-size:11px}.metrics.energy-grid .metric-card .metric-icon{width:26px;height:26px}}
