:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#e2e2e2;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-color:#202020;justify-content:center;align-items:flex-start;min-height:100vh;padding:20px 12px 48px;display:flex}.page{width:100%;max-width:704px}.ef-shell{background-color:#2c2c2c;border:1px solid #383838;border-radius:20px;padding:14px 16px 16px;box-shadow:0 18px 42px #00000073}.ef-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:2px 6px 12px;display:flex}.ef-header-left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ef-bolt{justify-content:center;align-items:center;display:inline-flex}.ef-title{font-family:var(--font-mono);letter-spacing:.04em;color:#e2e2e2;margin-right:4px;font-size:19px;font-weight:500}.ef-pill{color:#d9d9d9;font-family:var(--font-mono);letter-spacing:.03em;background-color:#232323;border-radius:999px;padding:4px 13px;font-size:13px;font-weight:500}.ef-status-pill{color:#e5e5e5;font-family:var(--font-mono);letter-spacing:.05em;background-color:#213273;border:1px solid #2b459e;border-radius:999px;align-items:center;gap:8px;padding:4px 15px;font-size:13px;font-weight:500;display:inline-flex}.ef-status-dot{background-color:#88cdff;border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #88cdffcc}.ef-status-pill[data-state=importing]{background-color:#4a233b;border-color:#7d3b63}.ef-status-pill[data-state=importing] .ef-status-dot{background-color:#ffaee0;box-shadow:0 0 6px #ffaee0cc}.ef-status-pill[data-state=charging]{background-color:#1f4530;border-color:#367853}.ef-status-pill[data-state=charging] .ef-status-dot{background-color:#57f293;box-shadow:0 0 6px #57f293cc}.ef-status-pill[data-state=discharging]{background-color:#3c315b;border-color:#69569c}.ef-status-pill[data-state=discharging] .ef-status-dot{background-color:#d5cbf9;box-shadow:0 0 6px #d5cbf9cc}.ef-status-pill[data-state=idle]{background-color:#303036;border-color:#484852}.ef-status-pill[data-state=idle] .ef-status-dot{box-shadow:none;background-color:#a0a4b0}.ef-canvas{background-color:#252525;border-radius:16px;padding:18px 39px 26px}.ef-sun-wrap{width:100%;margin-bottom:6px}.ef-sun-svg{width:100%;height:auto;display:block;overflow:visible}.sun-time-label{fill:#9a9ea6;font-family:var(--font-mono);text-anchor:middle;font-size:13px}.sun-badge-text{fill:#f0f0f0;font-family:var(--font-mono);text-anchor:middle;font-size:13px;font-weight:500}.ef-col-headers{grid-template-columns:1fr 64px 1fr;align-items:center;margin:4px 0 10px;display:grid}.ef-col-label{text-align:center;font-family:var(--font-mono);letter-spacing:.16em;color:#9c9ea6;font-size:13px}.ef-flow-layout{grid-template-rows:128px 22px 128px 22px 114px;grid-template-columns:1fr 64px 1fr;display:grid;position:relative}#card-solar{grid-area:1/1}#card-use{grid-area:1/3}#card-buy{grid-area:3/1}#card-sell{grid-area:3/3}#card-battery{grid-area:5/1/auto/4}.ef-connectors{pointer-events:none;grid-area:1/2/5;width:64px;height:300px}.flow-line-base{stroke:#383a44;stroke-width:2px}.flow-line{stroke:#0000;stroke-width:2.2px;stroke-dasharray:6 5;stroke-linecap:round}.flow-line.active-blue{stroke:#74aede;animation:1.2s linear infinite dash-flow}.flow-line.active-green{stroke:#4bc77c;animation:1.2s linear infinite dash-flow}.flow-line.active-pink{stroke:#de92bc;animation:1.2s linear infinite dash-flow}.flow-line.active-purple{stroke:#bfb6e0;animation:1.2s linear infinite dash-flow}@keyframes dash-flow{0%{stroke-dashoffset:22px}to{stroke-dashoffset:0}}.ef-card{border-radius:28px;flex-direction:column;justify-content:space-between;padding:16px 24px 14px;display:flex}.ef-card-title{font-family:var(--font-mono);letter-spacing:.04em;font-size:15px;font-weight:500}.ef-card-value{font-family:var(--font-sans);color:#e4e4e4;letter-spacing:-.01em;margin:2px 0 4px;font-size:34px;font-weight:500;line-height:1.1}.ef-card-value.is-zero{color:#898084}.ef-card-sub{font-family:var(--font-mono);letter-spacing:.03em;font-size:13px}.ef-card-highlight{font-family:var(--font-mono);color:#e4e4e4;letter-spacing:.04em;font-size:13px;font-weight:500}.ef-card-solar{background-color:#443f30;border:1.5px solid #d7bd72}.ef-card-solar .ef-card-title{color:#fbdd84}.ef-card-solar .ef-card-sub{color:#aba38c}.ef-card-use{background-color:#2b4133;border:1.5px solid #4bc77c}.ef-card-use .ef-card-title{color:#57f293}.ef-card-use .ef-card-sub{color:#8eab99}.ef-card-buy{background-color:#42353c;border:1.5px solid #de92bc}.ef-card-buy .ef-card-title{color:#ffaee0}.ef-card-buy .ef-card-sub{color:#a896a0}.ef-card-sell{background-color:#2f3941;border:1.5px solid #74aede}.ef-card-sell .ef-card-title{color:#88cdff}.ef-card-sell .ef-card-sub{color:#93a3b1}.ef-card-battery{background-color:#3f3d45;border:1.5px solid #bfb6e0;border-radius:28px;flex-direction:column;justify-content:space-between;padding:16px 26px 15px;display:flex}.ef-batt-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.ef-batt-title-group{align-items:baseline;gap:18px;display:flex}.ef-batt-label{font-family:var(--font-mono);color:#d5cbf9;letter-spacing:.04em;font-size:15px;font-weight:500}.ef-batt-main{font-family:var(--font-sans);color:#e4e4e4;font-size:22px;font-weight:500}.ef-batt-state{font-family:var(--font-mono);color:#dcd9e6;letter-spacing:.04em;font-size:15px}.ef-batt-bar-track{background-color:#2d2b33;border-radius:999px;width:100%;height:14px;margin:4px 0;overflow:hidden}.ef-batt-bar-fill{background-color:#d5cbf9;border-radius:999px;height:100%;transition:width .4s}.ef-batt-bottom{font-family:var(--font-mono);color:#a8a2b5;letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:13px;display:flex}#val-batt-est{color:#dcd9e6}.ef-subbar{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.ef-subbtn{color:#b5b5be;font-family:var(--font-mono);cursor:pointer;background-color:#2c2c2c;border:1px solid #3d3d3d;border-radius:999px;padding:5px 12px;font-size:12px}.ef-subbtn:hover{color:#e5e5e5;border-color:#666}.ef-details{background-color:#2c2c2c;border:1px solid #383838;border-radius:18px;margin-top:12px;padding:16px}.ef-details-inner{background-color:#252525;border-radius:12px;padding:16px 20px}.ef-details-heading{font-family:var(--font-mono);color:#fbdd84;letter-spacing:.08em;margin-bottom:10px;font-size:13px}.pv-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;display:grid}.pv-box{background-color:#353229;border:1px solid #8a7a4d;border-radius:14px;padding:10px 12px}.pv-box-name{font-family:var(--font-mono);color:#d7bd72;font-size:11px}.pv-box-w{color:#f0f0f0;margin:4px 0 2px;font-size:20px;font-weight:600}.pv-box-vi{font-family:var(--font-mono);color:#b8b2a0;font-size:12px}.bms-summary{font-family:var(--font-mono);color:#d5cbf9;margin-bottom:10px;font-size:12px}.cells-grid{grid-template-columns:repeat(8,1fr);gap:5px;display:grid}.cell-chip{font-family:var(--font-mono);text-align:center;color:#e2dff0;background-color:#34323a;border:1px solid #565164;border-radius:6px;padding:4px 6px;font-size:11px}@media (width<=640px){.ef-canvas{padding:14px 16px 20px}.ef-flow-layout,.ef-col-headers{grid-template-columns:1fr 32px 1fr}.ef-connectors{width:32px}.ef-card{border-radius:22px;padding:14px 16px}.ef-card-value{font-size:26px}.pv-grid{grid-template-columns:repeat(2,1fr)}.cells-grid{grid-template-columns:repeat(4,1fr)}}
