:root{--ww-green: #33cc33;--ww-green-dim: rgba(51, 204, 51, .25);--ww-bg: #000000;--ww-surface: #0f0f0f;--ww-surface-2: #0a0a0a;--ww-surface-elevated: #141414;--ww-text: #e8e8e8;--ww-muted: #9a9a9a;--ww-radius: 12px;--ww-font: system-ui, "Segoe UI", Roboto, Ubuntu, sans-serif;--ww-border: rgba(51, 204, 51, .18)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--ww-font);background:var(--ww-bg);color:var(--ww-text);line-height:1.5}a{color:var(--ww-green)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.top-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.25rem;background:var(--ww-bg);border-bottom:1px solid rgba(51,204,51,.35)}.top-bar__tag{font-size:.75rem;color:var(--ww-muted)}.brand-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.brand-row img{display:block;height:2.25rem;width:auto}.brand-icons{display:flex;align-items:center;gap:.5rem}.brand-lockup{display:none;height:2.5rem;width:auto}@media(min-width:640px){.brand-icons{display:none}.brand-lockup{display:block}}.hero{padding:2rem 1.25rem 1rem;background:radial-gradient(ellipse 80% 60% at 50% 0%,#0d1a0d,#000 55%);border-bottom:1px solid rgba(51,204,51,.12)}.hero h1{margin:0 0 .65rem;font-size:1.35rem;font-weight:600}.hero__body{display:flex;flex-direction:column;gap:.65rem;max-width:52rem;color:var(--ww-muted);font-size:.95rem;line-height:1.5}.hero__body p{margin:0}.main-stack{display:flex;flex-direction:column;gap:1.5rem;padding:1.25rem;flex:1;width:100%;max-width:1680px;margin:0 auto}.card{background:var(--ww-surface);border:1px solid var(--ww-border);border-radius:var(--ww-radius);padding:1.25rem}.card--inputs{width:100%}.card--inputs-collapsed{padding-bottom:1rem}.inputs-card__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.inputs-card__header h2{margin:0;font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.inputs-card__header h2 img{height:1.5rem;width:auto}.inputs-card__toggle{flex-shrink:0;padding:.45rem .85rem;border-radius:8px;border:1px solid var(--ww-border);background:var(--ww-surface-elevated);color:var(--ww-text);font-size:.85rem;font-weight:600;cursor:pointer}.inputs-card__toggle:hover{border-color:#33cc3373}.inputs-card__toggle:focus{outline:2px solid var(--ww-green);outline-offset:2px}.inputs-card__collapsed-hint-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s ease}.inputs-card__collapsed-hint-wrap--open{grid-template-rows:1fr}.inputs-card__collapsed-hint-inner{overflow:hidden;min-height:0}.inputs-card__collapsed-status{margin:0 0 .75rem;font-size:.85rem;color:var(--ww-muted)}.inputs-card__body-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s ease;margin-bottom:.75rem}.inputs-card__body-wrap--expanded{grid-template-rows:1fr}.inputs-card__body-inner{overflow:hidden;min-height:0}.inputs-card__footer{padding-top:.75rem;border-top:1px solid rgba(51,204,51,.12);transition:padding-top .35s ease,border-color .35s ease}@media(prefers-reduced-motion:reduce){.inputs-card__body-wrap,.inputs-card__collapsed-hint-wrap{transition-duration:.01ms}}.card--results{width:100%;position:relative}.card h2{margin:0 0 1rem;font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.card h2 img{height:1.5rem;width:auto}label{display:block;font-size:.8rem;color:var(--ww-muted);margin-bottom:.25rem}.field{margin-bottom:.9rem}.input-section{border:1px solid rgba(51,204,51,.2);border-radius:10px;padding:.9rem;margin:0 0 1rem;background:#0a0a0aa6}.section-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.section-grid{display:grid;gap:.75rem}input[type=text],input[type=number],select{width:100%;padding:.55rem .65rem;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:var(--ww-surface-2);color:var(--ww-text);font-size:.95rem}input:focus,select:focus{outline:2px solid var(--ww-green);outline-offset:0}.checkbox-row{display:flex;align-items:center;gap:.75rem;min-height:1.75rem;margin-bottom:1rem}.checkbox-row__control{flex:0 0 1.25rem;display:flex;align-items:center;justify-content:center}.checkbox-row__control input{width:1.1rem;height:1.1rem;accent-color:var(--ww-green)}.checkbox-row label{flex:1;line-height:1.35}.checkbox-row--compact{margin-bottom:0}.checkbox-row--results{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(51,204,51,.15)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;border:none;border-radius:10px;background:var(--ww-green);color:#000;font-weight:600;font-size:1rem;cursor:pointer}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--ww-border);border-radius:10px;background:var(--ww-surface-elevated);color:var(--ww-text);font-weight:600;font-size:.9rem;cursor:pointer}.btn-secondary:hover{border-color:#33cc3373}.kpi-section{margin-bottom:1rem}.kpi-section__title{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:var(--ww-muted)}.timeseries-table-block{margin-top:.5rem}.timeseries-table-actions{margin-bottom:.75rem}.annual-csv-download{margin-top:.5rem;margin-bottom:.75rem}.annual-csv-download .error-banner{margin-top:.5rem}.advanced-block{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(51,204,51,.15)}.advanced-grid{display:grid;gap:.75rem}@media(min-width:560px){.section-grid,.advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:960px){.advanced-grid--triple{grid-template-columns:repeat(3,minmax(0,1fr))}}.error-banner{padding:.75rem 1rem;border-radius:8px;background:#b4282840;border:1px solid rgba(255,80,80,.4);color:#ffb4b4;margin-bottom:1rem;font-size:.9rem}.run-hint{color:var(--ww-muted);font-size:.9rem;margin:0 0 .75rem}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.loading-overlay img{width:72px;height:72px;animation:ww-pulse 1.1s ease-in-out infinite}.loading-overlay__text{color:var(--ww-muted)}@keyframes ww-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(.96)}}.results-placeholder{color:var(--ww-muted);margin:0}.meta-grid{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.35rem .65rem;margin:0 0 1.25rem;padding:.65rem .75rem;background:var(--ww-surface-2);border-radius:8px;border:1px solid rgba(255,255,255,.06)}.meta-grid__item{flex:0 1 auto;min-width:min(7rem,100%)}.meta-grid__item dt{font-size:.7rem;letter-spacing:.01em;color:var(--ww-muted);margin:0}.meta-grid__item dd{margin:.15rem 0 0;font-size:.95rem;font-variant-numeric:tabular-nums}.meta-grid__item--name{padding-left:.2rem;padding-right:.9rem;margin-right:.45rem;border-right:1px solid rgba(255,255,255,.14)}.meta-grid__item--name dd{min-width:16ch;overflow-wrap:anywhere}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.6rem;margin-bottom:.5rem}.kpi-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}@media(max-width:900px){.kpi-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi-section__grids{display:flex;flex-direction:column;gap:.5rem}.kpi-card{background:var(--ww-surface-elevated);border:1px solid var(--ww-border);border-radius:10px;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.35rem}.kpi-card__label{font-size:.75rem;color:var(--ww-muted);letter-spacing:.02em}.kpi-card__value{font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ww-green)}.kpi-card--compact{padding:.65rem .75rem}.kpi-card--compact .kpi-card__value{font-size:1.05rem}.kpi-card--hero{border-color:#33cc3373;background:#33cc3314}.kpi-card--hero .kpi-card__label{font-weight:600;color:var(--ww-text, #e8e8e8)}.kpi-card--hero .kpi-card__value{font-size:1.2rem;font-weight:700}.kpi-card--compact.kpi-card--hero .kpi-card__value{font-size:1.1rem}.kpi-card--summary-tight{padding:.5rem .55rem}.kpi-card--summary-tight .kpi-card__label{font-size:.68rem}.kpi-card--summary-tight .kpi-card__value{font-size:.95rem}.kpi-card--summary-tight.kpi-card--hero .kpi-card__value{font-size:1.05rem}.kpi-card--baseline{border-color:#dc5a5a8c;background:#dc5a5a12}.kpi-card--baseline .kpi-card__label{color:#e8a0a0;font-weight:600}.kpi-card--baseline .kpi-card__value{color:#ff8a8a;font-weight:600}.kpi-card--ww-cost{border-color:#33cc3380;background:#33cc3312}.kpi-card--ww-cost .kpi-card__label{color:#9fdf9f;font-weight:600}.kpi-card--ww-cost .kpi-card__value{color:#6fd66f;font-weight:600}.summary-panels{display:grid;gap:.9rem;margin-bottom:.75rem;align-items:stretch}.summary-column{display:flex;flex-direction:column;gap:.75rem;min-width:0;align-self:stretch}.derived-metrics{border:1px solid rgba(51,204,51,.14);border-radius:10px;padding:.65rem .75rem;background:#0a0a0a73}.derived-metrics--embedded{border:none;border-radius:0;margin-top:.65rem;padding:.65rem 0 0;background:transparent;border-top:1px solid rgba(51,204,51,.14)}.derived-metrics__heading{margin:0 0 .45rem;font-size:.8rem;font-weight:600;color:var(--ww-muted)}.derived-metrics__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}@media(max-width:700px){.derived-metrics__grid{grid-template-columns:1fr}}.derived-metrics__cell{display:flex;flex-direction:column;gap:.2rem}.derived-metrics__label{font-size:.68rem;color:var(--ww-muted)}.derived-metrics__value{font-size:.9rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ww-text)}.emissions-panel{margin:0 0 1rem;padding:.85rem 1rem;border-radius:var(--ww-radius);border:1px solid rgba(51,204,51,.22);background:linear-gradient(145deg,rgba(51,204,51,.08) 0%,var(--ww-surface-elevated) 55%)}.emissions-panel__title{margin:0 0 .5rem;font-size:1rem;display:flex;align-items:center;gap:.45rem;color:var(--ww-green)}.emissions-panel__title img{height:1.35rem;width:auto}.emissions-panel__subtitle{margin:0 0 .75rem;font-size:.82rem;color:var(--ww-muted);line-height:1.45}.emissions-panel__subtitle code{font-size:.92em;font-family:ui-monospace,monospace;color:var(--ww-text)}.emissions-panel__formula{margin:0 0 .55rem}.emissions-panel__formula-line{margin:0 0 .2rem;font-size:.75rem;line-height:1.45;color:var(--ww-muted);font-variant-numeric:tabular-nums}.emissions-panel__columns{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.emissions-panel__columns{grid-template-columns:1fr}}.emissions-panel__column-label{margin:0 0 .25rem;font-size:.78rem;color:var(--ww-muted);letter-spacing:.01em}.emissions-panel__mass{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem}.emissions-panel__mass-value{font-size:1.65rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ww-green)}.emissions-panel__mass-unit{font-size:.95rem;color:var(--ww-muted)}.emissions-panel__note{margin:.35rem 0 0;font-size:.75rem;color:var(--ww-muted)}.emissions-panel__footnote{margin:.65rem 0 0;font-size:.72rem;color:var(--ww-muted)}.project-finance{margin:0 0 1rem;padding:.85rem 1rem;border-radius:var(--ww-radius);border:1px solid rgba(51,204,51,.2);background:linear-gradient(160deg,rgba(51,204,51,.06) 0%,var(--ww-surface-elevated) 50%)}.project-finance--unavailable{font-size:.85rem;color:var(--ww-muted);border-style:dashed}.project-finance__title{margin:0 0 .45rem;font-size:1rem;font-weight:600;color:var(--ww-green)}.project-finance__lede{margin:0 0 .85rem;font-size:.82rem;color:var(--ww-muted);line-height:1.45}.project-finance__subheading{margin:0 0 .5rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ww-muted)}.project-finance__capex{margin-bottom:1rem}.project-finance__lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.project-finance__line{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;font-size:.88rem;font-variant-numeric:tabular-nums;color:var(--ww-text)}.project-finance__line-label{color:var(--ww-muted)}.project-finance__line-value{font-weight:500;font-variant-numeric:tabular-nums}.project-finance__line--final{margin-top:.4rem;padding-top:.55rem;border-top:1px solid rgba(51,204,51,.25)}.project-finance__line-value--final{font-weight:700;font-size:1rem;color:var(--ww-green)}.project-finance__outcome-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.project-finance__outcome-grid{grid-template-columns:1fr}}.project-finance__outcome-card{padding:.65rem .75rem;border-radius:8px;border:1px solid rgba(51,204,51,.14);background:#0a0a0a73}.project-finance__outcome-card--highlight{border-color:#33cc3338;background:linear-gradient(145deg,#33cc3312,#0a0a0a8c)}.project-finance__outcome-label{margin:0 0 .25rem;font-size:.78rem;color:var(--ww-muted)}.project-finance__outcome-value{margin:0;font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ww-text)}.project-finance__outcome-value--money{font-size:1.35rem;font-weight:700;color:var(--ww-green)}.project-finance__outcome-value--money-negative{color:var(--ww-negative)}.project-finance__outcome-hint{margin:.35rem 0 0;font-size:.72rem;line-height:1.4;color:var(--ww-muted)}.kpi-section--panel{flex:1 1 auto;display:flex;flex-direction:column;min-height:100%;border:1px solid rgba(51,204,51,.17);border-radius:10px;padding:.7rem;background:#0a0a0a8c}.kpi-section--panel .derived-metrics--embedded{margin-top:auto}@media(min-width:1080px){.summary-panels{grid-template-columns:repeat(2,minmax(0,1fr))}}.chart-panel{margin:0 0 1.25rem;padding:.75rem 0 0;border-top:1px solid rgba(51,204,51,.12)}.chart-hint{font-size:.8rem;color:var(--ww-muted);margin:0 0 .5rem}.chart-date-range{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:flex-end;margin:0 0 .75rem}.chart-date-range__field{display:flex;flex-direction:column;gap:.25rem;min-width:min(100%,12rem)}.chart-date-range__label{font-size:.75rem;color:var(--ww-muted);letter-spacing:.01em}.chart-date-range input[type=datetime-local]{width:100%;max-width:18rem}.chart-empty{padding:1.5rem;color:var(--ww-muted);margin-bottom:1rem}.data-panel,.data-panel--empty{margin-top:1rem}.data-panel__title{color:var(--ww-green);font-size:.95rem;margin:0 0 .5rem;font-weight:600}.data-panel__empty{color:var(--ww-muted);font-size:.9rem;margin:0}.table-scroll{overflow:auto;max-height:min(60vh,520px);margin-top:.5rem;border-radius:8px;border:1px solid var(--ww-border);contain:content}.data-table{width:100%;border-collapse:collapse;font-size:.8rem}.data-table th,.data-table td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)}.data-table thead th{position:sticky;top:0;z-index:1;background:var(--ww-surface-elevated);color:var(--ww-green);font-weight:600;white-space:nowrap}.data-table tbody tr:nth-child(2n){background:#00000040}.data-table__cell--numeric{font-variant-numeric:tabular-nums;text-align:right}.data-table__cell--text{font-variant-numeric:tabular-nums}.section-title{color:var(--ww-green);font-size:.95rem;margin:1.25rem 0 .5rem}.section-title--input{margin-top:0;margin-bottom:.8rem}.footer-brand{padding:1.5rem 1.25rem 2rem;text-align:center;border-top:1px solid rgba(51,204,51,.15)}.footer-brand img{height:2rem;margin-bottom:.5rem}.footer-brand p{margin:0;font-size:.8rem;color:var(--ww-muted)}@media(min-width:960px){.main-stack{padding:1.5rem 2rem}}
