/* ========================================
   Swamedia Brand CSS
   Accenix Identity & Access Management
   ======================================== */

/* ========================================
   Font Loading
   Fonts are loaded via Google Fonts CDN in the HTML head for better performance.
   Only 4 weights of each font are loaded: 400, 500, 600, 700
   - Poppins: Headings and branding
   - Inter: Body text and UI elements
   ======================================== */

/* ========================================
   Brand CSS Variables
   ======================================== */

:root {
    /* ---- Primary Brand Colors ---- */
    --brand-primary: #2563eb;
    --brand-primary-hover: #1d4ed8;
    --brand-primary-light: #3b82f6;
    --brand-primary-dark: #1e40af;
    --brand-primary-rgb: 37, 99, 235;
    
    /* ---- Secondary Colors ---- */
    --brand-secondary: #64748b;
    --brand-secondary-hover: #475569;
    --brand-secondary-light: #94a3b8;
    --brand-secondary-dark: #334155;
    
    /* ---- Accent Colors ---- */
    --brand-accent: #06b6d4;
    --brand-accent-hover: #0891b2;
    --brand-accent-light: #22d3ee;
    
    /* ---- Success/Error/Warning Colors ---- */
    --brand-success: #10b981;
    --brand-success-hover: #059669;
    --brand-success-light: #34d399;
    
    --brand-danger: #ef4444;
    --brand-danger-hover: #dc2626;
    --brand-danger-light: #f87171;
    
    --brand-warning: #f59e0b;
    --brand-warning-hover: #d97706;
    --brand-warning-light: #fbbf24;
    
    --brand-info: #3b82f6;
    --brand-info-hover: #2563eb;
    --brand-info-light: #60a5fa;
    
    /* ---- Neutral Colors ---- */
    --brand-text-dark: #1f2937;
    --brand-text-body: #374151;
    --brand-text-muted: #6b7280;
    --brand-text-light: #9ca3af;
    
    --brand-bg-white: #ffffff;
    --brand-bg-light: #f9fafb;
    --brand-bg-gray: #f3f4f6;
    --brand-bg-dark: #1f2937;
    
    --brand-border-light: #e5e7eb;
    --brand-border-default: #d1d5db;
    --brand-border-dark: #9ca3af;
    
    /* ---- Typography ---- */
    --brand-font-heading: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --brand-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --brand-font-mono: 'SF Mono', 'Fira Code', 'Consolas', monospace;
    
    /* Font Sizes */
    --brand-text-xs: 0.75rem;    /* 12px */
    --brand-text-sm: 0.875rem;   /* 14px */
    --brand-text-base: 1rem;     /* 16px */
    --brand-text-lg: 1.125rem;   /* 18px */
    --brand-text-xl: 1.25rem;    /* 20px */
    --brand-text-2xl: 1.5rem;    /* 24px */
    --brand-text-3xl: 1.875rem;  /* 30px */
    --brand-text-4xl: 2.25rem;   /* 36px */
    --brand-text-5xl: 3rem;      /* 48px */
    
    /* Font Weights */
    --brand-font-light: 300;
    --brand-font-normal: 400;
    --brand-font-medium: 500;
    --brand-font-semibold: 600;
    --brand-font-bold: 700;
    --brand-font-extrabold: 800;
    
    /* Line Heights */
    --brand-leading-tight: 1.25;
    --brand-leading-normal: 1.5;
    --brand-leading-relaxed: 1.625;
    
    /* ---- Spacing ---- */
    --brand-space-1: 0.25rem;   /* 4px */
    --brand-space-2: 0.5rem;    /* 8px */
    --brand-space-3: 0.75rem;   /* 12px */
    --brand-space-4: 1rem;      /* 16px */
    --brand-space-5: 1.25rem;   /* 20px */
    --brand-space-6: 1.5rem;    /* 24px */
    --brand-space-8: 2rem;      /* 32px */
    --brand-space-10: 2.5rem;   /* 40px */
    --brand-space-12: 3rem;     /* 48px */
    --brand-space-16: 4rem;     /* 64px */
    
    /* ---- Border Radius ---- */
    --brand-radius-sm: 0.25rem;  /* 4px */
    --brand-radius-md: 0.375rem; /* 6px */
    --brand-radius-lg: 0.5rem;   /* 8px */
    --brand-radius-xl: 0.75rem;  /* 12px */
    --brand-radius-2xl: 1rem;    /* 16px */
    --brand-radius-full: 9999px;
    
    /* ---- Shadows ---- */
    --brand-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --brand-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --brand-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --brand-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    
    /* ---- Transitions ---- */
    --brand-transition-fast: 150ms ease;
    --brand-transition-normal: 200ms ease;
    --brand-transition-slow: 300ms ease;
    
    /* ---- Z-Index Scale ---- */
    --brand-z-dropdown: 1000;
    --brand-z-sticky: 1020;
    --brand-z-fixed: 1030;
    --brand-z-modal-backdrop: 1040;
    --brand-z-modal: 1050;
    --brand-z-popover: 1060;
    --brand-z-tooltip: 1070;
}

/* ========================================
   Bootstrap Variable Overrides
   ======================================== */

:root {
    /* Override Bootstrap primary color */
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: var(--brand-primary-rgb);
    
    /* Override Bootstrap font */
    --bs-font-sans-serif: var(--brand-font-body);
    --bs-body-font-family: var(--brand-font-body);
    
    /* Override Bootstrap body colors */
    --bs-body-color: var(--brand-text-body);
    --bs-body-bg: var(--brand-bg-light);
    
    /* Override Bootstrap link colors */
    --bs-link-color: var(--brand-primary);
    --bs-link-hover-color: var(--brand-primary-hover);
}

/* ========================================
   Utility Classes
   ======================================== */

/* Font Family */
.font-heading { font-family: var(--brand-font-heading) !important; }
.font-body { font-family: var(--brand-font-body) !important; }
.font-mono { font-family: var(--brand-font-mono) !important; }

/* Brand Colors - Text */
.text-brand-primary { color: var(--brand-primary) !important; }
.text-brand-secondary { color: var(--brand-secondary) !important; }
.text-brand-accent { color: var(--brand-accent) !important; }
.text-brand-muted { color: var(--brand-text-muted) !important; }

/* Brand Colors - Background */
.bg-brand-primary { background-color: var(--brand-primary) !important; }
.bg-brand-secondary { background-color: var(--brand-secondary) !important; }
.bg-brand-accent { background-color: var(--brand-accent) !important; }
.bg-brand-light { background-color: var(--brand-bg-light) !important; }

/* ========================================
   Component Styles - Buttons
   ======================================== */

.btn-brand-primary {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: white;
    font-family: var(--brand-font-body);
    font-weight: var(--brand-font-medium);
    transition: all var(--brand-transition-normal);
}

.btn-brand-primary:hover,
.btn-brand-primary:focus {
    background-color: var(--brand-primary-hover);
    border-color: var(--brand-primary-hover);
    color: white;
    transform: translateY(-1px);
    box-shadow: var(--brand-shadow-md);
}

.btn-brand-primary:active {
    transform: translateY(0);
}

.btn-brand-outline {
    background-color: transparent;
    border-color: var(--brand-primary);
    color: var(--brand-primary);
    font-family: var(--brand-font-body);
    font-weight: var(--brand-font-medium);
    transition: all var(--brand-transition-normal);
}

.btn-brand-outline:hover,
.btn-brand-outline:focus {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: white;
}

/* ========================================
   Component Styles - Cards
   ======================================== */

.card-brand {
    background: var(--brand-bg-white);
    border: 1px solid var(--brand-border-light);
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow-sm);
    transition: all var(--brand-transition-normal);
}

.card-brand:hover {
    box-shadow: var(--brand-shadow-md);
    transform: translateY(-2px);
}

.card-brand .card-header {
    background: transparent;
    border-bottom: 1px solid var(--brand-border-light);
    font-family: var(--brand-font-heading);
    font-weight: var(--brand-font-semibold);
}

/* ========================================
   Component Styles - Forms
   ======================================== */

.form-control-brand {
    border: 1px solid var(--brand-border-default);
    border-radius: var(--brand-radius-md);
    font-family: var(--brand-font-body);
    padding: var(--brand-space-3) var(--brand-space-4);
    transition: all var(--brand-transition-fast);
}

.form-control-brand:focus {
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 3px rgba(var(--brand-primary-rgb), 0.1);
    outline: none;
}

.form-label-brand {
    font-family: var(--brand-font-body);
    font-weight: var(--brand-font-medium);
    font-size: var(--brand-text-sm);
    color: var(--brand-text-body);
    margin-bottom: var(--brand-space-2);
}

/* ========================================
   Typography Styles
   ======================================== */

.heading-brand {
    font-family: var(--brand-font-heading);
    font-weight: var(--brand-font-bold);
    color: var(--brand-text-dark);
    line-height: var(--brand-leading-tight);
}

.heading-brand-xl {
    font-size: var(--brand-text-4xl);
}

.heading-brand-lg {
    font-size: var(--brand-text-3xl);
}

.heading-brand-md {
    font-size: var(--brand-text-2xl);
}

.heading-brand-sm {
    font-size: var(--brand-text-xl);
}

.text-brand {
    font-family: var(--brand-font-body);
    color: var(--brand-text-body);
    line-height: var(--brand-leading-normal);
}

/* ========================================
   Global Overrides (when brand.css is imported)
   ======================================== */

body {
    font-family: var(--brand-font-body);
    color: var(--brand-text-body);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--brand-font-heading);
    font-weight: var(--brand-font-semibold);
    color: var(--brand-text-dark);
}

a {
    color: var(--brand-primary);
    transition: color var(--brand-transition-fast);
}

a:hover {
    color: var(--brand-primary-hover);
}

/* Primary button override */
.btn-primary {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--brand-primary-hover);
    border-color: var(--brand-primary-hover);
}

/* Success button override */
.btn-success {
    background-color: var(--brand-success);
    border-color: var(--brand-success);
}

.btn-success:hover,
.btn-success:focus {
    background-color: var(--brand-success-hover);
    border-color: var(--brand-success-hover);
}

/* Danger button override */
.btn-danger {
    background-color: var(--brand-danger);
    border-color: var(--brand-danger);
}

.btn-danger:hover,
.btn-danger:focus {
    background-color: var(--brand-danger-hover);
    border-color: var(--brand-danger-hover);
}

/* ========================================
   PHASE 2: COMPONENT STYLING REFINEMENTS
   ======================================== */

/* ========================================
   Sidebar Enhancements
   ======================================== */

/* Sidebar Base */
.sidebar,
#sidebar,
.nav-sidebar,
[class*="sidebar"] {
    background-color: var(--brand-bg-white);
    border-right: 1px solid var(--brand-border-light);
}

/* Sidebar Navigation Links */
.sidebar .nav-link,
.nav-sidebar .nav-link,
.sidebar-nav .nav-link,
.sidebar a.nav-link {
    font-family: var(--brand-font-body);
    font-size: var(--brand-text-sm);
    font-weight: var(--brand-font-medium);
    color: var(--brand-text-body);
    padding: var(--brand-space-3) var(--brand-space-4);
    border-radius: var(--brand-radius-md);
    margin: var(--brand-space-1) var(--brand-space-2);
    transition: all var(--brand-transition-normal);
    display: flex;
    align-items: center;
    gap: var(--brand-space-3);
}

/* Sidebar Hover State */
.sidebar .nav-link:hover,
.nav-sidebar .nav-link:hover,
.sidebar-nav .nav-link:hover {
    background-color: rgba(var(--brand-primary-rgb), 0.08);
    color: var(--brand-primary);
    transform: translateX(2px);
}

/* Sidebar Active State */
.sidebar .nav-link.active,
.nav-sidebar .nav-link.active,
.sidebar-nav .nav-link.active,
.sidebar .nav-item.active > .nav-link {
    background-color: rgba(var(--brand-primary-rgb), 0.12);
    color: var(--brand-primary);
    font-weight: var(--brand-font-semibold);
    border-left: 3px solid var(--brand-primary);
    margin-left: calc(var(--brand-space-2) - 3px);
}

/* Sidebar Icons */
.sidebar .nav-link i,
.sidebar .nav-link svg,
.nav-sidebar .nav-link i,
.nav-sidebar .nav-link svg {
    font-size: 1.1rem;
    width: 1.5rem;
    text-align: center;
    opacity: 0.8;
    transition: opacity var(--brand-transition-fast);
}

.sidebar .nav-link:hover i,
.sidebar .nav-link:hover svg,
.sidebar .nav-link.active i,
.sidebar .nav-link.active svg {
    opacity: 1;
}

/* Sidebar Section Headers */
.sidebar .nav-header,
.sidebar-heading,
.sidebar .sidebar-header,
.nav-sidebar .nav-header {
    font-family: var(--brand-font-heading);
    font-size: var(--brand-text-xs);
    font-weight: var(--brand-font-semibold);
    color: var(--brand-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: var(--brand-space-4) var(--brand-space-4) var(--brand-space-2);
    margin-top: var(--brand-space-2);
}

/* Sidebar Submenu */
.sidebar .nav-treeview,
.sidebar .submenu,
.sidebar .nav-item .collapse {
    background-color: rgba(var(--brand-primary-rgb), 0.03);
    border-radius: var(--brand-radius-md);
    margin: 0 var(--brand-space-2);
}

.sidebar .nav-treeview .nav-link,
.sidebar .submenu .nav-link {
    padding-left: var(--brand-space-8);
    font-size: var(--brand-text-sm);
}

/* Sidebar Brand Logo Area */
.sidebar .brand-logo,
.sidebar-brand,
.sidebar .logo-section {
    padding: var(--brand-space-4);
    border-bottom: 1px solid var(--brand-border-light);
    margin-bottom: var(--brand-space-2);
}

/* ========================================
   Navbar Enhancements
   ======================================== */

/* Navbar Base */
.navbar,
.main-header,
header.navbar {
    background-color: var(--brand-bg-white) !important;
    border-bottom: 1px solid var(--brand-border-light);
    box-shadow: var(--brand-shadow-sm);
    font-family: var(--brand-font-body);
}

/* Navbar Brand */
.navbar-brand,
.navbar .brand-text {
    font-family: var(--brand-font-heading);
    font-weight: var(--brand-font-bold);
    color: var(--brand-primary) !important;
    font-size: var(--brand-text-lg);
}

/* Navbar Nav Links */
.navbar .nav-link {
    font-weight: var(--brand-font-medium);
    color: var(--brand-text-body);
    padding: var(--brand-space-2) var(--brand-space-3);
    transition: color var(--brand-transition-fast);
}

.navbar .nav-link:hover {
    color: var(--brand-primary);
}

/* Organization Dropdown Badge */
.navbar .org-badge,
.navbar .organization-badge,
.org-dropdown-badge,
.navbar [class*="org"] .badge {
    background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-dark));
    color: white;
    font-size: var(--brand-text-xs);
    font-weight: var(--brand-font-semibold);
    padding: var(--brand-space-1) var(--brand-space-3);
    border-radius: var(--brand-radius-full);
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-1);
    transition: all var(--brand-transition-normal);
}

.navbar .org-badge:hover,
.navbar .organization-badge:hover {
    transform: scale(1.02);
    box-shadow: 0 2px 8px rgba(var(--brand-primary-rgb), 0.3);
}

/* Organization Dropdown */
.org-dropdown,
.organization-dropdown {
    min-width: 280px;
    padding: var(--brand-space-2);
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow-lg);
    border: 1px solid var(--brand-border-light);
}

.org-dropdown .dropdown-item,
.organization-dropdown .dropdown-item {
    padding: var(--brand-space-3) var(--brand-space-4);
    border-radius: var(--brand-radius-md);
    transition: all var(--brand-transition-fast);
}

.org-dropdown .dropdown-item:hover,
.organization-dropdown .dropdown-item:hover {
    background-color: rgba(var(--brand-primary-rgb), 0.08);
    color: var(--brand-primary);
}

.org-dropdown .dropdown-item.active,
.organization-dropdown .dropdown-item.active {
    background-color: var(--brand-primary);
    color: white;
}

/* User Profile Section in Navbar */
.navbar .navbar-nav.dropdown > a,
.navbar .navbar-nav .dropdown > a {
    border: none !important;
    background: transparent !important;
    padding: var(--brand-space-2) var(--brand-space-3);
    border-radius: var(--brand-radius-lg);
    transition: all var(--brand-transition-fast);
}

.navbar .navbar-nav.dropdown > a:hover,
.navbar .navbar-nav .dropdown > a:hover {
    background: var(--brand-bg-gray) !important;
}

.navbar .user-menu {
    display: flex;
    align-items: center;
    gap: var(--brand-space-2);
}

.navbar .user-name h6 {
    font-size: var(--brand-text-sm);
    line-height: 1.3;
}

.navbar .user-name p {
    font-size: 0.7rem;
}

/* User Menu Dropdown */
.navbar .dropdown-menu.user-dropdown,
.navbar [class*="user"] .dropdown-menu {
    min-width: 220px;
    padding: var(--brand-space-2);
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow-lg);
    border: 1px solid var(--brand-border-light);
}

.navbar .user-menu .dropdown-header,
.navbar .user-dropdown .dropdown-header {
    font-family: var(--brand-font-heading);
    font-weight: var(--brand-font-semibold);
    color: var(--brand-text-dark);
    padding: var(--brand-space-3) var(--brand-space-4);
}

.navbar .user-menu .dropdown-item,
.navbar .user-dropdown .dropdown-item {
    padding: var(--brand-space-2) var(--brand-space-4);
    border-radius: var(--brand-radius-md);
    transition: all var(--brand-transition-fast);
    display: flex;
    align-items: center;
    gap: var(--brand-space-2);
}

.navbar .user-menu .dropdown-item:hover,
.navbar .user-dropdown .dropdown-item:hover {
    background-color: rgba(var(--brand-primary-rgb), 0.08);
    color: var(--brand-primary);
}

.navbar .user-menu .dropdown-item i,
.navbar .user-dropdown .dropdown-item i {
    width: 1.25rem;
    text-align: center;
    color: var(--brand-text-muted);
}

/* User Avatar */
.navbar .user-avatar,
.navbar .user-image,
.user-panel .image img {
    width: 2rem;
    height: 2rem;
    border-radius: var(--brand-radius-full);
    border: 2px solid var(--brand-border-light);
    object-fit: cover;
}

/* Clock Display */
.navbar .clock,
.navbar .time-display,
.navbar .clock-display,
.navbar [class*="clock"],
#clock {
    font-family: var(--brand-font-mono);
    font-size: var(--brand-text-sm);
    font-weight: var(--brand-font-medium);
    color: var(--brand-text-body);
    background-color: var(--brand-bg-gray);
    padding: var(--brand-space-2) var(--brand-space-4);
    border-radius: var(--brand-radius-full);
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-2);
    border: 1px solid var(--brand-border-light);
}

.navbar .clock i,
.navbar .time-display i,
.navbar .clock-display i,
#clock i {
    color: var(--brand-primary);
    font-size: 0.875rem;
}

/* Notification Badge */
.navbar .badge-notification,
.navbar .notification-badge {
    position: absolute;
    top: 0;
    right: 0;
    background-color: var(--brand-danger);
    color: white;
    font-size: 0.65rem;
    min-width: 1rem;
    height: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--brand-radius-full);
    font-weight: var(--brand-font-bold);
}

/* ========================================
   Dashboard Component Styling
   ======================================== */

/* Dashboard Container */
#main,
.dashboard-content,
.content-wrapper,
.main-content {
    background-color: var(--brand-bg-light);
    min-height: calc(100vh - 60px);
}

/* Metric Cards */
.metric-card,
.stat-card,
.info-box,
.small-box,
.dashboard-card {
    background: var(--brand-bg-white);
    border-radius: var(--brand-radius-xl);
    box-shadow: var(--brand-shadow-sm);
    border: 1px solid var(--brand-border-light);
    padding: var(--brand-space-5);
    transition: all var(--brand-transition-normal);
    position: relative;
    overflow: hidden;
}

.metric-card:hover,
.stat-card:hover,
.info-box:hover,
.small-box:hover,
.dashboard-card:hover {
    box-shadow: var(--brand-shadow-md);
    transform: translateY(-2px);
}

/* Metric Card Icon */
.metric-card .icon,
.stat-card .icon,
.info-box-icon,
.small-box .icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: var(--brand-radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: var(--brand-space-3);
}

/* Metric Card Icon Colors */
.metric-card .icon-primary,
.info-box-icon.bg-primary,
.small-box.bg-primary .icon {
    background: rgba(var(--brand-primary-rgb), 0.12);
    color: var(--brand-primary);
}

.metric-card .icon-success,
.info-box-icon.bg-success {
    background: rgba(16, 185, 129, 0.12);
    color: var(--brand-success);
}

.metric-card .icon-warning,
.info-box-icon.bg-warning {
    background: rgba(245, 158, 11, 0.12);
    color: var(--brand-warning);
}

.metric-card .icon-danger,
.info-box-icon.bg-danger {
    background: rgba(239, 68, 68, 0.12);
    color: var(--brand-danger);
}

.metric-card .icon-info,
.info-box-icon.bg-info {
    background: rgba(59, 130, 246, 0.12);
    color: var(--brand-info);
}

/* Metric Card Value */
.metric-card .value,
.stat-card .value,
.info-box-number,
.small-box h3 {
    font-family: var(--brand-font-heading);
    font-size: var(--brand-text-3xl);
    font-weight: var(--brand-font-bold);
    color: var(--brand-text-dark);
    line-height: 1;
    margin-bottom: var(--brand-space-1);
}

/* Metric Card Label */
.metric-card .label,
.stat-card .label,
.info-box-text,
.small-box p {
    font-size: var(--brand-text-sm);
    font-weight: var(--brand-font-medium);
    color: var(--brand-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

/* Metric Card Trend */
.metric-card .trend,
.stat-card .trend {
    font-size: var(--brand-text-xs);
    font-weight: var(--brand-font-semibold);
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-1);
    padding: var(--brand-space-1) var(--brand-space-2);
    border-radius: var(--brand-radius-full);
    margin-top: var(--brand-space-2);
}

.metric-card .trend-up,
.stat-card .trend-up {
    background-color: rgba(16, 185, 129, 0.1);
    color: var(--brand-success);
}

.metric-card .trend-down,
.stat-card .trend-down {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--brand-danger);
}

/* Section Cards */
.section-card,
.card {
    background: var(--brand-bg-white);
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow-sm);
    border: 1px solid var(--brand-border-light);
    margin-bottom: var(--brand-space-5);
}

.section-card .card-header,
.card .card-header {
    background: transparent;
    border-bottom: 1px solid var(--brand-border-light);
    padding: var(--brand-space-4) var(--brand-space-5);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.section-card .card-title,
.card .card-title {
    font-family: var(--brand-font-heading);
    font-size: var(--brand-text-lg);
    font-weight: var(--brand-font-semibold);
    color: var(--brand-text-dark);
    margin: 0;
}

.section-card .card-body,
.card .card-body {
    padding: var(--brand-space-5);
}

.section-card .card-footer,
.card .card-footer {
    background: var(--brand-bg-light);
    border-top: 1px solid var(--brand-border-light);
    padding: var(--brand-space-3) var(--brand-space-5);
    border-radius: 0 0 var(--brand-radius-lg) var(--brand-radius-lg);
}

/* Status Badges */
.badge,
.status-badge {
    font-family: var(--brand-font-body);
    font-size: var(--brand-text-xs);
    font-weight: var(--brand-font-semibold);
    padding: var(--brand-space-1) var(--brand-space-3);
    border-radius: var(--brand-radius-full);
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-1);
}

/* Badge Variants */
.badge-primary,
.badge.bg-primary,
.status-badge-primary {
    background-color: rgba(var(--brand-primary-rgb), 0.12) !important;
    color: var(--brand-primary) !important;
}

.badge-success,
.badge.bg-success,
.status-badge-success {
    background-color: rgba(16, 185, 129, 0.12) !important;
    color: var(--brand-success) !important;
}

.badge-warning,
.badge.bg-warning,
.status-badge-warning {
    background-color: rgba(245, 158, 11, 0.12) !important;
    color: var(--brand-warning) !important;
}

.badge-danger,
.badge.bg-danger,
.status-badge-danger {
    background-color: rgba(239, 68, 68, 0.12) !important;
    color: var(--brand-danger) !important;
}

.badge-info,
.badge.bg-info,
.status-badge-info {
    background-color: rgba(59, 130, 246, 0.12) !important;
    color: var(--brand-info) !important;
}

.badge-secondary,
.badge.bg-secondary,
.status-badge-secondary {
    background-color: rgba(100, 116, 139, 0.12) !important;
    color: var(--brand-secondary) !important;
}

/* Badge with Dot Indicator */
.badge-dot::before,
.status-badge-dot::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: var(--brand-radius-full);
    background: currentColor;
}

/* ========================================
   Form Component Enhancements
   ======================================== */

/* Form Control Base */
.form-control,
.form-select {
    font-family: var(--brand-font-body);
    font-size: var(--brand-text-sm);
    color: var(--brand-text-body);
    background-color: var(--brand-bg-white);
    border: 1px solid var(--brand-border-default);
    border-radius: var(--brand-radius-md);
    padding: var(--brand-space-3) var(--brand-space-4);
    transition: all var(--brand-transition-fast);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 3px rgba(var(--brand-primary-rgb), 0.15);
    outline: none;
}

.form-control:hover:not(:focus),
.form-select:hover:not(:focus) {
    border-color: var(--brand-border-dark);
}

/* Form Control Sizes */
.form-control-sm {
    padding: var(--brand-space-2) var(--brand-space-3);
    font-size: var(--brand-text-xs);
}

.form-control-lg {
    padding: var(--brand-space-4) var(--brand-space-5);
    font-size: var(--brand-text-base);
}

/* Form Labels */
.form-label,
label {
    font-family: var(--brand-font-body);
    font-size: var(--brand-text-sm);
    font-weight: var(--brand-font-medium);
    color: var(--brand-text-body);
    margin-bottom: var(--brand-space-2);
}

/* Required Field Indicator */
.form-label.required::after,
label.required::after {
    content: ' *';
    color: var(--brand-danger);
}

/* Form Text / Help Text */
.form-text,
.help-text {
    font-size: var(--brand-text-xs);
    color: var(--brand-text-muted);
    margin-top: var(--brand-space-1);
}

/* Input Groups */
.input-group {
    border-radius: var(--brand-radius-md);
}

.input-group .form-control {
    border-radius: 0;
}

.input-group .form-control:first-child,
.input-group .input-group-text:first-child {
    border-top-left-radius: var(--brand-radius-md);
    border-bottom-left-radius: var(--brand-radius-md);
}

.input-group .form-control:last-child,
.input-group .input-group-text:last-child,
.input-group .btn:last-child {
    border-top-right-radius: var(--brand-radius-md);
    border-bottom-right-radius: var(--brand-radius-md);
}

.input-group-text {
    background-color: var(--brand-bg-gray);
    border: 1px solid var(--brand-border-default);
    color: var(--brand-text-muted);
    font-size: var(--brand-text-sm);
}

/* Form Validation States */
.form-control.is-valid,
.was-validated .form-control:valid {
    border-color: var(--brand-success);
}

.form-control.is-valid:focus,
.was-validated .form-control:valid:focus {
    border-color: var(--brand-success);
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15);
}

.form-control.is-invalid,
.was-validated .form-control:invalid {
    border-color: var(--brand-danger);
}

.form-control.is-invalid:focus,
.was-validated .form-control:invalid:focus {
    border-color: var(--brand-danger);
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}

.valid-feedback {
    color: var(--brand-success);
    font-size: var(--brand-text-xs);
}

.invalid-feedback {
    color: var(--brand-danger);
    font-size: var(--brand-text-xs);
}

/* Checkboxes and Radios */
.form-check-input {
    width: 1.125rem;
    height: 1.125rem;
    border: 2px solid var(--brand-border-default);
    transition: all var(--brand-transition-fast);
}

.form-check-input:checked {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.form-check-input:focus {
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 3px rgba(var(--brand-primary-rgb), 0.15);
}

.form-check-label {
    font-size: var(--brand-text-sm);
    color: var(--brand-text-body);
    margin-left: var(--brand-space-1);
}

/* Form Switch */
.form-switch .form-check-input {
    width: 2.5rem;
    height: 1.25rem;
    border-radius: var(--brand-radius-full);
}

/* Button Enhancements */
.btn {
    font-family: var(--brand-font-body);
    font-weight: var(--brand-font-medium);
    border-radius: var(--brand-radius-md);
    padding: var(--brand-space-2) var(--brand-space-4);
    transition: all var(--brand-transition-normal);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--brand-space-2);
}

.btn:focus {
    box-shadow: 0 0 0 3px rgba(var(--brand-primary-rgb), 0.2);
}

.btn:active {
    transform: translateY(1px);
}

/* Button Sizes */
.btn-sm {
    padding: var(--brand-space-1) var(--brand-space-3);
    font-size: var(--brand-text-xs);
}

.btn-lg {
    padding: var(--brand-space-3) var(--brand-space-6);
    font-size: var(--brand-text-base);
}

/* Secondary Button */
.btn-secondary {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
}

.btn-secondary:hover,
.btn-secondary:focus {
    background-color: var(--brand-secondary-hover);
    border-color: var(--brand-secondary-hover);
}

/* Outline Buttons */
.btn-outline-primary {
    color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.btn-outline-primary:hover {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: white;
}

.btn-outline-secondary {
    color: var(--brand-secondary);
    border-color: var(--brand-secondary);
}

.btn-outline-secondary:hover {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
    color: white;
}

/* Light/Ghost Button */
.btn-light,
.btn-ghost {
    background-color: transparent;
    border-color: transparent;
    color: var(--brand-text-body);
}

.btn-light:hover,
.btn-ghost:hover {
    background-color: var(--brand-bg-gray);
    color: var(--brand-text-dark);
}

/* Alert Improvements */
.alert {
    font-family: var(--brand-font-body);
    border-radius: var(--brand-radius-lg);
    padding: var(--brand-space-4) var(--brand-space-5);
    border: none;
    display: flex;
    align-items: flex-start;
    gap: var(--brand-space-3);
}

.alert-primary {
    background-color: rgba(var(--brand-primary-rgb), 0.1);
    color: var(--brand-primary-dark);
}

.alert-success {
    background-color: rgba(16, 185, 129, 0.1);
    color: #065f46;
}

.alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    color: #92400e;
}

.alert-danger {
    background-color: rgba(239, 68, 68, 0.1);
    color: #991b1b;
}

.alert-info {
    background-color: rgba(59, 130, 246, 0.1);
    color: #1e40af;
}

.alert-heading {
    font-family: var(--brand-font-heading);
    font-weight: var(--brand-font-semibold);
    margin-bottom: var(--brand-space-2);
}

.alert .btn-close {
    padding: var(--brand-space-4);
}

/* ========================================
   Table Styling
   ======================================== */

/* Table Base */
.table {
    font-family: var(--brand-font-body);
    font-size: var(--brand-text-sm);
    color: var(--brand-text-body);
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}

/* Table Header */
.table thead th,
.table-header th {
    font-family: var(--brand-font-heading);
    font-size: var(--brand-text-xs);
    font-weight: var(--brand-font-semibold);
    color: var(--brand-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background-color: var(--brand-bg-gray);
    border-bottom: 2px solid var(--brand-border-light);
    padding: var(--brand-space-3) var(--brand-space-4);
    white-space: nowrap;
}

.table thead th:first-child {
    border-top-left-radius: var(--brand-radius-md);
}

.table thead th:last-child {
    border-top-right-radius: var(--brand-radius-md);
}

/* Table Body */
.table tbody td {
    padding: var(--brand-space-4);
    border-bottom: 1px solid var(--brand-border-light);
    vertical-align: middle;
}

/* Table Row Hover */
.table tbody tr {
    transition: background-color var(--brand-transition-fast);
}

.table-hover tbody tr:hover {
    background-color: rgba(var(--brand-primary-rgb), 0.04);
}

/* Table Row Selection */
.table tbody tr.selected,
.table tbody tr.active {
    background-color: rgba(var(--brand-primary-rgb), 0.08);
}

/* Table Striped */
.table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--brand-bg-light);
}

.table-striped.table-hover tbody tr:hover {
    background-color: rgba(var(--brand-primary-rgb), 0.06);
}

/* Table Bordered */
.table-bordered {
    border: 1px solid var(--brand-border-light);
    border-radius: var(--brand-radius-lg);
    overflow: hidden;
}

.table-bordered thead th,
.table-bordered tbody td {
    border: 1px solid var(--brand-border-light);
}

/* Table in Cards */
.card .table {
    margin-bottom: 0;
}

.card .table thead th:first-child {
    border-top-left-radius: 0;
}

.card .table thead th:last-child {
    border-top-right-radius: 0;
}

/* Table Actions Column */
.table .actions,
.table .table-actions {
    text-align: right;
    white-space: nowrap;
}

.table .actions .btn,
.table .table-actions .btn {
    padding: var(--brand-space-1) var(--brand-space-2);
    font-size: var(--brand-text-xs);
}

/* Table Responsive Wrapper */
.table-responsive {
    border-radius: var(--brand-radius-lg);
    border: 1px solid var(--brand-border-light);
    overflow: hidden;
}

.table-responsive .table {
    margin-bottom: 0;
}

/* Table Empty State */
.table-empty,
.table tbody tr.empty-row td {
    text-align: center;
    padding: var(--brand-space-10) var(--brand-space-4);
    color: var(--brand-text-muted);
}

.table-empty i,
.table tbody tr.empty-row i {
    font-size: 3rem;
    opacity: 0.3;
    margin-bottom: var(--brand-space-3);
    display: block;
}

/* Table Loading State */
.table-loading {
    position: relative;
}

.table-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Sortable Table Headers */
.table th.sortable {
    cursor: pointer;
    user-select: none;
}

.table th.sortable:hover {
    background-color: var(--brand-bg-light);
}

.table th.sortable::after {
    content: '↕';
    margin-left: var(--brand-space-2);
    opacity: 0.3;
    font-size: 0.75em;
}

.table th.sortable.asc::after {
    content: '↑';
    opacity: 1;
    color: var(--brand-primary);
}

.table th.sortable.desc::after {
    content: '↓';
    opacity: 1;
    color: var(--brand-primary);
}

/* DataTables Integration */
.dataTables_wrapper {
    font-family: var(--brand-font-body);
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
    padding: var(--brand-space-3) 0;
    font-size: var(--brand-text-sm);
}

.dataTables_wrapper .dataTables_filter input {
    border: 1px solid var(--brand-border-default);
    border-radius: var(--brand-radius-md);
    padding: var(--brand-space-2) var(--brand-space-3);
    margin-left: var(--brand-space-2);
}

.dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 3px rgba(var(--brand-primary-rgb), 0.15);
    outline: none;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    border-radius: var(--brand-radius-md);
    padding: var(--brand-space-2) var(--brand-space-3);
    margin: 0 var(--brand-space-1);
    transition: all var(--brand-transition-fast);
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--brand-bg-gray);
    border-color: var(--brand-border-light);
    color: var(--brand-primary) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: white !important;
}

/* ========================================
   Admin Page Styling
   ======================================== */

/* Page Heading */
.page-heading {
    margin-bottom: var(--brand-space-5);
}

.page-heading .page-title {
    margin-bottom: var(--brand-space-4);
}

.page-heading .page-title h3 {
    font-family: var(--brand-font-heading);
    font-size: 1.75rem;
    font-weight: var(--brand-font-bold);
    color: var(--brand-text-dark);
    margin-bottom: var(--brand-space-1);
}

.page-heading .page-title .text-subtitle {
    font-size: var(--brand-text-sm);
    color: var(--brand-text-muted);
    margin: 0;
}

/* Breadcrumb */
.breadcrumb {
    background: transparent;
    padding: 0;
    margin: 0;
    font-size: var(--brand-text-sm);
}

.breadcrumb-item a {
    color: var(--brand-primary);
    text-decoration: none;
    transition: color var(--brand-transition-fast);
}

.breadcrumb-item a:hover {
    color: var(--brand-primary-hover);
}

.breadcrumb-item.active {
    color: var(--brand-text-muted);
}

.breadcrumb-item + .breadcrumb-item::before {
    color: var(--brand-text-light);
}

/* Admin Action Bar */
.d-flex.justify-content-between.align-items-center.mb-3 {
    background: var(--brand-bg-light);
    padding: var(--brand-space-3) var(--brand-space-4);
    border-radius: var(--brand-radius-lg);
    margin-bottom: var(--brand-space-4) !important;
}

/* Admin Filter Row */
.row.g-2 {
    background: var(--brand-bg-light);
    padding: var(--brand-space-3);
    border-radius: var(--brand-radius-md);
    margin-bottom: var(--brand-space-4);
}

/* Section Cards in Admin */
.section .card {
    border: none;
    box-shadow: var(--brand-shadow-md);
    border-radius: var(--brand-radius-xl);
}

.section .card .card-header {
    background: var(--brand-bg-white);
    border-bottom: 1px solid var(--brand-border-light);
    padding: var(--brand-space-4) var(--brand-space-5);
}

.section .card .card-body {
    padding: var(--brand-space-5);
}

/* Admin Tables Enhancement */
.section .table-responsive {
    border: none;
    border-radius: var(--brand-radius-lg);
    overflow: hidden;
}

.section .table {
    margin-bottom: 0;
}

.section .table thead th {
    background: linear-gradient(180deg, var(--brand-bg-gray) 0%, #f1f5f9 100%);
    border-bottom: 2px solid var(--brand-border-light);
    font-weight: var(--brand-font-semibold);
    color: var(--brand-text-dark);
}

.section .table tbody tr {
    transition: all var(--brand-transition-fast);
}

.section .table tbody tr:hover {
    background: rgba(var(--brand-primary-rgb), 0.04);
}

/* Admin Action Buttons in Tables */
.section .table .btn-sm {
    padding: 0.35rem 0.65rem;
    font-size: 0.75rem;
    border-radius: var(--brand-radius-md);
}

.section .table .btn-primary {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
}

.section .table .btn-danger {
    background: var(--brand-danger);
    border-color: var(--brand-danger);
}

.section .table .btn-warning {
    background: var(--brand-warning);
    border-color: var(--brand-warning);
    color: #1f2937;
}

.section .table .btn-info {
    background: var(--brand-info);
    border-color: var(--brand-info);
}

/* Modal Improvements */
.modal-content {
    border: none;
    border-radius: var(--brand-radius-xl);
    box-shadow: var(--brand-shadow-xl);
}

.modal-header {
    border-bottom: 1px solid var(--brand-border-light);
    padding: var(--brand-space-4) var(--brand-space-5);
}

.modal-title {
    font-family: var(--brand-font-heading);
    font-weight: var(--brand-font-semibold);
    color: var(--brand-text-dark);
}

.modal-body {
    padding: var(--brand-space-5);
}

.modal-footer {
    border-top: 1px solid var(--brand-border-light);
    padding: var(--brand-space-4) var(--brand-space-5);
    background: var(--brand-bg-light);
    border-radius: 0 0 var(--brand-radius-xl) var(--brand-radius-xl);
}

/* Dropdown Menus */
.dropdown-menu {
    border: 1px solid var(--brand-border-light);
    border-radius: var(--brand-radius-lg);
    box-shadow: var(--brand-shadow-lg);
    padding: var(--brand-space-2);
}

.dropdown-item {
    border-radius: var(--brand-radius-md);
    padding: var(--brand-space-2) var(--brand-space-3);
    font-size: var(--brand-text-sm);
    transition: all var(--brand-transition-fast);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: rgba(var(--brand-primary-rgb), 0.08);
    color: var(--brand-primary);
}

.dropdown-item.active,
.dropdown-item:active {
    background: var(--brand-primary);
    color: white;
}

/* Pagination Improvements */
.pagination {
    gap: var(--brand-space-1);
}

.page-link {
    border: 1px solid var(--brand-border-light);
    border-radius: var(--brand-radius-md) !important;
    color: var(--brand-text-body);
    padding: var(--brand-space-2) var(--brand-space-3);
    font-size: var(--brand-text-sm);
    transition: all var(--brand-transition-fast);
}

.page-link:hover {
    background: var(--brand-bg-gray);
    border-color: var(--brand-border-default);
    color: var(--brand-primary);
}

.page-item.active .page-link {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: white;
}

.page-item.disabled .page-link {
    background: var(--brand-bg-light);
    color: var(--brand-text-light);
}

/* ========================================
   Additional Utility Classes
   ======================================== */

/* Smooth Transitions */
.transition-all {
    transition: all var(--brand-transition-normal);
}

.transition-fast {
    transition: all var(--brand-transition-fast);
}

.transition-slow {
    transition: all var(--brand-transition-slow);
}

/* Hover Effects */
.hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: var(--brand-shadow-md);
}

.hover-glow:hover {
    box-shadow: 0 0 20px rgba(var(--brand-primary-rgb), 0.15);
}

/* Focus Ring */
.focus-ring:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--brand-primary-rgb), 0.2);
}

/* Skeleton Loading */
.skeleton {
    background: linear-gradient(90deg, var(--brand-bg-gray) 25%, var(--brand-bg-light) 50%, var(--brand-bg-gray) 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: var(--brand-radius-md);
}

@keyframes skeleton-loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
