:root{--ink:#182a35;--muted:#72818b;--muted-2:#9ba7ae;--line:#e5eaed;--paper:#f4f6f8;--white:#fff;--navy:#153a46;--teal:#188879;--green:#73a999;--lime:#b3cf6d;--blue:#6484a1;--red:#bd625f;--shadow:0 10px 30px rgba(28,47,58,.05);--radius:15px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--ink);font-synthesis:none;text-rendering:optimizeLegibility}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);font-size:13px}.app-shell{max-width:1720px;margin:0 auto;min-height:100vh}.topbar{height:74px;padding:0 38px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-logo{display:block;width:62px;height:62px;flex:none;border-radius:8px;object-fit:contain;background:#fff}.brand-caption{display:grid;gap:5px}.brand-caption strong{font-size:10px;letter-spacing:.11em;color:#183d3c}.brand-caption small{font-size:8px;letter-spacing:.12em;color:#89979b}.brand strong,.brand small{display:block;letter-spacing:.1em}.brand strong{font:800 11px sans-serif}.brand small{font-size:8px;color:var(--muted);margin-top:4px;letter-spacing:.16em}.topbar-right{display:flex;align-items:center;gap:17px}.local-pill{font-size:9px;font-weight:700;letter-spacing:.14em;color:#50726f;display:flex;align-items:center;gap:7px}.local-pill i,.edit-dot{width:7px;height:7px;background:#65ad8f;border-radius:100%;display:inline-block}.button{border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:#fff;color:#52616b;font:600 11px sans-serif;cursor:pointer;transition:.16s}.button:hover{border-color:#9fb3b8;background:#f8fbfb}.button-small{padding:7px 10px;font-size:10px}.hero{padding:43px 42px 35px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;background:linear-gradient(120deg,#f4f6f8 0%,#f4f6f8 60%,#eaf1f1 100%)}.eyebrow{display:block;font-size:9px;font-weight:700;letter-spacing:.17em;color:#82929b}.hero h1{font:700 clamp(36px,4.4vw,56px)/1.02 sans-serif;letter-spacing:-.055em;margin:13px 0 12px;color:#1a313b}.hero h1 em{color:var(--teal);font-style:normal}.hero>div>p{max-width:585px;color:#71818a;font-size:13px;line-height:1.65;margin:0}.illustrative-note{width:min(440px,42%);display:flex;gap:12px;background:rgba(255,255,255,.84);border:1px solid #e2e9e9;border-radius:12px;padding:15px 17px;box-shadow:0 8px 25px rgba(25,56,63,.04)}.note-icon{flex:0 0 20px;height:20px;border:1px solid #8bb1aa;border-radius:50%;display:grid;place-items:center;color:#598b82;font:700 12px Georgia}.illustrative-note strong{font:700 11px sans-serif;color:#2e5557}.illustrative-note p{margin:5px 0 0;color:#77878d;font-size:10px;line-height:1.55}.workspace{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:22px;padding:0 30px 32px}.input-rail{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.rail-heading{display:flex;justify-content:space-between;align-items:center;padding:19px 20px 15px;border-bottom:1px solid var(--line)}.rail-heading h2{font:700 16px sans-serif;margin:4px 0 0;letter-spacing:-.02em}.input-section{padding:15px 20px 18px;border-bottom:1px solid #edf0f2}.input-section h3{font:700 11px sans-serif;margin:0 0 14px;display:flex;align-items:center;gap:8px;color:#334952}.section-number{font:700 9px sans-serif;color:#75a99c;letter-spacing:.08em}.field{display:block;min-width:0;margin-bottom:11px}.field>span{display:flex;align-items:baseline;justify-content:space-between;font-size:10px;font-weight:600;color:#63737c;margin-bottom:5px}.field small{font-size:8px;color:#98a5ab;font-weight:500;white-space:nowrap}.field input,.field select{width:100%;height:34px;border:1px solid #e0e6e8;border-radius:7px;padding:0 9px;background:#fbfcfc;color:#263a44;font:500 11px sans-serif;outline:none}.field input:focus,.field select:focus{border-color:#65a89c;box-shadow:0 0 0 3px rgba(41,138,123,.1);background:#fff}.field input:disabled{color:#9aa6ab;background:#f2f4f4;border-color:#edf0f1}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.derived-field{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;margin:0 0 12px;border-radius:7px;background:#f2f7f6;color:#698078;font-size:9px}.derived-field strong{font-size:10px;color:#305c54}.field-hint{font-size:9px;line-height:1.5;color:#97a2a7;margin:0 0 2px}.validation-box{padding:0 20px;max-height:0;overflow:hidden;color:#6f7d83;font-size:10px;transition:max-height .2s,padding .2s}.validation-box.has-errors{max-height:300px;padding:14px 20px;background:#fff6f4;color:#9e514e}.validation-box strong{font-size:10px}.validation-box ul{margin:8px 0 0;padding-left:17px;line-height:1.5}.results-area{min-width:0}.result-heading{padding:20px 4px 17px;display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.result-heading h2{font:700 21px sans-serif;margin:5px 0 7px;letter-spacing:-.04em}.result-subline{display:flex;gap:8px;align-items:center;color:#829098;font-size:10px}.subline-separator{color:#c2cbd0}.scenario-select{min-width:225px}.scenario-select>span{font-size:8px;font-weight:700;letter-spacing:.14em;color:#97a2a8;display:block;text-align:right;margin-bottom:7px}.segmented{display:flex;background:#e9eeef;padding:3px;border-radius:8px}.segmented button{border:0;border-radius:6px;padding:7px 13px;background:transparent;color:#77868c;font:600 10px sans-serif;cursor:pointer;flex:1}.segmented button.active{background:#fff;color:#205d57;box-shadow:0 1px 4px rgba(20,43,49,.1)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.kpi-card{min-height:104px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:15px 15px 13px;box-shadow:var(--shadow)}.kpi-card>span{display:block;font-size:9px;color:#829198;font-weight:600}.kpi-card strong{display:block;font:700 clamp(20px,2.2vw,27px) sans-serif;letter-spacing:-.04em;color:#24444d;margin:8px 0 4px;white-space:nowrap}.kpi-card:nth-child(1) strong,.kpi-card:nth-child(2) strong{color:#247e70}.kpi-card small{font-size:8px;color:#9aa5aa}.payback-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e8edef;border:1px solid #e8edef;border-radius:10px;overflow:hidden;margin:11px 0 15px}.payback-row>div{background:#fff;padding:10px 12px;display:grid;grid-template-columns:22px 1fr;align-items:center;column-gap:5px}.payback-icon{grid-row:span 2;width:18px;height:18px;background:#eef5f3;color:#398274;border-radius:5px;display:grid;place-items:center;font-size:11px}.payback-row span:not(.payback-icon){font-size:8px;color:#87949a}.payback-row strong{font-size:10px;color:#40575f;margin-top:3px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.panel{border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow);min-width:0}.chart-panel{padding:16px 16px 12px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-heading h3{font:700 13px sans-serif;letter-spacing:-.025em;margin:5px 0 0}.chart-unit{font-size:8px;letter-spacing:.1em;color:#9aa6ab;font-weight:700;white-space:nowrap}.chart{height:200px;margin:8px -2px 0}.chart svg{display:block;width:100%;height:100%;overflow:visible}.grid-line{stroke:#edf1f2;stroke-width:1}.zero-line{stroke:#cdd6d9;stroke-width:1.2}.axis-label{fill:#9ba7ac;font:9px sans-serif}.bar-ppa{fill:#287e73}.bar-merchant{fill:#9bc9b4}.line-upside,.line-downside{stroke-width:1.7;stroke-dasharray:4 3;opacity:.9}.line-upside{stroke:#507d9a}.line-downside{stroke:#bd806f}.bar-cfads{fill:#598879}.bar-equity{fill:#a9c6bb}.legend{display:flex;flex-wrap:wrap;gap:10px 15px;margin-top:1px}.legend>span{display:flex;align-items:center;gap:6px;color:#87949a;font-size:8px}.legend-dot{width:7px;height:7px;border-radius:2px;display:inline-block}.legend-dot.ppa{background:#287e73}.legend-dot.merchant{background:#9bc9b4}.legend-dot.cfads{background:#598879}.legend-dot.equity-flow{background:#a9c6bb}.legend-line{width:12px;height:0;border-top:2px dashed;display:inline-block}.legend-line.upside{border-color:#507d9a}.legend-line.downside{border-color:#bd806f}.projection-panel{margin-top:13px;padding:16px 0 0}.projection-panel>.panel-heading{padding:0 16px 13px}.table-tools{display:flex;align-items:center;gap:11px}.table-tools>span{font-size:8px;letter-spacing:.12em;color:#6c978e;font-weight:700}.table-wrap{overflow:auto;border-top:1px solid #edf0f2;max-height:355px}.table-wrap table{border-collapse:collapse;min-width:1020px;width:100%;font-size:9px}.table-wrap th,.table-wrap td{padding:9px 9px;text-align:right;border-bottom:1px solid #f0f2f3;white-space:nowrap}.table-wrap th:first-child,.table-wrap td:first-child{text-align:left;padding-left:16px}.table-wrap th{position:sticky;top:0;background:#f9fbfb;z-index:1;color:#728188;font-size:8px;font-weight:700;line-height:1.4}.table-wrap th small{font-size:7px;color:#a1acb1;font-weight:500}.table-wrap td{color:#55666d;font-variant-numeric:tabular-nums}.table-wrap tbody tr:hover{background:#f7faf9}.table-wrap .year-cell{font-weight:700;color:#3e5d62}.table-wrap .negative{color:#b05d5b}.lower-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(290px,.95fr);gap:13px;margin-top:13px}.debt-panel,.sensitivity-panel{padding:16px 0 0}.debt-panel>.panel-heading,.sensitivity-panel>.panel-heading{padding:0 16px 13px}.table-wrap.compact{max-height:293px}.table-wrap.compact table{min-width:600px}.table-wrap.compact th,.table-wrap.compact td{padding:8px 7px;font-size:8px}.sensitivity-legend{display:flex;justify-content:space-between;padding:9px 15px 5px;color:#98a4a9;font-size:7px;letter-spacing:.06em}.sensitivity-table{padding:0 10px 9px}.sensitivity-table table{width:100%;border-collapse:separate;border-spacing:3px;text-align:center;font-size:9px}.sensitivity-table th{color:#76868d;font-weight:600;font-size:8px;padding:5px 3px}.sensitivity-table td{border-radius:4px;padding:8px 3px;font-weight:700;font-variant-numeric:tabular-nums}.sens-low{background:#f5e7e3;color:#9f625b}.sens-mid{background:#eff3e9;color:#738052}.sens-high{background:#dceee7;color:#31705f}.sensitivity-panel>.field-hint{padding:0 14px 12px;font-size:8px}.methodology-strip{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:13px 15px;margin-top:14px;border:1px solid #e2e9e9;border-radius:10px;background:#eef3f3}.methodology-strip>span{font-size:8px;letter-spacing:.12em;font-weight:700;color:#578077;white-space:nowrap}.methodology-strip p{font-size:8px;line-height:1.5;color:#7d8b90;margin:0}.methodology-strip button{border:0;background:none;color:#497b72;font:600 9px sans-serif;cursor:pointer;white-space:nowrap}.methodology-details{padding:16px 20px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:8px;color:#67777e;font-size:10px;line-height:1.6}.methodology-details h3{margin:0 0 10px;font:700 13px sans-serif;color:#354d56}.methodology-details ul{padding-left:17px;margin:0}.methodology-details li{padding:0 0 7px}.method-warning{color:#986656;background:#faf2ee;border-radius:7px;padding:9px 11px;margin:8px 0 0}.footer{padding:18px 4px 0;display:flex;justify-content:space-between;gap:15px;color:#a2adb1;font-size:8px}.footer span:last-child{text-align:right}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(260px,310px) minmax(0,1fr);padding:0 18px 24px;gap:14px}.topbar{padding:0 22px}.hero{padding:35px 26px 30px}.input-section,.rail-heading{padding-left:16px;padding-right:16px}.chart-grid{grid-template-columns:1fr}.chart{height:210px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payback-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){body{font-size:12px}.topbar{height:70px;padding:0 15px}.brand-logo{width:54px;height:54px}.brand-caption strong{font-size:9px}.brand-caption small{font-size:7px}.local-pill{display:none}.topbar-right{gap:8px}.button{padding:8px 10px}.hero{display:block;padding:27px 18px 21px}.hero h1{font-size:39px}.hero>div>p{font-size:12px}.illustrative-note{width:100%;margin-top:17px}.workspace{display:flex;flex-direction:column;padding:0 12px 22px;gap:13px}.input-rail,.results-area{width:100%}.input-rail{order:2}.results-area{order:1}.result-heading{padding:17px 3px 13px;align-items:flex-start;flex-direction:column}.result-heading h2{font-size:19px}.scenario-select{width:100%;min-width:0}.scenario-select>span{text-align:left}.segmented button{padding:8px}.kpi-grid{gap:7px}.kpi-card{min-height:91px;padding:12px}.kpi-card strong{font-size:21px}.payback-row{gap:1px}.payback-row>div{padding:9px 8px;grid-template-columns:19px 1fr}.payback-row span:not(.payback-icon){font-size:7px}.chart-grid,.lower-grid{grid-template-columns:1fr}.chart-panel{padding:14px 12px 11px}.chart{height:190px}.projection-panel,.debt-panel,.sensitivity-panel{padding-top:14px}.projection-panel>.panel-heading,.debt-panel>.panel-heading,.sensitivity-panel>.panel-heading{padding:0 12px 11px}.panel-heading h3{font-size:12px}.methodology-strip{grid-template-columns:1fr;gap:7px}.methodology-strip button{text-align:left;padding:3px 0}.footer{flex-direction:column}.footer span:last-child{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* Tablet portrait: stack the main work areas instead of squeezing the dashboard into two narrow columns. */
@media (min-width:761px) and (max-width:900px){
  .hero{align-items:stretch;flex-direction:column;gap:16px}
  .hero>div{min-width:0}
  .illustrative-note{width:100%}
  .workspace{display:flex;flex-direction:column;gap:16px}
  .results-area,.input-rail{width:100%;min-width:0}
  .results-area{order:1}
  .input-rail{order:2}
}
