@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700&display=swap');

/* Main Design Tokens */
:root {
    --primary-green: #249488;
    --accent-yellow: #f1dd27;
    --accent-gold: #f6a832;
    --accent-orange: #ef8137;
    --navy-primary: #1a1a2e;
    --navy-bg: #0f172a;
    --emerald-bg: #249488;
    --rose-bg: #ef8137;
    --sunset-bg: #ef8137;
    --light-border: #e2e8f0;
    --soft-bg: #f8fafc;
    --card-radius: 1.25rem;
    
    /* Typography Tokens */
    --font-size-base: 0.95rem;
    --font-size-h1: 2.25rem;
    --font-size-h2: 1.875rem;
    --font-size-h3: 1.5rem;
    --font-size-h4: 1.25rem;
    --font-size-h5: 1.125rem;
    --font-size-h6: 1rem;
}

body { 
    font-family: 'Outfit', sans-serif; 
    font-size: var(--font-size-base);
    background-color: var(--soft-bg); 
    color: #334155;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.02em;
}

h1 { font-size: var(--font-size-h1); }
h2 { font-size: var(--font-size-h2); }
h3 { font-size: var(--font-size-h3); }
h4 { font-size: var(--font-size-h4); }
h5 { font-size: var(--font-size-h5); }
h6 { font-size: var(--font-size-h6); }

/* Top Navbar Styling with Dynamic Color Cycling */
@keyframes headerColorCycle {
    0%, 20% { border-bottom-color: #249488; box-shadow: 0 2px 8px rgba(36, 148, 136, 0.08); }
    25%, 45% { border-bottom-color: #f1dd27; box-shadow: 0 2px 8px rgba(241, 221, 39, 0.08); }
    50%, 70% { border-bottom-color: #f6a832; box-shadow: 0 2px 8px rgba(246, 168, 50, 0.08); }
    75%, 95% { border-bottom-color: #ef8137; box-shadow: 0 2px 8px rgba(239, 129, 55, 0.08); }
}

.main-header {
    border-bottom: 1.5px solid var(--accent-orange) !important;
    background-color: #ffffff !important;
    animation: headerColorCycle 40s infinite;
    transition: border-color 2s ease, box-shadow 2s ease;
}

.main-header .nav-link, 
.main-header .nav-link i, 
.main-header .navbar-nav .nav-link {
    color: #0f172a !important; /* Deep Navy for maximum visibility */
    font-weight: 600 !important;
}

.main-header .nav-link:hover, 
.main-header .nav-link:hover i {
    color: var(--primary-green) !important;
}

body.dark-mode .main-header {
    background-color: #1e2533 !important;
    animation: headerColorCycle 40s infinite;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2) !important;
}

body.dark-mode .main-header .nav-link,
body.dark-mode .main-header .nav-link i {
    color: #e2e8f0 !important;
}

/* ━━━  CENTRALIZED SIDEBAR SYSTEM  ━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.main-sidebar {
    background-color: #ffffff !important;
    border-right: 1px solid #e2e8f0 !important;
    box-shadow: none !important;
}

.nav-sidebar .nav-link {
    border-radius: 8px !important;
    margin: 4px 10px !important;
    padding: 10px 15px !important;
    transition: all 0.25s ease;
    color: #334155 !important; /* Darker grey for better visibility */
    font-weight: 500;
}

.nav-header {
    color: #64748b !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 1rem 1.5rem 0.5rem !important;
}

/* All Hover States */
.nav-sidebar .nav-link:hover {
    background-color: rgba(36, 148, 136, 0.05) !important;
    color: var(--primary-green) !important;
}

/* Ensure active and open menu items have white text and icons */
.nav-sidebar .nav-link.active,
.nav-sidebar .nav-link.active p,
.nav-sidebar .nav-link.active i,
.nav-item.menu-open > .nav-link,
.nav-item.menu-open > .nav-link p,
.nav-item.menu-open > .nav-link i,
.nav-item.menu-is-opening > .nav-link,
.nav-item.menu-is-opening > .nav-link p,
.nav-item.menu-is-opening > .nav-link i {
    background-color: var(--primary-green) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    box-shadow: 0 4px 12px rgba(36, 148, 136, 0.2);
}

.nav-sidebar .nav-link.active .nav-icon,
.nav-item.menu-open > .nav-link .nav-icon,
.nav-item.menu-is-opening > .nav-link .nav-icon {
    color: #ffffff !important;
}

/* Sub-menu styling */
.nav-treeview .nav-link {
    color: #475569 !important;
    padding-left: 2rem !important;
}

.nav-treeview .nav-link.active,
.nav-treeview .nav-link.active p,
.nav-treeview .nav-link.active i {
    background-color: var(--primary-green) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
}

.nav-treeview .nav-link.active .nav-icon {
    color: #ffffff !important;
}

/* Icons */
.nav-sidebar .nav-icon {
    color: var(--primary-green) !important;
    margin-right: 12px !important;
    font-size: 1.1rem;
}

/* Treeview (Submenus) */
.nav-treeview {
    padding-left: 15px;
}

.nav-treeview .nav-link {
    font-size: 0.85rem !important;
}

/* Dark Mode Overrides */
body.dark-mode .main-sidebar {
    background-color: #1e2533 !important;
    border-right-color: rgba(255,255,255,0.05) !important;
}

body.dark-mode .nav-sidebar .nav-link {
    color: #e2e8f0 !important; /* Brighter for dark mode */
}

body.dark-mode .nav-header {
    color: #94a3b8 !important;
}

body.dark-mode .nav-sidebar .nav-link:hover {
    background-color: rgba(255,255,255,0.05) !important;
    color: #ffffff !important;
}

body.dark-mode .nav-sidebar .nav-link.active {
    background-color: rgba(36, 148, 136, 0.2) !important;
    color: #ffffff !important;
}


/* Metric Cards (Premium Look) */
.metric-card {
    border-radius: var(--card-radius);
    padding: 1.5rem;
    color: #fff;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s;
    border: none;
    margin-bottom: 1.5rem;
    min-height: 120px;
    display: flex;
    align-items: center;
}

.metric-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}

.bg-gradient-navy { background: linear-gradient(135deg, #0f172a 0%, #334155 100%); }
.bg-gradient-emerald { background: linear-gradient(135deg, #00827d 0%, #037f96 100%); }
.bg-gradient-sunset { background: linear-gradient(135deg, #f26419 0%, #cf9b4c 100%); }
.bg-gradient-teal { background: linear-gradient(135deg, #037f96 0%, #00827d 100%); }
.bg-gradient-rose { background: linear-gradient(135deg, #037f96 0%, #00827d 100%); } /* Overridden to Teal to avoid Red */

.metric-icon-bg {
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    font-size: 1.5rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.metric-body { width: 100%; }

body.dark-mode .nav-sidebar .nav-link:hover {
    background-color: rgba(255,255,255,0.03) !important;
}

/* Glassmorphism Components */
.card-dark-glass {
    background: rgba(15, 23, 42, 0.95);
    backdrop-filter: blur(10px);
    color: #fff;
    border-radius: var(--card-radius);
    border: none;
}

.bg-dark-navy { background-color: #020617; }
 
/* Advanced Metric Blocks (Inner Cards) */
.metric-block {
    padding: 1.25rem;
    border-radius: 1rem;
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    height: 100%;
    transition: all 0.3s ease;
}

.metric-block:hover {
    background-color: #fff;
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0,0,0,0.08);
}

.mb-primary { 
    border: 1.2px solid rgba(0, 130, 125, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(0, 130, 125, 0.05);
}
.mb-success { 
    border: 1.2px solid rgba(40, 167, 69, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(40, 167, 69, 0.05);
}
.mb-info { 
    border: 1.2px solid rgba(3, 127, 150, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(3, 127, 150, 0.05);
}
.mb-orange { 
    border: 1.2px solid rgba(242, 100, 25, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(242, 100, 25, 0.05);
}
.mb-warning { 
    border: 1.2px solid rgba(207, 155, 76, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(207, 155, 76, 0.05);
}
.mb-danger { 
    border: 1.2px solid rgba(220, 53, 69, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(220, 53, 69, 0.05);
}
.mb-rose { 
    border: 1.2px solid rgba(159, 18, 57, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(159, 18, 57, 0.05);
}
.mb-indigo { 
    border: 1.2px solid rgba(99, 102, 241, 0.3) !important; 
    box-shadow: inset 0 0 10px rgba(99, 102, 241, 0.05);
}

/* Filter Pill Controls */
.glass-select-wrapper {
    background: #fff;
    padding: 0.5rem 1rem;
    border-radius: 50px;
    display: flex;
    align-items: center;
    border: 1px solid var(--light-border);
}

body.dark-mode .glass-select-wrapper {
    background: #2a3345 !important;
    border-color: rgba(255,255,255,0.1) !important;
}

.form-control-clean {
    border: none;
    background: transparent;
    font-weight: 600;
    color: #1e293b;
    outline: none;
    cursor: pointer;
}

body.dark-mode .form-control-clean {
    color: #c8d0e0 !important;
}

.table-premium {
    border-collapse: separate;
    border-spacing: 0 0.75rem;
    font-size: 0.9rem;
}

.table-premium tr {
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    transition: transform 0.2s;
}

body.dark-mode .table-premium tr {
    background: #252d3d !important;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2) !important;
}

.table-premium tr:hover {
    transform: scale(1.01);
    box-shadow: 0 4px 6px rgba(0,0,0,0.08);
}

body.dark-mode .table-premium tr:hover {
    background: #2c364a !important;
}

.table-premium td {
    padding: 1.15rem 1.25rem !important;
    border-top: none !important;
    vertical-align: middle !important;
}

.table-premium th {
    border: none;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    color: #64748b;
    padding-bottom: 0.5rem !important;
}

.table-premium td:first-child { border-radius: 10px 0 0 10px; }
.table-premium td:last-child { border-radius: 0 10px 10px 0; }

/* Typography Extras */
.tabular { font-variant-numeric: tabular-nums; }
.text-tabular { font-variant-numeric: tabular-nums; }
.tracking-widest { letter-spacing: 0.1em; }
.tracking-wider { letter-spacing: 0.05em; }
.x-small { font-size: 0.75rem; }
.font-weight-600 { font-weight: 600; }
.font-weight-700 { font-weight: 700; }

/* Buttons & Elements */
.btn { border-radius: 0.75rem; font-weight: 600; padding: 0.5rem 1.25rem; }
.rounded-xl { border-radius: 1.25rem !important; }

/* Preloader Transparency */
.preloader {
    background-color: transparent !important;
    backdrop-filter: blur(2px);
}
body.dark-mode .preloader {
    background-color: transparent !important;
}

/* ━━━  End Sidebar Section  ━━━ */

/* Sidebar section headings */
body.dark-mode .nav-header {
    color: #475569 !important;
}

/* Global Overrides */
.text-primary { color: var(--primary-green) !important; }
.bg-primary { background-color: var(--primary-green) !important; }
.btn-primary { background-color: var(--primary-green) !important; border-color: var(--primary-green) !important; }
.btn-primary:hover { background-color: #1b7369 !important; border-color: #1b7369 !important; }
.btn-outline-primary { color: var(--primary-green) !important; border-color: var(--primary-green) !important; }
.btn-outline-primary:hover { background-color: var(--primary-green) !important; color: #fff !important; }
.badge-primary { background-color: var(--primary-green) !important; }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background-color: var(--primary-green) !important; }
.border-primary { border-color: var(--primary-green) !important; }
.bg-gradient-primary { background: linear-gradient(135deg, var(--primary-green) 0%, var(--accent-gold) 100%) !important; }

/* Eliminate Red/Danger with Brand Orange */
.bg-danger, .bg-red, .btn-danger, .badge-danger { 
    background-color: var(--accent-orange) !important; 
    border-color: var(--accent-orange) !important; 
    color: #fff !important;
}
.text-danger { color: var(--accent-orange) !important; }
.btn-danger:hover { background-color: #d15010 !important; }

/* Additional Accents */
.bg-navy { background-color: var(--navy-primary) !important; }
.text-navy { color: var(--navy-primary) !important; }
.text-orange { color: var(--accent-orange) !important; }
.text-gold { color: var(--accent-gold) !important; }
.text-yellow { color: var(--accent-yellow) !important; }
.bg-orange { background-color: var(--accent-orange) !important; }
.bg-gold { background-color: var(--accent-gold) !important; }
.bg-yellow { background-color: var(--accent-yellow) !important; }

/* Custom Buttons */
.btn-teal {
    background-color: var(--accent-teal) !important;
    border-color: var(--accent-teal) !important;
    color: #fff !important;
}

.btn-teal:hover {
    background-color: #02697a !important;
    border-color: #02697a !important;
    color: #fff !important;
}

.btn-outline-teal {
    color: var(--accent-teal) !important;
    border-color: var(--accent-teal) !important;
}

.btn-outline-teal:hover {
    background-color: var(--accent-teal) !important;
    color: #fff !important;
}

.btn-indigo {
    background-color: #6366f1 !important;
    border-color: #6366f1 !important;
    color: #fff !important;
}

.btn-outline-indigo {
    color: #6366f1 !important;
    border-color: #6366f1 !important;
}

.btn-outline-indigo:hover {
    background-color: #6366f1 !important;
    color: #fff !important;
}

.btn-orange {
    background-color: var(--accent-orange) !important;
    border-color: var(--accent-orange) !important;
    color: #fff !important;
}

.btn-outline-orange {
    color: var(--accent-orange) !important;
    border-color: var(--accent-orange) !important;
}

.btn-outline-orange:hover {
    background-color: var(--accent-orange) !important;
    color: #fff !important;
}
