:root{--canvas:#f3f2ed;--surface:#fbfaf6;--surface-muted:#e8e6de;--ink:#18211d;--muted:#65716b;--line:#cdd1ca;--line-strong:#aeb6af;--forest:#234b3f;--forest-hover:#183a30;--teal:#4e7b70;--steel:#6a8796;--amber:#b9792b;--brick:#9c4939;--success:#28684f;--focus:#126e5b;--ease-out:cubic-bezier(0.23,1,0.32,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;background:var(--canvas);color:var(--ink);font-family:IBM Plex Sans,Helvetica Neue,Arial,sans-serif;font-size:.9375rem;line-height:1.5}button,input,select{color:inherit;font:inherit}button,select,summary{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}::selection{background:#c9dcd4;color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:grid;grid-template-columns:minmax(15rem,1fr) auto minmax(12rem,1fr);min-height:4.5rem;padding:.65rem max(1.25rem,calc((100vw - 100rem) / 2));border-bottom:1px solid rgba(174,182,175,.76);background:rgba(243,242,237,.94);-webkit-backdrop-filter:blur(12px) saturate(115%);backdrop-filter:blur(12px) saturate(115%)}.brand,.topbar{align-items:center}.brand{display:flex;gap:.75rem;width:max-content}.brand-symbol{position:relative;display:block;width:2.35rem;height:2.35rem;flex:0 0 2.35rem;border:1px solid var(--forest);background:var(--forest)}.brand-symbol span,.brand-symbol:before{position:absolute;content:"";background:#f3f2ed}.brand-symbol:before{top:0;bottom:0;left:.8rem;width:.22rem}.brand-symbol span{top:1rem;right:0;left:0;height:.22rem}.brand small,.brand strong{display:block}.brand strong{font-size:.98rem;font-weight:650}.brand small{margin-top:.05rem;color:var(--muted);font-size:.74rem}.topnav{display:flex;align-items:center;justify-content:center;gap:.25rem;color:var(--muted);font-size:.82rem}.topnav a{padding:.5rem .7rem;border-radius:4px;transition:color .15s ease,background-color .15s ease}.data-status{display:flex;align-items:center;justify-self:end;gap:.45rem;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.72rem}.status-mark{display:inline-block;width:.5rem;height:.5rem;flex:0 0 auto;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px rgba(40,104,79,.13)}.status-mark.error{background:var(--brick);box-shadow:0 0 0 3px rgba(156,73,57,.13)}.page{display:grid;grid-gap:1.25rem;gap:1.25rem;width:min(100%,100rem);margin:0 auto;padding:1.25rem}.overview-band{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(28rem,.85fr);grid-gap:2rem;gap:2rem;align-items:end;padding:1.4rem 0 1.75rem;border-bottom:1px solid var(--line-strong)}.overview-copy{max-width:57rem}.section-label{margin:0 0 .4rem;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.69rem;font-weight:600;letter-spacing:0;text-transform:uppercase}.overview-copy h1{max-width:51rem;margin:0;font-family:Newsreader,Georgia,serif;font-size:2.65rem;font-weight:500;letter-spacing:0;line-height:1.04}.overview-copy>p:last-child{max-width:49rem;margin:.75rem 0 0;color:var(--muted);font-size:.98rem}.snapshot-block{min-width:0}.snapshot-heading{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.65rem}.snapshot-heading span{color:var(--ink);font-weight:600;text-transform:uppercase}.snapshot-heading b{padding:.12rem .3rem;border:1px solid #d3a76d;border-radius:3px;background:#f4eadb;color:#80551d;font-size:.61rem;font-weight:600}.system-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.system-item{min-width:0;padding:.65rem .8rem;border-left:1px solid var(--line)}.system-item:first-child{border-left:0}.system-item small,.system-item span,.system-item strong{display:block}.system-item span{color:var(--muted);font-size:.69rem;text-transform:uppercase}.system-item strong{margin:.15rem 0;font-family:IBM Plex Mono,monospace;font-size:1.35rem;font-weight:500}.system-item small{color:var(--muted);font-size:.68rem;line-height:1.3}.planner-workspace{display:grid;grid-template-columns:17.5rem minmax(30rem,1fr) 20rem;grid-gap:.75rem;gap:.75rem;align-items:start}.methodology-section,.ranking-section,.results-section,.tool-panel{border:1px solid var(--line-strong);border-radius:6px;background:var(--surface)}.tool-panel{min-width:0}.control-panel,.inspector-panel{position:-webkit-sticky;position:sticky;top:5.25rem;max-height:calc(100vh - 6.5rem);overflow:auto;padding:.9rem;scrollbar-width:thin}.panel-heading{display:flex;gap:.75rem;align-items:flex-start;padding-bottom:.8rem;border-bottom:1px solid var(--line)}.compact-heading{padding-bottom:0;border-bottom:0}.panel-heading h2,.results-heading h2,.section-heading-row h2{margin:0;font-size:1rem;font-weight:650;letter-spacing:0;line-height:1.25}.step-number{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;flex:0 0 1.85rem;border:1px solid var(--line-strong);border-radius:4px;color:var(--forest);font-family:IBM Plex Mono,monospace;font-size:.7rem;font-weight:600}.scenario-group{margin:1rem 0 0;padding:0;border:0}.range-control b,.scenario-group legend{color:var(--ink);font-size:.77rem;font-weight:600}.scenario-segments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1px;gap:1px;margin-top:.45rem;padding:1px;border:1px solid var(--line);border-radius:5px;background:var(--line);overflow:hidden}.layer-toggle button,.scenario-segments button{min-height:2.2rem;border:0;background:var(--surface);color:var(--muted);font-size:.74rem;transition:background-color .15s ease,color .15s ease,transform .12s var(--ease-out)}.layer-toggle button.active,.scenario-segments button.active{background:var(--forest);color:#fff}.field-note{margin:.5rem 0 0;color:var(--muted);font-size:.72rem;line-height:1.45}.control-stack{display:grid;grid-gap:.9rem;gap:.9rem;margin-top:1rem}.range-control{display:grid;grid-gap:.45rem;gap:.45rem}.range-control>span{display:flex;justify-content:space-between;gap:.75rem}.range-control output{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.71rem}.range-control input[type=range]{width:100%;height:1rem;margin:0;accent-color:var(--forest)}.number-grid input:disabled,.range-control input:disabled,.scenario-segments button:disabled{cursor:wait;opacity:.58}.range-control.compact{gap:.25rem}.advanced-controls{margin-top:.85rem;border-top:1px solid var(--line)}.advanced-controls summary,.methodology-grid summary{padding:.75rem 0;color:var(--ink);font-size:.77rem;font-weight:600;list-style-position:outside}.advanced-controls[open] summary{border-bottom:1px solid var(--line)}.number-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.4rem;gap:.4rem;padding-top:.75rem}.number-grid label{color:var(--muted);font-size:.67rem}.municipality-select select,.number-grid input{width:100%;min-height:2.25rem;margin-top:.25rem;border:1px solid var(--line-strong);border-radius:4px;background:#fff}.number-grid input{padding:.35rem;font-family:IBM Plex Mono,monospace}.primary-button{min-height:2.65rem;border:1px solid var(--forest);border-radius:5px;background:var(--forest);color:#fff;font-weight:650;transition:background-color .15s ease,transform .12s var(--ease-out)}.run-button{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:1rem;padding:.65rem .85rem}.layer-toggle button:active,.primary-button:active,.recommendation-list button:active,.scenario-segments button:active{transform:scale(.98)}.result-freshness{margin:.55rem 0 0;color:var(--success);font-size:.69rem}.result-freshness.stale{color:var(--amber)}.inline-alert{margin-top:.75rem;padding:.65rem .7rem;border-left:3px solid var(--brick);background:#f5e6e2;color:#6f3025;font-size:.74rem}.map-panel{overflow:hidden}.map-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:.9rem;border-bottom:1px solid var(--line)}.map-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.municipality-select{min-width:10rem}.municipality-select select{min-height:2.15rem;margin:0;padding:.35rem 1.8rem .35rem .55rem;color:var(--ink);font-size:.73rem}.layer-toggle{display:grid;grid-template-columns:repeat(3,auto);grid-gap:1px;gap:1px;padding:1px;border:1px solid var(--line);border-radius:5px;background:var(--line);overflow:hidden}.layer-toggle button{min-height:2rem;padding:.3rem .55rem;white-space:nowrap}.map-canvas{position:relative;display:grid;place-items:center;min-height:43rem;padding:1.1rem 1rem 2.8rem;background:#eeece5}.map-svg{display:block;width:min(100%,34rem);max-height:43rem;filter:drop-shadow(0 8px 10px rgba(31,37,34,.08))}.map-svg path{stroke:#f8f6f1;stroke-width:.75px;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity .14s ease,stroke .14s ease,stroke-width .14s ease}.map-svg path.recommended{stroke:#765015;stroke-width:1.1px}.map-svg path.selected{stroke:var(--ink);stroke-width:2.4px}.map-legend{position:absolute;right:.9rem;bottom:.8rem;left:.9rem;display:flex;align-items:center;justify-content:flex-end;gap:.45rem;color:var(--muted);font-size:.66rem}.legend-scale{display:inline-block;width:5rem;height:.55rem;border:1px solid rgba(31,37,34,.16);background:linear-gradient(90deg,#e4ded2 0 20%,#bfcdbd 20% 40%,#7fa08e 40% 60%,#4e7b70 60% 80%,#234b3f 80% 100%)}.legend-scale.renewable{background:linear-gradient(90deg,#e7e0d3,#b8c49a,#6d8b4f)}.legend-scale.grid{background:linear-gradient(90deg,#d8e2e0,#9aafb1,#a55643)}.map-legend i{width:.65rem;height:.65rem;margin-left:.55rem;border:1px solid #765015;background:var(--amber)}.inspector-panel{min-height:30rem}.detail-loading,.empty-state{padding:1.25rem 0;color:var(--muted);font-size:.8rem}.municipality-detail{margin-top:.9rem}.municipality-meta{display:flex;align-items:center;justify-content:space-between;gap:.6rem;color:var(--muted);font-size:.72rem}.municipality-meta b{padding:.16rem .35rem;border:1px solid var(--line-strong);border-radius:3px;color:var(--forest);font-family:IBM Plex Mono,monospace;font-size:.66rem}.rationale{margin:.75rem 0;padding:.7rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.79rem;line-height:1.55}.comparison-panel dl,.detail-list{margin:0}.comparison-panel dl>div,.detail-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.44rem 0;border-bottom:1px solid var(--line)}.comparison-panel dt,.detail-list dt{color:var(--muted);font-size:.72rem}.comparison-panel dd,.detail-list dd{margin:0;font-family:IBM Plex Mono,monospace;font-size:.74rem;text-align:right}.municipality-analysis{display:grid;grid-gap:1rem;gap:1rem;margin-top:1rem}.peer-bars,.trend-chart{display:grid;grid-gap:.45rem;gap:.45rem}.peer-bars>div,.trend-chart>div{display:grid;grid-template-columns:4.5rem minmax(3rem,1fr) 3.2rem;grid-gap:.45rem;gap:.45rem;align-items:center;color:var(--muted);font-size:.66rem}.peer-bars i,.trend-chart i{display:block;height:.45rem;background:var(--surface-muted)}.peer-bars i b,.trend-chart i b{display:block;height:100%;background:var(--teal)}.peer-bars i b{background:var(--steel)}.peer-bars strong,.trend-chart strong{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:.65rem;font-weight:500;text-align:right}.scenario-history{margin-top:1rem}.mini-table{border-top:1px solid var(--line)}.mini-table>div{display:grid;grid-template-columns:1fr auto;grid-gap:.1rem .7rem;gap:.1rem .7rem;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.71rem}.mini-table b{font-family:IBM Plex Mono,monospace}.mini-table small{grid-column:1/-1;color:var(--muted)}.methodology-section,.ranking-section,.results-section{overflow:hidden}.results-heading,.section-heading-row{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;padding:1rem;border-bottom:1px solid var(--line-strong)}.stale-badge{padding:.3rem .45rem;border:1px solid #d3a76d;border-radius:3px;background:#f4eadb;color:#80551d;font-family:IBM Plex Mono,monospace;font-size:.67rem}.result-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line-strong)}.result-metrics>div{min-width:0;padding:.9rem 1rem;border-left:1px solid var(--line)}.result-metrics>div:first-child{border-left:0}.result-metrics small,.result-metrics span,.result-metrics strong{display:block}.result-metrics span{color:var(--muted);font-size:.7rem}.result-metrics strong{margin:.15rem 0;font-family:IBM Plex Mono,monospace;font-size:1.35rem;font-weight:500}.result-metrics small{color:var(--muted);font-size:.69rem}.results-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(18rem,.5fr)}.recommendation-list{min-width:0;border-right:1px solid var(--line-strong)}.list-header,.recommendation-list button{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem 4rem;align-items:center}.list-header{padding:.5rem .8rem .5rem 3.7rem;border-bottom:1px solid var(--line);color:var(--muted);font-size:.66rem;text-transform:uppercase}.recommendation-list button{position:relative;width:100%;min-height:3.35rem;padding:.55rem .8rem .55rem 3.7rem;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;transition:background-color .14s ease,transform .12s var(--ease-out)}.recommendation-list button.active{background:#e8eee9;box-shadow:inset 3px 0 0 var(--forest)}.result-rank{position:absolute;left:.85rem;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.72rem}.result-name{min-width:0}.result-name b,.result-name small{display:block}.result-name b{font-size:.8rem}.result-name b,.result-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-name small{margin-top:.1rem;color:var(--muted);font-size:.68rem}.recommendation-list button>span:last-child,.recommendation-list button>strong{font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:500;text-align:right}.comparison-panel{padding:1rem;background:#f5f4ef}.comparison-panel h3{margin:0 0 .75rem;font-size:.95rem}.comparison-panel>p:last-child{margin:.85rem 0 0;color:var(--muted);font-size:.73rem;line-height:1.5}.comparison-panel dd.positive{color:var(--success)}.comparison-panel dd.negative{color:var(--brick)}.section-heading-row>p{max-width:34rem;margin:0;color:var(--muted);font-size:.78rem;text-align:right}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.76rem}.data-table td,.data-table th{padding:.6rem .85rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.data-table th{background:#eeede7;color:var(--muted);font-size:.65rem;font-weight:600;text-transform:uppercase}.data-table td:not(:nth-child(2)){font-family:IBM Plex Mono,monospace}.data-table td button{padding:0;border:0;background:transparent;color:var(--ink);font-weight:600;text-align:left}.methodology-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(18rem,.6fr)}.methodology-grid details{min-width:0;padding:0 1rem 1rem;border-left:1px solid var(--line-strong)}.methodology-grid details:first-child{border-left:0}.methodology-grid summary{padding:.85rem 0}.document-text{max-height:34rem;overflow:auto;padding:.8rem;border:1px solid var(--line);background:#f5f4ef;color:#4f5b55;font-family:IBM Plex Mono,monospace;font-size:.7rem;line-height:1.6;white-space:pre-wrap}.site-footer{display:flex;justify-content:space-between;gap:2rem;width:min(100%,100rem);margin:0 auto;padding:1.5rem 1.25rem 2rem;color:var(--muted);font-size:.7rem}.fatal-state,.loading-shell{min-height:100vh;padding:2rem}.loading-shell{display:grid;grid-template-rows:auto 1fr auto;grid-gap:1.25rem;gap:1.25rem}.loading-brand{width:15rem;height:2.5rem;background:var(--surface-muted)}.loading-grid{display:grid;grid-template-columns:17.5rem minmax(30rem,1fr) 20rem;grid-gap:.75rem;gap:.75rem}.loading-block{min-height:36rem;border:1px solid var(--line);background:var(--surface);animation:loading-pulse 1.2s ease-in-out infinite alternate}.loading-shell>span{color:var(--muted);font-size:.78rem}.fatal-state{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:42rem;margin:0 auto}.fatal-state h1{margin:0;font-family:Newsreader,Georgia,serif;font-size:2.2rem;font-weight:500}.fatal-state>p:not(.section-label){color:var(--muted)}.fatal-state .primary-button{padding:.6rem 1rem}@keyframes loading-pulse{0%{opacity:.58}to{opacity:1}}@media (hover:hover) and (pointer:fine){.topnav a:hover{background:rgba(35,75,63,.07);color:var(--ink)}.primary-button:hover{background:var(--forest-hover)}.data-table tbody tr:hover td,.layer-toggle button:not(.active):hover,.recommendation-list button:hover,.scenario-segments button:not(.active):hover{background:#ecefe9;color:var(--ink)}.map-svg:hover path:not(:hover){opacity:.78}}@media (max-width:82rem){.loading-grid,.planner-workspace{grid-template-columns:16rem minmax(28rem,1fr)}.inspector-panel{position:static;grid-column:1/-1;display:block;max-height:none}.municipality-detail{display:grid;grid-template-columns:minmax(16rem,.75fr) minmax(20rem,1.25fr);grid-gap:0 1.5rem;gap:0 1.5rem}.municipality-analysis,.municipality-meta,.rationale{grid-column:1}.detail-list,.scenario-history{grid-column:2}.detail-list{grid-row:1/span 2}.scenario-history{grid-row:3}}@media (max-width:68rem){.topbar{grid-template-columns:1fr auto}.topnav{grid-row:2;grid-column:1/-1;justify-content:flex-start;width:100%;margin-top:.45rem;overflow-x:auto}.overview-band{gap:1.2rem}.loading-grid,.overview-band,.planner-workspace{grid-template-columns:1fr}.control-panel,.inspector-panel{position:static;max-height:none}.control-panel{display:grid;grid-template-columns:minmax(15rem,.8fr) minmax(20rem,1.2fr);grid-gap:0 1.25rem;gap:0 1.25rem}.control-panel>.inline-alert,.control-panel>.panel-heading,.control-panel>.result-freshness,.control-panel>.run-button{grid-column:1/-1}.control-panel>.control-stack{grid-column:1}.control-panel>.advanced-controls{grid-column:2}.methodology-grid,.results-grid{grid-template-columns:1fr}.recommendation-list{border-right:0;border-bottom:1px solid var(--line-strong)}.methodology-grid details{border-top:1px solid var(--line-strong);border-left:0}.methodology-grid details:first-child{border-top:0}}@media (max-width:46rem){html{scroll-padding-top:7.5rem}body{font-size:.875rem}.topbar{min-height:0;padding:.65rem 1rem .45rem}.brand-symbol{width:2rem;height:2rem;flex-basis:2rem}.brand-symbol:before{left:.68rem}.brand-symbol span{top:.86rem}.brand strong{font-size:.88rem}.brand small,.data-status{font-size:.65rem}.data-status{white-space:nowrap}.topnav{gap:0}.topnav a{padding:.4rem .65rem;white-space:nowrap}.page{gap:.8rem;padding:.8rem}.overview-band{padding:.8rem 0 1.1rem}.overview-copy h1{font-size:1.7rem;line-height:1.06}.overview-copy>p:last-child{margin-top:.55rem;font-size:.8rem;line-height:1.4}.snapshot-heading{flex-wrap:wrap}.system-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.system-item{padding:.45rem}.system-item:nth-child(3){border-left:0}.system-item:nth-child(3),.system-item:nth-child(4){border-top:1px solid var(--line)}.system-item span{font-size:.6rem}.system-item strong{font-size:.95rem}.system-item small{font-size:.6rem;line-height:1.25;white-space:normal}.control-panel{display:block}.control-panel>.advanced-controls,.control-panel>.control-stack{display:grid}.map-actions,.map-header,.results-heading,.section-heading-row{align-items:stretch;flex-direction:column}.map-actions{display:grid}.municipality-select{min-width:0}.layer-toggle{grid-template-columns:repeat(3,minmax(0,1fr))}.layer-toggle button{padding:.35rem .2rem;white-space:normal}.map-canvas{min-height:29rem;padding:.8rem .3rem 3.2rem}.map-svg{width:100%;max-height:30rem}.map-legend{flex-wrap:wrap;justify-content:flex-start}.municipality-detail{display:block}.result-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.result-metrics>div:nth-child(3){border-top:1px solid var(--line);border-left:0}.result-metrics>div:nth-child(4){border-top:1px solid var(--line)}.list-header,.recommendation-list button{grid-template-columns:minmax(0,1fr) 3.8rem}.list-header{padding-left:3.2rem}.list-header span:last-child,.recommendation-list button>span:last-child{display:none}.recommendation-list button{padding-left:3.2rem}.result-rank{left:.7rem}.section-heading-row>p{text-align:left}.site-footer{flex-direction:column;gap:.35rem;padding:1.2rem .8rem 1.6rem}}@media (max-width:23rem){.number-grid,.result-metrics,.system-strip{grid-template-columns:1fr}.result-metrics>div,.result-metrics>div:nth-child(3),.result-metrics>div:nth-child(4),.system-item{border-top:1px solid var(--line);border-left:0}.result-metrics>div:first-child,.system-item:first-child{border-top:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-reduced-transparency:reduce){.topbar{background:var(--canvas);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){:root{--line:#8c958f;--line-strong:#626d66;--muted:#46514b}}