:root{--ink:#16302e;--muted:#60716c;--bg:#f4f6f2;--white:#fff;--line:#dde5df;--teal:#126b60;--soft:#e5f1e9;--amber:#79541a;--ambg:#fbf2de;--shadow:0 12px 35px #193c2910;color-scheme:light}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #91bdc4;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}input,select{max-width:100%}button,input,select{min-height:46px}main{max-width:1000px;margin:auto;padding:28px 24px 56px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.brand{display:flex;align-items:center;gap:11px}.mark{height:44px;width:44px;border-radius:15px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:29px}.brand strong{font-size:19px;letter-spacing:-.3px}.brand small{display:block;font-size:12px;color:var(--muted)}.badge{border:1px solid var(--line);border-radius:99px;padding:6px 10px;font-size:11px;white-space:nowrap;color:var(--muted)}h1{font-size:34px;line-height:1.1;letter-spacing:-1px;margin:6px 0 10px}h2{font-size:19px;margin:0 0 18px;letter-spacing:-.3px}h3{font-size:16px;margin:16px 0 8px}p{margin:0 0 12px}.lead{color:var(--muted);font-size:15px;margin-bottom:22px}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:25px;gap:16px}.tab{border:0;background:none;padding:12px 4px;color:var(--muted);font-weight:600;font-size:14px;min-height:47px}.tab[aria-selected=true]{color:var(--teal);border-bottom:3px solid var(--teal)}[hidden]{display:none!important}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.card{border:1px solid var(--line);border-radius:22px;padding:24px;background:var(--white);box-shadow:var(--shadow);margin-bottom:18px}.eyebrow{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px}.field{margin-bottom:19px}.field label,.field legend{font-size:14px;font-weight:600;display:block;margin-bottom:7px}input[type=number],input[type=text],input[type=date],select{width:100%;border:1px solid #cdd9d1;border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink)}.socwrap{display:flex;gap:8px;align-items:baseline}.socwrap input{font-size:44px;font-weight:650;letter-spacing:-1px;width:130px;padding:6px 14px}.socwrap span{font-size:28px;color:var(--muted)}.hint{font-size:12px;color:var(--muted);margin:6px 0 0}.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg button{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px}.seg button[aria-pressed=true]{border:1px solid var(--teal);background:var(--soft);color:var(--teal);font-weight:700}.primary{border:0;border-radius:12px;padding:14px 18px;background:var(--teal);color:white;font-weight:650;width:100%;box-shadow:0 4px 8px #126b6014}.secondary{border:1px solid var(--line);border-radius:10px;padding:9px 13px;background:#fff;color:var(--ink);font-size:13px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.notice{background:var(--ambg);color:var(--amber);border:1px solid #ecdfc2;border-radius:12px;padding:11px 14px;font-size:12px;margin-bottom:18px}.error{background:#fff0ec;color:#943b28;border-color:#e7b7a8}.weather{background:#edf4ef;border-color:#d7e6dc}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric{padding:13px;background:#f3f7f3;border-radius:12px}.metric strong{font-size:24px;letter-spacing:-.4px;display:block}.metric span{font-size:12px;color:var(--muted)}.big{font-size:48px;font-weight:700;line-height:1.1;letter-spacing:-2px;margin:12px 0}.result-title{font-size:24px;margin:4px 0 10px;line-height:1.2;letter-spacing:-.5px}.result-card{border-top:4px solid var(--teal)}.result-card.uncertain{border-top-color:#b78c3d}.meta{font-size:12px;color:var(--muted);margin-top:12px}details{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}summary{cursor:pointer;font-size:13px;font-weight:600}details p,details li{font-size:12px;color:var(--muted)}details ul{padding-left:18px}details li{margin-bottom:9px}.empty{padding:24px 0;text-align:center}.empty .sun{font-size:38px;color:#8aa68d}.empty p{font-size:14px;color:var(--muted)}.settings{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.wide{grid-column:1/-1}.settings small{display:block;color:var(--muted);font-weight:400;font-size:11px;margin-top:4px}.check{display:flex!important;align-items:flex-start;gap:8px;font-size:12px!important;font-weight:400!important}.check input{min-height:20px;height:20px;width:20px;flex-shrink:0;margin:0}table{border-collapse:collapse;font-size:13px;width:100%;font-variant-numeric:tabular-nums}th,td{padding:10px 7px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{font-size:11px;color:var(--muted);font-weight:600}.scroll{overflow-x:auto}.history-entry{border-bottom:1px solid var(--line);padding:13px 0;font-size:13px}.history-entry p{margin:4px 0}.footer{font-size:11px;color:var(--muted);text-align:center;margin-top:26px}.footer a{color:var(--teal)}.buttons{display:flex;gap:9px;flex-wrap:wrap}.file{padding:8px;background:#f2f6f2;border-radius:9px;width:100%;font-size:12px}.money{font-size:13px;margin-top:16px}.divider{height:1px;background:var(--line);margin:18px 0}#busy{font-size:12px;color:var(--muted);margin-top:8px}#planForm .field:last-child{margin-bottom:10px}.small-number{font-size:13px}.version-note{font-size:12px;color:var(--muted);margin-top:14px}
@media(max-width:690px){main{padding:20px 16px 40px}.grid{grid-template-columns:1fr;gap:0}header{margin-bottom:22px}.brand strong{font-size:17px}h1{font-size:30px}.badge{font-size:10px}.card{padding:20px;border-radius:19px}.settings{grid-template-columns:1fr 1fr;gap:0 12px}.settings label{font-size:12px}.tab{flex:1}.tabs{gap:5px}.big{font-size:46px}.lead{font-size:14px}.result-card{scroll-margin-top:12px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .12s,box-shadow .12s}button:hover{filter:brightness(.97)}}

/* Mac edition: midnight blue, cobalt and an open desktop workspace. */
:root{--ink:#172c50;--muted:#536581;--bg:#eef3fb;--line:#d7e2f2;--teal:#245ad6;--soft:#e9f0ff;--shadow:0 8px 28px #1837670b}
body{background:radial-gradient(ellipse at 95% 0%,#dce8ff 0,transparent 45%),var(--bg)}
main{max-width:1192px;padding:24px 32px 44px}
header{background:#11294e;color:white;padding:21px 27px;border-radius:20px;margin-bottom:20px;box-shadow:0 10px 30px #152e5118}
.brand{gap:15px}.brand strong{font-size:22px;letter-spacing:-.5px}.brand small{color:#bbcee9;font-size:13px;margin-top:2px}
.mark{width:49px;height:49px;border:1px solid #718fc1;border-radius:50%;background:linear-gradient(145deg,#3c79ee,#21477f);font-size:34px}
.badge{color:#cfe1ff;border-color:#506589;font-size:10px;letter-spacing:1.4px;padding:8px 12px}
.tabs{display:inline-flex;gap:4px;padding:5px;background:#e0e9f7;border:1px solid #d5e0f2;border-radius:13px;margin-bottom:27px}
.tab{padding:8px 24px;min-height:40px;border-radius:9px;color:#455b7e}
.tab[aria-selected=true]{background:#fff;color:#1e50b8;border:0;box-shadow:0 2px 7px #17376915}
h1{font-size:38px;letter-spacing:-1.4px}.lead{font-size:16px;max-width:690px;margin-bottom:21px}
.grid{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:24px}.card{border-radius:17px;padding:25px;margin-bottom:20px}
#planForm h2:before{content:'01';color:#5379b6;font-size:12px;letter-spacing:1px;margin-right:12px}
.weather h2:before{content:'02';color:#5379b6;font-size:12px;letter-spacing:1px;margin-right:12px}
.socwrap{background:#f2f6fe;border:1px solid #d8e4f8;border-radius:13px;padding:9px 16px;width:fit-content}
.socwrap input{border:0;background:transparent;font-size:48px;width:110px;padding:0;min-height:65px;color:#204fa9}.socwrap span{font-size:25px;color:#6780a7}
input[type=number],input[type=text],input[type=date],select{border-color:#bacbe3}
.primary{background:linear-gradient(110deg,#2155c7,#3476ee);box-shadow:0 5px 12px #245ad626;border-radius:10px}
.secondary:hover{border-color:#789dd6;background:#f3f7ff}.weather{background:#e5edfc;border-color:#cbdcf5}
.metric{background:#edf3fd;border-radius:11px}.metric strong{color:#254f99;font-variant-numeric:tabular-nums}
.empty{padding:31px 12px}.empty .sun{display:grid;place-items:center;margin:0 auto 18px;width:77px;height:77px;border:1px solid #a9c1e7;border-radius:50%;background:linear-gradient(140deg,#eef4ff,#dfeaff);color:#386cb9;font-size:46px}
.result-card{border-top:4px solid #3372e4}.result-title{font-size:27px}.big{color:#245ac5;font-size:57px}
.notice{border-radius:10px}.file{background:#edf3fd}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-color:#386fe0}
.footer{text-align:left;border-top:1px solid var(--line);padding-top:19px;line-height:1.7}
@media(min-width:950px){.settings{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}}
@media(max-width:690px){main{padding:16px}header{padding:18px}.brand strong{font-size:18px}.badge{font-size:9px;letter-spacing:.3px}.grid{grid-template-columns:1fr;gap:0}h1{font-size:30px}.tabs{display:flex}.tab{padding:8px 15px}.card{padding:21px}}
/* Hidden conflict consent must stay hidden until a conflicting report is selected. */
.check[hidden]{display:none!important}

/* Leave the whole SOC field available for direct typing and selection in Safari. */
#soc{-webkit-appearance:none;appearance:textfield;min-width:110px}
#soc::-webkit-inner-spin-button,#soc::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#result .primary:disabled{opacity:1;cursor:default}

/* Expanded local forecast; energy estimates remain visually distinct. */
.weather{padding:28px}.weather-symbol{font-size:35px}.weather-date{font-weight:650;font-size:15px;margin:8px 0}
.weather-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.weather-metrics>div{background:#ffffffb8;padding:13px;border-radius:12px;min-width:0}
.weather-metrics span{display:block;font-size:12px;color:#465d80}.weather-metrics strong{display:block;font-size:20px;color:#183d77;margin-top:4px}
.weather-pv{border-left:4px solid #3476ee;background:#fff;padding:15px;border-radius:10px;margin:18px 0}
.weather-pv>strong{font-size:27px;color:#2155c7;display:block}.weather-pv>span{font-size:13px;font-weight:650}
.weather-table{max-height:320px;margin:12px 0}.weather-table th{position:sticky;top:0;background:#e5edfc}.weather-table td{font-size:12px}
#weatherText[data-state=error],#weatherText[data-state=previous]{color:#84570e}#weatherText[data-state=fresh]{color:#234f91}
#weatherHourly{margin-bottom:18px}#simulationNotice{margin-top:16px}#weatherResultNotice{margin-bottom:12px}

/* Supplied image: no recoloring, masking or crop. */
.mark.app-icon{display:block;object-fit:contain;flex-shrink:0;background:none;border:0;border-radius:0}

/* Read-only report charts. */
.chart-filters{display:flex;gap:20px;flex-wrap:wrap}.chart-filters .field{flex:1;min-width:200px;margin-bottom:0}.chart-coverage{font-weight:650;color:#172c50}.charts-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.chart-card{min-width:0}.chart-card h2{margin-bottom:6px}.chart-total{color:#245ad6;font-size:19px;font-weight:650}.chart-scroll{overflow:auto;width:100%;min-width:0;max-width:100%;box-sizing:border-box;outline-offset:3px}.chart-scroll svg{display:block;max-width:none}.chart-scroll table{font-size:13px}.chart-legend{display:flex;gap:20px;flex-wrap:wrap;margin:14px 0}.chart-legend span{padding-left:7px;font-size:13px}.chart-card details{margin-top:6px}.chart-card h2:before{content:none!important}
