.dash-hero,.dash-main,.dash-footer{font-family:var(--font-body);color:var(--ink)}.dash-hero{background:var(--bg-alt);border-bottom:1px solid var(--line);padding:72px 32px 96px;position:relative}.dash-hero-content{text-align:center;z-index:1;max-width:720px;margin:0 auto;position:relative}.dash-hero-label{background:var(--surface);font:600 .72rem/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-radius:999px;align-items:center;gap:.6rem;margin:0 0 20px;padding:.45rem 1rem;display:inline-flex;box-shadow:0 1px 3px #14231d1a}.dash-hero-label:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.dash-hero-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin:0 0 16px;font-size:clamp(2.3rem,4.4vw,3.5rem);font-weight:400;line-height:1.08}.dash-hero-title em{font-style:italic}.dash-hero-sub{color:var(--ink-soft);max-width:560px;margin:0 auto;font-size:17px;line-height:1.65}.dash-kpis{z-index:1;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1000px;margin:48px auto -64px;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{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--accent-dark);background:var(--accent-soft);justify-content:center;align-items:center;font-size:16px;display:flex}#kpi-sitios .kpi-icon{color:var(--blue);background:#0ea5e91f}#kpi-minas .kpi-icon{color:var(--amber);background:#d99a0b24}#kpi-ladrilleras .kpi-icon{color:var(--red);background:#ef44441f}.kpi-value{font-family:var(--font-display);color:var(--ink);font-size:32px;font-weight:500;line-height:1}.kpi-label{color:var(--muted);font-size:13px}.dash-main{max-width:1200px;margin:0 auto;padding:112px 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-dark);background:var(--accent-soft);border-radius:999px;margin-bottom:12px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.section-badge.agua{color:var(--blue);background:#0ea5e91a}.section-badge.minas{color:#a86f00;background:#d99a0b24}.section-badge.ladrilleras{color:var(--red);background:#ef44441a}.dash-section .section-title,.section-header .section-title{font-family:var(--font-display);letter-spacing:-.02em;text-align:left;color:var(--ink);margin:0 0 8px;font-size:30px;font-weight:500}.section-desc{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.65}.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;display:flex}.chart-card--wide{grid-column:span 2}.chart-card-header{margin-bottom:16px}.chart-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0 0 4px;font-size:17px;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;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,.charts-grid{grid-template-columns:repeat(2,1fr)}.chart-card--wide{grid-column:span 2}}@media (width<=640px){.dash-hero{padding:56px 20px 88px}.dash-kpis{grid-template-columns:1fr;margin-top:32px}.dash-main{padding-top:96px}.charts-grid{grid-template-columns:1fr}.chart-card--wide{grid-column:span 1}}@media (prefers-reduced-motion:reduce){.chart-wrap.loading:after{animation:none}}
