@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;800&display=swap');

/* Estilos globales para Leaflet dentro del componente */
.glow-line {
    filter: drop-shadow(0 0 8px rgba(34, 211, 238, 0.6));
}

.leaflet-control-zoom,
.leaflet-control-attribution {
    display: none !important;
}

/* Definiciones de Tokens de Marca para Tailwind */
:root {
    /* Colores de Marca */
    --color-base-50: #F9FAFB;
    --color-base-300: #DDD6F3;
    --color-base-700: #764BA2;
    --color-brand-400: #667eea;
    --color-brand-600: #2563eb;
    --color-brand-800: #1e40af;
    --color-accent-600: #10b981;
    --color-accent-800: #065f46;
    --color-neutral-800: #1F2937;
    --color-neutral-100: #F3F4F6;

    /* LIGHT MODE (DEFAULT) */
    --color-bg: #F3F4F6;
    --color-surface: #ffffff;
    --color-text: #1F2937;
    --color-muted: #6b7280;
    --color-nav-bg: rgba(255, 255, 255, 0.85);
    --color-card-bg: #ffffff;
    --color-border: #e5e7eb;

    /* Border Radius Tokens */
    --radius-xs: 4px;
    --radius-s: 8px;
    --radius-m: 16px;
    --radius-l: 32px;
    --radius-xl: 64px;
    /* Line Height Tokens */
    --line-s: 1;
    --line-m: 1.25;
    --line-l: 1.5;
}

/* Aplicación de Fuentes */
.font-brand {
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.font-base {
    font-family: 'Inter', sans-serif;
}

.font-mono {
    font-family: 'Geist Mono', monospace;
}

/* Aplicación de Modos Día/Noche mediante clases */
body {
    background-color: var(--color-bg);
    color: var(--color-text);
    transition: background-color 0.5s, color 0.5s;
    scroll-behavior: smooth;
}

/* DARK MODE - Cuando body tiene clase dark-mode */
body.dark-mode {
    --color-bg: #121212;
    --color-surface: #1f2937;
    --color-text: #f3f4f6;
    --color-muted: #9ca3af;
    --color-nav-bg: rgba(31, 41, 55, 0.85);
    --color-card-bg: #1f2937;
    --color-border: #374151;
}

/* Estilos de elementos específicos con variables */
.card {
    background-color: var(--color-card-bg);
    border-radius: var(--radius-m);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    transition: all 0.3s;
}

body.dark-mode .card {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

/* Estilos para el Hero con degradado */
.hero-gradient {
    background: linear-gradient(135deg, var(--color-brand-400) 0%, var(--color-base-700) 100%);
}

/* Navegación Fija */
.nav-fixed {
    background: var(--color-nav-bg);
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

body.dark-mode .nav-fixed {
    box-shadow: 0 2px 10px rgba(255, 255, 255, 0.05);
}

/* Clases de utilidad para redondez */
.rounded-s {
    border-radius: var(--radius-s);
}

.rounded-m {
    border-radius: var(--radius-m);
}

.rounded-l {
    border-radius: var(--radius-l);
}

/* Iconos de Lucide como componentes */
.icon {
    stroke-width: 2.5;
}

/* Estilo específico para el logo en la navegación */
.logo-group-light {
    display: flex;
}

.logo-group-dark {
    display: none;
}

body.dark-mode .logo-group-light {
    display: none;
}

body.dark-mode .logo-group-dark {
    display: flex;
}

/* Estilos del menú móvil */
#mobile-menu {
    transition: transform 0.3s ease-out;
    transform: translateX(100%);
    background-color: var(--color-surface);
}

#mobile-menu.open {
    transform: translateX(0);
}

/* Estilos del Modal */
.modal {
    background-color: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(5px);
    transition: opacity 0.3s ease-in-out;
    opacity: 0;
    visibility: hidden;
}

.modal.show {
    opacity: 1;
    visibility: visible;
}

/* Override Tailwind colors with CSS variables */
body.dark-mode .bg-gray-100,
body.dark-mode .bg-gray-50 {
    background-color: var(--color-surface) !important;
}

body.dark-mode .bg-white {
    background-color: var(--color-card-bg) !important;
}

body.dark-mode .text-gray-800,
body.dark-mode .text-gray-900 {
    color: var(--color-text) !important;
}

body.dark-mode .text-gray-700,
body.dark-mode .text-gray-600,
body.dark-mode .text-gray-500 {
    color: var(--color-muted) !important;
}

body.dark-mode .border-gray-300,
body.dark-mode .border-gray-200 {
    border-color: var(--color-border) !important;
}

body.dark-mode .hover\:bg-gray-100:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
}

body.dark-mode .dark\:bg-gray-700,
body.dark-mode .dark\:bg-gray-800 {
    background-color: var(--color-surface) !important;
}

body.dark-mode .dark\:text-gray-200,
body.dark-mode .dark\:text-gray-100 {
    color: var(--color-text) !important;
}

body.dark-mode .dark\:border-gray-600 {
    border-color: var(--color-border) !important;
}

body.dark-mode .dark\:hover\:bg-gray-700:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
}

.btn-accent {
    background-color: var(--color-accent-600);
}

.btn-accent:hover {
    background-color: var(--color-accent-800);
}

.btn-logout {
    border-color: #fca5a5;
    color: #dc2626;
}

body.dark-mode .btn-logout {
    border-color: #dc2626;
    color: #f87171;
}

.btn-logout:hover {
    background-color: #fef2f2;
}

body.dark-mode .btn-logout:hover {
    background-color: rgba(127, 29, 29, 0.2);
}