:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#243c37;background:#f3f5f3;font-size:15px;line-height:1.5;font-synthesis:none;--green:#205e4c;--muted:#61736b;--line:#dce4df}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1180px;margin:auto;padding:18px 32px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-size:23px;font-weight:800;text-decoration:none;color:inherit;letter-spacing:-1px}.brand span{font-size:12px;font-weight:450;margin-left:14px;color:var(--muted);letter-spacing:0}.badge{background:#e1ece5;padding:6px 10px;border-radius:7px;font-size:11px;font-weight:650;white-space:nowrap}nav,.steps,.actions{display:flex;gap:8px;flex-wrap:wrap}nav{margin:0 0 24px}button{font:inherit;font-size:13px;font-weight:550;min-height:42px;padding:9px 15px;background:#fff;border:1px solid #cbd8d0;border-radius:9px;cursor:pointer;color:inherit;transition:background .18s,box-shadow .18s,transform .18s}button:hover:not(:disabled){background:#edf3ef;box-shadow:0 3px 10px #18392c0c}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.48;cursor:default}button[aria-current=page],button[aria-current=step],.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover:not(:disabled){background:#184a3c}.stop{color:#a34839;border-color:#dfc4bc}h1{font-size:28px;line-height:1.2;letter-spacing:-.8px;margin:0 0 6px}h2{font-size:15px;margin:0 0 12px;font-weight:650}p{color:var(--muted);margin:8px 0;font-size:13px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#557c6c;margin:0 0 12px}.dashboard-heading,.setup-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:6px 0 20px}.dashboard-heading p{margin:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cards article{min-width:0}.cards strong{font-size:32px;line-height:1.2;font-weight:650;letter-spacing:-1px}.cards article:nth-child(2) strong{font-size:24px}.cards h2{color:var(--muted);font-size:12px}.cards p{font-size:12px}.cards button{min-height:34px;padding:6px 10px;font-size:12px;margin-top:6px}article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;margin-bottom:14px;box-shadow:0 2px 6px #17372a03}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:11px;color:var(--muted)}.section-heading h2{margin:0}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0}.control-panel .fields{grid-template-columns:2fr auto 1fr;align-items:end;margin:16px 0}.control-panel .fields button{margin-bottom:1px}.control-panel .actions{margin-top:12px}.control-panel p{font-size:12px}.control-notes{margin-top:10px}label{display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:7px;min-width:0}input,select{font:inherit;font-weight:400;width:100%;border:1px solid #cbd8d0;border-radius:8px;padding:11px;min-width:0;background:#fafcfb;color:inherit;min-height:44px}input:focus,select:focus,button:focus-visible,summary:focus-visible{outline:3px solid #86b9a4;outline-offset:3px}fieldset{border:1px solid var(--line);border-radius:9px;padding:18px}details summary{cursor:pointer;font-size:13px;font-weight:600;min-height:28px;padding:4px 0}details[open] summary{margin-bottom:12px}details p{overflow-wrap:anywhere}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}td,th{text-align:left;padding:11px;border-bottom:1px solid #edf1ed}th{color:var(--muted);font-size:11px}svg{width:100%;height:auto;margin:14px 0 0}.solar-line,.load-line{fill:none;stroke-width:2.5}.solar-line{stroke:#438b5d}.load-line{stroke:#517bc4}.chart-label{fill:var(--muted);font-size:12px}.chart-key{display:flex;gap:16px;font-size:11px;color:var(--muted);margin:0 0 14px}.chart-key span:first-child{color:#438b5d}.chart-key span:nth-child(2){color:#517bc4}#message:empty,#job-progress:empty{display:none}#message{background:#e6efe9;padding:12px;border-radius:8px}#job-progress{font-size:12px;margin:8px 0 14px}footer{font-size:11px;color:#798980;padding-top:12px;padding-bottom:24px}[hidden]{display:none!important}input[type=checkbox]{width:18px;min-height:18px;align-self:flex-start;accent-color:var(--green)}#verification label{display:flex;flex-direction:row;align-items:flex-start;gap:12px;margin:16px 0;font-weight:450}#verification input{flex:none;margin:2px 0 0}pre{overflow:auto;background:#edf2ee;padding:16px;border-radius:8px}
/* Setup is deliberately more expressive than the everyday dashboard. */
.setup-heading{margin:18px 0 22px}.setup-heading h1{font-size:34px;letter-spacing:-1.1px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:#e5ebe7;padding:6px;border-radius:13px;margin:0 0 22px}.steps button{background:transparent;border-color:transparent;font-size:12px}.steps button[aria-current=step]{background:white;color:var(--green);box-shadow:0 3px 10px #163e2412}.steps button[data-complete=true]{color:#34735a}.step{animation:step-enter .36s ease both}.welcome-scene{position:relative;display:grid;grid-template-columns:1.1fr 1fr;min-height:440px;padding:42px;overflow:hidden;background:linear-gradient(135deg,#ffffff 8%,#f1f7f0 65%,#e3f0e8);border-color:#d3e4d8;box-shadow:0 18px 45px -25px #23573b40,inset 0 1px 0 #fff}.welcome-copy{position:relative;z-index:2}.pill{display:inline-block;font-size:9px;letter-spacing:1.4px;font-weight:700;color:#4e7965;margin-bottom:22px}.welcome-copy h2{font-size:48px;line-height:1.05;letter-spacing:-2px;margin:0 0 18px;color:#194d3c}.welcome-copy>p{font-size:15px;max-width:340px}.welcome-points{padding:0;list-style:none;margin:26px 0;max-width:350px}.welcome-points li{display:flex;gap:13px;align-items:flex-start;margin:16px 0;font-size:13px;color:#4c6659}.welcome-points b{font-size:10px;padding:5px 7px;border:1px solid #cddfd1;border-radius:7px;color:#42725a;font-variant-numeric:tabular-nums}.welcome-copy .welcome-note{font-size:12px;max-width:330px;color:#718477}.energy-scene{position:relative;align-self:center;height:340px;perspective:900px}.scene-halo{position:absolute;inset:20px -30px;background:radial-gradient(ellipse,#8fceb052,transparent 66%);filter:blur(15px)}.energy-platform{position:absolute;left:12%;top:33%;width:270px;height:190px;background:linear-gradient(140deg,#fcfffc,#c5dfd1);border:1px solid #fff;border-radius:25px;transform:rotateX(56deg) rotateZ(-28deg);transform-style:preserve-3d;box-shadow:-12px 16px 0 #9cbeac, -13px 17px 0 #7da48e, -30px 45px 35px #315d4333;animation:platform-float 7s ease-in-out infinite}.platform-grid{position:absolute;inset:12px;border-radius:15px;background-image:linear-gradient(#6eaa8515 1px,transparent 1px),linear-gradient(90deg,#6eaa8515 1px,transparent 1px);background-size:22px 22px}.battery-object{position:absolute;right:28px;top:12px;width:80px;height:130px;border-radius:13px;background:linear-gradient(120deg,#fff,#e4f2e9);transform:translateZ(65px) rotateX(-90deg);transform-origin:bottom;box-shadow:9px 4px 0 #b3cfbf,10px 5px 0 #8aaf99,0 0 0 1px #c2d8ca;display:flex;flex-direction:column;padding:17px 13px;gap:7px}.battery-object:before{content:"";position:absolute;top:-5px;left:25px;width:30px;height:5px;background:#a0bcab;border-radius:3px 3px 0 0}.battery-object span{height:13px;border-radius:3px;background:linear-gradient(90deg,#37956c,#84c9a0);box-shadow:inset 0 1px 1px #ffffff55}.battery-object span:first-child{opacity:.3}.battery-object em{font-style:normal;font-size:9px;text-align:center;color:#387154;letter-spacing:2px}.solar-object{position:absolute;left:23px;top:45px;width:110px;height:92px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#c5d9dd;padding:5px;border-radius:5px;transform:translateZ(18px) rotateX(-16deg);box-shadow:0 5px 0 #80a5ab,0 10px 14px #29584826}.solar-object i{background:linear-gradient(130deg,#3f6c75,#173c50);border:1px solid #9abec666}.energy-path{position:absolute;left:131px;top:112px;width:60px;height:3px;background:#61a780;box-shadow:0 0 10px #8fe8aa;animation:energy-glow 3s ease-in-out infinite}.scene-caption{position:absolute;bottom:5px;left:0;right:0;text-align:center;font-size:10px;color:#51705c;letter-spacing:.4px}.status-dot{display:inline-block;width:6px;height:6px;background:#58a87c;border-radius:50%;margin-right:6px;box-shadow:0 0 0 4px #73bf9215}.setup-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 24px}.setup-navigation span{font-size:12px;color:var(--muted)}.setup-navigation .primary{box-shadow:0 5px 12px #205e4c20}.verification-card{background:#f8faf8}.page>h1{margin:12px 0 24px}
@keyframes step-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes platform-float{0%,100%{transform:rotateX(56deg) rotateZ(-28deg) translateZ(0)}50%{transform:rotateX(56deg) rotateZ(-26deg) translateZ(12px)}}@keyframes energy-glow{0%,100%{opacity:.4}50%{opacity:1}}
@media(max-width:760px){header,main,footer{padding:14px 16px}.brand span{display:none}nav{gap:4px;margin-bottom:20px}nav button{flex:1;padding:9px 8px;font-size:12px}.dashboard-heading{align-items:flex-start;margin:2px 0 16px}.dashboard-heading h1{font-size:23px}.dashboard-heading .actions{justify-content:flex-end;max-width:145px}.dashboard-heading .actions button{min-height:36px;font-size:11px;padding:7px 10px}.cards{grid-template-columns:1fr 1fr;gap:10px}.cards article{padding:15px;margin-bottom:10px}.cards article:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 12px}.cards article:last-child h2{margin:0}.cards article:last-child strong{font-size:25px;grid-column:2;grid-row:1/3}.cards article:last-child p{margin:3px 0 0;font-size:10px}.cards strong{font-size:30px}.cards article:nth-child(2) strong{font-size:20px;overflow-wrap:anywhere}.cards p{font-size:11px}.fields{grid-template-columns:1fr 1fr;gap:15px}.control-panel .fields{grid-template-columns:1fr auto;gap:12px}.control-panel .fields label:last-child{grid-column:1/-1}.control-panel .actions button{flex:1;padding:9px 8px;font-size:12px}.control-panel .actions button:last-child{flex-basis:100%}.section-heading>span{display:none}article{padding:17px}.setup-heading h1{font-size:26px}.setup-heading .badge{font-size:10px}.steps{gap:2px;padding:4px}.steps button{padding:8px 4px;font-size:10px}.welcome-scene{display:flex;flex-direction:column-reverse;padding:25px;gap:16px}.energy-scene{height:220px;width:100%;max-width:330px}.energy-platform{left:12%;top:18%;transform:rotateX(56deg) rotateZ(-28deg) scale(.8);animation:mobile-float 7s ease-in-out infinite}.scene-caption{bottom:0}.welcome-copy h2{font-size:40px;letter-spacing:-1.5px}.pill{font-size:8px;margin-bottom:15px}.welcome-points{margin:20px 0}.welcome-copy>p{font-size:14px}.setup-navigation{position:sticky;bottom:0;background:#f3f5f3ed;backdrop-filter:blur(12px);z-index:3;border-top:1px solid var(--line);padding:14px 0}.setup-navigation span{font-size:10px;text-align:center}.setup-navigation button{white-space:nowrap}.chart-key{font-size:10px}.badge{font-size:10px}}
@media(max-width:400px){.fields{grid-template-columns:1fr}.setup-navigation span{display:none}.dashboard-heading .actions{max-width:125px}.welcome-scene{padding:22px}}
@keyframes mobile-float{0%,100%{transform:rotateX(56deg) rotateZ(-28deg) scale(.8) translateZ(0)}50%{transform:rotateX(56deg) rotateZ(-26deg) scale(.8) translateZ(10px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
button[aria-current=page]:hover:not(:disabled){background:#184a3c;color:#fff}
.steps button[aria-current=step]:hover:not(:disabled){background:#fff;color:var(--green)}
@media(max-width:760px){.energy-scene{height:280px}.energy-platform{top:45%}}
.session-controls{display:flex;align-items:center;gap:10px}.session-controls>span:first-child{font-size:11px;color:var(--muted)}.session-controls button{min-height:32px;padding:5px 9px;font-size:11px}.login-shell{padding-top:55px}.login-actions{display:flex;flex-direction:column;gap:12px;max-width:300px;margin:28px 0}.google-login{display:block;text-align:center;padding:12px;border:1px solid #cbd8d0;border-radius:9px;color:#243c37;background:#fff;font-weight:600;text-decoration:none;font-size:13px}.login-shell h1{font-size:48px;line-height:1.05;letter-spacing:-2px;color:#194d3c}.login-shell .energy-scene{pointer-events:none}@media(max-width:760px){.session-controls>span:first-child{display:none}.login-shell{padding-top:24px}.login-shell h1{font-size:38px}}
