/* static/css/main.css */
/* =====================================================================
    Amparo Rutas Nacionales — hoja de estilos global
   ===================================================================== */

:root {
    --rn-primary:         #1e3a4c;
    --rn-primary-dark:    #142833;
    --rn-primary-light:   #2d5a75;
    --rn-accent:          #b45309;
    --rn-titulo:          #ee3d8f;
    --rn-cta:             #32bbed;
    --rn-cta-dark:        #1a9fd0;

    --rn-text:            #1f2937;
    --rn-text-muted:      #6b7280;
    --rn-text-inverse:    #ffffff;

    --rn-bg:              #f7f7f8;
    --rn-surface:         #ffffff;
    --rn-border:          #e5e7eb;

    --rn-danger:          #b91c1c;

    --rn-font-base:       system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --rn-font-size-base:  15px;

    --rn-radius:          6px;
    --rn-radius-lg:       10px;
    --rn-shadow-sm:       0 1px 2px rgba(0, 0, 0, 0.05);
}

/* Overrides de Bootstrap para heredar la paleta */
:root {
    --bs-primary:         var(--rn-primary);
    --bs-primary-rgb:     30, 58, 76;
    --bs-body-color:      var(--rn-text);
    --bs-body-bg:         var(--rn-bg);
    --bs-border-color:    var(--rn-border);
    --bs-border-radius:   var(--rn-radius);
}

/* ---------- base ---------- */

html, body { min-height: 100%; }

body {
    font-family: var(--rn-font-base);
    font-size: var(--rn-font-size-base);
    color: var(--rn-text);
    background-color: var(--rn-bg);
}

a { color: var(--rn-primary); }
a:hover { color: var(--rn-primary-dark); }

h1, h2, h3, h4, h5, h6 {
    color: var(--rn-text);
    font-weight: 600;
}

/* ---------- cards ---------- */

.rn-card {
    background-color: var(--rn-surface);
    border: 1px solid var(--rn-border);
    border-radius: var(--rn-radius-lg);
    box-shadow: var(--rn-shadow-sm);
}

/* Franja de acento arriba del card del encabezado */
/* .rn-card-destacado {
    border-top: 3px solid var(--rn-accent);
} */

/* ---------- buttons ---------- */

.btn-primary {
    background-color: var(--rn-primary);
    border-color: var(--rn-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--rn-primary-dark);
    border-color: var(--rn-primary-dark);
}

.btn-outline-primary {
    color: var(--rn-primary);
    border-color: var(--rn-primary);
}

.btn-outline-primary:hover {
    background-color: var(--rn-primary);
    border-color: var(--rn-primary);
}

/* ---------- forms ---------- */

.form-label {
    font-weight: 500;
    color: var(--rn-text);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--rn-primary-light);
    box-shadow: 0 0 0 0.2rem rgba(45, 90, 117, 0.15);
}

.form-label.required::after {
    content: " *";
    color: var(--rn-danger);
    font-weight: 500;
}

/* ---------- utilidades ---------- */

.rn-text-muted { color: var(--rn-text-muted); }

/* Carátula judicial: chica, monoespaciada, atenuada */
.rn-caratula {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--rn-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

/* Marca de campo opcional, al lado de la etiqueta */
.rn-opcional {
    font-weight: 400;
    font-size: 0.8125rem;
    color: var(--rn-text-muted);
}

/* Listas de definición del panel: etiqueta atenuada, valor destacado */
.rn-datos dt {
    font-weight: 500;
    color: var(--rn-text-muted);
    font-size: 0.875rem;
}

.rn-datos dd {
    margin-bottom: 0.75rem;
}

.rn-datos dd:last-child {
    margin-bottom: 0;
}

.rn-footer {
    background-color: var(--rn-surface);
    border-top: 1px solid var(--rn-border);
    color: var(--rn-text-muted);
    font-size: 0.875rem;
    padding: 1.25rem 0;
    margin-top: 3rem;
}

/* Select2 alineado con la altura de los inputs de Bootstrap */
.select2-container--bootstrap-5 .select2-selection {
    min-height: calc(1.5em + 0.75rem + 2px);
}

/* ---------- navbar del panel ---------- */

.rn-navbar {
    background-color: var(--rn-primary);
    border-bottom: 1px solid var(--rn-primary-dark);
}

.rn-navbar .navbar-brand {
    color: var(--rn-text-inverse);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.3px;
}

.rn-navbar-user {
    color: rgba(255, 255, 255, 0.7);
}

/* ---------- fondo del formulario público ---------- */

/* La imagen va en un pseudo-elemento fijo detrás de todo, con un velo
   blanco encima. Así el contenido nunca pierde contraste y el scroll
   no arrastra la imagen. */
.rn-con-fondo::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(247, 247, 248, 0.88), rgba(247, 247, 248, 0.88)),
        url("../img/fondo_obra.983463317447.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* ---------- formulario público: colores de campaña ---------- */

.rn-titulo-campana {
    color: var(--rn-titulo);
}

/* Franja superior del card del encabezado, en el rosa del título */
/* .rn-card-destacado {
    border-top-color: var(--rn-titulo);
} */

.btn-cta {
    background-color: var(--rn-cta);
    border-color: var(--rn-cta);
    color: #ffffff;
    font-weight: 500;
}

.btn-cta:hover,
.btn-cta:focus {
    background-color: var(--rn-cta-dark);
    border-color: var(--rn-cta-dark);
    color: #ffffff;
}

.btn-cta:disabled {
    background-color: var(--rn-cta);
    border-color: var(--rn-cta);
    color: #ffffff;
    opacity: 0.65;
}

/* ---------- responsive ---------- */

@media (max-width: 576px) {
    body { font-size: 14px; }
}