:root{--paper:#f7f4ed;--ink:#1a1a1a;--forest:#2e5d4f;--forest-dark:#21483d;--earth:#e8743c;--sand:#c9c2b2;--line:#ddd7ca;--white:#fffdf8;--shadow:0 22px 70px rgba(24,43,36,.18)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,sans-serif;background:var(--paper);color:var(--ink);overflow:hidden}.topbar{height:70px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(247,244,237,.96);border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{display:flex;align-items:center;text-decoration:none;color:var(--forest);gap:11px}.brand-mark{width:34px;height:34px;background:var(--forest);display:grid;place-items:center}.brand-mark span{width:20px;height:20px;border:2px solid var(--earth);border-left-color:transparent;border-radius:50%;position:relative;transform:rotate(-25deg)}.brand-mark span:after{content:"";position:absolute;width:8px;height:2px;background:var(--earth);right:-4px;top:7px}.brand-name{font-family:"Archivo Narrow";font-weight:700;font-size:25px;letter-spacing:.08em}.product-name{font:500 11px "JetBrains Mono";letter-spacing:.16em;color:#6d746f;border-left:1px solid var(--sand);padding-left:12px}.topbar-actions{display:flex;align-items:center;gap:24px}.status-dot{font-size:12px;color:#66706b}.status-dot i,.data-footnote i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#67a56f;margin-right:8px}.ghost-button{border:0;background:none;color:var(--forest);font-weight:600;cursor:pointer}.app-shell{height:calc(100% - 70px);position:relative;display:flex}.map-stage{height:100%;position:relative;flex:1;min-width:0;overflow:hidden}.map-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(247,244,237,.45),transparent 35%,transparent 80%,rgba(46,93,79,.08));z-index:401}#map{position:absolute;inset:0;background:#e5e1d8}.map-wash{position:absolute;inset:0;z-index:402;pointer-events:none;box-shadow:inset 0 0 120px rgba(46,93,79,.12)}.leaflet-tile-pane{filter:saturate(.48) sepia(.1) brightness(1.04)}.leaflet-control-container{position:relative;z-index:450}.map-badge{position:absolute;z-index:500;right:18px;bottom:18px;background:rgba(255,253,248,.9);border:1px solid var(--line);border-radius:20px;padding:8px 12px;font:500 10px "JetBrains Mono";color:#59635e}.control-panel{position:absolute;z-index:500;left:34px;top:34px;width:390px;background:rgba(247,244,237,.96);backdrop-filter:blur(18px);padding:32px 34px 28px;border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow)}.eyebrow{font:600 10px "JetBrains Mono";letter-spacing:.17em;color:var(--earth)}h1,h2{font-family:"Archivo Narrow";color:var(--forest);margin:0;line-height:.93;letter-spacing:-.025em}h1{font-size:47px;margin-top:14px}.lead{font-size:13px;line-height:1.6;color:#5d625f;max-width:310px;margin:18px 0 25px}.search-box label,.radius-control legend{font-size:11px;font-weight:600;color:#3f4944;margin-bottom:8px}.search-row{height:49px;display:flex;align-items:center;background:var(--white);border:1px solid var(--line);transition:.2s}.search-row:focus-within{border-color:var(--forest);box-shadow:0 0 0 3px rgba(46,93,79,.1)}.search-row svg{width:18px;margin-left:14px;fill:none;stroke:var(--forest);stroke-width:1.7}.search-row input{min-width:0;flex:1;border:0;outline:0;background:transparent;padding:0 10px;font:500 13px Inter}.search-row button{width:48px;height:100%;border:0;background:var(--forest);color:white;font-size:22px;cursor:pointer}.field-hint{display:block;font-size:10px;color:#888f8a;margin-top:7px}.radius-control{border:0;padding:0;margin:20px 0}.radius-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.radius-options button{height:38px;border:1px solid var(--line);background:var(--white);font:600 12px Inter;color:#606762;cursor:pointer}.radius-options button.active{background:var(--forest);border-color:var(--forest);color:white}.primary-button{width:100%;height:50px;border:0;background:var(--earth);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-weight:600;cursor:pointer;box-shadow:0 8px 20px rgba(232,116,60,.25)}.primary-button:hover{background:#d96330}.primary-button:disabled{opacity:.6}.coverage-note{text-align:center;font:500 9px "JetBrains Mono";color:#8b8b83;margin:12px 0 0}.results-handle{position:absolute;right:0;top:50%;z-index:510;transform:translateY(-50%);width:45px;height:168px;background:var(--forest);color:white;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;cursor:pointer}.results-handle span{writing-mode:vertical-rl;transform:rotate(180deg);font:600 9px "JetBrains Mono";letter-spacing:.16em}.results-panel{width:0;overflow:hidden;background:var(--forest);color:white;position:relative;z-index:600;transition:width .35s ease}.results-panel.open{width:410px;padding:28px 28px 20px}.results-header{display:flex;justify-content:space-between;align-items:flex-start}.results-header h2{color:white;font-size:32px;margin-top:9px}.results-header button,#closeMethodology{border:0;background:transparent;color:white;font-size:28px;cursor:pointer}.location-line{display:flex;align-items:center;margin:19px 0 16px}.location-line>span{width:10px;height:10px;border:3px solid var(--earth);border-radius:50%;margin-right:10px}.location-line p{margin:0;font-size:11px;line-height:1.4}.location-line small{color:#bad0c8}.hero-metric{border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);padding:18px 0}.hero-metric span,.metric-grid span,.spending-card span{font:500 9px "JetBrains Mono";letter-spacing:.1em;color:#bdd0ca}.hero-metric strong{display:block;font:700 45px "Archivo Narrow";letter-spacing:-.02em;margin:3px 0}.hero-metric small,.metric-grid small{font-size:9px;color:#a9bdb6}.metric-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid rgba(255,255,255,.18)}.metric-grid article{padding:15px 10px 15px 0}.metric-grid article:nth-child(odd){border-right:1px solid rgba(255,255,255,.18)}.metric-grid article:nth-child(even){padding-left:15px}.metric-grid strong{display:block;font:700 25px "Archivo Narrow";margin:4px 0}.spending-card{padding:18px 0}.spending-card>div:first-child{display:flex;justify-content:space-between;align-items:flex-end}.spending-card strong{font:700 21px "Archivo Narrow"}.bars{margin-top:16px}.bar{display:grid;grid-template-columns:75px 1fr 62px;align-items:center;gap:8px;margin:7px 0;font-size:9px}.bar-track{height:5px;background:rgba(255,255,255,.15)}.bar-track i{display:block;height:100%;background:var(--earth)}.bar b{text-align:right;font-weight:500}.data-footnote{display:flex;align-items:flex-start;border-top:1px solid rgba(255,255,255,.18);padding-top:14px}.data-footnote p{margin:0;font-size:8px;line-height:1.5;color:#bfd0cb}.data-footnote i{margin-top:3px;background:var(--earth)}dialog{width:min(600px,calc(100% - 30px));border:0;padding:40px;background:var(--paper);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(22,36,31,.65)}dialog h2{font-size:46px;margin:14px 0 22px}dialog p{line-height:1.7;color:#5d625f}dialog #closeMethodology{color:var(--forest);position:absolute;right:20px;top:14px}.method-steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:30px;border-top:1px solid var(--line);padding-top:18px}.method-steps span{font:500 10px "JetBrains Mono";color:var(--earth)}.method-steps b{display:block;color:var(--forest);margin-top:7px}.pyxis-marker{width:22px;height:22px;border-radius:50% 50% 50% 0;background:var(--earth);border:3px solid white;box-shadow:0 4px 10px #0004;transform:rotate(-45deg)}
@media(max-width:900px){body{overflow:auto}.topbar{height:60px;padding:0 16px}.status-dot{display:none}.app-shell{height:auto;min-height:calc(100vh - 60px);display:block}.map-stage{height:calc(100vh - 60px);min-height:720px}.control-panel{left:14px;right:14px;top:16px;width:auto;padding:24px}.control-panel h1{font-size:39px}.results-handle{display:none}.results-panel,.results-panel.open{width:100%;padding:28px;overflow:visible}.results-panel:not(.open){display:none}.map-badge{bottom:8px}.method-steps{grid-template-columns:1fr 1fr;gap:20px}}

/* Continuous radius and polygon filters */
.radius-input-row{display:grid;grid-template-columns:1fr 86px;align-items:center;gap:12px}.radius-input-row>input{accent-color:var(--forest);width:100%}.radius-number{height:40px;border:1px solid var(--line);background:var(--white);display:flex;align-items:center}.radius-number input{width:54px;border:0;outline:0;background:transparent;text-align:right;font:600 13px Inter;color:var(--forest)}.radius-number span{font-size:11px;margin-left:4px;color:#727873}.estimate-note{display:block;color:#9fb4ad;font-size:7px;line-height:1.4;margin-top:10px}
.area-mode-options{display:grid;grid-template-columns:1fr 1fr;margin-bottom:10px}.area-mode-options button,.polygon-controls button{height:36px;border:1px solid var(--line);background:var(--white);color:#69706c;font:600 10px Inter;cursor:pointer}.area-mode-options button+button{border-left:0}.area-mode-options button.active{background:var(--forest);border-color:var(--forest);color:white}.polygon-controls{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:6px}.polygon-controls button:first-child{background:var(--forest);border-color:var(--forest);color:white}.polygon-controls button:disabled{opacity:.45;cursor:not-allowed}.leaflet-container.drawing-polygon,.drawing-polygon{cursor:crosshair!important}
.indicator-control{border:0;padding:0;margin:16px 0}.indicator-control legend{font-size:11px;font-weight:600;color:#3f4944;margin-bottom:8px}.indicator-picker-button{width:100%;min-height:50px;padding:9px 12px;border:1px solid var(--line);background:var(--white);display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--forest);cursor:pointer}.indicator-picker-button b,.indicator-picker-button small{display:block}.indicator-picker-button b{font-size:11px}.indicator-picker-button small{font-size:8px;color:#858b87;margin-top:4px}.selected-results{border-top:1px solid rgba(255,255,255,.18);padding-top:12px}.selected-results:empty{display:none}.selected-result{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12)}.selected-result span{display:block;font:500 8px "JetBrains Mono";letter-spacing:.08em;color:#bdd0ca}.selected-result strong{display:block;font:700 23px "Archivo Narrow";margin:4px 0}.selected-result small{display:block;color:#9fb4ad;font-size:8px;line-height:1.35}.variables-dialog{width:min(1050px,calc(100% - 30px));height:min(780px,calc(100% - 30px));padding:0;overflow:hidden}.variables-dialog-header{padding:28px 32px 20px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.variables-dialog-header h2{font-size:38px;margin-top:10px}.variables-dialog-header p{font-size:11px;color:#6e746f;margin:9px 0 0}.variables-dialog-header>button{border:0;background:none;color:var(--forest);font-size:30px;cursor:pointer}.variable-toolbar{padding:18px 32px 12px}.variable-toolbar label>span{display:block;font-size:10px;font-weight:600;margin-bottom:7px}.variable-toolbar input{width:100%;height:44px;border:1px solid var(--line);background:white;padding:0 14px;font:500 12px Inter;outline:0}.variable-toolbar input:focus{border-color:var(--forest)}.variable-groups{display:flex;gap:6px;overflow:auto;margin-top:12px;padding-bottom:3px}.variable-groups button{white-space:nowrap;border:1px solid var(--line);background:white;padding:8px 10px;font:600 9px Inter;color:#66706b;cursor:pointer}.variable-groups button.active{background:var(--forest);border-color:var(--forest);color:white}.variable-summary{padding:0 32px 10px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#777f7a}.variable-summary button{border:0;background:none;color:var(--earth);font:600 9px Inter;cursor:pointer}.variable-list{height:390px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 32px}.variable-item{display:grid;grid-template-columns:24px 1fr auto;gap:10px;padding:14px 0;border-bottom:1px solid #ebe6dc;cursor:pointer}.variable-item input{accent-color:var(--forest);margin-top:3px}.variable-item b{display:block;font-size:11px;color:var(--forest)}.variable-item p{font-size:9px;line-height:1.45;color:#777e79;margin:4px 0}.variable-item small{font:500 8px "JetBrains Mono";color:#9a9e99}.variable-item>span:last-child{font:500 8px "JetBrains Mono";color:var(--earth);white-space:nowrap}.variables-dialog-footer{height:70px;padding:10px 32px;display:flex;align-items:center;justify-content:space-between}.variables-dialog-footer>span{font:600 10px "JetBrains Mono";color:var(--forest)}.variables-dialog-footer .primary-button{width:240px}

/* Municipality-first entry */
.municipality-gateway{position:fixed;inset:0;z-index:2000;background:var(--paper);display:grid;place-items:center;overflow:hidden}.municipality-gateway.closed{display:none}.gateway-brand{position:absolute;left:30px;top:24px;display:flex;align-items:center;gap:11px;color:var(--forest)}.gateway-card{position:relative;z-index:2;width:min(480px,calc(100% - 32px));padding:44px;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow)}.gateway-card h1{font-size:52px;margin:14px 0 18px}.gateway-card>p{font-size:13px;line-height:1.65;color:#636964;margin:0 0 26px}.gateway-card>label{display:block;font-size:11px;font-weight:600;margin-bottom:8px}.municipality-search{height:52px;display:flex;align-items:center;border:1px solid var(--line);background:white}.municipality-search:focus-within{border-color:var(--forest);box-shadow:0 0 0 3px rgba(46,93,79,.1)}.municipality-search svg{width:18px;margin:0 13px;fill:none;stroke:var(--forest);stroke-width:1.7}.municipality-search input{flex:1;min-width:0;border:0;outline:0;font:500 14px Inter}.municipality-suggestions{position:absolute;left:44px;right:44px;background:white;border:1px solid var(--line);border-top:0;z-index:5;max-height:220px;overflow:auto;box-shadow:0 14px 24px rgba(30,50,43,.12)}.municipality-suggestions:empty{display:none}.municipality-suggestions button{width:100%;padding:11px 14px;border:0;border-bottom:1px solid #eee9df;background:white;text-align:left;display:flex;justify-content:space-between;cursor:pointer;color:var(--ink)}.municipality-suggestions button:hover{background:#f1eee6}.municipality-suggestions b{font-size:12px}.municipality-suggestions span{font:500 10px "JetBrains Mono";color:var(--earth)}.selected-municipality{margin:10px 0 14px;padding:10px 12px;background:#edf1ee;color:var(--forest);font-size:12px}.gateway-card>.primary-button{margin-top:16px}.gateway-card>small{display:block;text-align:center;margin-top:12px;color:#95978f;font:500 9px "JetBrains Mono"}.gateway-orbit{position:absolute;width:780px;height:780px;border:1px solid rgba(46,93,79,.12);border-radius:50%}.gateway-orbit:before,.gateway-orbit:after{content:"";position:absolute;border:1px solid rgba(46,93,79,.12);border-radius:50%;inset:110px}.gateway-orbit:after{inset:250px}.gateway-orbit i{position:absolute;width:12px;height:12px;background:var(--earth);border-radius:50%;left:50%;top:-6px}.gateway-orbit i:nth-child(2){left:auto;right:70px;top:190px;width:7px;height:7px}.gateway-orbit i:nth-child(3){left:80px;top:auto;bottom:170px;width:8px;height:8px}.municipality-button{border:1px solid var(--line);background:var(--white);color:var(--forest);padding:8px 11px;font:600 11px Inter;cursor:pointer}
@media(max-width:700px){.gateway-brand{left:18px;top:15px}.gateway-card{padding:28px}.gateway-card h1{font-size:42px}.municipality-suggestions{left:28px;right:28px}.municipality-button{max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gateway-orbit{width:620px;height:620px}}
.results-panel.open{overflow-y:auto}
.control-panel{max-height:calc(100% - 68px);overflow-y:auto;scrollbar-width:thin}
.variable-groups{flex-wrap:wrap;overflow:visible}

/* Native hidden state must win over component display declarations. */
[hidden]{display:none!important}
.result-actions{margin:14px 0}.result-actions .primary-button{width:100%;height:42px}.history-list{padding:20px 32px}.history-toolbar{display:flex;align-items:center;gap:10px;padding:0 32px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.history-toolbar button{border:1px solid var(--line);background:white;color:var(--forest);padding:8px 11px;font:700 10px Inter;text-transform:uppercase;letter-spacing:.08em}.history-toolbar button:disabled{opacity:.45;cursor:not-allowed}.history-toolbar span{font:700 10px Inter;color:#737b75;text-transform:uppercase;letter-spacing:.08em}.history-item{position:relative;padding:14px 0 14px 34px;border-bottom:1px solid var(--line)}.history-select{position:absolute;left:0;top:18px}.history-select input{inline-size:18px;block-size:18px;accent-color:var(--forest)}.history-item span,.history-item small{display:block;color:#737b75;font-size:10px}.history-item b{display:block;color:var(--forest);margin:4px 0}.history-item div{display:flex;gap:12px;margin-top:8px}.history-item button,.history-item a{border:1px solid var(--line);background:white;color:var(--forest);padding:7px 10px;text-decoration:none;font:600 11px Inter;cursor:pointer}.history-dialog{width:min(760px,calc(100% - 30px))}
.analysis-error{color:#ffd2bd!important;font-weight:600}
.auth-gateway{position:fixed;inset:0;z-index:3000;background:var(--paper);display:grid;place-items:center;overflow:auto;padding:24px}.auth-gateway.closed{display:none}.auth-card{max-height:calc(100vh - 48px);overflow:auto}.auth-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 18px}.auth-mode-toggle button{height:38px;border:1px solid var(--line);background:white;color:#65706a;font:700 10px Inter;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.auth-mode-toggle button+button{border-left:0}.auth-mode-toggle button.active{background:var(--forest);border-color:var(--forest);color:white}.auth-card .auth-input{width:100%;height:48px;border:1px solid var(--line);background:white;padding:0 14px;margin:0 0 14px;font:500 13px Inter;outline:0}.auth-card select.auth-input{appearance:auto}.auth-card .auth-textarea{height:auto;min-height:86px;padding:12px 14px;resize:vertical}.registration-note{font-size:10px;line-height:1.55;color:#747c76;margin:0 0 14px}.auth-card .auth-input:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(46,93,79,.1)}.auth-card>.primary-button{margin-top:6px}.auth-card small{display:block;text-align:center;margin-top:12px;color:#7b817c;font-size:10px;line-height:1.45}.auth-card small.error{color:#b24525;font-weight:600}.user-pill,.usage-pill{font:600 11px Inter;color:var(--forest);background:#edf1ee;border:1px solid #d8e1db;padding:7px 9px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usage-pill{font-family:"JetBrains Mono";font-size:9px;text-transform:uppercase}.usage-pill.limit-warning{background:#fff0e8;border-color:#f0c0a7;color:#b24525}
@media(max-width:700px){.topbar-actions{gap:10px}.ghost-button{font-size:11px;padding:0}.municipality-button{max-width:110px}.user-pill{display:none}}
@media(max-width:700px){.topbar-actions{gap:10px}.ghost-button{font-size:11px;padding:0}.municipality-button{max-width:110px}}

.selected-municipality{display:flex;flex-wrap:wrap;gap:7px;background:transparent;padding:0}
.selected-municipality[hidden]{display:none}
.selected-municipality>span{display:flex;align-items:center;gap:7px;padding:8px 8px 8px 10px;background:#edf1ee;border:1px solid #dce5df;color:var(--forest)}
.selected-municipality b{font-size:10px}
.selected-municipality button{width:19px;height:19px;border:0;background:transparent;color:var(--forest);font-size:17px;line-height:1;cursor:pointer}

/* Complete public catalog in the results panel */
.selected-results{padding-top:4px}
.indicator-group{margin:18px 0 0}
.indicator-group>header{display:flex;align-items:center;justify-content:space-between;padding:0 0 9px;border-bottom:1px solid rgba(255,255,255,.28);font:600 9px "JetBrains Mono";letter-spacing:.12em;text-transform:uppercase;color:#ffd0b8}
.indicator-group>header b{display:grid;place-items:center;min-width:21px;height:21px;border:1px solid rgba(255,255,255,.25);border-radius:50%;font-size:8px;color:#fff}
.indicator-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:48px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.11)}
.indicator-row span,.indicator-row b,.indicator-row small{display:block}
.indicator-row b{font-size:10px;line-height:1.35;color:#eef5f2}
.indicator-row small{margin-top:3px;font:500 7px "JetBrains Mono";color:#9fb4ad}
.indicator-row strong{font:700 18px "Archivo Narrow";white-space:nowrap;text-align:right;color:#fff}

/* Product home */
body:not(.tool-open){height:auto;overflow:auto}body:not(.tool-open)>.topbar,body:not(.tool-open)>.app-shell{display:none}.home-page{min-height:100vh;background:var(--paper);overflow:hidden}.home-page.closed{display:none}.home-nav{height:78px;max-width:1320px;margin:auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.home-links{display:flex;align-items:center;gap:30px}.home-links a{color:#5f6762;text-decoration:none;font-size:12px;font-weight:600}.home-links a:hover{color:var(--forest)}.nav-cta{height:40px;padding:0 16px;border:0;background:var(--forest);color:white;font:600 11px Inter;cursor:pointer}.nav-cta span{margin-left:18px}.home-page h1,.home-page h2{font-family:"Archivo Narrow"}.home-page h3{margin:0}.home-hero{min-height:720px;max-width:1320px;margin:auto;padding:72px 32px 82px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}.hero-copy{padding-left:36px}.hero-copy h1{font-size:72px;line-height:.91;margin:20px 0 26px}.hero-copy h1 em,.method-intro h2 em{font-style:normal;color:var(--earth)}.hero-copy>p{max-width:570px;font-size:16px;line-height:1.75;color:#626863}.hero-actions{display:flex;align-items:center;gap:30px;margin:34px 0}.home-primary{min-width:220px;height:54px;padding:0 20px;border:0;background:var(--earth);color:white;display:flex;align-items:center;justify-content:space-between;font:600 12px Inter;cursor:pointer;box-shadow:0 10px 25px rgba(232,116,60,.2)}.home-primary:hover{background:#d96330}.hero-actions>a{color:var(--forest);font-size:12px;font-weight:600;text-decoration:none}.hero-actions>a span{margin-left:10px}.hero-proof{display:flex;gap:28px;padding-top:25px;border-top:1px solid var(--line);font:500 9px "JetBrains Mono";color:#858984}.hero-proof b{display:block;margin-bottom:5px;font:700 20px "Archivo Narrow";color:var(--forest)}.territory-preview{position:relative}.preview-map{position:relative;height:610px;overflow:hidden;background:#e8e6df;box-shadow:var(--shadow)}.preview-map>svg{width:100%;height:100%;display:block}.preview-location,.preview-result{position:absolute;background:rgba(255,253,248,.96);box-shadow:0 12px 35px rgba(33,72,61,.16)}.preview-location{left:24px;top:24px;padding:15px 18px}.preview-location small,.preview-result small{display:block;font:600 8px "JetBrains Mono";letter-spacing:.12em;color:var(--earth)}.preview-location b{display:block;color:var(--forest);font:700 20px "Archivo Narrow";margin:6px 0 2px}.preview-location span,.preview-result span{font-size:9px;color:#777e79}.preview-result{right:22px;bottom:22px;width:225px;padding:20px}.preview-result strong{display:block;font:700 40px "Archivo Narrow";color:var(--forest);margin:7px 0 0}.preview-result>div{margin-top:16px}.preview-result i{display:block;width:var(--w);height:4px;background:var(--earth);margin:5px 0;opacity:.8}.preview-tag{position:absolute;bottom:24px;left:24px;padding:8px 10px;background:var(--forest);color:white;font:500 8px "JetBrains Mono";letter-spacing:.1em}.use-section,.demo-section,.method-section{padding:110px max(32px,calc((100vw - 1256px)/2))}.section-heading{display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:end;gap:50px;margin-bottom:55px}.section-heading .eyebrow{align-self:start}.section-heading h2{font-size:55px}.section-heading>p{font-size:13px;line-height:1.7;color:#69706b;margin:0}.use-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.use-grid article{min-height:290px;padding:24px 25px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}.use-grid article>span{font:500 9px "JetBrains Mono";color:#a19e95}.use-icon{margin:40px 0 22px;font:500 31px "Archivo Narrow";color:var(--earth)}.use-grid h3{font:700 22px "Archivo Narrow";color:var(--forest)}.use-grid p{font-size:11px;line-height:1.65;color:#717772;margin-top:14px}.indicators-section{padding:110px max(32px,calc((100vw - 1256px)/2));background:var(--forest);color:white}.section-heading.light h2{color:white}.section-heading.light>p{color:#b8c9c3}.indicator-groups{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.2);border-left:1px solid rgba(255,255,255,.2)}.indicator-groups article{min-height:285px;padding:28px;border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}.indicator-groups article.wide{grid-column:span 3;min-height:210px}.indicator-groups header{display:flex;align-items:center;gap:13px;font:600 9px "JetBrains Mono";letter-spacing:.11em;color:#bfd0ca}.indicator-groups header i{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--earth);color:white;font-style:normal}.indicator-groups h3{font:700 28px/1.05 "Archivo Narrow";margin:35px 0 25px;color:white}.indicator-groups p{max-width:660px;font-size:11px;line-height:1.8;color:#aec1ba}.catalog-note{margin:20px 0 0;font:500 8px/1.6 "JetBrains Mono";color:#91aaa1}.demo-layout{display:grid;grid-template-columns:340px 1fr;gap:70px;align-items:center}.demo-steps{display:flex;flex-direction:column}.demo-steps button{display:grid;grid-template-columns:35px 1fr;gap:18px;padding:24px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:#858b87}.demo-steps button>b{font:600 10px "JetBrains Mono"}.demo-steps strong,.demo-steps small{display:block}.demo-steps strong{font:700 19px "Archivo Narrow";color:#79807b}.demo-steps small{font-size:10px;line-height:1.5;margin-top:6px}.demo-steps button.active{color:var(--earth)}.demo-steps button.active strong{color:var(--forest)}.demo-screen{min-height:500px;background:#fffdf8;border:1px solid var(--line);box-shadow:var(--shadow)}.demo-browser{height:37px;background:#ebe8df;display:flex;align-items:center;padding:0 13px;gap:6px}.demo-browser i{width:6px;height:6px;border-radius:50%;background:#c6c1b7}.demo-browser i:first-child{background:var(--earth)}.demo-browser span{margin:auto;font:500 7px "JetBrains Mono";color:#91938d}.demo-frame{height:463px;position:relative;overflow:hidden;background:#f2efe7}.mini-sidebar{position:absolute;z-index:2;width:380px;left:50%;top:45px;transform:translateX(-50%);padding:32px;background:var(--white);box-shadow:0 18px 50px #2e5d4f22}.mini-sidebar>small,.mini-float>small,.result-demo>small{font:600 7px "JetBrains Mono";letter-spacing:.12em;color:var(--earth)}.mini-sidebar h3,.mini-float h3,.result-demo h3{font:700 34px/.95 "Archivo Narrow";color:var(--forest);margin:10px 0 23px}.mini-sidebar label{font-size:8px;font-weight:600}.fake-input{margin-top:6px;height:40px;border:1px solid var(--line);display:flex;align-items:center;padding:0 12px;color:var(--forest);font-size:14px}.fake-input span{margin-left:9px;font-size:10px;color:#777}.fake-option{height:36px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;background:#edf1ee;font-size:9px;color:var(--forest)}.fake-option em{font:500 7px "JetBrains Mono";color:var(--earth);font-style:normal}.mini-sidebar button,.mini-float button{width:100%;height:39px;margin-top:13px;border:0;background:var(--earth);color:white;display:flex;justify-content:space-between;align-items:center;padding:0 13px;font:600 8px Inter}.demo-orbits{position:absolute;width:580px;height:580px;border:1px solid #2e5d4f26;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.demo-orbits:before,.demo-orbits:after{content:"";position:absolute;inset:80px;border:1px solid #2e5d4f26;border-radius:50%}.demo-orbits:after{inset:180px}.demo-orbits i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--earth);top:-4px;left:50%}.mini-map,.result-map-ghost{position:absolute;inset:0;background:linear-gradient(25deg,transparent 45%,#d2cec4 46%,#d2cec4 47%,transparent 48%),linear-gradient(-20deg,transparent 55%,#dad6cc 56%,#dad6cc 58%,transparent 59%)}.mini-radius{position:absolute;width:280px;height:280px;border-radius:50%;border:2px solid var(--forest);background:#2e5d4f25;left:55%;top:50%;transform:translate(-50%,-50%)}.mini-pin{position:absolute;width:15px;height:15px;border-radius:50%;background:var(--earth);border:4px solid white;left:55%;top:50%;transform:translate(-50%,-50%)}.mini-float{position:absolute;left:22px;top:28px;width:245px;padding:23px;background:rgba(255,253,248,.97);box-shadow:0 14px 35px #2e5d4f24}.mini-float h3{font-size:25px;margin-bottom:16px}.fake-toggle{display:grid;grid-template-columns:1fr 1fr;font:600 7px Inter}.fake-toggle>*{padding:9px;text-align:center;border:1px solid var(--line)}.fake-toggle b{background:var(--forest);color:white}.fake-range{height:45px;display:flex;align-items:center;gap:10px}.fake-range:before{content:"";height:3px;background:#d7d2c7;flex:1}.fake-range i{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--earth);left:95px}.fake-range b{font:600 9px Inter;color:var(--forest)}.result-map-ghost{left:48%}.result-demo{position:absolute;z-index:2;right:0;top:0;bottom:0;width:52%;padding:32px;background:var(--forest);color:white}.result-demo h3{color:white;font-size:28px}.result-big{padding:18px 0;border-top:1px solid #ffffff33;border-bottom:1px solid #ffffff33}.result-big span,.result-big small{display:block;color:#b9cbc4;font-size:8px}.result-big b{display:block;font:700 42px "Archivo Narrow";margin:5px 0}.result-pairs{display:grid;grid-template-columns:1fr 1fr;margin-top:20px}.result-pairs span{font:500 7px "JetBrains Mono";color:#b9cbc4}.result-pairs b{display:block;font:700 20px "Archivo Narrow";color:white;margin-top:6px}.method-section{background:#ebe8df;display:grid;grid-template-columns:1fr 1.15fr;gap:100px}.method-intro h2{font-size:58px;margin:17px 0 25px}.method-intro>p{max-width:500px;font-size:13px;line-height:1.75;color:#68706b}.method-flow article{display:grid;grid-template-columns:42px 1fr;gap:24px;padding:23px 0;border-bottom:1px solid #cbc6bb}.method-flow article>b{font:600 10px "JetBrains Mono";color:var(--earth)}.method-flow strong,.method-flow small{display:block}.method-flow strong{font:700 20px "Archivo Narrow";color:var(--forest)}.method-flow small{font-size:10px;line-height:1.55;color:#737a75;margin-top:6px}.method-caveat{grid-column:1/-1;display:flex;gap:20px;padding:22px 25px;border:1px solid #c9c4b8;background:#f7f4ed}.method-caveat>span{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:white;font:600 11px "JetBrains Mono"}.method-caveat p{margin:0;font-size:10px;line-height:1.7;color:#666d68}.method-caveat strong{display:block;color:var(--forest);font-size:11px}.final-cta{min-height:370px;padding:90px max(32px,calc((100vw - 1256px)/2));background:var(--earth);display:flex;align-items:center;justify-content:space-between}.final-cta .eyebrow{color:#ffe0d1}.final-cta h2{font-size:65px;color:white;margin-top:14px}.light-button{background:var(--white);color:var(--forest);box-shadow:none}.light-button:hover{background:#f0eadf}.home-footer{min-height:120px;padding:30px max(32px,calc((100vw - 1256px)/2));background:var(--forest-dark);display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;color:#9fb4ad}.home-footer .brand{color:white}.home-footer p{text-align:center;font-size:10px}.home-footer>span{text-align:right;font:500 8px "JetBrains Mono"}
@media(max-width:900px){.home-nav{padding:0 20px}.home-links>a{display:none}.home-links{gap:0}.home-hero{grid-template-columns:1fr;padding:65px 20px}.hero-copy{padding:0}.hero-copy h1{font-size:58px}.territory-preview{max-width:650px;width:100%;margin:auto}.section-heading{grid-template-columns:1fr;gap:16px}.use-section,.demo-section,.method-section,.indicators-section{padding:80px 24px}.use-grid{grid-template-columns:1fr 1fr}.indicator-groups{grid-template-columns:1fr 1fr}.indicator-groups article.wide{grid-column:span 2}.demo-layout{grid-template-columns:1fr;gap:35px}.demo-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.demo-steps button{grid-template-columns:1fr}.method-section{grid-template-columns:1fr;gap:35px}.method-caveat{grid-column:auto}.final-cta{padding:75px 24px}.home-footer{padding:30px 24px}}
@media(max-width:600px){.home-nav{height:66px}.home-brand .brand-name{font-size:20px}.nav-cta{height:36px}.home-hero{padding-top:50px;gap:50px}.hero-copy h1{font-size:47px}.hero-copy>p{font-size:13px}.hero-actions{align-items:stretch;flex-direction:column;gap:16px}.home-primary{width:100%}.hero-proof{gap:14px;justify-content:space-between}.hero-proof b{font-size:17px}.preview-map{height:470px}.preview-result{right:12px;bottom:12px}.preview-location{left:12px;top:12px}.section-heading h2,.method-intro h2{font-size:44px}.use-grid,.indicator-groups{grid-template-columns:1fr}.indicator-groups article.wide{grid-column:auto}.demo-steps{grid-template-columns:1fr}.demo-steps button{grid-template-columns:35px 1fr}.demo-screen{min-height:410px}.demo-frame{height:373px}.mini-sidebar{width:calc(100% - 36px);top:28px;padding:25px}.mini-float{width:210px}.result-demo{width:72%;padding:25px}.final-cta{align-items:flex-start;flex-direction:column;gap:35px}.final-cta h2{font-size:52px}.home-footer{grid-template-columns:1fr;gap:18px}.home-footer p,.home-footer>span{text-align:left}}

/* Frontend polish pass */
body:not(.tool-open){scroll-behavior:smooth}.home-nav{position:sticky;top:0;z-index:50;background:rgba(247,244,237,.88);backdrop-filter:blur(18px);box-shadow:0 1px 0 rgba(46,93,79,.05)}.home-links a,.nav-cta,.home-primary,.ghost-button,.primary-button{transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.home-links a:hover,.nav-cta:hover,.home-primary:hover,.primary-button:hover{transform:translateY(-1px)}.nav-cta:hover,.home-primary:hover{box-shadow:0 14px 34px rgba(232,116,60,.22)}.nav-cta{display:inline-flex;align-items:center;gap:8px}.nav-badge{height:28px;padding:0 10px;display:inline-flex;align-items:center;border:1px solid rgba(46,93,79,.18);border-radius:999px;background:#eef2ec;color:var(--forest);font:700 9px "JetBrains Mono";letter-spacing:.1em;text-transform:uppercase}.home-hero{position:relative}.home-hero:before{content:"";position:absolute;inset:34px 32px auto;height:520px;pointer-events:none;background:radial-gradient(circle at 20% 30%,rgba(232,116,60,.1),transparent 32%),radial-gradient(circle at 78% 22%,rgba(46,93,79,.12),transparent 35%);filter:blur(10px);opacity:.9}.hero-copy,.territory-preview{position:relative}.hero-copy h1{letter-spacing:-.035em}.hero-copy>p{max-width:610px}.home-primary,.nav-cta,.primary-button{border-radius:2px}.home-primary:focus-visible,.nav-cta:focus-visible,.primary-button:focus-visible,.ghost-button:focus-visible,.home-links a:focus-visible,input:focus-visible,button:focus-visible{outline:3px solid rgba(232,116,60,.35);outline-offset:3px}.home-trust-strip{max-width:1256px;margin:-34px auto 54px;padding:0 32px;display:grid;grid-template-columns:repeat(3,1fr);gap:0}.home-trust-strip article{min-height:142px;padding:26px 28px;border:1px solid var(--line);background:rgba(255,253,248,.62)}.home-trust-strip article+article{border-left:0}.home-trust-strip span{display:block;color:var(--earth);font:700 10px "JetBrains Mono";letter-spacing:.12em}.home-trust-strip strong{display:block;margin:18px 0 8px;color:var(--forest);font:700 22px "Archivo Narrow"}.home-trust-strip p{margin:0;color:#687069;font-size:12px;line-height:1.65}.use-grid article,.indicator-groups article,.demo-screen,.method-caveat{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.use-grid article:hover,.indicator-groups article:hover{transform:translateY(-3px)}.preview-map{border:1px solid rgba(46,93,79,.08)}.analysis-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0 22px}.analysis-steps span{padding:8px 9px;background:#eef2ec;border:1px solid #d9e2dc;color:var(--forest);font:700 9px "JetBrains Mono";letter-spacing:.05em;text-transform:uppercase;text-align:center}.control-panel{box-shadow:0 18px 55px rgba(24,43,36,.18);border-radius:2px}.search-row,.radius-number,.area-mode-options button,.polygon-controls button,.municipality-search,.auth-card .auth-input{border-radius:2px}.results-panel{box-shadow:-24px 0 70px rgba(15,43,34,.22)}.auth-gateway{background:radial-gradient(circle at 20% 20%,rgba(232,116,60,.12),transparent 28%),radial-gradient(circle at 80% 8%,rgba(46,93,79,.14),transparent 32%),var(--paper)}.auth-card{box-shadow:0 24px 80px rgba(24,43,36,.22)}@media(max-width:900px){.nav-badge{display:none}.home-trust-strip{grid-template-columns:1fr;margin:0 auto 28px;padding:0 24px}.home-trust-strip article+article{border-left:1px solid var(--line);border-top:0}.home-hero:before{inset:20px;height:620px}.analysis-steps{grid-template-columns:1fr 1fr 1fr}}@media(max-width:600px){.home-links{gap:10px}.home-trust-strip{padding:0 20px}.home-trust-strip article{min-height:auto;padding:22px}.analysis-steps{grid-template-columns:1fr}.hero-copy h1{letter-spacing:-.025em}}

/* App experience polish */
.results-loading{padding:22px 0;color:#b7c9c2}.results-loading i{display:block;height:12px;margin:9px 0;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.22),rgba(255,255,255,.08));background-size:220% 100%;animation:pyxisShimmer 1.1s linear infinite}.results-loading i:nth-child(1){width:86%}.results-loading i:nth-child(2){width:68%}.results-loading i:nth-child(3){width:74%}.results-loading span{display:block;margin-top:12px;font:600 9px "JetBrains Mono";letter-spacing:.06em;text-transform:uppercase;color:#ffd0b8}.history-list{display:grid;gap:10px;padding:20px 32px 30px}.history-item{padding:16px 16px 14px;border:1px solid var(--line);background:var(--white);box-shadow:0 8px 22px rgba(33,72,61,.06)}.history-item:hover{border-color:#c8d3cc}.history-item div{display:flex;flex-wrap:wrap;gap:10px}.history-item button,.history-item a{border-color:#d8ded8;border-radius:2px}.history-item button{background:var(--forest);color:white;border-color:var(--forest)}.history-empty{min-height:180px;display:grid;place-content:center;text-align:center;border:1px dashed #cfc8ba;background:#fbf8f1;color:#6b726d}.history-empty b{display:block;color:var(--forest);font:700 24px "Archivo Narrow"}.history-empty span{display:block;margin-top:8px;font-size:12px}.history-empty.error b{color:#b24525}.spending-card,.hero-metric,.metric-grid article{border:1px solid rgba(255,255,255,.10)}.primary-button[aria-busy="true"],.primary-button:disabled{opacity:.72;cursor:progress}@keyframes pyxisShimmer{to{background-position:-220% 0}}

/* Workspace decision layer */
.analysis-name-field{display:block;margin:0 0 18px}.analysis-name-field span{display:block;margin-bottom:7px;font-size:10px;font-weight:700;color:#3f4944}.analysis-name-field input{width:100%;height:42px;border:1px solid var(--line);background:var(--white);padding:0 12px;font:600 12px Inter;color:var(--forest);outline:0}.analysis-name-field input:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(46,93,79,.1)}.comparison-card{margin:14px 0;padding:16px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.055)}.comparison-card header{display:flex;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.11)}.comparison-card header span{font:700 8px "JetBrains Mono";letter-spacing:.12em;color:#ffd0b8}.comparison-card header strong{font:700 15px "Archivo Narrow";color:white;text-align:right}.comparison-card div{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}.comparison-card div:last-child{border-bottom:0}.comparison-card div span{font-size:9px;color:#a9bdb6}.comparison-card div b{font:700 17px "Archivo Narrow";color:white}.comparison-card small{grid-column:1/-1;font:600 8px "JetBrains Mono"}.comparison-card small.alta{color:#9fe3ad}.comparison-card small.queda{color:#ffb18f}.comparison-card small.neutro{color:#b7c9c2}

/* Result tabs and export options */
.result-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:16px 0 10px;border:1px solid rgba(255,255,255,.14)}
.result-tabs button{height:40px;border:0;background:rgba(255,255,255,.06);color:#a9bdb6;font:800 9px "JetBrains Mono";letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.result-tabs button+button{border-left:1px solid rgba(255,255,255,.14)}
.result-tabs button.active{background:#f7f2e7;color:var(--forest)}
.history-toolbar label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fbf8f1;color:#59645f;padding:8px 10px;font:700 10px Inter;text-transform:uppercase;letter-spacing:.08em}
.history-toolbar input{accent-color:var(--forest)}

/* Overview KPI spacing and class-social table */
.hero-metric{padding:24px 22px 22px!important}
.metric-grid article{padding:18px 18px!important;min-height:112px}
.metric-grid article:nth-child(even){padding-left:18px!important}
.metric-grid span{display:block;line-height:1.45;overflow-wrap:anywhere}
.metric-grid strong{line-height:1.05}
.overview-grid{grid-template-columns:1fr 1fr}
@media(max-width:520px){.overview-grid{grid-template-columns:1fr}.metric-grid article:nth-child(odd){border-right:0}.metric-grid article{border-bottom:1px solid rgba(255,255,255,.18)}}

/* Variable dictionary and hover definitions */
.dictionary-dialog{width:min(980px,calc(100vw - 32px));max-height:min(820px,calc(100vh - 32px));padding:0;border:0;background:#fbf8f1;color:var(--ink)}
.dictionary-toolbar{display:flex;align-items:center;gap:12px;padding:0 32px 16px;border-bottom:1px solid var(--line)}
.dictionary-toolbar input{flex:1;height:42px;border:1px solid var(--line);background:white;padding:0 13px;font:600 12px Inter;color:var(--forest);outline:0}.dictionary-toolbar input:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(46,93,79,.1)}
.dictionary-toolbar span{font:700 10px "JetBrains Mono";letter-spacing:.08em;text-transform:uppercase;color:#66716c}.dictionary-list{padding:18px 32px 32px;max-height:620px;overflow:auto}.dictionary-group{margin:0 0 24px}.dictionary-group h3{margin:0 0 10px;color:var(--forest);font:800 12px "JetBrains Mono";letter-spacing:.08em;text-transform:uppercase}.dictionary-group h3 small{color:#8b948f;margin-left:6px}.dictionary-item{background:white;border:1px solid var(--line);padding:15px 16px;margin:8px 0}.dictionary-item header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.dictionary-item b{font:800 16px "Archivo Narrow";color:var(--forest);letter-spacing:.01em}.dictionary-item header span{font:700 10px "JetBrains Mono";color:#b35e34;white-space:nowrap}.dictionary-item p{margin:8px 0;color:#3d4642;font-size:12px;line-height:1.55}.dictionary-item small{display:block;color:#79837e;font-size:10px;line-height:1.45}.info-dot{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:5px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#ffd0b8;font:800 10px Inter;position:relative;cursor:help;font-style:normal}.info-dot:hover::after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);z-index:40;width:230px;padding:10px 11px;background:#fbf8f1;color:#24342f;border:1px solid var(--line);box-shadow:0 14px 34px rgba(0,0,0,.22);font:600 11px/1.35 Inter;text-transform:none;letter-spacing:0;text-align:left}.info-dot:hover::before{content:"";position:absolute;left:50%;bottom:100%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#fbf8f1;z-index:41}
.indicator-row{overflow:visible}.indicator-row b{display:inline-flex;align-items:center;gap:2px}.indicator-row small{line-height:1.35}
