/* Custom AdminLTE Overrides for FSE Blue Theme */
:root {
    /* Base Colors */
    --primary: #003f88;
    --primary-dark: #00296b;
    --primary-light: #00509d;
    --secondary: #64748b;
    --secondary-dark: #475569;
    --success: #10b981;
    --success-dark: #059669;
    --info: #06b6d4;
    --info-dark: #0891b2;
    --warning: #f59e0b;
    --warning-dark: #d97706;
    --danger: #ef4444;
    --danger-dark: #dc2626;
    --light: #f8fafc;
    --dark: #1e293b;
    --indigo: #6366f1;
    --indigo-dark: #4f46e5;
    --purple: #8b5cf6;
    --purple-dark: #7c3aed;
    --teal: #14b8a6;
    --teal-dark: #0d9488;
    --cyan: #22d3ee;
    --cyan-dark: #06b6d4;
    /* COOLORS PALETTE*/
    /* CSS HEX */
    --imperial-blue: #00296bff;
    --french-blue: #003f88ff;
    --steel-azure: #00509dff;
    --school-bus-yellow: #fdc500ff;
    --gold: #ffd500ff;
    /* CSS HSL */
    --imperial-blue-hsl: hsla(217, 100%, 21%, 1);
    --french-blue-hsl: hsla(212, 100%, 27%, 1);
    --steel-azure-hsl: hsla(209, 100%, 31%, 1);
    --school-bus-yellow-hsl: hsla(47, 100%, 50%, 1);
    --gold-hsl: hsla(50, 100%, 50%, 1);
}




/* --- Components Overrides --- */
[class*="sidebar-dark-"] {
    background-color: var(--primary) !important;
    background-image: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
}

/* Generic Button Mixin Logic applied to classes */

/* Primary Button */
.btn-primary {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    background-image: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: #fff !important;
    box-shadow: 0 2px 4px rgba(0, 63, 136, 0.2);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    background-color: var(--primary-dark) !important;
    border-color: var(--primary-dark) !important;
    background-image: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
    box-shadow: 0 4px 6px rgba(0, 63, 136, 0.3);
}

/* Secondary Button */
.btn-secondary {
    background-color: var(--secondary) !important;
    border-color: var(--secondary) !important;
    background-image: linear-gradient(135deg, var(--secondary) 0%, var(--secondary-dark) 100%);
    color: #fff !important;
    box-shadow: 0 2px 4px rgba(108, 117, 125, 0.25);
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-secondary.active {
    background-color: var(--secondary-dark) !important;
    border-color: var(--secondary-dark) !important;
    background-image: linear-gradient(135deg, var(--secondary-dark) 0%, var(--secondary) 100%);
}

/* Success Button */
.btn-success {
    background-color: var(--success) !important;
    border-color: var(--success) !important;
    background-image: linear-gradient(135deg, var(--success) 0%, var(--success-dark) 100%);
    color: #fff !important;
    box-shadow: 0 2px 4px rgba(40, 167, 69, 0.25);
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active {
    background-color: var(--success-dark) !important;
    border-color: var(--success-dark) !important;
    background-image: linear-gradient(135deg, var(--success-dark) 0%, var(--success) 100%);
}

/* Info Button */
.btn-info {
    background-color: var(--info) !important;
    border-color: var(--info) !important;
    background-image: linear-gradient(135deg, var(--info) 0%, var(--info-dark) 100%);
    color: #fff !important;
    box-shadow: 0 2px 4px rgba(23, 162, 184, 0.25);
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active {
    background-color: var(--info-dark) !important;
    border-color: var(--info-dark) !important;
    background-image: linear-gradient(135deg, var(--info-dark) 0%, var(--info) 100%);
}

/* Warning Button */
.btn-warning {
    background-color: var(--warning) !important;
    border-color: var(--warning) !important;
    background-image: linear-gradient(135deg, var(--warning) 0%, var(--warning-dark) 100%);
    color: #1f2d3d !important;
    /* Dark text for yellow button */
    box-shadow: 0 2px 4px rgba(255, 193, 7, 0.25);
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active {
    background-color: var(--warning-dark) !important;
    border-color: var(--warning-dark) !important;
    background-image: linear-gradient(135deg, var(--warning-dark) 0%, var(--warning) 100%);
}

/* Danger Button */
.btn-danger {
    background-color: var(--danger) !important;
    border-color: var(--danger) !important;
    background-image: linear-gradient(135deg, var(--danger) 0%, var(--danger-dark) 100%);
    color: #fff !important;
    box-shadow: 0 2px 4px rgba(220, 53, 69, 0.25);
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active {
    background-color: var(--danger-dark) !important;
    border-color: var(--danger-dark) !important;
    background-image: linear-gradient(135deg, var(--danger-dark) 0%, var(--danger) 100%);
}

/* --- Badge Overrides --- */

.badge {
    padding-top: 0.35em;
    padding-bottom: 0.35em;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* Primary Badge */
.badge-primary {
    background-color: var(--primary) !important;
    background-image: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: #fff !important;
}

/* Secondary Badge */
.badge-secondary {
    background-color: var(--secondary) !important;
    background-image: linear-gradient(135deg, var(--secondary) 0%, var(--secondary-dark) 100%);
    color: #fff !important;
}

/* Success Badge */
.badge-success {
    background-color: var(--success) !important;
    background-image: linear-gradient(135deg, var(--success) 0%, var(--success-dark) 100%);
    color: #fff !important;
}

/* Info Badge */
.badge-info {
    background-color: var(--info) !important;
    background-image: linear-gradient(135deg, var(--info) 0%, var(--info-dark) 100%);
    color: #fff !important;
}

/* Warning Badge */
.badge-warning {
    background-color: var(--warning) !important;
    background-image: linear-gradient(135deg, var(--warning) 0%, var(--warning-dark) 100%);
    color: #1f2d3d !important;
}

/* Danger Badge */
.badge-danger {
    background-color: var(--danger) !important;
    background-image: linear-gradient(135deg, var(--danger) 0%, var(--danger-dark) 100%);
    color: #fff !important;
}

/* Indigo Badge */
.badge-indigo {
    background-color: var(--indigo) !important;
    background-image: linear-gradient(135deg, var(--indigo) 0%, var(--indigo-dark) 100%);
    color: #fff !important;
}

/* Purple Badge */
.badge-purple {
    background-color: var(--purple) !important;
    background-image: linear-gradient(135deg, var(--purple) 0%, var(--purple-dark) 100%);
    color: #fff !important;
}

/* Teal Badge */
.badge-teal {
    background-color: var(--teal) !important;
    background-image: linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%);
    color: #fff !important;
}

/* Cyan Badge */
.badge-cyan {
    background-color: var(--cyan) !important;
    background-image: linear-gradient(135deg, var(--cyan) 0%, var(--cyan-dark) 100%);
    color: #fff !important;
}

/* --- SweetAlert2 Overrides --- */

div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm {
    background-color: var(--primary) !important;
    background-image: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    box-shadow: 0 2px 4px rgba(0, 63, 136, 0.2) !important;
    border: none !important;
    color: #fff !important;
}

div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:hover {
    background-color: var(--primary-dark) !important;
    background-image: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
    box-shadow: 0 4px 6px rgba(0, 63, 136, 0.3) !important;
}

div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus {
    box-shadow: 0 0 0 2px rgba(0, 180, 216, 0.4) !important;
}

div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel {
    background-color: var(--secondary) !important;
    background-image: linear-gradient(135deg, var(--secondary) 0%, var(--secondary-dark) 100%);
    box-shadow: 0 2px 4px rgba(108, 117, 125, 0.25) !important;
    border: none !important;
    color: #fff !important;
}

div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:hover {
    background-color: var(--secondary-dark) !important;
    background-image: linear-gradient(135deg, var(--secondary-dark) 0%, var(--secondary) 100%);
}

div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus {
    box-shadow: 0 0 0 2px rgba(108, 117, 125, 0.5) !important;
}

/* Application specific cleanups if buttons are used in odd places */


/* Backgrounds */
.bg-primary {
    background-color: var(--primary) !important;
    color: #fff !important;
}

/* Cards */
.card-primary.card-outline {
    border-top: 3px solid var(--primary);
}

.card-primary:not(.card-outline)>.card-header {
    background-color: var(--primary);
    background-image: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: #fff;
}

/* Modals */
.modal-content {
    border-radius: 0.5rem;
    overflow: hidden;
    border: none;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.modal-content{
    border-top: 3px solid var(--primary);
}
.modal-header {
    background-color: #fff;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #e2e8f0;
}

.modal-title {
    font-weight: 600;
    color: var(--dark);
    font-size: 1.1rem;
}

.modal-footer {
    background-color: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

/* Sidebar Overrides - Active State Only */
[class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active,
[class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active:hover,
[class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active:focus {
    background-color: var(--primary);
    color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);
}

.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active,
.sidebar-light-primary .nav-sidebar>.nav-item>.nav-link.active {
    background-color: var(--primary);
    color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);
}

/* Scrollbar */
.sidebar::-webkit-scrollbar-thumb {
    background-color: var(--primary-dark);
}

/* --- Typography & Legibility --- */

/* Revert Links to Bootstrap Defaults (Blue or Dark) for readability, override only strictly necessary */
a {
    color: var(--primary);
    /* Standard Bootstrap Blue for links */
}

a:hover {
    color: var(--primary-dark);
}

/* Keep Orange only for specific branded text classes if needed, otherwise default to dark. */
.text-primary {
    color: var(--primary) !important;
}

/* Dropdown items shouldn't be orange unless active */
.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--primary);
    color: #fff;
}

/* Pagination - Orange for active state */
.page-item.active .page-link {
    background-color: var(--primary);
    border-color: var(--primary);
}

/* Form Controls - Focus State */
.form-control:focus {
    border-color: var(--primary-light);
    box-shadow: 0 0 0 0.2rem rgba(0, 180, 216, 0.2);
}

/* Logo Sizing */
.brand-link .brand-image {
    max-height: 48px;
    width: auto;
    margin-top: -8px;
    float: none;
}

/* Navbar */
.main-header {
    border-bottom: 1px solid #dee2e6;
}