:root{color:#173229;font-synthesis:none;text-rendering:optimizelegibility;--ink:#173229;--muted:#718078;--line:#dde4e0;--panel:#fff;--green:#2c8179;--deep-green:#174f49;--solar:#e9a11e;background:#edf1ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#edf1ef;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.settings-dialog{color:#24443c;background:#f8faf9;border:0;width:min(680px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden}.settings-dialog::backdrop{background:#0c1f197a}.settings-dialog .load-settings{box-sizing:border-box;width:100%}.configuration-status{background:#fff3d6;border-radius:10px;align-items:flex-start;gap:10px;margin:16px 0;padding:14px;font-size:.82rem;display:flex}.configuration-status.applied{background:#e0f2e8}.configuration-status.rejected{background:#fceae8}.configuration-status div{gap:5px;display:grid}.configuration-status small,.field-help{color:#64766d;font-weight:400;line-height:1.55}.load-selector{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.load-selector button{text-align:left;color:#31574c;cursor:pointer;background:#fff;border:1px solid #d5ded9;border-radius:10px;gap:5px;min-width:0;padding:12px 8px;display:grid}.load-selector button[aria-pressed=true]{background:#e8f4ee;border:2px solid #23766a;padding:11px 7px}.load-selector strong{text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.load-selector small{color:#64766d;font-size:.68rem}.rule-section h3{margin:4px 0 6px;font-size:.9rem}.rule-section p,.field-help{margin:0 0 12px;font-size:.76rem}.advanced-settings summary{cursor:pointer;font-size:.85rem;font-weight:650}.advanced-settings[open] summary{margin-bottom:14px}.settings-savebar{background:#f8faf9;border-top:1px solid #d5ded9;gap:12px;padding:16px 0;display:grid;position:sticky;bottom:-28px}.settings-savebar>span{font-size:.82rem;font-weight:650}.settings-savebar small{color:#64766d;margin-top:4px;font-size:.72rem;font-weight:400;display:block}.settings-savebar>div{justify-content:space-between;gap:10px;display:flex}.automation-toggle button.configure-loads{background:#fff;border-radius:9px;width:auto;height:auto;padding:0 14px}.nav-button:disabled{opacity:.5;cursor:default}.firmware-version{color:#64766d;margin:8px 0 0;font-size:.78rem}.configure-loads:disabled{opacity:.5;cursor:not-allowed}.load-settings fieldset:disabled{opacity:.6}@media (width<=480px){.load-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-dialog .load-settings{padding:18px}.settings-savebar{bottom:-18px}.settings-savebar>div{flex-direction:column}}.app-shell{grid-template-columns:244px 1fr;min-height:100vh;display:grid}.sidebar{color:#dbe9e5;background:#163b35;flex-direction:column;height:100vh;padding:26px 18px 20px;display:flex;position:sticky;top:0}.brand{color:#fff;letter-spacing:-.02em;align-items:center;gap:11px;padding:0 10px 28px;font-size:1.14rem;font-weight:750;display:flex}.brand-mark{color:#173b35;background:#f2b43f;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.sidebar nav{gap:5px;display:grid}.nav-item{color:#b9cdc7;border-radius:9px;align-items:center;gap:12px;min-height:44px;padding:0 13px;font-size:.91rem;font-weight:600;text-decoration:none;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background:#ffffff1b}.nav-item.active{box-shadow:inset 3px 0 #efb13a}.nav-button{cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:0}.count{text-align:center;background:#ffffff1f;border-radius:12px;min-width:23px;margin-left:auto;padding:2px 7px;font-size:.76rem}.sidebar-foot{gap:14px;margin-top:auto;display:grid}.cloud-status,.account{align-items:center;gap:10px;font-size:.78rem;display:flex}.cloud-status{color:#74d4aa;background:#0f201d59;border:1px solid #ffffff14;border-radius:10px;padding:12px}.cloud-status div,.account div{gap:2px;display:grid}.cloud-status strong,.account strong{color:#edf8f4;font-size:.79rem}.cloud-status span,.account span{color:#91aaa2;font-size:.7rem}.account{padding:8px}.account svg{color:#8ea59e;margin-left:auto}.account-button{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0}.avatar{background:#2d665d;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:700;display:grid;color:#fff!important}main{min-width:0;padding:30px clamp(22px,3.2vw,52px) 22px}.topbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px;display:flex}.eyebrow{color:#85928c;letter-spacing:.14em;margin:0 0 5px;font-size:.7rem;font-weight:750}h1{color:var(--ink);letter-spacing:-.045em;margin:0;font-size:clamp(1.75rem,2.3vw,2.25rem);line-height:1.1}.top-actions{align-items:center;gap:12px;display:flex}.live{color:#247758;align-items:center;gap:7px;font-size:.78rem;font-weight:700;display:flex}.live>span{background:#35a270;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #35a2701f}.device-select{min-width:202px;color:var(--ink);cursor:pointer;text-align:left;background:#fff;border:1px solid #d8e0dc;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;padding:9px 12px;display:flex;box-shadow:0 2px 8px #2439310a}.device-select span{gap:2px;display:grid}.device-select strong{font-size:.78rem}.device-select small{color:#6d7e76;font-size:.68rem}.device-select select{color:#0000;cursor:pointer;background:0 0;border:0;width:22px;min-height:28px}.secondary-button{color:#24443c;min-height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfd9d4;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:700;display:inline-flex}.add-controller{white-space:nowrap;font-size:.78rem}.live.offline{color:#a05b49}.live.offline>span{background:#c77a64;box-shadow:0 0 0 4px #c77a641f}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.metric-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 22px #1e382e0b}.metric-card{grid-template-columns:auto 1fr;align-items:center;column-gap:10px;min-height:150px;padding:17px 18px;display:grid}.metric-icon{border-radius:10px;place-items:center;width:35px;height:35px;display:grid}.metric-icon.solar{color:#ad7110;background:#fff2d3}.metric-icon.battery{color:#217456;background:#dff3e8}.metric-icon.load{color:#426b83;background:#e3eff4}.metric-icon.grid{color:#655f8e;background:#eceaf6}.metric-label{color:#6d7d75;font-size:.77rem;font-weight:650}.metric-value{color:var(--ink);letter-spacing:-.035em;grid-column:1/-1;margin-top:8px;font-size:1.62rem;font-weight:760}.metric-detail{color:#74837c;grid-column:1/-1;font-size:.7rem}.content-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);gap:14px;margin-bottom:14px;display:grid}.panel{padding:20px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.panel-heading h2{color:var(--ink);letter-spacing:-.015em;margin:0 0 5px;font-size:.98rem}.panel-heading p{color:#7a8982;margin:0;font-size:.72rem}.legend{color:#68766f;align-items:center;gap:7px;font-size:.7rem;display:flex}.solar-dot,.load-dot{border-radius:50%;width:8px;height:8px}.solar-dot{background:#e59a16}.load-dot{background:#2c8179;margin-left:8px}.chart-wrap{height:260px;margin-top:16px}.flow-map{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr 1fr;place-items:center;height:278px;padding:20px 0 0;display:grid;position:relative}.flow-node{z-index:2;text-align:center;color:#507068;background:#fbfcfc;border:1px solid #dce5e0;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:92px;min-height:82px;display:flex;position:relative}.flow-node svg{color:#d99417}.flow-node span{color:#73827b;font-size:.67rem}.flow-node strong{color:var(--ink);font-size:.72rem}.flow-node.hub{color:#fff;background:#1b5a52;border-color:#1b5a52;width:106px;min-height:95px;box-shadow:0 7px 20px #1b5a5233}.flow-node.hub svg,.flow-node.hub span,.flow-node.hub strong{color:#fff}.flow-node.battery-node{grid-area:2/2}.flow-node.battery-node svg{color:#2c8179}.flow-line{z-index:1;background:#b8d2ca;position:absolute;overflow:hidden}.flow-line.horizontal{width:26%;height:2px;top:78px}.flow-line.one{left:20%}.flow-line.two{right:20%}.flow-line.vertical{width:2px;height:28%;top:43%;left:50%}.flow-line i{background:#e8a11d;border-radius:50%;width:7px;height:7px;position:absolute}.flow-line.horizontal i{top:-2px;left:42%}.flow-line.vertical i{top:45%;left:-2px}.consumer-heading{align-items:center}.automation-toggle{align-items:center;gap:12px;display:flex}.automation-toggle>span{text-align:right;display:grid}.automation-toggle strong{color:var(--ink);font-size:.75rem}.automation-toggle small{color:#718179;font-size:.66rem}.automation-toggle button{cursor:pointer;background:#bdc7c2;border:0;border-radius:20px;width:42px;height:24px;padding:3px;transition:all .2s}.automation-toggle button i{background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;display:block;box-shadow:0 1px 3px #0003}.automation-toggle button.on{background:#2b8b68}.automation-toggle button.on i{transform:translate(18px)}.consumer-list{border-top:1px solid #e3e8e5;margin-top:17px}.consumer-row{border-bottom:1px solid #edf0ee;grid-template-columns:36px minmax(150px,1.2fr) minmax(100px,.7fr) minmax(130px,1fr) 54px;align-items:center;gap:12px;min-height:66px;display:grid}.consumer-row:last-child{border-bottom:0}.consumer-number{color:#2d665b;background:#e5f0ec;border-radius:8px;place-items:center;width:27px;height:27px;font-size:.72rem;font-weight:750;display:grid}.consumer-name,.consumer-power{gap:3px;display:grid}.consumer-name strong,.consumer-power strong{color:var(--ink);font-size:.77rem}.consumer-name span,.consumer-power span{color:#84918b;font-size:.65rem}.reason{color:#6c7b74;align-items:center;gap:7px;font-size:.7rem;display:flex}.reason span{background:#aeb8b3;border-radius:50%;width:7px;height:7px}.reason.green span{background:#3a9a6f}.reason.amber span{background:#dfa329}.state-pill{text-align:center;color:#79857f;background:#eef1f0;border-radius:20px;justify-self:end;width:45px;padding:5px 0;font-size:.65rem;font-weight:800}.state-pill.running{color:#1d7450;background:#dff2e8}footer{color:#7a8881;justify-content:center;align-items:center;gap:7px;min-height:48px;font-size:.68rem;display:flex}.empty-devices{text-align:center;border:1px solid var(--line);background:#fff;border-radius:18px;max-width:600px;margin:clamp(50px,10vh,110px) auto;padding:44px;box-shadow:0 12px 40px #1c312812}.empty-device-icon{color:#286f62;background:#e5f3ef;border-radius:18px;place-items:center;width:64px;height:64px;margin:0 auto 20px;display:grid}.empty-devices h2{color:var(--ink);margin:0;font-size:1.45rem}.empty-devices>p:not(.eyebrow){color:#6f7d77;max-width:440px;margin:10px auto 24px;line-height:1.6}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c1f1b85;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.onboarding-modal{background:#fff;border-radius:18px;width:min(620px,100%);max-height:calc(100vh - 40px);padding:26px;overflow:auto;box-shadow:0 28px 90px #05191347}.wizard-steps{color:#96a19c;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:10px;margin:22px 0 26px;font-size:.76rem;font-weight:700;display:grid}.wizard-steps span{white-space:nowrap;align-items:center;gap:5px;display:flex}.wizard-steps i{background:#dce4e0;height:1px}.wizard-steps .active{color:#2c7466}.wizard-steps .done{color:#247758}.onboarding-form{gap:17px;display:grid}.onboarding-form>p{color:#687770;margin:0 0 2px;line-height:1.55}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.device-manager{gap:8px;margin-bottom:20px;display:grid}.managed-device{background:#f8faf9;border:1px solid #d9e1dd;border-radius:10px;grid-template-columns:1fr auto;align-items:stretch;display:grid;overflow:hidden}.managed-device-main{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:18px;padding:12px 14px;display:flex}.managed-device-main span{gap:3px;display:grid}.managed-device-main small{color:#7b8982}.managed-device-main em{color:#9a674c;font-size:.7rem;font-style:normal;font-weight:700}.managed-device-main em.online{color:#247758}.delete-device{color:#a34d48;cursor:pointer;background:#fff;border:0;border-left:1px solid #e1e6e3;width:46px}.delete-device:disabled{opacity:.5}.claim-step ol{color:#52635c;margin:20px 0;padding-left:23px;line-height:1.75}.notice{color:#705718;background:#fff8df;border:1px solid #ead59a;border-radius:10px;gap:5px;padding:13px 15px;display:grid}.notice span{font-size:.8rem;line-height:1.45}.credential{background:#f8faf9;border:1px solid #d9e1dd;border-radius:10px;align-items:center;gap:12px;margin-top:10px;padding:11px 12px;display:flex}.credential>span{flex:1;gap:4px;min-width:0;display:grid}.credential small{color:#76857e;font-size:.7rem;font-weight:700}.credential code{color:#173b35;font-size:.78rem;overflow:auto}.credential button{color:#286f62;cursor:pointer;background:#e4f1ed;border:0;border-radius:7px;align-items:center;gap:5px;padding:8px 9px;font-weight:700;display:inline-flex}.expiry{color:#7a8781;margin:11px 0 18px;font-size:.74rem}.waiting{color:#42635a;background:#edf5f2;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:13px;font-size:.82rem;font-weight:700;display:flex}.waiting svg{animation:1.2s linear infinite spin}.connected-state{text-align:center;padding:12px 10px 8px}.connected-state>span{color:#fff;background:#2e916c;border-radius:50%;place-items:center;width:62px;height:62px;margin:0 auto 15px;display:grid}.connected-state h3{color:var(--ink);margin:0;font-size:1.3rem}.connected-state p{color:#687770;max-width:440px;margin:9px auto 22px;line-height:1.55}@keyframes spin{to{transform:rotate(360deg)}}.drawer-backdrop{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#091f196b;justify-content:flex-end;display:flex;position:fixed;inset:0}.config-drawer{background:#f8faf9;width:min(520px,100%);height:100%;padding:28px;overflow-y:auto;box-shadow:-20px 0 50px #091f192e}.drawer-title{justify-content:space-between;align-items:flex-start;display:flex}.drawer-title h2{color:var(--ink);margin:0;font-size:1.5rem}.icon-button{border:1px solid var(--line);width:38px;height:38px;color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;place-items:center;display:grid}.drawer-help{color:#4f685f;background:#e9f3ef;border-left:3px solid #2c8179;padding:13px 15px;font-size:.78rem;line-height:1.55}.config-drawer form{gap:16px;display:grid}.config-drawer fieldset{border:1px solid var(--line);background:#fff;border-radius:13px;gap:14px;margin:0;padding:18px;display:grid}.config-drawer legend{color:var(--ink);padding:0 7px;font-size:.8rem;font-weight:750}.field{color:#5f7068;gap:7px;font-size:.74rem;font-weight:650;display:grid}.field input{width:100%;min-height:42px;color:var(--ink);background:#fcfdfc;border:1px solid #d5ded9;border-radius:8px;outline:none;padding:9px 11px}.field input:focus{border-color:#2c8179;box-shadow:0 0 0 3px #2c81791f}.field-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.input-with-unit{position:relative}.input-with-unit input{padding-right:62px}.input-with-unit small{color:#87948e;font-weight:500;position:absolute;top:13px;right:11px}.checkbox-field{grid-template-columns:auto 1fr;align-items:center}.checkbox-field input{accent-color:#2c8179;width:18px;min-height:18px}.checkbox-field span{gap:2px;display:grid}.checkbox-field strong{color:var(--ink)}.checkbox-field small{color:#7b8982;font-weight:500}.drawer-actions{justify-content:space-between;align-items:center;min-height:52px;display:flex}.drawer-actions>span{color:#397363;font-size:.72rem}.primary-button{color:#fff;cursor:pointer;background:#1f695e;border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-size:.78rem;font-weight:720;display:inline-flex;box-shadow:0 5px 14px #1f695e2e}.primary-button:hover{background:#18564e}.primary-button:disabled{opacity:.6;cursor:wait}.app-loading{background:#163b35;place-items:center;min-height:100vh;display:grid}.auth-page{background:#fff;grid-template-columns:minmax(360px,.9fr) minmax(440px,1.1fr);min-height:100vh;padding:0;display:grid}.auth-story{color:#dceae5;background:radial-gradient(circle at 80% 15%,#efb13a2e,#0000 26%),linear-gradient(145deg,#194940,#102f2a);flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(30px,5vw,72px);display:flex}.auth-brand{padding:0}.auth-story .eyebrow{color:#f0b950}.auth-story h1{color:#fff;margin-bottom:22px;font-size:clamp(2.4rem,4.4vw,4.4rem);line-height:.98}.auth-story>div>p:last-child{color:#a9c1ba;max-width:590px;font-size:.94rem;line-height:1.7}.security-note{background:#ffffff0e;border:1px solid #ffffff1a;border-radius:12px;align-items:flex-start;gap:13px;max-width:540px;padding:16px;display:flex}.security-note svg{color:#61c79f;flex:none}.security-note span{gap:5px;display:grid}.security-note strong{color:#fff;font-size:.79rem}.security-note small{color:#9fb8b1;line-height:1.5}.auth-form-wrap{background:#f7f9f8;place-items:center;padding:32px;display:grid}.auth-form{border:1px solid var(--line);background:#fff;border-radius:16px;gap:18px;width:min(410px,100%);padding:34px;display:grid;box-shadow:0 18px 55px #1d382f14}.auth-form h2{color:var(--ink);letter-spacing:-.035em;margin:2px 0 8px;font-size:1.7rem}.auth-form>div:first-child>p:last-child{color:#73827a;margin:0;font-size:.79rem;line-height:1.5}.auth-submit{width:100%}.text-button,.demo-button{color:#296b61;cursor:pointer;background:0 0;border:0;font-size:.73rem;font-weight:680}.demo-button{color:#536860;background:#fafcfb;border:1px solid #d7e0dc;border-radius:9px;min-height:42px}.or{text-align:center;color:#99a49f;height:16px;font-size:.7rem;position:relative}.or:before{content:"";background:#e4e9e6;height:1px;position:absolute;top:8px;left:0;right:0}.or span{background:#fff;padding:0 10px;position:relative}.form-error{color:#9b342f;background:#fceae8;border-radius:8px;padding:10px 12px;font-size:.72rem}@media (width<=1050px){.app-shell{grid-template-columns:76px 1fr}.sidebar{padding-inline:11px}.brand{justify-content:center;padding-inline:0}.brand>span:last-child,.nav-item{font-size:0}.nav-item{justify-content:center;padding:0}.nav-item svg{width:20px;height:20px}.cloud-status div,.account div,.account svg{display:none}.cloud-status,.account{justify-content:center;padding:8px}.metrics{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}}@media (width<=680px){.app-shell{display:block}.sidebar{flex-direction:row;align-items:center;width:100%;height:auto;padding:12px 16px;position:static}.brand{padding:0}.sidebar nav{margin-left:auto;display:flex}.nav-item{width:42px}.sidebar-foot{display:none}main{padding:22px 14px}.topbar{align-items:flex-start}.live{display:none}.device-select{min-width:auto}.device-select small{display:none}.metrics{grid-template-columns:1fr 1fr}.metric-card{min-height:138px;padding:14px}.consumer-row{grid-template-columns:34px 1fr 52px}.consumer-power,.reason{display:none}.consumer-heading{align-items:flex-start}.automation-toggle>span{display:none}footer{text-align:center;flex-wrap:wrap}}@media (width<=860px){.auth-page{grid-template-columns:1fr}.auth-story{gap:42px;min-height:360px;padding:28px}.security-note{display:none}.auth-form-wrap{padding:22px}}@media (width<=520px){.onboarding-modal{padding:20px}.wizard-steps{grid-template-columns:1fr;gap:7px}.wizard-steps i{display:none}.credential{flex-direction:column;align-items:stretch}.credential button{align-self:flex-end}.add-controller{width:40px;padding:0;font-size:0}.add-controller svg{margin:0}}
