/* ============================================================================
 * DNASI - Hoja de estilos compartida (sistema de diseño "neón" unificado)
 * Extraída y consolidada a partir de login.php / mis_casos.php / normativa.php,
 * que ya usaban esta paleta. Pensada para irse enlazando en el resto de
 * páginas del proyecto de forma incremental, en reemplazo de sus <style>
 * inline duplicados.
 *
 * Uso: <link rel="stylesheet" href="assets/css/dnasi.css">
 * Requiere en <head>:
 *   <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;800&family=Outfit:wght@400;700;900&display=swap" rel="stylesheet">
 *   <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rancho&effect=shadow-multiple">
 *   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
 * Y en <html>: data-bs-theme="dark" (o "light")
 * ============================================================================ */

/* ================= VARIABLES ================= */
:root {
    --bg-body: #090c14;
    --bg-surface: #090c14;
    --bg-card: #0c1a36;
    --border-color: rgba(0, 240, 255, 0.25);
    --border-hover: rgba(0, 240, 255, 0.6);
    --text-main: #e2e8f8;
    --text-muted: #8a9fc4;
    --primary: #00f0ff;
    --secondary: #3a86ff;
    --accent: #ff0055;
    --glass-blur: blur(12px);
    --shadow-neon: 0 0 20px rgba(0, 240, 255, 0.2);
    --shadow-card: 0 10px 30px rgba(5, 4, 4, 0.5);
}

[data-bs-theme="light"] {
    --bg-body: #f0f4f8;
    --bg-surface: #ffffff;
    --bg-card: #ffffff;
    --border-color: rgba(10, 19, 43, 0.15);
    --border-hover: #3a86ff;
    --text-main: #0a132b;
    --text-muted: #4a5568;
    --primary: #0044cc;
    --secondary: #3a86ff;
    --accent: #e6004c;
    --shadow-neon: 0 0 20px rgba(0, 68, 204, 0.2);
    --shadow-card: 0 10px 20px rgba(0, 0, 0, 0.05);
}

/* Fondo institucional: imagen solo en modo claro (igual que login.php) */
[data-bs-theme="light"] body.dnasi-bg::before {
    display: none !important;
}

[data-bs-theme="light"] body.dnasi-bg {
    background: url('../img/background/fondo_SGD.png') no-repeat center center fixed !important;
    background-size: cover !important;
    background-color: #f0f4f8 !important;
}

/* ================= BASE ================= */
body {
    background-color: var(--bg-body);
    color: var(--text-main);
    font-family: 'Inter', sans-serif;
    min-height: 100vh;
    transition: background-color 0.4s ease, color 0.4s ease;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Outfit', sans-serif;
}

a { color: var(--primary); }

/* ================= NAVBAR / MARCA ================= */
.navbar-brand-text {
    font-family: 'Rancho', cursive;
    font-weight: 900;
    font-size: clamp(0.9rem, 2vw, 1.5rem);
    line-height: 1.2;
    color: var(--text-main);
    white-space: normal;
    word-wrap: break-word;
    text-shadow: 0 0 8px rgba(0, 240, 255, 0.4), 0 0 15px rgba(0, 240, 255, 0.2);
    transition: text-shadow 0.3s ease;
}

[data-bs-theme="light"] .navbar-brand-text {
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

.navbar-brand-text span {
    color: var(--primary);
    text-shadow: 0 0 10px rgba(0, 240, 255, 0.6);
}

[data-bs-theme="light"] .navbar-brand-text span {
    text-shadow: none;
}

@media (max-width: 991.98px) {
    .navbar-brand-text {
        text-align: center;
        margin: 0 auto;
    }
}

/* ================= BOTÓN DE CAMBIO DE TEMA ================= */
.theme-toggle-btn {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    border-radius: 50px;
    padding: 6px 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    text-decoration: none;
}

.theme-toggle-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

[data-bs-theme="light"] .theme-toggle-btn {
    background: rgba(0, 0, 0, 0.1);
    border-color: rgba(0, 0, 0, 0.2);
    color: #000;
}

[data-bs-theme="light"] .theme-toggle-btn:hover {
    background: rgba(0, 0, 0, 0.15);
    color: #000;
}

/* ================= BOTONES ================= */
.btn-neon {
    background: linear-gradient(45deg, var(--secondary), var(--primary));
    color: #fff !important;
    border: none;
    padding: 14px 32px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 15px rgba(0, 240, 255, 0.4);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.btn-neon::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transform: skewX(-20deg);
    transition: all 0.5s ease;
}

.btn-neon:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 25px rgba(0, 240, 255, 0.6);
    color: #fff;
}

.btn-neon:hover::after {
    left: 150%;
}

/* ================= NAV PILL BUTTONS ================= */
.nav-pill-btn {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border-color);
    color: var(--text-main);
    padding: 5px 12px;
    border-radius: 30px;
    display: flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 0.8rem;
    text-decoration: none;
    white-space: nowrap;
}

.nav-pill-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--primary);
    color: var(--primary);
}

[data-bs-theme="light"] .nav-pill-btn {
    background: rgba(0, 0, 0, 0.05);
    color: var(--text-main);
}

[data-bs-theme="light"] .nav-pill-btn:hover {
    background: rgba(0, 0, 0, 0.1);
    color: var(--primary);
}

/* ================= TARJETAS "VIDRIO" (glass-card) ================= */
.glass-card,
.card-menu {
    background: var(--bg-card);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-color);
    border-radius: 18px;
    box-shadow: var(--shadow-card);
    color: var(--text-main);
}

.glass-card h1, .glass-card h2, .glass-card h3,
.glass-card h4, .glass-card h5, .glass-card h6 {
    color: var(--text-main);
}

.glass-card .text-muted {
    color: var(--text-muted) !important;
}

/* ================= RESPONSIVE: BARRAS LATERALES FIJAS ================= */
/* Utilidad opcional para sidebars tipo .sidebar-dnasi de 280px: en pantallas
   chicas pasan a superponerse (overlay) en vez de empujar el contenido. */
@media (max-width: 991.98px) {
    .sidebar-dnasi {
        position: fixed;
        top: 0;
        left: 0;
        height: 100vh;
        z-index: 1050;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

    .sidebar-dnasi.abierto {
        transform: translateX(0);
        box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
    }
}

/* ================= RESPONSIVE: TABLAS ================= */
.table-responsive {
    -webkit-overflow-scrolling: touch;
}

/* ================= RESPONSIVE: FILTROS EN LÍNEA ================= */
/* Utilidad opcional: filas de filtros que en vez de forzar scroll horizontal
   se envuelven en varias líneas en pantallas pequeñas. */
@media (max-width: 767.98px) {
    .filtros-dnasi {
        flex-wrap: wrap !important;
    }

    .filtros-dnasi > * {
        width: 100% !important;
    }
}
