.page{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:40px 0 72px}.hero{margin-bottom:32px}.eyebrow{margin:0 0 8px;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7a5a1e}h1{margin:0 0 12px;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05;letter-spacing:-.03em}.lede{margin:0;max-width:42rem;color:#4d463c;font-size:1.12rem}.input-grid,.chart-grid,.season-cards,.run-stats,.tou-stats{display:grid;gap:16px}.input-grid{grid-template-columns:1fr 1fr;margin-bottom:20px}.location-panel{grid-column:1 / -1}.field-static{display:flex;align-items:center;min-height:42px;padding:9px 11px;border:1px solid #e4d8c4;border-radius:10px;background:#f7f1e6;color:#2c4a3e;font-weight:600}.panel,.summary,.chart-card{background:#fffaf3;border:1px solid #e4d8c4;border-radius:16px;box-shadow:0 10px 30px #2c24160d}.panel{padding:20px 22px 22px}.panel h2,.charts-heading h2{margin:0 0 6px;font-size:1.2rem}.panel-lead,.charts-heading p,.hero-sub,.season-meta,.footnotes li,.chart-header p{margin:0;color:#5c5346}.panel-lead{margin-bottom:16px;font-size:.95rem}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.fields-single{grid-template-columns:minmax(0,16rem)}label{display:flex;flex-direction:column;gap:6px;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.82rem;font-weight:600;color:#2c4a3e}.field-row{display:flex;align-items:center;gap:8px}.field-check{grid-column:1 / -1;flex-direction:row;align-items:center;font-weight:500}.field-check input{width:auto}input,select{width:100%;padding:9px 11px;border:1px solid #d7cbb6;border-radius:10px;background:#fff;color:inherit}input:focus,select:focus{outline:2px solid #e3a02b;outline-offset:1px}.unit{flex:0 0 auto;color:#7a7266;font-weight:500}.battery-field{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:6px;align-items:center}.battery-field-title{grid-column:1 / -1}.battery-field .unit,.field-hint-unit{text-align:right;white-space:nowrap}.field-hint-value{padding:0 11px;font-weight:500;color:#5c5346}.field-hint-unit{font-weight:500;color:#7a7266}.summary{padding:22px;margin-bottom:28px}.summary-kpis{display:grid;grid-template-columns:1.25fr 1fr .85fr;gap:18px 24px;margin-bottom:18px;align-items:start}.summary-hero+.summary-hero{padding-left:24px;border-left:1px solid #e4d8c4}.hero-value{margin:0;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;letter-spacing:-.04em;color:#2c4a3e}.cost-details,.run-details{margin-top:16px;padding-top:14px;border-top:1px solid #e4d8c4}.cost-details summary,.run-details summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.82rem;font-weight:600;color:#2c4a3e;list-style:none}.cost-details summary::-webkit-details-marker,.run-details summary::-webkit-details-marker{display:none}.cost-details summary:after,.run-details summary:after{content:"+";margin-left:auto;font-weight:500;color:#7a7266}.cost-details[open] summary:after,.run-details[open] summary:after{content:"−"}.cost-summary-meta{font-weight:500;color:#5c5346}.cost-details .panel-lead{margin-top:12px}.cost-details summary:focus-visible,.run-details summary:focus-visible{outline:2px solid #e3a02b;outline-offset:2px;border-radius:6px}.hero-sub{margin-top:8px}.kpi-cycle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:10px;margin:0 0 8px;padding:0;border:0;background:transparent;cursor:pointer;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7a5a1e;text-align:left}.kpi-cycle:hover{color:#2c4a3e}.kpi-cycle:focus-visible{outline:2px solid #e3a02b;outline-offset:3px;border-radius:6px}.kpi-dots{display:inline-flex;gap:5px}.kpi-dots span{width:6px;height:6px;border-radius:50%;background:#d7cbb6}.kpi-dots span.on{background:#e3a02b}.run-details{margin-top:0;padding-top:16px}.run-summary{display:grid;gap:18px;margin-top:14px}.run-block .eyebrow{margin-bottom:10px}.run-stats{grid-template-columns:repeat(4,1fr)}.tou-stats{grid-template-columns:1fr 1fr}.tou-stats-three{grid-template-columns:1fr 1fr 1fr}.run-stat{padding:12px 14px;border-radius:12px;background:#f7f1e6}.run-stat h3{margin:0;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.run-value{margin:4px 0 0;font-size:1.35rem}.run-meta{margin:2px 0 0;color:#5c5346;font-size:.9rem}.season-cards{grid-template-columns:repeat(4,1fr)}.season-card{padding:12px 14px;border-radius:12px;background:#f7f1e6}.season-card h3,.chart-header h3{margin:0;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.season-value{margin:4px 0 2px;font-size:1.35rem}.charts-heading{margin-bottom:14px}.charts-heading p{max-width:46rem}.chart-grid{grid-template-columns:1fr 1fr}.chart-card{padding:16px 16px 10px}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.chart-day-value{margin:0;font-family:Avenir Next,Segoe UI,sans-serif;font-size:.85rem;font-weight:700;color:#2c4a3e}.chart-wrap{width:100%}.footnotes{margin-top:28px}.assumptions summary{cursor:pointer;display:inline-flex;align-items:center;gap:8px;list-style:none}.assumptions summary h2{margin:0;font-size:1.2rem}.assumptions summary::-webkit-details-marker{display:none}.assumptions summary:before{content:"+";flex:0 0 1em;font-weight:500;color:#7a7266}.assumptions[open] summary:before{content:"−"}.assumptions summary:focus-visible{outline:2px solid #e3a02b;outline-offset:2px;border-radius:6px}.assumptions ul{margin:12px 0 0;padding-left:1.2rem;max-width:52rem}.footnotes li{font-size:.88rem}.footnotes li+li{margin-top:8px}.chart-fallback{margin:0;color:#5c5346}@media(max-width:860px){.input-grid,.chart-grid,.season-cards,.run-stats,.tou-stats,.tou-stats-three,.fields,.summary-kpis{grid-template-columns:1fr}.summary-hero+.summary-hero{padding-left:0;padding-top:16px;border-left:0;border-top:1px solid #e4d8c4}.page{padding-top:24px}}:root{color-scheme:light;font-family:Iowan Old Style,Palatino Linotype,Palatino,Times New Roman,serif;line-height:1.5;font-weight:400;color:#1c2416;background:#f4efe6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 500px at 10% -10%,rgba(227,160,43,.18),transparent 55%),radial-gradient(900px 400px at 100% 0%,rgba(47,125,74,.12),transparent 50%),#f4efe6}button,input,select{font:inherit}
