:root{--bg:#fcfbf9;--bg-alt:#f7f6f2;--ink:#14211c;--ink-soft:#3d4a44;--muted:#6b7570;--line:#ebe8e2;--surface:#fff;--accent:#e07048;--accent-dark:#c85a34;--sage:#e1ece4;--sage-dark:#cfe0d5;--topbar:#4a3535;--blue:#5b8fa8;--amber:#c58a3a;--red:#c85f52;--green:#5f8a70;--pink:#c56a91;--radius-lg:16px;--radius-md:14px;--radius-sm:10px;--shadow-card:0 2px 8px #14211c0a, 0 10px 30px #14211c0f;--font-serif:"Newsreader", "Georgia", "Times New Roman", serif;--font-sans:"Inter Tight", "DM Sans", system-ui, sans-serif}.dash-hero,.dash-main,.dash-footer{font-family:var(--font-sans);color:var(--ink)}.dash-main{background:var(--bg)}.dash-hero{background:var(--bg);color:var(--ink);border-bottom:1px solid var(--line);padding:72px 32px 96px;position:relative;overflow:hidden}.dash-hero:after{content:none}.dash-hero-content{text-align:center;z-index:1;max-width:720px;margin:0 auto;position:relative}.dash-hero-label{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 16px;font-size:13px;font-weight:600;display:inline-flex}.dash-hero-label:before{content:"";background:var(--accent);border-radius:50%;width:9px;height:9px}.dash-hero-title{font-family:var(--font-serif);letter-spacing:-.035em;color:var(--ink);margin:0 0 18px;font-size:clamp(2.5rem,5vw,4rem);font-weight:400;line-height:1.05}.dash-hero-sub{color:var(--ink-soft);max-width:620px;margin:0 auto;font-size:1.15rem;line-height:1.65}.dash-kpis{z-index:1;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1000px;margin:32px auto 0;padding:0 16px;display:grid;position:relative}.kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-direction:column;gap:10px;padding:22px 20px;display:flex}.kpi-icon{width:38px;height:38px;color:var(--accent);background:#e070481a;border-radius:10px;justify-content:center;align-items:center;font-size:16px;display:flex}#kpi-sitios .kpi-icon{color:var(--blue);background:#5b8fa81f}#kpi-minas .kpi-icon{color:var(--amber);background:#c58a3a1f}#kpi-ladrilleras .kpi-icon{color:var(--red);background:#c85f521f}.kpi-value{font-family:var(--font-serif);color:var(--ink);font-size:30px;font-weight:500;line-height:1}.kpi-label{color:var(--muted);font-size:13px}.dash-main{max-width:1200px;margin:0 auto;padding:64px 24px 40px}.dash-section{margin-bottom:72px}.dash-section:last-child{margin-bottom:32px}.section-header{max-width:640px;margin-bottom:28px}.section-badge{color:var(--accent);background:#e070481a;border-radius:999px;margin-bottom:12px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-block}.section-badge.agua{color:var(--blue);background:#5b8fa81a}.section-badge.minas{color:var(--amber);background:#c58a3a1a}.section-badge.ladrilleras{color:var(--red);background:#c85f521a}.section-title{font-family:var(--font-serif);letter-spacing:-.025em;color:var(--ink);margin:0 0 8px;font-size:clamp(2rem,4vw,3rem);font-weight:500}.section-desc{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.6}.charts-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);flex-direction:column;min-width:0;padding:20px;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;box-shadow:0 2px 8px #14211c08}.chart-card:hover{border-color:#ded9d0;transform:translateY(-2px);box-shadow:0 8px 24px #14211c12}.chart-card--wide{grid-column:span 2}.chart-card-header{margin-bottom:16px}.chart-title{font-family:var(--font-serif);color:var(--ink);margin:0 0 4px;font-size:1.25rem;font-weight:500}.chart-subtitle{color:var(--muted);margin:0;font-size:12.5px}.chart-wrap{flex:1;height:260px;position:relative}.chart-wrap canvas{max-width:100%}.chart-wrap.loading{opacity:.35}.chart-wrap.loading:after{content:"";border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:auto;animation:.8s linear infinite dash-spin;position:absolute;inset:0}.chart-wrap.error{justify-content:center;align-items:center;display:flex}.chart-wrap.error:before{content:"No se pudo cargar la información";color:var(--muted);text-align:center;padding:0 12px;font-size:13px}.chart-wrap.error canvas{display:none}@keyframes dash-spin{to{transform:rotate(360deg)}}.dash-footer{text-align:center;border-top:1px solid var(--line);max-width:1200px;margin:0 auto;padding:24px 24px 48px}.dash-footer p{color:var(--muted);margin:0;font-size:12.5px}@media (width<=960px){.dash-kpis{grid-template-columns:1fr;margin-top:24px}.charts-grid{grid-template-columns:repeat(2,1fr)}.chart-card--wide{grid-column:span 2}}.dash-scope{background:#00c9b11f;border:1px solid #00c9b1;border-radius:999px;align-items:center;gap:.5rem;width:fit-content;margin-top:1rem;padding:.5rem .9rem;font-size:.85rem;display:flex}.dash-scope-clear{margin-left:.5rem;font-weight:600;text-decoration:underline}.chart-wrap.empty canvas{display:none}.chart-wrap.empty:after{content:"Sin datos para esta ciudad";color:#94a3b8;justify-content:center;align-items:center;font-size:.85rem;display:flex;position:absolute;inset:0}@media (width<=640px){.dash-hero{padding:56px 20px 80px}.dash-hero-title{font-size:clamp(2.4rem,11vw,3.2rem)}.dash-hero-sub{font-size:1.05rem}.dash-kpis{grid-template-columns:1fr;margin-top:-32px}.dash-main{padding-top:72px}.charts-grid{grid-template-columns:1fr}.chart-card--wide{grid-column:span 1}.section-title{font-size:2.2rem}}@media (prefers-reduced-motion:reduce){.chart-wrap.loading:after{animation:none}.chart-card{transition:none}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
