:root {
    --dark-bg: #0A192F;
    --dark-bg-alt: #112240;
    --light-slate: #ccd6f6;
    --slate: #8892b0;
    --accent-color-primary: #007BFF;
    --accent-color-secondary: #00C9A7;
    --white: #ffffff;
    --font-sans: 'Poppins', 'Inter', sans-serif;
    --font-body: 'Lato', 'Open Sans', sans-serif;
    --border-radius: 12px;
    --transition-speed: 0.3s ease;
}

body {
    background: var(--dark-bg);
    color: var(--light-slate);
    font-family: var(--font-body);
    min-height: 100vh;
}

h1, h2, h3, h4, h5, h6, .navbar-brand {
    font-family: var(--font-sans);
    color: var(--white);
}

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

.nc-main { padding-bottom: 40px; }

/* ===== Navbar ===== */
.nc-nav {
    background: rgba(10, 25, 47, 0.6);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.nc-nav .nav-link { color: var(--slate); }
.nc-nav .nav-link:hover { color: var(--accent-color-primary); }

/* ===== Glassmorphism ===== */
.card-glass {
    background: rgba(17, 34, 64, 0.5);
    backdrop-filter: blur(5px);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--border-radius);
    color: var(--light-slate);
    transition: transform var(--transition-speed), border-color var(--transition-speed);
}
.card-glass:hover { border-color: rgba(0,123,255,.4); }

/* ===== Botones ===== */
.btn-primary {
    background: var(--accent-color-primary);
    border-color: var(--accent-color-primary);
}
.btn-primary:hover {
    background: var(--accent-color-primary);
    box-shadow: 0 0 20px rgba(0,123,255,.5);
}
.btn-outline-light:hover { box-shadow: 0 0 12px rgba(255,255,255,.15); }

/* ===== Login ===== */
.nc-login-wrap {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.nc-login-card { max-width: 400px; width: 100%; padding: 32px; }

/* ===== Toggles de bloqueos ===== */
.toggle-card { min-height: 60px; }
.form-check-input:checked { background-color: var(--accent-color-primary); border-color: var(--accent-color-primary); }

/* ===== Banner de impersonación ===== */
.banner-impersonacion {
    background: #b8860b;
    color: #1a1a1a;
    text-align: center;
    padding: 8px 16px;
    font-size: .9rem;
    position: sticky;
    top: 0;
    z-index: 1050;
}

/* ===== Tablas ===== */
.table-dark { --bs-table-bg: transparent; }

/* ===== Detalles/resumen colapsable ===== */
details > summary { color: var(--slate); }
details > summary::-webkit-details-marker { color: var(--slate); }
details[open] > summary { color: var(--light-slate); }

/* ===== Utilidades ===== */
.text-muted { color: var(--slate) !important; }
code { color: var(--accent-color-secondary); background: rgba(0,0,0,.25); }
