.ma-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ma-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:14px 32px;border-bottom:1px solid var(--border-default);background:var(--surface-card)}.ma-header__logo{height:28px;width:auto;flex-shrink:0}html[data-theme=dark] .ma-header__logo--plate{background:#fff;border-radius:var(--radius-sm);padding:3px 8px}.ma-header__nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;min-width:0}.ma-header__link{position:relative;padding:4px 0;font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-secondary);text-decoration:none;white-space:nowrap}a.ma-header__link:hover,.ma-header__link--current{color:var(--text-link)}.ma-header__link--current:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--color-accent);border-radius:1px}.ma-header__actions{margin-left:auto;display:flex;align-items:center;gap:8px}.ma-header__toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}.ma-header__toggle:hover{color:var(--text-primary);border-color:var(--color-primary)}.ma-header__menu{display:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer}.ma-header__menu:hover{color:var(--text-primary);border-color:var(--color-primary)}@media(max-width:1024px){.ma-header{position:relative;flex-wrap:nowrap;padding:12px 16px}.ma-header__menu{display:inline-flex}.ma-header__nav{display:none}.ma-header__nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;top:100%;left:0;right:0;z-index:var(--z-sticky, 100);padding:8px 0;background:var(--surface-card);border-bottom:1px solid var(--border-default);box-shadow:var(--shadow-md)}.ma-header__nav .ma-header__link{display:block;padding:14px 20px;font-size:var(--text-md);white-space:normal}a.ma-header__link:hover{background:var(--color-primary-subtle)}.ma-header__link--current:after{inset:8px auto 8px 0;width:3px;height:auto}}.ma-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 16px;padding:16px;font-size:.78rem;color:var(--text-secondary);border-top:1px solid var(--border-default)}.ma-footer__meta{display:inline-flex;align-items:center;gap:12px}.ma-footer__version{font-variant-numeric:tabular-nums;opacity:.7}.ma-footer a{color:var(--text-link);text-decoration:none}.ma-footer a:hover{text-decoration:underline}.ma-footer__link{padding:0;border:none;background:none;font:inherit;color:var(--text-link);cursor:pointer}.ma-footer__link:hover{color:var(--text-link-hover);text-decoration:underline}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--fw-semibold);cursor:pointer;border:1px solid transparent;transition:all var(--duration-base) var(--ease-standard)}.btn svg{width:16px;height:16px;flex-shrink:0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--text-on-primary);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn--ghost:hover:not(:disabled){color:var(--text-primary)}.alert{display:block;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-normal);margin-bottom:var(--space-4)}.alert__body{display:flex;align-items:flex-start;gap:10px}.alert__body svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}.alert--info{background:var(--color-info-bg);border:1px solid var(--color-info);color:var(--text-primary)}.alert--warn{background:var(--color-warning-bg);border:1px solid var(--color-warning);color:var(--text-primary)}.alert--error{background:var(--color-danger-bg);border:1px solid var(--color-danger);color:var(--text-primary)}.alert--success{background:var(--color-success-bg);border:1px solid var(--color-success);color:var(--text-primary)}.brd-overlay[data-v-e468eb46]{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a12208c}.brd[data-v-e468eb46]{width:100%;max-width:520px;max-height:calc(100vh - 40px);overflow-y:auto;padding:22px 24px;border-radius:12px;border:1px solid var(--border-default);background:var(--surface-card);box-shadow:var(--shadow-xl)}.brd__title[data-v-e468eb46]{margin:0 0 10px;font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.brd__msg[data-v-e468eb46]{margin:0 0 18px;font-size:var(--text-sm);line-height:1.55;color:var(--text-secondary)}.brd__field[data-v-e468eb46]{margin-bottom:14px}.brd__label[data-v-e468eb46]{display:block;margin-bottom:6px;font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.brd__input[data-v-e468eb46]{width:100%;padding:9px 11px;border-radius:8px;border:1px solid var(--border-default);background:var(--surface-sunken);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm)}.brd__input[data-v-e468eb46]:focus{outline:none;border-color:var(--color-primary)}.brd__input[data-v-e468eb46]:disabled{opacity:.6}.brd__textarea[data-v-e468eb46]{min-height:120px;resize:vertical;line-height:1.5}.brd__hint[data-v-e468eb46]{margin:5px 0 0;font-size:var(--text-xs);color:var(--text-subtle)}.brd__hint--warn[data-v-e468eb46]{color:var(--color-warning)}.brd__shot-add[data-v-e468eb46]{width:100%}.brd__shot[data-v-e468eb46]{border:1px solid var(--border-default);border-radius:8px;overflow:hidden;background:var(--surface-sunken)}.brd__shot-img[data-v-e468eb46]{display:block;width:100%;max-height:220px;object-fit:contain;background:var(--surface-sunken)}.brd__shot-meta[data-v-e468eb46]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-top:1px solid var(--border-default);font-size:var(--text-xs);color:var(--text-subtle)}.brd__shot-remove[data-v-e468eb46]{padding:0;border:none;background:none;font:inherit;color:var(--color-primary);cursor:pointer}.brd__shot-remove[data-v-e468eb46]:hover{text-decoration:underline}.brd__shot-remove[data-v-e468eb46]:disabled{opacity:.6;cursor:default;text-decoration:none}.brd__check[data-v-e468eb46]{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px;font-size:var(--text-sm);line-height:1.45;color:var(--text-secondary);cursor:pointer}.brd__check input[data-v-e468eb46]{margin-top:2px;flex-shrink:0}.brd__ctx--logs[data-v-e468eb46]{margin-top:6px;max-height:160px;overflow-y:auto;font-family:var(--font-mono, monospace);font-size:.68rem;line-height:1.6}.brd__details[data-v-e468eb46]{margin-bottom:14px}.brd__summary[data-v-e468eb46]{cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.brd__ctx[data-v-e468eb46]{margin:8px 0 0;padding:10px 12px 10px 26px;border-radius:8px;background:var(--surface-sunken);font-size:var(--text-xs);line-height:1.7;color:var(--text-secondary);word-break:break-word}.brd__ctx-label[data-v-e468eb46]{color:var(--text-subtle)}.brd__ctx-empty[data-v-e468eb46]{list-style:none;margin-left:-16px}.brd__turnstile[data-v-e468eb46]:not(:empty){margin-top:var(--space-3)}.brd__turnstile-down[data-v-e468eb46]{margin-top:var(--space-3)}.brd__hint[data-v-e468eb46]{margin:var(--space-2) 0 0;color:var(--text-subtle);font-size:var(--text-sm)}.brd__error[data-v-e468eb46]{margin:0 0 14px;font-size:var(--text-sm)}.brd__actions[data-v-e468eb46]{display:flex;justify-content:flex-end;gap:10px}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/solar-power-calc/assets/mulish-cyrillic-ext-wght-normal-B3XMVzw1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/solar-power-calc/assets/mulish-cyrillic-wght-normal-Cxxi75Cn.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/solar-power-calc/assets/mulish-vietnamese-wght-normal-CiTUBHt1.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/solar-power-calc/assets/mulish-latin-ext-wght-normal-BHZ6ODhS.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/solar-power-calc/assets/mulish-latin-wght-normal-WL5YNY-W.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ma-navy-50: #f0f4ff;--ma-navy-100: #e4e9f2;--ma-navy-200: #c2cdde;--ma-navy-300: #8a9bb8;--ma-navy-400: #5a749f;--ma-navy-500: #34568c;--ma-navy-600: #29487b;--ma-navy-700: #1f3f6e;--ma-navy-800: #1a3560;--ma-navy-900: #122544;--ma-red-50: #fef3f2;--ma-red-100: #fde7e6;--ma-red-200: #f9cbca;--ma-red-300: #f4a09e;--ma-red-400: #ed6664;--ma-red-500: #e23b39;--ma-red-600: #d31a18;--ma-red-700: #a61412;--ma-red-800: #8f1311;--ma-red-900: #6e0d0c;--ma-white: #ffffff;--ma-grey-50: #f8f9fb;--ma-grey-100: #eff1f5;--ma-grey-200: #e5e7eb;--ma-grey-300: #d7dbe2;--ma-grey-400: #c2c7d0;--ma-grey-500: #a5adbc;--ma-grey-600: #667085;--ma-grey-700: #475467;--ma-grey-900: #1a1a1a;--ma-green-600: #07630b;--ma-green-100: #e2f1e3;--ma-amber-600: #ac6202;--ma-amber-100: #f8ebd6;--ma-blue-600: #1d729a;--ma-blue-100: #dcebf2;--ma-orange-500: #ff8900}:root{--font-sans: "Mulish", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--heading-font: var(--font-sans);--heading-weight: 700;--heading-leading: 1.15;--heading-tracking: -.015em;--fw-light: 300;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--fw-black: 900;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 4rem;--leading-none: 1;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.65;--leading-loose: 1.8;--tracking-tighter: -.03em;--tracking-tight: -.015em;--tracking-snug: -.01em;--tracking-normal: 0;--tracking-wide: .02em;--tracking-caps: .08em;--eyebrow-size: var(--text-sm);--eyebrow-weight: var(--fw-bold);--eyebrow-tracking: var(--tracking-caps)}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--duration-fast: .12s;--duration-base: .18s;--duration-slow: .28s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--container-prose: 720px;--container-content: 1080px;--container-app: 1280px;--drawer-width: 256px;--header-height: 64px;--z-base: 0;--z-raised: 10;--z-sticky: 100;--z-drawer: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500}:root{--shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .1), 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 8px -2px rgba(16, 24, 40, .1), 0 2px 4px -2px rgba(16, 24, 40, .06);--shadow-lg: 0 12px 16px -4px rgba(16, 24, 40, .08), 0 4px 6px -2px rgba(16, 24, 40, .03);--shadow-xl: 0 20px 24px -4px rgba(16, 24, 40, .08), 0 8px 8px -4px rgba(16, 24, 40, .03);--shadow-primary: 0 8px 20px -6px rgba(41, 72, 123, .35);--shadow-focus: 0 0 0 3px rgba(41, 72, 123, .35)}:root{--color-primary: var(--ma-navy-600);--color-primary-hover: var(--ma-navy-700);--color-primary-active: var(--ma-navy-800);--color-primary-subtle: var(--ma-navy-50);--color-accent: var(--ma-red-600);--color-accent-hover: var(--ma-red-700);--color-accent-active: var(--ma-red-800);--color-accent-subtle: var(--ma-red-50);--color-success: var(--ma-green-600);--color-success-bg: var(--ma-green-100);--color-warning: var(--ma-amber-600);--color-warning-bg: var(--ma-amber-100);--color-danger: var(--ma-red-600);--color-danger-bg: var(--ma-red-100);--color-info: var(--ma-blue-600);--color-info-bg: var(--ma-blue-100);--color-idle: var(--ma-grey-500);--color-idle-bg: var(--ma-grey-100);--text-primary: var(--ma-grey-900);--text-secondary: var(--ma-grey-700);--text-muted: var(--ma-grey-600);--text-subtle: var(--ma-grey-500);--text-on-primary: var(--ma-white);--text-on-accent: var(--ma-white);--text-on-dark: var(--ma-white);--text-on-dark-muted: rgba(255, 255, 255, .72);--text-link: var(--ma-navy-600);--text-link-hover: var(--ma-navy-700);--surface-page: var(--ma-white);--surface-card: var(--ma-white);--surface-subtle: var(--ma-grey-50);--surface-sunken: var(--ma-grey-100);--surface-header: var(--ma-navy-50);--surface-inverse: var(--ma-navy-800);--surface-inverse-deep: var(--ma-navy-900);--surface-overlay: rgba(18, 37, 68, .55);--border-subtle: var(--ma-grey-100);--border-default: var(--ma-grey-200);--border-strong: var(--ma-grey-300);--border-inverse: rgba(255, 255, 255, .16);--border-focus: var(--ma-navy-600);--focus-ring: 0 0 0 3px rgba(41, 72, 123, .35);--focus-ring-danger: 0 0 0 3px rgba(211, 26, 24, .28);--gradient-navy: linear-gradient(135deg, var(--ma-navy-600) 0%, var(--ma-navy-800) 100%);--gradient-accent: linear-gradient(135deg, var(--ma-red-600) 0%, var(--ma-red-800) 100%);--gradient-hero-overlay: linear-gradient(180deg, rgba(18, 37, 68, .55) 0%, rgba(18, 37, 68, .88) 100%);--gradient-signal: linear-gradient(120deg, var(--ma-navy-600) 0%, var(--ma-red-600) 100%)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-weight:var(--fw-regular);font-size:var(--text-md);line-height:var(--leading-normal);color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--heading-font);font-weight:var(--heading-weight);line-height:var(--heading-leading);letter-spacing:var(--heading-tracking);color:var(--text-primary);margin:0}a{color:var(--text-link);text-decoration:none}img{max-width:100%;height:auto}.ma-eyebrow{font-size:var(--eyebrow-size);font-weight:var(--eyebrow-weight);letter-spacing:var(--eyebrow-tracking);text-transform:uppercase;color:var(--color-accent)}.ma-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}html[data-theme=dark]{--surface-page: #0a1220;--surface-card: #0f1c31;--surface-subtle: #0c1728;--surface-sunken: #0a1524;--surface-header: #0e1b30;--surface-inverse: #0f1c31;--text-primary: #eaf0f9;--text-secondary: #b3c2da;--text-muted: #8497b5;--text-subtle: #64789a;--text-link: #8ab8f2;--text-link-hover: #a9ccf8;--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--color-primary: #2f7fd1;--color-primary-hover: #4c95e0;--color-primary-active: #2a72bd;--color-primary-subtle: rgba(47, 127, 209, .16);--color-accent: #ef5350;--color-accent-hover: #f26d6b;--color-accent-active: #e0403d;--color-accent-subtle: rgba(239, 83, 80, .16);--color-success: #4ccf6f;--color-success-bg: rgba(76, 207, 111, .14);--color-warning: #e0a53a;--color-warning-bg: rgba(224, 165, 58, .14);--color-danger: #ef5350;--color-danger-bg: rgba(239, 83, 80, .14);--color-info: #4aa8d8;--color-info-bg: rgba(74, 168, 216, .14)}:root{--font-sans: "Mulish Variable", "Mulish", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--ring: var(--ma-navy-600);--chart-solar: #d98a06;--chart-load: var(--ma-blue-600);--chart-grid: var(--border-strong);--chart-good: var(--color-success);--chart-short: var(--color-danger)}html[data-theme=dark]{color-scheme:dark;--ring: #8ab8f2;--focus-ring: 0 0 0 3px rgba(138, 184, 242, .5);--border-focus: #8ab8f2;--chart-solar: #f0b44c;--chart-load: #4aa8d8}:root{--border: var(--border-default);--muted: var(--text-muted);--radius: var(--radius-md);--control-height: 2.5rem}*{box-sizing:border-box}body{margin:0;background:var(--surface-subtle);color:var(--text-primary);font-family:var(--font-sans);line-height:var(--leading-normal)}html[data-theme=dark] body{background:var(--surface-page)}.page{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--container-app);margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-12);flex:1}a{color:var(--text-link);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--text-link-hover)}:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:4px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ma-eyebrow{margin:0;font-size:var(--text-xs)}.positive{color:var(--color-success)}.negative{color:var(--color-danger)}.intro{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4) var(--space-8);margin-bottom:var(--space-6)}.intro h1{margin:var(--space-1) 0 var(--space-2);font-size:clamp(var(--text-3xl),5vw,var(--text-4xl));font-weight:var(--fw-black);letter-spacing:var(--tracking-tighter)}.lead{margin:0;max-width:40rem;color:var(--text-secondary);font-size:var(--text-lg)}.intro__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.saved-note{margin-right:var(--space-2);color:var(--muted);font-size:var(--text-sm)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:48px;padding:0 20px;font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap;border-radius:var(--radius-lg);border:1px solid transparent;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.button.small{height:var(--control-height);padding:0 var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-md)}.button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.button:disabled{opacity:.5;cursor:not-allowed}.button.secondary{background:var(--surface-card);color:var(--color-primary-hover);border-color:var(--border-strong)}html[data-theme=dark] .button.secondary{color:var(--text-link)}.button.secondary:hover:not(:disabled){background:var(--color-primary-subtle)}.inline-link,.text-button{padding:0;border:none;background:none;font:inherit;color:var(--text-link);cursor:pointer}.inline-link{margin-top:var(--space-1);font-size:var(--text-sm);font-weight:var(--fw-semibold);text-decoration:underline}.text-button{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--fw-semibold)}.inline-link:hover,.text-button:hover{color:var(--text-link-hover)}.workspace{display:grid;gap:var(--space-6);align-items:start}.inputs,.results{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}@media(min-width:56rem){.workspace{grid-template-columns:minmax(20rem,26rem) minmax(0,1fr)}}.card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:var(--space-5)}.card__head{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);margin-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.card__head h2{margin:0;font-size:var(--text-lg);font-weight:var(--fw-extrabold)}.card__index{display:grid;place-items:center;width:1.75rem;height:1.6rem;border-radius:var(--radius-sm);background:var(--color-primary-subtle);color:var(--text-link);font-size:var(--text-xs);font-weight:var(--fw-extrabold)}.card__text{margin:var(--space-3) 0 0;color:var(--muted);font-size:var(--text-sm)}.card.input-card>*+*{margin-top:var(--space-3)}.input-card>.card__head+*{margin-top:0}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2) var(--space-3)}.field{min-width:0}.field__label{display:flex;align-items:center;gap:var(--space-1);min-height:1.4rem;margin-bottom:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--fw-semibold)}.field__input,.field__select,.field__text{width:100%;height:var(--control-height);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font:inherit;font-size:var(--text-md);font-weight:var(--fw-semibold);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.field__input{display:flex;align-items:center}.field__input:focus-within,.field__select:focus-visible,.field__text:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:var(--focus-ring)}.field__input.is-invalid{border-color:var(--color-danger)}.field__input.is-readonly{background:var(--surface-sunken)}.field__input input{min-width:0;width:100%;height:100%;padding:0 var(--space-3);border:0;background:transparent;color:inherit;font:inherit;font-variant-numeric:tabular-nums;outline:none;appearance:textfield;-moz-appearance:textfield}.field__input input::-webkit-outer-spin-button,.field__input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field__unit{padding:0 var(--space-3) 0 var(--space-1);color:var(--muted);font-size:var(--text-xs);font-weight:var(--fw-bold);white-space:nowrap}.field__select{padding:0 var(--space-2);cursor:pointer}.field__text{padding:0 var(--space-3);font-weight:var(--fw-regular)}.help{position:relative;display:inline-flex}.help__button{display:inline-grid;place-items:center;width:1.4rem;height:1.4rem;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-subtle);cursor:help}.help__button:hover{color:var(--text-link);background:var(--color-primary-subtle)}.help__tip{position:absolute;z-index:var(--z-overlay);bottom:calc(100% + 6px);left:50%;transform:translate(calc(-50% + var(--shift, 0px)));width:max-content;max-width:min(18rem,calc(100vw - 16px));padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-inverse);color:var(--text-on-dark);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:var(--fw-regular);line-height:var(--leading-normal);letter-spacing:normal;text-transform:none;white-space:normal;text-align:left}html[data-theme=dark] .help__tip{border:1px solid var(--border-strong)}.place-row{display:flex;align-items:flex-end;gap:var(--space-2)}.place-search{position:relative;flex:1}.place-search__list{position:absolute;z-index:var(--z-overlay);top:calc(100% - 1.2rem);left:0;right:0;margin:0;padding:var(--space-1) 0;list-style:none;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.place-search__list li{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);line-height:var(--leading-snug);cursor:pointer}.place-search__list li:hover,.place-search__list li.is-active{background:var(--color-primary-subtle)}.place-search__status{min-height:1.2rem;margin:var(--space-1) 0 0;color:var(--color-warning);font-size:var(--text-xs)}.place-row .button{margin-bottom:1.45rem}.location-caption{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--fw-semibold)}.source-note{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-info);border-radius:var(--radius-md);background:var(--color-info-bg)}.source-note.is-warn{border-color:var(--color-warning);background:var(--color-warning-bg)}.source-note__dot{flex:none;width:.5rem;height:.5rem;margin-top:.45rem;border-radius:50%;background:var(--color-info)}.source-note.is-warn .source-note__dot{background:var(--color-warning)}.source-note strong{display:block;font-size:var(--text-sm)}.source-note p{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-sm)}.load-levels>*+*{margin-top:var(--space-3)}.load-level{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.load-level__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--text-sm)}.load-levels__total{color:var(--muted);font-size:var(--text-sm)}.weather-summary{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.weather-summary>div{display:grid;grid-template-columns:1.25rem 1fr;align-items:center;gap:var(--space-1) var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.weather-summary svg{color:var(--chart-load)}.weather-summary span{display:flex;align-items:center;gap:var(--space-1);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--fw-semibold)}.weather-summary strong{grid-column:2;font-size:var(--text-xl);font-variant-numeric:tabular-nums}.results__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.month-tag,.chip{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-primary-subtle);color:var(--text-link);font-size:var(--text-xs);font-weight:var(--fw-bold);white-space:nowrap}.month-tag{white-space:normal}.verdict{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-6);border:1px solid var(--verdict-color);border-left-width:6px;border-radius:var(--radius);background:var(--verdict-bg)}.verdict--good{--verdict-color: var(--color-success);--verdict-bg: var(--color-success-bg)}.verdict--short{--verdict-color: var(--color-danger);--verdict-bg: var(--color-danger-bg)}.verdict--pending{--verdict-color: var(--color-warning);--verdict-bg: var(--color-warning-bg)}.verdict__icon{flex:none;display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:var(--radius-lg);background:var(--verdict-color);color:var(--text-on-primary)}html[data-theme=dark] .verdict__icon{color:var(--surface-page)}.verdict__kicker{margin:0;color:var(--verdict-color);font-size:var(--text-xs);font-weight:var(--fw-extrabold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.verdict h2{margin:var(--space-1) 0;font-size:var(--text-3xl);font-weight:var(--fw-extrabold);letter-spacing:var(--tracking-tight)}.verdict p:last-child{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}.footnote{margin:0;color:var(--muted);font-size:var(--text-sm)}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}@media(min-width:80rem){.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}.metric{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);box-shadow:var(--shadow-xs)}.metric>span{display:flex;align-items:center;gap:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--fw-semibold)}.metric strong{display:block;margin-top:var(--space-1);font-size:var(--text-2xl);font-weight:var(--fw-extrabold);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums;white-space:nowrap}.metric small{color:var(--muted);font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:normal}.mini-stats{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);color:var(--muted);font-size:var(--text-sm)}.mini-stats>span{display:inline-flex;align-items:center;gap:var(--space-1)}.mini-stats strong{color:var(--text-primary);font-variant-numeric:tabular-nums}.visual-card .mini-stats{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.visual-card__title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.visual-card__title h3{margin:var(--space-1) 0 0;font-size:var(--text-xl);font-weight:var(--fw-extrabold)}.visual-card__note{margin:var(--space-4) 0 0;color:var(--muted);font-size:var(--text-sm)}.legend{display:flex;gap:var(--space-4);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--fw-bold)}.legend span{display:inline-flex;align-items:center;gap:var(--space-1)}.legend i{display:inline-block;width:.65rem;height:.65rem;border-radius:50%}.legend__solar{background:var(--chart-solar)}.legend__load{background:var(--chart-load)}.curve{position:relative;display:flex;height:150px}.curve svg{width:100%;height:100%;overflow:visible}.curve__scale{display:flex;flex:none;flex-direction:column;justify-content:space-between;width:3.25rem;color:var(--muted);font-size:var(--text-xs);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.curve__grid{fill:none;stroke:var(--chart-grid);stroke-dasharray:4 6;vector-effect:non-scaling-stroke}.curve__solar,.curve__load{fill:none;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.curve__solar{stroke:var(--chart-solar)}.curve__load{stroke:var(--chart-load)}.axis{display:flex;justify-content:space-between;padding:var(--space-2) 0 0 3.25rem;color:var(--muted);font-size:var(--text-xs);font-weight:var(--fw-bold)}.axis--battery{padding-left:2.75rem}.battery-chart{display:flex;height:140px;border-bottom:1px solid var(--border-strong)}.battery-chart__scale{display:flex;flex-direction:column;justify-content:space-between;width:2.75rem;color:var(--muted);font-size:var(--text-xs);font-weight:var(--fw-bold)}.battery-chart__bars{flex:1;display:flex;align-items:flex-end;gap:3px;min-width:0;border-left:1px solid var(--border);background:linear-gradient(to bottom,transparent calc(50% - .5px),var(--border) calc(50% - .5px),var(--border) calc(50% + .5px),transparent calc(50% + .5px))}.battery-chart__column{flex:1;display:flex;align-items:flex-end;height:100%;min-width:1px}.battery-chart__bar{width:100%;border-radius:2px 2px 0 0;background:var(--chart-load)}.battery-chart__bar.is-short{background:var(--chart-short)}.season-head,.season-row{display:grid;grid-template-columns:2.25rem minmax(2rem,1fr) 7.5rem 7.5rem .9rem;align-items:center;gap:var(--space-3);padding:var(--space-2)}.season-head.is-replay,.season-row.is-replay{grid-template-columns:2.25rem minmax(2rem,1fr) 6.5rem 6.5rem 6.5rem .9rem}.season-row__worst{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.season-head{padding-top:0;padding-bottom:var(--space-1);color:var(--muted);font-size:var(--text-xs);font-weight:var(--fw-bold);text-align:right}.season-row{width:100%;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.season-row:hover,.season-row.is-selected{background:var(--color-primary-subtle)}.season-row.is-selected{box-shadow:inset 3px 0 var(--color-accent)}.season-row__month{font-weight:var(--fw-extrabold)}.season-row__track{display:block;height:8px;overflow:hidden;border-radius:var(--radius-full);background:var(--chart-short)}.season-row__fill{display:block;height:100%;background:var(--chart-good)}.season-row__up,.season-row__down{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.season-row strong{color:var(--text-primary)}.season-row.has-downtime .season-row__down strong{color:var(--color-danger)}.season-row svg{opacity:.5}.season-year>span{flex-wrap:wrap}.season-year strong{white-space:nowrap}.mini-stats strong.negative{color:var(--color-danger)}.legend__up{background:var(--chart-good)}.legend__down{background:var(--chart-short)}@media(max-width:34rem){.season-head{display:none}.season-row{grid-template-columns:2.25rem minmax(2rem,1fr) auto auto .9rem;grid-template-areas:"month track track track chevron" ". up up down .";row-gap:var(--space-1)}.season-row__month{grid-area:month}.season-row__track{grid-area:track}.season-row__up{grid-area:up}.season-row__up:before{content:"Up "}.season-row__down{grid-area:down}.season-row__down:before{content:"Down "}.season-row svg{grid-area:chevron}}.model-notes{padding:var(--space-2) var(--space-1);color:var(--muted);font-size:var(--text-sm)}.model-notes h3{margin:0 0 var(--space-2);color:var(--text-secondary);font-size:var(--text-md)}.model-notes p{margin:0 0 var(--space-2)}.footer-extra{flex-basis:100%;padding-top:var(--space-2);border-top:1px solid var(--border);text-align:center}.footer-extra p{max-width:48rem;margin:0 auto}.footer-extra p+p{margin-top:var(--space-2)}.toast-region{position:fixed;right:var(--space-4);bottom:var(--space-4);left:var(--space-4);z-index:var(--z-toast);display:flex;justify-content:flex-end;pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);max-width:28rem;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-inverse);color:var(--text-on-dark);box-shadow:var(--shadow-lg);font-size:var(--text-sm);pointer-events:auto}html[data-theme=dark] .toast{border:1px solid var(--border-strong)}.toast button{display:inline-grid;place-items:center;padding:var(--space-1);border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer}@media(max-width:34rem){.container{padding-top:var(--space-4)}.card{padding:var(--space-4)}.place-row{flex-direction:column;align-items:stretch}.place-row .button{margin-bottom:0}.verdict{align-items:flex-start;gap:var(--space-3);padding:var(--space-4)}.verdict__icon{width:2.6rem;height:2.6rem}.verdict h2{font-size:var(--text-2xl)}.metric strong{font-size:var(--text-xl)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.callout{margin:0;padding:var(--space-3);border:1px solid var(--color-info);border-radius:var(--radius-md);background:var(--color-info-bg);font-size:var(--text-sm)}.callout--warn{border-color:var(--color-warning);background:var(--color-warning-bg)}.field__error{margin:var(--space-1) 0 0;color:var(--color-danger);font-size:var(--text-xs)}.field-note{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-xs)}.check{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);cursor:pointer}.check input{width:1.1rem;height:1.1rem;margin-top:.15rem;flex:none;accent-color:var(--color-primary)}.check small{display:block;color:var(--muted);font-weight:var(--fw-regular)}.advanced{border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}.advanced summary{color:var(--text-link);font-size:var(--text-sm);font-weight:var(--fw-bold);cursor:pointer}.advanced[open]>*+*{margin-top:var(--space-3)}.chip--warn{margin-left:var(--space-2);background:var(--color-warning-bg);color:var(--color-warning);letter-spacing:normal;text-transform:none}.verdict__note{margin-top:var(--space-2)!important;font-style:italic}.caution{color:var(--color-warning)}.results__anchor{display:flex;flex-direction:column;gap:var(--space-4);outline:none;scroll-margin-top:var(--space-4)}.verdict-bar{position:fixed;right:var(--space-4);bottom:var(--space-4);left:var(--space-4);z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-3);max-width:40rem;margin:0 auto;padding:var(--space-2) var(--space-3);border:1px solid var(--verdict-color);border-left-width:5px;border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-lg)}.verdict-bar--good{--verdict-color: var(--color-success)}.verdict-bar--short{--verdict-color: var(--color-danger)}.verdict-bar--pending{--verdict-color: var(--color-warning)}.verdict-bar>svg{flex:none;color:var(--verdict-color)}.verdict-bar__text{flex:1;min-width:0;font-size:var(--text-sm)}.verdict-bar__text strong{display:block;color:var(--verdict-color);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase}.verdict-bar__text span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sizing{display:grid;gap:var(--space-4)}@media(min-width:40rem){.sizing{grid-template-columns:1fr 1fr}}.sizing__item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.sizing__label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--fw-semibold)}.sizing__item strong{font-size:var(--text-2xl);font-weight:var(--fw-extrabold);font-variant-numeric:tabular-nums}.sizing__margin{color:var(--color-success);font-size:var(--text-sm)}.sizing__margin.is-short{color:var(--color-danger)}.sizing__item .button{margin-top:var(--space-2)}.compare{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.compare th,.compare td{padding:var(--space-2);border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top}.compare thead th{color:var(--muted);font-size:var(--text-xs)}.compare tbody th{color:var(--text-secondary);font-weight:var(--fw-semibold)}.compare tr.is-changed td{background:var(--color-primary-subtle);font-weight:var(--fw-semibold)}.compare__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-3)}.battery-chart__column{position:relative}.battery-chart__column.is-short{background:color-mix(in srgb,var(--chart-short) 22%,transparent)}.battery-chart__low{position:absolute;left:0;right:0;height:2px;background:var(--chart-solar)}.legend--below{margin-top:var(--space-2);justify-content:flex-end}.legend__low{height:3px!important;border-radius:1px!important;background:var(--chart-solar)}@media(max-width:34rem){.season-head.is-replay{display:none}.season-row.is-replay{grid-template-columns:2.25rem minmax(2rem,1fr) auto auto .9rem;grid-template-areas:"month track track track chevron" ". up up down ." ". worst worst worst ."}.season-row__worst{grid-area:worst}.season-row__worst:before{content:"Worst "}.verdict-bar{right:var(--space-2);bottom:var(--space-2);left:var(--space-2)}}
