:root {
    --caen-primary: #a71a39;
    --caen-dark:    #370c11;
    --caen-movi:    #8b0000;
    --caen-light-bg: #eff4f2;
    --caen-dark-gray: #8c8d8d;
    --caen-white: #ffffff;
}

/* ── BASE ──────────────────────────────────────────────────────────── */
body { background-color: var(--caen-light-bg); }

/* ── NAVBAR ─────────────────────────────────────────────────────────── */
.navbar-caen { background-color: var(--caen-primary); }

/* ── SIDEBAR ─────────────────────────────────────────────────────────── */
.sidebar {
    min-height: calc(100vh - 56px);
    background-color: white;
    box-shadow: 2px 0 5px rgba(0,0,0,0.1);
}

.sidebar .nav-link {
    color: var(--caen-dark);
    padding: 0.75rem 1.25rem;
    border-radius: 8px;
    margin: 0.3rem 0.625rem;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
    background-color: var(--caen-primary);
    color: white;
}

/* ── BUTTONS ─────────────────────────────────────────────────────────── */
.btn-caen {
    background-color: var(--caen-primary);
    border-color: var(--caen-primary);
    color: var(--caen-white);
}

.btn-caen:hover {
    background-color: var(--caen-dark);
    border-color: var(--caen-dark);
    color: var(--caen-white);
}

.btn-movi {
    background-color: var(--caen-movi);
    border-color: var(--caen-movi);
    color: #fff;
}

.btn-movi:hover {
    background-color: #6b0000;
    border-color: #6b0000;
    color: #fff;
}

.btn-registro-bien { background-color: #94112e; border-color: #94112e; color: #fff; }
.btn-registro-bien:hover { background-color: #7a0e26; border-color: #7a0e26; color: #fff; }

/* ── TEXT UTILITIES ──────────────────────────────────────────────────── */
.text-caen-primary { color: var(--caen-primary) !important; }
.text-movi         { color: var(--caen-movi) !important; }

/* ── CARDS ───────────────────────────────────────────────────────────── */
.card-login { border: none; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }

.card-stat {
    border: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    border-left: 4px solid var(--caen-primary);
}

.card-primary .card-header { background-color: #0d6efd; color: #fff; }
.card-success .card-header { background-color: #198754; color: #fff; }
.card-warning .card-header { background-color: #ffc107; color: #212529; }

/* ── TABLES ──────────────────────────────────────────────────────────── */
.table-hover tbody tr:hover { background-color: #f8f9fa; }
.badge-rol { font-size: 0.75rem; padding: 0.35em 0.65em; }

/* ── BIENES AGRUPADOS ────────────────────────────────────────────────── */
.grupo-header  { background-color: #f8f0f0; cursor: pointer; }
.bien-subgrupo { background-color: #fdf5f5; border-left: 4px solid var(--caen-movi); }
.badge-grupo   { background-color: var(--caen-movi) !important; }

/* ── MOVIMIENTOS ─────────────────────────────────────────────────────── */
.thead-movi { background-color: var(--caen-movi); color: #fff; }
#bien-info  { background: #f8f9fa; border-radius: .375rem; }

.section-title {
    color: var(--caen-movi);
    font-weight: 600;
    border-bottom: 2px solid var(--caen-movi);
    padding-bottom: .25rem;
    margin-bottom: 1rem;
}

/* ── MOBILE SIDEBAR OVERLAY ──────────────────────────────────────────── */
.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    top: 56px;
    background: rgba(0,0,0,0.45);
    z-index: 1040;
}
.sidebar-overlay.show { display: block; }

/* ══════════════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE FIRST
   ══════════════════════════════════════════════════════════════════════ */

/* Mobile: sidebar como drawer deslizable */
@media (max-width: 767.98px) {
    .sidebar {
        position: fixed;
        top: 56px;
        left: 0;
        width: 270px;
        height: calc(100vh - 56px);
        min-height: unset;
        z-index: 1045;
        overflow-y: auto;
        transform: translateX(-101%);
        transition: transform 0.25s ease;
    }

    .sidebar.sidebar-open {
        transform: translateX(0);
    }
}

/* Tablet y superior: ocultar botón hamburguesa */
@media (min-width: 768px) {
    .btn-hamburger      { display: none !important; }
    .sidebar-overlay    { display: none !important; }
}

/* Touch targets mínimos (44px) */
@media (max-width: 767.98px) {
    .btn      { min-height: 44px; }
    .btn-sm   { min-height: 38px; }
    .nav-link { min-height: 44px; display: flex; align-items: center; }
}
