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

:root,
[data-theme="light"] {
    --app-bg: #f5f7fb;
    --app-surface: #ffffff;
    --app-surface-2: #f8fafc;
    --app-border: #dde4ee;
    --app-text: #18212f;
    --app-muted: #64748b;
    --app-primary: #0d6efd;
    --app-primary-rgb: 13, 110, 253;
    --app-primary-soft: rgba(13, 110, 253, 0.12);
    --app-success-soft: rgba(25, 135, 84, 0.12);
    --app-warning-soft: rgba(255, 193, 7, 0.16);
    --app-danger-soft: rgba(220, 53, 69, 0.12);
    --app-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    --app-sidebar-bg: linear-gradient(180deg, #0f172a 0%, #16213e 100%);
    --app-sidebar-text: rgba(255,255,255,.78);
    --app-sidebar-text-active: #ffffff;
    --app-sidebar-border: rgba(255,255,255,.1);
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
    --bs-border-color: var(--app-border);
    --bs-primary: var(--app-primary);
    --bs-primary-rgb: var(--app-primary-rgb);
    --bs-font-sans-serif: 'Inter', system-ui, -apple-system, sans-serif;
    --bs-border-radius: 1rem;
    --bs-box-shadow: var(--app-shadow);
    --bs-badge-color: var(--app-text);
}

[data-theme="dark"] {
    --app-bg: #0b1220;
    --app-surface: #111a2b;
    --app-surface-2: #162235;
    --app-border: #243247;
    --app-text: #e5edf8;
    --app-muted: #94a3b8;
    --app-primary: #5aa2ff;
    --app-primary-rgb: 90, 162, 255;
    --app-primary-soft: rgba(90, 162, 255, 0.18);
    --app-success-soft: rgba(25, 135, 84, 0.18);
    --app-warning-soft: rgba(255, 193, 7, 0.18);
    --app-danger-soft: rgba(220, 53, 69, 0.18);
    --app-shadow: 0 24px 54px rgba(0, 0, 0, 0.35);
    --app-sidebar-bg: linear-gradient(180deg, #08111f 0%, #0d1728 100%);
    --app-sidebar-text: rgba(229,237,248,.76);
    --app-sidebar-text-active: #ffffff;
    --app-sidebar-border: rgba(255,255,255,.08);
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
    --bs-border-color: var(--app-border);
    --bs-primary: var(--app-primary);
    --bs-primary-rgb: var(--app-primary-rgb);
}

html, body {
    height: 100%;
    scroll-behavior: smooth;
    font-family: var(--bs-font-sans-serif);
    background: var(--app-bg);
    color: var(--app-text);
}

a {
    text-decoration: none;
}

.brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--app-primary), #49c6ff);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 12px 30px rgba(var(--app-primary-rgb), .28);
    flex-shrink: 0;
}

.sidebar {
    background: var(--app-sidebar-bg);
    color: var(--app-sidebar-text);
    border-right: 1px solid var(--app-sidebar-border);
    min-height: 100vh;
}

.sidebar .nav-link {
    color: var(--app-sidebar-text);
    border-radius: .95rem;
    padding: .85rem 1rem;
    display: flex;
    align-items: center;
    gap: .85rem;
    font-weight: 500;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
    color: var(--app-sidebar-text-active);
    background: rgba(255,255,255,.1);
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    backdrop-filter: blur(14px);
    background: color-mix(in srgb, var(--app-bg) 84%, transparent);
    border-bottom: 1px solid var(--app-border);
}

.surface {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    box-shadow: var(--app-shadow);
}

.surface-soft {
    background: var(--app-surface-2);
    border: 1px solid var(--app-border);
}

.theme-toggle {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--app-border);
    background: var(--app-surface);
    color: var(--app-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.section-label {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--app-muted);
    font-weight: 700;
}

.mobile-bottom-nav {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 1040;
    background: color-mix(in srgb, var(--app-surface) 90%, transparent);
    backdrop-filter: blur(16px);
    border: 1px solid var(--app-border);
    border-radius: 1.25rem;
    box-shadow: var(--app-shadow);
}

.mobile-bottom-nav a {
    color: var(--app-muted);
    min-height: 56px;
    font-size: .82rem;
}

.mobile-bottom-nav a.active {
    color: var(--app-primary);
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .sidebar {
        min-height: auto;
    }
    body {
        padding-bottom: 5.5rem;
    }
}

* Badges personalizados con color de texto dinámico */
.badge-soft-primary {
    background-color: var(--app-primary-soft);
    color: var(--app-primary);
}

.badge-soft-success {
    background-color: var(--app-success-soft);
    color: #198754;
}

.badge-soft-warning {
    background-color: var(--app-warning-soft);
    color: #856404;
}

.badge-soft-danger {
    background-color: var(--app-danger-soft);
    color: #dc3545;
}

.badge-soft-info {
    background-color: var(--app-primary-soft);
    color: var(--app-primary);
}

/* Ajustes para evitar la deformación de botones circulares e iconos */
.btn-circle-icon {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.btn-circle-icon i {
    line-height: 1;
    font-size: 0.9rem;
}

/* Micro-ajustes de diseño responsivo */
.micro-text {
    font-size: 0.75rem;
}

.transition-all {
    transition: all 0.2s ease-in-out;
}