/* ================================================================
   ESES Admin Panel — Professional Theme Override
   Built on AdminLTE 3 / Bootstrap 4
   ================================================================ */

/* ---------- Variables ---------- */
:root {
    --eses-navy:    #003366;
    --eses-navy-lt: #1a4d8a;
    --eses-gold:    #b8860b;
    --eses-gold-lt: #d4a520;
    --eses-blue:    #0066a1;
    --sidebar-bg:   #0d1f3c;
    --sidebar-lt:   #162d54;
    --sidebar-text: rgba(255,255,255,.78);
    --sidebar-active: #b8860b;
}

/* ---------- Sidebar ---------- */
.main-sidebar {
    background: var(--sidebar-bg) !important;
    box-shadow: 2px 0 12px rgba(0,0,0,.25) !important;
}

/* Brand / Logo area */
.brand-link {
    background: var(--eses-navy) !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    padding: 14px 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}
.brand-link:hover { background: var(--eses-navy-lt) !important; }
.brand-logo-img {
    height: 36px; width: 36px;
    object-fit: contain; border-radius: 4px;
}
.brand-text-block { line-height: 1.2; }
.brand-name {
    display: block;
    font-family: Georgia, serif;
    font-size: .88rem; font-weight: 700;
    color: #fff; letter-spacing: .3px;
    text-transform: uppercase;
}
.brand-name-sub {
    display: block;
    font-size: .65rem; color: var(--eses-gold);
    font-weight: 600; letter-spacing: .8px;
    text-transform: uppercase;
}

/* User panel — hidden (user info already in top navbar) */
.user-panel {
    display: none !important;
}

/* Sidebar section headers */
.nav-sidebar .nav-header {
    font-size: .65rem !important;
    font-weight: 700 !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,.35) !important;
    padding: 10px 16px 3px !important;
}

/* Sidebar nav links */
.nav-sidebar .nav-link {
    color: var(--sidebar-text) !important;
    border-radius: 0 !important;
    padding: 8px 16px !important;
    font-size: .84rem !important;
    border-left: 3px solid transparent !important;
    transition: background .15s, color .15s, border-color .15s !important;
}
.nav-sidebar .nav-link:hover {
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
    border-left-color: var(--eses-gold) !important;
}
.nav-sidebar .nav-link.active,
.nav-sidebar .nav-link.active:hover {
    background: rgba(184,134,11,.15) !important;
    color: #fff !important;
    border-left-color: var(--eses-gold) !important;
}
.nav-sidebar .nav-link.active .nav-icon,
.nav-sidebar .nav-link:hover .nav-icon {
    color: var(--eses-gold) !important;
}
.nav-sidebar .nav-icon {
    color: rgba(255,255,255,.45) !important;
    font-size: .85rem !important;
    width: 1.3rem !important;
}

/* Remove all top gaps in sidebar scroll area */
.main-sidebar .sidebar {
    padding-top: 0 !important;
}

/* OverlayScrollbars wrappers — strip their padding */
.main-sidebar .sidebar .os-content,
.main-sidebar .sidebar .os-viewport,
.main-sidebar .sidebar .os-padding {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* The nav itself */
.main-sidebar .sidebar > nav,
.main-sidebar .sidebar .os-content > nav {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.nav-sidebar {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.nav-sidebar > .nav-item:first-child {
    margin-top: 0 !important;
}

/* Treeview child items */
.nav-sidebar .nav-treeview {
    background: rgba(0,0,0,.15) !important;
}
.nav-sidebar .nav-treeview .nav-link {
    padding-left: 2.4rem !important;
    font-size: .82rem !important;
}

/* ---------- Top Navbar ---------- */
.main-header.navbar {
    background: #fff !important;
    border-bottom: 2px solid var(--eses-navy) !important;
    box-shadow: 0 1px 6px rgba(0,0,0,.08) !important;
    padding: 0 16px !important;
    min-height: 52px !important;
}
.main-header .nav-link {
    color: #555 !important;
    padding: 14px 10px !important;
    font-size: .88rem !important;
}
.main-header .nav-link:hover { color: var(--eses-navy) !important; }
.main-header .navbar-brand-text {
    font-family: Georgia, serif;
    font-size: .95rem; font-weight: 700;
    color: var(--eses-navy); letter-spacing: .3px;
}
/* Page title breadcrumb in navbar */
.main-header .navbar-breadcrumb {
    font-size: .82rem; color: #888; margin-left: 8px;
}

/* Admin user dropdown */
.navbar-nav .dropdown-menu {
    border: 1px solid #e8ecf0;
    border-top: 3px solid var(--eses-navy);
    border-radius: 0 0 6px 6px;
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
    min-width: 180px;
    padding: 4px 0;
}
.navbar-nav .dropdown-item {
    font-size: .85rem; padding: 9px 18px;
    color: #333; transition: all .15s;
}
.navbar-nav .dropdown-item:hover {
    background: #f4f6f9; color: var(--eses-navy);
}
.navbar-nav .dropdown-item i { color: var(--eses-navy); margin-right: 8px; }

/* ---------- Content wrapper ---------- */
.content-wrapper {
    background: #f0f2f5 !important;
}

/* Content header / Page title area */
.content-header {
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    padding: 14px 20px !important;
    margin-bottom: 0 !important;
}
.content-header h1 {
    font-family: Georgia, serif !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: var(--eses-navy) !important;
}
.content-header .breadcrumb {
    background: transparent !important;
    font-size: .8rem !important;
    margin: 0 !important; padding: 0 !important;
}
.content-header .breadcrumb-item.active { color: #888 !important; }
.content-header .breadcrumb-item a { color: var(--eses-blue) !important; }

/* Main content padding */
.content { padding: 20px !important; }

/* ---------- Cards ---------- */
.card {
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    box-shadow: 0 1px 6px rgba(0,0,0,.06) !important;
}
.card-header {
    background: #fff !important;
    border-bottom: 2px solid var(--eses-navy) !important;
    padding: 12px 16px !important;
    border-radius: 6px 6px 0 0 !important;
}
.card-header .card-title {
    font-family: Georgia, serif !important;
    font-weight: 700 !important;
    color: var(--eses-navy) !important;
    font-size: .97rem !important;
}
.card-header .card-tools .btn { font-size: .78rem !important; }
.card-body { padding: 16px !important; }
.card-footer {
    background: #f8f9fc !important;
    border-top: 1px solid #e2e8f0 !important;
    padding: 10px 16px !important;
}

/* ---------- Stat boxes (dashboard) ---------- */
.small-box {
    border-radius: 6px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.1) !important;
    overflow: hidden !important;
}
.small-box h3 {
    font-family: Georgia, serif !important;
    font-size: 2.2rem !important;
    font-weight: 700 !important;
}
.small-box > .inner { padding: 16px 20px 14px !important; }
.small-box .small-box-footer {
    font-size: .78rem !important;
    padding: 6px 10px !important;
}

/* Custom stat box colors matching ESES palette */
.small-box.bg-eses-navy { background: var(--eses-navy) !important; }
.small-box.bg-eses-gold { background: var(--eses-gold) !important; }
.small-box.bg-eses-blue { background: var(--eses-blue) !important; }

/* ---------- Tables ---------- */
.table thead th {
    background: var(--eses-navy) !important;
    color: #fff !important;
    font-family: Georgia, serif;
    font-size: .8rem !important;
    font-weight: 600 !important;
    letter-spacing: .3px !important;
    border: none !important;
    padding: 10px 12px !important;
    white-space: nowrap;
}
.table tbody tr { transition: background .15s; }
.table tbody tr:hover { background: #f4f8ff !important; }
.table tbody td {
    font-size: .85rem !important;
    color: #333 !important;
    vertical-align: middle !important;
    padding: 8px 12px !important;
    border-color: #eaecf0 !important;
}
.table-bordered { border-color: #e2e8f0 !important; }
.table-striped tbody tr:nth-of-type(odd) { background: #f8f9fc !important; }

/* ---------- Forms ---------- */
.form-control {
    border: 1.5px solid #d0d7e0 !important;
    border-radius: 5px !important;
    font-size: .88rem !important;
    color: #333 !important;
    transition: border-color .2s, box-shadow .2s !important;
}
.form-control:focus {
    border-color: var(--eses-navy) !important;
    box-shadow: 0 0 0 3px rgba(0,51,102,.1) !important;
    outline: none !important;
}
.form-group label {
    font-size: .83rem !important;
    font-weight: 600 !important;
    color: #444 !important;
    margin-bottom: 5px !important;
}
.input-group-text {
    background: #f4f6f9 !important;
    border-color: #d0d7e0 !important;
    color: #666 !important;
    font-size: .85rem !important;
}

/* ---------- Buttons ---------- */
.btn-primary {
    background: var(--eses-navy) !important;
    border-color: var(--eses-navy) !important;
}
.btn-primary:hover { background: var(--eses-navy-lt) !important; border-color: var(--eses-navy-lt) !important; }
.btn-warning {
    background: var(--eses-gold) !important;
    border-color: var(--eses-gold) !important;
    color: #fff !important;
}
.btn-warning:hover { background: var(--eses-gold-lt) !important; color: #fff !important; }
.btn { border-radius: 4px !important; font-size: .83rem !important; font-weight: 500 !important; }
.btn-sm { padding: 4px 10px !important; font-size: .78rem !important; }

/* ---------- Badges ---------- */
.badge-primary { background: var(--eses-navy) !important; }
.badge-warning { background: var(--eses-gold) !important; color: #fff !important; }

/* ---------- Alerts ---------- */
.alert { border-radius: 5px !important; font-size: .88rem !important; border: none !important; }
.alert-success { background: #edfbf0 !important; color: #1a6b35 !important; border-left: 4px solid #28a745 !important; }
.alert-danger  { background: #fff0f0 !important; color: #8b1a1a !important; border-left: 4px solid #dc3545 !important; }
.alert-warning { background: #fffbea !important; color: #856404 !important; border-left: 4px solid #ffc107 !important; }

/* ---------- Pagination ---------- */
.pagination .page-link {
    color: var(--eses-navy) !important;
    border-color: #dde3ea !important;
    font-size: .82rem !important;
}
.pagination .page-item.active .page-link {
    background: var(--eses-navy) !important;
    border-color: var(--eses-navy) !important;
    color: #fff !important;
}

/* ---------- Footer ---------- */
.main-footer {
    background: #fff !important;
    border-top: 1px solid #e2e8f0 !important;
    color: #888 !important;
    font-size: .8rem !important;
    padding: 10px 20px !important;
}
.main-footer a { color: var(--eses-blue) !important; }

/* ---------- Login page ---------- */
.login-page {
    background: linear-gradient(135deg, var(--sidebar-bg), var(--eses-navy)) !important;
}
.login-box-msg { color: #666 !important; font-size: .88rem !important; }
.login-card-body { border-radius: 8px !important; box-shadow: 0 10px 40px rgba(0,0,0,.15) !important; }
.login-logo a {
    font-family: Georgia, serif !important;
    color: #fff !important;
    font-size: 1.6rem !important;
    font-weight: 700 !important;
}
.login-logo small {
    display: block;
    font-size: .72rem !important;
    color: var(--eses-gold) !important;
    font-family: sans-serif !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
}

/* ---------- Summernote editor ---------- */
.note-editor.note-frame { border-color: #d0d7e0 !important; border-radius: 5px !important; }
.note-toolbar { background: #f4f6f9 !important; border-bottom-color: #d0d7e0 !important; }

/* ---------- Select2 ---------- */
.select2-container--default .select2-selection--single {
    border: 1.5px solid #d0d7e0 !important;
    border-radius: 5px !important;
    height: 38px !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 36px !important;
    font-size: .88rem !important;
    color: #333 !important;
}

/* ---------- Preloader ---------- */
.preloader {
    background: var(--sidebar-bg) !important;
}

/* ---------- Responsive ---------- */
@media (max-width: 767px) {
    .content { padding: 12px !important; }
    .content-header { padding: 10px 14px !important; }
}
