@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Space+Grotesk:wght@500&display=swap";:root{--teal-100:#f2faf9;--teal-200:#e8f4f3;--teal-300:#e6f5f3;--teal-500:#94d1cc;--teal-700:#00988b;--teal-800:#03857a;--teal-900:#06756c;--neutral-100:#fbfaf9;--neutral-200:#f2efed;--neutral-300:#e3e0dd;--neutral-400:#d2cecb;--neutral-500:#b8b2ad;--neutral-600:#897f78;--neutral-700:#6c6560;--neutral-800:#56514e;--neutral-900:#3d3a38;--neutral-1000:#2a2929;--green-700:#08875d;--red-700:#e02d3c;--tech-onshore-wind:#58caa1;--tech-solar:#fdcf77;--tech-hydro:#6ea1dd;--tech-wind:#81d8b9;--color-primary:var(--teal-700);--color-primary-hover:var(--teal-800);--color-primary-active:var(--teal-900);--color-primary-light:var(--teal-300);--color-text:var(--neutral-1000);--color-text-secondary:var(--neutral-800);--color-text-muted:var(--neutral-600);--color-bg:var(--neutral-100);--color-surface:#fff;--color-border:var(--neutral-300);--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 2px 4px 0 #0000001a, 0 0px 3px 0 #00000026;--shadow-md:0px 4px 12px 0px #2a292929;--font-heading:"Space Grotesk", "Arial", sans-serif;--font-body:"Inter", "Arial", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}body{min-width:320px;min-height:100vh;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);margin:0;font-size:.875rem;font-weight:400;line-height:1.5}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:relative}.header-accent{background:var(--color-primary);height:3px}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;max-width:1200px;margin:0 auto;padding:.75rem 1.5rem;display:flex}.header-logo{flex-shrink:0}.header-title{font-family:var(--font-body);color:var(--color-text-muted);margin:0;font-size:.8125rem;font-weight:500}.header-nav{gap:0;display:flex}.header-tab{font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s,background .15s}.header-tab:hover{color:var(--color-text);background:var(--neutral-100)}.header-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.main{flex-direction:column;gap:1rem;max-width:1200px;margin:0 auto;padding:1.5rem;display:flex}.intro{background:var(--teal-100);border-left:3px solid var(--color-primary);padding:1rem 1.25rem}.intro-title{font-family:var(--font-heading);color:var(--color-text);margin:0 0 .25rem;font-size:1.25rem;font-weight:500;line-height:1.75rem}.intro-description{font-family:var(--font-body);color:var(--color-text-secondary);max-width:720px;margin:0;font-size:.8125rem;font-weight:400;line-height:1.4}.controls-row{align-items:stretch;gap:1rem;display:flex}.control-card{background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;flex:1;gap:.75rem;min-width:0;padding:1rem 1.25rem;display:flex}.control-card-title{font-family:var(--font-heading);color:var(--color-text);border-bottom:1px solid var(--color-border);margin:0;padding-bottom:.5rem;font-size:.9375rem;font-weight:500;line-height:1}.control-card-description{font-family:var(--font-body);color:var(--color-text-muted);margin:0;font-size:.75rem;font-weight:400;line-height:1.4}.control-field-label{font-family:var(--font-body);color:var(--color-text-secondary);font-size:.75rem;font-weight:600;line-height:1rem}.score-panel{background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem;display:flex}.score-panel-inner{justify-content:center;align-items:baseline;gap:2rem;display:flex}.score-card{flex-direction:column;align-items:center;gap:.25rem;display:flex}.score-card-primary .score-value{font-family:var(--font-heading);color:var(--color-primary);font-size:3rem;font-weight:500;line-height:1}.score-card-secondary .score-value{font-family:var(--font-heading);color:var(--neutral-600);font-size:1.75rem;font-weight:500;line-height:1}.score-label{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;font-size:.6875rem;font-weight:600;line-height:1rem}.score-description{font-family:var(--font-body);color:var(--neutral-700);text-align:center;max-width:480px;margin:0;font-size:.75rem;font-weight:400;line-height:1.4}.score-panel-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.btn-primary{font-family:var(--font-body);background:var(--color-primary);color:#fff;cursor:pointer;border:none;padding:.5rem 1.25rem;font-size:.8125rem;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{font-family:var(--font-body);border:1px solid var(--color-primary);background:var(--color-surface);color:var(--color-primary);cursor:pointer;padding:.5rem 1.25rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s}.btn-secondary:hover{background:var(--teal-100)}.export-btn{font-family:var(--font-body);border:1px solid var(--color-primary);background:var(--color-surface);color:var(--color-primary);cursor:pointer;padding:.5rem 1.25rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s}.export-btn:hover{background:var(--teal-100)}.export-preview-text{font-family:var(--font-body);color:var(--color-text-secondary);margin:0;font-size:.8125rem;line-height:1.4}.control-card-actions{border-top:1px solid var(--color-border);align-items:center;gap:.5rem;margin-top:auto;padding-top:.5rem;display:flex}.control-select{font-family:var(--font-body);border:1px solid var(--neutral-400);background:var(--color-surface);color:var(--color-text);flex:1;min-width:0;padding:.5rem .625rem;font-size:.8125rem;font-weight:500;transition:border-color .15s}.control-select:focus{border-color:var(--color-primary);outline:none}.control-select-row{align-items:center;gap:.375rem;display:flex}.control-select-row .control-select{flex:1}.profile-selector{flex-direction:column;flex:1;gap:.5rem;display:flex}.profile-description{font-family:var(--font-body);color:var(--color-text-muted);margin:0;font-size:.6875rem;font-style:italic;font-weight:400;line-height:1.35}.slider-block{margin-bottom:.5rem}.slider-block .profile-description{margin-top:.125rem;padding-left:140px}.mix-sliders{flex-direction:column;gap:.5rem;display:flex}.slider-row{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.slider-row label{font-family:var(--font-body);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:0 0 140px;font-size:.8125rem;font-weight:500;line-height:1.125rem;overflow:hidden}.slider-row input[type=range]{min-width:0;accent-color:var(--color-primary);flex:1;height:4px}.slider-value-group{flex:0 0 64px;align-items:center;gap:.125rem;display:flex}.slider-input{width:44px;font-family:var(--font-body);font-variant-numeric:tabular-nums;text-align:right;border:1px solid var(--neutral-400);color:var(--color-text);background:var(--color-surface);padding:.25rem .375rem;font-size:.75rem;font-weight:500;transition:border-color .15s}.slider-input:focus{border-color:var(--color-primary);outline:none}.slider-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.slider-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slider-input{-moz-appearance:textfield}.slider-unit{font-family:var(--font-body);color:var(--color-text-muted);font-size:.75rem;font-weight:500}.slider-remove{border:1px solid var(--neutral-400);height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;flex:0 0 28px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;transition:border-color .15s,color .15s;display:flex}.slider-remove:hover{border-color:var(--red-700);color:var(--red-700)}.mix-empty{font-family:var(--font-body);color:var(--color-text-muted);margin:0;font-size:.8125rem;font-style:italic;font-weight:400}.upload-csv-btn{font-family:var(--font-body);border:1px solid var(--neutral-400);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;text-align:center;flex:1;min-width:0;padding:.5rem .625rem;font-size:.8125rem;font-weight:500;transition:border-color .15s,color .15s}.upload-csv-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.custom-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);border:1px solid var(--color-primary);vertical-align:middle;margin-left:.375rem;padding:0 .25rem;font-size:.625rem;font-weight:600;display:inline-block}.slider-list{flex-direction:column;display:flex}.csv-upload-overlay{z-index:100;background:#2a292980;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.csv-upload-dialog{background:var(--color-surface);border:1px solid var(--color-border);width:520px;max-width:90vw;max-height:90vh;box-shadow:var(--shadow-md);overflow-y:auto}.csv-upload-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.csv-upload-header h3{font-family:var(--font-heading);margin:0;font-size:1rem;font-weight:500}.csv-upload-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:.25rem;font-size:1.25rem}.csv-upload-close:hover{color:var(--color-text)}.csv-upload-body{flex-direction:column;gap:.875rem;padding:1.25rem;display:flex}.csv-upload-field{flex-direction:column;gap:.25rem;display:flex}.csv-upload-field label{font-family:var(--font-body);color:var(--color-text-muted);font-size:.75rem;font-weight:500}.csv-upload-field input[type=text]{font-family:var(--font-body);border:1px solid var(--neutral-400);background:var(--color-surface);color:var(--color-text);padding:.5rem .625rem;font-size:.875rem}.csv-upload-field input[type=text]:focus{border-color:var(--color-primary);outline:none}.csv-upload-field input[type=file]{font-family:var(--font-body);font-size:.8125rem}.csv-upload-format{background:var(--neutral-100);border:1px solid var(--color-border);padding:.75rem}.csv-upload-format p{font-family:var(--font-body);color:var(--color-text-secondary);margin:0 0 .375rem;font-size:.75rem;line-height:1.4}.csv-upload-format p:last-child{margin-bottom:0}.csv-format-examples{gap:.75rem;margin:.5rem 0;display:flex}.csv-format-example{flex:1}.csv-format-label{font-family:var(--font-body);color:var(--color-text-muted);margin-bottom:.25rem;font-size:.6875rem;font-weight:600;display:block}.csv-format-example pre{background:var(--color-surface);border:1px solid var(--color-border);margin:0;padding:.5rem;font-size:.6875rem;line-height:1.4;overflow-x:auto}.csv-upload-error{color:var(--red-700);font-family:var(--font-body);background:#fff6f7;border:1px solid #faebec;margin:0;padding:.5rem .75rem;font-size:.8125rem}.csv-upload-warnings{background:#fff8eb;border:1px solid #e9caa8;padding:.5rem .75rem}.csv-upload-warnings p{font-family:var(--font-body);color:#b25e09;margin:0;font-size:.8125rem}.csv-upload-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;display:flex}.csv-upload-cancel{font-family:var(--font-body);border:1px solid var(--neutral-300);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:.5rem 1rem;font-size:.8125rem;font-weight:600}.csv-upload-cancel:hover{border-color:var(--teal-500);background:var(--teal-100);color:var(--color-primary)}.csv-upload-submit{font-family:var(--font-body);background:var(--color-primary);color:#fff;cursor:pointer;border:none;padding:.5rem 1rem;font-size:.8125rem;font-weight:600}.csv-upload-submit:hover{background:var(--color-primary-hover)}.results-section{flex-direction:column;gap:1rem;display:flex}.charts-row{gap:1rem;display:flex}.chart-half{flex:1;min-width:0}.chart-block{background:var(--color-surface);border:1px solid var(--color-border);padding:1rem 1.25rem}.chart-description{font-family:var(--font-body);color:var(--color-text-secondary);margin:0 0 .5rem;font-size:.8125rem;font-weight:400;line-height:1.4}.cta{background:var(--neutral-1000);text-align:center;padding:1.5rem}.cta-text{font-family:var(--font-heading);color:#fff;margin:0 0 .5rem;font-size:1.125rem;font-weight:500;line-height:1.5rem}.cta-link{background:var(--color-primary);color:#fff;font-family:var(--font-body);padding:.75rem 1.5rem;font-size:.8125rem;font-weight:600;line-height:.8125rem;text-decoration:none;transition:background .15s;display:inline-block}.cta-link:hover{background:var(--color-primary-hover)}.cta-link:active{background:var(--color-primary-active)}.save-scenario-inline{align-items:center;gap:.25rem;display:flex}.save-scenario-input{font-family:var(--font-body);border:1px solid var(--neutral-400);background:var(--color-surface);color:var(--color-text);width:160px;padding:.5rem .625rem;font-size:.8125rem}.save-scenario-input:focus{border-color:var(--color-primary);outline:none}.save-scenario-confirm{font-family:var(--font-body);background:var(--color-primary);color:#fff;cursor:pointer;border:none;padding:.5rem .75rem;font-size:.8125rem;font-weight:600}.save-scenario-confirm:hover{background:var(--color-primary-hover)}.save-scenario-confirm:disabled{opacity:.5;cursor:default}.save-scenario-cancel{border:1px solid var(--neutral-400);color:var(--color-text-muted);cursor:pointer;background:0 0;padding:.375rem .5rem;font-size:1rem;line-height:1}.saved-scenarios{background:var(--color-surface);border:1px solid var(--color-border);padding:1rem 1.25rem}.saved-scenarios-title{font-family:var(--font-heading);color:var(--color-text);border-bottom:1px solid var(--color-border);margin:0 0 .5rem;padding-bottom:.5rem;font-size:.9375rem;font-weight:500}.saved-scenarios-list{flex-direction:column;gap:.375rem;display:flex}.saved-scenario-item{background:var(--neutral-100);border:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;transition:border-color .15s;display:flex}.saved-scenario-item:hover{border-color:var(--teal-500)}.saved-scenario-info{flex-direction:column;gap:.125rem;min-width:0;display:flex}.saved-scenario-name{font-family:var(--font-body);color:var(--color-text);font-size:.8125rem;font-weight:500}.saved-scenario-detail{font-family:var(--font-body);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem;overflow:hidden}.saved-scenario-actions{flex-shrink:0;gap:.375rem;display:flex}.saved-scenario-load{font-family:var(--font-body);border:1px solid var(--color-primary);background:var(--color-surface);color:var(--color-primary);cursor:pointer;padding:.375rem .75rem;font-size:.75rem;font-weight:600;transition:background .15s}.saved-scenario-load:hover{background:var(--teal-100)}.saved-scenario-delete{border:1px solid var(--neutral-400);color:var(--color-text-muted);cursor:pointer;background:0 0;padding:.25rem .5rem;font-size:.875rem;line-height:1}.saved-scenario-delete:hover{border-color:var(--red-700);color:var(--red-700)}.compare-view{flex-direction:column;gap:1rem;display:flex}.compare-empty{text-align:center;background:var(--color-surface);border:1px solid var(--color-border);padding:2.5rem}.compare-empty p{font-family:var(--font-body);color:var(--color-text-muted);margin:0;font-size:.875rem}.compare-picker{flex-direction:column;gap:.375rem;display:flex}.compare-picker-item{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;align-items:center;gap:.75rem;padding:.625rem 1rem;transition:border-color .15s,background .15s;display:flex}.compare-picker-item:hover{border-color:var(--teal-500);background:var(--neutral-100)}.compare-picker-item--selected{border-color:var(--color-primary);background:var(--teal-100)}.compare-picker-item--disabled{opacity:.5;cursor:default}.compare-picker-item--disabled:hover{background:var(--color-surface);border-color:var(--color-border)}.compare-picker-item--warning{opacity:.5;border-color:var(--red-700)}.compare-picker-item input[type=checkbox]{accent-color:var(--color-primary);flex-shrink:0;width:16px;height:16px}.compare-picker-info{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.compare-picker-name{font-family:var(--font-body);color:var(--color-text);font-size:.875rem;font-weight:500}.compare-picker-detail{font-family:var(--font-body);color:var(--color-text-muted);font-size:.75rem}.compare-actions{gap:.5rem;display:flex}.compare-results-section{flex-direction:column;gap:1rem;display:flex}.compare-scores-row{gap:1rem;display:flex}.compare-scenario-col{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;flex-direction:column;flex:1;align-items:center;gap:.375rem;padding:1rem 1.25rem;display:flex}.compare-scenario-color-bar{width:100%;height:4px;margin-bottom:.25rem}.compare-scenario-name{font-family:var(--font-heading);color:var(--color-text);font-size:1rem;font-weight:500}.compare-scenario-profile{font-family:var(--font-body);color:var(--color-text-muted);font-size:.75rem}.compare-score-card{flex-direction:column;align-items:center;gap:.125rem;display:flex}.compare-score-value{font-family:var(--font-heading);font-size:2.25rem;font-weight:500;line-height:1}.compare-score-value-secondary{font-family:var(--font-heading);color:var(--neutral-600);font-size:1.25rem;font-weight:500;line-height:1}.compare-score-label{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.625rem;font-weight:600}.profile-card-list{flex-direction:column;gap:.375rem;display:flex}.profile-card{background:var(--neutral-100);border:1px solid var(--color-border);flex-direction:column;gap:.25rem;padding:.625rem .75rem;display:flex}.profile-card-header{justify-content:space-between;align-items:center;display:flex}.profile-card-name{font-family:var(--font-body);color:var(--color-text);font-size:.8125rem;font-weight:500}.profile-card-remove{border:1px solid var(--neutral-400);color:var(--color-text-muted);cursor:pointer;background:0 0;padding:.125rem .375rem;font-size:.875rem;line-height:1}.profile-card-remove:hover{border-color:var(--red-700);color:var(--red-700)}.profile-card-stats{gap:.75rem;display:flex}.profile-card-stat{font-family:var(--font-body);color:var(--color-primary);font-size:.6875rem;font-weight:600}.profile-card-range{font-family:var(--font-body);color:var(--color-text-muted);font-size:.6875rem}.allocation-matrix-wrap{overflow-x:auto}.allocation-matrix{border-collapse:collapse;width:100%;font-family:var(--font-body);font-size:.8125rem}.allocation-matrix th,.allocation-matrix td{border:1px solid var(--color-border);text-align:center;padding:.5rem .625rem}.allocation-matrix th{background:var(--neutral-100);color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.allocation-matrix td:first-child{text-align:left;background:var(--neutral-100);white-space:nowrap;font-weight:500}.allocation-matrix input[type=number]{width:56px;font-family:var(--font-body);font-variant-numeric:tabular-nums;text-align:right;border:1px solid var(--neutral-400);background:var(--color-surface);color:var(--color-text);padding:.25rem .375rem;font-size:.8125rem;font-weight:500;transition:border-color .15s}.allocation-matrix input[type=number]:focus{border-color:var(--color-primary);outline:none}.allocation-matrix input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.allocation-matrix input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.allocation-matrix input[type=number]{-moz-appearance:textfield}.allocation-sum{font-family:var(--font-body);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600}.allocation-sum--over{color:var(--red-700)}.allocation-sum--ok{color:var(--color-text-muted)}.sankey-block{background:var(--color-surface);border:1px solid var(--color-border);padding:1rem 1.25rem}.date-range-picker{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.date-range-field{flex-direction:column;gap:.125rem;display:flex}.date-range-field label{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.date-range-field input[type=date]{font-family:var(--font-body);border:1px solid var(--neutral-400);background:var(--color-surface);color:var(--color-text);padding:.375rem .5rem;font-size:.8125rem}.date-range-field input[type=date]:focus{border-color:var(--color-primary);outline:none}.date-range-sep{font-family:var(--font-body);color:var(--color-text-muted);padding-top:1rem;font-size:.8125rem}.results-controls{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.consumer-selector{flex-direction:column;gap:.125rem;display:flex}.consumer-selector label{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.consumer-selector select{font-family:var(--font-body);border:1px solid var(--neutral-400);background:var(--color-surface);color:var(--color-text);padding:.5rem .625rem;font-size:.875rem}.consumer-selector select:focus{border-color:var(--color-primary);outline:none}.score-cards-row{gap:1rem;display:flex}.score-card-block{background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;flex:1;align-items:center;gap:.25rem;padding:1rem 1.25rem;display:flex}.score-card-value{font-family:var(--font-heading);color:var(--color-primary);font-size:2.5rem;font-weight:500;line-height:1}.score-card-value--secondary{color:var(--neutral-600);font-size:1.75rem}.score-card-label{font-family:var(--font-body);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.results-empty{text-align:center;background:var(--color-surface);border:1px solid var(--color-border);padding:2.5rem}.results-empty p{font-family:var(--font-body);color:var(--color-text-muted);margin:0;font-size:.875rem}@media (width>=768px){.profile-selector select{max-width:300px}}@media (width<=767px){.header-inner{flex-direction:column;align-items:flex-start}.main{gap:.75rem;padding:.75rem}.controls-row{flex-direction:column;gap:.75rem}.score-panel{padding:1rem}.score-panel-inner{gap:1.5rem}.score-card-primary .score-value{font-size:2.25rem}.slider-block .profile-description{padding-left:0}.charts-row{flex-direction:column}.slider-row{flex-wrap:wrap}.slider-row label{flex:0 0 100%}.slider-row input[type=range]{min-width:0}.control-card,.chart-block,.cta{padding:.75rem}.compare-scores-row{flex-direction:column}.score-panel-actions{flex-direction:column;align-items:stretch}}
