:root{
  --bg:#0b0e13;
  --panel:#131820;
  --panel-2:#171d27;
  --line:#232b36;
  --text:#e6ebf0;
  --muted:#9aa5b1;
  --primary:#2563eb;
  --ok:#22c55e;
  --warn:#f59e0b;
  --display:'Space Grotesk',sans-serif;
  --body-font:'Inter',sans-serif;
}
*{box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--body-font);
  line-height:1.6;
}
a{color:inherit;}

.navbar-main{background:var(--panel);border-bottom:1px solid var(--line);}
.navbar-brand{font-family:var(--display);font-weight:700;letter-spacing:-0.01em;}
.badge-admin{font-size:10px;background:var(--primary);color:#fff;padding:2px 7px;border-radius:10px;vertical-align:middle;margin-left:6px;font-family:var(--body-font);font-weight:600;}
.nav-link-admin{color:var(--muted);font-size:14px;display:flex;align-items:center;padding:0 4px;transition:color .2s;}
.nav-link-admin:hover{color:var(--text);}

.hero-header{padding:64px 0 40px;border-bottom:1px solid var(--line);}
.hero-header .eyebrow{font-family:var(--body-font);font-size:12.5px;text-transform:uppercase;letter-spacing:0.08em;color:var(--primary);margin-bottom:10px;font-weight:600;}
.hero-header h1{font-family:var(--display);font-weight:700;font-size:clamp(26px,3.6vw,40px);letter-spacing:-0.02em;margin-bottom:14px;}
.lead-text{color:var(--muted);max-width:640px;font-size:16px;}

main.container{padding-top:36px;padding-bottom:64px;}

.filter-bar{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap;margin-bottom:28px;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:10px;}
.filter-group{display:flex;flex-direction:column;gap:6px;min-width:220px;}
.filter-group label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;}
.form-select,.form-control{background:var(--panel-2);border-color:var(--line);color:var(--text);}
.form-select:focus,.form-control:focus{background:var(--panel-2);color:var(--text);border-color:var(--primary);box-shadow:0 0 0 0.2rem rgba(37,99,235,.25);}
.btn-clear{color:var(--muted);font-size:13.5px;align-self:center;}
.btn-clear:hover{color:var(--text);}

.alert-comuna{background:rgba(37,99,235,0.12);border:1px solid rgba(37,99,235,0.35);color:var(--text);padding:12px 16px;border-radius:8px;margin-bottom:24px;font-size:14.5px;}

.indicator-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:992px){.indicator-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.indicator-grid{grid-template-columns:1fr;}}

.indicator-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;border-top:3px solid var(--accent, var(--primary));}
.ind-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.ind-cat{font-size:11.5px;color:var(--accent, var(--primary));font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}
.ind-fuente{font-size:10.5px;color:var(--muted);}
.indicator-card h3{font-family:var(--display);font-size:16.5px;font-weight:600;margin-bottom:14px;line-height:1.3;}
.ind-value{font-family:var(--display);font-size:32px;font-weight:700;display:flex;align-items:baseline;gap:8px;}
.ind-year{font-family:var(--body-font);font-size:12px;color:var(--muted);font-weight:500;}
.ind-vs{font-size:12.5px;margin-top:6px;color:var(--muted);}
.ind-vs.text-ok{color:var(--ok);}
.ind-vs.text-warn{color:var(--warn);}
.ind-empty{color:var(--muted);font-size:14px;font-style:italic;padding:8px 0;}
.ind-desc{font-size:13px;color:var(--muted);margin:14px 0 0;}
.btn-ranking{background:none;border:none;color:var(--primary);font-size:13px;font-weight:600;padding:0;margin-top:16px;cursor:pointer;}
.btn-ranking:hover{text-decoration:underline;}

.site-footer{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:13px;}

.modal-content{background:var(--panel);color:var(--text);border:1px solid var(--line);}
.modal-header{border-bottom:1px solid var(--line);}

/* Admin */
.stat-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;text-align:center;}
.stat-box-num{font-family:var(--display);font-size:28px;font-weight:700;color:var(--primary);}
.stat-box-label{font-size:12.5px;color:var(--muted);margin-top:4px;}

.admin-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;transition:border-color .2s;}
.admin-card:hover{border-color:var(--primary);}
.admin-card h3{font-family:var(--display);font-size:16px;margin-bottom:6px;}
.admin-card p{font-size:13.5px;color:var(--muted);margin:0;}

.card-panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;}
.table-values{color:var(--text);}
.table-values thead th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:0.04em;border-color:var(--line);font-weight:600;}
.table-values td{border-color:var(--line);vertical-align:middle;}

.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;}
.login-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:36px;width:100%;max-width:380px;}
.login-box h1{font-family:var(--display);font-weight:700;font-size:24px;}

/* Índice de vulnerabilidad */
.vuln-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;}
.vuln-alta{background:rgba(225,29,72,0.15);color:#f87196;}
.vuln-media{background:rgba(245,158,11,0.15);color:#fbbf51;}
.vuln-baja{background:rgba(34,197,94,0.15);color:#5fdb92;}
.componentes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.componentes-list li{display:flex;justify-content:space-between;font-size:13.5px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.componentes-list li:last-child{border-bottom:none;padding-bottom:0;}
.componentes-list .peso{color:var(--muted);font-family:var(--display);font-size:12.5px;}
