/*
 * Nodo Cívico v9 · Tema unificado para páginas heredadas (públicas y del panel).
 * Traduce los componentes anteriores (verified-*, nc-landing-*, nc-v8-*, nc-data-*,
 * nc-blog-*, legal-*, faq-*, contact-*, report-*, portal-*) al estilo de la página
 * de ingreso: fondo suave, tarjetas blancas, títulos en Azul Cívico, botones de píldora,
 * campos grandes con etiqueta visible y foco claro.
 * Se carga después de las hojas anteriores. Sin capas, con prefijo de cuerpo.
 */

/* ---------- Base ---------- */
body.nc-legacy, body.nc-panel { background: var(--nc-surface); color: var(--nc-text); font-family: var(--nc-font); font-size: 1rem; line-height: 1.55; }
:is(body.nc-legacy, body.nc-panel) :is(main, .portal-main) :is(h1, h2, h3, h4, h5) { font-family: var(--nc-font); color: var(--nc-blue); letter-spacing: -.01em; text-wrap: balance; }
:is(body.nc-legacy, body.nc-panel) :is(h1, h2, h3) em,
:is(body.nc-legacy, body.nc-panel) :is(h1, h2, h3) i:not([class*="fa-"]) { font-family: inherit; font-style: normal; color: var(--nc-teal); }
:is(body.nc-legacy, body.nc-panel) h1 { font-size: clamp(1.85rem, 1.45rem + 1.5vw, 2.5rem); font-weight: 750; line-height: 1.12; }
:is(body.nc-legacy, body.nc-panel) main h2 { font-weight: 750; }
:is(body.nc-legacy, body.nc-panel) a:not([class]) { color: var(--nc-teal); text-underline-offset: .18em; }
:is(body.nc-legacy, body.nc-panel) :focus-visible { outline: 3px solid var(--nc-teal) !important; outline-offset: 2px !important; box-shadow: none; }
body.nc-legacy main#contenido { padding-top: clamp(1.25rem, 1rem + 1.5vw, 2.5rem); padding-bottom: clamp(2rem, 1.5rem + 2vw, 4rem); }

/* ---------- Encabezados de página (hero) ---------- */
body.nc-legacy :is(.verified-hero, .nc-landing-hero, .nc-v8-hero, .nc-data-hero, .nc-blog-hero, .nc-org-hero, .faq-hero, .contact-hero, .legal-hero, .report-list-hero) {
  position: relative; overflow: hidden;
  background: var(--nc-white) !important; background-image: none !important;
  color: var(--nc-text) !important;
  border: 1px solid var(--nc-border) !important; border-radius: 1.25rem !important;
  box-shadow: var(--nc-shadow-sm) !important;
  padding: clamp(1.5rem, 1rem + 2.5vw, 3rem) !important;
  margin-bottom: 1.5rem;
}
body.nc-legacy :is(.verified-hero, .nc-landing-hero, .nc-v8-hero, .nc-data-hero, .nc-blog-hero, .nc-org-hero, .faq-hero, .contact-hero, .legal-hero, .report-list-hero)::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; display: block !important;
  background: linear-gradient(90deg, var(--nc-blue), var(--nc-teal) 60%, var(--nc-yellow)) !important;
  border: 0 !important; border-radius: 0 !important; transform: none !important; opacity: 1 !important; width: auto !important;
}
body.nc-legacy :is(.verified-hero, .nc-landing-hero, .nc-v8-hero, .nc-data-hero, .nc-blog-hero, .nc-org-hero, .faq-hero, .contact-hero, .legal-hero, .report-list-hero)::after { display: none !important; }
body.nc-legacy :is(.verified-hero, .nc-landing-hero, .nc-v8-hero, .nc-data-hero, .nc-blog-hero, .nc-org-hero, .faq-hero, .contact-hero, .legal-hero, .report-list-hero) :is(h1, h2) { color: var(--nc-blue) !important; }
body.nc-legacy :is(.verified-hero, .nc-landing-hero, .nc-v8-hero, .nc-data-hero, .nc-blog-hero, .nc-org-hero, .faq-hero, .contact-hero, .legal-hero, .report-list-hero) p { color: var(--nc-muted) !important; max-width: 64ch; font-size: 1.0625rem; }
body.nc-legacy :is(.verified-hero, .nc-landing-hero, .nc-v8-hero, .nc-data-hero, .nc-blog-hero, .nc-org-hero, .faq-hero, .contact-hero, .legal-hero, .report-list-hero) :is(.nc-landing-visual, .nc-v8-hero-mark, .verified-hero-art, [class*="hero-art"], [class*="hero-visual"]) { filter: none; }
body.nc-legacy .contact-hero { margin: 0 auto 1.5rem; max-width: 1320px; }
body.nc-legacy .nc-data-hero :is(strong, b, span) { color: inherit; }

/* ---------- Etiquetas superiores (eyebrow) ---------- */
:is(body.nc-legacy, body.nc-panel) :is(.verified-eyebrow, .nc-landing-eyebrow, .nc-v8-eyebrow, .nc-blog-eyebrow, .nc-data-eyebrow, .portal-eyebrow, .portal-section-kicker, .legal-eyebrow, .faq-eyebrow, .contact-eyebrow, .contact-kicker, .report-list-eyebrow, .report-list-kicker, .report-overview-kicker, .section-kicker, .eyebrow, .nc-org-eyebrow) {
  display: inline-flex; align-items: center; gap: .5rem;
  color: var(--nc-teal-ink) !important; background: none !important; border: 0 !important; padding: 0 !important;
  font-size: .8rem !important; font-weight: 800 !important; letter-spacing: .08em; text-transform: uppercase;
}

/* ---------- Tarjetas y paneles ---------- */
body.nc-legacy :is(.verified-card, .nc-landing-card, .nc-landing-panel, .nc-v8-panel, .nc-v8-card, .nc-data-panel, .nc-org-card, .faq-card, .contact-card, .legal-section, .report-list-panel, .report-filter-panel),
body.nc-panel .portal-card {
  background: var(--nc-white) !important; background-image: none !important;
  border: 1px solid var(--nc-border) !important; border-radius: .875rem !important;
  box-shadow: var(--nc-shadow-sm) !important; color: var(--nc-text);
}
body.nc-legacy :is(.nc-landing-card, .verified-card, .nc-v8-card) { padding: 1.5rem; }
body.nc-legacy :is(.nc-landing-card-icon, .nc-v8-card-icon, .nc-data-kpi-icon) {
  background: var(--nc-blue-soft) !important; color: var(--nc-blue) !important; border-radius: .875rem !important; box-shadow: none !important;
}
body.nc-legacy :is(.nc-landing-card, .verified-card, .nc-v8-card) :is(h2, h3) { color: var(--nc-blue); font-size: 1.15rem; }
body.nc-legacy :is(.nc-landing-card, .verified-card, .nc-v8-card) p { color: var(--nc-muted); }
body.nc-legacy :is(.nc-landing-section, .verified-section, .nc-v8-section, .nc-data-section) { margin-block: clamp(1.5rem, 1rem + 2vw, 3rem); }
body.nc-legacy :is(.nc-landing-callout, .nc-landing-disclaimer, .nc-v8-disclaimer, .verified-notice) {
  background: var(--nc-blue-soft) !important; border: 0 !important; border-inline-start: 4px solid var(--nc-blue) !important;
  border-radius: .875rem !important; color: var(--nc-text) !important; box-shadow: none !important;
}

/* ---------- Botones ---------- */
:is(body.nc-legacy, body.nc-panel) :is(.btn-brand, .nc-v8-button:not(.is-outline):not(.is-quiet), .nc-blog-button-primary, .portal-action-primary, .btn-primary) {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 2.75rem; padding: .55rem 1.25rem !important;
  background: var(--nc-blue) !important; border: 2px solid var(--nc-blue) !important; color: var(--nc-white) !important;
  border-radius: 999px !important; font-weight: 700 !important; box-shadow: none !important; text-decoration: none;
}
:is(body.nc-legacy, body.nc-panel) :is(.btn-brand, .nc-v8-button:not(.is-outline):not(.is-quiet), .nc-blog-button-primary, .portal-action-primary, .btn-primary):hover { background: var(--nc-blue-ink) !important; border-color: var(--nc-blue-ink) !important; }
:is(body.nc-legacy, body.nc-panel) :is(.btn-outline-brand, .nc-blog-button:not(.nc-blog-button-primary), .portal-action-outline, .btn-outline-primary, .btn-outline-secondary, .nc-v8-link-button, .nc-v8-button.is-outline) {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 2.75rem; padding: .5rem 1.15rem !important;
  background: var(--nc-white) !important; border: 2px solid var(--nc-blue) !important; color: var(--nc-blue) !important;
  border-radius: 999px !important; font-weight: 700 !important; box-shadow: none !important; text-decoration: none;
}
:is(body.nc-legacy, body.nc-panel) :is(.btn-outline-brand, .nc-blog-button:not(.nc-blog-button-primary), .portal-action-outline, .btn-outline-primary, .btn-outline-secondary, .nc-v8-button.is-outline):hover { background: var(--nc-blue-soft) !important; }
:is(body.nc-legacy, body.nc-panel) .btn-lg { min-height: 3.125rem; font-size: 1.0625rem; }
:is(body.nc-legacy, body.nc-panel) :is(.btn-danger, .portal-action-danger) { border-radius: 999px !important; }

/* ---------- Formularios ---------- */
:is(body.nc-legacy, body.nc-panel) :is(.form-control, .form-select, .nc-v8-field input, .nc-v8-field select, .nc-v8-field textarea, .portal-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), .portal-form select, .portal-form textarea) {
  min-height: 2.875rem;
  border: 1.5px solid var(--nc-border-strong) !important; border-radius: .5rem !important;
  background-color: var(--nc-white) !important; color: var(--nc-text) !important;
  font-size: 1rem !important; box-shadow: none !important;
}
:is(body.nc-legacy, body.nc-panel) :is(textarea.form-control, .nc-v8-field textarea, .portal-form textarea) { min-height: 7rem; }
:is(body.nc-legacy, body.nc-panel) :is(.form-control, .form-select, .nc-v8-field input, .nc-v8-field select, .nc-v8-field textarea, .portal-form input, .portal-form select, .portal-form textarea):focus {
  border-color: var(--nc-teal) !important; box-shadow: 0 0 0 4px rgb(0 126 120 / .16) !important; outline: 0 !important;
}
:is(body.nc-legacy, body.nc-panel) :is(.form-control, .form-select):disabled { background-color: var(--nc-surface) !important; color: var(--nc-muted) !important; }
:is(body.nc-legacy, body.nc-panel) :is(.form-label, .nc-v8-field > label, .nc-v8-field > span:first-child, .portal-form label) { font-weight: 650 !important; color: var(--nc-text) !important; font-size: .9375rem !important; margin-bottom: .35rem; }
:is(body.nc-legacy, body.nc-panel) :is(.form-text, .nc-v8-field small, .portal-form-hint) { color: var(--nc-muted) !important; font-size: .875rem !important; }
:is(body.nc-legacy, body.nc-panel) .nc-v8-field { display: grid; gap: .35rem; }
:is(body.nc-legacy, body.nc-panel) :is(.nc-v8-form-grid, .portal-form-grid) { gap: 1rem !important; align-items: end; }
:is(body.nc-legacy, body.nc-panel) :is(.form-check-input, input[type="checkbox"], input[type="radio"]) { accent-color: var(--nc-teal); }
:is(body.nc-legacy, body.nc-panel) .form-check-input:checked { background-color: var(--nc-teal); border-color: var(--nc-teal); }
:is(body.nc-legacy, body.nc-panel) .is-invalid, :is(body.nc-legacy, body.nc-panel) [aria-invalid="true"] { border-color: var(--nc-state-hidden) !important; }

/* ---------- Avisos ---------- */
:is(body.nc-legacy, body.nc-panel) :is(.alert, .portal-notice, .nc-v8-alert, .nc-v8-message) { border-radius: .875rem !important; border: 0 !important; border-inline-start: 4px solid currentColor !important; }
:is(body.nc-legacy, body.nc-panel) .alert-danger, :is(body.nc-legacy, body.nc-panel) .portal-notice.is-error { background: #fdecea !important; color: #8f1d14 !important; }
:is(body.nc-legacy, body.nc-panel) .alert-success { background: #e8f5ee !important; color: #054f31 !important; }
:is(body.nc-legacy, body.nc-panel) :is(.alert-info, .alert-primary) { background: var(--nc-blue-soft) !important; color: var(--nc-blue) !important; }
:is(body.nc-legacy, body.nc-panel) .alert-warning { background: var(--nc-yellow-soft) !important; color: #6b4a00 !important; }

/* ---------- Tablas ---------- */
:is(body.nc-legacy, body.nc-panel) .table { --bs-table-bg: transparent; font-size: .9375rem; }
:is(body.nc-legacy, body.nc-panel) .table > thead th { color: var(--nc-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; border-bottom: 2px solid var(--nc-border); }
:is(body.nc-legacy, body.nc-panel) .table td { border-color: var(--nc-border); vertical-align: middle; }

/* ---------- Pestañas y navegación interna ---------- */
:is(body.nc-legacy, body.nc-panel) .nav-tabs { border-bottom: 1px solid var(--nc-border); gap: .25rem; }
:is(body.nc-legacy, body.nc-panel) .nav-tabs .nav-link { border: 0; border-bottom: 3px solid transparent; color: var(--nc-muted); font-weight: 650; border-radius: 0; }
:is(body.nc-legacy, body.nc-panel) .nav-tabs .nav-link.active { color: var(--nc-blue); border-bottom-color: var(--nc-teal); background: none; }
:is(body.nc-legacy, body.nc-panel) .nav-pills .nav-link.active { background: var(--nc-blue); border-radius: 999px; }
body.nc-legacy :is(.nc-landing-section-nav, .legal-toc, .faq-nav) {
  background: var(--nc-white) !important; border: 1px solid var(--nc-border) !important; border-radius: .875rem !important; box-shadow: none !important;
}
body.nc-legacy :is(.nc-landing-section-nav, .legal-toc, .faq-nav) a { color: var(--nc-blue) !important; font-weight: 650; }

/* ---------- Diálogos de Bootstrap 5 ---------- */
:is(body.nc-legacy, body.nc-panel) .modal-content { border: 0; border-radius: 1.25rem; box-shadow: var(--nc-shadow-lg); }
:is(body.nc-legacy, body.nc-panel) .modal-header { border-bottom: 1px solid var(--nc-border); }
:is(body.nc-legacy, body.nc-panel) .modal-title { color: var(--nc-blue); font-weight: 750; }

/* ---------- Insignias ---------- */
:is(body.nc-legacy, body.nc-panel) .badge { border-radius: 999px; font-weight: 700; }

/* ---------- Listas numeradas con número duplicado ---------- */
body.nc-legacy ol[class*="steps"] > li::marker, body.nc-legacy ol[class*="guide"] > li::marker { content: none; }

/* ---------- Datos abiertos: piezas sin estilo previo ---------- */
body.nc-legacy .nc-data-guide { margin: 1.5rem 0; padding: clamp(1.25rem, 1rem + 1.5vw, 2rem); background: var(--nc-white); border: 1px solid var(--nc-border); border-radius: 1.25rem; box-shadow: var(--nc-shadow-sm); }
body.nc-legacy .nc-data-guide-heading h2 { margin: .25rem 0 .35rem; font-size: 1.4rem; }
body.nc-legacy .nc-data-guide-heading p:not(.verified-eyebrow) { margin: 0 0 1.25rem; color: var(--nc-muted); }
body.nc-legacy .nc-data-guide ol { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { body.nc-legacy .nc-data-guide ol { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
body.nc-legacy .nc-data-guide li { display: flex; gap: .875rem; align-items: flex-start; padding: 1rem; border-radius: .875rem; background: var(--nc-surface); }
body.nc-legacy .nc-data-guide li > span { display: grid; place-items: center; flex: none; inline-size: 2.25rem; block-size: 2.25rem; border-radius: 50%; background: var(--nc-yellow); color: var(--nc-blue); font-weight: 800; }
body.nc-legacy .nc-data-guide li strong { color: var(--nc-blue); }
body.nc-legacy .nc-data-guide li p { margin: .2rem 0 0; color: var(--nc-muted); font-size: .9375rem; }
body.nc-legacy .nc-data-heading-help { color: var(--nc-muted); margin: .35rem 0 0; max-width: 62ch; }
body.nc-legacy .nc-data-plain-summary { display: flex; gap: .75rem; align-items: flex-start; margin: 1rem 0; padding: 1rem 1.125rem; border-radius: .875rem; background: var(--nc-teal-soft); border-inline-start: 4px solid var(--nc-teal); }
body.nc-legacy .nc-data-plain-summary i { color: var(--nc-teal-ink); margin-top: .2rem; }
body.nc-legacy .nc-data-plain-summary p { margin: 0; color: var(--nc-text); }
body.nc-legacy .nc-data-kpi-icon.is-total { background: var(--nc-blue) !important; color: var(--nc-white) !important; }

/* ---------- Fuentes: tarjeta ONU ---------- */
body.nc-legacy .methodology-un-card { display: flex; gap: 1rem; align-items: center; padding: 1rem 1.25rem; border: 1px solid var(--nc-border); border-radius: .875rem; background: var(--nc-white); color: var(--nc-text); text-decoration: none; }
body.nc-legacy .methodology-un-card:hover { border-color: var(--nc-teal); background: var(--nc-teal-soft); }
body.nc-legacy .methodology-un-icon { display: grid; place-items: center; flex: none; inline-size: 2.75rem; block-size: 2.75rem; border-radius: .75rem; background: var(--nc-blue-soft); color: var(--nc-blue); }

/* ---------- Pequeñas piezas del panel sin estilo ---------- */
body.nc-panel :is(.portal-request-list, .portal-municipality-checklist) { display: grid; gap: .5rem; margin: .75rem 0 0; padding: 0; list-style: none; }
body.nc-panel :is(.portal-request-list, .portal-municipality-checklist) > * { padding: .75rem 1rem; border: 1px solid var(--nc-border); border-radius: .75rem; background: var(--nc-white); }
body.nc-panel .sponsors-directory { display: grid; gap: 1rem; }
body.nc-panel :is(.blog-admin-editor, .blog-admin-library) { display: grid; gap: 1rem; }

:is(body.nc-legacy, body.nc-panel) .nc-v8-button.is-quiet { border-radius: 999px !important; min-height: 2.75rem; }
:is(body.nc-legacy, body.nc-panel) .nc-prop-cta :is(h2, h3) { color: #fff !important; }
