:root{--clr-bg: #0d1117;--clr-surface: #161b22;--clr-surface-alt: #1c2129;--clr-surface-hover: #21262d;--clr-border: #30363d;--clr-border-subtle: #21262d;--clr-text: #e6edf3;--clr-text-secondary:#b1bac4;--clr-muted: #8b949e;--clr-primary: #58a6ff;--clr-primary-hover: #79c0ff;--clr-primary-muted: rgba(88, 166, 255, .15);--clr-primary-glow: rgba(88, 166, 255, .3);--clr-success: #3fb950;--clr-success-muted: rgba(63, 185, 80, .15);--clr-warning: #d29922;--clr-warning-muted: rgba(210, 153, 34, .15);--clr-danger: #f85149;--clr-danger-muted: rgba(248, 81, 73, .15);--clr-info: #58a6ff;--clr-consumption: #f85149;--clr-consumption-muted: rgba(248, 81, 73, .12);--clr-production: #3fb950;--clr-production-muted: rgba(63, 185, 80, .12);--clr-export: #58a6ff;--clr-export-muted: rgba(88, 166, 255, .12);--clr-self: #bc8cff;--clr-self-muted: rgba(188, 140, 255, .12);--clr-gas: #d29922;--clr-gas-muted: rgba(210, 153, 34, .12);--clr-overlay: rgba(22, 27, 34, .82);--clr-overlay-border: rgba(255, 255, 255, .08);--clr-scene-shell-stroke: rgba(255, 255, 255, .06);--input-color-scheme: dark;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", Menlo, Consolas, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-lg: 1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--lh-tight: 1.15;--lh-normal: 1.5;--lh-relaxed: 1.75;--sp-0: 0;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-16: 4rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .35), 0 4px 6px -4px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 8px 10px -6px rgba(0, 0, 0, .2);--shadow-glow: 0 0 20px rgba(88, 166, 255, .15);--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration: .15s;--duration-md: .25s;--duration-lg: .4s}:root[data-theme=light]{--clr-bg: #f4f7fb;--clr-surface: #ffffff;--clr-surface-alt: #f7fafd;--clr-surface-hover: #eef3f9;--clr-border: #d7e0ea;--clr-border-subtle: #e8eef5;--clr-text: #142132;--clr-text-secondary:#304156;--clr-muted: #6b7787;--clr-primary: #2563eb;--clr-primary-hover: #1d4ed8;--clr-primary-muted: rgba(37, 99, 235, .12);--clr-primary-glow: rgba(37, 99, 235, .18);--clr-success: #2f9e44;--clr-success-muted: rgba(47, 158, 68, .14);--clr-warning: #c47d19;--clr-warning-muted: rgba(196, 125, 25, .14);--clr-danger: #dc4c3f;--clr-danger-muted: rgba(220, 76, 63, .14);--clr-info: #2563eb;--clr-consumption: #dc4c3f;--clr-consumption-muted: rgba(220, 76, 63, .12);--clr-production: #2f9e44;--clr-production-muted: rgba(47, 158, 68, .12);--clr-export: #1d6fd6;--clr-export-muted: rgba(29, 111, 214, .12);--clr-self: #7c4dff;--clr-self-muted: rgba(124, 77, 255, .12);--clr-gas: #b7791f;--clr-gas-muted: rgba(183, 121, 31, .12);--clr-overlay: rgba(255, 255, 255, .88);--clr-overlay-border: rgba(37, 99, 235, .12);--clr-scene-shell-stroke: rgba(37, 99, 235, .08);--input-color-scheme: light;--shadow-xs: 0 1px 0 rgba(15, 23, 42, .04);--shadow-sm: 0 6px 14px rgba(15, 23, 42, .06);--shadow-md: 0 12px 24px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 38px rgba(15, 23, 42, .1);--shadow-xl: 0 28px 54px rgba(15, 23, 42, .12);--shadow-glow: 0 0 18px rgba(37, 99, 235, .14)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--lh-normal);color:var(--clr-text);background:var(--clr-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100%}a{color:var(--clr-primary);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;flex-direction:column;height:100%;overflow:hidden}.main-content{flex:1 1 auto;overflow-y:auto;padding:var(--sp-6) var(--sp-8);position:relative;max-width:1400px;margin:0 auto;width:100%}.section-header{margin-bottom:var(--sp-8);padding-bottom:var(--sp-4);border-bottom:1px solid var(--clr-border-subtle)}.section-header h2{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;margin-bottom:var(--sp-2);color:var(--clr-text)}.section-header .muted{font-size:var(--text-sm);color:var(--clr-muted)}.section-header .badge{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);background:var(--clr-primary-muted);color:var(--clr-primary);margin-right:var(--sp-3)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-6)}.cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-6)}.flow-metrics-row{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6);align-items:flex-start}.flow-metrics-row .flow-card{flex:1;min-width:0;overflow:hidden}.flow-metrics-row .metrics-card{flex:0 0 280px;min-width:240px}.key-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4)}.range-selector{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-4);background:var(--clr-surface);padding:var(--sp-1);border-radius:var(--radius-lg);border:1px solid var(--clr-border);width:fit-content}.range-info-bar{font-size:var(--text-sm);color:var(--clr-muted);margin-bottom:var(--sp-6);display:flex;align-items:center;gap:var(--sp-2);font-weight:500;animation:fade-in .3s var(--ease)}.hidden{display:none!important}@keyframes fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.custom-range-picker{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap}.custom-range-picker label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);font-weight:500;color:var(--clr-muted)}.custom-range-picker input[type=date]{padding:var(--sp-2) var(--sp-3);background:var(--clr-bg);color:var(--clr-text);border:1px solid var(--clr-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-sm);color-scheme:var(--input-color-scheme);transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.custom-range-picker input[type=date]:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 3px var(--clr-primary-muted)}.period-preview{padding:var(--sp-3) var(--sp-4);background:var(--clr-surface-alt);border:1px solid var(--clr-border);border-radius:var(--radius-md)}.period-preview-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--clr-text-secondary)}.period-preview input[type=date][readonly]{background:var(--clr-surface);color:var(--clr-text);opacity:1;cursor:default}.chart-section{margin-top:var(--sp-6)}.chart-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-2)}.chart-header .card-title{margin-bottom:0;flex:0 1 auto}.chart-period-status{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2);flex:1 1 260px;color:var(--clr-text-secondary);font-size:var(--text-sm)}.chart-period-status strong{color:var(--clr-text);font-weight:700}.chart-period-kicker{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);background:var(--clr-primary-muted);color:var(--clr-primary);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.chart-control-stack{display:grid;gap:var(--sp-2);justify-items:end;min-width:min(100%,760px);flex:1 1 560px}.chart-period-controls{display:inline-flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end}.chart-period-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 var(--sp-4);border-radius:var(--radius-full);border:1px solid var(--clr-border);background:linear-gradient(180deg,#ffffff0a,#ffffff04);color:var(--clr-text);font-size:var(--text-sm);font-weight:600;text-align:center}.chart-nav-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--clr-border);background:var(--clr-surface-alt);color:var(--clr-text);cursor:pointer;transition:transform var(--duration-md) var(--ease),border-color var(--duration-md) var(--ease),background var(--duration-md) var(--ease),color var(--duration-md) var(--ease)}.chart-nav-btn:hover:not(:disabled){transform:translateY(-1px);border-color:var(--clr-primary);background:var(--clr-primary-muted);color:var(--clr-primary)}.chart-nav-btn:disabled{cursor:not-allowed;opacity:.45}.chart-bucket-toggle,.chart-unit-toggle{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px;background:var(--clr-bg);padding:2px;border-radius:var(--radius-sm);border:1px solid var(--clr-border)}.unit-btn{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);font-weight:600;color:var(--clr-muted);background:transparent;border:none;border-radius:calc(var(--radius-sm) - 2px);cursor:pointer;transition:all var(--duration-md) var(--ease);min-width:48px}.unit-btn:hover{color:var(--clr-text)}.unit-btn.active{background:var(--clr-primary);color:#fff;box-shadow:var(--shadow-sm)}.chart-bucket-btn{min-width:68px}.unit-btn:disabled{cursor:not-allowed;opacity:.45;color:var(--clr-muted)}.unit-btn:disabled:hover{color:var(--clr-muted);background:transparent}.chart-hint{opacity:.5;transition:opacity .3s}.chart-container:hover+.chart-hint{opacity:.8}.chart-container{position:relative;width:100%;height:320px;padding:var(--sp-4)}.chart-container canvas{width:100%!important;height:100%!important}.leneda-elite-flow{position:relative;width:100%;padding:var(--sp-8);background:radial-gradient(circle at 50% 0%,rgba(88,166,255,.12),transparent 36%),radial-gradient(circle at 14% 78%,rgba(248,81,73,.08),transparent 22%),radial-gradient(circle at 84% 22%,rgba(63,185,80,.08),transparent 24%),linear-gradient(180deg,#ffffff09,#ffffff03),var(--clr-bg);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,.06);overflow:hidden;animation:scene-entrance .8s var(--ease-out);box-shadow:inset 0 1px #ffffff0a,0 22px 48px #00000029}.leneda-elite-flow:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.022) 48%,transparent 100%),radial-gradient(circle at 22% 80%,rgba(248,81,73,.08),transparent 26%),radial-gradient(circle at 80% 24%,rgba(63,185,80,.08),transparent 26%);pointer-events:none}.elite-header{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-6);margin-bottom:var(--sp-10);position:relative;z-index:1}.flow-scene-summary{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.flow-scene-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 var(--sp-3);border-radius:var(--radius-full);border:1px solid var(--clr-overlay-border);background:var(--clr-overlay);color:var(--clr-text-secondary);font-size:var(--text-xs);font-weight:700;white-space:nowrap}.flow-scene-chip.solar{color:var(--clr-production)}.flow-scene-chip.import{color:var(--clr-consumption)}.flow-scene-chip.export,.flow-scene-chip.community{color:var(--clr-primary)}.flow-scene-chip.neutral{color:var(--clr-text)}.flow-scene-caption{position:relative;z-index:1;margin-bottom:var(--sp-4);max-width:72ch;color:var(--clr-muted);font-size:var(--text-sm);line-height:1.55}.glass-module{position:relative;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-6);background:#ffffff09;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.09);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;transition:transform .3s var(--ease-spring),border-color .3s var(--ease)}.glass-module:hover{transform:translateY(-4px);border-color:#fff3}.module-info{position:relative;z-index:2}.module-label{display:block;font-size:var(--text-xs);font-weight:600;color:var(--clr-text-secondary);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--sp-2)}.module-value-row{display:flex;align-items:baseline;gap:var(--sp-2)}.module-value{font-size:var(--text-4xl);font-weight:900;letter-spacing:-.04em;line-height:1}.module-unit{font-size:var(--text-sm);font-weight:500;color:var(--clr-muted)}.module-visual{position:absolute;right:-20px;bottom:-20px;width:120px;height:120px;opacity:.15}.wave-bg{width:100%;height:100%;border-radius:40%;animation:wave-rotate 8s linear infinite}.wave-bg.red{background:var(--clr-consumption)}.wave-bg.green{background:var(--clr-production)}.consumption-module{box-shadow:0 18px 40px #f8514914}.production-module{box-shadow:0 18px 40px #3fb95014}@keyframes wave-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.elite-scene{position:relative;width:100%;z-index:1}.elite-scene-desktop{display:block;height:430px}.elite-scene-mobile{display:none;height:500px}.elite-scene:before{content:"";position:absolute;top:22px;right:18%;bottom:38px;left:18%;border-radius:999px;background:radial-gradient(circle,#58a6ff14,#58a6ff00);filter:blur(20px);pointer-events:none}.elite-main-svg{width:100%;height:100%}.scene-node-label{filter:drop-shadow(0 10px 18px rgba(0,0,0,.12))}.scene-node-kicker{fill:var(--clr-muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.scene-node-value{fill:var(--clr-text);font-size:14px;font-weight:700}.scene-node-detail{fill:var(--clr-muted);font-size:11px;font-weight:500}.house-core-kicker{fill:var(--clr-muted);font-size:10px;font-weight:700;letter-spacing:.08em}.house-core-value{fill:var(--clr-text);font-size:18px;font-weight:800}.house-total-label{fill:var(--clr-muted);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.house-total-value{fill:var(--clr-text);font-size:18px;font-weight:800}.elite-house rect,.elite-house path{transition:.4s var(--ease)}.scene-tier-icon{filter:drop-shadow(0 10px 20px rgba(0,0,0,.14))}.flow-halo,.flow-rail,.flow-stream,.flow-particle{transition:opacity var(--duration-md) var(--ease)}.flow-halo{mix-blend-mode:screen}.flow-rail{stroke-dasharray:0 1 14 10}.flow-stream{filter:drop-shadow(0 0 10px rgba(255,255,255,.08))}.flow-particle{opacity:.95}.flow-particle-secondary{opacity:.62}.elite-house:hover path{stroke:var(--clr-text-secondary)}@keyframes scene-entrance{0%{opacity:0;transform:scale(.98) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.highlight-red{color:var(--clr-consumption)!important}.highlight-green{color:var(--clr-production)!important}.highlight-blue{color:var(--clr-export)!important}.flow-legend{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--sp-3);margin-top:var(--sp-5)}.flow-legend-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4);background:var(--clr-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--clr-overlay-border);border-radius:var(--radius-lg);min-width:0}.flow-legend-dot{width:10px;height:10px;border-radius:999px;flex:0 0 auto;margin-top:6px;box-shadow:0 0 0 6px #ffffff05}.flow-legend-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.flow-legend-copy strong{font-size:var(--text-sm);font-weight:700;color:var(--clr-text)}.flow-legend-copy span{font-size:var(--text-xs);line-height:1.5;color:var(--clr-muted)}.flow-legend-item.solar .flow-legend-dot{background:var(--clr-production)}.flow-legend-item.import .flow-legend-dot{background:var(--clr-consumption)}.flow-legend-item.export .flow-legend-dot{background:var(--clr-export)}.flow-legend-item.community .flow-legend-dot{background:var(--clr-primary)}.flow-legend-item.gas .flow-legend-dot{background:var(--clr-gas)}.mobile-flow-summary{display:none}.mobile-flow-house{padding:var(--sp-4);border-radius:var(--radius-lg);border:1px solid var(--clr-overlay-border);background:linear-gradient(135deg,#58a6ff1f,#58a6ff0a),var(--clr-overlay);box-shadow:inset 0 1px #ffffff08}.mobile-flow-kicker{display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-muted);margin-bottom:var(--sp-2)}.mobile-flow-house-value{display:block;font-size:var(--text-xl);font-weight:800;letter-spacing:-.03em;color:var(--clr-text)}.mobile-flow-house-meta{display:block;margin-top:var(--sp-1);color:var(--clr-text-secondary);font-size:var(--text-sm)}.mobile-flow-list{display:grid;gap:var(--sp-3)}.mobile-flow-item{padding:var(--sp-4);border-radius:var(--radius-lg);border:1px solid var(--clr-overlay-border);background:var(--clr-overlay)}.mobile-flow-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.mobile-flow-item-top strong{font-size:var(--text-base);font-weight:800;color:var(--clr-text);text-align:right}.mobile-flow-item-label{font-size:var(--text-sm);font-weight:700;color:var(--clr-text)}.mobile-flow-item p{margin-top:var(--sp-2);font-size:var(--text-xs);line-height:1.5;color:var(--clr-muted)}.mobile-flow-bar{height:8px;border-radius:999px;overflow:hidden;background:#ffffff0f}.mobile-flow-bar span{display:block;height:100%;border-radius:inherit}.mobile-flow-item.solar .mobile-flow-bar span{background:linear-gradient(90deg,rgba(63,185,80,.45),var(--clr-production))}.mobile-flow-item.import .mobile-flow-bar span{background:linear-gradient(90deg,rgba(248,81,73,.45),var(--clr-consumption))}.mobile-flow-item.export .mobile-flow-bar span{background:linear-gradient(90deg,rgba(88,166,255,.45),var(--clr-export))}.mobile-flow-item.community .mobile-flow-bar span{background:linear-gradient(90deg,rgba(88,166,255,.45),var(--clr-primary))}.mobile-flow-item.gas .mobile-flow-bar span{background:linear-gradient(90deg,rgba(210,153,34,.4),var(--clr-gas))}.form-section{margin-bottom:var(--sp-6)}.form-section-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--clr-muted);padding:var(--sp-3) 0 var(--sp-2);margin-bottom:var(--sp-2);border-bottom:1px solid var(--clr-border-subtle)}.form-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);transition:background var(--duration) var(--ease)}.form-row:hover{background:var(--clr-surface-hover)}.form-row label{flex:0 0 40%;font-size:var(--text-sm);color:var(--clr-text-secondary);font-weight:500}.input-group{display:flex;align-items:center;gap:var(--sp-2);flex:0 0 55%}.input-group input{flex:1;padding:var(--sp-2) var(--sp-3);background:var(--clr-bg);color:var(--clr-text);border:1px solid var(--clr-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.input-group select{flex:1;padding:var(--sp-2) var(--sp-3);background:var(--clr-bg);color:var(--clr-text);border:1px solid var(--clr-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-sm)}.input-group input:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 3px var(--clr-primary-muted)}.input-group select:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 3px var(--clr-primary-muted)}.schedule-window-inputs{flex-wrap:wrap}.schedule-window-inputs input{min-width:120px}.input-unit{font-size:var(--text-xs);color:var(--clr-muted);white-space:nowrap;min-width:50px}.form-actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--clr-border)}.meter-card{background:var(--clr-surface-alt);border:1px solid var(--clr-border);border-radius:var(--radius-md, 8px);padding:var(--sp-4);margin-bottom:var(--sp-3)}.meter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3);font-size:var(--text-sm)}.meter-header strong{color:var(--clr-text)}.meter-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--clr-muted);background:var(--clr-bg);padding:2px 6px;border-radius:var(--radius-sm)}.meter-types{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.meter-type-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid transparent}.meter-type-consumption{background:#308ce81f;color:#2b8cee;border-color:#308ce840}.meter-type-production{background:#22c3651f;color:#1da556;border-color:#22c36540}.meter-type-gas{background:#f48c251f;color:#da730b;border-color:#f48c2540}.meter-type-checkboxes{display:flex;flex-direction:column;gap:var(--sp-2)}.meter-type-cb{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);cursor:pointer;padding:var(--sp-1) 0}.meter-type-cb input[type=checkbox]{width:16px;height:16px;accent-color:var(--clr-primary);cursor:pointer}.btn-icon{background:transparent;border:1px solid var(--clr-border);border-radius:var(--radius-sm);color:var(--clr-muted);cursor:pointer;font-size:var(--text-lg);line-height:1;padding:2px 8px;transition:color var(--duration) var(--ease),border-color var(--duration) var(--ease)}.btn-icon:hover{color:var(--clr-danger, #e53e3e);border-color:var(--clr-danger, #e53e3e)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--clr-border);border-radius:24px;transition:background var(--duration-md) var(--ease)}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:var(--clr-text);border-radius:50%;transition:transform var(--duration-md) var(--ease)}.toggle-switch input:checked+.toggle-slider{background:var(--clr-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:focus-visible+.toggle-slider{box-shadow:0 0 0 3px var(--clr-primary-muted)}.invoice-table{width:100%;border-collapse:collapse}.invoice-table th,.invoice-table td{padding:var(--sp-3) var(--sp-4);text-align:left}.invoice-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--clr-muted);font-weight:600;border-bottom:2px solid var(--clr-border);background:var(--clr-surface-alt)}.invoice-table td{border-bottom:1px solid var(--clr-border-subtle);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.invoice-table tr:hover td{background:var(--clr-surface-hover)}.invoice-table .subtotal-row td{border-top:2px solid var(--clr-border);padding-top:var(--sp-4);font-weight:600}.invoice-table .total-row td{border-top:2px solid var(--clr-primary);font-size:var(--text-lg);font-weight:700;color:var(--clr-primary);padding:var(--sp-4);background:var(--clr-primary-muted)}.sensor-group{margin-bottom:var(--sp-6)}.sensor-table{width:100%;border-collapse:collapse}.sensor-table th,.sensor-table td{padding:var(--sp-3) var(--sp-4);text-align:left}.sensor-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--clr-muted);font-weight:600;background:var(--clr-surface-alt);border-bottom:2px solid var(--clr-border);position:sticky;top:0}.sensor-table td{font-size:var(--text-sm);border-bottom:1px solid var(--clr-border-subtle)}.sensor-table tbody tr{transition:background var(--duration) var(--ease)}.sensor-table tbody tr:hover{background:var(--clr-surface-hover)}.sensor-table tbody tr:nth-child(2n){background:var(--clr-surface-alt)}.sensor-table tbody tr:nth-child(2n):hover{background:var(--clr-surface-hover)}.sensor-table .mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--clr-muted)}@media(max-width:768px){.main-content{padding:var(--sp-4)}.section-header{margin-bottom:var(--sp-5);padding-bottom:var(--sp-3)}.range-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;padding:var(--sp-2);gap:var(--sp-2)}.range-btn{width:100%;padding:var(--sp-2) var(--sp-4);white-space:normal;line-height:1.25}.custom-range-picker{width:100%;gap:var(--sp-3);align-items:stretch}.custom-range-picker label{width:100%;justify-content:space-between}.custom-range-picker input[type=date]{flex:1 1 auto;min-width:0}.custom-range-picker .btn{width:100%}.stats-grid{grid-template-columns:1fr 1fr;gap:var(--sp-3)}.cards-row{grid-template-columns:1fr}.flow-metrics-row{flex-direction:column}.flow-metrics-row .metrics-card{flex:none;width:100%}.flow-metrics-row .flow-card{overflow:hidden}.chart-control-stack{min-width:100%;justify-items:stretch}.chart-period-controls,.chart-bucket-toggle,.chart-unit-toggle{justify-content:flex-start}.chart-period-pill{flex:1 1 220px}.form-row{flex-direction:column;align-items:stretch;gap:var(--sp-2)}.form-row label,.input-group{flex:none}.leneda-elite-flow{min-width:0;padding:var(--sp-5) var(--sp-4)}.elite-header{grid-template-columns:1fr;gap:var(--sp-3);margin-bottom:var(--sp-6)}.flow-scene-summary{gap:var(--sp-2)}.flow-scene-chip{white-space:normal}.elite-scene-desktop{height:360px}.elite-scene-mobile{height:460px}.scene-node-label{transform:none}.flow-legend{grid-template-columns:1fr;gap:var(--sp-2)}.module-value{font-size:var(--text-2xl)}.module-visual{width:96px;height:96px;right:-16px;bottom:-16px}.flow-legend-copy span{line-height:1.4}.navbar-tabs{display:none}.navbar-tabs.mobile-open{display:flex;position:fixed;top:56px;left:0;right:0;bottom:0;background:var(--clr-surface);flex-direction:column;padding:var(--sp-6);z-index:1000;height:calc(100vh - 56px);gap:var(--sp-4)}.nav-btn{width:100%;height:56px;font-size:var(--text-base);justify-content:flex-start;padding-left:var(--sp-6)}}@media(max-width:640px){.mobile-flow-summary{display:grid;gap:var(--sp-3)}.elite-scene-desktop,.flow-legend{display:none}.elite-scene-mobile{display:block;height:min(500px,118vw)}.leneda-elite-flow{padding:var(--sp-4)}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.custom-range-picker{gap:var(--sp-2)}.custom-range-picker label{flex-direction:column;align-items:stretch;gap:var(--sp-1)}.chart-period-status{flex-direction:column;align-items:flex-start}.chart-period-controls{width:100%}.chart-period-pill{min-width:0;flex:1 1 auto;font-size:var(--text-xs);padding:0 var(--sp-3)}.leneda-elite-flow{padding:var(--sp-4) var(--sp-3)}.elite-header{margin-bottom:var(--sp-5)}.elite-scene-mobile{height:min(440px,124vw)}.flow-legend-item{padding:var(--sp-3)}.flow-legend-copy strong{font-size:var(--text-xs)}.flow-legend-copy span{font-size:.7rem}.mobile-flow-item-top{flex-direction:column;align-items:flex-start;gap:var(--sp-1)}}.card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);transition:border-color var(--duration-md) var(--ease),box-shadow var(--duration-md) var(--ease)}.card:hover{border-color:var(--clr-border);box-shadow:var(--shadow-md)}.card-title{font-size:var(--text-lg);font-weight:700;margin-bottom:var(--sp-4);color:var(--clr-text);display:flex;align-items:center;gap:var(--sp-2)}.card-title .title-icon{font-size:1.1em;display:inline-flex;align-items:center;justify-content:center}.card-title .title-icon svg{width:18px;height:18px;display:block}.stat-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;align-items:flex-start;gap:var(--sp-4);position:relative;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--duration-md) var(--ease-spring),border-color var(--duration-md) var(--ease),box-shadow var(--duration-md) var(--ease)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:1.25rem;flex-shrink:0}.stat-icon svg{width:20px;height:20px;display:block}.stat-body{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-muted);font-weight:600}.stat-value{font-size:var(--text-2xl);font-weight:800;line-height:var(--lh-tight);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat-unit{font-size:var(--text-sm);color:var(--clr-muted);font-weight:400;margin-left:var(--sp-1)}.stat-card.consumption:before{background:var(--clr-consumption)}.stat-card.consumption .stat-icon{background:var(--clr-consumption-muted);color:var(--clr-consumption)}.stat-card.consumption .stat-value{color:var(--clr-consumption)}.stat-card.consumption:hover{border-color:#f851494d}.stat-card.production:before{background:var(--clr-production)}.stat-card.production .stat-icon{background:var(--clr-production-muted);color:var(--clr-production)}.stat-card.production .stat-value{color:var(--clr-production)}.stat-card.production:hover{border-color:#3fb9504d}.stat-card.export:before{background:var(--clr-export)}.stat-card.export .stat-icon{background:var(--clr-export-muted);color:var(--clr-export)}.stat-card.export .stat-value{color:var(--clr-export)}.stat-card.export:hover{border-color:#58a6ff4d}.stat-card.self-consumed:before{background:var(--clr-self)}.stat-card.self-consumed .stat-icon{background:var(--clr-self-muted);color:var(--clr-self)}.stat-card.self-consumed .stat-value{color:var(--clr-self)}.stat-card.self-consumed:hover{border-color:#bc8cff4d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration) var(--ease);font-family:var(--font-sans);line-height:1.5;white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--clr-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--clr-primary-hover);box-shadow:0 0 12px var(--clr-primary-glow)}.btn-outline{background:transparent;border-color:var(--clr-border);color:var(--clr-text-secondary)}.btn-outline:hover{background:var(--clr-surface-hover);border-color:var(--clr-muted);color:var(--clr-text)}.btn-danger{background:transparent;border-color:var(--clr-danger);color:var(--clr-danger)}.btn-danger:hover{background:var(--clr-danger-muted)}.range-btn{padding:var(--sp-2) var(--sp-4);border:none;border-radius:var(--radius-md);background:transparent;color:var(--clr-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-md) var(--ease);font-family:var(--font-sans)}.range-btn:hover{background:var(--clr-surface-hover);color:var(--clr-text)}.range-btn.active{background:var(--clr-primary);color:#fff;box-shadow:0 2px 8px #58a6ff40}.navbar{display:flex;align-items:center;background:var(--clr-surface);border-bottom:1px solid var(--clr-border);padding:0 var(--sp-6);flex-shrink:0;height:56px;gap:var(--sp-4)}.navbar-brand{display:flex;align-items:center;gap:var(--sp-3);padding-right:var(--sp-6);margin-right:var(--sp-4);border-right:1px solid var(--clr-border);height:100%;white-space:nowrap}.navbar-logo-img{height:44px;width:auto;object-fit:contain;border-radius:var(--radius-sm);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.navbar-title{font-size:var(--text-lg);font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--clr-primary),#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar-badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid rgba(88,166,255,.28);background:#58a6ff1f;color:var(--clr-primary);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.navbar-tabs{display:flex;align-items:center;gap:var(--sp-1);height:100%;width:100%}.nav-btn{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:none;background:transparent;color:var(--clr-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-md) var(--ease);font-family:var(--font-sans);height:36px;position:relative}.nav-btn:hover{color:var(--clr-text);background:var(--clr-surface-hover)}.nav-btn.active{color:var(--clr-primary);background:var(--clr-primary-muted);font-weight:600}.nav-icon{font-size:1rem;line-height:1}.nav-icon svg{width:16px;height:16px;display:block}.nav-label{line-height:1}.navbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px;padding-right:4px}.theme-toggle,.navbar-icon-link{display:inline-flex;align-items:center;justify-content:center;height:36px;border-radius:10px;border:1px solid var(--clr-border);background:var(--clr-surface-hover);color:var(--clr-text);transition:transform var(--duration-md) var(--ease),border-color var(--duration-md) var(--ease),background var(--duration-md) var(--ease)}.theme-toggle{gap:8px;padding:0 12px;cursor:pointer;font:inherit}.theme-toggle:hover,.navbar-icon-link:hover{transform:translateY(-1px);border-color:var(--clr-primary);background:var(--clr-primary-muted)}.theme-toggle-icon{font-size:1rem;line-height:1}.theme-toggle-icon svg{width:16px;height:16px;display:block}.theme-toggle-label{font-size:var(--text-sm);font-weight:600}.navbar-cta{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#fd0,#fbb034);color:#000;padding:6px 16px;border-radius:12px;font-weight:800;font-size:13px;text-decoration:none;box-shadow:0 4px 15px #fbb0344d;transition:transform var(--duration-md) var(--ease),box-shadow var(--duration-md) var(--ease);border:1px solid rgba(255,255,255,.2)}.navbar-cta:hover{transform:translateY(-1px);box-shadow:0 10px 20px #fbb03440;text-decoration:none}.navbar-icon-link{width:36px;text-decoration:none}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:var(--sp-4);color:var(--clr-muted)}.spinner{width:40px;height:40px;border:3px solid var(--clr-border);border-top-color:var(--clr-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-bar{position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,transparent,var(--clr-primary),transparent);animation:loading 1.5s ease-in-out infinite;z-index:10}@keyframes loading{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:var(--sp-4);text-align:center}.error-state h2{color:var(--clr-danger);font-size:var(--text-xl);font-weight:700}.error-state p{color:var(--clr-muted);max-width:400px;line-height:var(--lh-relaxed)}.app-notice{margin-bottom:var(--sp-5);padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-lg);border:1px solid var(--clr-border);background:var(--clr-surface-alt);box-shadow:var(--shadow-sm)}.app-notice strong{display:block;margin-bottom:var(--sp-1);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase}.app-notice p{margin:0;color:var(--clr-text-secondary);line-height:1.55}.app-notice-info{border-color:#58a6ff42;background:#58a6ff14}.app-notice-info strong{color:var(--clr-primary)}.muted{color:var(--clr-muted);font-size:var(--text-sm)}.metric{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) 0}.metric+.metric{border-top:1px solid var(--clr-border-subtle)}.metric-header{display:flex;justify-content:space-between;align-items:baseline}.metric-label{font-size:var(--text-sm);color:var(--clr-muted);font-weight:500;display:inline-flex;align-items:center;gap:6px}.metric-status-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.metric-status-icon svg{width:14px;height:14px;display:block}.metric-value{font-size:var(--text-lg);font-weight:700;font-variant-numeric:tabular-nums}.metric-bar{height:8px;background:var(--clr-bg);border-radius:var(--radius-full);overflow:hidden}.metric-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--clr-production),var(--clr-primary));transition:width .8s var(--ease-out)}.metrics-list{display:flex;flex-direction:column}.metric-sub{font-size:var(--text-xs);color:var(--clr-muted);line-height:1.4}.metric-warning{background:#ffa00014;border-radius:var(--radius);padding:var(--sp-3);margin:0 calc(-1 * var(--sp-3))}.metric-warning .metric-label,.metric-warning .metric-value{color:#e67e00}.metric-warning .metric-sub{color:#c06800}.metric-ok{background:#28b4500f;border-radius:var(--radius);padding:var(--sp-3);margin:0 calc(-1 * var(--sp-3))}.metric-ok .metric-label,.metric-ok .metric-value{color:#1a9a4a}.invoice-table .section-label td{padding-top:var(--sp-5);padding-bottom:var(--sp-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-primary);font-weight:700;border-bottom:none;background:transparent!important}.invoice-table .section-label:first-child td{padding-top:var(--sp-3)}.invoice-table .exceedance-row td{color:var(--clr-warning);font-weight:600}.invoice-table .revenue-section td,.invoice-table .revenue-row td{color:var(--clr-production)}.invoice-table .revenue-amount{font-weight:700;color:var(--clr-production)!important}.invoice-table .net-total-row td{border-top:2px solid var(--clr-border);font-size:var(--text-lg);font-weight:700;padding:var(--sp-4)}.exceedance-warning{background:var(--clr-warning-muted);border-color:#d299224d;margin-bottom:var(--sp-6);padding:var(--sp-4) var(--sp-5)}.exceedance-warning strong{color:var(--clr-warning);display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--text-base)}.exceedance-warning p{font-size:var(--text-sm);color:var(--clr-text-secondary);margin-top:var(--sp-1)}.invoice-view .section-header span{display:block;margin-top:var(--sp-1)}.invoice-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.invoice-print-note{margin-top:var(--sp-1)}.invoice-print-btn{flex:0 0 auto}.invoice-summary-badges{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-2)}.invoice-card{padding:0;overflow:hidden}.invoice-footer{margin-top:var(--sp-4)}.reference-power-card{margin-top:var(--sp-4);overflow:hidden}.reference-power-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap}.reference-power-card-copy{max-width:72ch;line-height:var(--lh-relaxed)}.reference-level-cell{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.reference-level-kw{font-weight:700;color:var(--clr-text)}.reference-level-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:700;border:1px solid transparent}.reference-level-badge.best{background:#3fb9501f;color:var(--clr-production);border-color:#3fb95040}.reference-level-badge.current{background:var(--clr-primary-muted);color:var(--clr-primary);border-color:#58a6ff40}.reference-level-badge.legacy{background:#d299221f;color:#d29922;border-color:#d2992240}.reference-power-best-row td{background:#3fb9500d}.reference-power-current-row td{box-shadow:inset 0 0 0 999px #58a6ff0a}.comparison-delta-savings{color:var(--clr-production);font-weight:700}.comparison-delta-extra{color:#d29922;font-weight:700}.settings-view .card{max-width:720px}.settings-note{margin-bottom:var(--sp-4);padding:var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--clr-border);background:var(--clr-surface-alt)}.settings-note strong{display:block;margin-bottom:var(--sp-2);color:var(--clr-text)}.settings-note p{margin:0;color:var(--clr-text-secondary);line-height:1.55}.settings-note code{font-size:.92em}.settings-note-warning{border-color:#d2992252;background:#d2992214}.sensor-name{font-weight:500;color:var(--clr-text)}.sensor-value{font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums}.sensor-unit{color:var(--clr-muted);font-size:var(--text-xs)}.sensor-peak{color:var(--clr-muted);font-size:var(--text-xs);font-family:var(--font-mono)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--clr-muted)}::selection{background:var(--clr-primary-muted);color:var(--clr-primary)}:focus-visible{outline:2px solid var(--clr-primary);outline-offset:2px}.menu-toggle{display:none;flex-direction:column;justify-content:space-around;width:24px;height:24px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001}.menu-toggle span{width:24px;height:2px;background:var(--clr-text);border-radius:10px;transition:all .3s linear;position:relative;transform-origin:1px}.menu-toggle.open span:nth-child(1){transform:rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0;transform:translate(20px)}.menu-toggle.open span:nth-child(3){transform:rotate(-45deg)}.analysis-view{display:flex;flex-direction:column;gap:var(--sp-6)}.analysis-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4)}.analysis-header-meta{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);min-width:220px;border:1px solid var(--clr-border);border-radius:var(--radius-lg);background:linear-gradient(180deg,#ffffff08,#ffffff03);color:var(--clr-muted);font-size:var(--text-sm)}.analysis-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-4)}.analysis-stat-card{padding:var(--sp-5);border:1px solid var(--clr-border);border-radius:var(--radius-lg);background:linear-gradient(180deg,#ffffff08,#ffffff04),var(--clr-surface);display:flex;flex-direction:column;gap:var(--sp-2);box-shadow:var(--shadow-sm)}.analysis-stat-label,.analysis-inline-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clr-text-secondary)}.analysis-stat-value{font-size:clamp(1.55rem,2vw,2.1rem);font-weight:800;letter-spacing:-.03em;color:var(--clr-text)}.analysis-stat-meta,.analysis-card-copy,.analysis-note,.analysis-empty{font-size:var(--text-sm);line-height:1.5;color:var(--clr-muted)}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.analysis-card{min-width:0}.analysis-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.analysis-card-header .card-title,.analysis-subtitle{margin-bottom:0}.analysis-subtitle{font-size:var(--text-sm);font-weight:700;color:var(--clr-text);margin-bottom:var(--sp-2)}.analysis-inline-metrics,.analysis-compare-grid,.analysis-subgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-3)}.analysis-inline-metrics{margin-bottom:var(--sp-4)}.analysis-inline-metrics>div,.analysis-compare-item{padding:var(--sp-3);border:1px solid var(--clr-border-subtle);border-radius:var(--radius-md);background:var(--clr-surface-alt);display:flex;flex-direction:column;gap:6px}.analysis-inline-metrics strong,.analysis-compare-item strong{font-size:var(--text-xl);font-weight:800;letter-spacing:-.03em}.analysis-compare-delta{font-size:var(--text-xs);color:var(--clr-muted)}.analysis-subchart{margin-top:var(--sp-5)}.analysis-chart-scroller{overflow-x:auto;padding-bottom:var(--sp-2)}.analysis-svg{display:block;max-width:none}.analysis-svg-grid{stroke:#ffffff14;stroke-width:1}.analysis-svg-axis{stroke:#ffffff2e;stroke-width:1.2}.analysis-svg-tick,.analysis-svg-x-label,.analysis-svg-reference-label{fill:var(--clr-muted);font-size:11px}.analysis-svg-reference{stroke:#d29922;stroke-width:1.5;stroke-dasharray:6 4}.analysis-chart-legend,.analysis-share-legend,.analysis-cost-totals{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-3);color:var(--clr-muted);font-size:var(--text-sm)}.analysis-legend-item{display:inline-flex;align-items:center;gap:8px}.analysis-legend-swatch{width:12px;height:12px;border-radius:999px;display:inline-block}.analysis-legend-swatch-dashed{background:transparent;border:2px dashed #d29922}.analysis-share-bar{display:flex;width:100%;height:14px;border-radius:999px;overflow:hidden;background:var(--clr-bg);border:1px solid var(--clr-border)}.analysis-share-segment{height:100%}.analysis-share-segment-home{background:linear-gradient(90deg,#3fb950b3,#3fb950f2)}.analysis-share-segment-export{background:linear-gradient(90deg,#58a6ffa6,#58a6ffeb)}.analysis-heatmap{display:flex;flex-direction:column;gap:6px;overflow-x:auto}.analysis-heatmap-hours,.analysis-heatmap-row{display:grid;grid-template-columns:70px repeat(24,minmax(34px,1fr));gap:6px;min-width:980px}.analysis-heatmap-corner,.analysis-heatmap-day,.analysis-heatmap-hour,.analysis-heatmap-cell{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.analysis-heatmap-day,.analysis-heatmap-hour{font-size:var(--text-xs);color:var(--clr-muted)}.analysis-heatmap-hour-faded{opacity:.55}.analysis-heatmap-cell{min-height:38px;padding:4px;border:1px solid rgba(255,255,255,.04);color:#ffffffeb;font-size:11px;font-weight:700;text-align:center}.analysis-progress-list{display:flex;flex-direction:column;gap:var(--sp-3)}.analysis-progress-item{display:flex;flex-direction:column;gap:6px}.analysis-progress-header{display:flex;justify-content:space-between;gap:var(--sp-3);font-size:var(--text-sm);color:var(--clr-text)}.analysis-progress-track{width:100%;height:10px;border-radius:999px;overflow:hidden;background:var(--clr-bg);border:1px solid var(--clr-border)}.analysis-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#58a6ff99,#58a6fff2)}.analysis-progress-fill-warn{background:linear-gradient(90deg,#d299228c,#d29922f2)}.analysis-table-wrap{overflow-x:auto}.analysis-table{width:100%;min-width:480px;border-collapse:collapse}.analysis-table th,.analysis-table td{padding:10px 12px;border-bottom:1px solid var(--clr-border-subtle);text-align:left;font-size:var(--text-sm)}.analysis-table th{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--clr-muted)}@media(max-width:900px){.analysis-grid,.analysis-section-header{display:grid;grid-template-columns:1fr}.analysis-header-meta{min-width:0}}@media(max-width:768px){.analysis-stat-grid,.analysis-inline-metrics,.analysis-compare-grid,.analysis-subgrid{grid-template-columns:1fr}.analysis-card-header{flex-direction:column}.analysis-heatmap-hours,.analysis-heatmap-row{min-width:860px}}@media(max-width:768px){.invoice-header-top{align-items:stretch}.invoice-print-btn{width:100%}.invoice-summary-badges{gap:var(--sp-2)}.invoice-card,.reference-power-card,.gas-invoice-card,.solar-revenue-card{overflow:hidden}.invoice-view .invoice-table{width:100%;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0}.invoice-view .invoice-table thead{display:none}.invoice-view .invoice-table tbody{display:grid;gap:var(--sp-3);padding:var(--sp-3)}.invoice-view .invoice-table tr{display:grid;gap:var(--sp-2);padding:var(--sp-3);background:var(--clr-surface-alt);border:1px solid var(--clr-border-subtle);border-radius:var(--radius-md)}.invoice-view .invoice-table td{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--sp-2);min-width:0;padding:0;border:0;word-break:break-word}.invoice-view .invoice-table td:before{content:"";font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--clr-muted)}.invoice-view .invoice-table:not(.reference-power-table) td:nth-child(1):before{content:"Component"}.invoice-view .invoice-table:not(.reference-power-table) td:nth-child(2):before{content:"Rate / detail"}.invoice-view .invoice-table:not(.reference-power-table) td:nth-child(3):before{content:"Amount"}.invoice-view .reference-power-table td:nth-child(1):before{content:"Reference level"}.invoice-view .reference-power-table td:nth-child(2):before{content:"Fixed charge"}.invoice-view .reference-power-table td:nth-child(3):before{content:"Exceedance"}.invoice-view .reference-power-table td:nth-child(4):before{content:"Estimated total"}.invoice-view .reference-power-table td:nth-child(5):before{content:"Difference"}.invoice-view .invoice-table tr:hover td{background:transparent}.invoice-view .invoice-table .section-label{display:block;padding:var(--sp-2) 0 0;background:transparent;border:0;border-radius:0}.invoice-view .invoice-table .section-label td{display:block;padding:0;color:var(--clr-primary);background:transparent!important}.invoice-view .invoice-table .section-label td:before{content:none}.invoice-view .invoice-table .subtotal-row,.invoice-view .invoice-table .total-row,.invoice-view .invoice-table .net-total-row,.invoice-view .invoice-table .solar-total-row,.invoice-view .invoice-table .reference-power-best-row,.invoice-view .invoice-table .reference-power-current-row{border-color:#58a6ff2e}.invoice-view .invoice-table .reference-power-best-row{background:#3fb95014;border-color:#3fb9502e}.invoice-view .invoice-table .reference-power-current-row{box-shadow:inset 0 0 0 1px #58a6ff29}.invoice-view .invoice-table .subtotal-row td:first-child:before,.invoice-view .invoice-table .total-row td:first-child:before,.invoice-view .invoice-table .net-total-row td:first-child:before,.invoice-view .invoice-table .solar-total-row td:first-child:before{content:none}.invoice-view .invoice-table .total-row{background:var(--clr-primary-muted)}.invoice-view .invoice-table .total-row td,.invoice-view .invoice-table .net-total-row td,.invoice-view .invoice-table .solar-total-row td{background:transparent}.reference-power-card-header{gap:var(--sp-3);margin-bottom:var(--sp-3)}.reference-power-card-copy{max-width:100%}.reference-level-cell{min-width:0;align-items:flex-start}.menu-toggle{display:flex}.navbar-brand{border-right:none;margin-right:0;padding-right:0;flex:1}.navbar-actions{margin-left:0;flex-direction:column;align-items:stretch;width:100%;padding-right:0;margin-top:var(--sp-3)}.theme-toggle,.navbar-cta,.navbar-icon-link{width:100%;justify-content:center}}@media(max-width:480px){.invoice-view .invoice-table tbody{gap:var(--sp-2);padding:var(--sp-2)}.invoice-view .invoice-table tr{padding:var(--sp-3)}.invoice-view .invoice-table td{grid-template-columns:1fr;gap:4px}.reference-level-cell{flex-direction:column}}@page{margin:12mm}@media print{html,body{height:auto;background:#fff!important;color:#111!important}.app-shell,.main-content{display:block;height:auto;overflow:visible!important}.main-content{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}.navbar,.menu-toggle,.range-selector,.range-info-bar,.custom-range-picker,.invoice-print-btn,.loading-bar{display:none!important}.card,.invoice-card,.reference-power-card,.gas-invoice-card,.solar-revenue-card,.invoice-footer,.exceedance-warning{background:#fff!important;color:#111!important;border:1px solid #d6d6d6!important;box-shadow:none!important;break-inside:avoid-page;page-break-inside:avoid}.invoice-section-header{margin-bottom:16pt;padding-bottom:10pt;border-bottom:1px solid #cfcfcf!important}.invoice-header-top{align-items:flex-start;gap:8pt}.invoice-print-note,.invoice-footer .muted,.reference-power-card-copy,.solar-revenue-card .muted,.exceedance-warning p,.period-preview-label,.muted{color:#555!important}.invoice-summary-badges{gap:8pt}.section-header .badge,.reference-level-badge{background:transparent!important;color:#111!important;border:1px solid #cfcfcf!important;box-shadow:none!important}.invoice-view .invoice-table{width:100%!important;min-width:0!important;table-layout:auto!important;border-collapse:collapse!important;border-spacing:0!important}.invoice-view .invoice-table thead{display:table-header-group!important}.invoice-view .invoice-table tbody{display:table-row-group!important;padding:0!important}.invoice-view .invoice-table tr{display:table-row!important;background:transparent!important;border:0!important;box-shadow:none!important;break-inside:avoid-page;page-break-inside:avoid}.invoice-view .invoice-table th,.invoice-view .invoice-table td{display:table-cell!important;padding:7pt 8pt!important;border-bottom:1px solid #d9d9d9!important;color:#111!important;background:transparent!important;word-break:normal!important}.invoice-view .invoice-table td:before{content:none!important}.invoice-view .invoice-table th{font-size:8.5pt;color:#555!important;border-bottom:2px solid #bfbfbf!important}.invoice-view .invoice-table .section-label td{padding-top:12pt!important;padding-bottom:6pt!important;font-size:8.5pt!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.08em;color:#111!important;border-bottom:1px solid #bfbfbf!important}.invoice-view .invoice-table .subtotal-row td,.invoice-view .invoice-table .total-row td,.invoice-view .invoice-table .net-total-row td,.invoice-view .invoice-table .solar-total-row td{font-weight:700!important}.invoice-view .invoice-table .total-row td,.invoice-view .invoice-table .solar-total-row td{border-top:2px solid #4b4b4b!important}.reference-power-current-row td,.reference-power-best-row td{box-shadow:none!important}.comparison-delta-savings,.comparison-delta-extra,.revenue-amount{color:#111!important}}
