/*=============================================================================
  Justicia Abierta — estilos públicos unificados
  Archivo: static/css/justicia-publica.css

  CÓMO USAR ESTE ARCHIVO
  ----------------------
  Cada sección indica en qué página(s) aplica y qué selector/clase buscar
  en el HTML para modificar el aspecto.

  Páginas cubiertas:
    /propuestas          → templates/propuestasjusticia.html
    /mesas               → templates/mesasjusticia.html
    /participa           → templates/participa.html
    /politica            → templates/politica.html
    /politica/enviar     → templates/politica_enviar.html
    /politica (éxito)    → templates/politica_enviado.html
    /ingreso             → templates/ingreso.html
    confirmación         → templates/confirmacion_propuesta_justicia.html
    parcial aviso datos  → templates/_aviso_tratamiento_datos.html

  Clases body (page-specific; facilitan overrides sin afectar otras páginas):
    .page-propuestas       — /propuestas
    .page-mesas            — /mesas
    .page-participa        — /participa
    .page-politica         — /politica (padding para barra fija)
    .page-politica-enviar  — /politica/enviar
    .page-politica-enviado — éxito de aportes
    .page-ingreso          — /ingreso
    .page-confirmacion     — confirmación de propuesta

  Admin NO usa este archivo (ver templates/_admin_justicia_styles.html).
=============================================================================*/

/*-----------------------------------------------------------------------------
  1) TOKENS Y BASE COMPARTIDA
  Aplica: /propuestas, /mesas, /participa, /politica, /politica/enviar
  Buscar en HTML: :root (variables), body, .site-banner, .container / .page-wrap, .card
-----------------------------------------------------------------------------*/

:root {
    --primary-navy: #1e2a4a;
    --primary-navy-hover: #152038;
    --secondary-muted: #5a6578;
    --primary-color: #1e2a4a;
    --secondary-color: #5a6578;
    --accent-color: #f0a000;
    --accent-gold: #f0a000;
    --accent-teal: #258fb6;
    --accent-teal-soft: #509090;
    --text-color: #2a3142;
    --heading-color: #1e2a4a;
    --light-bg: #eef1f5;
    --surface-white: #ffffff;
    --border-color: #d5dbe6;
    --input-bg: #f3f5f8;
    --input-border: #c8d0dc;
    --input-focus-bg: #e8f4f8;
    --card-active-bg: #eaf3f7;
    --card-active-border: #9ec9d9;
}

body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: var(--text-color);
    background-color: var(--light-bg);
    line-height: 1.55;
}

.site-banner {
    width: 100%;
    line-height: 0;
    margin-bottom: 1rem;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 3px rgba(30, 42, 74, 0.08);
    background: var(--primary-navy);
}

.site-banner img {
    display: block;
    width: 100%;
    height: auto;
}

/* Navbar oculto solo en /propuestas (histórico; el banner .site-banner lo reemplaza) */
body.page-propuestas .navbar {
    display: none;
}

/*--- 1.A Layout: .navbar (legado), .container, .card — /propuestas /mesas /participa ---*/
.navbar .container {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 900px;
    padding: 0;
    margin: 0 auto;
    background-color: var(--surface-white);
}

.navbar-brand {
    color: white !important;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.navbar-brand img {
    width: 100%;
    height: auto;
    object-fit: contain;
    margin: 0;
    padding: 0;
    display: block;
}

.nav-link {
    color: rgba(255,255,255,0.9) !important;
    transition: color 0.3s ease;
}

.nav-link:hover {
    color: white !important;
}

.container {
    max-width: 900px;
    margin: 0 auto;
    padding: 1rem 0.85rem 2rem;
}

.card {
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(30, 42, 74, 0.08);
    transition: box-shadow 0.3s ease;
    background: var(--surface-white);
    margin-bottom: 1rem;
}

.card:hover {
    box-shadow: 0 2px 8px rgba(30, 42, 74, 0.12);
}

.card-header {
    background-color: var(--primary-navy);
    color: white;
    border-radius: 3px 3px 0 0 !important;
    padding: 1rem 1.15rem;
    border-bottom: 3px solid var(--accent-gold);
}

.card-header h2 {
    font-size: 1.2rem;
    font-weight: 600;
}

.card-body {
    padding: 1.1rem 1.15rem;
}

/*--- 1.B Formularios (.form-label, .form-control, focus) — /propuestas /mesas /participa ---*/
.form-label {
    font-size: 1.05rem;
    margin-bottom: 0.45rem;
    color: var(--heading-color);
    line-height: 1.35;
}

.form-control {
    border: 1px solid var(--input-border);
    border-radius: 4px;
    background: var(--input-bg);
    color: var(--text-color);
    font-size: 16px;
    margin-bottom: 0.2rem;
    box-shadow: none;
    padding: 0.7rem 0.75rem;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-control:focus {
    border-color: var(--accent-teal);
    background: var(--input-focus-bg);
    box-shadow: 0 0 0 2px rgba(37, 143, 182, 0.22);
}

.pregunta-card.pregunta-card--activa .form-control {
    background: #e3e8ed;
}

.pregunta-card.pregunta-card--activa .form-control:focus {
    background: var(--input-focus-bg);
}

/*--- 1.D Botón principal dorado (.btn-primary) — /propuestas /mesas /participa ---*/
.btn-primary {
    background-color: var(--accent-gold);
    border: none;
    color: #1e2a4a;
    border-radius: 4px;
    padding: 0.75rem 2rem;
    font-weight: 700;
    transition: all 0.3s ease;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #d99200;
    color: #1e2a4a;
    box-shadow: 0 2px 8px rgba(240, 160, 0, 0.35);
}

.btn-outline-primary {
    color: var(--accent-teal);
    border: 2px solid var(--accent-teal);
    background-color: var(--surface-white);
    border-radius: 4px;
    padding: 0.75rem 2rem;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--accent-teal);
    border-color: var(--accent-teal);
    color: #fff;
}

.btn-outline-secondary {
    color: var(--secondary-muted);
    border-color: var(--secondary-muted);
    border-radius: 6px;
    padding: 0.75rem 2rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.btn-outline-secondary:hover {
    background-color: var(--secondary-muted);
    color: white;
    transform: translateY(-1px);
}

.form-text,
.text-muted {
    color: var(--secondary-muted) !important;
    font-size: 0.875rem;
}

.alert {
    border-radius: 5px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.alert-success {
    background-color: #d4edda;
    border-color: #c3e6cb;
    color: #155724;
}

.alert-danger {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    color: #721c24;
}

@media (max-width: 768px) {
    .container {
        padding: 0.5rem;
    }

    .card-body {
        padding: 1.5rem;
    }

    .btn {
        width: 100%;
        margin-bottom: 0.5rem;
    }

    .pregunta-card {
        padding: 0.85rem 0.75rem 0.8rem;
        margin-bottom: 0.85rem;
    }

    .form-label {
        font-size: 0.98rem;
    }

    .form-control {
        font-size: 16px;
        padding: 0.7rem 0.65rem;
    }

    .btn-igual {
        width: 100%;
        min-width: unset;
        margin-bottom: 0.7rem;
        font-size: 1.08rem;
    }

    .text-center .btn {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .navbar .container {
        max-width: 100%;
        padding: 0 15px;
        background-color: var(--surface-white);
    }
}

.btn-igual {
    min-width: 120px;
    min-height: 48px;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    font-size: 1.1rem;
}

/*--- 1.B Selects custom (.custom-select-*) — /propuestas /participa ---*/
.custom-select-wrapper {
    position: relative;
}
.custom-select-wrapper select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: var(--input-bg);
    padding-right: 2.5rem;
}
.custom-select-arrow {
    position: absolute;
    top: 50%;
    right: 1rem;
    pointer-events: none;
    transform: translateY(-50%);
    width: 1.2em;
    height: 1.2em;
    fill: var(--secondary-muted);
}

/*--- 1.C Tarjetas de pregunta (.pregunta-card) — /propuestas /mesas /participa ---*/
.pregunta-card {
    background: var(--surface-white);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(30, 42, 74, 0.06);
    margin-bottom: 0.9rem;
    padding: 0.9rem 1rem 0.95rem;
    transition: box-shadow 0.3s, background-color 0.25s ease, border-color 0.25s ease;
}
.pregunta-card:hover {
    box-shadow: 0 2px 10px rgba(30, 42, 74, 0.08);
}
.pregunta-card.pregunta-card--activa {
    background: var(--card-active-bg);
    border-color: var(--card-active-border);
    box-shadow: 0 2px 12px rgba(30, 42, 74, 0.1);
}
.pregunta-card.pregunta-card--sin-resaltado {
    background: var(--primary-navy) !important;
    color: #fff;
    border: none !important;
}
.pregunta-card.pregunta-card--sin-resaltado.pregunta-card--activa {
    background: var(--primary-navy) !important;
    border-color: transparent;
}

.pregunta-card .form-label.fw-bold {
    color: var(--heading-color);
    font-size: 1.05rem;
    display: block;
    padding-bottom: 0.55rem;
    margin-bottom: 0.65rem;
    border-bottom: 3px solid transparent;
    transition: border-color 0.2s ease;
}
.pregunta-card.pregunta-card--activa .form-label.fw-bold {
    border-bottom-color: var(--accent-gold);
}

.pregunta-card span, .pregunta-card p, .pregunta-card label:not(.fw-bold) {
    font-size: 0.96rem;
}

.input-error {
    border-color: #dc3545 !important;
    background: #fff6f6 !important;
}

/*--- 1.E Panel de sugerencias IA (.sugerencias-container, .sugerencia-item--*) — /propuestas /mesas ---*/
.sugerencias-container {
    opacity: 0;
    transition: opacity 0.5s ease-in;
}

.sugerencias-container.visible {
    opacity: 1;
}

.sugerencia-item {
    border: 1px solid transparent;
    border-left-width: 4px;
    border-radius: 4px;
    padding: 0.85rem 1rem;
}

.sugerencia-item .fw-bold {
    display: block;
    margin-bottom: 0.15rem;
}

.sugerencia-item span:not(.fw-bold) {
    display: block;
    margin-top: 0.35rem;
    line-height: 1.55;
}

.sugerencia-item--transparencia {
    background: #e8f3fb;
    border-color: #c8e0ef;
    border-left-color: #5b9bd5;
    color: #2a4a5e;
}
.sugerencia-item--transparencia .fw-bold { color: #1e5a7a; }

.sugerencia-item--rendicion {
    background: #e6f6f3;
    border-color: #bfe5dc;
    border-left-color: #4da894;
    color: #2a4f48;
}
.sugerencia-item--rendicion .fw-bold { color: #1e5c52; }

.sugerencia-item--participacion {
    background: #eef6e8;
    border-color: #d0e4c0;
    border-left-color: #7aad5c;
    color: #334a2a;
}
.sugerencia-item--participacion .fw-bold { color: #3d5c2e; }

.sugerencia-item--colaboracion {
    background: #f0ecfa;
    border-color: #d5cce8;
    border-left-color: #8b72c4;
    color: #3a3450;
}
.sugerencia-item--colaboracion .fw-bold { color: #4a3d6e; }

.sugerencia-item--innovacion {
    background: #fdf4e8;
    border-color: #edd9b8;
    border-left-color: #d4a24a;
    color: #4a3d2a;
}
.sugerencia-item--innovacion .fw-bold { color: #6b4f1e; }

.sugerencia-item--marcos {
    background: #fceef3;
    border-color: #e8ccd8;
    border-left-color: #c76b8f;
    color: #4a2f3a;
}
.sugerencia-item--marcos .fw-bold { color: #6b3349; }

#respuesta-validar .sugerencias-panel {
    background: var(--surface-white);
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 6px rgba(30, 42, 74, 0.08);
}

#respuesta-validar h5 {
    color: var(--heading-color);
}

.btn-success {
    background-color: var(--primary-navy);
    border: none;
    color: #fff;
    border-radius: 4px;
    padding: 0.75rem 2rem;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-success:hover {
    background-color: var(--primary-navy-hover);
    color: #fff;
    box-shadow: 0 2px 8px rgba(30, 42, 74, 0.25);
}

/* Estilos del enlace: ver sección 7 (.aviso-tratamiento-datos) */

/*--- 1.F Indicaciones colapsables (.bloque-indicaciones) — /propuestas /mesas /participa ---*/
.bloque-indicaciones {
    background: var(--light-bg);
    color: var(--text-color);
    border-radius: 4px;
    border: 1px solid var(--border-color);
}
@media (max-width: 600px) {
    .bloque-indicaciones {
        max-height: 0 !important;
        overflow: hidden !important;
        padding: 0 12px !important;
        opacity: 0 !important;
        transition: max-height 0.4s ease, opacity 0.4s ease, padding 0.4s ease;
    }
    .bloque-indicaciones.abierto {
        max-height: none !important;
        overflow: visible !important;
        padding: 12px !important;
        opacity: 1 !important;
    }
}
.br-space {
    display: block;
    height: 15px; /* altura del salto */
    content: "";
}
.text-muted{
    font-size: 0.88rem;
}

/*-----------------------------------------------------------------------------
  1b) Indicaciones con barra lateral (estilo mesas/participa)
  Aplica: /mesas, /participa (también disponible en /propuestas)
-----------------------------------------------------------------------------*/
.bloque-indicaciones {
    border-left: 4px solid var(--primary-navy);
}

/*-----------------------------------------------------------------------------
  2) POLÍTICA — /politica (templates/politica.html)
  Buscar: .page-wrap, .seccion-card, .seccion-cabecera, .btn-revisar,
          .seccion-acordeon, .comentario-panel, .barra-enviar, .btn-enviar,
          .modal-datos, .footer-note, .contador
-----------------------------------------------------------------------------*/
body.page-politica {
    padding-bottom: 6rem;
}

/* body base + padding: ver sección 1 y body.page-politica */
/* .site-banner: ver sección 1 */
.page-wrap {
    max-width: 900px;
    margin: 0 auto;
    padding: 1rem 0.85rem 2rem;
}

.card {
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(30, 42, 74, 0.08);
    background: var(--surface-white);
    margin-bottom: 1rem;
}

.card-body { padding: 1.1rem 1.15rem; }

.seccion-card {
    background: var(--surface-white);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 0.9rem 1rem 0.95rem;
    margin-bottom: 0.9rem;
    scroll-margin-top: 1rem;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.seccion-card.seccion-card--activa {
    background: var(--card-active-bg);
    border-color: var(--card-active-border);
}

.seccion-card.comentario-marcado {
    border-left: 3px solid var(--primary-navy);
}

.seccion-cabecera {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem 0.85rem;
    padding-bottom: 0.55rem;
    margin-bottom: 0.35rem;
    border-bottom: 3px solid transparent;
    transition: border-color 0.2s ease;
}

.seccion-card.seccion-card--activa .seccion-cabecera {
    border-bottom-color: var(--accent-gold);
}

.seccion-card h2 {
    color: var(--heading-color);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.35;
    flex: 1 1 220px;
    cursor: pointer;
}

.seccion-card h2:hover {
    text-decoration: underline;
}

.seccion-card.nivel-2 h2 {
    font-size: 0.98rem;
    font-weight: 600;
}

.btn-revisar {
    flex-shrink: 0;
    border: 1px solid var(--primary-navy);
    background: var(--surface-white);
    color: var(--primary-navy);
    border-radius: 4px;
    padding: 0.45rem 0.8rem;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

.btn-revisar:hover,
.btn-revisar:focus {
    background: var(--primary-navy);
    color: #fff;
}

.btn-revisar[aria-expanded="true"] {
    background: var(--primary-navy);
    color: #fff;
}

.seccion-acordeon {
    display: none;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--border-color);
}

.seccion-acordeon.abierto {
    display: block;
}

.seccion-contenido {
    font-size: 0.96rem;
    color: var(--text-color);
    margin-bottom: 0;
}

.seccion-contenido p {
    margin: 0 0 0.85rem;
    text-align: justify;
}

.seccion-contenido p:last-child {
    margin-bottom: 0;
}

.seccion-contenido .titulo-interno {
    margin-top: 1.1rem;
    margin-bottom: 0.55rem;
    color: var(--heading-color);
    text-align: left;
}

.seccion-contenido .titulo-interno:first-child {
    margin-top: 0;
}

.seccion-contenido .termino-definicion {
    color: var(--heading-color);
    font-weight: 700;
}

.seccion-comentario {
    margin-top: 0.9rem;
    padding-top: 0.85rem;
    border-top: 1px dashed var(--border-color);
}

.btn-agregar-comentario {
    display: inline-block;
    background: none;
    border: none;
    padding: 0;
    color: var(--heading-color);
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
    text-align: left;
}

.btn-agregar-comentario:hover,
.btn-agregar-comentario:focus {
    color: var(--primary-navy-hover);
}

.comentario-panel {
    display: none;
    margin-top: 0.65rem;
}

.comentario-panel.abierto {
    display: block;
}

.form-label {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.4rem;
}

.form-control, .form-select {
    border: 1px solid var(--input-border);
    border-radius: 4px;
    background: var(--input-bg);
    color: var(--text-color);
    font-size: 16px;
    padding: 0.7rem 0.75rem;
    box-shadow: none;
}

.form-control:focus, .form-select:focus {
    border-color: var(--accent-teal);
    background: var(--input-focus-bg);
    box-shadow: 0 0 0 2px rgba(240, 160, 0, 0.22);
}

textarea.form-control { min-height: 4.5rem; resize: vertical; }

.contador {
    text-align: right;
    color: var(--secondary-muted);
    font-size: 0.78rem;
    margin-top: 0.2rem;
}

.barra-enviar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 200;
    background: rgba(255, 255, 255, 0.97);
    border-top: 1px solid var(--border-color);
    padding: 0.65rem 0.85rem calc(0.65rem + env(safe-area-inset-bottom, 0));
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08);
}

.barra-enviar-inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.resumen-comentarios {
    font-size: 0.9rem;
    color: var(--secondary-muted);
}

.btn-enviar {
    background-color: var(--accent-gold);
    border: none;
    color: #1e2a4a;
    border-radius: 4px;
    padding: 0.75rem 1.25rem;
    font-weight: 700;
    min-width: 180px;
}

.btn-enviar:hover, .btn-enviar:focus {
    background-color: #d99200;
    color: #1e2a4a;
}

.btn-enviar:disabled { opacity: 0.6; }

.modal-datos .modal-header {
    background: var(--primary-navy);
    color: #fff;
}

.modal-datos .btn-close { filter: invert(1); }

.input-error {
    border-color: #dc3545 !important;
    background: #fff6f6 !important;
}

.footer-note {
    font-size: 0.88rem;
    color: var(--secondary-muted);
    text-align: center;
    margin-top: 1rem;
}

@media (min-width: 768px) {
    .page-wrap { padding: 1.5rem 1rem 2rem; }
}

/*-----------------------------------------------------------------------------
  3) POLÍTICA /ENVIAR — /politica/enviar (templates/politica_enviar.html)
  Buscar: .page-title, .resumen-box, .btn-enviar, .btn-volver
-----------------------------------------------------------------------------*/

/* body: sección 1 */
/* .site-banner: sección 1 */
/* Ancho más estrecho solo en enviar/datos de contacto */
body.page-politica-enviar .page-wrap {
    max-width: 720px;
}
.card {
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    background: var(--surface-white);
    margin-bottom: 1rem;
}

.page-title {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 1rem;
}

.card-body { padding: 1.1rem 1.15rem; }

.resumen-box {
    background: #eef2f6;
    border: 1px solid #c5d4e3;
    border-radius: 4px;
    padding: 0.9rem 1rem;
    margin-bottom: 1.1rem;
    font-size: 0.98rem;
    text-align: justify;
}

.form-label {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.4rem;
}

.form-control, .form-select {
    border: 1px solid var(--input-border);
    border-radius: 4px;
    background: var(--input-bg);
    color: var(--text-color);
    font-size: 16px;
    padding: 0.7rem 0.75rem;
    box-shadow: none;
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary-navy);
    background: var(--input-focus-bg);
    box-shadow: 0 0 0 2px rgba(232, 185, 35, 0.2);
}

.btn-enviar {
    background-color: var(--accent-gold);
    border: none;
    color: #1e2a4a;
    border-radius: 4px;
    padding: 0.8rem 1.25rem;
    font-weight: 700;
    width: 100%;
}

.btn-enviar:hover, .btn-enviar:focus {
    background-color: #d99200;
    color: #1e2a4a;
}

.btn-volver {
    display: inline-block;
    margin-top: 0.75rem;
    color: var(--heading-color);
    font-weight: 600;
}

.input-error {
    border-color: #dc3545 !important;
    background: #fff6f6 !important;
}

/*-----------------------------------------------------------------------------
  4) POLÍTICA ENVIADO — éxito tras aportes (templates/politica_enviado.html)
  Buscar: body.page-politica-enviado .page-wrap, .card, h1, .btn-volver
-----------------------------------------------------------------------------*/
body.page-politica-enviado {
    --primary-navy: #1a3c5e;
    --heading-color: #1a3c5e;
    --light-bg: #f4f4f4;
    --surface-white: #ffffff;
    --border-color: #dddddd;
    --text-color: #333333;
}
body.page-politica-enviado{
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background: var(--light-bg);
    color: var(--text-color);
}
body.page-politica-enviado .page-wrap{
    max-width: 720px;
    margin: 2rem auto;
    padding: 0 0.85rem;
}
body.page-politica-enviado .card{
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background: var(--surface-white);
    padding: 1.5rem 1.25rem;
}
body.page-politica-enviado h1{
    color: var(--heading-color);
    font-size: 1.25rem;
    font-weight: 700;
}
body.page-politica-enviado .btn-volver{
    display: inline-block;
    margin-top: 1rem;
    background: var(--primary-navy);
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
    padding: 0.7rem 1.1rem;
    font-weight: 600;
}
body.page-politica-enviado .btn-volver:hover{
    color: #fff;
    opacity: 0.92;
}

/*-----------------------------------------------------------------------------
  5) INGRESO / SISTEMATIZACIÓN — /ingreso (templates/ingreso.html)
  Buscar: body.page-ingreso .campo-card, .btn-voz, .barra-guardar, .btn-guardar
-----------------------------------------------------------------------------*/
body.page-ingreso {
    --primary-navy: #1a3c5e;
    --primary-navy-hover: #143049;
    --secondary-muted: #777777;
    --text-color: #333333;
    --heading-color: #1a3c5e;
    --light-bg: #f4f4f4;
    --surface-white: #ffffff;
    --border-color: #dddddd;
    --input-bg: #ececec;
    --input-border: #cccccc;
    --input-focus-bg: #e8eff5;
    --card-active-bg: #eef2f6;
    --card-active-border: #c5d4e3;
}
body.page-ingreso{
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: var(--text-color);
    background-color: var(--light-bg);
    line-height: 1.55;
    padding-bottom: env(safe-area-inset-bottom, 0);
}

body.page-ingreso .navbar{
    background-color: var(--surface-white);
    border-bottom: 1px solid var(--border-color);
}

body.page-ingreso .navbar .container{
    max-width: 720px;
    background-color: var(--surface-white);
}

body.page-ingreso .page-wrap{
    max-width: 720px;
    margin: 0 auto;
    padding: 1rem 0.85rem 6rem;
}

body.page-ingreso .card{
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    background: var(--surface-white);
    margin-bottom: 1rem;
}

body.page-ingreso .card-header{
    background-color: var(--primary-navy);
    color: #fff;
    border-radius: 3px 3px 0 0 !important;
    padding: 1rem 1.1rem;
}

body.page-ingreso .card-header h1{
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0;
}

body.page-ingreso .card-body{
    padding: 1rem 1.1rem;
}

body.page-ingreso .intro-text{
    font-size: 0.98rem;
    margin-bottom: 0;
    text-align: justify;
}

body.page-ingreso .campo-card{
    background: var(--surface-white);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 0.85rem 0.9rem 0.75rem;
    margin-bottom: 0.85rem;
    box-shadow: 0 1px 3px rgba(26, 60, 94, 0.05);
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

body.page-ingreso .campo-card.campo-card--activa{
    background: var(--card-active-bg);
    border-color: var(--card-active-border);
}

body.page-ingreso .form-label{
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.45rem;
    line-height: 1.35;
}

body.page-ingreso .campo-toolbar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

body.page-ingreso .btn-voz{
    flex-shrink: 0;
    border: 1px solid var(--input-border);
    background: var(--surface-white);
    color: var(--heading-color);
    border-radius: 4px;
    padding: 0.35rem 0.55rem;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1;
}

body.page-ingreso .btn-voz:hover, body.page-ingreso .btn-voz:focus{
    border-color: var(--primary-navy);
    color: var(--primary-navy);
}

body.page-ingreso .btn-voz.escuchando{
    background: var(--primary-navy);
    border-color: var(--primary-navy);
    color: #fff;
}

body.page-ingreso .btn-voz:disabled{
    opacity: 0.45;
}

body.page-ingreso .form-control, body.page-ingreso .form-select{
    border: 1px solid var(--input-border);
    border-radius: 4px;
    background: var(--input-bg);
    color: var(--text-color);
    font-size: 16px;
    padding: 0.7rem 0.75rem;
    box-shadow: none;
}

body.page-ingreso .form-control:focus, body.page-ingreso .form-select:focus{
    border-color: var(--primary-navy);
    background: var(--input-focus-bg);
    box-shadow: 0 0 0 2px rgba(232, 185, 35, 0.2);
}

body.page-ingreso textarea.form-control{
    min-height: 5.5rem;
    resize: vertical;
}

body.page-ingreso .contador{
    text-align: right;
    color: var(--secondary-muted);
    font-size: 0.8rem;
    margin-top: 0.25rem;
}

body.page-ingreso .input-error{
    border-color: #dc3545 !important;
    background: #fff6f6 !important;
}

body.page-ingreso .alerta-voz{
    font-size: 0.85rem;
    color: var(--secondary-muted);
    background: var(--light-bg);
    border: 1px dashed var(--border-color);
    border-radius: 4px;
    padding: 0.65rem 0.75rem;
    margin-bottom: 0.85rem;
}

body.page-ingreso .barra-guardar{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100;
    background: rgba(255, 255, 255, 0.97);
    border-top: 1px solid var(--border-color);
    padding: 0.65rem 0.85rem calc(0.65rem + env(safe-area-inset-bottom, 0));
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08);
}

body.page-ingreso .barra-guardar .container-guardar{
    max-width: 720px;
    margin: 0 auto;
}

body.page-ingreso .btn-guardar{
    width: 100%;
    background-color: var(--primary-navy);
    border: none;
    color: #fff;
    border-radius: 4px;
    padding: 0.85rem 1rem;
    font-size: 1.05rem;
    font-weight: 600;
}

body.page-ingreso .btn-guardar:hover, body.page-ingreso .btn-guardar:focus{
    background-color: var(--primary-navy-hover);
    color: #fff;
}

body.page-ingreso .btn-guardar:disabled{
    opacity: 0.65;
}

body.page-ingreso #mensajeRespuesta{
    scroll-margin-top: 1rem;
}

body.page-ingreso .footer-note{
    font-size: 0.88rem;
    color: var(--secondary-muted);
    text-align: center;
    margin-top: 1rem;
}

@media (min-width: 768px) {
    body.page-ingreso .page-wrap{
        padding: 1.5rem 1rem 2rem;
    }

    body.page-ingreso .barra-guardar{
        position: static;
        background: transparent;
        border: none;
        box-shadow: none;
        padding: 0;
        margin-top: 0.5rem;
    }

    body.page-ingreso .btn-guardar{
        max-width: 280px;
        margin: 0 auto;
        display: block;
    }
}

/*-----------------------------------------------------------------------------
  6) CONFIRMACIÓN DE PROPUESTA (templates/confirmacion_propuesta_justicia.html)
  Layout legado (paleta distinta). Todo va bajo body.page-confirmacion.
  Buscar: .navbar, .card-header, .btn-primary
-----------------------------------------------------------------------------*/
body.page-confirmacion {
    --primary-color: #333333;
    --accent-color: #3498db;
    --secondary-color: #2c3e50;
}
body.page-confirmacion{
    background-color: #f8f9fa;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body.page-confirmacion .navbar{
    background-color: #f7f9fb;
    /*box-shadow: 0 2px 4px rgba(0,0,0,0.1);*/
    overflow: hidden;
    width: 100%;
    padding: 0;
    margin: 0;
}

body.page-confirmacion .navbar .container{
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 1170px;
    padding: 0;
    margin: 0 auto;
    background-color: #333333;
}

body.page-confirmacion .navbar-brand{
    color: white !important;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}
body.page-confirmacion .navbar-brand img{
    width: 100%;
    height: auto;
    object-fit: contain;
    margin: 0;
    padding: 0;
    display: block;
}

body.page-confirmacion .card{
    border: none;
    border-radius: 10px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    background: white;
    margin-bottom: 2rem;
}
body.page-confirmacion .card-header{
    background-color: #575757;
    color: white;
    border-radius: 10px 10px 0 0 !important;
    padding: 1.5rem;
}

body.page-confirmacion .card-body{
    padding: 2rem;
}

body.page-confirmacion .btn-primary{
    background-color: var(--accent-color);
    border: none;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

body.page-confirmacion .btn-primary:hover{
    background-color: #2980b9;
    transform: translateY(-2px);
}

body.page-confirmacion .container{
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

@media (max-width: 768px) {
    body.page-confirmacion .container{
        padding: 0.5rem;
    }
    body.page-confirmacion .card-body{
        padding: 1.5rem;
    }
    body.page-confirmacion .btn{
        width: 100%;
        margin-bottom: 0.5rem;
    }
}

/*-----------------------------------------------------------------------------
  7) AVISO DE DATOS PERSONALES — parcial _aviso_tratamiento_datos.html
  Usado en: /propuestas, /participa, /politica/enviar
  Buscar: .aviso-tratamiento-datos, .datos-personales-link
-----------------------------------------------------------------------------*/
.aviso-tratamiento-datos {
    background: var(--surface-white, #fff);
    padding: 0.75rem 0;
    border-radius: 4px;
    margin-top: 0.75rem;
    font-size: 0.96rem;
    text-align: justify;
}

.datos-personales-link {
    color: var(--heading-color, #1e2a4a);
    font-weight: 600;
    text-decoration: underline;
}
.datos-personales-link:hover {
    color: var(--accent-teal, #258fb6);
}

/*-----------------------------------------------------------------------------
  8) NOTA SOBRE .page-wrap vs .container
  - /propuestas, /mesas, /participa → .container (max-width 900px, sección 1)
  - /politica → .page-wrap (definido en sección 2, max-width 900px)
  - /politica/enviar → body.page-politica-enviar .page-wrap (720px, sección 3)
  - /ingreso → body.page-ingreso .page-wrap (sección 5)
-----------------------------------------------------------------------------*/
