*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;display:block}button{font:inherit;cursor:pointer;background:0 0;border:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand-navy:#18235a;--brand-blue:#12158c;--brand-light:#eee;--brand-text:#1a1f36;--brand-muted:#6b7280;--solar-yellow:#ffc93c;--solar-orange:#ff8c42;--energy-green:#2ec27e;--grid-red:#e74c3c;--battery-violet:#8e5cff;--bg-page:#0e1330;--bg-card:#ffffff0f;--bg-card-strong:#ffffff1a;--card-border:#ffffff1a;--card-shadow:0 1.2vh 3vh #00000059;--font-body:"Source Sans 3", "Source Sans Pro", system-ui, sans-serif;--font-display:"Mulish", "Muli", "Source Sans 3", system-ui, sans-serif}html,body{background:var(--bg-page);color:#fff;font-family:var(--font-body);-webkit-user-select:none;user-select:none;cursor:none;overflow:hidden}body{background:radial-gradient(at top,#1b2570 0%,#0e1330 55%,#060916 100%)}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;font-weight:700}.tabular{font-variant-numeric:tabular-nums}.uppercase{text-transform:uppercase;letter-spacing:.12em}.card{background:var(--bg-card);border:.1vh solid var(--card-border);box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(8px);border-radius:2vh;padding:2.2vh 2.5vh;position:relative;overflow:hidden}.card-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;color:var(--brand-muted);font-size:1.4vh;font-weight:700}.flow[data-v-d8ddbdcd]{flex-direction:column;gap:1.5vh;height:100%;display:flex}.flow-svg[data-v-d8ddbdcd]{flex:1;width:100%;min-height:0}.line[data-v-d8ddbdcd]{stroke:#ffffff14;stroke-width:4px;fill:none;stroke-linecap:round;transition:stroke .6s}.line.active[data-v-d8ddbdcd]{stroke:#fff3}.hub[data-v-d8ddbdcd]{fill:var(--solar-yellow);filter:drop-shadow(0 0 12px #ffc93cb3)}.hub-ring[data-v-d8ddbdcd]{fill:none;stroke:#ffc93c66;stroke-width:2px}.node[data-v-d8ddbdcd]{fill:#ffffff0a;stroke:#ffffff2e;stroke-width:2px}.node-pv[data-v-d8ddbdcd]{fill:#ffc93c1a;stroke:#ffc93c73}.node-grid[data-v-d8ddbdcd]{fill:#e74c3c1a;stroke:#e74c3c73}.node-battery[data-v-d8ddbdcd]{fill:#8e5cff1a;stroke:#8e5cff80}.node-house[data-v-d8ddbdcd]{fill:#2ec27e1a;stroke:#2ec27e80}.node-icon[data-v-d8ddbdcd]{fill:#fff;font-family:Mulish,sans-serif;font-size:56px}.node-label[data-v-d8ddbdcd]{fill:#ffffffd9;font-family:Mulish,sans-serif;font-size:22px;font-weight:700}.battery-shell[data-v-d8ddbdcd]{fill:none;stroke:#8e5cffb3;stroke-width:2px}.battery-fill[data-v-d8ddbdcd]{fill:var(--battery-violet)}.dot[data-v-d8ddbdcd]{fill:#fff;filter:drop-shadow(0 0 8px #ffffffb3)}.dot-pv[data-v-d8ddbdcd]{fill:var(--solar-yellow)}.dot-grid-in[data-v-d8ddbdcd]{fill:var(--grid-red)}.dot-grid-out[data-v-d8ddbdcd]{fill:var(--energy-green)}.dot-bat-in[data-v-d8ddbdcd],.dot-bat-out[data-v-d8ddbdcd]{fill:var(--battery-violet)}.dot-house[data-v-d8ddbdcd]{fill:var(--energy-green)}.readings[data-v-d8ddbdcd]{grid-template-columns:repeat(4,1fr);gap:1.5vh;padding:0 2vh;display:grid}.reading[data-v-d8ddbdcd]{background:#ffffff0a;border-radius:1.2vh;flex-direction:column;align-items:center;padding:1.5vh 1vh;transition:opacity .4s;display:flex}.reading.off[data-v-d8ddbdcd]{opacity:.35}.r-label[data-v-d8ddbdcd]{text-transform:uppercase;letter-spacing:.18em;color:#ffffffb3;font-size:1.4vh;font-weight:700;font-family:var(--font-display)}.r-value[data-v-d8ddbdcd]{font-size:3.2vh;font-weight:800;font-family:var(--font-display);margin-top:.5vh}.reading-pv .r-value[data-v-d8ddbdcd]{color:var(--solar-yellow)}.reading-battery .r-value[data-v-d8ddbdcd]{color:var(--battery-violet)}.reading-house .r-value[data-v-d8ddbdcd]{color:var(--energy-green)}.r-split[data-v-d8ddbdcd]{flex-direction:column;gap:.5vh;margin-top:.6vh;display:flex}.r-line[data-v-d8ddbdcd]{font-family:var(--font-display);align-items:baseline;gap:.6vh;transition:opacity .4s;display:flex}.r-line.dim[data-v-d8ddbdcd]{opacity:.4}.r-arrow[data-v-d8ddbdcd]{font-size:2vh;font-weight:800;line-height:1}.r-sub[data-v-d8ddbdcd]{text-transform:uppercase;letter-spacing:.12em;color:#ffffff8c;text-align:left;min-width:4.6vh;font-size:1.2vh;font-weight:700}.r-val[data-v-d8ddbdcd]{font-size:2.4vh;font-weight:800}.r-line.import .r-arrow[data-v-d8ddbdcd],.r-line.import .r-val[data-v-d8ddbdcd]{color:var(--grid-red)}.r-line.export .r-arrow[data-v-d8ddbdcd],.r-line.export .r-val[data-v-d8ddbdcd]{color:var(--energy-green)}.big[data-v-d9806c22]{flex-direction:column;gap:1.4vh;height:100%;display:flex;overflow:hidden}.big-block[data-v-d9806c22]{flex-direction:column;flex:auto;gap:.4vh;min-height:0;padding:1vh 0;display:flex}.big-label[data-v-d9806c22]{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;color:#ffffffa6;font-size:1.5vh;font-weight:700}.big-value[data-v-d9806c22]{font-family:var(--font-display);white-space:nowrap;align-items:baseline;gap:.8vh;line-height:1;display:flex}.big-num[data-v-d9806c22]{letter-spacing:-.02em;font-size:6.8vh;font-weight:800;line-height:.95}.big-unit[data-v-d9806c22]{color:#fff9;font-size:2.4vh;font-weight:600}.big-bar[data-v-d9806c22]{background:#ffffff14;border-radius:999px;height:.7vh;margin-top:.6vh;overflow:hidden}.big-bar-fill[data-v-d9806c22]{border-radius:999px;height:100%;transition:width .8s cubic-bezier(.22,1,.36,1)}.production .big-num[data-v-d9806c22]{color:var(--solar-yellow)}.production .big-bar-fill[data-v-d9806c22]{background:linear-gradient(90deg, var(--solar-orange), var(--solar-yellow))}.consumption .big-num[data-v-d9806c22]{color:var(--energy-green)}.consumption .big-bar-fill[data-v-d9806c22]{background:linear-gradient(90deg, #1ea96b, var(--energy-green))}.balance.positive .big-num[data-v-d9806c22]{color:var(--energy-green)}.balance.negative .big-num[data-v-d9806c22]{color:var(--grid-red)}.big-hint[data-v-d9806c22]{font-family:var(--font-body);color:#ffffff8c;margin-top:.4vh;font-size:1.4vh}.daily[data-v-17ec663d]{flex-direction:column;gap:1.4vh;height:100%;display:flex}.daily-body[data-v-17ec663d]{flex:1;grid-template-columns:2fr 1fr;align-items:stretch;gap:2vh;min-height:0;display:grid}.daily-grid[data-v-17ec663d]{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr);gap:1.4vh;display:grid}.stat-block[data-v-17ec663d]{background:#ffffff0a;border-radius:1.2vh;padding:1.2vh 1.6vh}.stat-label[data-v-17ec663d]{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;color:#fff9;font-size:1.2vh;font-weight:700}.stat-value[data-v-17ec663d]{font-family:var(--font-display);align-items:baseline;gap:.7vh;margin-top:.6vh;display:flex}.stat-num[data-v-17ec663d]{letter-spacing:-.01em;font-size:4vh;font-weight:800}.stat-unit[data-v-17ec663d]{color:#ffffff8c;font-size:1.6vh;font-weight:600}.donuts[data-v-17ec663d]{flex-direction:column;justify-content:space-around;gap:1vh;display:flex}.donut-wrap[data-v-17ec663d]{flex-direction:column;align-items:center;gap:.4vh;display:flex}.donut[data-v-17ec663d]{flex-shrink:0;width:8.5vh;height:8.5vh;transform:rotate(-90deg)}.donut-track[data-v-17ec663d]{fill:none;stroke:#ffffff14;stroke-width:18px}.donut-fill[data-v-17ec663d]{fill:none;stroke-width:18px;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,1)}.donut-fill.autarky[data-v-17ec663d]{stroke:var(--energy-green);filter:drop-shadow(0 0 6px #2ec27e99)}.donut-fill.self[data-v-17ec663d]{stroke:var(--solar-yellow);filter:drop-shadow(0 0 6px #ffc93c99)}.donut-num[data-v-17ec663d]{font-family:var(--font-display);fill:#fff;transform-origin:100px 100px;font-size:64px;font-weight:800;transform:rotate(90deg)}.donut-pct[data-v-17ec663d]{fill:#fff9;font-size:28px}.donut-label[data-v-17ec663d]{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;color:#ffffffb3;font-size:1.4vh;font-weight:700}.co2[data-v-c983146f]{background:linear-gradient(160deg,#2ec27e1a,#ffffff05);flex-direction:column;gap:1.2vh;height:100%;display:flex}.hero[data-v-c983146f]{flex-direction:column;align-items:center;gap:.6vh;padding:.8vh 0;display:flex}.hero-icon[data-v-c983146f]{filter:drop-shadow(0 0 18px #2ec27e8c);font-size:5vh}.hero-value[data-v-c983146f]{font-family:var(--font-display);line-height:1}.hero-num[data-v-c983146f]{background:linear-gradient(135deg, #6bffa8 0%, var(--energy-green) 100%);color:#0000;letter-spacing:-.01em;-webkit-background-clip:text;background-clip:text;font-size:7vh;font-weight:800}.hero-sub[data-v-c983146f]{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;color:#ffffffb3;font-size:1.4vh;font-weight:700}.equivalents[data-v-c983146f]{grid-template-columns:repeat(3,1fr);gap:1vh;margin-top:auto;display:grid}.equivalent[data-v-c983146f]{background:#ffffff0a;border-radius:1.2vh;flex-direction:column;align-items:center;gap:.4vh;padding:1vh .6vh;display:flex}.eq-icon[data-v-c983146f]{font-size:2.6vh}.eq-value[data-v-c983146f]{font-family:var(--font-display);color:var(--energy-green);font-size:2.6vh;font-weight:800}.eq-label[data-v-c983146f]{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:#fff9;text-align:center;font-size:1vh;font-weight:700}.footer-note[data-v-c983146f]{color:#fff6;text-align:center;margin-top:.6vh;font-size:1vh}.display[data-v-a71cd700]{flex-direction:column;gap:2vh;width:100%;height:100%;padding:2vh 2.5vh;display:flex}.header[data-v-a71cd700]{flex:none;justify-content:space-between;align-items:center;padding:1vh;display:flex}.brand[data-v-a71cd700]{align-items:center;gap:2.5vh;display:flex}.logo[data-v-a71cd700]{width:auto;height:7vh}.brand-title[data-v-a71cd700]{font-family:var(--font-display);color:#fff;letter-spacing:-.01em;font-size:4vh;font-weight:800;line-height:1}.brand-sub[data-v-a71cd700]{color:#fff9;font-size:1.6vh;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;align-items:center;gap:1vh;margin-top:.7vh;font-weight:700;display:flex}.status[data-v-a71cd700]{align-items:center;gap:.7vh;display:inline-flex}.status-dot[data-v-a71cd700]{background:var(--energy-green);border-radius:50%;width:1vh;height:1vh;animation:1.6s ease-in-out infinite pulse-a71cd700;box-shadow:0 0 .6vh #2ec27ee6}.status.offline .status-dot[data-v-a71cd700]{background:var(--grid-red);box-shadow:0 0 .6vh #e74c3ce6}.status.connecting .status-dot[data-v-a71cd700]{background:var(--solar-yellow);box-shadow:0 0 .6vh #ffc93ce6}.src[data-v-a71cd700]{color:#fff6}@keyframes pulse-a71cd700{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.clock[data-v-a71cd700]{text-align:right}.clock-time[data-v-a71cd700]{font-family:var(--font-display);letter-spacing:-.01em;color:#fff;font-size:5vh;font-weight:800;line-height:1}.clock-date[data-v-a71cd700]{font-family:var(--font-display);color:#fff9;text-transform:capitalize;margin-top:.7vh;font-size:1.7vh;font-weight:600}.grid[data-v-a71cd700]{flex:1;grid-template-rows:1.35fr 1fr;grid-template-columns:2fr 1fr;gap:2vh;min-height:0;display:grid}.cell[data-v-a71cd700]{min-width:0;min-height:0}.cell-flow[data-v-a71cd700]{grid-area:1/1/2/2}.cell-numbers[data-v-a71cd700]{grid-area:1/2/2/3}.cell-daily[data-v-a71cd700]{grid-area:2/1/3/2}.cell-co2[data-v-a71cd700]{grid-area:2/2/3/3}@media (aspect-ratio<=4/3){.grid[data-v-a71cd700]{grid-template-rows:auto auto auto auto;grid-template-columns:1fr}.cell-flow[data-v-a71cd700]{grid-area:1/1}.cell-numbers[data-v-a71cd700]{grid-area:2/1}.cell-daily[data-v-a71cd700]{grid-area:3/1}.cell-co2[data-v-a71cd700]{grid-area:4/1}}
