/* ==========================================================================
   THEME: Sovereign Royal & Freedom (UK National / Regal)
   Palette: Porcelain White, Deep Sovereign Navy, Royal Crimson & Jubilee Gold
   Style: Light, Crisp, Regal & Prestigious
   ========================================================================== */

:root {
    /* 1. Crisp White & Platinum Canvas */
    --bs-body-bg: #f8fafc;
    /* Crisp Ice-White Canvas */
    --bs-body-color: #0f172a;
    /* Deep Slate Body Text */
    --bs-border-color: #e2e8f0;
    /* Fine Silver Divider Lines */
    --bs-body-font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;

    /* 2. Regal Accents */
    --bs-primary: #1e3a8a;
    /* Deep Sovereign Royal Navy */
    --bs-primary-rgb: 30, 58, 138;
    --royal-crimson: #be123c;
    /* Sovereign Crimson Rose */
    --jubilee-gold: #d97706;
    /* Jubilee Crown Gold */
    --navy-glow: rgba(30, 58, 138, 0.15);

    /* 3. Components & Inputs */
    --form-input-bg: #ffffff;
    --form-border-radius: 8px;
    --theme-text-muted: #64748b;
    /* Cool Slate Muted Text */
}

/* === Global Reset & Body === */
body {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
    font-family: var(--bs-body-font-family);
}

/* === Typography === */
.theme-heading,
h1,
h2,
h3,
h4,
h5,
h6,
.card-title,
.page-title {
    color: #0f172a !important;
    font-weight: 700;
}

.theme-heading-3,
.theme-heading-4 {
    color: var(--bs-primary) !important;
    /* Sovereign Navy */
}

.theme-heading-5,
.theme-heading-6 {
    color: var(--royal-crimson) !important;
    /* Royal Crimson */
}

.theme-paragraph {
    color: #334155 !important;
}

/* === Topbar / Navigation === */
.theme-topbar {
    background-color: #ffffff !important;
    border-bottom: 3px solid var(--bs-primary) !important;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
}

.theme-topbar-user-link {
    color: #0f172a !important;
    transition: color 0.2s ease;
}

.theme-topbar-user-link:hover {
    color: var(--royal-crimson) !important;
}

.theme-topbar-avatar {
    background-color: var(--bs-primary) !important;
    color: #ffffff !important;
    font-weight: 700;
    box-shadow: 0 0 10px var(--navy-glow) !important;
}

.theme-topbar-toggle {
    background-color: #f1f5f9 !important;
    color: #1e293b !important;
    border: 1px solid #cbd5e1 !important;
}

.theme-topbar-toggle:hover {
    background-color: #e2e8f0 !important;
}

.theme-topbar-announcement {
    color: var(--bs-primary) !important;
}

.theme-topbar-announcement-btn {
    background-color: #eff6ff !important;
    color: var(--bs-primary) !important;
    border: 1px solid #bfdbfe !important;
}

/* === Sidebar (Offcanvas / Mobile Drawer) === */
.theme-sidebar,
.offcanvas {
    background-color: #0f172a !important;
    /* Sovereign Deep Midnight Navy */
    border-color: #1e293b !important;
}

.theme-sidebar-brand-text,
.offcanvas-title {
    color: #ffffff !important;
}

.theme-sidebar-divider {
    border-color: rgba(255, 255, 255, 0.1) !important;
    opacity: 1;
}

.theme-sidebar-footer {
    color: #94a3b8 !important;
}

.theme-sidebar-close-btn,
.offcanvas-header .btn-close {
    filter: invert(1) brightness(2) !important;
}

/* Sidebar Navigation Links */
.theme-sidebar-link {
    color: #cbd5e1 !important;
    transition: all 0.2s ease;
}

.theme-sidebar-link:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #ffffff !important;
}

.theme-sidebar-link-active {
    background-color: var(--royal-crimson) !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    box-shadow: 0 4px 14px rgba(190, 18, 60, 0.35) !important;
}

/* === Buttons (Royal Precision) === */
.theme-btn,
.btn-primary {
    border-radius: 8px !important;
    font-weight: 600 !important;
    letter-spacing: 0.3px;
    padding: 0.55rem 1.3rem;
    transition: all 0.25s ease !important;
}

/* Primary: Sovereign Royal Navy */
.theme-btn-primary,
.btn-primary {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px var(--navy-glow) !important;
}

.theme-btn-primary:hover,
.btn-primary:hover {
    background-color: #1e1b4b !important;
    border-color: #1e1b4b !important;
    box-shadow: 0 6px 16px rgba(30, 27, 75, 0.25) !important;
}

/* Secondary: Jubilee Gold Accent */
.theme-btn-secondary {
    background-color: #fef3c7 !important;
    border-color: #fde68a !important;
    color: #92400e !important;
}

.theme-btn-secondary:hover {
    background-color: #fde68a !important;
    color: #78350f !important;
}

/* Danger: Royal Crimson */
.theme-btn-danger {
    background-color: var(--royal-crimson) !important;
    border-color: var(--royal-crimson) !important;
    color: #ffffff !important;
}

/* Outline: Navy Border */
.theme-btn-outline {
    background-color: transparent !important;
    border-color: var(--bs-primary) !important;
    color: var(--bs-primary) !important;
}

.theme-btn-outline:hover {
    background-color: #eff6ff !important;
    color: #1e1b4b !important;
}

/* === Cards === */
.card {
    background-color: #ffffff !important;
    border: 1px solid var(--bs-border-color) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover {
    border-color: #cbd5e1 !important;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08) !important;
}

/* === Form Inputs === */
.form-control,
.form-select {
    background-color: var(--form-input-bg) !important;
    border: 1px solid var(--bs-border-color) !important;
    border-radius: var(--form-border-radius) !important;
    color: var(--bs-body-color) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--bs-primary) !important;
    box-shadow: 0 0 0 0.25rem var(--navy-glow) !important;
}

/* === Badges === */
.theme-badge {
    border: 1px solid transparent !important;
    font-weight: 600 !important;
}

.theme-badge-success {
    background-color: #dcfce7 !important;
    color: #14532d !important;
}

.theme-badge-danger {
    background-color: #ffe4e6 !important;
    color: var(--royal-crimson) !important;
}

.theme-badge-warning {
    background-color: #fef3c7 !important;
    color: #92400e !important;
}

.theme-badge-info {
    background-color: #eff6ff !important;
    color: var(--bs-primary) !important;
}

.theme-badge-secondary {
    background-color: #f1f5f9 !important;
    color: #475569 !important;
}

/* === Stat Cards & Feature Icons === */
.theme-stat-card {
    background-color: #ffffff !important;
}

.theme-stat-label {
    color: var(--theme-text-muted) !important;
}

.theme-stat-value {
    color: #0f172a !important;
}

.theme-stat-icon-primary {
    background-color: #eff6ff !important;
    color: var(--bs-primary) !important;
}

.theme-stat-icon-success {
    background-color: #fef3c7 !important;
    color: var(--jubilee-gold) !important;
}

.theme-stat-icon-warning {
    background-color: #ffe4e6 !important;
    color: var(--royal-crimson) !important;
}

/* === Tables === */
.theme-table-header {
    background-color: #f8fafc !important;
}

.theme-table-th {
    color: #0f172a !important;
    border-bottom: 2px solid var(--bs-border-color) !important;
}

.theme-table-row {
    border-bottom: 1px solid var(--bs-border-color) !important;
}

.theme-table-row:hover {
    background-color: #f1f5f9 !important;
}

.theme-table-td {
    color: #334155 !important;
}

.theme-table-empty {
    color: var(--theme-text-muted) !important;
}

/* === Dropdowns & Accordions === */
.theme-dropdown-menu,
.dropdown-menu {
    background-color: #ffffff !important;
    border: 1px solid var(--bs-border-color) !important;
    border-radius: 10px !important;
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.08) !important;
}

.theme-dropdown-header {
    color: var(--theme-text-muted) !important;
}

.theme-dropdown-item,
.dropdown-item {
    color: #334155 !important;
}

.theme-dropdown-item:hover,
.dropdown-item:hover {
    background-color: #eff6ff !important;
    color: var(--bs-primary) !important;
}

.theme-dropdown-divider {
    border-color: var(--bs-border-color) !important;
}

.accordion-button:not(.collapsed) {
    background-color: #eff6ff !important;
    color: var(--bs-primary) !important;
}