:root {
  --radius-sm:.6rem; --radius:1rem; --radius-lg:1.5rem;
  /* Acentos de la bandera de Venezuela (uso medido) */
  --ve-yellow:#ffce1f; --ve-blue:#3f74e6; --ve-red:#e5443a;
  /* Tema OSCURO por defecto */
  --bg:#0b1620; --surface:#101e29; --surface-2:#16252f; --surface-3:#0e1a24;
  --band:#070f17; --glass:rgba(16,30,42,.72); --glass-strong:rgba(13,24,33,.86);
  --text:#eaf1f4; --text-soft:#c6d3da; --muted:#89a0ac;
  --border:#21333f; --border-strong:#33495a;
  --brand:#4cb7de; --brand-strong:#7ad0ec; --brand-tint:#11303d; --teal:#2bb59f;
  --shadow-sm:0 10px 30px rgba(0,0,0,.38); --shadow:0 26px 64px rgba(0,0,0,.52);
  /* Alias de compatibilidad con el sistema previo */
  --ink:var(--text); --ink-soft:var(--text-soft); --white:var(--surface); --paper:var(--surface-2);
  --mist:var(--surface-3); --aqua:#10303a; --blue:var(--brand); --blue-dark:var(--brand-strong);
  --blue-soft:var(--brand-tint); --yellow:var(--ve-yellow); --red:#ef6a60;
}
html[data-theme="light"] {
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f5f3ee; --surface-3:#fbfcfb;
  --band:#142632; --glass:rgba(255,255,255,.92); --glass-strong:var(--glass);
  --text:#142632; --text-soft:#2e4350; --muted:#60727d;
  --border:#d5dfdf; --border-strong:#aebfc0;
  --brand:#145b79; --brand-strong:#0d4057; --brand-tint:#e8f3f6; --teal:#168579;
  --shadow-sm:0 8px 24px rgba(15,45,58,.08); --shadow:0 22px 60px rgba(15,45,58,.12);
  --ink:var(--text); --ink-soft:var(--text-soft); --white:var(--surface); --paper:var(--surface-2);
  --mist:#eef4f3; --aqua:#dcefed; --blue:var(--brand); --blue-dark:var(--brand-strong);
  --blue-soft:var(--brand-tint); --yellow:#e9ad39; --red:#a53a32;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { color:var(--ink); background:var(--white); font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; }
h1,h2,h3 { letter-spacing:-.035em; }
a { color:var(--blue); text-underline-offset:3px; }
.skip-link { position:absolute; left:-9999px; top:0; z-index:9999; background:var(--surface); padding:.75rem; }
.skip-link:focus { left:1rem; top:1rem; }
.official-warning { background:#102532; color:#fff; padding:.6rem 1rem; text-align:center; font-size:.82rem; font-weight:650; letter-spacing:.01em; }
.site-nav { min-height:76px; background:var(--glass); border-bottom:1px solid var(--border); backdrop-filter:blur(14px); }
.navbar-brand { display:inline-flex; align-items:center; gap:.7rem; color:var(--ink); letter-spacing:-.03em; font-weight:750; }
.brand-mark { position:relative; display:grid; place-items:center; width:34px; height:34px; border-radius:9px; background:var(--blue); box-shadow:0 6px 16px rgba(20,91,121,.22); }
.brand-mark::before,.brand-mark::after { content:""; position:absolute; background:#fff; border-radius:2px; }
.brand-mark::before { width:17px; height:5px; }
.brand-mark::after { width:5px; height:17px; }
.brand-mark i { width:7px; height:7px; border:2px solid #8ce0d4; border-radius:50%; transform:translate(10px,-10px); }
.brand-name strong { color:var(--blue); }
.site-nav .nav-link { color:var(--ink-soft); font-weight:600; }
.site-nav .nav-link:hover,.site-nav .nav-link:focus { color:var(--blue); }
.nav-report-button { margin-left:.25rem; padding:.45rem .85rem; }
.hero { position:relative; overflow:hidden; background:linear-gradient(132deg,var(--surface-2),var(--bg)); padding:clamp(4.5rem,8vw,7.5rem) 0; border-bottom:1px solid var(--border); }
.hero::after { content:""; position:absolute; width:560px; height:560px; right:-220px; top:-300px; border:1px solid rgba(22,133,121,.16); border-radius:50%; box-shadow:0 0 0 80px rgba(22,133,121,.03),0 0 0 160px rgba(20,91,121,.025); pointer-events:none; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:clamp(2rem,7vw,6rem); align-items:center; }
.hero h1 { max-width:14ch; font-size:clamp(2.55rem,7vw,5.3rem); line-height:.98; letter-spacing:-.055em; margin:.35rem 0 1.4rem; }
.hero .lead { max-width:64ch; color:var(--muted); }
.eyebrow { color:var(--blue); font-weight:800; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:.5rem; }
.trust-panel,.privacy-callout { background:var(--glass); border:1px solid var(--border); border-left:5px solid var(--yellow); padding:1.5rem; box-shadow:var(--shadow); border-radius:0 var(--radius) var(--radius) 0; }
.trust-panel h2 { font-size:1.25rem; }
.trust-panel ul { padding-left:1.2rem; margin:0; }
.section-space { padding-top:clamp(3rem,7vw,6rem); padding-bottom:clamp(3rem,7vw,6rem); }
.section-heading { max-width:700px; margin-bottom:2rem; }
.action-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.action-card { display:block; color:var(--ink); text-decoration:none; border:1px solid var(--border); border-radius:var(--radius); padding:1.5rem; min-height:250px; background:var(--surface); transition:.18s ease; }
.action-card:hover,.action-card:focus-visible { border-color:var(--blue); transform:translateY(-3px); box-shadow:var(--shadow); }
.action-card span { color:var(--blue); font-weight:800; }
.action-card h3 { font-size:1.3rem; margin-top:3.2rem; }
.action-card p { color:var(--muted); }
.process-band { background:var(--band); color:#fff; padding:4.5rem 0; }
.process-band .eyebrow { color:#8dd3cb; }
.process-list { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; list-style:none; padding:0; margin:2rem 0 0; counter-reset:steps; }
.process-list li { border-top:1px solid #52616b; padding-top:1rem; }
.process-list strong,.process-list span { display:block; }
.process-list span { color:#ced7dc; }
.narrow { max-width:780px; }
.prose h2 { margin-top:2rem; }
.back-link { display:inline-block; margin-bottom:1.5rem; }
.draft-tools { margin:1rem 0 2rem; padding:1rem; background:var(--paper); border-radius:.5rem; }
.draft-tools p { margin-bottom:.5rem; }
.draft-status { display:block; margin-top:.35rem; color:var(--muted); }
.private-badge { color:var(--red); font-size:.72rem; font-weight:800; text-transform:uppercase; margin-left:.35rem; }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-control,.form-select { min-height:48px; border-color:#aebbbb; }
textarea.form-control { min-height:130px; }
.btn-primary { --bs-btn-bg:var(--blue); --bs-btn-border-color:var(--blue); --bs-btn-hover-bg:var(--blue-dark); --bs-btn-hover-border-color:var(--blue-dark); }
.confirmation-mark { width:72px; height:72px; display:grid; place-items:center; margin:0 auto 1rem; border-radius:50%; color:#fff; background:var(--blue); font-size:2rem; }
.filter-panel { display:grid; grid-template-columns:2fr 1fr 1fr 1fr auto; align-items:end; gap:.75rem; background:var(--paper); padding:1rem; margin:2rem 0; }
.filter-panel label { display:block; font-size:.8rem; font-weight:700; }
.report-list { display:grid; gap:1rem; }
.report-card { border:1px solid var(--border); padding:1.5rem; }
.report-card h2 { font-size:1.35rem; margin:.75rem 0; }
.report-meta { display:flex; gap:.6rem; align-items:center; font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.priority { display:inline-block; padding:.16rem .5rem; border-radius:99px; background:#e9eeef; font-size:.72rem; }
.priority-critical { color:#7f1d1d; background:#fee2e2; }
.priority-high { color:#854d0e; background:#fef3c7; }
.priority-low { color:#365314; background:#ecfccb; }
.report-location { color:var(--muted); font-size:.9rem; margin-bottom:0; }
.empty-state { text-align:center; border:1px dashed var(--border); padding:3rem; }
.pagination-simple { display:flex; justify-content:space-between; margin-top:2rem; }
.detail-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border); border:1px solid var(--border); margin:2rem 0; }
.detail-grid div { background:var(--surface); padding:1rem; }
.detail-grid dt { color:var(--muted); font-size:.78rem; text-transform:uppercase; font-weight:800; }
.detail-grid dd { margin:0; }
.login-panel { max-width:480px; }
.admin-page { max-width:1320px; }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.status-tabs { display:flex; flex-wrap:wrap; gap:.5rem; border-bottom:1px solid var(--border); margin-bottom:1.5rem; }
.status-tabs a { padding:.75rem 1rem; text-decoration:none; }
.status-tabs a.active { border-bottom:3px solid var(--blue); font-weight:800; }
.status-tabs span { background:var(--paper); border-radius:99px; padding:.1rem .4rem; }
.admin-table th { white-space:nowrap; }
.admin-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(330px,.6fr); gap:1.25rem; align-items:start; }
.admin-card { border:1px solid var(--border); padding:1.25rem; margin-bottom:1rem; background:var(--surface); }
.admin-card h2 { font-size:1.2rem; }
.admin-card h3 { font-size:1rem; margin-top:1.2rem; }
.review-form { position:sticky; top:1rem; }
.internal-note { border-left:3px solid var(--blue); padding-left:.75rem; margin-bottom:1rem; }
.export-panel { background:#fff5f5; border:1px solid #fecaca; padding:1rem; margin-top:2rem; }
#report-map { width:100%; height:min(70vh,720px); min-height:560px; background:#dfe8e7; }

/* Guided report intake */
.report-intake { min-height:calc(100vh - 140px); padding:clamp(2.5rem,6vw,5.5rem) 0; background:linear-gradient(145deg,var(--surface-2) 0,var(--surface-3) 48%,var(--bg) 100%); }
.report-intake-grid { display:grid; grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr); gap:clamp(2rem,6vw,5rem); align-items:start; }
.intake-context { position:sticky; top:1.5rem; padding-top:.4rem; }
.intake-context h1 { max-width:11ch; margin:.35rem 0 1.1rem; font-size:clamp(2.2rem,4vw,4.1rem); line-height:1.02; }
.intake-lead { max-width:38ch; color:var(--muted); font-size:1.08rem; }
.privacy-seal { display:flex; gap:1rem; margin:2rem 0 1.2rem; padding:1.1rem; border:1px solid rgba(22,133,121,.25); border-radius:var(--radius); background:var(--glass); }
.privacy-seal-mark { flex:0 0 40px; width:40px; height:40px; display:grid; place-items:center; color:var(--teal); border-radius:11px; background:rgba(22,133,121,.12); }
.privacy-seal-mark svg { width:22px; height:22px; }
.privacy-seal p { margin:.2rem 0 0; color:var(--muted); font-size:.9rem; }
.intake-context .draft-tools { margin:1rem 0 0; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow-sm); }
.draft-actions { display:flex; flex-wrap:wrap; gap:.35rem; }
.intake-card { overflow:hidden; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--surface); box-shadow:var(--shadow); }
.form-error-summary { margin:1.5rem 1.5rem 0; padding:1rem 1.15rem; border:1px solid #e3b0ac; border-radius:var(--radius-sm); background:#fff5f4; color:#762d28; }
.form-error-summary p { margin:0; }
.wizard-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0; padding:1.3rem 2rem; list-style:none; border-bottom:1px solid var(--border); background:var(--surface-3); }
.wizard-progress li { position:relative; display:flex; align-items:center; gap:.65rem; color:var(--muted); font-size:.84rem; }
.wizard-progress li:not(:last-child)::after { content:""; position:absolute; right:1rem; width:clamp(28px,5vw,80px); height:1px; background:var(--border-strong); }
.wizard-progress span { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--border-strong); border-radius:50%; background:var(--surface); font-weight:800; }
.wizard-progress .is-current { color:var(--ink); }
.wizard-progress .is-current span { border-color:var(--blue); background:var(--blue); color:#fff; box-shadow:0 0 0 5px var(--blue-soft); }
.wizard-progress .is-complete span { border-color:var(--teal); background:var(--teal); color:#fff; }
.report-wizard { padding:clamp(1.5rem,4vw,2.75rem); }
.wizard-panel { min-width:0; margin:0; padding:0; border:0; }
.report-wizard.is-enhanced .wizard-panel[hidden] { display:none; }
.wizard-panel legend { width:100%; margin:0 0 .35rem; color:var(--ink); font-size:clamp(1.7rem,3vw,2.35rem); font-weight:760; line-height:1.15; }
.wizard-panel legend span { display:block; margin-bottom:.45rem; color:var(--blue); font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.panel-intro { margin:0 0 2rem; color:var(--muted); }
.form-grid { display:grid; gap:1rem; }
.form-grid.two-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-field { margin-bottom:1.25rem; }
.form-label { margin-bottom:.4rem; color:var(--ink); font-weight:690; }
.field-hint { margin:-.15rem 0 .45rem; color:var(--muted); font-size:.86rem; }
.field-error { margin:.35rem 0 0; color:var(--red); font-size:.84rem; font-weight:700; }
.form-control,.form-select { min-height:52px; border:1px solid var(--border-strong); border-radius:.65rem; background:var(--surface); color:var(--ink); box-shadow:none; }
.form-control:focus,.form-select:focus { border-color:var(--blue); box-shadow:0 0 0 .22rem rgba(20,91,121,.13); }
textarea.form-control { min-height:145px; }
.private-badge { display:inline-flex; align-items:center; margin-left:.4rem; padding:.12rem .42rem; border-radius:99px; color:#7d3430; background:#fae9e7; font-size:.64rem; font-weight:850; letter-spacing:.06em; vertical-align:middle; }
.choice-field { display:flex; align-items:flex-start; gap:.65rem; margin:.25rem 0 .8rem; padding:.85rem 1rem; border:1px solid var(--border); border-radius:.7rem; background:var(--surface); }
.choice-field .form-check-input { flex:0 0 auto; width:1.15rem; height:1.15rem; margin:.18rem 0 0; border-color:var(--border-strong); }
.choice-field .form-check-input:checked { border-color:var(--teal); background-color:var(--teal); }
.choice-field .form-check-label { font-weight:620; }
.need-selector { margin:1.4rem 0; padding:1.25rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--mist); }
.need-selector>p { margin:0 0 .8rem; font-weight:750; }
.choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.choice-grid .choice-field { height:100%; margin:0; }
.location-assistant { display:grid; grid-template-columns:1fr auto; gap:.6rem 1rem; align-items:center; margin:1rem 0 1.4rem; padding:1.25rem; border:1px solid rgba(20,91,121,.25); border-radius:var(--radius); background:var(--blue-soft); }
.location-assistant p { margin:.2rem 0 0; color:var(--muted); font-size:.9rem; }
.location-status { grid-column:1/-1; padding-top:.65rem; border-top:1px solid rgba(20,91,121,.16); }
.location-status[data-state="success"] { color:#12695f; font-weight:700; }
.location-status[data-state="error"] { color:#8b3b34; }
.optional-panel { margin:1rem 0 1.5rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface-3); }
.optional-panel summary { cursor:pointer; padding:1rem 1.15rem; color:var(--blue); font-weight:720; }
.optional-panel[open] summary { border-bottom:1px solid var(--border); }
.optional-panel-body { padding:1.15rem 1.15rem .1rem; }
.contact-panel { margin:1.6rem 0 1.2rem; padding:1.35rem; border-radius:var(--radius); background:var(--paper); }
.contact-panel-heading h2 { margin:.1rem 0; font-size:1.25rem; }
.contact-panel-heading>p:last-child { color:var(--muted); font-size:.9rem; }
.submission-note { display:flex; gap:.6rem; margin:1.2rem 0; padding:1rem; border-left:4px solid var(--yellow); background:var(--surface-2); }
.submission-note span { color:var(--ink-soft); }
.wizard-actions { display:flex; justify-content:space-between; gap:.75rem; margin-top:2rem; padding-top:1.35rem; border-top:1px solid var(--border); }
.wizard-actions-end { justify-content:flex-end; }
.wizard-actions .btn { min-width:180px; }

/* Operational map */
.map-page { padding:clamp(2.8rem,6vw,5rem) 0; background:linear-gradient(var(--surface-2),var(--bg) 36%); }
.map-heading { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr); gap:2rem; align-items:end; margin-bottom:1.8rem; }
.map-heading h1 { max-width:18ch; margin:.25rem 0 .75rem; font-size:clamp(2.3rem,5vw,4.5rem); line-height:1.02; }
.map-heading>div>p:last-child { max-width:65ch; color:var(--muted); }
.map-privacy-note { display:flex; gap:.9rem; padding:1.1rem; border:1px solid rgba(22,133,121,.24); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow-sm); }
.map-privacy-note>span { flex:0 0 12px; width:12px; height:12px; margin-top:.35rem; border-radius:50%; background:var(--teal); box-shadow:0 0 0 6px rgba(22,133,121,.12); }
.map-privacy-note p { margin:0; color:var(--muted); font-size:.88rem; }
.map-privacy-note strong { display:block; color:var(--ink); }
.map-metrics { display:grid; grid-template-columns:repeat(4,1fr); margin-bottom:1.25rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow-sm); }
.map-metrics>div { padding:1rem 1.2rem; }
.map-metrics>div+div { border-left:1px solid var(--border); }
.map-metrics span,.map-metrics strong { display:block; }
.map-metrics span { color:var(--muted); font-size:.76rem; font-weight:720; letter-spacing:.04em; text-transform:uppercase; }
.map-metrics strong { margin-top:.15rem; font-size:1.25rem; }
.map-workspace { border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--surface); box-shadow:var(--shadow); overflow:hidden; }
.map-toolbar { display:flex; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid var(--border); background:var(--surface-3); }
.map-control-group { display:flex; align-items:center; gap:.8rem; }
.map-control-label { color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.map-filter-buttons { display:flex; flex-wrap:wrap; gap:.35rem; }
.map-chip,.map-segmented button { border:1px solid var(--border-strong); background:var(--surface); color:var(--ink-soft); font-size:.82rem; font-weight:700; }
.map-chip { padding:.42rem .7rem; border-radius:99px; }
.map-chip.is-active { border-color:var(--blue); background:var(--blue); color:#fff; }
.map-segmented { display:flex; padding:.18rem; border:1px solid var(--border); border-radius:.65rem; background:var(--paper); }
.map-segmented button { padding:.38rem .65rem; border:0; border-radius:.45rem; background:transparent; }
.map-segmented button.is-active { background:var(--surface); color:var(--blue); box-shadow:0 2px 8px rgba(20,50,60,.1); }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,360px); min-height:620px; }
.map-canvas-panel { position:relative; min-width:0; border-right:1px solid var(--border); }
.map-canvas-panel .leaflet-tile-pane { filter:none; }
.map-legend { position:absolute; z-index:500; left:1rem; bottom:1rem; display:flex; flex-wrap:wrap; gap:.55rem 1rem; max-width:calc(100% - 2rem); padding:.65rem .8rem; border:1px solid rgba(174,191,192,.75); border-radius:.7rem; background:var(--glass); box-shadow:var(--shadow-sm); font-size:.75rem; font-weight:700; }
.map-legend span { display:flex; align-items:center; gap:.35rem; }
.legend-dot { width:9px; height:9px; border-radius:50%; }
.legend-dot.need { background:#d95c4f; }.legend-dot.resource { background:#168579; }.legend-dot.affected { background:#d59726; }.legend-dot.missing { background:#5e6ad2; }
.map-results { display:flex; flex-direction:column; min-height:0; background:var(--surface); }
.map-results-heading { display:flex; justify-content:space-between; align-items:start; gap:.75rem; padding:1.2rem 1.1rem .8rem; border-bottom:1px solid var(--border); }
.map-results-heading h2 { margin:0; font-size:1.15rem; }
.map-results-heading>a { font-size:.8rem; white-space:nowrap; }
.map-status { margin:0; padding:.7rem 1.1rem; color:var(--muted); background:var(--paper); font-size:.8rem; }
.map-result-list { overflow:auto; max-height:560px; }
.map-result-card { padding:1rem 1.1rem; border-bottom:1px solid var(--border); }
.map-result-card:hover { background:#f8fbfa; }
.map-result-type,.map-popup-type { display:inline-flex; align-items:center; padding:.15rem .45rem; border-radius:99px; font-size:.64rem; font-weight:830; letter-spacing:.05em; text-transform:uppercase; }
.map-result-type.need,.map-popup-type.need { color:#8f332c; background:#fae5e2; }.map-result-type.resource,.map-popup-type.resource { color:#0b665c; background:#dff2ee; }.map-result-type.affected,.map-popup-type.affected { color:#815715; background:#fff0d0; }.map-result-type.missing,.map-popup-type.missing { color:#414ba4; background:#e7e9fb; }
.map-result-card h3 { margin:.45rem 0 .2rem; font-size:1rem; line-height:1.3; letter-spacing:-.015em; }
.map-result-card p { margin:0; color:var(--muted); font-size:.82rem; }
.map-empty-state { margin:1rem; padding:1.5rem; border:1px dashed var(--border-strong); border-radius:.7rem; color:var(--muted); text-align:center; }
.map-method-note { display:flex; gap:1rem; padding:1rem 1.2rem; border-top:1px solid var(--border); background:var(--surface-3); font-size:.82rem; }
.map-method-note strong { white-space:nowrap; }
.map-method-note p { margin:0; color:var(--muted); }
.map-popup { display:grid; gap:.45rem; padding:.15rem; }
.map-popup>strong { color:var(--ink); font-size:1rem; }
.map-popup p,.density-popup p { margin:0; color:var(--muted); }
.operational-marker { filter:drop-shadow(0 3px 4px rgba(10,30,40,.28)); }
.density-marker { filter:drop-shadow(0 4px 10px rgba(130,75,20,.18)); }

/* Public situation dashboard */
.bandwidth-toggle { border:1px solid var(--border-strong); color:var(--ink-soft); background:var(--surface); font-weight:700; }
.bandwidth-toggle:hover,.bandwidth-toggle:focus-visible { border-color:var(--blue); color:var(--blue); }
.situation-hero { position:relative; overflow:hidden; padding:clamp(4rem,8vw,7rem) 0; border-bottom:1px solid var(--border); background:linear-gradient(135deg,var(--surface-2) 0,var(--surface) 60%,var(--bg) 100%); }
.situation-hero::after { content:""; position:absolute; right:-13rem; top:-18rem; width:38rem; height:38rem; border:1px solid rgba(20,91,121,.12); border-radius:50%; box-shadow:0 0 0 6rem rgba(22,133,121,.025),0 0 0 12rem rgba(20,91,121,.018); pointer-events:none; }
.situation-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr); gap:clamp(2.5rem,7vw,6rem); align-items:end; }
.situation-intro h1 { max-width:15ch; margin:.4rem 0 1.4rem; font-size:clamp(2.7rem,6.3vw,5.4rem); line-height:.98; letter-spacing:-.06em; }
.situation-intro .lead { max-width:65ch; color:var(--ink-soft); font-size:clamp(1.05rem,1.8vw,1.25rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.8rem; }
.hero-disclaimer { max-width:68ch; margin:1.35rem 0 0; color:var(--muted); font-size:.84rem; }
.situation-brief { border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem; background:var(--glass); box-shadow:var(--shadow); }
.brief-heading { display:flex; justify-content:space-between; gap:1rem; align-items:start; padding-bottom:1.1rem; border-bottom:1px solid var(--border); }
.brief-heading h2 { margin:0; font-size:1.35rem; }
.system-status { display:inline-flex; align-items:center; gap:.45rem; padding:.32rem .6rem; border-radius:99px; color:#0b665c; background:#e2f3ef; font-size:.7rem; font-weight:800; white-space:nowrap; }
.system-status i { width:.48rem; height:.48rem; border-radius:50%; background:var(--teal); box-shadow:0 0 0 4px rgba(22,133,121,.12); }
.brief-metrics { display:grid; grid-template-columns:1fr 1fr; margin:0; }
.brief-metrics div { padding:1rem 0; border-bottom:1px solid var(--border); }
.brief-metrics div:nth-child(odd) { padding-right:1rem; border-right:1px solid var(--border); }
.brief-metrics div:nth-child(even) { padding-left:1rem; }
.brief-metrics dt { color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.brief-metrics dd { margin:.25rem 0 0; font-size:1.55rem; font-weight:800; letter-spacing:-.04em; }
.brief-metrics div:last-child dd { font-size:.95rem; letter-spacing:-.02em; }
.brief-note { margin:1rem 0 0; color:var(--muted); font-size:.78rem; }
.public-dashboard,.action-section { padding-top:clamp(3.5rem,7vw,6rem); padding-bottom:clamp(3.5rem,7vw,6rem); }
.dashboard-heading { display:flex; justify-content:space-between; gap:3rem; align-items:end; margin-bottom:2rem; }
.dashboard-heading h2 { max-width:18ch; margin:0; font-size:clamp(2rem,4vw,3.5rem); }
.dashboard-heading>p { max-width:55ch; margin:0; color:var(--muted); }
.signal-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.signal-card { display:grid; grid-template-columns:auto 1fr; gap:1rem; min-height:250px; padding:1.35rem; border:1px solid var(--border); border-radius:var(--radius); color:var(--ink); background:var(--surface); text-decoration:none; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.signal-card:hover,.signal-card:focus-visible { transform:translateY(-3px); border-color:var(--blue); box-shadow:var(--shadow); }
.signal-code { display:grid; place-items:center; width:2rem; height:2rem; border-radius:.55rem; color:var(--blue); background:var(--blue-soft); font-size:.75rem; font-weight:850; }
.signal-card strong { display:block; font-size:2.2rem; line-height:1; letter-spacing:-.05em; }
.signal-card h3 { margin:2.9rem 0 .45rem; font-size:1.2rem; }
.signal-card p { margin:0; color:var(--muted); font-size:.88rem; }
.signal-needs .signal-code { color:#8f332c; background:#fae5e2; }
.signal-resources .signal-code { color:#0b665c; background:#dff2ee; }
.signal-areas .signal-code { color:#815715; background:#fff0d0; }
.signal-people .signal-code { color:#414ba4; background:#e7e9fb; }
.public-workspace { padding:clamp(3.5rem,7vw,6rem) 0; color:#fff; background:var(--band); }
.public-workspace-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr); gap:clamp(2rem,7vw,6rem); align-items:start; }
.public-workspace .eyebrow { color:#8dd3cb; }
.compact-heading { margin-bottom:1.5rem; }
.compact-heading h2 { margin:0; font-size:clamp(1.9rem,3vw,3rem); }
.home-update-list { display:grid; gap:.65rem; }
.home-update-card { padding:1.25rem; border:1px solid #49606d; border-radius:var(--radius-sm); background:#18313f; }
.home-update-meta { display:flex; justify-content:space-between; gap:1rem; color:#adc1ca; font-size:.68rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.home-update-card h3 { margin:.55rem 0 .35rem; font-size:1.18rem; }
.home-update-card h3 a { color:#fff; }
.home-update-card p { margin:0; color:#d2dde1; font-size:.88rem; }
.home-update-location { display:block; margin-top:.65rem; color:#8dd3cb; font-size:.78rem; }
.operational-empty-state { padding:2rem; border:1px dashed #607783; border-radius:var(--radius); background:#18313f; }
.operational-empty-state h3 { max-width:25ch; margin:.35rem 0 .7rem; font-size:1.7rem; }
.operational-empty-state>p:last-child { max-width:58ch; margin:0; color:#c8d5da; }
.text-link { display:inline-block; margin-top:1.2rem; color:#a7e0d9; font-weight:700; }
.source-readiness { padding:1.5rem; border:1px solid #526974; border-radius:var(--radius-lg); background:#0f222d; }
.source-readiness h2 { margin:.25rem 0 1.5rem; font-size:1.75rem; }
.source-status-row { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 0; border-top:1px solid #405763; font-size:.82rem; }
.source-status-row strong { color:#9ddbd4; text-align:right; }
.source-readiness>p:last-of-type { margin:1.2rem 0; color:#bdccd2; font-size:.82rem; }
.source-readiness>a { color:#a7e0d9; }
.action-section { border-bottom:1px solid var(--border); }
.compact-actions .action-card { min-height:210px; }
.compact-actions .action-card h3 { margin-top:2rem; }

/* Low-bandwidth preference: keep content, remove decorative and tile-heavy layers. */
html[data-bandwidth="low"] { scroll-behavior:auto; }
html[data-bandwidth="low"] *,html[data-bandwidth="low"] *::before,html[data-bandwidth="low"] *::after { animation:none!important; transition:none!important; }
html[data-bandwidth="low"] .site-nav { backdrop-filter:none; }
html[data-bandwidth="low"] .situation-hero,html[data-bandwidth="low"] .hero,html[data-bandwidth="low"] .report-intake,html[data-bandwidth="low"] .map-page { background:var(--surface); }
html[data-bandwidth="low"] .situation-hero::after,html[data-bandwidth="low"] .hero::after { display:none; }
html[data-bandwidth="low"] .situation-brief,html[data-bandwidth="low"] .signal-card,html[data-bandwidth="low"] .map-workspace,html[data-bandwidth="low"] .intake-card { box-shadow:none; }
html[data-bandwidth="low"] .bandwidth-toggle { border-color:var(--blue); color:var(--blue); background:var(--blue-soft); }
html[data-bandwidth="low"] #report-map { height:auto; min-height:220px; }
html[data-bandwidth="low"] .low-bandwidth-map-notice { min-height:220px; }
html[data-bandwidth="low"] .map-layout { min-height:0; }
html[data-bandwidth="low"] .map-view-control,html[data-bandwidth="low"] .map-legend,html[data-bandwidth="low"] .map-method-note { display:none; }
.low-bandwidth-map-notice { display:grid; place-items:center; min-height:560px; padding:2rem; color:var(--ink-soft); background:var(--paper); text-align:center; }
.low-bandwidth-map-notice strong { display:block; margin-bottom:.35rem; color:var(--ink); font-size:1.2rem; }

.site-footer { margin-top:0; border-top:1px solid var(--border); background:var(--paper); padding:2.5rem 0; font-size:.9rem; }
.site-footer-grid { display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:start; }
.site-footer p { max-width:68ch; margin:.35rem 0 0; color:var(--muted); }
.footer-links { display:flex; flex-direction:column; align-items:flex-end; gap:.35rem; }
@media (max-width: 1100px) {
  .report-intake-grid{grid-template-columns:minmax(230px,.5fr) minmax(0,1.5fr);gap:2rem}
  .map-layout{grid-template-columns:minmax(0,1fr) 310px}
  .map-toolbar{align-items:flex-start;flex-direction:column}
}
@media (max-width: 992px) {
  .situation-hero-grid,.public-workspace-grid{grid-template-columns:1fr}
  .signal-grid{grid-template-columns:repeat(2,1fr)}
  .dashboard-heading{align-items:start;flex-direction:column;gap:1rem}
  .dashboard-heading h2{max-width:none}
  .action-grid{grid-template-columns:repeat(2,1fr)}
  .filter-panel{grid-template-columns:1fr 1fr}
  .admin-grid{grid-template-columns:1fr}.review-form{position:static}
  .report-intake-grid{grid-template-columns:1fr}
  .intake-context{position:static;display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem}
  .intake-context>.back-link,.intake-context>.eyebrow,.intake-context>h1,.intake-context>.intake-lead{grid-column:1/-1}
  .intake-context h1{max-width:none}
  .intake-context .draft-tools{margin:2rem 0 1.2rem}
  .map-heading{grid-template-columns:1fr}
  .map-layout{grid-template-columns:1fr}
  .map-canvas-panel{border-right:0;border-bottom:1px solid var(--border)}
  .map-result-list{max-height:360px}
  .map-metrics{grid-template-columns:repeat(2,1fr)}
  .map-metrics>div:nth-child(3){border-left:0;border-top:1px solid var(--border)}
  .map-metrics>div:nth-child(4){border-top:1px solid var(--border)}
}
@media (max-width: 720px) {
  .situation-hero{padding:3rem 0}
  .situation-intro h1{font-size:clamp(2.5rem,13vw,3.8rem)}
  .situation-brief{padding:1.1rem;border-radius:var(--radius)}
  .brief-heading{align-items:flex-start;flex-direction:column}
  .signal-grid{grid-template-columns:1fr}
  .signal-card{min-height:190px}
  .signal-card h3{margin-top:1.7rem}
  .hero-actions{display:grid}
  .hero-actions .btn{width:100%}
  .hero-grid,.process-list,.action-grid,.detail-grid{grid-template-columns:1fr}
  .hero h1{font-size:clamp(2.5rem,14vw,4rem)}
  .filter-panel{grid-template-columns:1fr}
  .admin-heading{align-items:flex-start;flex-direction:column}
  .action-card{min-height:210px}
  .navbar-nav{padding-top:1rem}.nav-report-button{display:inline-flex;margin:.4rem 0 .8rem}
  .btn-lg{font-size:1rem}.official-warning{text-align:left}.table-responsive{font-size:.86rem}
  .brand-name{font-size:1rem}
  .report-intake{padding:2rem 0;background:#f4f7f6}
  .report-intake-grid{gap:1rem}
  .intake-context{display:block}
  .intake-context h1{font-size:2.45rem}
  .privacy-seal{margin:1.3rem 0}
  .intake-context .draft-tools{margin:1rem 0}
  .intake-card{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
  .wizard-progress{padding:1rem}
  .wizard-progress li{justify-content:center}
  .wizard-progress li strong{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .wizard-progress li:not(:last-child)::after{right:-.5rem;width:1rem}
  .report-wizard{padding:1.25rem}
  .form-grid.two-columns,.choice-grid{grid-template-columns:1fr}
  .location-assistant{grid-template-columns:1fr}
  .location-assistant .btn{width:100%}
  .wizard-actions{display:grid;grid-template-columns:1fr}
  .wizard-actions .btn{width:100%;min-width:0}
  .wizard-actions .btn-primary{order:-1}
  .submission-note{display:block}
  .submission-note strong{display:block;margin-bottom:.2rem}
  .map-page{padding:2.2rem 0}
  .map-heading h1{font-size:2.65rem}
  .map-metrics{grid-template-columns:1fr 1fr}
  .map-metrics>div{padding:.85rem}
  .map-metrics span{font-size:.64rem}
  .map-metrics strong{font-size:1.05rem}
  .map-toolbar{padding:.9rem}
  .map-control-group{align-items:flex-start;flex-direction:column;width:100%}
  .map-filter-buttons{width:100%}
  .map-chip{flex:1 1 calc(50% - .35rem);text-align:center}
  .map-view-control,.map-segmented{width:100%}
  .map-segmented button{flex:1}
  #report-map{min-height:480px;height:60vh}
  .map-legend{position:static;max-width:none;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none}
  .map-method-note{display:block}
  .map-method-note strong{display:block;margin-bottom:.25rem}
  .site-footer-grid{grid-template-columns:1fr}
  .footer-links{align-items:flex-start}
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after{scroll-behavior:auto!important;transition:none!important} }

/* === Mapa vivo: capas, leyenda, acentos de bandera y modo oscuro/sol === */
.map-workspace { position:relative; }
.map-workspace::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:3; background:linear-gradient(90deg,#ffce00 0 33.33%,#00309a 33.33% 66.66%,#cf1422 66.66%); }
.map-legend .legend-dot.quake { background:#ff5a36; }
.map-legend .legend-dot.hospital { background:#e2473d; }
.map-legend .legend-dot.shelter { background:#f3c534; }
.map-legend .legend-dot.fire { background:#ef7d2e; }
.map-legend .legend-dot.water { background:#2a8fd6; }
.map-popup-type.quake { color:#9a3618; background:#ffe2d4; }
.map-popup-type.service { color:#0b5c66; background:#d7eff0; }
.map-popup-source { font-size:.72rem!important; font-weight:700; opacity:.75; }
.quake-marker { filter:drop-shadow(0 0 5px rgba(255,90,54,.5)); }
.service-marker { filter:drop-shadow(0 2px 3px rgba(10,30,40,.4)); }
.theme-toggle { display:inline-flex; align-items:center; gap:.45rem; border:1px solid var(--border-strong); color:var(--ink-soft); background:var(--surface); font-weight:700; }
.theme-toggle:hover,.theme-toggle:focus-visible { border-color:var(--brand); color:var(--brand); }
.theme-toggle-dot { width:.72rem; height:.72rem; border-radius:50%; background:radial-gradient(circle at 34% 34%,var(--ve-yellow),#b9831a); box-shadow:0 0 8px rgba(255,206,31,.45); }
html[data-theme="light"] .theme-toggle-dot { background:radial-gradient(circle at 64% 40%,#1d2c38 0 52%,transparent 53%),#5b6b76; box-shadow:none; }

/* Controles del mapa como vidrio esmerilado (glassmorphism) sobre la base CARTO. */
.map-toolbar { background:var(--glass); -webkit-backdrop-filter:blur(18px) saturate(1.4); backdrop-filter:blur(18px) saturate(1.4); }
.map-legend { background:var(--glass)!important; -webkit-backdrop-filter:blur(16px) saturate(1.4); backdrop-filter:blur(16px) saturate(1.4); border-color:var(--border)!important; color:var(--text)!important; }
.map-chip,.map-segmented button { background:var(--surface-2); border-color:var(--border-strong); color:var(--text-soft); }
.map-chip.is-active { background:var(--brand); border-color:var(--brand); color:#04222e; }
.map-layer-chip.is-active { background:var(--brand-tint); border-color:var(--brand); color:var(--brand-strong); }
.map-segmented { background:var(--surface-3); border-color:var(--border); }
.map-segmented button.is-active { background:var(--surface); color:var(--brand-strong); }
#report-map { background:var(--bg); }
/* Popups y controles de Leaflet heredan el tema (oscuro por defecto / sol). */
.leaflet-popup-content-wrapper,.leaflet-popup-tip { background:var(--surface); color:var(--text); box-shadow:var(--shadow); }
.leaflet-popup-content-wrapper { border:1px solid var(--border); border-radius:.85rem; }
.leaflet-container a.leaflet-popup-close-button { color:var(--muted); }
.leaflet-bar a,.leaflet-bar a:hover { background:var(--surface); color:var(--text); border-color:var(--border); }
.leaflet-bar a:hover { background:var(--surface-2); }
.leaflet-control-attribution { background:var(--glass)!important; color:var(--muted)!important; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.leaflet-control-attribution a { color:var(--brand); }

/* === Incidentes de prioridad: marcadores con ícono, severidad y clusters === */
.rav-pin { background:transparent; border:0; }
.rav-pin span { display:block; width:14px; height:14px; border-radius:50%; background:var(--c); border:2px solid rgba(255,255,255,.92); box-shadow:0 0 0 1px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.55); }
.rav-pin.incident span { width:18px; height:18px; box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 14px var(--c); }
.rav-pin.critical span { animation:rav-pulse 1.9s ease-out infinite; }
@keyframes rav-pulse { 0%{box-shadow:0 0 0 0 rgba(229,68,58,.55)} 70%{box-shadow:0 0 0 15px rgba(229,68,58,0)} 100%{box-shadow:0 0 0 0 rgba(229,68,58,0)} }
.map-legend .legend-dot.crit { background:#e5443a; box-shadow:0 0 8px rgba(229,68,58,.7); }
.map-legend .legend-dot.high { background:#ef7d2e; }
.map-popup-type.sev-critical { color:#fff; background:#e5443a; }
.map-popup-type.sev-high { color:#3a2000; background:#ef7d2e; }
.map-popup-type.sev-medium { color:#3f3200; background:#f3c534; }
.map-popup-type.sev-low { color:#08361c; background:#46b06a; }
.map-result-card.incident { border-left:3px solid var(--border-strong); }
.map-result-type.sev-critical { color:#fff; background:#e5443a; }
.map-result-type.sev-high { color:#3a2000; background:#ef7d2e; }
.map-result-type.sev-medium { color:#3f3200; background:#f3c534; }
.map-result-type.sev-low { color:#08361c; background:#46b06a; }

/* === Barra de cifras de situación (titulares de magnitud) === */
.situation-bar { margin-bottom:1.25rem; }
.situation-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; }
.situation-cell { padding:1.1rem 1.25rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--glass); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:var(--shadow-sm); }
.situation-cell strong { display:block; font-size:clamp(1.7rem,3.2vw,2.5rem); font-weight:850; letter-spacing:-.04em; line-height:1; color:var(--text); font-variant-numeric:tabular-nums; }
.situation-label { display:block; margin-top:.4rem; font-size:.82rem; font-weight:750; color:var(--text-soft); }
.situation-source { display:block; margin-top:.25rem; font-size:.68rem; color:var(--muted); }
.situation-cell.metric-missing strong { color:#ffce1f; }
.situation-cell.metric-dead strong { color:#ef6a60; }
.situation-cell.metric-injured strong { color:#ff9f43; }
.situation-cell.metric-rescued strong { color:#46c08a; }
.situation-disclaimer { margin:.7rem 0 0; font-size:.78rem; color:var(--muted); }
.situation-loading { margin:0; padding:1rem; color:var(--muted); }
.situation-source { color:var(--muted); text-decoration:none; }
a.situation-source:hover,a.situation-source:focus { color:var(--brand); text-decoration:underline; }
.situation-status { display:block; margin-top:.3rem; font-size:.62rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--ve-yellow); }

/* === Directorio (ruta dedicada) === */
.directory-page { padding:clamp(2.5rem,6vw,4.5rem) 0; background:linear-gradient(var(--surface-2),var(--bg) 30%); min-height:80vh; }
.dir-header { max-width:760px; margin-bottom:1.6rem; }
.dir-header h1 { margin:.3rem 0 .6rem; font-size:clamp(2.2rem,5vw,3.6rem); }
.dir-header .lead { color:var(--text-soft); font-size:1.08rem; }
.dir-figures { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:.7rem; margin:1.2rem 0 .4rem; }
.dir-figure { padding:.9rem 1rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); }
.dir-figure strong { display:block; font-size:1.7rem; font-weight:850; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.dir-figure span { font-size:.78rem; color:var(--text-soft); font-weight:700; }
.dir-figure.metric-missing strong { color:var(--ve-yellow); }
.dir-figure.metric-dead strong { color:#ef6a60; }
.dir-figure.metric-injured strong { color:#ff9f43; }
.dir-section { margin-top:2.6rem; padding-top:2rem; border-top:1px solid var(--border); }
.dir-section>h2 { font-size:clamp(1.5rem,3vw,2.1rem); margin:0 0 1rem; display:flex; align-items:center; gap:.6rem; }
.dir-count { font-size:.8rem; font-weight:800; color:#04222e; background:var(--brand); border-radius:99px; padding:.1rem .55rem; }
.dir-section-head { display:flex; justify-content:space-between; align-items:end; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.dir-section-head h2 { margin:.2rem 0 0; font-size:clamp(1.5rem,3vw,2.1rem); }
.dir-search { display:flex; gap:.6rem; margin-bottom:1.4rem; }
.dir-search input { flex:1; min-height:52px; padding:0 1rem; border:1px solid var(--border-strong); border-radius:.7rem; background:var(--surface); color:var(--text); font-size:1rem; }
.dir-search input:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 .2rem var(--brand-tint); }
.dir-person-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:1rem; }
.dir-person-card { padding:1.2rem; border:1px solid var(--border); border-left:4px solid var(--ve-yellow); border-radius:var(--radius); background:var(--surface); }
.dir-person-card h3 { margin:0 0 .35rem; font-size:1.2rem; }
.dir-person-published { border-left-color:var(--brand); }
.dir-person-deceased { border-left-color:#ef6a60; }
.dir-person-source { margin-bottom:.55rem; color:var(--muted); font-size:.65rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.dir-person-meta { margin:0 0 .5rem; color:var(--brand-strong); font-weight:700; font-size:.9rem; }
.dir-person-loc { margin:.2rem 0; color:var(--text-soft); font-size:.9rem; }
.dir-person-loc span { display:inline-block; min-width:7.5rem; color:var(--muted); font-size:.72rem; text-transform:uppercase; font-weight:800; letter-spacing:.04em; }
.dir-person-summary { margin:.5rem 0 0; color:var(--muted); font-size:.88rem; }
.dir-record-provenance { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem 1rem; margin-top:.85rem; padding-top:.7rem; border-top:1px solid var(--border); color:var(--muted); font-size:.75rem; }
.dir-record-provenance a { color:var(--brand-strong); font-weight:750; }
.dir-count-deceased { color:#fff; background:#a83e38; }
.dir-section-intro { max-width:72ch; margin:-.35rem 0 1.1rem; color:var(--text-soft); }
.dir-registries { margin-top:1.4rem; padding:1.2rem 1.35rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface-2); }
.dir-registries h3 { margin:0 0 .6rem; font-size:1.05rem; }
.dir-registries ul { margin:0; padding-left:1.1rem; }
.dir-registries li { margin:.3rem 0; color:var(--text-soft); }
.dir-note { margin:1rem 0 0; padding:.7rem 1rem; border-left:3px solid var(--ve-blue); color:var(--text-soft); font-size:.86rem; background:var(--surface-2); border-radius:.5rem; }
.dir-chips { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.2rem; }
.dir-chip { display:inline-block; padding:.42rem .8rem; border:1px solid var(--border-strong); border-radius:99px; background:var(--surface); color:var(--text-soft); font-size:.82rem; font-weight:700; text-decoration:none; }
.dir-chip.is-active { background:var(--brand); border-color:var(--brand); color:#04222e; }
.dir-chip.is-static { cursor:default; }
.dir-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:.9rem; }
.dir-item { padding:1.1rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); border-left:4px solid var(--border-strong); }
.dir-item.sev-critical { border-left-color:#e5443a; }
.dir-item.sev-high { border-left-color:#ef7d2e; }
.dir-item.sev-medium { border-left-color:#f3c534; }
.dir-item.sev-low { border-left-color:#46b06a; }
.dir-item-tag { display:inline-block; margin-bottom:.4rem; font-size:.66rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.dir-incident-verification { margin:.7rem 0 .25rem; padding:.35rem .55rem; border-left:3px solid var(--brand); background:var(--surface-2); color:var(--text-soft); font-size:.76rem; font-weight:750; }
.dir-incident-people { margin:.35rem 0; color:#ef8b83; font-size:.78rem; font-weight:750; }
.dir-source-link,.dir-source-date { display:block; margin-top:.45rem; color:var(--brand-strong); font-size:.74rem; }
.dir-source-date { color:var(--muted); }
.dir-item h3 { margin:0 0 .3rem; font-size:1.05rem; }
.dir-item-addr { margin:.15rem 0; color:var(--text-soft); font-size:.88rem; }
.dir-item-note { margin:.35rem 0 0; color:var(--muted); font-size:.84rem; }
.dir-empty { padding:1.4rem; border:1px dashed var(--border-strong); border-radius:var(--radius); color:var(--muted); }

/* === Directorio: barra operations-grade (buscador + pestañas) === */
.dir-toolbar { position:sticky; top:0; z-index:30; display:flex; flex-wrap:wrap; gap:.7rem 1.1rem; justify-content:space-between; align-items:center; margin:1.4rem 0 .3rem; padding:.7rem .9rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--glass); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); box-shadow:var(--shadow-sm); }
.dir-toolbar .dir-search { flex:1 1 340px; margin:0; }
.dir-clear { align-self:center; color:var(--muted); font-size:.85rem; white-space:nowrap; text-decoration:none; }
.dir-clear:hover { color:var(--brand); text-decoration:underline; }
.dir-tabs { display:flex; gap:.35rem; flex-wrap:wrap; }
.dir-tabs a { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .85rem; border-radius:99px; color:var(--text-soft); font-weight:750; font-size:.85rem; text-decoration:none; border:1px solid transparent; }
.dir-tabs a:hover,.dir-tabs a:focus-visible { border-color:var(--border-strong); color:var(--text); }
.dir-tabs a span { background:var(--brand); color:#04222e; border-radius:99px; padding:.05rem .45rem; font-size:.72rem; font-weight:850; }
.dir-searchnote { margin:.7rem 0 0; color:var(--text-soft); font-size:.9rem; }
.dir-section { scroll-margin-top:84px; }
.dir-figure-context { margin:.35rem 0 0; color:var(--text-soft); font-size:.9rem; max-width:60ch; }
.dir-figure-context strong { color:var(--ve-yellow); }
.dir-person-found { border-left:4px solid #46c08a; }
.dir-person-found .dir-person-source { color:#46c08a; }

/* Pines de servicio con icono semántico (badge circular + glifo blanco) */
.svc-pin { background: transparent; border: 0; }
.svc-pin i {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--c); border: 2px solid #fff;
  box-shadow: 0 2px 7px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.25);
}
.svc-pin svg { width: 17px; height: 17px; display: block; }
.map-popup-maps {
  display: inline-block; margin-top: 7px; font-weight: 600;
  color: #2a8fd6; text-decoration: none; font-size: .9rem;
}
.map-popup-maps::before { content: "📍 "; }
.map-popup-maps:hover { text-decoration: underline; }

/* Directorio — navegación agrupada (Personas / Lugares) */
.dir-tabs { gap:.6rem; }
.dir-tabs-group { display:inline-flex; align-items:center; gap:.3rem; flex-wrap:wrap; padding:.22rem .45rem .22rem .6rem; border:1px solid var(--border); border-radius:99px; background:var(--surface); }
.dir-tabs-label { font-size:.64rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-right:.1rem; }

/* Ubicación como enlace a Google Maps */
.dir-loc-link { color:inherit; text-decoration:underline; text-decoration-color:var(--border-strong); text-underline-offset:2px; }
.dir-loc-link:hover { text-decoration-color:var(--brand); }

/* Chips de servicios con icono semántico */
.dir-chips-svc { gap:.5rem; }
.svc-chip { display:inline-flex; align-items:center; gap:.42rem; }
.svc-chip-icon { display:inline-flex; width:18px; height:18px; color:var(--cat); }
.svc-chip-icon svg { width:18px; height:18px; }
.svc-chip.is-active { background:var(--cat); border-color:var(--cat); color:#fff; }
.svc-chip.is-active .svc-chip-icon { color:#fff; }
.svc-chip b { color:var(--muted); font-weight:800; }
.svc-chip.is-active b { color:rgba(255,255,255,.85); }

/* Tarjetas de servicio con icono por categoría */
.dir-service-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:.9rem; }
.dir-service-card { display:flex; gap:.8rem; padding:1rem; border:1px solid var(--border); border-left:4px solid var(--cat); border-radius:var(--radius); background:var(--surface); }
.dir-service-card.is-emergency { background:var(--surface-2); }
.svc-card-icon { display:flex; align-items:flex-start; flex:0 0 auto; }
.svc-card-icon svg { width:26px; height:26px; color:var(--cat); }
.svc-card-body { min-width:0; }
.svc-card-body h3 { margin:0 0 .3rem; font-size:1.02rem; }
.dir-item-phone { margin:.15rem 0; font-size:.88rem; }
.dir-item-phone a { color:var(--text-soft); text-decoration:none; }
.dir-maps-link { display:inline-block; margin-top:.5rem; font-size:.85rem; font-weight:700; color:var(--brand); text-decoration:none; }
.dir-maps-link::before { content:"📍 "; }
.dir-maps-link:hover { text-decoration:underline; }
.dir-more-note { margin-top:.8rem; color:var(--muted); font-size:.85rem; }

/* Directorio — resumen en tarjetas (legible, cómodo, no genérico) */
.dir-overview { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.4rem; margin:1.3rem 0 1.9rem; }
.dir-ov-title { margin:0 0 .7rem; font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.dir-ov-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; }
.dir-ov-card { display:flex; flex-direction:column; gap:.2rem; padding:1.05rem .9rem; border:1px solid var(--border); border-top:3px solid var(--ov,#9aa6ad); border-radius:var(--radius); background:var(--surface); text-decoration:none; transition:transform .12s ease, border-color .12s ease; }
.dir-ov-card:hover { transform:translateY(-2px); border-color:var(--border-strong); }
.dir-ov-card b { font-size:1.95rem; font-weight:850; line-height:1.05; color:var(--text); letter-spacing:-.02em; }
.dir-ov-card span { font-size:.85rem; font-weight:650; color:var(--text-soft); }
.ov-missing { --ov:#e0a02a; } .ov-found { --ov:#46c08a; } .ov-deceased { --ov:#c2554d; }
.ov-services { --ov:#2a8fd6; } .ov-incidents { --ov:#ef7d2e; } .ov-comms { --ov:#8a7de0; }
@media (max-width:560px){ .dir-ov-card { padding:.7rem .55rem; } .dir-ov-card b { font-size:1.45rem; } .dir-ov-card span { font-size:.74rem; } .dir-ov-grid { gap:.45rem; } }

/* Mapa — zonas de peligro (CRÍTICO: colapsos / atrapados / incendio a evitar) */
.danger-pin { background:transparent; border:0; filter:drop-shadow(0 2px 3px rgba(0,0,0,.6)); }
.danger-pin svg { width:34px; height:34px; display:block; }
.danger-pin.sev-critical svg { animation:dangerPulse 1.6s ease-in-out infinite; transform-origin:center 80%; }
@keyframes dangerPulse { 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.13); } }
.map-chip.danger-chip { border-color:#e5253a; color:#ff6b61; font-weight:800; }
.map-chip.danger-chip.is-active { background:#e5253a; border-color:#e5253a; color:#fff; }
.map-popup-danger { margin:.2rem 0 .4rem; font-weight:800; color:#e5253a; }
.map-popup-assessment { margin:.2rem 0 .4rem; font-weight:800; color:#e0a02a; }
.map-popup-verification { margin:.45rem 0 .2rem; padding:.35rem .5rem; border-left:3px solid var(--brand); color:var(--text-soft); background:var(--surface-2); font-size:.78rem; font-weight:750; }
.map-popup-people { color:#ef6a60; font-weight:800; }
.map-popup-source-link { display:block; margin-top:.55rem; color:var(--brand-strong); font-size:.78rem; font-weight:750; }
.map-result-verification { color:var(--brand-strong); font-size:.76rem; font-weight:750; }
.map-result-source { color:var(--muted); font-size:.72rem; }
.map-unlocated-note { margin:.6rem 0; padding:.7rem .8rem; border:1px solid var(--border); border-radius:.65rem; background:var(--surface-2); color:var(--text-soft); font-size:.78rem; line-height:1.45; }
.map-unlocated-note a { color:var(--brand-strong); font-weight:750; }
.legend-danger { display:inline-block; width:0; height:0; border-left:7px solid transparent; border-right:7px solid transparent; border-bottom:12px solid #e5253a; margin-right:.4rem; vertical-align:middle; }
.legend-assessment { display:inline-block; width:10px; height:10px; margin-right:.4rem; border:2px solid #e0a02a; background:#ef7d2e; transform:rotate(45deg); vertical-align:middle; }
.assessment-marker { filter:drop-shadow(0 2px 4px rgba(0,0,0,.45)); }

/* Mapa — GPS del usuario y radio de búsqueda */
.user-pin { background:transparent; border:0; }
.user-pin span { display:block; width:18px; height:18px; border-radius:50%; background:#2a8fd6; border:3px solid #fff; box-shadow:0 0 0 4px rgba(42,143,214,.35); animation:userPulse 1.9s ease-out infinite; }
@keyframes userPulse { 0%{ box-shadow:0 0 0 0 rgba(42,143,214,.5);} 100%{ box-shadow:0 0 0 16px rgba(42,143,214,0);} }
.map-popup-dist { font-weight:700; color:#2a8fd6; margin:.2rem 0; }
.map-locate-chip.is-active { background:#2a8fd6; border-color:#2a8fd6; color:#fff; }
.map-radius-chip.is-active { background:var(--brand); border-color:var(--brand); color:#04222e; }

/* Directorio — sello de corroboración (verificación cruzada entre fuentes) */
.dir-corroborated { display:inline-block; margin:.1rem 0 .35rem; padding:.12rem .5rem; border-radius:99px; background:rgba(70,192,138,.16); color:#46c08a; font-size:.7rem; font-weight:800; letter-spacing:.02em; }

/* Mapa — toolbar más limpio (dot de color por capa) */
.chip-dot { display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--dot,#9aa6ad); margin-right:.45rem; vertical-align:middle; }
.map-layer-chip { display:inline-flex; align-items:center; }
.map-layer-chip:not(.is-active) { opacity:.6; }

/* Barra lateral: tarjetas clicables (vuelan al punto) + acciones */
.map-result-card.is-clickable { cursor:pointer; transition:background .12s ease, box-shadow .12s ease; }
.map-result-card.is-clickable:hover,
.map-result-card.is-clickable:focus-visible { background:var(--surface-2); outline:none; box-shadow:inset 3px 0 0 #2a8fd6; }
.map-result-actions { display:flex; gap:.5rem; margin-top:.6rem; flex-wrap:wrap; }
.map-result-action { font-size:.78rem; font-weight:700; padding:.32rem .7rem; border-radius:8px; border:1px solid var(--border-strong); background:var(--surface); color:var(--text-soft); text-decoration:none; cursor:pointer; }
.map-result-action.focus { background:#2a8fd6; border-color:#2a8fd6; color:#fff; }
.map-result-action:hover { border-color:#2a8fd6; color:#2a8fd6; }
.map-result-action.focus:hover { color:#fff; }

/* ===== Centro de Operaciones (mapa de comando) ===== */
.mapc{position:relative;width:100%;height:clamp(600px,86vh,1080px);background:#05080b;color:#cfeeec;font-family:'IBM Plex Mono',ui-monospace,monospace;overflow:hidden;isolation:isolate;}
.mapc-canvas{position:absolute;inset:0;z-index:1;background:#05080b;}
.mapc .leaflet-container{background:#05080b;font-family:'IBM Plex Mono',monospace;outline:none;}
.mapc .leaflet-tile-pane{filter:contrast(1.05) brightness(.92) saturate(.85);}
.mapc .leaflet-control-attribution{background:rgba(5,8,11,.55)!important;color:#46606a!important;font-size:9px!important;}
.mapc .leaflet-control-attribution a{color:#6f9a98!important;}
.mapc .leaflet-popup-content-wrapper{background:#0a141a;color:#dff8f6;border:1px solid rgba(45,225,214,.3);border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.6);}
.mapc .leaflet-popup-tip{background:#0a141a;border:1px solid rgba(45,225,214,.3);}
.mapc .leaflet-popup-content{font-family:'IBM Plex Mono',monospace;margin:12px 14px;font-size:12px;}
.mapc .leaflet-popup-content strong{color:#e6faf8;}
.mapc .leaflet-container a.leaflet-popup-close-button{color:#6f9a98;}
.mapc-pop-tag{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--c,#2de1d6);text-transform:uppercase;margin-bottom:3px;}
.mapc-pop-a{display:inline-block;margin-top:7px;margin-right:12px;color:#2de1d6;font-weight:600;text-decoration:none;font-size:11px;}
.mapc-pop-a:hover{text-decoration:underline;}

/* decorative frame */
.mapc-frame{position:absolute;inset:0;pointer-events:none;z-index:400;box-shadow:inset 0 0 180px rgba(0,0,0,.65);}
.mapc-scan{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(45,225,214,.08),transparent);animation:mapcScan 9s linear infinite;}
.mapc-corner{position:absolute;width:18px;height:18px;}
.mapc-corner.tl{top:54px;left:10px;border-left:1px solid rgba(45,225,214,.4);border-top:1px solid rgba(45,225,214,.4);}
.mapc-corner.tr{top:54px;right:10px;border-right:1px solid rgba(45,225,214,.4);border-top:1px solid rgba(45,225,214,.4);}
.mapc-corner.bl{bottom:10px;left:10px;border-left:1px solid rgba(45,225,214,.4);border-bottom:1px solid rgba(45,225,214,.4);}
.mapc-corner.br{bottom:10px;right:10px;border-right:1px solid rgba(45,225,214,.4);border-bottom:1px solid rgba(45,225,214,.4);}
@keyframes mapcScan{0%{transform:translateY(-30vh);}100%{transform:translateY(120vh);}}
@keyframes mapcPulse{0%{transform:scale(.5);opacity:.85;}100%{transform:scale(2.6);opacity:0;}}

/* panels */
.mapc-panel{background:rgba(8,13,17,.82);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border:1px solid rgba(45,225,214,.18);}
.mapc-panel-h{padding:9px 13px;font-family:'Chakra Petch',sans-serif;font-weight:600;font-size:10px;letter-spacing:.22em;color:#7fb6b3;border-bottom:1px solid rgba(45,225,214,.12);}

/* top bar */
.mapc-top{position:absolute;top:0;left:0;right:0;height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;z-index:500;background:linear-gradient(180deg,rgba(5,8,11,.94),rgba(5,8,11,.2));border-bottom:1px solid rgba(45,225,214,.18);pointer-events:none;}
.mapc-top a,.mapc-top button{pointer-events:auto;}
.mapc-top-id{display:flex;align-items:center;gap:10px;min-width:0;}
.mapc-dot{width:9px;height:9px;border-radius:50%;background:#ff3b3b;box-shadow:0 0 9px #ff3b3b;flex:none;}
.mapc-title{font-family:'Chakra Petch',sans-serif;font-weight:700;letter-spacing:.04em;font-size:14px;color:#e6faf8;white-space:nowrap;}
.mapc-subtitle{font-size:10px;color:#5d7780;letter-spacing:.22em;white-space:nowrap;}
.mapc-top-event{display:flex;align-items:center;gap:9px;font-family:'Chakra Petch',sans-serif;white-space:nowrap;}
.mapc-ev-label{font-size:10px;color:#7fb6b3;letter-spacing:.2em;}
.mapc-ev-mag{font-size:16px;font-weight:700;color:#ff8a3b;}
.mapc-ev-epi{font-size:11px;color:#8aa6ab;}
.mapc-top-tel{display:flex;align-items:center;gap:14px;font-size:11px;color:#8aa6ab;white-space:nowrap;}
.mapc-top-tel b{color:#cfeeec;font-weight:600;}
.mapc-coord{color:#2de1d6;min-width:150px;text-align:right;}
.mapc-exit{color:#8aa6ab;text-decoration:none;border:1px solid rgba(45,225,214,.2);padding:3px 8px;border-radius:4px;font-size:10px;letter-spacing:.08em;}
.mapc-exit:hover{color:#e6faf8;border-color:rgba(45,225,214,.5);}

/* left rail */
.mapc-left{position:absolute;top:62px;left:12px;width:196px;z-index:500;}
.mapc-layers{padding:6px;}
.mapc-chip{width:100%;display:flex;align-items:center;gap:10px;padding:8px 9px;background:transparent;border:none;cursor:pointer;text-align:left;border-radius:3px;color:#5d7780;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.02em;transition:background .12s;}
.mapc-chip:hover{background:rgba(45,225,214,.06);}
.mapc-led{flex:none;width:9px;height:9px;border-radius:2px;background:#21333a;}
.mapc-chip.is-on{color:#dff8f6;}
.mapc-chip.is-on .mapc-led{background:var(--led,#2de1d6);box-shadow:0 0 8px var(--led,#2de1d6);}
.mapc-zoombar{margin-top:9px;display:flex;gap:7px;}
.mapc-btn{flex:1;height:34px;background:rgba(8,13,17,.82);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border:1px solid rgba(45,225,214,.18);color:#9fc0c2;font-size:17px;cursor:pointer;border-radius:3px;font-family:'IBM Plex Mono',monospace;}
.mapc-btn:hover{background:rgba(45,225,214,.1);}
.mapc-btn-epi{flex:1.4;font-size:10px;letter-spacing:.1em;}

/* right intel */
.mapc-right{position:absolute;top:62px;right:12px;width:320px;bottom:150px;display:flex;flex-direction:column;z-index:500;}
.mapc-right-h{display:flex;justify-content:space-between;align-items:baseline;}
.mapc-count{font-family:'Chakra Petch',sans-serif;font-weight:700;font-size:18px;color:#2de1d6;}
.mapc-intel{flex:1;overflow-y:auto;padding:7px;}
.mapc-intel-empty{color:#4f6a71;font-size:11px;text-align:center;padding:18px 8px;}
.mapc-card{width:100%;display:flex;align-items:center;gap:10px;padding:9px;margin-bottom:5px;border:1px solid rgba(45,225,214,.1);background:transparent;cursor:pointer;text-align:left;border-radius:4px;transition:background .12s,border-color .12s;}
.mapc-card:hover,.mapc-card.is-sel{background:rgba(45,225,214,.08);border-color:rgba(45,225,214,.4);}
.mapc-card-code{flex:none;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--c);color:var(--c);font-weight:600;font-size:10px;}
.mapc-card-body{flex:1;min-width:0;}
.mapc-card-title{display:block;font-size:12px;color:#dff8f6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mapc-card-meta{display:block;font-size:9.5px;letter-spacing:.05em;}
.mapc-card-dist{flex:none;font-weight:600;font-size:12px;color:#9fc0c2;}
.mapc-right-foot{padding:9px 13px;border-top:1px solid rgba(45,225,214,.12);font-size:9.5px;color:#4f6a71;letter-spacing:.03em;}
.mapc-unlocated{display:block;margin-top:6px;color:#7fb6b3;}
.mapc-unlocated a{color:#2de1d6;}

/* legend */
.mapc-legend{position:absolute;bottom:16px;left:12px;width:208px;padding:11px 13px;z-index:500;}
.mapc-legend .mapc-panel-h{padding:0 0 6px;border:none;}
.mapc-heatbar{height:8px;border-radius:2px;background:linear-gradient(90deg,#14506e,#1f8fb0,#2de1d6,#ffd23f,#ff7a1a,#ff2d2d);}
.mapc-heatscale{display:flex;justify-content:space-between;font-size:8.5px;color:#5d7780;margin-top:3px;letter-spacing:.06em;}
.mapc-legend-types{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;margin-top:10px;}
.mapc-legend-types span{display:flex;align-items:center;gap:6px;font-size:10px;color:#9fc0c2;}
.mapc-legend-types i{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--c);color:var(--c);display:grid;place-items:center;font-size:8px;font-weight:600;font-style:normal;}
.mapc-scale{margin-top:11px;display:flex;align-items:center;gap:7px;border-top:1px solid rgba(45,225,214,.1);padding-top:9px;}
.mapc-scale-bar{height:5px;border:1px solid #9fc0c2;border-top:2px solid #9fc0c2;width:60px;}
.mapc-scale span:last-child{font-size:9px;color:#9fc0c2;}

/* radius console */
.mapc-radius{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);width:min(540px,calc(100vw - 480px));min-width:320px;padding:13px 18px;z-index:500;}
.mapc-radius-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;}
.mapc-radius .mapc-panel-h{padding:0;border:none;}
.mapc-radius-val{font-family:'Chakra Petch',sans-serif;font-weight:700;font-size:22px;color:#2de1d6;line-height:1;}
.mapc-range{width:100%;-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:linear-gradient(90deg,rgba(45,225,214,.5),rgba(45,225,214,.12));outline:none;}
.mapc-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#05080b;border:2px solid #2de1d6;box-shadow:0 0 10px #2de1d6;cursor:pointer;}
.mapc-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#05080b;border:2px solid #2de1d6;box-shadow:0 0 10px #2de1d6;cursor:pointer;}
.mapc-radius-foot{display:flex;justify-content:space-between;margin-top:9px;font-size:10px;color:#5d7780;letter-spacing:.04em;}
.mapc-radius-foot strong{color:#2de1d6;}
.mapc-radius-note{margin:7px 0 0;font-size:9.5px;color:#4f6a71;}

/* markers + epicenter */
.mapc-mk{background:transparent;border:0;}
.mapc-mk span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(6,12,16,.92);border:1.5px solid var(--c);color:var(--c);font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:11px;box-shadow:0 0 9px var(--c);}
.mapc-epi{background:transparent;border:0;}
.mapc-epi div{position:relative;width:42px;height:42px;}
.mapc-epi i{position:absolute;inset:0;border-radius:50%;border:2px solid #2de1d6;animation:mapcPulse 2.4s ease-out infinite;}
.mapc-epi i:last-of-type{animation-delay:1.2s;}
.mapc-epi b{position:absolute;left:50%;top:50%;width:13px;height:13px;transform:translate(-50%,-50%);border-radius:50%;background:#2de1d6;box-shadow:0 0 16px #2de1d6;}
.mapc-epi div::before,.mapc-epi div::after{content:"";position:absolute;background:rgba(45,225,214,.4);}
.mapc-epi div::before{left:50%;top:0;width:1px;height:42px;transform:translateX(-50%);}
.mapc-epi div::after{top:50%;left:0;height:1px;width:42px;transform:translateY(-50%);}

/* scrollbar */
.rk-scroll::-webkit-scrollbar{width:6px;}
.rk-scroll::-webkit-scrollbar-track{background:transparent;}
.rk-scroll::-webkit-scrollbar-thumb{background:rgba(45,225,214,.28);border-radius:3px;}

/* fallback */
.mapc-fallback{position:absolute;inset:0;display:grid;place-items:center;z-index:600;background:#05080b;padding:24px;text-align:center;color:#9fc0c2;}
.mapc-fallback a{color:#2de1d6;}

/* responsive */
@media (max-width:900px){
  .mapc{height:clamp(560px,82vh,900px);}
  .mapc-subtitle,.mapc-ev-epi,.mapc-coord{display:none;}
  .mapc-right{width:240px;bottom:auto;top:62px;max-height:42%;}
  .mapc-radius{width:calc(100vw - 24px);min-width:0;left:12px;transform:none;}
  .mapc-legend{display:none;}
}
@media (max-width:620px){
  .mapc-left{width:150px;}
  .mapc-right{display:none;}
  /* En el móvil la barra superior no cabe en una fila: ocultamos el bloque del sismo y el
     reloj/zoom para que "RED DE AYUDA · VENEZUELA" no se superponga; queda título + Salir. */
  .mapc-top-event{display:none;}
  .mapc-top-tel span{display:none;}
  .mapc-title{font-size:13px;}
}

/* ----- iconos alineados (mapa = capas), GPS y dirección en tarjetas ----- */
.mapc-mk span svg{width:14px;height:14px;display:block;}
.mapc-chip{align-items:center;}
.mapc-chip:not(.is-on){opacity:.5;}
.mapc-chip-ic{flex:none;width:18px;height:18px;display:grid;place-items:center;color:#7fb6b3;}
.mapc-chip-ic svg{width:16px;height:16px;}
.mapc-chip-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mapc-dotled{display:block;width:11px;height:4px;border-radius:2px;background:#2de1d6;box-shadow:0 0 6px rgba(45,225,214,.5);}
.mapc-dotled.ring{width:11px;height:11px;border-radius:50%;background:transparent;border:1.5px solid #2de1d6;}
.mapc-layers{max-height:min(46vh,420px);overflow-y:auto;padding:6px;}
.mapc-card-code svg{width:13px;height:13px;}
.mapc-card-meta{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#8aa6ab;line-height:1.3;font-size:10px;}
.mapc-pop-addr{margin:5px 0 0;color:#9fc0c2;font-size:11px;}
/* GPS = acción prioritaria (encontrar recursos cerca de mí): botón principal y llamativo. */
.mapc-btn-gps{width:100%;margin:0 0 9px;height:42px;display:flex;align-items:center;justify-content:center;gap:.5rem;
  background:linear-gradient(180deg,rgba(45,225,214,.26),rgba(45,225,214,.12));
  border:1px solid rgba(45,225,214,.75);border-radius:6px;color:#aef6ef;cursor:pointer;
  font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.04em;
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  box-shadow:0 0 0 0 rgba(45,225,214,.5),0 4px 14px rgba(0,0,0,.3);
  animation:gpsPulse 2.6s ease-out infinite;transition:background .15s ease,border-color .15s ease;}
.mapc-btn-gps svg{width:16px;height:16px;flex:none;}
.mapc-btn-gps:hover{background:rgba(45,225,214,.32);border-color:#2de1d6;color:#dffbf7;}
.mapc-btn-gps.is-on{animation:none;background:rgba(45,225,214,.16);border-color:#2de1d6;color:#2de1d6;}
@keyframes gpsPulse{0%{box-shadow:0 0 0 0 rgba(45,225,214,.45),0 4px 14px rgba(0,0,0,.3);}
  70%{box-shadow:0 0 0 9px rgba(45,225,214,0),0 4px 14px rgba(0,0,0,.3);}
  100%{box-shadow:0 0 0 0 rgba(45,225,214,0),0 4px 14px rgba(0,0,0,.3);}}
@media (prefers-reduced-motion:reduce){.mapc-btn-gps{animation:none;}}
.mapc-user span{display:block;width:16px;height:16px;border-radius:50%;background:#2de1d6;border:3px solid #fff;box-shadow:0 0 0 4px rgba(45,225,214,.35);animation:mapcUser 1.9s ease-out infinite;}
@keyframes mapcUser{0%{box-shadow:0 0 0 0 rgba(45,225,214,.5);}100%{box-shadow:0 0 0 16px rgba(45,225,214,0);}}
.mapc-legend-note{margin:8px 0 0;font-size:9px;color:#5d7780;line-height:1.4;}

/* fuente real en popups y tarjetas del mapa (transparencia) */
.mapc-pop-verif{margin:4px 0 0;font-size:10px;color:#ffb02e;}
.mapc-pop-src{margin:6px 0 0;font-size:10px;color:#6f9a98;}
.mapc-pop-src a{color:#2de1d6;text-decoration:none;}
.mapc-pop-src a:hover{text-decoration:underline;}
.mapc-card-src{display:block;font-size:8.5px;color:#5d7780;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}

/* ===== Centro de coordinación ===== */
.coord-page{padding:2.2rem 0 3rem;}
.coord-head{max-width:760px;margin-bottom:1.6rem;}
.coord-head h1{margin:.3rem 0 .5rem;}
.coord-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-bottom:2rem;}
.coord-role{padding:1.3rem;border:1px solid var(--border);border-top:3px solid var(--rc,#2a8fd6);border-radius:var(--radius);background:var(--surface);}
.coord-role h2{font-size:1.2rem;margin:0 0 .5rem;}
.coord-role p{color:var(--text-soft);font-size:.92rem;}
.role-familias{--rc:#e0a02a;} .role-rescate{--rc:#e5443a;} .role-recursos{--rc:#46c08a;}
.coord-rolestats{display:flex;gap:1.2rem;margin:.7rem 0;}
.coord-rolestats b{font-size:1.3rem;color:var(--text);}
.coord-rolestats span{display:flex;flex-direction:column;font-size:.74rem;color:var(--muted);}
.coord-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem;}
.coord-section{margin:2rem 0;}
.coord-section>h2{font-size:1.3rem;display:flex;align-items:center;gap:.6rem;}
.coord-count{font-size:.8rem;background:var(--surface-2);border:1px solid var(--border);border-radius:99px;padding:.1rem .55rem;color:var(--text-soft);font-weight:800;}
.coord-intro{color:var(--muted);font-size:.9rem;margin:.3rem 0 1rem;}
.coord-subh{font-size:1rem;margin:1.4rem 0 .7rem;display:flex;gap:.5rem;align-items:center;}
.coord-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem;}
.coord-card{padding:1rem;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);}
.coord-card.sev-critical{border-left-color:#e5443a;} .coord-card.sev-high{border-left-color:#ef7d2e;}
.coord-card h3{font-size:1.02rem;margin:.3rem 0;}
.coord-tag{display:inline-block;font-size:.66rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem;}
.coord-tag.warn{color:#ef7d2e;} .coord-tag.good{color:#46c08a;}
.coord-addr{color:var(--text-soft);font-size:.86rem;margin:.15rem 0;}
.coord-note{color:var(--muted);font-size:.82rem;margin:.3rem 0 0;}
.coord-prov{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.6rem;font-size:.8rem;}
.coord-prov a{color:var(--brand,#2a8fd6);text-decoration:none;font-weight:700;}
.coord-prov span{color:var(--muted);}
.coord-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem;}
.coord-item{padding:.9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
.coord-item h4{margin:.2rem 0;font-size:.98rem;}
.coord-item p{color:var(--text-soft);font-size:.84rem;margin:0;}
.coord-hotspots{display:flex;flex-direction:column;gap:.5rem;max-width:560px;}
.coord-hot{display:grid;grid-template-columns:130px 1fr 40px;align-items:center;gap:.7rem;}
.coord-hot-label{font-size:.88rem;color:var(--text-soft);}
.coord-hot-bar{height:14px;background:var(--surface-2);border-radius:99px;overflow:hidden;}
.coord-hot-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#f0a23a,#e5253a);}
.coord-hot-count{font-weight:800;text-align:right;}
.coord-maplink{display:inline-block;margin-top:1rem;color:var(--brand,#2a8fd6);font-weight:700;text-decoration:none;}
.coord-two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;}
.coord-empty{color:var(--muted);font-size:.88rem;}
.coord-registries{margin:.5rem 0 0;padding-left:1.1rem;color:var(--text-soft);font-size:.9rem;}
.coord-registries a{color:var(--brand,#2a8fd6);}
@media (max-width:680px){.coord-two{grid-template-columns:1fr;}.coord-hot{grid-template-columns:100px 1fr 34px;}}

/* ===== Contactos de emergencia ===== */
.contacts-page{padding:2.2rem 0 3rem;}
.nav-emergency{font-weight:800;color:#ff6470 !important;}
.contacts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem;}
.contact-card{padding:1.1rem;border:1px solid var(--border);border-left:4px solid #e5443a;border-radius:var(--radius);background:var(--surface);}
.contact-card h3{font-size:1.05rem;margin:0 0 .3rem;}
.contact-role{color:var(--text-soft);font-size:.9rem;margin:0 0 .7rem;}
.contact-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;}
.contact-phone{display:inline-block;font-weight:800;font-size:1rem;color:#fff;background:#e5443a;padding:.35rem .7rem;border-radius:8px;text-decoration:none;}
.contact-phone:hover{filter:brightness(1.08);color:#fff;}
.contact-link{display:inline-block;font-weight:700;color:var(--brand,#2a8fd6);text-decoration:none;align-self:center;}
.contact-source{font-size:.78rem;color:var(--muted);margin:.2rem 0 0;}
.contacts-disclaimer{margin-top:1.4rem;font-size:.88rem;color:var(--muted);border-top:1px solid var(--border);padding-top:1rem;}
.contacts-disclaimer a{color:var(--brand,#2a8fd6);}

/* ===== Reskin elite (Home/Directorio) — dark por defecto, acentos de bandera ===== */
.rv-page{font-family:'Inter',system-ui,-apple-system,sans-serif;}
.rv-page h1,.rv-page h2,.rv-page h3{font-family:'Sora','Inter',sans-serif;letter-spacing:-.02em;}
.rv-tricolor{display:flex;height:6px;}
.rv-tricolor span{flex:1;}
.rv-tricolor span:nth-child(1){background:#FCD116;}
.rv-tricolor span:nth-child(2){background:#00247D;}
.rv-tricolor span:nth-child(3){background:#CF142B;}

.rv-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#0a1838,#102a5e);}
html[data-theme="light"] .rv-hero{background:linear-gradient(120deg,#00247D,#0a3aa0);}
.rv-hero-inner{padding:clamp(2.6rem,6vw,4.6rem) 0;position:relative;}
.rv-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#dbe4f5;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .8rem;border-radius:99px;}
.rv-badge i{width:7px;height:7px;border-radius:50%;background:#FCD116;}
.rv-hero h1{color:#fff;font-weight:800;font-size:clamp(2rem,5vw,3.4rem);line-height:1.04;margin:.85rem 0 .6rem;max-width:18ch;}
.rv-lead{color:#bccbe6;font-size:1.05rem;line-height:1.55;max-width:60ch;margin:0 0 1.6rem;}
.rv-hero-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-bottom:2rem;}
.rv-btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.96rem;padding:.8rem 1.35rem;border-radius:12px;text-decoration:none;border:1px solid transparent;transition:transform .14s ease, box-shadow .14s ease, filter .14s ease;}
.rv-btn:hover{transform:translateY(-1px);}
.rv-btn-light{background:#fff;color:#0d2040;box-shadow:0 12px 30px rgba(4,18,46,.3);}
.rv-btn-ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25);}
.rv-btn-ghost:hover{color:#fff;background:rgba(255,255,255,.16);}
.rv-btn-emergency{background:#FCD116;color:#0d2040;}
.rv-btn-emergency:hover{filter:brightness(1.05);color:#0d2040;}
.rv-stats{display:flex;gap:2.2rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.14);padding-top:1.4rem;margin:0;}
.rv-stats dd{font-family:'Sora';font-weight:800;font-size:1.9rem;line-height:1;color:#fff;margin:0;}
.rv-stats dt{font-size:.76rem;color:#bccbe6;margin-top:.35rem;}
.rv-hero-note{color:#9fb2d6;font-size:.82rem;margin:1.4rem 0 0;}

.rv-section{padding:2.8rem 0;}
.rv-kicker{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin:0 0 .4rem;}
.rv-h2{font-size:clamp(1.5rem,3vw,2rem);color:var(--text);margin:0 0 1.4rem;}
.rv-textlink{display:inline-block;margin-top:1.1rem;font-weight:700;color:var(--brand);text-decoration:none;}

.rv-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;}
.rv-card{position:relative;display:flex;flex-direction:column;text-decoration:none;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.3rem;min-height:172px;color:var(--text);transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;overflow:hidden;}
.rv-card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--rc,#00247D);}
.rv-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--rc,var(--brand));}
.rv-ic{display:inline-flex;width:42px;height:42px;border-radius:11px;align-items:center;justify-content:center;background:color-mix(in srgb,var(--rc,#00247D) 16%,transparent);color:var(--rc,#00247D);font-family:'Sora';font-weight:800;margin-bottom:.7rem;}
.rv-card h3{font-size:1.05rem;margin:0 0 .35rem;}
.rv-card p{color:var(--muted);font-size:.9rem;margin:0;flex:1;}
.rv-go{font-weight:700;color:var(--rc,#00247D);font-size:.85rem;margin-top:.7rem;}
.rv-c-persona{--rc:#2a6fd6;} .rv-c-ayuda{--rc:#e5443a;} .rv-c-recurso{--rc:#1f9d63;} .rv-c-zona{--rc:#e0a02a;} .rv-c-comm{--rc:#8a5cf0;}

.rv-two{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;align-items:start;}
.rv-steps{display:grid;gap:.8rem;}
.rv-step{display:flex;gap:1rem;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.1rem;}
.rv-step>span{flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--brand);color:#fff;font-family:'Sora';font-weight:800;}
.rv-step h3{font-size:1rem;margin:0 0 .3rem;}
.rv-step p{color:var(--muted);font-size:.9rem;margin:0;}
.rv-trust{background:var(--surface);border:1px solid var(--border);border-left:5px solid #FCD116;border-radius:14px;padding:1.4rem;}
.rv-trust h3{font-size:1.1rem;margin:0 0 1rem;}
.rv-trust ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;}
.rv-trust li{display:flex;gap:.6rem;font-size:.9rem;color:var(--text-soft);}
.rv-trust li::before{content:"✓";color:#1f9d63;font-weight:800;}
.rv-trust .rv-note{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--muted);}

.rv-recent{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;}
.rv-recent-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.1rem;}
.rv-recent-meta{display:flex;justify-content:space-between;gap:.5rem;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;}
.rv-recent-card h3{font-size:1.02rem;margin:0 0 .4rem;}
.rv-recent-card h3 a{color:var(--text);text-decoration:none;}
.rv-recent-card h3 a:hover{color:var(--brand);}
.rv-recent-card p{color:var(--text-soft);font-size:.88rem;margin:0 0 .6rem;}
.rv-recent-loc{font-size:.8rem;color:var(--muted);}
.rv-empty{grid-column:1/-1;text-align:center;border:1px dashed var(--border);border-radius:16px;padding:2.4rem;background:var(--surface);}

.rv-cta{position:relative;overflow:hidden;background:linear-gradient(120deg,#0a1838,#102a5e);border-radius:20px;padding:2.4rem;display:flex;align-items:center;justify-content:space-between;gap:1.6rem;flex-wrap:wrap;margin:1rem 0 2.6rem;}
html[data-theme="light"] .rv-cta{background:linear-gradient(120deg,#00247D,#0a3aa0);}
.rv-cta h2{color:#fff;margin:0 0 .4rem;max-width:22ch;}
.rv-cta p{color:#bccbe6;margin:0;max-width:46ch;font-size:.95rem;}
.rv-cta-actions{display:flex;gap:.7rem;flex-wrap:wrap;}
@media (max-width:760px){.rv-two{grid-template-columns:1fr;}}

/* ===== Directorio: hero elite + reskin de tarjetas ===== */
.rv-dir-hero{background:linear-gradient(120deg,#0a1838,#102a5e);padding:clamp(2.2rem,5vw,3.6rem) 0;}
html[data-theme="light"] .rv-dir-hero{background:linear-gradient(120deg,#00247D,#0a3aa0);}
.rv-dir-hero .rv-badge{margin-bottom:.85rem;}
.rv-dir-hero h1{color:#fff;font-weight:800;font-size:clamp(1.8rem,4vw,2.8rem);margin:0 0 .5rem;}
.rv-dir-lead{color:#bccbe6;max-width:62ch;margin:0 0 1.4rem;font-size:1rem;line-height:1.5;}
.rv-dir-search{display:flex;gap:.5rem;max-width:680px;margin:0 0 1.1rem;flex-wrap:wrap;}
.rv-dir-search input{flex:1;min-width:200px;height:54px;border:none;border-radius:12px;padding:0 1rem;font-size:1rem;font-family:inherit;color:#1a2330;background:#fff;box-shadow:0 12px 30px rgba(4,18,46,.28);}
.rv-dir-search button{height:54px;padding:0 1.4rem;border:none;border-radius:12px;background:#FCD116;color:#0d2040;font-weight:800;cursor:pointer;font-family:inherit;}
.rv-dir-search button:hover{filter:brightness(1.05);}
.rv-dir-clear{align-self:center;color:#dbe4f5;font-weight:600;text-decoration:none;padding:0 .4rem;}
.rv-chipnav{display:flex;flex-wrap:wrap;gap:.5rem;}
.rv-chipnav a{font-size:.82rem;font-weight:700;color:#dbe4f5;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:.4rem .85rem;border-radius:99px;text-decoration:none;}
.rv-chipnav a:hover{background:rgba(255,255,255,.18);color:#fff;}
.directory-page .dir-section{padding:2.4rem 0;border-top:1px solid var(--border);}
.directory-page .dir-figures{display:flex;flex-wrap:wrap;gap:1rem;margin:1.6rem 0 .4rem;}
.directory-page .dir-figure{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:.9rem 1.3rem;min-width:140px;}
.directory-page .dir-figure strong{font-family:'Sora','Inter',sans-serif;font-size:1.7rem;display:block;color:var(--text);}
.directory-page .dir-figure span{color:var(--muted);font-size:.82rem;}
.directory-page .dir-person-card,
.directory-page .dir-item,
.directory-page .dir-service-card{border-radius:14px;transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;}
.directory-page .dir-person-card:hover,
.directory-page .dir-item:hover,
.directory-page .dir-service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--brand);}

/* ===== Directorio dividido: jerarquía home, chips activos, paginación ===== */
.rv-btn-lg{font-size:1.08rem;padding:1rem 1.7rem;}
.rv-hero-sub{display:flex;flex-wrap:wrap;gap:1.2rem;margin:0 0 1.8rem;}
.rv-hero-sub a{color:#cdd9f0;font-weight:600;font-size:.95rem;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.28);padding-bottom:2px;}
.rv-hero-sub a:hover{color:#fff;border-color:#fff;}
.rv-card[style*="--rc"] .rv-go{color:var(--rc);}
.rv-chipnav a.is-active{background:#FCD116;color:#0d2040;border-color:#FCD116;}
.directory-page .dir-chip.is-active{background:var(--brand);color:#fff;border-color:var(--brand);}
.rv-pager{display:flex;align-items:center;justify-content:center;gap:1rem;margin:2rem 0 .5rem;flex-wrap:wrap;}
.rv-pager-btn{font-weight:700;font-size:.92rem;text-decoration:none;color:var(--brand);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.55rem 1rem;}
.rv-pager-btn:hover{border-color:var(--brand);}
.rv-pager-btn.is-disabled{color:var(--muted);opacity:.5;pointer-events:none;}
.rv-pager-info{color:var(--muted);font-size:.9rem;font-weight:600;}
.dir-registries-section{border-top:1px solid var(--border);}

/* ===== Hero compacto reutilizable (formularios y páginas internas) ===== */
.rv-hero-compact .rv-hero-inner{padding:clamp(1.8rem,4vw,2.9rem) 1rem;}
.rv-hero-compact h1{font-size:clamp(1.6rem,3.5vw,2.5rem);margin:.65rem 0 .5rem;}
.rv-back{display:inline-block;color:#bccbe6;font-weight:600;font-size:.9rem;text-decoration:none;margin-bottom:.8rem;}
.rv-back:hover{color:#fff;}
.rv-page .report-intake,
.rv-page .contacts-page,
.rv-page .coord-page{padding-top:2rem;}

/* ===== Íconos SVG profesionales (Lucide-style) ===== */
.rv-svg{display:inline-block;vertical-align:middle;flex:none;}
.rv-ic svg{width:22px;height:22px;}
.contact-phone{display:inline-flex;align-items:center;gap:.4rem;}
.contact-phone svg{width:16px;height:16px;}

/* ===== Mascotas desaparecidas ===== */
.rv-c-pet{--rc:#e0a02a;}
.dir-pet-card{display:flex;flex-direction:column;}
.dir-pet-photo{width:100%;height:180px;object-fit:cover;border-radius:10px;margin:-.2rem 0 .8rem;background:var(--glass);border:1px solid var(--border);}

/* ===== Botón de cambio de idioma (ES/EN) ===== */
.lang-switch{display:flex;align-items:center;}
.lang-toggle{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.82rem;line-height:1;color:var(--text);background:var(--glass);border:1px solid var(--border);border-radius:999px;padding:.42rem .85rem;text-decoration:none;transition:border-color .14s ease, background .14s ease, color .14s ease;}
.lang-toggle:hover{color:var(--text);border-color:var(--brand);background:var(--surface);}
.lang-toggle svg{width:16px;height:16px;flex:none;}

/* ===== Nav reordenado, agrupado y más claro ===== */
.site-nav .nav-link{ display:inline-flex; align-items:center; gap:.42rem; }
.site-nav .nav-link svg{ width:16px; height:16px; flex:none; opacity:.8; }
.nav-group-label{ display:none; }
.nav-link-muted{ color:var(--muted) !important; font-weight:600; }

/* Emergencia: pill roja inconfundible */
.site-nav .nav-emergency{ color:#fff !important; background:var(--red,#cf142b); border-radius:999px; padding:.42rem .9rem; font-weight:800; }
.site-nav .nav-emergency:hover,.site-nav .nav-emergency:focus{ color:#fff !important; filter:brightness(1.08); }
.site-nav .nav-emergency svg{ opacity:1; }

/* Preferencias (idioma/tema/datos) como grupo */
.nav-utilities{ display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }

/* Hamburguesa más visible + ícono con buen contraste */
.navbar-toggler{ border:1px solid var(--border-strong); border-radius:10px; padding:.4rem .55rem; }
.navbar-toggler:focus{ box-shadow:0 0 0 .2rem rgba(0,48,154,.28); }
.navbar-toggler-icon{ background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23e8eef5' stroke-width='2.3' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3e%3c/svg%3e"); }
html[data-theme="light"] .navbar-toggler-icon{ background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231a2330' stroke-width='2.3' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3e%3c/svg%3e"); }

/* Escritorio: alinear y separar grupos con divisores verticales */
@media (min-width:992px){
  .site-nav-list{ display:flex; align-items:center; gap:.15rem; }
  .nav-divider{ margin-left:.55rem; padding-left:.65rem; border-left:1px solid var(--border); }
  .nav-utilities{ margin-left:.55rem; padding-left:.65rem; border-left:1px solid var(--border); }
  .nav-internal{ margin-left:.35rem; }
  .nav-report-button{ margin-left:.35rem; }
}

/* Móvil (menú hamburguesa): encabezados de sección + divisores horizontales */
@media (max-width:991.98px){
  .site-nav-list{ padding:.6rem 0 .3rem; }
  .nav-group-label{ display:block; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding:.7rem .35rem .25rem; }
  .site-nav .nav-link{ padding:.6rem .35rem; }
  .nav-divider,.nav-utilities,.nav-internal{ margin-top:.55rem; padding-top:.75rem; border-top:1px solid var(--border); }
  .site-nav .nav-emergency{ width:max-content; }
  .nav-utilities{ width:100%; }
  .nav-report-button{ display:inline-flex; justify-content:center; width:100%; margin:.55rem 0; }
}

/* ===== Reconocimientos (unidades + perros) ===== */
.rv-recognition-note{color:var(--muted);font-size:.9rem;margin:1.4rem 0 .2rem;}
.rv-recognition-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;}
.rv-recognition-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;}
.rv-recognition-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--brand);}
.rv-recognition-photo{width:100%;height:170px;object-fit:cover;background:var(--glass);border-bottom:1px solid var(--border);}
.rv-recognition-body{padding:1.05rem;}
.rv-recognition-body .dir-item-tag{display:inline-flex;align-items:center;gap:.3rem;}
.rv-recognition-body h3{margin:.4rem 0 .25rem;font-size:1.05rem;}

/* ===== Bandera de país (reconocimientos) ===== */
.rv-flag-row{display:flex;align-items:center;gap:.45rem;}
.rv-flag{width:22px;height:15px;border-radius:2px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.14);flex:none;}

/* ===== 2FA (verificación en dos pasos) ===== */
.twofa-enroll{text-align:center;margin:0 0 1.4rem;}
.twofa-qr{display:inline-block;background:#fff;padding:.6rem;border-radius:12px;border:1px solid var(--border);}
.twofa-qr svg{width:200px;height:200px;display:block;}
.twofa-secret{margin-top:.8rem;color:var(--muted);font-size:.9rem;}
.twofa-secret code{background:var(--glass);padding:.2rem .45rem;border-radius:6px;}

/* ===== Panel: resumen operativo 4W ===== */
.ops-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.8rem;margin:1.2rem 0 1.6rem;}
.ops-fig{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;}
.ops-fig b{font-family:'Sora','Inter',sans-serif;font-size:1.6rem;display:block;color:var(--text);}
.ops-fig span{color:var(--muted);font-size:.8rem;}
.ops-list{margin:.4rem 0 1.4rem;padding-left:1.1rem;display:grid;gap:.3rem;}
.ops-gaps li a{font-weight:700;}
.ops-row-gap{background:color-mix(in srgb,var(--red,#cf142b) 8%,transparent);}
.ops-nogap{color:var(--red,#cf142b);font-weight:700;}
.ops-two{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
@media (max-width:760px){.ops-two{grid-template-columns:1fr;}}

/* ===== Panel: acciones y gestión ===== */
.admin-heading-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;}
.rec-actions{display:flex;gap:.4rem;align-items:center;}
.rec-actions form{display:inline;margin:0;}

/* ===== Header simplificado y responsive ===== */
.site-nav-list{ display:flex; align-items:center; gap:.15rem; flex-wrap:wrap; }
.nav-cta{ margin-left:.45rem; }
.nav-registry{ font-weight:700; }
/* Preferencias: botones compactos tipo icono */
.nav-utilities{ display:flex; align-items:center; gap:.35rem; margin-left:.5rem; }
.nav-util{ display:inline-flex; align-items:center; justify-content:center; gap:.3rem; min-width:36px; height:34px; padding:0 .5rem; border:1px solid var(--border); border-radius:9px; background:var(--surface); color:var(--ink-soft); font-weight:700; font-size:.8rem; line-height:1; cursor:pointer; text-decoration:none; transition:border-color .14s ease, color .14s ease; }
.nav-util:hover,.nav-util:focus-visible{ border-color:var(--blue); color:var(--blue); }
.nav-util svg{ width:16px; height:16px; flex:none; }
.site-nav-list .nav-link{ white-space:nowrap; }

@media (max-width:991.98px){
  /* En el menú hamburguesa, los toggles muestran su etiqueta y van en fila */
  .nav-util .visually-hidden{ position:static !important; width:auto !important; height:auto !important; margin:0 !important; clip:auto !important; clip-path:none !important; white-space:normal !important; }
  .nav-util{ height:auto; padding:.45rem .7rem; }
}

/* ===== Footer ampliado y responsive ===== */
.site-footer-grid{ display:grid; grid-template-columns:2.2fr 1fr 1.3fr 1.4fr; gap:2rem; align-items:start; }
.footer-about p{ max-width:48ch; }
.footer-brand{ font-size:1.05rem; display:block; margin-bottom:.2rem; }
.footer-brand span{ color:var(--blue); }
.footer-credit{ font-size:.82rem; color:var(--muted); margin-top:.7rem; line-height:1.6; }
.footer-col{ display:flex; flex-direction:column; gap:.4rem; align-items:flex-start; }
.footer-col h4{ font-size:.74rem; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); margin:0 0 .25rem; font-weight:800; }
.footer-col a{ color:var(--ink-soft); text-decoration:none; font-weight:600; }
.footer-col a:hover{ color:var(--blue); }
.footer-note{ font-size:.82rem; color:var(--muted); margin:0 0 .6rem; line-height:1.55; }
.footer-internal{ font-size:.82rem; color:var(--muted) !important; font-weight:600; }
.footer-bottom{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:2rem; padding-top:1.2rem; border-top:1px solid var(--border); font-size:.82rem; color:var(--muted); }
@media (max-width:860px){ .site-footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .site-footer-grid{ grid-template-columns:1fr; } }

/* ===== Mapa: CAPAS colapsable + clusters en tema oscuro ===== */
.mapc-panel-toggle{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:.5rem; background:none; border:0; cursor:pointer; color:inherit; font:inherit; text-align:left; }
.mapc-panel-chev{ width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .18s ease; opacity:.7; flex:none; }
.mapc-panel-layers.is-collapsed .mapc-panel-chev{ transform:rotate(-45deg); }
.mapc-panel-layers.is-collapsed #cmd-layers{ display:none; }

/* Clusters: burbuja REDONDA del plugin revestida con el tema oscuro. Sin halo cian (estorba
   al hacer zoom) y sin rojo/ámbar (no confundir con la severidad): solo un círculo limpio. */
.marker-cluster{ background:transparent !important; font-family:'IBM Plex Mono',monospace; }
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{ background:transparent !important; }
.marker-cluster div{ width:34px; height:34px; margin-left:3px; margin-top:3px;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  background:rgba(8,14,20,.9) !important; color:#aef6ef !important; font-weight:700;
  border:1px solid rgba(45,225,214,.55); box-shadow:0 2px 6px rgba(0,0,0,.45); }
.marker-cluster span{ line-height:34px; font-size:12px; letter-spacing:.02em; }

/* Buscador en vivo del panel INTEL (sugerencias por categoría/nombre/dirección) */
.mapc-intel-search{ width:100%; box-sizing:border-box; margin:0 0 7px; height:32px; padding:0 10px;
  background:rgba(8,13,17,.82); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px);
  border:1px solid rgba(45,225,214,.22); border-radius:4px; color:#cfe6e8;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.02em; }
.mapc-intel-search::placeholder{ color:#6f8a8e; }
.mapc-intel-search:focus{ outline:none; border-color:rgba(45,225,214,.6); background:rgba(8,13,17,.92); }

/* Banner de complementariedad: personas -> registro oficial (no duplicamos, complementamos) */
.rv-registry-banner{ display:flex; align-items:center; gap:1rem; margin:1.6rem 0 0; padding:1rem 1.25rem;
  border:1px solid var(--border); border-left:4px solid var(--blue); border-radius:14px; background:var(--surface); }
.rv-rb-ic{ flex:none; width:42px; height:42px; display:grid; place-items:center; border-radius:11px;
  background:rgba(20,91,121,.12); color:var(--blue); }
.rv-rb-ic svg{ width:22px; height:22px; }
.rv-rb-text{ flex:1 1 auto; min-width:0; }
.rv-rb-text strong{ display:block; }
.rv-rb-text p{ margin:.25rem 0 0; color:var(--muted); font-size:.92rem; line-height:1.5; }
.rv-registry-banner .rv-btn{ flex:none; }
@media (max-width:640px){
  .rv-registry-banner{ flex-wrap:wrap; align-items:flex-start; }
  .rv-registry-banner .rv-btn{ width:100%; text-align:center; }
}

/* Botón de escape: reactivar el mapa desde el fallback del modo ligero */
.mapc-btn-reactivate{ margin-top:12px; padding:10px 16px; background:linear-gradient(180deg,rgba(45,225,214,.26),rgba(45,225,214,.12));
  border:1px solid rgba(45,225,214,.75); border-radius:8px; color:#aef6ef; cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:700; letter-spacing:.03em; }
.mapc-btn-reactivate:hover{ background:rgba(45,225,214,.32); color:#dffbf7; }

/* Nota digna sobre personas fallecidas (sin lista de nombres) */
.dir-memoriam{ margin:1.5rem 0; padding:1.1rem 1.3rem; border:1px solid var(--border); border-left:4px solid var(--muted); border-radius:12px; background:var(--surface); }
.dir-memoriam h3{ margin:0 0 .4rem; font-size:1rem; }
.dir-memoriam p{ margin:.3rem 0 0; color:var(--muted); font-size:.92rem; line-height:1.55; }
