*{box-sizing:border-box}
:root{
 --background:oklch(0.983 0.008 90);--foreground:oklch(0.24 0.021 65);--card:#fff;
 --primary:oklch(0.42 0.075 158);--secondary:oklch(0.94 0.017 88);
 --muted:oklch(0.945 0.013 88);--muted-foreground:oklch(0.48 0.024 70);
 --border:oklch(0.89 0.015 85);--ring:oklch(0.55 0.08 158);
 --high:#2f9e5e;--good:#7fbe3f;--medium:#e0a72a;--low:#e07a2a;--verylow:#cf4a2c;
 --font-display:"Instrument Serif",ui-serif,Georgia,serif;
 --font-sans:"Work Sans",ui-sans-serif,system-ui,sans-serif;
 --shadow:0 1px 2px rgba(80,60,40,.06),0 12px 32px -12px rgba(80,60,40,.18)
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;margin:0}
button,input{font:inherit}.container{max-width:1152px;margin:auto;padding-left:20px;padding-right:20px}
.site-header{border-bottom:1px solid var(--border);background:var(--card)}
.header-inner{padding-top:40px;padding-bottom:40px}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--muted-foreground);margin:0}
.site-header h1{font-size:clamp(42px,6vw,64px);line-height:1.05;max-width:720px;margin-top:8px}
.intro{font-size:16px;line-height:1.6;color:var(--muted-foreground);max-width:720px;margin:14px 0 0}
.search-area{margin-top:24px;max-width:560px;position:relative}
.search-box{display:flex;align-items:center;gap:12px;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:12px 16px;box-shadow:var(--shadow)}
.search-box:focus-within{border-color:var(--ring)}
.search-symbol{font-size:25px;color:var(--muted-foreground)}
.search-box input{width:100%;border:0;outline:0;background:transparent;font-size:16px;color:var(--foreground)}
.search-box input::placeholder{color:var(--muted-foreground)}
.count{font-size:12px;color:var(--muted-foreground);margin:8px 0 0}
.suggestions{position:absolute;z-index:2000;top:56px;left:0;right:0;margin:0;padding:4px 0;list-style:none;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;display:none}
.suggestions.open{display:block}
.suggestions button{display:flex;width:100%;justify-content:space-between;gap:15px;border:0;background:transparent;text-align:left;padding:10px 16px;cursor:pointer;color:var(--foreground)}
.suggestions button:hover,.suggestions button.active{background:var(--secondary)}
.suggestions small{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground)}
.main{padding-top:32px;padding-bottom:32px}.card{border:1px solid var(--border);background:var(--card);border-radius:16px;box-shadow:var(--shadow)}
.weights{padding:20px}
.weights-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.weights h2{font-size:21px}.weights p{font-size:14px;color:var(--muted-foreground);margin:6px 0 0;line-height:1.5}
.reset{border:1px solid var(--border);background:transparent;border-radius:9px;padding:7px 12px;color:var(--muted-foreground);cursor:pointer}
.reset:not(:disabled):hover{background:var(--secondary);color:var(--foreground)}.reset:disabled{opacity:.4;cursor:default}
.weight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px 26px;margin-top:17px}
.weight-item label{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.weight-item label span:last-child{font-size:11px;color:var(--muted-foreground)}
.weight-item input{width:100%;margin-top:4px;accent-color:var(--primary)}
.weight-error{color:#b42318!important}.hidden{display:none!important}
.map-section{margin-top:32px}.map{height:520px;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:var(--secondary)}
.leaflet-container{background:var(--secondary);font-family:var(--font-sans)}.leaflet-tooltip{border:1px solid var(--border);background:var(--card);color:var(--foreground);box-shadow:var(--shadow);border-radius:8px;font-size:12px}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:9px 20px;list-style:none;padding:10px 0 0;margin:0;font-size:12px;color:var(--muted-foreground)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-2px}.legend-title{font-weight:600;color:var(--foreground)}
.legend i[data-level=high]{background:var(--high)}.legend i[data-level=good]{background:var(--good)}.legend i[data-level=medium]{background:var(--medium)}.legend i[data-level=low]{background:var(--low)}.legend i[data-level=verylow]{background:var(--verylow)}
.empty-card{border:1px dashed var(--border);background:rgba(255,255,255,.45);border-radius:16px;padding:40px;text-align:center;margin-top:32px}.empty-card h2{font-size:30px}.empty-card p{max-width:520px;margin:8px auto 0;font-size:14px;color:var(--muted-foreground);line-height:1.6}
.ficha{margin-top:32px;border:1px solid var(--border);background:var(--card);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.ficha-head{border-bottom:1px solid var(--border);background:rgba(240,236,225,.55);padding:24px}.ficha-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.province{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted-foreground)}.ficha-title{font-size:48px;line-height:1;margin-top:4px}.population{font-size:14px;color:var(--muted-foreground);margin-top:7px}.score{text-align:right}.score-label{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted-foreground)}.score-number{font-family:var(--font-display);font-size:58px;line-height:1}.score-number small{font-family:var(--font-sans);font-size:20px;color:var(--muted-foreground)}.score-level{font-size:14px;font-weight:600}
.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--border);padding:12px 16px 0}.tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:8px 12px;color:var(--muted-foreground);cursor:pointer}.tabs button.active{border-color:var(--primary);color:var(--foreground);font-weight:600}
.ficha-body{padding:24px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px}.ficha h3{font-size:22px}.small-note{font-size:11px;color:var(--muted-foreground);line-height:1.5;margin:5px 0 10px}
.subbar{padding:7px 0}.subbar-top{display:flex;justify-content:space-between;font-size:14px}.subbar-value{font-weight:600}.bar{height:8px;background:var(--secondary);border-radius:99px;position:relative;overflow:visible;margin-top:4px}.bar-fill{height:100%;border-radius:99px}.bar-marker{position:absolute;top:-2px;height:12px;width:2px;background:var(--foreground);opacity:.6}.bar-media{font-size:10px;color:var(--muted-foreground);margin-top:2px}
.compare-row{border-top:1px solid var(--border);padding:7px 0;display:flex;justify-content:space-between;gap:12px;font-size:13px}.compare-row .label{color:var(--muted-foreground)}.compare-row .result{font-size:11px;color:var(--muted-foreground)}
.indicators{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.indicator{border:1px solid var(--border);border-radius:12px;padding:16px}.indicator-title{font-size:14px;font-weight:600;color:var(--muted-foreground)}.indicator-value{font-family:var(--font-display);font-size:34px;line-height:1;margin-top:9px}.indicator-detail{font-size:11px;line-height:1.5;color:var(--muted-foreground);margin-top:8px}
.method{padding:24px;margin-top:32px;font-size:14px;line-height:1.65;color:var(--muted-foreground)}.method h2{font-size:22px;color:var(--foreground)}.method p{margin:8px 0 0}
footer{border-top:1px solid var(--border);background:var(--card);padding:32px 0;color:var(--muted-foreground);font-size:13px;line-height:1.6}footer p{margin:0 0 5px}footer strong{color:var(--foreground)}footer a{display:inline-block;margin-top:10px;color:var(--primary);font-weight:600}
.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}
@media(max-width:800px){.weight-grid{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.indicators{grid-template-columns:1fr 1fr}.ficha-title{font-size:40px}}
@media(max-width:600px){.header-inner{padding-top:30px;padding-bottom:30px}.site-header h1{font-size:42px}.weight-grid,.indicators{grid-template-columns:1fr}.weights-head,.ficha-head-row{flex-direction:column}.score{text-align:left}.map{height:430px}.ficha-body{padding:18px}.tabs{overflow:auto;flex-wrap:nowrap}.tabs button{white-space:nowrap}.container{padding-left:16px;padding-right:16px}}
