/*
 * PERSONALIZACIÓN FRONTEND - MILAVIA / TRYTON SAO
 * CSS Stylesheet
 * 
 * Proyecto: MILAVIA - Plataforma de gestión
 * Marca: MILAVIA
 * Fecha: 10 de febrero de 2026
 * Versión: 2.1.0
 * Última actualización: Rebranding completo MILAVIA
 * 
 * Este archivo contiene las personalizaciones de estilos visuales
 * sin modificar el core del sistema GNU Health/Tryton.
 * 
 * Organización:
 * 1. Variables y colores corporativos
 * 2. Logo y navbar
 * 3. Esquema de colores (navbar, botones, formularios)
 * 4. Login personalizado + Modales generales
 * 5. Checkboxes y radio buttons MILAVIA
 * 6. Iconos SVG personalizados + fondos de iconos menú lateral
 * 7. Favicon e íconos
 * 8. Tipografía personalizada
 * 9. Footer corporativo
 * 10. Ajustes responsive
 * 
 * Compatibilidad: GNU Health 7.0, Tryton 7.0+
 * Licencia: Uso interno MILAVIA
 */

/* ============================================
   1. VARIABLES Y COLORES CORPORATIVOS
   ============================================ */

:root {
    /* COLORES CORPORATIVOS - Personalizar aquí con los colores de tu empresa */
    
    --color-primario: #1976D2;        /* Azul médico profesional */
    --color-primario-hover: #145FA8;  /* Azul más oscuro */
    --color-primario-claro: #5AA4E6;  /* Azul claro */
    --color-secundario: #2ECC71;      /* Verde salud */
    --color-info: #1976D2;            /* Azul cyan */
    --color-warning: #F4B942;         /* Amarillo */
    --color-danger: #dc3545;          /* Rojo */
    
    /* TIPOGRAFÍA */
    --font-principal: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-titulo: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    
    /* ESPACIADO */
    --navbar-height: 50px;
    --footer-height: 28px;
}

/* ============================================
   2. LOGO Y NAVBAR
   ============================================ */

/* Personalizar el título en la navbar - SOLO TEXTO */
#title {
    font-weight: 300 !important;
    font-size: 20px !important;           /* Tamaño más grande para texto solo */
    letter-spacing: 0.8px !important;     /* Mejor espaciado */
    color: #ffffff !important;            /* Asegurar que sea blanco */
    /* text-transform: uppercase !important; Mayúsculas (opcional, puedes quitarlo) */
    display: inline !important;           /* Asegurar visibilidad */
    opacity: 1 !important;
    visibility: visible !important;
}

/* Logo corporativo - Reemplazar imagen cuando esté disponible */
.navbar-brand {
    padding: 8px 15px !important;
    height: var(--navbar-height) !important;
}

/* Insertar logo como background (descomentar y ajustar cuando tengas el logo) */

/* .navbar-brand::before {
    content: '';
    display: inline-block;
    width: 120px;
    height: 34px;
    background-image: url('custom-assets/milavia-logo-navbar-dark.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-right: 10px;
    vertical-align: middle;
} */


/* Ajustar espaciado si usas logo */
.navbar-brand .icon {
    /* Ocultar ícono hamburguesa si prefieres solo logo */
    /* display: none; */
}

/* ============================================
   3. ESQUEMA DE COLORES
   ============================================ */

/* NAVBAR */
.navbar-inverse {
    background-color: var(--color-primario);
    border-color: var(--color-primario);
}

.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
    color: #ffffff;
}

.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
    background-color: var(--color-primario-hover);
    color: #ffffff;
}

.navbar-inverse .navbar-toggle {
    border-color: rgba(255, 255, 255, 0.3);
}

.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
    background-color: var(--color-primario-hover);
}

.navbar-inverse .navbar-toggle .icon-bar {
    background-color: #ffffff;
}

/* BOTONES */
.btn-primary {
    background-color: var(--color-primario);
    border-color: var(--color-primario);
}

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

.btn-success {
    background-color: var(--color-secundario);
    border-color: var(--color-secundario);
}

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

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

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

/* ENLACES */
a {
    color: var(--color-primario);
}

a:hover,
a:focus {
    color: var(--color-primario-hover);
}

/* PANELES */
.panel-default > .panel-heading {
    background-color: var(--color-primario);
    border-color: var(--color-primario);
    color: #ffffff;
}

.panel-primary {
    border-color: var(--color-primario);
}

.panel-primary > .panel-heading {
    background-color: var(--color-primario);
    border-color: var(--color-primario);
}

/* FORMULARIOS - Estados y bordes mejorados */

/* Bordes base para inputs y textareas */
/* .form-control,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
select,
textarea {
    border: 1.5px solid #d0d0d0 !important;
    border-radius: 4px;
    padding: 8px 12px;
    transition: all 0.2s ease-in-out;
} */

/* Estado normal (hover) */
.form-control:hover,
input[type="text"]:hover,
input[type="password"]:hover,
input[type="email"]:hover,
input[type="number"]:hover,
input[type="date"]:hover,
input[type="time"]:hover,
textarea:hover,
select:hover {
    border-color: #b0b0b0 !important;
}

/* Estados focus - bordes más visibles */
/* .form-control:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
textarea:focus,
select:focus {
    border: 2px solid var(--color-primario) !important;
    outline: 0;
    box-shadow: 0 0 0 0.15rem rgba(25, 118, 210, 0.15);
    background-color: #fafffe;
} */

/* Textareas de múltiples líneas - bordes más prominentes */
textarea {
    border: 2px solid #c0c0c0 !important;
    min-height: 80px;
    resize: vertical;
    font-family: inherit;
    line-height: 1.5;
}

textarea:focus {
    border: 2.5px solid var(--color-primario) !important;
    box-shadow: 0 0 0 0.2rem rgba(25, 118, 210, 0.20);
}

/* Textareas grandes (más de 3 líneas) */
textarea[rows="4"],
textarea[rows="5"],
textarea[rows="6"],
textarea[rows="7"],
textarea[rows="8"],
textarea[rows="9"],
textarea[rows="10"] {
    border: 2px solid #a0a0a0 !important;
    background-color: #fafafa;
}

textarea[rows="4"]:focus,
textarea[rows="5"]:focus,
textarea[rows="6"]:focus,
textarea[rows="7"]:focus,
textarea[rows="8"]:focus,
textarea[rows="9"]:focus,
textarea[rows="10"]:focus {
    border: 3px solid var(--color-primario) !important;
    background-color: #ffffff;
    box-shadow: 0 0 0 0.25rem rgba(25, 118, 210, 0.25);
}

/* Estados disabled */
.form-control:disabled,
input:disabled,
textarea:disabled,
select:disabled {
    border-color: #e0e0e0 !important;
    background-color: #f5f5f5;
    cursor: not-allowed;
    opacity: 0.6;
}

/* Estados readonly */
.form-control[readonly],
input[readonly],
textarea[readonly] {
    border-color: #e8e8e8 !important;
    background-color: #f9f9f9;
    cursor: default;
}

/* TABS Y PESTAÑAS */
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
    border-top-color: var(--color-primario) !important;
    border-top-width: 3px;
    background-color: var(--color-primario) !important;
    color: #ffffff !important;
}

.nav-tabs > li > a:hover {
    border-color: #e0e0e0 #e0e0e0 #ddd;
    background-color: #f5f5f5;
}

/* Pills/pestañas estilo navbar */
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
    background-color: var(--color-primario) !important;
    color: #ffffff !important;
}

.nav-pills > li > a {
    color: #333;
}

.nav-pills > li > a:hover {
    background-color: rgba(25, 118, 210, 0.10);
}

/* SELECCIÓN DE FILAS */
.table > tbody > tr.selected,
.tree > tbody > tr.selected {
    background-color: rgba(25, 118, 210, 0.10);
    border-left: 3px solid var(--color-primario);
}

/* ============================================
   4. LOGIN PERSONALIZADO
   ============================================ */

/* Fondo de la pantalla de login */
body.login {
    background: linear-gradient(135deg, var(--color-primario) 0%, var(--color-primario-claro) 100%);
    background-attachment: fixed;
}

/* Modal de login */
.modal-dialog.login-dialog {
    margin-top: 10vh;
}

.modal-content.login-content {
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.modal-header.login-header {
    background-color: var(--color-primario);
    color: #ffffff;
    border-radius: 8px 8px 0 0;
    padding: 20px;
}

.modal-header.login-header .modal-title {
    font-size: 24px;
    font-weight: 600;
}

.modal-body.login-body {
    padding: 30px;
}

/* ============================================
   MODALES GENERALES - Ajustes de tamaño
   ============================================ */

/* Mantener el tamaño normal de los diálogos de Sao/Tryton. */
.modal-dialog {
    margin: 30px auto;
}

/* Asegurar que el contenido del modal no exceda la altura */
.modal-content {
    max-height: 85vh !important;
    display: flex !important;
    flex-direction: column !important;
    border-radius: 8px;
    overflow: hidden;
}

/* Header del modal con fondo MILAVIA y texto blanco */
.modal-header {
    background-color: var(--color-primario) !important;
    color: #ffffff !important;
    border-radius: 8px 8px 0 0;
    padding: 15px 20px !important;
    flex-shrink: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
}

/* Título del modal en blanco */
.modal-header .modal-title,
.modal-header h1,
.modal-header h2,
.modal-header h3,
.modal-header h4 {
    color: #ffffff !important;
    font-weight: 600 !important;
    margin: 0 !important;
}

/* Botón de cerrar (X) del modal en blanco */
.modal-header .close,
.modal-header button.close {
    color: #ffffff !important;
    opacity: 0.8 !important;
    text-shadow: none !important;
}

.modal-header .close:hover,
.modal-header button.close:hover {
    opacity: 1 !important;
    color: #ffffff !important;
}

/* Body del modal con scroll si es necesario */
.modal-body {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 20px !important;
    max-height: calc(85vh - 120px) !important;
}

/* Footer del modal siempre visible */
.modal-footer {
    flex-shrink: 0 !important;
    padding: 15px 20px !important;
    border-top: 1px solid #e0e0e0 !important;
    background-color: #f8f9fa !important;
    border-radius: 0 0 8px 8px;
}

/* Asegurar que los botones del footer sean visibles */
.modal-footer .btn {
    margin-left: 8px !important;
}

/* Modales grandes: usar el comportamiento estándar de Bootstrap/Sao. */

/* Modales pequeños */
.modal-dialog.modal-sm {
    max-width: 400px !important;
}

/* Scroll personalizado para el body del modal */
.modal-body::-webkit-scrollbar {
    width: 8px;
}

.modal-body::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.modal-body::-webkit-scrollbar-thumb {
    background: var(--color-primario-claro);
    border-radius: 4px;
}

.modal-body::-webkit-scrollbar-thumb:hover {
    background: var(--color-primario);
}

/* ============================================
   CHECKBOXES Y RADIO BUTTONS PERSONALIZADOS
   ============================================ */

/* Estilo base para checkboxes - Forzar personalización completa */
input[type="checkbox"] {
    /* Eliminar estilos nativos del navegador */
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    
    /* Dimensiones y espaciado */
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin: 0 8px 0 0 !important;
    padding: 0 !important;
    
    /* Estilo visual */
    border: 2px solid #d0d0d0 !important;
    border-radius: 3px !important;
    background-color: #ffffff !important;
    background-image: none !important;
    
    /* Comportamiento */
    cursor: pointer !important;
    position: relative !important;
    display: inline-block !important;
    vertical-align: middle !important;
    
    /* Animación */
    transition: all 0.2s ease-in-out !important;
    
    /* Eliminar cualquier pseudo-elemento del navegador */
    box-shadow: none !important;
    outline: none !important;
}

/* Eliminar pseudo-elementos nativos del navegador */
input[type="checkbox"]::before {
    content: none !important;
    display: none !important;
}

/* Hover en checkbox */
input[type="checkbox"]:hover {
    border-color: var(--color-primario-claro) !important;
    box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.10) !important;
}

/* Focus en checkbox - sin contorno feo */
input[type="checkbox"]:focus {
    outline: none !important;
    border-color: var(--color-primario) !important;
    box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.15) !important;
}

/* Checkbox seleccionado (checked) */
input[type="checkbox"]:checked {
    background-color: var(--color-primario) !important;
    border-color: var(--color-primario) !important;
    background-image: none !important;
}

/* Eliminar marca nativa del navegador cuando está checked */
input[type="checkbox"]:checked::before {
    content: none !important;
    display: none !important;
}

/* Marca de verificación personalizada (checkmark blanco) */
input[type="checkbox"]:checked::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    left: 5px !important;
    top: 2px !important;
    width: 5px !important;
    height: 10px !important;
    border: solid white !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
    background: transparent !important;
}

/* Checkbox disabled */
input[type="checkbox"]:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    background-color: #f5f5f5 !important;
    border-color: #e0e0e0 !important;
}

/* Estilo para el contenedor de checkbox */
.checkbox,
.checkbox-inline {
    display: inline-flex !important;
    align-items: center !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
}

.checkbox label,
.checkbox-inline label {
    display: inline-flex !important;
    align-items: center !important;
    cursor: pointer !important;
    user-select: none !important;
    margin-bottom: 0 !important;
    padding-left: 0 !important;
}

/* Asegurar que el input no tenga padding del label de Bootstrap */
.checkbox label input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
    margin-left: 0 !important;
    position: static !important;
}

/* Radio buttons similares - con !important para forzar estilos */
input[type="radio"] {
    /* Eliminar estilos nativos */
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    
    /* Dimensiones */
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin: 0 8px 0 0 !important;
    padding: 0 !important;
    
    /* Estilo visual */
    border: 2px solid #d0d0d0 !important;
    border-radius: 50% !important;
    background-color: #ffffff !important;
    background-image: none !important;
    
    /* Comportamiento */
    cursor: pointer !important;
    position: relative !important;
    display: inline-block !important;
    vertical-align: middle !important;
    
    /* Animación */
    transition: all 0.2s ease-in-out !important;
    
    /* Limpiar estilos */
    box-shadow: none !important;
    outline: none !important;
}

/* Eliminar pseudo-elementos nativos de radio */
input[type="radio"]::before {
    content: none !important;
    display: none !important;
}

input[type="radio"]:hover {
    border-color: var(--color-primario-claro) !important;
    box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.10) !important;
}

input[type="radio"]:focus {
    outline: none !important;
    border-color: var(--color-primario) !important;
    box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.15) !important;
}

input[type="radio"]:checked {
    border-color: var(--color-primario) !important;
    background-image: none !important;
}

/* Eliminar marca nativa cuando está checked */
input[type="radio"]:checked::before {
    content: none !important;
    display: none !important;
}

/* Punto central personalizado para radio checked */
input[type="radio"]:checked::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    background-color: var(--color-primario) !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

/* Logo en login - agregar con JavaScript */
#login-logo {
    text-align: center;
    margin-bottom: 20px;
}

#login-logo img {
    max-width: 200px;
    height: auto;
}

/* Footer del login */
#login-footer {
    text-align: center;
    color: #666;
    font-size: 12px;
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid #e0e0e0;
}

/* ============================================
   5. FAVICON E ÍCONOS
   ============================================ */

/* El favicon se cambia dinámicamente con JavaScript en custom.js */

/* ============================================
   6. TIPOGRAFÍA PERSONALIZADA
   ============================================ */

/* Importar fuentes corporativas - Descomentar cuando estés listo */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');500;600;700&family=Bebas+Neue&family=Gravitas+One&display=swap');

:root {
    --font-principal: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-titulo: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}


body {
    font-family: var(--font-principal);
    font-size: 14px;
    line-height: 1.6;
    color: #333;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-titulo);
    font-weight: 600;
    color: #2c3e50;
}

.navbar-brand,
.navbar-nav {
    font-family: var(--font-titulo);
}

/* ============================================
   7. FOOTER CORPORATIVO
   ============================================ */

#custom-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--footer-height);
    background-color: #f8f9fa;
    border-top: 1px solid #e0e0e0;
    padding: 4px 10px;
    font-size: 12px;
    color: #666;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
}

#custom-footer .footer-left,
#custom-footer .footer-center,
#custom-footer .footer-right {
    flex: 1;
    display: flex;
    align-items: center;
}

#custom-footer .footer-left {
    justify-content: flex-start;
}

#custom-footer .footer-center {
    justify-content: center;
}

#custom-footer .footer-right {
    justify-content: flex-end;
}

#custom-footer a {
    color: var(--color-primario);
    text-decoration: none;
    margin: 0 8px;
}

#custom-footer a:hover {
    color: var(--color-primario-hover);
    text-decoration: underline;
}

#custom-footer .footer-logo {
    height: 24px;
    margin-right: 10px;
    vertical-align: middle;
}

/* Reservar espacio real dentro del layout de Sao para que el footer no tape menus. */
body.with-footer #main {
    bottom: var(--footer-height) !important;
}

body.with-footer #menu,
body.with-footer #tabs {
    padding-bottom: var(--footer-height);
}

/* ============================================
   8. AJUSTES RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    /* Navbar en móvil */
    .navbar-brand {
        font-size: 16px;
        padding: 10px 15px !important;
    }
    
    #title {
        font-size: 16px;
    }
    
    /* Modales en móvil: conservar proporción sin afectar escritorio/login. */
    
    .modal-header {
        padding: 12px 15px !important;
    }
    
    .modal-header .modal-title {
        font-size: 18px !important;
    }
    
    .modal-footer {
        padding: 10px 15px !important;
    }
    
    .modal-footer .btn {
        font-size: 14px !important;
        padding: 8px 12px !important;
    }
    
    /* Footer en móvil - stack vertical */
    #custom-footer {
        flex-direction: column;
        height: auto;
        padding: 10px;
        text-align: center;
    }
    
    #custom-footer .footer-left,
    #custom-footer .footer-center,
    #custom-footer .footer-right {
        justify-content: center;
        width: 100%;
        margin: 3px 0;
    }
    
    body.with-footer #main {
        bottom: var(--footer-height) !important;
    }
}

@media (max-width: 480px) {
    /* Modales en pantallas muy pequeñas */
    
    .modal-header .modal-title {
        font-size: 16px !important;
    }
    
    /* Ocultar elementos secundarios en pantallas muy pequeñas */
    #custom-footer .footer-right {
        display: none;
    }
}

/* ============================================
   9. MEJORAS DE ACCESIBILIDAD
   ============================================ */

/* Mejorar contraste para accesibilidad */
.btn:focus,
a:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid var(--color-primario);
    outline-offset: 2px;
}

/* Transiciones suaves */
.btn,
a,
.navbar-nav > li > a,
.form-control {
    transition: all 0.2s ease-in-out;
}

/* ============================================
   10. UTILIDADES Y OVERRIDES ESPECÍFICOS
   ============================================ */

/* Scrollbar personalizado (webkit) */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
    background: var(--color-primario-claro);
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-primario);
}

/* Loading spinner personalizado */
.spinner,
.loading-indicator {
    border-top-color: var(--color-primario) !important;
}



.btn .fa, .btn .fas,
.btn .glyphicon {
    color: inherit;
}

/* ============================================
   NOTAS PARA PERSONALIZACIÓN FUTURA:
   
   1. Reemplaza las variables CSS en la sección 1 con los colores corporativos
   2. Agrega el logo en custom-assets/ y descomenta la sección del logo
   3. Importa fuentes corporativas en la sección 6
   4. Personaliza el footer con información de tu empresa
   5. Ajusta el favicon con JavaScript en custom.js
   
   Este archivo NO modifica el core de Tryton/GNU Health.
   Todas las actualizaciones del sistema mantendrán estas personalizaciones.
   ============================================ */


/* ==========================================================
   11. MILAVIA - IDENTIDAD FINAL / OVERRIDES
   ========================================================== */
:root {
    --color-primario: #1976D2;
    --color-primario-hover: #145FA8;
    --color-primario-claro: #5AA4E6;
    --color-secundario: #2ECC71;
    --color-info: #1976D2;
    --color-warning: #F4B942;
    --color-danger: #DC3545;
    --milavia-navy: #0D1B2A;
    --milavia-background: #F5F7FA;
    --milavia-surface: #FFFFFF;
    --milavia-border: #DDE5EE;
    --milavia-text: #243447;
    --milavia-muted: #6B7C8F;
    --milavia-focus: rgba(25, 118, 210, 0.18);
    --font-principal: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-titulo: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

body { background-color: var(--milavia-background); color: var(--milavia-text); }

.navbar-inverse {
    background: linear-gradient(90deg, #0D1B2A 0%, #123A61 50%, #1976D2 100%) !important;
    border-color: transparent !important;
    box-shadow: 0 2px 12px rgba(13, 27, 42, 0.18);
}
.navbar-brand,
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus { background-color: transparent !important; }

.navbar-brand::before {
    content: '' !important;
    display: inline-block !important;
    width: 174px !important;
    height: 34px !important;
    background-image: url('custom-assets/milavia-logo-navbar-dark.svg') !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: left center !important;
    vertical-align: middle !important;
    margin-right: 8px !important;
}
#title { display: none !important; }

.form-control,
input[type="text"], input[type="password"], input[type="email"],
input[type="number"], input[type="date"], input[type="time"],
input[type="datetime-local"], select, textarea {
    border-color: var(--milavia-border) !important;
    border-radius: 7px;
    background-color: #fff;
    color: var(--milavia-text);
}
.form-control:focus,
input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus,
input[type="number"]:focus, input[type="date"]:focus, input[type="time"]:focus,
input[type="datetime-local"]:focus, select:focus, textarea:focus {
    border-color: var(--color-primario) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px var(--milavia-focus) !important;
}

/* Compatibilidad SAO: select nativo sin franja lateral */
select, select.form-control {
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
    appearance: auto !important;
    background-image: none !important;
    padding-right: 8px !important;
}

/* Compatibilidad SAO: un solo checkbox */
input[type="checkbox"] {
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
    appearance: auto !important;
    width: 18px !important; height: 18px !important;
    min-width: 18px !important; min-height: 18px !important;
    margin: 0 8px 0 0 !important; padding: 0 !important;
    border: initial !important; border-radius: initial !important;
    background: initial !important; background-image: none !important;
    box-shadow: none !important; outline: none !important;
    accent-color: #2ECC71;
}
input[type="checkbox"]::before,
input[type="checkbox"]::after,
input[type="checkbox"]:checked::before,
input[type="checkbox"]:checked::after,
input[type="checkbox"]:not(:checked)::before,
input[type="checkbox"]:not(:checked)::after {
    content: none !important; display: none !important;
}

/* Radio nativo */
input[type="radio"] {
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
    appearance: auto !important;
    width: 18px !important; height: 18px !important;
    min-width: 18px !important; min-height: 18px !important;
    margin: 0 8px 0 0 !important; padding: 0 !important;
    border: initial !important; background: initial !important;
    box-shadow: none !important; outline: none !important;
    accent-color: #1976D2;
}
input[type="radio"]::before, input[type="radio"]::after {
    content: none !important; display: none !important;
}

body.login {
    background:
      radial-gradient(circle at 15% 20%, rgba(46,204,113,.22), transparent 30%),
      linear-gradient(135deg, #0D1B2A 0%, #123A61 48%, #1976D2 100%) !important;
    background-attachment: fixed !important;
}
#login-logo img { max-width: 290px !important; width: min(290px, 82%); height: auto; }
.modal-content.login-content {
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,.30);
    box-shadow: 0 22px 60px rgba(13,27,42,.28) !important;
}
.modal-header,
.panel-default > .panel-heading,
.panel-primary > .panel-heading {
    background: linear-gradient(90deg, #0D1B2A, #1976D2) !important;
    color: #fff !important;
}
.btn { border-radius: 7px; font-weight: 500; }
.btn-primary { background-color: #1976D2 !important; border-color: #1976D2 !important; }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
    background-color: #145FA8 !important; border-color: #145FA8 !important;
}
.btn-success { background-color: #2ECC71 !important; border-color: #2ECC71 !important; }

#custom-footer {
    background-color: #F5F7FA !important;
    border-top: 1px solid #DDE5EE !important;
    color: #6B7C8F !important;
}
#custom-footer::before {
    content: ''; position: absolute; left: 0; top: 0;
    width: 100%; height: 2px;
    background: linear-gradient(90deg, #1976D2, #2ECC71);
}

::-webkit-scrollbar-thumb { background: #5AA4E6 !important; }
::-webkit-scrollbar-thumb:hover { background: #1976D2 !important; }
::selection { background: rgba(46,204,113,.24); color: #0D1B2A; }

@media (max-width: 768px) {
    .navbar-brand::before { width: 142px !important; height: 30px !important; }
}
