:root{--bg: #faf9f6;--surface: #ffffff;--surface-2: #f2f0e9;--ink: #24221c;--ink-2: #5c594e;--ink-3: #726d5f;--line: #e5e1d6;--line-soft: #eeebe2;--accent: #8f5f00;--accent-bright: #eda100;--on-accent: #241a00;--on-status: #ffffff;--s-solar: #eda100;--s-import: #2a78d6;--s-export: #1baf7a;--s-solar-text: #8f5f00;--s-import-text: #1d5faf;--s-export-text: #0e7d58;--s-usage: #cc1d8f;--ok: #008300;--warn: #b95000;--crit: #c42b2b;--focus-ring: #2a78d6;--band: rgba(237, 161, 0, .16);--chart-grid: #eae6da;--chart-solar: #e9b04a;--chart-import: #5b8fd6;--chart-ok: #4ea260;--chart-crit: #d3675f;--shadow: 0 1px 3px rgba(36, 34, 28, .07), 0 4px 16px rgba(36, 34, 28, .05);--font-heading: "Bricolage Grotesque", Georgia, "Times New Roman", serif;--font-body: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--rail-width: 200px}:root[data-theme=dark]{--bg: #14181f;--surface: #1d222b;--surface-2: #232935;--ink: #eceae2;--ink-2: #a8a496;--ink-3: #928e7c;--line: #2e3440;--line-soft: #272d38;--accent: #e5a93d;--accent-bright: #c98500;--on-accent: #241a00;--on-status: #14181f;--s-solar: #c98500;--s-import: #3987e5;--s-export: #199e70;--s-solar-text: #e5a93d;--s-import-text: #6fa5ec;--s-export-text: #3fc492;--s-usage: #ff63c9;--ok: #3fa05a;--warn: #d97b3f;--crit: #e06060;--focus-ring: #3987e5;--band: rgba(201, 133, 0, .22);--chart-grid: #262c37;--chart-solar: #d19a3a;--chart-import: #6c9de0;--chart-ok: #5fae72;--chart-crit: #dc7a72;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{font-family:var(--font-heading);font-weight:600;color:var(--ink);margin:0 0 .4em}p{color:var(--ink-2);margin:0 0 1em}a{color:inherit;text-decoration:none}button,input{font-family:inherit;font-size:inherit}.tabular-nums{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.app-shell{display:flex;min-height:100%}.rail{position:fixed;top:0;left:0;bottom:0;width:var(--rail-width);background:var(--surface-2);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 12px}.rail-wordmark{display:flex;align-items:center;gap:10px;padding:0 8px 20px}.rail-wordmark-dot{width:12px;height:12px;border-radius:50%;background:var(--accent-bright);flex-shrink:0}.rail-wordmark-text{font-family:var(--font-heading);font-weight:600;font-size:17px;color:var(--ink)}.rail-nav{display:flex;flex-direction:column;gap:2px}.rail-section-label{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;padding:0 12px;margin:12px 0 6px}.rail-nav-link{display:block;padding:8px 12px;border-radius:7px;font-size:13.5px;color:var(--ink-2)}.rail-nav-link:hover{background:var(--surface);color:var(--ink)}.rail-nav-link.active{background:var(--surface);color:var(--ink);font-weight:600}.rail-spacer{flex:1}.theme-switch{padding:0 4px 8px}.theme-switch .rail-section-label{padding:0 8px;margin:0 0 6px}.theme-switch-segmented{display:flex;width:100%;margin-bottom:0}.theme-switch-segmented .segmented-btn{flex:1;padding:6px 4px;font-size:12px;text-align:center}.rail-signout{display:block;width:100%;text-align:left;padding:8px 12px;border:none;background:transparent;border-radius:7px;color:var(--ink-2);cursor:pointer}.rail-signout:hover{background:var(--surface);color:var(--ink)}.app-content{margin-left:var(--rail-width);flex:1;padding:clamp(16px,4vw,32px) clamp(16px,4vw,40px);min-width:0;max-width:1600px}.notice{color:var(--ink-2);font-size:13.5px}.notice-warn{color:var(--warn);font-size:13.5px;margin-top:8px}.link-button{padding:0;border:none;background:none;color:var(--accent);font-weight:600;cursor:pointer;text-decoration:underline}.link-button:disabled{opacity:.6;cursor:default}.error-banner{background:var(--surface);border:1px solid var(--crit);color:var(--crit);border-radius:8px;padding:10px 14px;font-size:13.5px;margin-bottom:16px}.signin-page{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.signin-card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:28px}.signin-wordmark{padding:0;margin-bottom:20px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-size:13px;color:var(--ink-2)}.field input{padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink)}.field input:disabled{opacity:.6}.signin-submit{width:100%;padding:10px 12px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.signin-submit:disabled{opacity:.6;cursor:default}.page-title{margin-bottom:4px}.page-subtitle{margin-bottom:24px}.segmented{display:inline-flex;gap:2px;padding:3px;margin-bottom:20px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;max-width:100%;overflow-x:auto}.segmented-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink-3);font:inherit;font-size:14px;font-weight:500;white-space:nowrap;padding:7px 16px;border-radius:7px;cursor:pointer}.segmented-btn:hover{color:var(--ink)}.segmented-btn--active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:20px 22px;margin-bottom:24px}.card-title{font-family:var(--font-heading);font-weight:600;font-size:16px;color:var(--ink);margin-bottom:14px}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:14px;margin-bottom:24px}.card>.kpi-row:last-child{margin-bottom:0}.kpi-tile{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:16px 18px}.kpi-info-btn{position:absolute;top:8px;right:8px;width:18px;height:18px;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink-3);font-family:var(--font-heading);font-style:italic;font-weight:700;font-size:11px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.kpi-info-btn:hover{color:var(--ink);border-color:var(--ink-3)}.kpi-info-pop{position:absolute;top:30px;right:8px;z-index:20;width:max-content;max-width:240px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);font-size:12.5px;line-height:1.45;color:var(--ink-2);text-align:left;white-space:normal}.kpi-label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:8px}.kpi-value{font-family:var(--font-heading);font-weight:600;font-size:26px;color:var(--ink)}.kpi-detail{font-size:12.5px;color:var(--ink-2);margin-top:4px}.chart-legend{display:flex;gap:18px;font-size:12.5px;color:var(--ink-2);margin-bottom:14px}.legend-item{display:flex;align-items:center;gap:6px}.legend-swatch{width:11px;height:11px;border-radius:3px;display:inline-block}.legend-swatch.solar{background:var(--s-solar)}.legend-swatch.band{background:var(--band);border:1px solid var(--line)}.chart-wrap{position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-grid-line{stroke:var(--chart-grid);stroke-width:1;vector-effect:non-scaling-stroke}.chart-band{fill:var(--band)}.chart-bar{fill:var(--chart-solar)}.chart-bar--within{fill:var(--chart-import)}.chart-bar--below{fill:var(--chart-crit)}.chart-bar--above{fill:var(--chart-ok)}.legend-swatch.perf-within{background:var(--chart-import)}.legend-swatch.perf-below{background:var(--chart-crit)}.legend-swatch.perf-above{background:var(--chart-ok)}.money-bar--earned{fill:var(--chart-ok)}.money-bar--cost{fill:var(--chart-crit)}.legend-swatch.money-earned{background:var(--chart-ok)}.legend-swatch.money-cost{background:var(--chart-crit)}.chart-usage-line-casing{fill:none;stroke:var(--surface);stroke-width:4;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.chart-usage-line{fill:none;stroke:var(--s-usage);stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.legend-line{width:14px;height:0;display:inline-block}.chart-usage-swatch{border-top:3px solid var(--s-usage)}.kpi-detail--earned{color:var(--ok)}.kpi-detail--cost{color:var(--crit)}.chart-bar-group:hover .chart-bar,.chart-bar-group:focus-visible .chart-bar{opacity:.8}.chart-null-tick{stroke:var(--ink-3);stroke-width:1.5;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.chart-value-label{fill:var(--ink-2);font-family:var(--font-mono);font-size:calc(11px / var(--chart-scale, 1))}.chart-axis-label{fill:var(--ink-3);font-family:var(--font-mono);font-size:calc(10px / var(--chart-scale, 1))}.chart-axis-date-label{fill:var(--ink-3);font-size:calc(10.5px / var(--chart-scale, 1))}.chart-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 8px));background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:12px;line-height:1.4;color:var(--ink);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;z-index:5}.chart-tooltip-title{font-weight:600;margin-bottom:2px}.chart-tooltip-detail{color:var(--ink-2)}.range-toggle{display:inline-flex;gap:4px;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;margin-bottom:20px}.range-toggle-btn{border:none;background:transparent;border-radius:6px;padding:7px 14px;font-size:13px;color:var(--ink-2);cursor:pointer}.range-toggle-btn:hover{color:var(--ink)}.range-toggle-btn.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}.weather-summary{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft);font-size:13px;color:var(--ink-2)}.weather-summary-day{font-weight:600;color:var(--ink)}.ytd-stat{font-size:14px;color:var(--ink);margin-bottom:16px}.ytd-stat strong{font-weight:600}.legend-swatch.chart-bar-year-0{background:var(--s-solar)}.legend-swatch.chart-bar-year-1{background:var(--s-import)}.legend-swatch.chart-bar-year-2{background:var(--s-export)}.chart-bar-year-0{fill:var(--s-solar)}.chart-bar-year-1{fill:var(--s-import)}.chart-bar-year-2{fill:var(--s-export)}.chart-year-text-0{color:var(--s-solar-text)}.chart-year-text-1{color:var(--s-import-text)}.chart-year-text-2{color:var(--s-export-text)}.chart-tooltip-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.year-note{margin-top:14px;margin-bottom:0}.pr-trend{margin-top:4px}.pr-trend-line{fill:none;stroke:var(--s-solar);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pr-trend-dot{fill:var(--s-solar)}.health-rows{display:flex;flex-direction:column;gap:10px}.health-row{display:flex;align-items:center;gap:12px}.health-row-label{width:96px;flex-shrink:0;font-size:12.5px;color:var(--ink-2)}.health-cells{display:flex;gap:6px;flex-wrap:wrap}.health-cell{width:38px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;color:var(--on-status)}.health-cell.status-ok{background:var(--ok)}.health-cell.status-warn{background:var(--warn)}.health-cell.status-crit{background:var(--crit)}.health-cell.status-null{background:transparent;border:1px dashed var(--line);color:var(--ink-3)}.health-as-of{color:var(--ink-3);font-size:12px;margin-top:10px}.degradation-warning-list{display:flex;flex-direction:column;gap:14px}.degradation-warning-row{border-left:3px solid var(--warn);padding-left:12px}.degradation-warning-heading{color:var(--warn);font-weight:600;font-size:13.5px;margin-bottom:2px}.degradation-warning-detail{color:var(--ink-2);font-size:13.5px}.recent-readings{display:flex;flex-direction:column}.reading-delta{font-size:12.5px;color:var(--ink-2)}.reading-net{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right}.reading-net--earned{color:var(--good, #2f9e59)}.reading-net--cost{color:var(--ink)}.dial-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dial-dot.import{background:var(--s-import)}.dial-dot.export{background:var(--s-export)}.badge-estimated{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:4px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);flex-shrink:0}@media(max-width:480px){.heatmap-scroll{overflow-x:auto}}.heatmap{display:grid;grid-auto-rows:24px;gap:3px;align-items:center}.heatmap-corner{height:100%}.heatmap-col-header{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);text-align:center;align-self:end;padding-bottom:4px}.heatmap-row-label{display:flex;flex-direction:column;justify-content:center;padding-right:10px;min-width:0}.heatmap-row-uid{font-size:12px;color:var(--ink)}.heatmap-row-group{font-size:10.5px;color:var(--ink-3)}.heatmap-cell-wrap{position:relative}.heatmap-cell{width:100%;height:20px;min-height:18px;border-radius:4px;background:var(--s-solar);cursor:default}.heatmap-cell--below{background:var(--crit)}.heatmap-cell--above{background:var(--ok)}.heatmap-cell--on{background:var(--s-solar)}.heatmap-group-heading{grid-column:1 / -1;display:flex;align-items:baseline;gap:8px;margin:14px 0 4px;padding-bottom:4px;border-bottom:1px solid var(--line-soft);font-size:12px;font-weight:600;color:var(--ink)}.heatmap-group-heading:first-child{margin-top:4px}.heatmap-group-count{font-size:10.5px;font-weight:400;color:var(--ink-3)}.heatmap-row-label--grouped{justify-content:center}.heatmap-cell-empty{background:transparent;border:1px dashed var(--line)}.heatmap-cell:hover,.heatmap-cell:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.heatmap-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:12px;line-height:1.4;color:var(--ink);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;z-index:5}.heatmap-tooltip-below{bottom:auto;top:calc(100% + 8px)}.heatmap-note{color:var(--ink-3);font-size:12px;margin-top:10px}.disclosure-trigger{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;padding:0;margin-bottom:4px;font-size:13.5px;font-weight:600;color:var(--ink-2);cursor:pointer}.disclosure-trigger:hover,.disclosure-trigger:focus-visible{color:var(--ink)}.disclosure-chevron{display:inline-block;transition:transform .15s ease;font-size:10px}.disclosure-chevron-open{transform:rotate(90deg)}.group-manager{display:flex;flex-direction:column;gap:20px;margin-top:16px}.group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.group-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft)}.group-item:last-child{border-bottom:none}.group-name{background:none;border:none;padding:0;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left}.group-name:disabled{cursor:default;color:var(--ink-2)}.group-rename-form input{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font-size:14px}.group-count{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);flex:1}.group-delete{background:none;border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-size:12px;color:var(--crit);cursor:pointer}.group-delete:disabled{cursor:default;color:var(--ink-3)}.group-create-form{display:flex;gap:8px}.group-create-form input{flex:1;max-width:220px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink)}.group-create-form button{padding:8px 14px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.group-create-form button:disabled{opacity:.6;cursor:default}.inverter-assign-list{display:flex;flex-direction:column;gap:8px}.inverter-assign-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.inverter-assign-label{color:var(--ink-2)}.inverter-assign-row select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}.inverter-assign-panelcount{width:48px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}.inverter-assign-panelcount-static{color:var(--ink-2)}.overdue-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:10px 14px;font-size:13.5px;margin-bottom:24px}.overdue-banner-message{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.overdue-banner-link{font-weight:600;text-decoration:underline}.overdue-banner-dismiss{border:none;background:transparent;color:var(--warn);cursor:pointer;font-size:13.5px;padding:2px 4px;flex-shrink:0}.reading-form .field textarea{padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);resize:vertical;min-height:64px;font-family:inherit}.field-warning{color:var(--warn);font-size:12.5px;margin:2px 0 0}.field-checkbox{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:14px;cursor:pointer}.field-checkbox input{width:auto;margin:0;cursor:pointer}.field-note{color:var(--fg-muted);font-size:12.5px;margin:4px 0 0}.reading-form-submit{padding:10px 16px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.reading-form-submit:disabled{opacity:.6;cursor:default}.success-banner{background:var(--surface);border:1px solid var(--ok);color:var(--ok);border-radius:8px;padding:10px 14px;font-size:13.5px;margin-bottom:16px}.success-banner-detail{color:var(--ink-2);margin:4px 0 0}.warn-banner{background:var(--surface);border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:10px 14px;font-size:13.5px;margin-bottom:16px}.viewer-notice{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:8px;padding:10px 14px;font-size:13.5px;margin-bottom:16px}.rate-table-scroll{overflow-x:auto;margin-bottom:16px}.rate-table{width:100%;border-collapse:collapse;font-size:13px}.rate-table th,.rate-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.rate-table th{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:400}.rate-table tfoot td{border-bottom:none;border-top:1px solid var(--line);font-weight:600;color:var(--ink)}.rate-table input,.rate-table select{padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font-size:13px;width:100%;min-width:90px}.rate-row-editing td{background:var(--surface-2)}.rate-table-actions{display:flex;gap:6px}.rate-table-actions button{padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:none;color:var(--ink);font-size:12px;cursor:pointer}.rate-table-actions button:disabled{cursor:default;color:var(--ink-3)}.rate-add-form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;padding:16px;background:var(--surface-2);border-radius:10px;margin-bottom:12px}.rate-add-form .field{margin-bottom:0;min-width:140px}.rate-add-form .field-inline,.install-cost-form .field-inline{flex-direction:row;align-items:center;gap:8px}.install-cost-form .field-inline input[type=checkbox]{width:auto}.rate-add-actions{display:flex;gap:8px}.rate-add-actions button{padding:8px 14px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.rate-add-actions button[type=button]{background:none;border:1px solid var(--line);color:var(--ink);font-weight:400}.rate-add-actions button:disabled{opacity:.6;cursor:default}.rate-add-toggle{padding:8px 14px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.rate-add-toggle:disabled{opacity:.6;cursor:default}.bill-entry-form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;padding:16px;background:var(--surface-2);border-radius:10px}.bill-entry-form .field{margin-bottom:0;min-width:160px}.bill-entry-form .field-wide{min-width:100%}.field select,.field textarea{padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);font-family:inherit}.field select:disabled,.field textarea:disabled{opacity:.6}.bill-entry-actions{display:flex;gap:8px;width:100%}.bill-entry-actions button{padding:8px 14px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.bill-entry-actions button:disabled{opacity:.6;cursor:default}.reconciliation-detail{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.variance-ok{color:var(--ok);font-weight:600}.variance-warn{color:var(--warn);font-weight:600}.variance-crit{color:var(--crit);font-weight:600}.bill-compare{margin-top:8px}.bill-compare-title{margin:0 0 8px;font-size:.95rem;font-weight:600}.rate-change-form{border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:16px;background:var(--surface-2)}.rate-change-title{margin:0 0 12px;font-size:.95rem;font-weight:600}.rate-change-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.charge-manager{margin:12px 0 16px}.charge-group{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}.charge-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--line)}.charge-group-name{font-weight:600;font-size:14px}.charge-group-actions,.charge-row-actions{display:flex;gap:6px;flex-shrink:0}.charge-list{list-style:none;margin:0;padding:0}.charge-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-top:1px solid var(--line-soft)}.charge-row:first-child{border-top:none}.charge-row--editing{display:block;background:var(--surface-2)}.charge-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}.charge-row-name{font-size:14px}.charge-row-meta{font-size:12px;color:var(--ink-3)}.charge-edit-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:10px}.switchover-alert{border-left:3px solid var(--accent-bright)}.switchover-hindsight{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.reading-row--editing{display:block;background:var(--surface-2);border-radius:10px;padding:12px}.reading-edit-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.loan-payoff{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:4px 0 16px;background:var(--surface-2)}.loan-payoff-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.loan-payoff-head .bill-compare-title{margin-bottom:8px}.loan-payoff-bar{height:10px;border-radius:5px;background:var(--line);overflow:hidden;margin:6px 0 8px}.loan-payoff-fill{height:100%;background:var(--s-export);border-radius:5px}.loan-payoff-caption{font-size:13.5px;color:var(--ink);margin:0 0 6px}.loan-payoff-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}.bill-breakdown{margin:4px 0 16px;max-width:420px}.bill-breakdown-table td:last-child{text-align:right;white-space:nowrap}.bill-breakdown-table td:first-child{width:100%}.reconciliation-more{margin-top:12px;text-align:center}.reconciliation-more-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);font:inherit;font-size:13px;font-weight:500;padding:8px 18px;border-radius:8px;cursor:pointer}.reconciliation-more-btn:hover{color:var(--ink);border-color:var(--ink-3)}.bill-compare-kwh{font-size:.85rem;color:var(--fg-muted);margin-bottom:8px}.bill-compare-kwh strong{color:var(--fg)}.bill-compare-kwh-note{color:var(--warn, var(--crit))}.bill-compare-toggle{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;font-size:.9rem;cursor:pointer}.bill-compare-toggle input{margin-top:2px}.bill-compare-toggle .notice{display:inline;margin:0}.bill-compare-flagged td{background:color-mix(in srgb,var(--crit) 12%,transparent)}.bill-compare-ok{color:var(--ok);font-weight:600}.bill-compare-off{color:var(--crit);font-weight:600}.bill-compare-total td{font-weight:700;border-top:1px solid var(--line)}.savings-bar{fill:var(--accent-bright)}.chart-bar-group:hover .savings-bar,.chart-bar-group:focus-visible .savings-bar{opacity:.8}.savings-positive{color:var(--ok)}.payback-progress{margin-top:16px}.payback-progress-track{height:10px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}.payback-progress-fill{height:100%;background:var(--accent-bright);border-radius:5px 0 0 5px}.install-cost-form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-top:16px;padding:16px;background:var(--surface-2);border-radius:10px}.install-cost-form .field{margin-bottom:0;min-width:200px}.install-cost-actions{display:flex;align-items:center;gap:12px}.install-cost-actions button{padding:8px 14px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.install-cost-actions button:disabled{opacity:.6;cursor:default}.switchover-headline{font-family:var(--font-heading);font-weight:600;font-size:18px;color:var(--ink);margin-bottom:6px}.switchover-detail{font-size:14px;color:var(--ink-2);margin-bottom:4px}.switchover-benefit{color:var(--ok);font-weight:600}.switchover-rate-transition{font-size:13.5px;color:var(--ink-2);margin-bottom:16px}.switchover-curve-area{fill:var(--band)}.switchover-curve-line{fill:none;stroke:var(--s-solar);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.switchover-marker-line{stroke:var(--accent-bright);stroke-width:1.5;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.switchover-marker-label{fill:var(--s-solar-text);font-size:calc(10.5px / var(--chart-scale, 1));font-weight:600}.switchover-rate-form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-top:16px;padding:16px;background:var(--surface-2);border-radius:10px}.switchover-rate-form .field{margin-bottom:0;min-width:200px}.switchover-rate-form button{padding:8px 14px;border:none;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;cursor:pointer}.switchover-rate-form button:disabled{opacity:.6;cursor:default}.heatmap-legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;font-size:11.5px;color:var(--ink-2)}.legend-swatch.heat-below{background:var(--crit)}.legend-swatch.heat-on{background:var(--s-solar)}.legend-swatch.heat-above{background:var(--ok)}.heatmap-legend-note{flex:1 1 260px;min-width:220px;color:var(--ink-3);line-height:1.5}.heatmap-row-panels{font-size:10px;color:var(--ink-3)}.field-row{display:flex;gap:12px;flex-wrap:wrap}.field-row>.field{flex:1 1 160px;min-width:0}.member-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.member-row:last-child{border-bottom:none}.member-identity{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.member-name{font-weight:500;color:var(--ink)}.member-email,.member-joined{font-size:11.5px;color:var(--ink-3)}.member-role{flex-shrink:0}.badge-role{font-size:11px;text-transform:capitalize;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2)}.badge-expired{color:var(--ink-3);border-style:dashed}.readings-table{width:100%;border-collapse:collapse}.readings-table th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);padding:0 10px 8px 0;border-bottom:1px solid var(--line);white-space:nowrap}.readings-table th.num,.readings-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.readings-table td{padding:11px 10px 11px 0;border-bottom:1px solid var(--line-soft);vertical-align:middle}.readings-table tr:last-child td{border-bottom:none}.readings-table td:last-child,.readings-table th:last-child{padding-right:0;text-align:right;white-space:nowrap}.readings-table .dial-dot{display:inline-block;margin-right:6px;vertical-align:middle}.readings-table .reading-time{color:var(--ink-2);font-size:12.5px;white-space:nowrap}.readings-table .reading-delta{color:var(--ink-2);font-size:12.5px}.readings-table .reading-net{font-size:12.5px}.readings-table .badge-estimated{margin-left:8px}.readings-table .reading-actions{display:table-cell}.readings-note{margin:10px 0 0;font-size:11.5px;color:var(--ink-3)}tr.reading-row--editing>td{padding:14px 0}.cost-summary{margin:4px 0 14px;padding:10px 12px;border-radius:8px;background:var(--surface-2, var(--surface));border:1px solid var(--line);font-size:13px;color:var(--ink-2)}.cost-summary strong{color:var(--ink)}.row-actions{display:flex;gap:8px;justify-content:flex-end}.row-action{background:none;border:1px solid var(--line);border-radius:6px;padding:4px 11px;font-size:12px;font-weight:500;color:var(--ink-2);cursor:pointer;text-decoration:none;white-space:nowrap}.row-action:hover{border-color:var(--ink-3);color:var(--ink)}.row-action--danger:hover{border-color:var(--crit);color:var(--crit)}.row-action:disabled{opacity:.6;cursor:default}.card-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.card-title-row .card-title{margin:0}.range-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.range-select{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:5px 8px;font-size:12px;color:var(--ink-2);cursor:pointer;max-width:150px}.range-select--active{border-color:var(--accent);color:var(--ink);font-weight:600}.money-prior-line{stroke:var(--ink-3);stroke-width:1.75;stroke-dasharray:4 3;stroke-linejoin:round;stroke-linecap:round;opacity:.85}.range-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.compare-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);cursor:pointer;white-space:nowrap}.chart-legend-note{display:flex;align-items:center;gap:7px;margin:10px 0 0;font-size:11.5px;color:var(--ink-3)}.legend-swatch--prior{width:16px;height:0;border-radius:0;border-top:2px dashed var(--ink-3);background:none;flex-shrink:0}.chart-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.chart-total-main{font-size:15px}.chart-total-value--earned{color:var(--ok);font-weight:700;font-variant-numeric:tabular-nums}.chart-total-value--cost{color:var(--crit);font-weight:700;font-variant-numeric:tabular-nums}.chart-total-label{color:var(--ink-2);font-size:13px}.chart-total-prior{font-size:12.5px;color:var(--ink-3)}.dial-check{margin:4px 0 18px}.dial-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.dial-row:last-of-type{border-bottom:none}.dial-row-label{min-width:128px;color:var(--ink-2)}.dial-row-values{color:var(--ink)}.dial-row-verdict{color:var(--ink-3);margin-left:auto}.dial-row--exact .dial-row-verdict{color:var(--ok)}.dial-row--out-of-range .dial-row-verdict{color:var(--crit);font-weight:600}button.danger{background:var(--surface);color:var(--crit);border:1px solid var(--crit)}button.danger:hover:not(:disabled){background:var(--crit);color:#fff}.legal-links{font-size:12px;color:var(--ink-3);margin:12px 0 0;text-align:center}.legal-links a{color:var(--ink-3);text-decoration:none}.legal-links a:hover{color:var(--ink);text-decoration:underline}.rail-legal{text-align:left;margin-top:10px}input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:.55}.field-muted input{opacity:.45}.poll-now{display:inline-flex;align-items:baseline;gap:10px;font-size:13px}.poll-now-status{color:var(--ink-3);font-size:12px}.assist-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 16px;padding:10px 14px;border-radius:8px;background:var(--warn);color:#fff}.assist-banner .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.assist-banner .link-button{color:#fff;text-decoration:underline}.kpi-action{margin-top:6px}.kpi-action .poll-now{font-size:12px}.muted{color:var(--ink-3);font-size:.85em}.inverter-assign-actions{margin-left:auto;align-items:center}.inverter-replace-select{font-size:12.5px;max-width:12rem}.inverter-hidden-list{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}.inverter-hidden-title{font-size:.95rem;margin:0 0 .25rem;color:var(--ink-2)}@media(max-width:720px){.inverter-assign-row{flex-wrap:wrap}.inverter-assign-actions{margin-left:0;width:100%}}.switchover-sim{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}.switchover-sim-title{font-size:1rem;margin:0 0 .25rem}.switchover-sim-picker{max-width:16rem}.switchover-sim-result{margin:.5rem 0 0;font-weight:600}.switchover-sim-reference{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:4 4}.switchover-sim-reference-label{fill:var(--ink-3);font-size:10px}.switchover-sim-dot{fill:var(--accent-bright, var(--accent))}.switchover-sim-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.switchover-sim-add{display:flex;gap:.4rem}.switchover-sim-add input{width:7rem}.switchover-sim-chips .chip{margin-right:.4rem}.switchover-sim-results{margin:.5rem 0 0;padding-left:1.1rem}.switchover-sim-results li{margin:.15rem 0}.switchover-sim-zero{stroke:var(--ink-2)}.switchover-sim-line{fill:none;stroke-width:1.75;vector-effect:non-scaling-stroke}.switchover-sim-line-label{font-size:calc(10px / var(--chart-scale, 1));font-weight:600}.switchover-sim-line-0{stroke:var(--accent-bright, var(--accent));fill:var(--accent-bright, var(--accent))}.switchover-sim-line-1{stroke:#3b82f6;fill:#3b82f6}.switchover-sim-line-2{stroke:#16a34a;fill:#16a34a}.switchover-sim-line-3{stroke:#d946ef;fill:#d946ef}.switchover-sim-line-4{stroke:#f97316;fill:#f97316}.switchover-sim-line polyline,polyline.switchover-sim-line{fill:none}.setup-checklist-head{display:flex;justify-content:space-between;align-items:baseline}.setup-steps{list-style:none;padding:0;margin:.25rem 0 0}.setup-step{display:flex;gap:.6rem;padding:.35rem 0}.setup-step--done{color:var(--ink-3)}.setup-step-mark{width:1.2rem;text-align:center;color:var(--accent)}.setup-step--done .setup-step-mark{color:var(--ok, #008300)}.setup-step-hint{color:var(--ink-3);font-size:.9em}.setup-help{padding-left:1.1rem}.setup-help li{margin:.2rem 0}.bill-breakdown-part td{color:var(--ink-3);font-size:12px;border-top:none}.bill-breakdown-part td:first-child{padding-left:24px}.panel-view-bar{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.panel-view-group{display:flex;align-items:baseline;gap:8px;margin:14px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line-soft);font-weight:600}.panel-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.panel-tile{--panel-strength: 0;position:relative;padding:8px 8px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.panel-tile--below{border-color:color-mix(in srgb,var(--chart-crit) calc(var(--panel-strength) * 100%),var(--line));background:color-mix(in srgb,var(--chart-crit) calc(var(--panel-strength) * 22%),var(--surface))}.panel-tile--above{border-color:color-mix(in srgb,var(--chart-ok) calc(var(--panel-strength) * 100%),var(--line));background:color-mix(in srgb,var(--chart-ok) calc(var(--panel-strength) * 22%),var(--surface))}.panel-tile-watts{font-size:18px;font-weight:600;line-height:1.1;color:var(--ink)}.panel-tile-watts:after{content:" W";font-size:11px;font-weight:400;color:var(--ink-3)}.panel-tile-spark{display:block;width:100%;height:22px;margin:4px 0 2px;fill:var(--chart-solar);opacity:.55}.panel-tile-kwh{font-size:11px;color:var(--ink-2);min-height:14px}.panel-tile-id{font-size:10.5px;color:var(--ink-3)}.panel-tile-channel{color:var(--ink);font-weight:600}.panel-tiles--roof{justify-content:start;grid-auto-rows:minmax(0,auto)}.panel-tiles--unplaced{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.panel-view-actions{display:inline-flex;gap:14px}.layout-face{margin-bottom:6px}.layout-grid{display:grid;gap:4px;overflow-x:auto;padding-bottom:4px}.layout-cell{min-height:40px;border:1px dashed var(--line);border-radius:6px;background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:10.5px;cursor:pointer;padding:2px}.layout-cell--panel{border-style:solid;background:color-mix(in srgb,var(--chart-solar) 25%,var(--surface))}.layout-cell--selected,.layout-tray-panel.layout-cell--selected{outline:2px solid var(--focus-ring);outline-offset:1px}.layout-tray{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.layout-tray-label{font-size:12px;color:var(--ink-3)}.layout-tray-panel{border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-family:var(--font-mono);font-size:11px;padding:5px 8px;cursor:pointer}.layout-actions{display:flex;align-items:center;gap:14px;margin-top:12px}.group-move{background:none;border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:10px;color:var(--ink-2);cursor:pointer}.group-move:disabled{color:var(--ink-3);opacity:.5;cursor:default}.landing{min-height:100%;display:flex;flex-direction:column;background:var(--bg);color:var(--ink)}.landing-header{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(920px,100%);margin:0 auto;padding:20px 24px}.landing-wordmark{padding:0}.landing-signin{font-size:14px;font-weight:600;color:var(--ink-2);text-decoration:none}.landing-signin:hover{color:var(--accent)}.landing-main{flex:1;width:min(920px,100%);margin:0 auto;padding:0 24px 8px}.landing-hero{padding:32px 0 8px}.landing-title{font-family:var(--font-heading);font-weight:700;font-size:clamp(32px,6vw,52px);line-height:1.08;letter-spacing:-.02em;margin:0;max-width:15ch}.landing-lede{font-size:clamp(16px,2.2vw,19px);line-height:1.55;color:var(--ink-2);max-width:56ch;margin:20px 0 0}.landing-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.landing-button{display:inline-block;padding:11px 20px;border-radius:7px;background:var(--accent-bright);color:var(--on-accent);font-weight:600;font-size:15px;text-decoration:none;border:1px solid transparent}.landing-button:hover{filter:brightness(.96)}.landing-button--quiet{background:transparent;color:var(--ink);border-color:var(--line)}.landing-diagram{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;max-width:320px;margin:40px 0 0}.landing-panel{position:relative;height:40px;border:1px solid var(--line);border-radius:5px;background:var(--surface);overflow:hidden}.landing-panel:after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--panel-share, 100%);background:var(--chart-solar);opacity:.85}.landing-panel--low:after{background:var(--chart-crit)}.landing-caption{font-size:12.5px;color:var(--ink-3);margin:10px 0 0;max-width:44ch}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px 40px;margin:64px 0 0;padding-top:40px;border-top:1px solid var(--line)}.landing-feature h2{font-family:var(--font-heading);font-weight:600;font-size:18px;line-height:1.25;margin:0 0 8px;color:var(--ink)}.landing-feature p{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-2)}.landing-requires{margin:64px 0 0;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.landing-requires h2{font-family:var(--font-heading);font-weight:600;font-size:18px;margin:0 0 14px}.landing-requires ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.landing-requires li{font-size:14.5px;line-height:1.6;color:var(--ink-2);padding-left:16px;position:relative}.landing-requires li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent-bright)}.landing-requires strong{color:var(--ink);font-weight:600}.landing-note{font-size:13px;color:var(--ink-3);margin:16px 0 0;line-height:1.55}.landing-close{margin:64px 0 0;padding-top:40px;border-top:1px solid var(--line)}.landing-close h2{font-family:var(--font-heading);font-weight:700;font-size:clamp(24px,4vw,32px);letter-spacing:-.015em;margin:0}.landing-close p{font-size:15.5px;line-height:1.6;color:var(--ink-2);max-width:58ch;margin:14px 0 0}.landing-footer{width:min(920px,100%);margin:64px auto 0;padding:20px 24px 32px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink-3)}.landing-footer-mark{font-family:var(--font-heading);font-weight:600;color:var(--ink-2)}@media(max-width:560px){.landing-diagram{max-width:none}.landing-features{margin-top:48px}}.landing-close a:not(.landing-button),.landing-requires a:not(.landing-button),.landing-note a:not(.landing-button){color:var(--accent);text-decoration:underline;text-underline-offset:2px}.landing-close a:not(.landing-button):hover,.landing-requires a:not(.landing-button):hover,.landing-note a:not(.landing-button):hover{color:var(--accent-bright)}.monitor-day-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}.monitor-day-nav input[type=date],.monitor-select,.monitor-measure-form select{padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);font:inherit;font-size:13px}.monitor-measure-form select{padding:9px 11px}.monitor-measure-form .field-checkbox{margin:0 0 16px}.monitor-measure-form .signin-submit{margin-bottom:16px}.monitor-bar-cell{width:45%;min-width:120px}.monitor-bar{height:8px;border-radius:4px;background:var(--accent)}.monitor-bar--other{background:var(--ink-3);opacity:.5}.monitor-row--selected td{background:var(--surface-2)}.monitor-running{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.monitor-running:last-child{border-bottom:none}.monitor-run-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.monitor-run-controls .segmented{margin-bottom:0}.flow-scroll{overflow-x:auto}.flow-svg{min-width:640px}.flow-band{opacity:.38;transition:opacity .12s ease}.flow-band:hover{opacity:.65}.flow-band--solar{fill:var(--s-solar)}.flow-band--grid{fill:var(--s-import)}.flow-band--usage{fill:var(--s-usage)}.flow-band--other{fill:var(--ink-3)}.flow-node--solar{fill:var(--s-solar)}.flow-node--grid{fill:var(--s-import)}.flow-node--house{fill:var(--ink-2)}.flow-node--export{fill:var(--s-export)}.flow-node--circuit{fill:var(--s-usage)}.flow-node--other{fill:var(--ink-3)}.flow-label{fill:var(--ink);font-size:calc(12.5px / var(--chart-scale, 1));font-weight:500}.flow-label--muted{fill:var(--ink-2)}.flow-value{fill:var(--ink-3);font-size:calc(11.5px / var(--chart-scale, 1));font-variant-numeric:tabular-nums}.sensor-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.sensor-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}.sensor-nav-label{font-weight:600;min-width:11em;text-align:center}.sensor-line{fill:none;stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.sensor-area{opacity:.16}.sensor-zero-line{stroke:var(--ink-3);stroke-width:1;vector-effect:non-scaling-stroke}.sensor-cursor{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.sensor-dot{stroke:var(--surface);stroke-width:2;vector-effect:non-scaling-stroke}.chart-bar-group:hover .sensor-bar,.chart-bar-group:focus-visible .sensor-bar{opacity:.8}.sensor-line--house{stroke:var(--accent)}.sensor-line--solar{stroke:var(--s-solar)}.sensor-line--grid{stroke:var(--s-import)}.sensor-line--usage{stroke:var(--s-usage)}.sensor-line--other{stroke:var(--ink-2)}.sensor-area--house,.sensor-bar--house,.sensor-dot--house{fill:var(--accent)}.sensor-area--solar,.sensor-bar--solar,.sensor-dot--solar{fill:var(--s-solar)}.sensor-area--grid,.sensor-bar--grid,.sensor-dot--grid{fill:var(--s-import)}.sensor-area--usage,.sensor-bar--usage,.sensor-dot--usage{fill:var(--s-usage)}.sensor-area--other,.sensor-bar--other,.sensor-dot--other{fill:var(--ink-3)}.sensor-band{fill-opacity:.22;stroke:none}.sensor-band--house{fill:var(--accent)}.sensor-band--solar{fill:var(--s-solar)}.sensor-band--grid{fill:var(--s-import)}.sensor-band--usage{fill:var(--s-usage)}.sensor-band--other{fill:var(--ink-3)}.flow-link{cursor:pointer}.flow-link:hover .flow-label,.flow-link:focus-visible .flow-label{text-decoration:underline}.sort-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;white-space:nowrap}.sort-arrow{opacity:.25}.sort-arrow--active{opacity:1}.monitor-groups{margin-bottom:14px}.sensor-line--rest{stroke:var(--ink-2);stroke-dasharray:5 4}.group-editor-row{border-bottom:1px solid var(--line-soft);padding:10px 0}.group-editor-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.group-editor-head .row-actions{margin-left:auto}.group-editor-body{margin-top:10px}.group-members{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:4px 16px;margin:6px 0 14px}.group-members .field-checkbox{margin:0;font-size:13px}.alert-subhead{font-size:13px;font-weight:600;color:var(--ink-2);margin:14px 0 6px}.alert-days{display:flex;flex-wrap:wrap;gap:6px}.alert-day{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}.alert-day--on{background:var(--accent-bright);border-color:var(--accent);color:var(--on-accent);font-weight:600}.alert-people{display:flex;flex-wrap:wrap;gap:8px 22px}.alert-people .field-checkbox{margin:0}.recon-drift{margin-left:6px;font-size:12px;white-space:nowrap}.recon-drift--ok{color:var(--ok)}.recon-drift--off{color:var(--warn)}
