/**
 * ==============================================
 * Talence Security
 * ==============================================
 */

/* ============================================
   CUSTOM FONTS - Sansation
   ============================================ */
@font-face {
    font-family: 'Sansation';
    src: url('Sansation_Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Sansation';
    src: url('Sansation_Bold.eot');
    src: url('Sansation_Bold.eot?#iefix') format('embedded-opentype'),
         url('Sansation_Bold.woff') format('woff'),
         url('Sansation_Bold.ttf') format('truetype'),
         url('Sansation_Bold.svg#Sansation') format('svg');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    /* ============================================
       TYPOGRAPHY SCALE - Single Source of Truth
       Base: 16px, Scale: ~0.9x compact design
       ============================================ */
    --fs-2xs: 0.65rem;    /* 10.4px - tiny labels */
    --fs-xs: 0.75rem;     /* 12px - small badges, captions */
    --fs-sm: 0.8rem;      /* 12.8px - secondary text, muted */
    --fs-base: 0.85rem;   /* 13.6px - body text, paragraphs */
    --fs-md: 0.9rem;      /* 14.4px - inputs, buttons */
    --fs-lg: 0.95rem;     /* 15.2px - emphasized text */
    --fs-xl: 1rem;        /* 16px - h6, small titles */
    --fs-2xl: 1.1rem;     /* 17.6px - h5 */
    --fs-3xl: 1.2rem;     /* 19.2px - h4 */
    --fs-4xl: 1.3rem;     /* 20.8px - h3, section titles */
    --fs-5xl: 1.5rem;     /* 24px - h2 */
    --fs-6xl: 1.8rem;     /* 28.8px - h1 */
    --fs-7xl: 2rem;       /* 32px - hero titles */
    
    /* Brand Colors - Marine Blue Theme */
    --talence-primary: #60a5fa;
    --talence-primary-dark: #1d4ed8;
    --talence-primary-light: #60a5fa;
    --talence-secondary: #dc2626;
    --talence-secondary-dark: #b91c1c;
    --talence-success: #10b981;
    --talence-warning: #f59e0b;
    --talence-info: #60a5fa;
    --talence-danger: #ef4444;
    
    /* Neutral Colors */
    --talence-dark: #0f172a;
    --talence-medium-slate: #1e293b;
    --talence-light-slate: #334155;
    --talence-light: #f8fafc;
    --talence-gray-50: #f9fafb;
    --talence-gray-100: #f3f4f6;
    --talence-gray-200: #e5e7eb;
    --talence-gray-300: #d1d5db;
    --talence-gray-400: #9ca3af;
    --talence-gray-500: #6b7280;
    --talence-gray-600: #4b5563;
    --talence-gray-700: #374151;
    --talence-gray-800: #1f2937;
    --talence-gray-900: #111827;

    /* Brand Gradient */
    --talence-brand-gradient: linear-gradient(135deg, 
        #60a5fa 0%, 
        #3b82f6 25%, 
        #93c5fd 50%, 
        #60a5fa 75%, 
        #93c5fd 100%);
    
    /* Additional Brand Colors */
    --talence-primary-hover: #3b82f6;
    --talence-primary-lighter: #93c5fd;
    --talence-success-light: #34d399;
    --talence-danger-light: #f87171;
    --talence-warning-dark: #d97706;
    --talence-warning-light: #fbbf24;
    --talence-purple: #8b5cf6;
    --talence-slate: #475569;
    
    /* Footer Colors */
    --footer-main-light: linear-gradient(135deg, #0f1629 0%, #1e293b 30%, #0f172a 70%, #020617 100%);
    --footer-main-dark: linear-gradient(135deg, #1e293b 0%, #334155 30%, #1e293b 70%, #0f172a 100%);
    --footer-bottom-light: #0c1220;
    --footer-bottom-dark: #030712;
    
    /* Layout Variables - Compact sizing */
    --sidebar-width: 290px;
    --sidebar-collapsed-width: 90px;
    --header-height: 70px;
    --content-max-width: 1600px;
    
    /* Shadows */
    --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    
    /* Border Radius */
    --radius-sm: 0.25rem;
    --radius: 0.5rem;
    --radius-lg: 0.75rem;
    --radius-xl: 1rem;
    --radius-2xl: 1.5rem;
    
    /* Transitions */
    --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Logo */
    --talence-logo-url: url('logo.png');
}

[data-bs-theme="dark"] {
    --talence-primary: #60a5fa;
    --talence-primary-light: #93c5fd;
    --talence-info: #93c5fd;
    --talence-light: #0f172a;
    --talence-gray-50: #1f2937;
    --talence-gray-100: #1e293b;
    --talence-gray-150: #13171e3d;
    --talence-gray-200: #334155;
    --talence-gray-300: #475569;
    --talence-gray-400: #64748b;
    --talence-gray-500: #94a3b8;
    --talence-gray-600: #cbd5e1;
    --talence-gray-700: #e2e8f0;
    --talence-gray-800: #f1f5f9;
    --talence-gray-900: #f8fafc;
}

* {
    box-sizing: border-box;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: var(--talence-gray-900);
    background-color: var(--talence-gray-50);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Main content wrapper for non-logged users - FIXED SPACING ISSUE */
main.flex-grow-1 {
    display: flex;
    flex-direction: column;
    flex: 1;
}

[data-bs-theme="dark"] body {
    color: var(--talence-gray-600);
    background-color: var(--talence-dark);
}

/* ====================================
   ENHANCED TYPOGRAPHY SYSTEM
   ==================================== */

h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    line-height: 1.3;
    color: var(--talence-gray-900);
    margin-bottom: 1rem;
}

[data-bs-theme="dark"] h1,
[data-bs-theme="dark"] h2,
[data-bs-theme="dark"] h3,
[data-bs-theme="dark"] h4,
[data-bs-theme="dark"] h5,
[data-bs-theme="dark"] h6 {
    color: var(--talence-gray-700) !important;
}

/* Primary colored headings - reusable class */
.heading-primary {
    color: var(--talence-primary) !important;
}

[data-bs-theme="dark"] .heading-primary {
    color: var(--talence-primary-light) !important;
}

/* Enhanced text content containers */
.text-content {
    font-size: var(--fs-lg);
    line-height: 1.7;
    color: var(--talence-gray-700);
}

[data-bs-theme="dark"] .text-content {
    color: var(--talence-gray-600);
}

.text-content p {
    margin-bottom: 1.2rem;
    text-align: justify;
}

.text-content ul {
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}

.text-content li {
    margin-bottom: 0.5rem;
}

.text-content li::marker {
    color: var(--talence-primary);
}

.text-content strong {
    color: var(--talence-gray-900);
    font-weight: 600;
}

[data-bs-theme="dark"] .text-content strong {
    color: var(--talence-gray-800);
    font-weight: 700;
}

.text-content a {
    color: var(--talence-primary);
    text-decoration: none;
    font-weight: 500;
}

.text-content a:hover {
    color: var(--talence-primary-dark);
    text-decoration: underline;
}

[data-bs-theme="dark"] .text-content a {
    color: var(--talence-primary-light);
}

[data-bs-theme="dark"] .text-content a:hover {
    color: var(--talence-info);
}

/* ====================================
   UNIVERSAL BRAND STYLING
   ==================================== */

.brand-text,
.footer-brand-unified .brand-title {
    font-family: 'Sansation', 'Inter', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: #ffffff !important;
    font-size: var(--fs-6xl) !important;
    letter-spacing: 1.2px !important;
    line-height: 1.2 !important;
    margin: 0px !important;
    margin-top: 5px !important;
    animation: brandShift 11s ease-in-out 1 !important;
}

/* Bigger first letter for TALENCE */
.brand-first-letter {
    font-family: 'Sansation', 'Inter', sans-serif !important;
    font-size: 1.11em;
    vertical-align: baseline;
}

/* Blue/Red brand animation - smooth flow */
@keyframes brandShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Fallback for browsers that don't support background-clip */
@supports not (-webkit-background-clip: text) {
    .brand-text,
    .footer-brand-unified .brand-title {
        color: var(--talence-primary) !important;
        background: none !important;
        animation: none !important;
    }
}

/* ====================================
   APPLICATION HEADER FOR LOGGED-IN USERS
   ==================================== */

.app-header {
    background: linear-gradient(135deg,
        var(--talence-dark) 0%,
        var(--talence-medium-slate) 50%,
        var(--talence-dark) 100%) !important;
    border-bottom: 2px solid var(--talence-primary);
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 1030;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.app-header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.25rem;
    min-height: var(--header-height);
    max-width: 100%;
}

.app-header-left {
    display: flex;
    align-items: center;
    gap: 2rem;
    flex: 1;
}

.app-header-right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.app-header-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: white !important;
    font-family: 'Sansation', 'Inter', sans-serif;
    font-weight: 700;
}

.app-header-brand:hover {
    color: var(--talence-primary-light) !important;
    text-decoration: none;
}

.app-header-brand .brand-logo {
    width: 50px;
    height: 50px;
    margin-left: 0.3rem;
    background: var(--talence-logo-url) no-repeat center;
    background-size: contain;
    border-radius: 6px;
    flex-shrink: 0;
}

.app-header-brand .brand-text {
    font-size: var(--fs-2xl);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0;
}

/* App Search Container */
.app-search-container {
    position: relative;
    max-width: 400px;
    flex: 1;
}

.app-search-input {
    width: 100%;
    padding: 0.5rem 2.5rem 0.5rem 1rem;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 10px;
    color: white;
    font-size: var(--fs-base);
    transition: all var(--transition-fast);
    margin-left: 30px;
}

.app-search-input::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

.app-search-input:focus {
    outline: none;
    background: rgba(255, 255, 255, 0.15);
    border-color: var(--talence-primary);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.2);
}

.app-search-icon {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, 0.6);
    font-size: var(--fs-lg);
    pointer-events: none;
}

/* App Header Buttons */
.app-header-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    color: rgba(255, 255, 255, 0.9);
    font-size: var(--fs-3xl);
    transition: all var(--transition-fast);
    position: relative;
    cursor: pointer;
}

.app-header-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--talence-primary);
    color: white;
    transform: translateY(-1px);
}

.app-header-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.3);
}

/* App Notification Badge */
.app-notification-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    background: var(--talence-danger);
    color: white;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-xs);
    font-weight: 600;
    border: 2px solid var(--talence-dark);
}

/* App User Menu */
.app-user-menu {
    position: relative;
}

.app-user-menu-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    cursor: pointer;
    transition: all var(--transition-fast);
    color: white;
}

.app-user-menu-toggle:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--talence-primary);
    transform: translateY(-1px);
}

.app-user-name {
    font-weight: 500;
    font-size: var(--fs-md);
    white-space: nowrap;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.app-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--talence-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

.app-user-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.app-user-avatar i {
    font-size: var(--fs-3xl);
    color: white;
}

/* App User Dropdown Menu */
.app-user-dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 250px;
    background: white;
    border: 1px solid var(--talence-gray-200);
    border-radius: 12px;
    box-shadow: var(--shadow-xl);
    z-index: 1050;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all var(--transition-fast);
}

[data-bs-theme="dark"] .app-user-dropdown-menu {
    background: var(--talence-gray-100);
    border-color: var(--talence-gray-300);
}

.app-user-dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.app-dropdown-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--talence-gray-200);
}

[data-bs-theme="dark"] .app-dropdown-header {
    border-color: var(--talence-gray-200);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, transparent 100%);
}

.app-dropdown-user-name {
    font-weight: 600;
    color: var(--talence-gray-900);
    margin-bottom: 0.25rem;
}

[data-bs-theme="dark"] .app-dropdown-user-name {
    color: var(--talence-gray-800);
}

.app-dropdown-user-email {
    font-size: var(--fs-base);
    color: var(--talence-gray-600);
}

[data-bs-theme="dark"] .app-dropdown-user-email {
    color: var(--talence-gray-500);
}

.app-dropdown-menu-items {
    padding: 0.5rem 0;
}

.app-dropdown-menu-items .dropdown-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 1.25rem;
    color: var(--talence-gray-700);
    text-decoration: none;
    font-size: var(--fs-md);
    transition: all var(--transition-fast);
    border: none;
    width: 100%;
    text-align: left;
    border-left: 3px solid transparent;
    position: relative;
}

[data-bs-theme="dark"] .app-dropdown-menu-items .dropdown-item {
    color: var(--talence-gray-600);
}

.app-dropdown-menu-items .dropdown-item:hover {
    background: var(--talence-gray-50);
    color: var(--talence-gray-900);
    border-left-color: var(--talence-primary);
    transform: translateX(2px);
}

[data-bs-theme="dark"] .app-dropdown-menu-items .dropdown-item:hover {
    background: var(--talence-gray-200);
    color: var(--talence-gray-800);
    border-left-color: var(--talence-primary-light);
}

.app-dropdown-menu-items .dropdown-item.logout {
    color: var(--talence-danger);
}

.app-dropdown-menu-items .dropdown-item.logout:hover {
    background: rgba(239, 68, 68, 0.1);
    color: var(--talence-danger);
    border-left-color: var(--talence-danger);
}

.app-dropdown-divider {
    height: 1px;
    background: var(--talence-gray-200);
    margin: 0.5rem 0;
}

[data-bs-theme="dark"] .app-dropdown-divider {
    background: var(--talence-gray-300);
}

/* ====================================
   APPLICATION SIDEBAR
   ==================================== */

.app-sidebar {
    position: fixed;
    top: var(--header-height);
    left: 0;
    width: var(--sidebar-width);
    height: calc(100vh - var(--header-height));
    background: var(--talence-gray-100);
    border-right: 1px solid var(--talence-gray-200);
    z-index: 1020;
    overflow-y: auto;
    overflow-x: hidden;
    transition: all var(--transition-normal);
}

[data-bs-theme="dark"] .app-sidebar {
    background: var(--talence-medium-slate);
    border-color: var(--talence-gray-300);
}

.app-sidebar-header {
    padding: 1rem;
    border-bottom: 1px solid var(--talence-gray-200);
    display: flex;
    align-items: center;
    gap: 1rem;
    background: linear-gradient(135deg, var(--talence-gray-50) 0%, var(--talence-gray-100) 100%);
}

[data-bs-theme="dark"] .app-sidebar-header {
    border-color: rgba(255, 255, 255, 0.1);
    background: linear-gradient(135deg, var(--talence-light-slate) 0%, var(--talence-medium-slate) 100%);
}

.app-sidebar-toggle {
    width: 32px;
    height: 32px;
    background: transparent;
    border: 1px solid var(--talence-gray-300);
    border-radius: 6px;
    color: var(--talence-gray-600);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast);
    font-size: var(--fs-xl);
}

[data-bs-theme="dark"] .app-sidebar-toggle {
    border-color: var(--talence-gray-500);
    color: var(--talence-gray-700);
}

.app-sidebar-toggle:hover {
    background: var(--talence-gray-200);
    border-color: var(--talence-primary);
    color: var(--talence-primary);
}

[data-bs-theme="dark"] .app-sidebar-toggle:hover {
    background: var(--talence-gray-300);
}

.app-sidebar-title {
    font-weight: 600;
    color: var(--talence-gray-800);
    font-size: var(--fs-lg);
}

[data-bs-theme="dark"] .app-sidebar-title {
    color: var(--talence-gray-700);
}

.app-sidebar-content {
    padding: 1rem 0;
    background: rgba(255, 255, 255, 0.02);
}

[data-bs-theme="dark"] .app-sidebar-content {
    background: rgba(0, 0, 0, 0.15);
}

.app-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.app-nav-item {
    margin: 0;
}

.app-nav-header {
    padding: 0.75rem 1.5rem 0.5rem;
}

.app-nav-header .nav-text {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.5px;
}

.nav-app-sidebar {
    padding-top: 2px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 1.25rem;
    color: var(--talence-gray-700);
    text-decoration: none;
    font-size: var(--fs-sm);
    font-weight: 500;
    transition: all var(--transition-fast);
    border-left: 3px solid transparent;
    position: relative;
}

[data-bs-theme="dark"] .nav-app-sidebar {
    color: var(--talence-gray-600);
}

.nav-app-sidebar:hover {
    background: var(--talence-gray-50);
    color: var(--talence-primary);
    border-left-color: var(--talence-primary);
    text-decoration: none;
    transform: translateX(4px);
}

[data-bs-theme="dark"] .nav-app-sidebar:hover {
    background: var(--talence-gray-200);
    color: var(--talence-primary-light);
    border-left-color: var(--talence-primary-light);
}

.nav-app-sidebar.active {
    background: rgba(96, 165, 250, 0.1);
    color: var(--talence-primary);
    border-left-color: var(--talence-primary);
    font-weight: 600;
    transform: translateX(4px);
}

[data-bs-theme="dark"] .nav-app-sidebar.active {
    background: rgba(96, 165, 250, 0.2);
    color: var(--talence-primary-light);
    border-left-color: var(--talence-primary-light);
}

.nav-app-sidebar i {
    font-size: var(--fs-2xl);
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}

.app-nav-divider {
    height: 1px;
    background: var(--talence-gray-200);
    margin: 0.75rem 1.5rem;
}

[data-bs-theme="dark"] .app-nav-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
    margin: 16px 24px;
}

/* App Main Content with Sidebar */
.has-sidebar .app-main-content {
    margin-left: var(--sidebar-width);
    transition: all var(--transition-normal);
    min-height: calc(100vh - var(--header-height));
    padding: 0rem;
}

/* Footer in sidebar layout - account for sidebar width */
.has-sidebar .unified-footer {
    margin-left: var(--sidebar-width) !important;
    transition: all var(--transition-normal);
}

.has-sidebar .unified-footer .footer-main,
.has-sidebar .unified-footer .footer-bottom {
    width: 100%;
    left: auto;
    right: auto;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 2rem !important;
}

.has-sidebar .unified-footer .footer-main > .container,
.has-sidebar .unified-footer .footer-bottom > .container {
    max-width: 95%;
}

.has-sidebar .unified-footer .footer-main ul li a {
    font-size: var(--fs-md) !important;
}

.has-sidebar .unified-footer .footer-main h6 {
    font-size: var(--fs-2xl) !important;
}

.has-sidebar .unified-footer .footer-main .footer-description p {
    font-size: var(--fs-md);
}

.has-sidebar .unified-footer .footer-bottom p {
    font-size: var(--fs-md);
}

.sidebar-collapsed .unified-footer {
    margin-left: var(--sidebar-collapsed-width) !important;
}

/* FIXED: Make authenticated page content wider - MORE SPECIFIC to avoid footer conflicts */
.has-sidebar .app-main-content .page-header .container,
.has-sidebar .app-main-content .content-section .container {
    max-width: none;
    padding-left: 4rem;
    padding-right: 4rem;
}

/* Maintain responsive behavior for main content containers only */
@media (max-width: 1400px) {
    .has-sidebar .app-main-content .page-header .container,
    .has-sidebar .app-main-content .content-section .container {
        max-width: 1200px;
    }
}

@media (max-width: 1200px) {
    .has-sidebar .app-main-content .page-header .container,
    .has-sidebar .app-main-content .content-section .container {
        max-width: 960px;
    }
}

@media (max-width: 1024px) {
    .has-sidebar .app-main-content .page-header .container,
    .has-sidebar .app-main-content .content-section .container {
        max-width: none;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

/* Large screens (1920px+) - Cap content width for readability */
@media (min-width: 1920px) {
    .has-sidebar .app-main-content .page-header .container,
    .has-sidebar .app-main-content .content-section .container {
        max-width: var(--content-max-width);
        margin-left: auto;
        margin-right: auto;
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/* Ultra-wide screens (2560px+) - Extra breathing room */
@media (min-width: 2560px) {
    .has-sidebar .app-main-content .page-header .container,
    .has-sidebar .app-main-content .content-section .container {
        max-width: calc(var(--content-max-width) + 200px);
    }
}

/* ====================================
   FORM PAGE SPECIFIC STYLING
   ==================================== */

/* FIXED: Constrain form width ONLY on pages with form-page class */
.form-page .content-wrapper {
    max-width: 1000px !important;
    margin: 0 auto !important;
}

/* FIXED: Ensure consistent tab heights with better alignment and reduced height */
.form-page .tab-content {
    min-height: 360px;
}

.form-page .tab-pane {
    /* Remove flex properties that cause alignment issues */
}

/* FIXED: Improve form actions styling - ONLY on form pages */
.form-page .content-wrapper .border-top {
    border-color: var(--talence-gray-200) !important;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
}

[data-bs-theme="dark"] .form-page .content-wrapper .border-top {
    border-color: var(--talence-gray-300) !important;
}


/* ====================================
   TABLES SPECIFIC STYLING - EXTENSION
   ==================================== */

/* Add this to your existing table styling section in style.css */

/* Lighter table cells for better readability */
[data-bs-theme="dark"] .table td {
    background-color: rgba(30, 41, 59, 0.5) !important;
    border-color: rgba(51, 65, 85, 0.4) !important;
}

[data-bs-theme="dark"] .table tbody tr:hover td {
    background-color: rgba(30, 41, 59, 0.7) !important;
}

/* Table header row - slightly brighter with blue tint */
[data-bs-theme="dark"] .table th {
    background-color: rgba(59, 130, 246, 0.12) !important;
    border-color: rgba(51, 65, 85, 0.4) !important;
    color: var(--talence-gray-800) !important;
}

[data-bs-theme="dark"] .table tbody tr:hover th {
    background-color: rgba(30, 41, 59, 0.8) !important;
}

.table td,
.table th {
    vertical-align: middle !important; /* This centers the entire cell content */
}

.table td input[type="checkbox"],
.table th input[type="checkbox"] {
    margin: 0 auto;
    display: block; /* This centers the checkbox horizontally */
}

/* ====================================
   LARGER TABLE HEADER ROW
   ==================================== */

/* Make table header row larger */
.table thead th {
    padding: 0.75rem 0.625rem !important;
    height: 48px;
    font-size: var(--fs-base);
    font-weight: 600;
}

/* ====================================
   ROUNDED TABLE STYLING
   ==================================== */

/* Add rounded corners to tables */
.table-responsive {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.table {
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 0;
}

/* Ensure first row top corners are rounded */
.table thead tr:first-child th:first-child {
    border-top-left-radius: var(--radius-lg);
}

.table thead tr:first-child th:last-child {
    border-top-right-radius: var(--radius-lg);
}

/* Ensure last row bottom corners are rounded */
.table tbody tr:last-child td:first-child,
.table tbody tr:last-child th:first-child {
    border-bottom-left-radius: var(--radius-lg);
}

.table tbody tr:last-child td:last-child,
.table tbody tr:last-child th:last-child {
    border-bottom-right-radius: var(--radius-lg);
}


/* ====================================
   Badge Background
   ==================================== */

.bg-primary {
    background: var(--talence-primary) !important;
    color: white !important;
}



/* ====================================
   SIDEBAR RESPONSIVE STATES
   ==================================== */

/* Desktop collapsed state */
.sidebar-collapsed .app-sidebar {
    width: var(--sidebar-collapsed-width);
}

.sidebar-collapsed .app-main-content {
    margin-left: var(--sidebar-collapsed-width);
}

.sidebar-collapsed .app-sidebar .nav-text,
.sidebar-collapsed .app-sidebar .app-sidebar-title {
    display: none;
}

.sidebar-collapsed .app-sidebar .nav-app-sidebar {
    justify-content: center;
    padding: 12px 1rem;
}

.sidebar-collapsed .app-sidebar .app-nav-header {
    padding: 0.75rem 1rem 0.5rem;
    text-align: center;
}

.sidebar-collapsed .app-sidebar .app-sidebar-header {
    justify-content: center;
    padding: 1rem;
}

/* Align hamburger icon with nav icons when collapsed */
.sidebar-collapsed .app-sidebar-toggle {
    margin-left: 10px;
    margin-right: -10px;
    width: 40px;
}

/* Hamburger icon rotation animation */
.app-sidebar-toggle i {
    transition: transform var(--transition-normal);
}

.sidebar-collapsed .app-sidebar-toggle i {
    transform: rotate(180deg);
}

/* Hamburger icon click effect with shadow/glow */
.app-sidebar-toggle:active {
    transform: scale(0.95);
    box-shadow: 0 0 15px rgba(96, 165, 250, 0.4);
}

.app-sidebar-toggle:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.3);
}

[data-bs-theme="dark"] .app-sidebar-toggle:active {
    box-shadow: 0 0 15px rgba(147, 197, 253, 0.4);
}

[data-bs-theme="dark"] .app-sidebar-toggle:focus {
    box-shadow: 0 0 0 3px rgba(147, 197, 253, 0.3);
}

/* ====================================
   UNIVERSAL PAGE LAYOUT - FIXED SPACING
   ==================================== */

.page-header {
    background: linear-gradient(135deg, #296DC2 0%, #d4272c 100%);
    color: white;
    padding: 32px 0 32px 0;
    min-height: 160px;
    display: flex;
    align-items: center;
    margin-bottom: 0;
    position: relative;
    overflow: hidden;
}

.page-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle 15px at 15% 20%, rgba(255,255,255,0.13) 50%, transparent 50%),
        radial-gradient(circle 26px at 45% 15%, rgba(255,255,255,0.09) 50%, transparent 50%),
        radial-gradient(circle 16px at 75% 35%, rgba(255,255,255,0.11) 50%, transparent 50%),
        radial-gradient(circle 14px at 25% 65%, rgba(255,255,255,0.07) 50%, transparent 50%),
        radial-gradient(circle 26px at 85% 80%, rgba(255,255,255,0.1) 50%, transparent 50%),
        radial-gradient(circle 37px at 60% 45%, rgba(255,255,255,0.12) 50%, transparent 50%),
        radial-gradient(circle 14px at 8% 85%, rgba(255,255,255,0.06) 50%, transparent 50%),
        radial-gradient(circle 26px at 92% 25%, rgba(255,255,255,0.08) 50%, transparent 50%);
    background-repeat: no-repeat;
}

.page-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.3) 25%, 
        rgba(255, 255, 255, 0.5) 50%, 
        rgba(255, 255, 255, 0.3) 75%, 
        transparent 100%);
}

.page-header-icon {
    width: 54px;
    height: 54px;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255, 255, 255, 0.2);
    flex-shrink: 0;
    margin-left: 1rem;
}

.page-header-icon i {
    font-size: var(--fs-5xl);
    color: white;
}

.page-title {
    font-size: var(--fs-6xl);
    font-weight: 700;
    margin-bottom: 0.75rem;
    color: white !important;
    margin-left: 16px;
}

.page-subtitle {
    font-size: var(--fs-lg);
    opacity: 0.9;
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.9) !important;
    margin-left: 16px;
}

.content-section {
    padding: 60px 0 40px 0;
    background: var(--talence-gray-50);
}

.content-section:nth-of-type(even) {
    background: white;
    border-top: 1px solid var(--talence-gray-200);
    border-bottom: 1px solid var(--talence-gray-200);
}

/* FIXED: Last content section should stick near footer */
.content-section:last-of-type {
    margin-top: auto;
    padding: 30px 0 40px 0;
}

[data-bs-theme="dark"] .content-section {
    background: var(--talence-dark);
}

[data-bs-theme="dark"] .content-section:nth-of-type(even) {
    background: rgba(30, 41, 59, 0.4);
    border-top: 1px solid rgba(51, 65, 85, 0.3);
    border-bottom: 1px solid rgba(51, 65, 85, 0.3);
}

/* Reusable section patterns */
.featured-section,
.courses-section {
    padding: 20px 0;
    background: white;
}

.featured-section {
    background: var(--talence-gray-50);
}

[data-bs-theme="dark"] .featured-section {
    background: var(--talence-dark);
}

[data-bs-theme="dark"] .courses-section {
    background: var(--talence-dark);
}

.section-header {
    text-align: center;
    margin-bottom: 1rem;
}

/* ====================================
   COURSE FILTERS
   ==================================== */
.course-filters {
    background: var(--talence-gray-100);
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--talence-gray-200);
}

[data-bs-theme="dark"] .course-filters {
    background: var(--talence-gray-100);
    border-bottom-color: var(--talence-light-slate);
}

.course-filters .filters-wrapper {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.course-filters .filter-group {
    min-width: 200px;
}

.course-filters .filter-group label {
    display: block;
    font-size: var(--fs-sm);
    font-weight: 500;
    margin-bottom: 0.35rem;
    color: var(--talence-gray-600);
}

[data-bs-theme="dark"] .course-filters .filter-group label {
    color: var(--talence-gray-400);
}

.course-filters .form-select {
    font-size: var(--fs-sm);
}

@media (max-width: 576px) {
    .course-filters .filters-wrapper {
        flex-direction: column;
        align-items: stretch;
    }
    
    .course-filters .filter-group {
        width: 100%;
    }
}

/* Filter pill buttons (advisories) */
.bg-high-severity {
    background-color: #ea580c !important;
    color: #fff !important;
}

.bg-medium-severity {
    background-color: #ca8a04 !important;
    color: #fff !important;
}

.advisory-card code {
    color: var(--talence-gray-700);
}

[data-bs-theme="dark"] .advisory-card code {
    color: var(--talence-gray-400);
}

.advisory-filter {
    transition: all 0.25s ease;
    border: 1px solid transparent !important;
    font-size: 1.05rem;
    padding: 0.5rem 1.1rem;
}

.advisory-filter.active {
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.advisory-filter.btn-outline-secondary.active {
    border-color: var(--talence-gray-600) !important;
}

.advisory-filter-critical {
    color: var(--bs-danger);
    background: transparent;
}

.advisory-filter-critical:hover {
    background: var(--bs-danger);
    color: #fff;
}

.advisory-filter-critical.active {
    background: #dc2626;
    color: #fff;
    border-color: #991b1b !important;
}

.advisory-filter-high {
    color: #ea580c;
    background: transparent;
}

.advisory-filter-high:hover {
    background: #ea580c;
    color: #fff;
}

.advisory-filter-high.active {
    background: #ea580c;
    color: #fff;
    border-color: #9a3412 !important;
}

.advisory-filter-medium {
    color: #ca8a04;
    background: transparent;
}

.advisory-filter-medium:hover {
    background: #ca8a04;
    color: #fff;
}

.advisory-filter-medium.active {
    background: #ca8a04;
    color: #fff;
    border-color: #713f12 !important;
}

/* Advisory card filter transition */
.advisory-card {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.advisory-card[style*="display: none"] {
    opacity: 0;
    transform: scale(0.97);
}

/* ====================================
   SCROLL FADE-IN ANIMATIONS
   ==================================== */
.fade-in-section {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-section.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ====================================
   COURSE CARD COMPONENT (Reusable)
   ==================================== */
.course-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    height: 100%;
    border: 1px solid var(--talence-gray-200);
}

[data-bs-theme="dark"] .course-card {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(51, 65, 85, 0.4);
    box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.course-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-color: var(--talence-primary, #3b82f6);
}

[data-bs-theme="dark"] .course-card:hover {
    box-shadow: 0 8px 25px rgba(0,0,0,0.4);
    border-color: var(--talence-primary, #60a5fa);
}

.course-card.featured {
    position: relative;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2), 0 0 12px rgba(59, 130, 246, 0.2);
}

[data-bs-theme="dark"] .course-card.featured {
    border: 1px solid var(--talence-primary);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25), 0 0 12px rgba(59, 130, 246, 0.4);
}

.course-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: var(--talence-warning);
    color: white;
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    z-index: 2;
}

.course-image {
    height: 200px;
    overflow: hidden;
    position: relative;
    background: var(--talence-gray-100);
}

[data-bs-theme="dark"] .course-image {
    background: var(--talence-light-slate);
}

.course-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.3s ease;
}

.course-placeholder {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--talence-light), var(--talence-gray-200));
    color: var(--talence-gray-500);
    font-size: 2.5rem;
}

[data-bs-theme="dark"] .course-placeholder {
    background: linear-gradient(135deg, var(--talence-light-slate), var(--talence-medium-slate));
    color: var(--talence-gray-400);
}

.featured-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: linear-gradient(135deg, var(--talence-primary), var(--talence-primary-dark));
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    z-index: 2;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.course-content {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    height: calc(100% - 200px);
}

.course-meta-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.course-category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    padding: 0.4rem 0.75rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
}

.course-level {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.75rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    color: white;
    line-height: 1;
}

/* Difficulty Levels - Distinct Colors */
.level-1 { background: var(--talence-success); } /* Beginner: Green */
.level-2 { background: var(--talence-primary-hover); } /* Intermediate: Blue */
.level-3 { background: var(--talence-purple); } /* Advanced: Purple */
.level-4 { background: var(--talence-slate); } /* Expert: Slate */

/* Course Page Badge Classes */
.badge-featured {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.75rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    background: linear-gradient(135deg, var(--talence-warning), var(--talence-warning-dark));
    color: white;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

.badge-free {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.75rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    background: linear-gradient(135deg, #14b8a6, #0d9488);
    color: white;
}

.badge-lesson-type {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.5rem;
    border-radius: 8px;
    font-size: 0.75rem;
    font-weight: 500;
    background: rgba(107, 114, 128, 0.15);
    color: var(--talence-gray-600);
}

.badge-preview {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border-radius: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    background: rgba(59, 130, 246, 0.15);
    color: var(--talence-primary);
}

.badge-credential {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border-radius: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    background: rgba(59, 130, 246, 0.15);
    color: var(--talence-primary);
}

/* Enrolled Alert - Light Blue Theme */
.alert-enrolled {
    background: rgba(59, 130, 246, 0.1);
    border: 1px solid rgba(59, 130, 246, 0.25);
    color: var(--talence-primary);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.alert-enrolled i {
    font-size: 1.25rem;
    margin-top: 0.125rem;
}

.alert-enrolled strong {
    color: var(--talence-primary-dark);
}

[data-bs-theme="dark"] .badge-lesson-type {
    background: rgba(156, 163, 175, 0.2);
    color: var(--talence-gray-400);
}

[data-bs-theme="dark"] .badge-preview,
[data-bs-theme="dark"] .badge-credential {
    background: rgba(96, 165, 250, 0.2);
    color: var(--talence-primary-lighter);
}

[data-bs-theme="dark"] .alert-enrolled {
    background: rgba(59, 130, 246, 0.15);
    border-color: rgba(59, 130, 246, 0.3);
    color: var(--talence-primary-lighter);
}

[data-bs-theme="dark"] .alert-enrolled strong {
    color: var(--talence-primary);
}

.course-title {
    font-size: var(--fs-lg);
    font-weight: 600;
    margin-bottom: 0.75rem;
    line-height: 1.3;
    color: var(--talence-gray-800);
}

[data-bs-theme="dark"] .course-title {
    color: var(--talence-gray-100);
}

.course-title a {
    text-decoration: none;
    color: inherit;
}

.course-title a:hover {
    color: var(--talence-primary);
}

.course-description {
    color: var(--talence-gray-600) !important;
    margin-bottom: 0.75rem;
    line-height: 1.5;
    flex-grow: 1;
    font-size: var(--fs-sm);
}

[data-bs-theme="dark"] .course-description {
    color: var(--talence-gray-500) !important;
}

.course-stats {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.course-stats.justify-content-center {
    justify-content: center;
}

.course-stats .stat {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--talence-gray-600) !important;
    font-size: var(--fs-sm);
}

[data-bs-theme="dark"] .course-stats .stat {
    color: var(--talence-gray-400) !important;
}

.course-footer {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--talence-gray-200);
}

[data-bs-theme="dark"] .course-footer {
    border-top-color: var(--talence-light-slate);
}

.course-card-footer {
    border-top: 1px solid var(--talence-gray-200);
    padding-top: 0.75rem;
    margin-top: 0.75rem;
}

[data-bs-theme="dark"] .course-card-footer {
    border-top-color: var(--talence-light-slate);
}

.course-card-footer .progress {
    background-color: var(--talence-gray-200);
    border-radius: 3px;
}

[data-bs-theme="dark"] .course-card-footer .progress {
    background-color: var(--talence-light-slate);
}

.course-price .price-free {
    color: var(--talence-primary);
    font-weight: 600;
}

.course-price .price {
    color: var(--talence-primary);
    font-weight: 700;
    font-size: 1.1rem;
}

/* Course card responsive */
@media (max-width: 992px) {
    .course-image {
        height: 170px;
    }
    
    .course-content {
        height: calc(100% - 170px);
        padding: 1rem;
    }
}

@media (max-width: 768px) {
    .course-image {
        height: 150px;
    }
    
    .course-content {
        height: calc(100% - 150px);
    }
    
    .course-footer,
    .course-card-footer {
        padding-top: 0.75rem;
    }
}

/* Override col-xxl-3 (4 columns) to col-xl-4 (3 columns) in sidebar layout 
   until screen is wide enough (1800px+) to accommodate 4 cards with sidebar */
@media (min-width: 1400px) and (max-width: 1799px) {
    .has-sidebar .col-xxl-3 {
        flex: 0 0 auto;
        width: 33.33333333%;
    }
}

/* Large screen content constraints for public pages */
@media (min-width: 1400px) {
    .content-section > .container,
    .featured-section > .container,
    .courses-section > .container,
    .course-filters > .container,
    .cta-section > .container {
        max-width: 1200px;
    }
}

@media (min-width: 1920px) {
    .content-section > .container,
    .featured-section > .container,
    .courses-section > .container,
    .course-filters > .container,
    .cta-section > .container {
        max-width: 1600px;
    }
}

@media (min-width: 2560px) {
    .content-section > .container,
    .featured-section > .container,
    .courses-section > .container,
    .course-filters > .container,
    .cta-section > .container {
        max-width: 1800px;
    }
}

.content-wrapper {
    background: white;
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 8px 30px rgba(0,0,0,0.08);
    border: 1px solid var(--talence-gray-200);
    position: relative;
    overflow: hidden;
    animation: cardSlideIn 0.8s var(--ease-out-cubic);
    max-width: 100%;
}

.content-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(96, 165, 250, 0.4), transparent);
}

[data-bs-theme="dark"] .content-wrapper {
    background: rgba(30, 41, 59, 0.5);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(51, 65, 85, 0.4);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}

/* Section titles and subtitles */
.section-title {
    color: var(--talence-gray-800);
    font-weight: 600;
    font-size: var(--fs-3xl);
    margin-bottom: 1rem;
}

[data-bs-theme="dark"] .section-title {
    color: var(--talence-gray-700);
}

/* About page headings */
.about-heading,
.section-title.about-heading {
    color: var(--talence-primary);
}

[data-bs-theme="dark"] .about-heading,
[data-bs-theme="dark"] .section-title.about-heading {
    color: var(--talence-primary) !important;
}

.section-subtitle {
    color: var(--talence-gray-600);
    font-size: var(--fs-base);
    margin-bottom: 0;
}

[data-bs-theme="dark"] .section-subtitle {
    color: var(--talence-gray-500);
}

/* Generic highlighted content box - reusable across all pages */
.highlight-box {
    background: var(--talence-gray-50);
    border: 1px solid var(--talence-gray-200);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
}

[data-bs-theme="dark"] .highlight-box {
    background: rgba(30, 41, 59, 0.7);
    border-color: rgba(51, 65, 85, 0.5);
}

/* Activity item pill styling - reusable for activity feeds */
.activity-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: white;
    border: 1px solid var(--talence-gray-200);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--talence-primary);
    margin-bottom: 1rem;
    transition: all var(--transition-fast);
    position: relative;
}

[data-bs-theme="dark"] .activity-item {
    background: var(--talence-gray-200);
    border-color: var(--talence-gray-400);
}

.activity-item:hover {
    transform: translateY(-2px) translateX(4px);
    box-shadow: var(--shadow-lg);
    border-color: rgba(96, 165, 250, 0.3);
}

[data-bs-theme="dark"] .activity-item:hover {
    box-shadow: 0 12px 20px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2);
}

/* Activity item variants with different border colors */
.activity-item.activity-success {
    border-left-color: var(--talence-success);
}

.activity-item.activity-warning {
    border-left-color: var(--talence-warning);
}

.activity-item.activity-info {
    border-left-color: var(--talence-info);
}

.activity-item.activity-danger {
    border-left-color: var(--talence-danger);
}

/* Activity item icon sizing - reusable class */
.activity-icon {
    width: 48px !important;
    height: 48px !important;
    margin: 0 !important;
}

/* Contact styling for highlight boxes */
.contact-title {
    color: var(--talence-gray-800);
    font-weight: 600;
    margin-bottom: 0.75rem;
}

[data-bs-theme="dark"] .contact-title {
    color: var(--talence-gray-700);
}

.contact-text {
    color: var(--talence-gray-600);
    margin-bottom: 0.5rem;
}

[data-bs-theme="dark"] .contact-text {
    color: var(--talence-gray-500);
}

.contact-response-time {
    color: var(--talence-gray-500);
}

[data-bs-theme="dark"] .contact-response-time {
    color: var(--talence-gray-400);
}

/* ====================================
   ENHANCED FORM STYLING
   ==================================== */

.form-group {
    margin-bottom: 1.25rem;
}

.form-label {
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--talence-gray-700);
    font-size: var(--fs-base);
    display: block;
    transition: all var(--transition-fast);
}

[data-bs-theme="dark"] .form-label {
    color: var(--talence-gray-600) !important;
}

.form-label .text-danger {
    color: var(--talence-danger);
    margin-left: 0.25rem;
    font-weight: 700;
}

/* ====================================
   FORM CHECK ELEMENTS (CHECKBOXES & RADIO BUTTONS)
   ==================================== */

.form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0;
}

.form-check-input {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0;
    border: 2px solid var(--talence-gray-300);
    border-radius: 0.375rem;
    background-color: white;
    transition: all var(--transition-fast);
    flex-shrink: 0;
}

[data-bs-theme="dark"] .form-check-input {
    background-color: var(--talence-gray-150);
    opacity: 0.8;
    border-color: var(--talence-gray-300);
}

.form-check-input:checked {
    background-color: var(--talence-primary);
    border-color: var(--talence-primary);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}

.form-check-input:focus {
    border-color: var(--talence-primary);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
    outline: none;
}

.form-check-label {
    font-size: var(--fs-lg);
    font-weight: 500;
    color: var(--talence-gray-700);
    cursor: pointer;
    user-select: none;
    line-height: 1.4;
}

[data-bs-theme="dark"] .form-check-label {
    color: var(--talence-gray-600) !important;
}

/* ====================================
   ENHANCED INPUT GROUP STYLING
   ==================================== */

.input-group {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
}

.input-group .input-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--talence-gray-400);
    font-size: var(--fs-xl);
    z-index: 5;
    pointer-events: none;
    width: 16px;
    text-align: center;
    transition: all var(--transition-fast);
}

[data-bs-theme="dark"] .input-group .input-icon {
    color: var(--talence-gray-500) !important;
}

.input-group .form-control,
.input-group .form-select {
    padding-left: 2.75rem !important;
    border: 1px solid var(--talence-gray-300);
    border-radius: var(--radius-lg) !important;
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
    padding-right: 0.875rem;
    font-size: var(--fs-base);
    transition: all var(--transition-fast);
    background-color: white;
    position: relative;
    z-index: 2;
    color: var(--talence-gray-900) !important;
}

[data-bs-theme="dark"] .input-group .form-control,
[data-bs-theme="dark"] .input-group .form-select {
    background-color: rgba(66, 76, 94, 0.24);
    border-color: rgba(100, 116, 139, 0.25);
    color: var(--talence-gray-800) !important;
}

.input-group .form-control:focus,
.input-group .form-select:focus {
    border-color: var(--talence-primary);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
    outline: none;
    transform: translateY(-1px);
    color: var(--talence-gray-900);
}

[data-bs-theme="dark"] .input-group .form-control:focus,
[data-bs-theme="dark"] .input-group .form-select:focus {
    background-color: rgba(66, 76, 94, 0.35);
    border-color: var(--talence-primary);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.12);
    color: var(--talence-gray-800) !important;
}

.input-group .form-control:focus ~ .input-icon,
.input-group .form-select:focus ~ .input-icon {
    color: var(--talence-primary) !important;
    transform: translateY(-50%) scale(1.05);
}

[data-bs-theme="dark"] .input-group .form-control:focus ~ .input-icon,
[data-bs-theme="dark"] .input-group .form-select:focus ~ .input-icon {
    color: var(--talence-primary-light) !important;
}

/* ====================================
   STANDARD FORM CONTROLS (without icons)
   ==================================== */

.form-control:not(.input-group .form-control),
.form-select:not(.input-group .form-select) {
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--talence-gray-300);
    border-radius: var(--radius-lg) !important;
    background-color: white;
    color: var(--talence-gray-900);
    font-size: var(--fs-base);
    transition: all var(--transition-fast);
}

[data-bs-theme="dark"] .form-control:not(.input-group .form-control),
[data-bs-theme="dark"] .form-select:not(.input-group .form-select) {
    background-color: rgba(66, 76, 94, 0.24);
    border-color: rgba(100, 116, 139, 0.25);
    color: var(--talence-gray-800) !important;
}

.form-control:not(.input-group .form-control):focus,
.form-select:not(.input-group .form-select):focus {
    border-color: var(--talence-primary);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
    outline: none;
    transform: translateY(-1px);
    color: var(--talence-gray-900);
}

[data-bs-theme="dark"] .form-control:not(.input-group .form-control):focus,
[data-bs-theme="dark"] .form-select:not(.input-group .form-select):focus {
    background-color: rgba(66, 76, 94, 0.35);
    border-color: var(--talence-primary);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.12);
    color: var(--talence-gray-800) !important;
}

/* ====================================
   PLACEHOLDER AND DROPDOWN STYLING
   ==================================== */

.form-control::placeholder,
.form-select::placeholder {
    color: var(--talence-gray-500);
    opacity: 1;
}

[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] .form-select::placeholder {
    color: var(--talence-gray-500);
    opacity: 1;
}

.form-select option {
    color: var(--talence-gray-900);
    background-color: white;
}

[data-bs-theme="dark"] .form-select option {
    color: var(--talence-gray-300);
    background-color: var(--talence-light-slate);
}

.form-select:invalid,
.form-select[value=""],
.form-select:not([value]) {
    color: var(--talence-gray-500) !important;
}

[data-bs-theme="dark"] .form-select:invalid,
[data-bs-theme="dark"] .form-select[value=""],
[data-bs-theme="dark"] .form-select:not([value]) {
    color: var(--talence-gray-400) !important;
}

/* ====================================
   TEXTAREA STYLING
   ==================================== */

textarea.form-control {
    min-height: 120px;
    resize: vertical;
    font-family: inherit;
    line-height: 1.5;
}

/* ====================================
   FORM FEEDBACK AND VALIDATION
   ==================================== */

.form-text {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    font-size: var(--fs-base);
    color: var(--talence-gray-500);
    transition: all var(--transition-fast);
}

[data-bs-theme="dark"] .form-text {
    color: var(--talence-gray-400);
}

.form-text i {
    font-size: var(--fs-xs);
    opacity: 0.8;
}

.invalid-feedback {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    margin-top: 0.5rem;
    font-size: var(--fs-base);
    color: var(--talence-danger);
    font-weight: 500;
}

.invalid-feedback i {
    font-size: var(--fs-xs);
    flex-shrink: 0;
}

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

.form-control.is-invalid ~ .input-icon,
.form-select.is-invalid ~ .input-icon {
    color: var(--talence-danger) !important;
}

/* ====================================
   ENHANCED BUTTON STYLING
   ==================================== */

.btn-primary {
    background: var(--talence-primary);
    border: none;
    color: white;
    font-weight: 600;
    padding: 0.5rem 1.1rem;
    border-radius: var(--radius-lg);
    transition: all 0.25s ease;
    text-transform: none;
    font-size: var(--fs-sm);
}

.btn-primary:hover {
    background: var(--talence-primary-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(96, 165, 250, 0.35);
    color: white;
}

.btn-primary:focus {
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.3);
    color: white;
}

.btn-primary:active {
    background: var(--talence-primary-dark);
    transform: translateY(0);
    box-shadow: none;
}

.form-link {
    color: var(--talence-primary);
    text-decoration: none;
    transition: color 0.2s ease, text-decoration 0.2s ease;
    font-size: var(--fs-sm);
}

.form-link:hover {
    color: var(--talence-primary-dark);
    text-decoration: underline;
}

[data-bs-theme="dark"] .form-link:hover {
    color: var(--talence-primary-light);
}

.btn-secondary {
    border: 1px solid var(--talence-gray-300);
    color: var(--talence-gray-700);
    background: white;
    font-weight: 600;
    padding: 0.5rem 1.1rem;
    border-radius: var(--radius-lg);
    transition: all var(--transition-fast);
    font-size: var(--fs-sm);
}

.btn-secondary:hover {
    background: var(--talence-gray-100);
    border-color: var(--talence-gray-400);
    color: var(--talence-gray-900);
    transform: translateY(-1px);
}

[data-bs-theme="dark"] .btn-secondary {
    border-color: var(--talence-gray-600);
    color: var(--talence-gray-600) !important;
    background: var(--talence-gray-100);
}

[data-bs-theme="dark"] .btn-secondary:hover {
    background: var(--talence-gray-200);
    border-color: var(--talence-gray-500);
    color: var(--talence-gray-700) !important;
}

/* Outline button improvements for better theme compatibility */
.btn-outline-primary {
    border: 2px solid var(--talence-gray-400);
    color: var(--talence-gray-600);
    background: transparent;
    font-weight: 500;
    transition: all var(--transition-fast);
}

.btn-outline-primary:hover {
    background: var(--talence-gray-100);
    border-color: var(--talence-gray-500);
    color: var(--talence-gray-700);
    transform: translateY(-1px);
}

.btn-outline-primary:focus {
    box-shadow: 0 0 0 3px rgba(107, 114, 128, 0.25);
    border-color: var(--talence-gray-500);
    color: var(--talence-gray-600);
}

[data-bs-theme="dark"] .btn-outline-primary {
    border-color: var(--talence-gray-500);
    color: var(--talence-gray-400);
}

[data-bs-theme="dark"] .btn-outline-primary:hover {
    background: var(--talence-gray-200);
    border-color: var(--talence-gray-400);
    color: var(--talence-gray-700);
}

[data-bs-theme="dark"] .btn-outline-primary:focus {
    box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.25);
    border-color: var(--talence-gray-400);
    color: var(--talence-gray-400);
}

[data-bs-theme="dark"] .btn-outline-primary:active {
    border-color: var(--talence-gray-200);
    color: var(--talence-gray-100);
}


/* Outline Light Button - For hero sections on dark backgrounds */
.btn-outline-light {
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: rgba(255, 255, 255, 0.9);
    background: transparent;
    font-weight: 600;
    padding: 0.5rem 1.25rem;
    border-radius: var(--radius-lg);
    transition: all var(--transition-fast);
    text-transform: none;
    font-size: var(--fs-base);
    position: relative;
    overflow: hidden;
}

.btn-outline-light::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.btn-outline-light:hover::before {
    left: 100%;
}

.btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.5);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(255, 255, 255, 0.2);
}

.btn-outline-light:focus {
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.5);
    color: white;
}

.btn-outline-light:active {
    transform: translateY(0);
    color: white;
}





/* Small button enhancements */
.btn-sm {
    padding: 0.5rem 1rem;
    font-size: var(--fs-base);
    border-radius: var(--radius);
}

.btn-sm i {
    font-size: var(--fs-sm);
    margin-top: 0.05rem;
}

/* ====================================
   ENHANCED ALERT STYLING
   ==================================== */

.alert {
    border-radius: var(--radius-lg);
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
    border: 1px solid transparent;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    position: relative;
    overflow: hidden;
    line-height: 1.5;
}

.alert::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: currentColor;
    opacity: 0.8;
}

.alert > i {
    margin-top: 0.25rem;
    flex-shrink: 0;
    font-size: var(--fs-lg);
    line-height: 1;
}

.alert > div {
    flex: 1;
    line-height: 1.5;
}

.alert-success {
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.2);
    color: var(--talence-success);
}

.alert-danger {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.2);
    color: var(--talence-danger);
}

.alert-warning {
    background: rgba(245, 158, 11, 0.1);
    border-color: rgba(245, 158, 11, 0.2);
    color: var(--talence-warning);
}

.alert-info {
    background: rgba(96, 165, 250, 0.1);
    border-color: rgba(96, 165, 250, 0.2);
    color: var(--talence-primary);
}

[data-bs-theme="dark"] .alert-success {
    background: rgba(16, 185, 129, 0.15);
    color: var(--talence-success-light);
}

[data-bs-theme="dark"] .alert-danger {
    background: rgba(239, 68, 68, 0.15);
    color: var(--talence-danger-light);
}

[data-bs-theme="dark"] .alert-warning {
    background: rgba(245, 158, 11, 0.15);
    color: var(--talence-warning-light);
}

[data-bs-theme="dark"] .alert-info {
    background: rgba(96, 165, 250, 0.08);
    border-color: rgba(96, 165, 250, 0.2);
    color: var(--talence-primary-light);
}

/* ====================================
   ENHANCED CARD SYSTEM
   ==================================== */

.card {
    background: white;
    border: 1px solid var(--talence-gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all var(--transition-normal);
    box-shadow: var(--shadow-sm);
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
}

[data-bs-theme="dark"] .card,
[data-bs-theme="dark"] .testimonial-card {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(51, 65, 85, 0.4);
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
    border-color: rgba(96, 165, 250, 0.3);
}

[data-bs-theme="dark"] .card:hover {
    box-shadow: 0 20px 40px rgba(0,0,0,0.4), 0 8px 16px rgba(0,0,0,0.2);
}

.card-icon {
    width: 40px;
    height: 40px;
    background: var(--talence-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.75rem;
    color: white;
    font-size: var(--fs-2xl);
    transition: all var(--transition-fast);
    position: relative;
    overflow: hidden;
}

.card-icon::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
}

.card:hover .card-icon::before {
    left: 100%;
}

.card:hover .card-icon {
    transform: scale(1.05);
    box-shadow: 0 4px 15px rgba(96, 165, 250, 0.3);
}

.card-body {
    padding: 1rem;
    text-align: center;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.card-body h5,
.card-body h6 {
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--talence-gray-800);
    font-size: var(--fs-lg);
}

[data-bs-theme="dark"] .card-body h5,
[data-bs-theme="dark"] .card-body h6 {
    color: var(--talence-gray-800) !important;
}

.card-body p {
    color: var(--talence-gray-600);
    line-height: 1.6;
    margin-bottom: 0;
    font-size: var(--fs-md);
    flex: 1;
}

[data-bs-theme="dark"] .card-body p {
    color: var(--talence-gray-600);
}

/* Generic icon color variants - reusable across all pages */
.icon-red {
    background: linear-gradient(135deg, var(--talence-danger), var(--talence-secondary));
}

.icon-blue {
    background: linear-gradient(135deg, var(--talence-primary-hover), #2563eb);
}

.icon-blue-dark {
    background: linear-gradient(135deg, var(--talence-primary-hover), #1d4ed8);
}

.icon-green {
    background: linear-gradient(135deg, var(--talence-success), #059669);
}

.icon-purple {
    background: linear-gradient(135deg, var(--talence-purple), #7c3aed);
}

.icon-orange {
    background: linear-gradient(135deg, var(--talence-warning), var(--talence-warning-dark));
}

.icon-teal {
    background: linear-gradient(135deg, #14b8a6, #0d9488);
}

.icon-indigo {
    background: linear-gradient(135deg, #6366f1, #4f46e5);
}

.icon-yellow {
  background: linear-gradient(135deg, #facc15, #eab308);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

/* Equal height card rows */
.row.g-4 .col-md-4 {
    display: flex;
}

.row.g-4 .card {
    width: 100%;
}

/* Card responsive adjustments */
@media (max-width: 992px) {
    .card-icon {
        width: 36px;
        height: 36px;
        font-size: var(--fs-xl);
    }
    
    .card-body {
        padding: 0.875rem;
    }
}

@media (max-width: 768px) {
    .card-icon {
        width: 32px;
        height: 32px;
        font-size: var(--fs-lg);
        margin-bottom: 0.5rem;
    }
    
    .card-body h5,
    .card-body h6 {
        font-size: var(--fs-base);
    }
    
    .card-body p {
        font-size: var(--fs-sm);
    }
}

/* ====================================
   UTILITY BAR (above navbar)
   ==================================== */

.utility-theme-toggle {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    line-height: 1;
    margin-right: 20px;
}

.utility-toggle-track {
    display: flex;
    align-items: center;
    width: 52px;
    height: 26px;
    background: rgba(66, 76, 94, 0.24);
    border: 1px solid rgba(100, 116, 139, 0.25);
    border-radius: 13px;
    position: relative;
    padding: 0 5px;
    transition: background 0.3s ease, border-color 0.3s ease;
}

.utility-toggle-track:hover {
    background: rgba(66, 76, 94, 0.4);
    border-color: rgba(100, 116, 139, 0.45);
}

.utility-toggle-thumb {
    position: absolute;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    top: 2px;
    left: 3px;
    transition: transform 0.3s ease;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

[data-bs-theme="dark"] .utility-toggle-thumb {
    transform: translateX(25px);
    background: #60a5fa;
}

.utility-icon-light,
.utility-icon-dark {
    font-size: 0.7rem;
    z-index: 1;
    transition: opacity 0.3s ease;
    color: #fff;
    margin-left: auto;
}

.utility-icon-light {
    color: #fcd34d;
    margin-left: 2px;
    margin-right: auto;
}

[data-bs-theme="light"] .utility-icon-light {
    opacity: 1;
}

[data-bs-theme="light"] .utility-icon-dark {
    opacity: 0.5;
}

[data-bs-theme="dark"] .utility-icon-light {
    opacity: 0.5;
}

[data-bs-theme="dark"] .utility-icon-dark {
    opacity: 1;
}

/* ====================================
   NAVBAR STYLES
   ==================================== */

.navbar {
    background: linear-gradient(135deg,
        var(--talence-dark) 0%,
        var(--talence-medium-slate) 50%,
        var(--talence-dark) 100%) !important;
    padding: 1rem 0;
    border-bottom: 2px solid var(--talence-primary);
}

/* ====================================
   NAVBAR BRAND STYLING
   ==================================== */

.navbar-brand {
    font-family: 'Sansation', 'Inter', sans-serif;
    font-weight: 700;
    font-size: var(--fs-4xl);
    color: #ffffff !important;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 12px;
}

.navbar-brand:hover {
    color: var(--talence-primary-light) !important;
    text-decoration: none;
}

.navbar-brand .brand-logo {
    width: 65px;
    height: 65px;
    background: var(--talence-logo-url) no-repeat center;
    background-size: contain;
    border-radius: 8px;
    flex-shrink: 0;
}

.navbar-brand .brand-text {
    font-family: 'Sansation', sans-serif;
    font-size: var(--fs-7xl);
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 2px;
}

/* ====================================
   NAVBAR TOGGLE STYLING
   ==================================== */
.navbar-toggler {
    border: none;
    padding: 0.25rem 0.5rem;
}

.navbar-toggler:focus {
    box-shadow: none;
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ====================================
   NAVBAR NAVIGATION STYLING
   ==================================== */
.navbar .nav-public {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    list-style: none !important;
    margin-bottom: 0 !important;
    margin-left: 3rem !important;
    padding-left: 0 !important;
}

.navbar .nav-public .nav-item {
    display: flex !important;
    align-items: center !important;
}

.navbar .nav-public .nav-link {
    color: rgba(255, 255, 255, 0.7) !important;
    font-weight: 500;
    padding: 0.5rem 1rem !important;
    transition: color 0.3s ease;
    margin: 0 0.15rem;
    display: flex !important;
    align-items: center !important;
    line-height: 1 !important;
    min-height: 2.5rem !important;
    letter-spacing: 0.3px;
    text-decoration: none !important;
    position: relative;
    font-size: var(--fs-md);
    z-index: 1;
}

/* Underline reveal effect */
.navbar .nav-public .nav-link::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 1rem;
    right: 1rem;
    height: 2px;
    background: var(--talence-primary);
    border-radius: 1px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.navbar .nav-public .nav-link:hover {
    color: #ffffff !important;
}

.navbar .nav-public .nav-link:hover::after {
    transform: scaleX(1);
}

/* Active state - persistent underline */
.navbar .nav-public .nav-link.active {
    color: #ffffff !important;
}

.navbar .nav-public .nav-link.active::after {
    transform: scaleX(1);
}
/* ====================================
   NAV (PUBLIC) BUTTONS
   ==================================== */

.navbar .nav-public .btn-login,
.navbar .nav-public .btn-register {
    padding: 0.5rem 1.1rem !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    font-size: var(--fs-sm) !important;
    transition: all 0.3s ease !important;
    min-height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, var(--talence-primary-hover), #2563eb) !important;
    border-color: var(--talence-primary-hover) !important;
    color: white !important;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3) !important;
}

/* Login Button - Red */
.navbar .nav-public .btn-login {
    background: linear-gradient(135deg, var(--talence-secondary), var(--talence-secondary-dark)) !important;
    border-color: var(--talence-secondary) !important;
    color: white !important;
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.3) !important;
}

.navbar .nav-public .btn-login:hover {
    background: linear-gradient(135deg, var(--talence-danger-light), var(--talence-secondary)) !important;
    color: white !important;
    box-shadow: 0 4px 16px rgba(220, 38, 38, 0.5) !important;
    transform: translateY(-2px);
}

/* Register Button - Blue */
.navbar .nav-public .btn-register:hover {
    background: linear-gradient(135deg, var(--talence-primary), var(--talence-primary-hover)) !important;
    color: white !important;
    box-shadow: 0 4px 16px rgba(59, 130, 246, 0.5) !important;
    transform: translateY(-2px);
}


/* ====================================
   NAV PILLS WITH LEFT BORDERS
   ==================================== */

.nav-content .nav-item {
    margin: 0.2rem 0.5rem;
}

.nav-content .nav-link {
    position: relative !important;
    border-left: 3px solid transparent !important;
    border-radius: var(--radius-lg) !important;
    transition: all var(--transition-normal) !important;
}

.nav-content .nav-link:hover {
    border-left-color: var(--talence-primary) !important;
    background-color: rgba(96, 165, 250, 0.1) !important;
    color: var(--talence-primary) !important;
    transform: translateX(4px) !important;
    box-shadow: 0 4px 12px rgba(96, 165, 250, 0.15) !important;
}

.nav-content .nav-link.active {
    border-left-color: var(--talence-primary) !important;
    background-color: var(--talence-primary) !important;
    color: white !important;
    transform: translateX(4px) !important;
    box-shadow: 0 6px 20px rgba(96, 165, 250, 0.25) !important;
}

[data-bs-theme="dark"] .nav-content .nav-link:hover {
    border-left-color: var(--talence-primary-light) !important;
    background-color: rgba(96, 165, 250, 0.2) !important;
    color: var(--talence-primary-light) !important;
}

[data-bs-theme="dark"] .nav-content .nav-link.active {
    border-left-color: var(--talence-primary-light) !important;
    background-color: var(--talence-primary-light) !important;
    color: var(--talence-dark) !important;
}

/* ====================================
   DROPDOWN MENU STYLING
   ==================================== */

.dropdown-menu {
    min-width: 230px !important;
    border-radius: 12px;
    padding: 8px 0;
    border: none;
    box-shadow: var(--shadow-xl);
    backdrop-filter: blur(10px);
    z-index: 1050;
}

[data-bs-theme="dark"] .dropdown-menu {
    background: var(--talence-gray-800) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
}

[data-bs-theme="light"] .dropdown-menu {
    background: white !important;
    border: 1px solid var(--talence-gray-200) !important;
}

.dropdown-item {
    padding: 12px 16px !important;
    font-size: var(--fs-base) !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
    border-radius: 8px !important;
    margin: 2px 8px !important;
    display: flex !important;
    align-items: center !important;
    white-space: nowrap !important;
    max-width: calc(100% - 16px) !important;
    overflow: hidden !important;
}

[data-bs-theme="dark"] .dropdown-item {
    color: rgba(255, 255, 255, 0.9) !important;
}

[data-bs-theme="light"] .dropdown-item {
    color: var(--talence-gray-700) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: rgba(96, 165, 250, 0.15) !important;
    text-decoration: none !important;
}

.dropdown-item.active {
    background: rgba(96, 165, 250, 0.2) !important;
    font-weight: 600 !important;
}

.dropdown-item .language-flag {
    margin-right: 10px;
    width: 22px;
    height: 16px;
}

/* Language flag styling with consistent sizing */
.language-flag {
    width: 20px !important;
    height: 15px !important;
    object-fit: cover !important;
    border-radius: 2px !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
}

/* Language dropdown enhancements */
.nav-public .dropdown-toggle {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}

.nav-link.dropdown-toggle .language-flag.me-1 {
    margin-right: 12px !important;
}

.dropdown-item .language-flag.me-2 {
    margin-right: 12px !important;
}

/* ====================================
   FOOTER STYLES
   ==================================== */

footer,
.unified-footer {
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    margin-top: auto;
}

.footer-main {
    width: 100%;
    position: relative;
    z-index: 1;
}

.footer-main > .container,
.footer-bottom > .container {
    max-width: 70%;
}

.footer-description {
    padding-right: 2rem;
    padding-bottom: 2rem;
}

[data-bs-theme="light"] .footer-main {
    background: var(--footer-main-light) !important;
    color: #ffffff !important;
    padding: 5rem 0 3rem !important;
}

[data-bs-theme="dark"] .footer-main {
    background: var(--footer-main-dark) !important;
    color: #ffffff !important;
    padding: 5rem 0 3rem !important;
}

.footer-bottom {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    margin-top: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

[data-bs-theme="light"] .footer-bottom {
    background: var(--footer-bottom-light) !important;
    color: var(--talence-gray-400) !important;
    padding: 2rem 0 !important;
}

[data-bs-theme="dark"] .footer-bottom {
    background: var(--footer-bottom-dark) !important;
    color: var(--talence-gray-400) !important;
    padding: 2rem 0 !important;
}

.footer-brand-unified {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 1.5rem;
}

.footer-brand-unified .brand-logo {
    width: 80px;
    height: 80px;
    background: var(--talence-logo-url) no-repeat center;
    background-size: contain;
    flex-shrink: 0;
    border-radius: 8px;
}

.footer-brand-unified .brand-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}

.footer-brand-unified .brand-subtitle {
    color: #adbed7 !important;
    font-size: var(--fs-lg);
    line-height: 1.4;
    margin: 0;
    opacity: 0.9;
    font-weight: 600;
}

.footer-main h6 {
    color: #ffffff !important;
    font-size: var(--fs-xl) !important;
    font-weight: 600 !important;
    margin-bottom: 1.2rem !important;
    position: relative;
    letter-spacing: 0.5px;
}

.footer-main h6::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 25px;
    height: 2px;
    background: linear-gradient(90deg, var(--talence-primary-hover), var(--talence-primary));
    border-radius: 2px;
}

.footer-main ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.footer-links-columns {
    padding-left: 30px;
}

.footer-main ul li {
    margin-bottom: 0.4rem !important;
    padding: 0 !important;
}

.footer-main ul li a {
    color: var(--talence-gray-500) !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    font-size: var(--fs-base) !important;
    position: relative;
    display: inline-block;
}

.footer-main ul li a::before {
    content: '›';
    margin-right: 0.4rem;
    color: var(--talence-primary);
    font-weight: 600;
    position: static;
    width: auto;
    height: auto;
    background: none;
    transition: color 0.3s ease;
}

.footer-main ul li a:hover {
    color: var(--talence-primary) !important;
    transform: translateX(4px);
    text-decoration: none !important;
}

.footer-main ul li a:hover::before {
    color: white;
}

.social-links-unified {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: flex-end;
    padding-right: 2rem;
    flex-wrap: wrap;
}

.social-link-unified {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: rgba(59, 130, 246, 0.1) !important;
    border: 1px solid rgba(59, 130, 246, 0.2) !important;
    border-radius: 12px;
    color: var(--talence-primary) !important;
    text-decoration: none !important;
    transition: all 0.3s ease;
    font-size: var(--fs-3xl);
    position: relative;
    overflow: hidden;
}

.social-link-unified::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    transition: left 0.6s ease;
}

.social-link-unified:hover::before {
    left: 100%;
}

.social-link-unified:hover {
    background: rgba(59, 130, 246, 0.2) !important;
    border-color: var(--talence-primary) !important;
    color: var(--talence-primary) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(59, 130, 246, 0.3);
    text-decoration: none !important;
}

/* ====================================
   UTILITY CLASSES
   ==================================== */

.separator-line,
hr {
    border: none;
    height: 1px;
    background-color: var(--talence-gray-300);
    margin: 1.5rem 0;
    opacity: 1;
}

[data-bs-theme="dark"] .separator-line,
[data-bs-theme="dark"] hr {
    background-color: var(--talence-gray-400);
}

.text-primary { color: var(--talence-primary) !important; }
.text-danger { color: var(--talence-danger) !important; }
.text-muted { color: var(--talence-gray-500) !important; }

[data-bs-theme="dark"] .text-muted {
    color: var(--talence-gray-500) !important; 
}

.mt-6 { margin-top: 4rem !important; }
.mt-7 { margin-top: 5rem !important; }
.py-6 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.mb-6 { margin-bottom: 4rem !important; }
.mb-7 { margin-bottom: 5rem !important; }

/* ====================================
   RESPONSIVE DESIGN
   ==================================== */

@media (max-width: 1024px) {
    /* Mobile: sidebar slides over content */
    .app-sidebar {
        transform: translateX(-100%);
        z-index: 1040;
        box-shadow: var(--shadow-2xl);
        overflow-x: hidden;
    }
    
    /* Mobile: show sidebar overlay */
    .app-sidebar.sidebar-show {
        transform: translateX(0);
    }
    
    /* Mobile: backdrop overlay when sidebar is open */
    .app-sidebar.sidebar-show::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: -1;
        animation: fadeIn 0.3s ease;
    }
    
    @keyframes fadeIn {
        from { opacity: 0; }
        to { opacity: 1; }
    }
    
    /* Mobile: main content always full width */
    .has-sidebar .app-main-content {
        margin-left: 0;
    }
    
    /* Mobile: reset collapsed states */
    .sidebar-collapsed .app-sidebar {
        width: var(--sidebar-width);
        transform: translateX(-100%);
    }
    
    .sidebar-collapsed .app-main-content {
        margin-left: 0;
    }
    
    .sidebar-collapsed .app-sidebar .nav-text,
    .sidebar-collapsed .app-sidebar .app-sidebar-title {
        display: block;
    }
    
    .sidebar-collapsed .app-sidebar .nav-app-sidebar {
        justify-content: flex-start;
        padding: 12px 1.5rem;
    }
    
    .sidebar-collapsed .app-sidebar .app-nav-header {
        padding: 0.75rem 1.5rem 0.5rem;
        text-align: left;
    }
    
    .sidebar-collapsed .app-sidebar .app-sidebar-header {
        justify-content: flex-start;
        padding: 1rem 1.5rem;
    }
    
    .app-search-container {
        display: none;
    }
    
    .app-user-name {
        display: none;
    }
    
    .app-header-content {
        padding: 0 1rem;
    }
    
    /* Footer in logged-in area - ensure it's not covered by sidebar */
    .logged-in-footer,
    .has-sidebar .unified-footer,
    .sidebar-collapsed .unified-footer {
        margin-left: 0 !important;
        position: relative;
        z-index: 1;
    }
    
    .logged-in-footer .footer-main,
    .logged-in-footer .footer-bottom,
    .has-sidebar .unified-footer .footer-main,
    .has-sidebar .unified-footer .footer-bottom {
        margin-left: 0 !important;
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
        position: relative;
    }
    
    /* Override viewport width calculations for footer-bottom on mobile */
    .logged-in-footer .footer-bottom,
    .has-sidebar .unified-footer .footer-bottom {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

@media (max-width: 768px) {
    .page-header {
        padding: 40px 0;
    }
    
    .page-title {
        font-size: var(--fs-7xl);
    }
    
    .content-wrapper {
        padding: 2rem;
        margin: 1rem;
    }
    
    .content-section {
        padding: 40px 0;
    }
    
    /* Reset last section spacing on mobile */
    .content-section:last-of-type {
        margin-top: 0;
        padding: 40px 0;
    }
    
    .input-group .form-control,
    .input-group .form-select {
        padding: 0.75rem 1rem 0.75rem 2.75rem;
        min-height: 48px;
    }
    
    .input-group .input-icon {
        left: 0.875rem;
        font-size: var(--fs-md);
    }
    
    .card-body {
        padding: 1.5rem;
    }
    
    .btn-primary {
        padding: 0.75rem 1.5rem;
        width: 100%;
    }
    
    .footer-main {
        padding: 4rem 0 2rem !important;
    }
    
    .footer-brand-unified {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 12px;
        margin-bottom: 2rem;
    }
    
    .footer-main h6 {
        text-align: center;
        margin-bottom: 1.5rem !important;
    }
    
    .footer-main h6::after {
        left: 50% !important;
        transform: translateX(-50%);
    }
    
    .footer-main ul {
        text-align: center;
    }
    
    .social-links-unified {
        justify-content: center;
        margin-top: 1rem;
    }
    
    .footer-bottom .text-end {
        text-align: center !important;
        margin-top: 1rem;
    }
    
    .nav-public .nav-link {
        padding: 0.75rem 1rem !important;
        margin: 0.125rem 0 !important;
    }
    
    .nav-public .btn-primary {
        margin-top: 0.5rem !important;
        margin-left: 0 !important;
    }
    
    .nav-public.me-auto .nav-item:not(:last-child) {
        margin-right: 0 !important;
    }
    
    .highlight-box {
        padding: 1.5rem;
    }
    
    .text-content {
        font-size: var(--fs-md);
    }
    
    .app-header-right {
        gap: 0.5rem;
    }
    
    .app-header-btn {
        width: 44px;
        height: 44px;
        font-size: var(--fs-2xl);
    }
    
    .app-user-menu-toggle {
        padding: 6px 12px;
    }
    
    .app-user-avatar {
        width: 32px;
        height: 32px;
    }
}

@media (max-width: 480px) {
    .content-wrapper {
        padding: 1.25rem;
    }
    
    .page-header {
        padding: 30px 0;
    }
    
    .page-title {
        font-size: var(--fs-6xl);
    }
    
    .card-body {
        padding: 1.25rem;
    }
    
    .card-icon {
        width: 50px;
        height: 50px;
        font-size: var(--fs-4xl);
    }
    
    .social-links-unified {
        gap: 0.75rem;
    }
    
    .social-link-unified {
        width: 40px !important;
        height: 40px !important;
        font-size: var(--fs-2xl) !important;
    }
    
    .footer-bottom {
        padding: 1.5rem 0 !important;
    }
    
    .language-flag {
        width: 18px !important;
        height: 13px !important;
    }
    
    .dropdown-item .language-flag {
        width: 18px !important;
        height: 13px !important;
        margin-right: 6px !important;
    }
    
    .highlight-box {
        padding: 1rem;
    }
}


/* Prevent sidebar flash on page load */
.sidebar-preload-collapsed .app-sidebar {
    width: var(--sidebar-collapsed-width) !important;
    transition: none !important;
}

.sidebar-preload-collapsed .has-sidebar .app-main-content {
    margin-left: var(--sidebar-collapsed-width) !important;
    transition: none !important;
}

.sidebar-preload-collapsed .app-sidebar .nav-text,
.sidebar-preload-collapsed .app-sidebar .app-sidebar-title {
    display: none !important;
}

.sidebar-preload-collapsed .app-sidebar .nav-app-sidebar {
    justify-content: center !important;
    padding: 12px 1rem !important;
}

.sidebar-preload-collapsed .app-sidebar .app-nav-header {
    padding: 0.75rem 1rem 0.5rem !important;
    text-align: center !important;
}

.sidebar-preload-collapsed .app-sidebar .app-sidebar-header {
    justify-content: center !important;
    padding: 1.2rem !important;
}

.sidebar-preload-collapsed .app-sidebar-toggle {
    margin-left: 10px !important;
    margin-right: -10px !important;
    width: 40px !important;
}

.sidebar-preload-collapsed .app-sidebar-toggle i {
    transform: rotate(180deg) !important;
}




/* ====================================
   GENERIC ITEM GRID LAYOUT
   ==================================== */

/* Generic grid for any type of items - badges, challenges, courses, etc. */
.items-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 1rem;
}

@media (max-width: 992px) {
    .items-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .items-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

/* ====================================
   SEMANTIC RARITY SYSTEM
   ==================================== */

/* Generic rarity indicators - reusable for badges, items, etc. */
.rarity-common {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: var(--fs-2xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(107, 114, 128, 0.1);
    color: var(--talence-gray-600);
}

.rarity-uncommon {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: var(--fs-2xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(16, 185, 129, 0.1);
    color: var(--talence-success);
}

.rarity-rare {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: var(--fs-2xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(96, 165, 250, 0.1);
    color: var(--talence-primary);
}

.rarity-epic {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: var(--fs-2xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(168, 85, 247, 0.1);
    color: #a855f7;
}

.rarity-legendary {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: var(--fs-2xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(245, 158, 11, 0.1);
    color: var(--talence-warning);
}

[data-bs-theme="dark"] .rarity-common {
    background: rgba(156, 163, 175, 0.15);
    color: var(--talence-gray-500);
}

[data-bs-theme="dark"] .rarity-uncommon {
    background: rgba(16, 185, 129, 0.15);
    color: var(--talence-success-light);
}

[data-bs-theme="dark"] .rarity-rare {
    background: rgba(96, 165, 250, 0.15);
    color: var(--talence-primary-light);
}

[data-bs-theme="dark"] .rarity-epic {
    background: rgba(168, 85, 247, 0.15);
    color: #c084fc;
}

[data-bs-theme="dark"] .rarity-legendary {
    background: rgba(245, 158, 11, 0.15);
    color: var(--talence-warning-light);
}

/* ====================================
   SEMANTIC DIFFICULTY SYSTEM
   ==================================== */

/* Generic difficulty indicators - reusable for challenges, courses, etc. */
.difficulty-easy {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius);
    font-size: var(--fs-xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: rgba(16, 185, 129, 0.1);
    color: var(--talence-success);
}

.difficulty-medium {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius);
    font-size: var(--fs-xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: rgba(245, 158, 11, 0.1);
    color: var(--talence-warning);
}

.difficulty-hard {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius);
    font-size: var(--fs-xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: rgba(239, 68, 68, 0.1);
    color: var(--talence-danger);
}

[data-bs-theme="dark"] .difficulty-easy {
    background: rgba(16, 185, 129, 0.15);
    color: var(--talence-success-light);
}

[data-bs-theme="dark"] .difficulty-medium {
    background: rgba(245, 158, 11, 0.15);
    color: var(--talence-warning-light);
}

[data-bs-theme="dark"] .difficulty-hard {
    background: rgba(239, 68, 68, 0.15);
    color: var(--talence-danger-light);
}

/* ====================================
   GENERIC RANKING SYSTEM
   ==================================== */

/* Generic rank badges - reusable for leaderboards, competitions, etc. */
.rank-1,
.rank-2,
.rank-3,
.rank-4,
.rank-5 {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-base);
    font-weight: 700;
    color: white;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--talence-gray-500), var(--talence-gray-600));
    box-shadow: 0 2px 8px rgba(107, 114, 128, 0.3);
}

.rank-1 { 
    background: linear-gradient(135deg, #ffd700, #ffed4e);
    color: #000;
    box-shadow: 0 2px 8px rgba(255, 215, 0, 0.3);
}

.rank-2 { 
    background: linear-gradient(135deg, #c0c0c0, #e5e5e5);
    color: #000;
    box-shadow: 0 2px 8px rgba(192, 192, 192, 0.3);
}

.rank-3 { 
    background: linear-gradient(135deg, #cd7f32, #daa520);
    color: #fff;
    box-shadow: 0 2px 8px rgba(205, 127, 50, 0.3);
}

.rank-4, 
/* ====================================
   GENERIC SOLVED ITEM INDICATOR
   ==================================== */

/* Generic class for any solved/completed item */
.solved-item {
    border-color: var(--talence-success) !important;
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.05) 0%, rgba(16, 185, 129, 0.02) 100%) !important;
}

[data-bs-theme="dark"] .solved-item {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(16, 185, 129, 0.05) 100%) !important;
}

/* ====================================
   ENHANCED PROGRESS BAR
   ==================================== */

/* Generic progress bar component */
.progress {
    height: 8px;
    background-color: var(--talence-gray-200);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

[data-bs-theme="dark"] .progress {
    background-color: var(--talence-gray-600);
}

.progress-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--talence-primary) 0%, var(--talence-primary-light) 100%);
    border-radius: var(--radius-sm);
    transition: width var(--transition-normal);
}

/* ====================================
   RESPONSIVE UTILITIES
   ==================================== */

@media (max-width: 768px) {
    .rank-1,
    .rank-2,
    .rank-3,
    .rank-4,
    .rank-5 {
        width: 28px;
        height: 28px;
        font-size: var(--fs-xs);
    }
}

/* ====================================
   AVATAR CIRCLE COMPONENT (GENERIC)
   ==================================== */

/* Generic avatar circle for user profiles, leaderboards, etc. */
.avatar-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--talence-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: var(--fs-md);
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid var(--talence-gray-200);
    transition: all var(--transition-fast);
}

[data-bs-theme="dark"] .avatar-circle {
    background: var(--talence-primary-light);
    border-color: var(--talence-gray-300);
}

.avatar-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.avatar-circle:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(96, 165, 250, 0.3);
}


/* ====================================
   COUNTRY SELECTOR COMPONENT (GENERIC)
   ==================================== */

/* Generic country selector for forms requiring country/phone prefix selection */
.country-selector {
    position: relative;
    margin-bottom: 0.5rem;
}

.selected-country {
    background: white;
    border: 1px solid var(--talence-gray-300);
    border-radius: var(--radius-lg);
    padding: 0.875rem 1rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all var(--transition-fast);
    color: var(--talence-gray-900);
}

[data-bs-theme="dark"] .selected-country {
    background-color: var(--talence-gray-150);
    border: 1px solid var(--talence-gray-200);
    color: var(--talence-gray-500);
}

.selected-country:hover {
    border: 1px solid var(--talence-primary);
    transform: translateY(-1px);
}

.selected-country:focus {
    outline: none;
    border: 1px solid var(--talence-primary);
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
}

.dropdown-options {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 1px solid var(--talence-gray-200);
    border-radius: var(--radius-lg);
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
    box-shadow: var(--shadow-xl);
    margin-top: 4px;
}

[data-bs-theme="dark"] .dropdown-options {
    background-color: var(--talence-light-slate);
    border: 1px solid var(--talence-gray-200);
}

.country-option {
    padding: 0.75rem 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all var(--transition-fast);
    color: var(--talence-gray-900);
    border-bottom: 1px solid var(--talence-gray-100);
}

[data-bs-theme="dark"] .country-option {
    color: var(--talence-gray-700);
    border-bottom-color: var(--talence-gray-600);
}

.country-option:last-child {
    border-bottom: none;
}

.country-option:hover {
    background-color: var(--talence-gray-50);
    color: var(--talence-primary);
    transform: translateX(4px);
}

[data-bs-theme="dark"] .country-option:hover {
    background-color: var(--talence-medium-slate);
    color: var(--talence-primary-light);
}

.country-flag {
    width: 24px;
    height: 16px;
    object-fit: cover;
    border-radius: 2px;
    flex-shrink: 0;
    border: 1px solid var(--talence-gray-200);
}

[data-bs-theme="dark"] .country-flag {
    border-color: var(--talence-gray-500);
}

.country-name {
    font-size: var(--fs-md);
    font-weight: 500;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .dropdown-options {
        max-height: 180px;
    }
    
    .country-option {
        padding: 0.625rem 0.875rem;
    }
    
    .country-flag {
        width: 20px;
        height: 14px;
    }
}

/* ====================================
   SCROLL TO TOP BUTTON
   ==================================== */

.scroll-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 40px;
    height: 40px;
    background: var(--talence-primary);
    border: none;
    border-radius: var(--radius-xl);
    color: white;
    font-size: var(--fs-3xl);
    cursor: pointer;
    z-index: 1040;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px) scale(0.8);
    transition: all var(--transition-normal);
    box-shadow: var(--shadow-lg);
    display: flex;
    align-items: center;
    justify-content: center;
}

.scroll-to-top:hover {
    background: var(--talence-primary-hover);
    transform: translateY(-2px) scale(1);
    box-shadow: var(--shadow-xl);
    color: white;
}

.scroll-to-top:active {
    transform: translateY(0) scale(0.95);
}

.scroll-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

/* Dark theme support */
[data-bs-theme="dark"] .scroll-to-top {
    background: var(--talence-primary);
    box-shadow: 0 10px 25px rgba(96, 165, 250, 0.2);
}

[data-bs-theme="dark"] .scroll-to-top:hover {
    background: var(--talence-primary-light);
    box-shadow: 0 15px 35px rgba(96, 165, 250, 0.3);
}

/* Responsive design */
@media (max-width: 768px) {
    .scroll-to-top {
        bottom: 20px;
        right: 20px;
        width: 45px;
        height: 45px;
        font-size: var(--fs-2xl);
    }
}

/* Smooth scroll behavior for the entire page */
html {
    scroll-behavior: smooth;
}

/* ====================================
   PAGE LOADING ANIMATION
   ==================================== */
   
   .page-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--talence-dark), var(--talence-medium-slate));
    display: flex; /* Start visible */
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 1; /* Start visible */
    visibility: visible; /* Start visible */
    transition: opacity 0.4s ease;
}

.page-loader.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.loader-content {
    text-align: center;
    color: white;
}

.loader-logo {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, var(--talence-primary-hover), var(--talence-primary));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-6xl);
    font-weight: 700;
    margin: 0 auto 1rem;
    animation: loaderPulse 1.5s ease-in-out infinite;
    color: white;
}

.loader-text {
    font-size: var(--fs-xl);
    font-weight: 500;
    color: var(--talence-gray-300);
}

@keyframes loaderPulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 20px rgba(59, 130, 246, 0.4);
    }
    50% { 
        transform: scale(1.1);
        box-shadow: 0 0 30px rgba(59, 130, 246, 0.7);
    }
}

/* ====================================
   COMPACT SIZING OVERRIDES (90% ZOOM EFFECT)
   ==================================== */

/* ---- FORMS - Narrower ---- */
/* Auth containers only - not all form pages */
.auth-container,
.login-container,
.register-container {
    max-width: 420px !important;
    margin: 0 auto;
}

.login-form,
.register-form,
.auth-form {
    max-width: 400px !important;
    margin: 0 auto;
}

/* Settings/Profile forms - slightly wider */
.settings-form,
.profile-form {
    max-width: 600px;
}

/* ---- BUTTONS - Smaller globally ---- */
.btn {
    padding: 0.5rem 1rem;
    font-size: var(--fs-base);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
}

.btn i {
    font-size: var(--fs-md);
    line-height: 1;
}

.btn-sm {
    padding: 0.35rem 0.75rem;
    font-size: var(--fs-xs);
}

.btn-lg {
    padding: 0.625rem 1.25rem;
    font-size: var(--fs-md);
}

/* ---- COURSE CARDS - Compact ---- */
.course-card .card-img-top {
    height: 160px !important;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.course-card:hover .card-img-top {
    transform: scale(1.05);
}

.course-card .card-body {
    padding: 1rem !important;
    text-align: left !important;
}

.course-card .card-title {
    font-size: var(--fs-md) !important;
    margin-bottom: 0.5rem !important;
    line-height: 1.3 !important;
}

.course-card .card-text {
    font-size: var(--fs-sm) !important;
    line-height: 1.5 !important;
    margin-bottom: 0.625rem !important;
}

.course-card .btn {
    padding: 0.4rem 0.75rem !important;
    font-size: var(--fs-xs) !important;
}

.course-card .badge {
    font-size: var(--fs-2xs) !important;
    padding: 0.25rem 0.4rem !important;
}

/* ---- STATS/ACTION CARDS - Smaller ---- */
.row.g-4 > [class*="col"] > .card {
    min-height: auto !important;
}

.row.g-4 .card-body {
    padding: 0.875rem !important;
}

.row.g-4 .card-icon,
.card-icon {
    width: 36px !important;
    height: 36px !important;
    font-size: var(--fs-md) !important;
    margin-bottom: 0.5rem !important;
}

.row.g-4 .card-body h5,
.row.g-4 .card-body h6 {
    font-size: var(--fs-md) !important;
    margin-bottom: 0.375rem !important;
}

.row.g-4 .card-body p {
    font-size: var(--fs-xs) !important;
}

/* ---- COURSE GRID - 4 columns on lg screens ---- */
@media (min-width: 992px) {
    .course-section-container .row > .col-lg-4,
    #allCoursesList > .col-lg-4,
    #featuredCoursesList > .col-lg-4 {
        flex: 0 0 auto;
        width: 25%;
    }
}

/* ---- COL-XL-8 width override ---- */
@media (min-width: 1200px) {
    .col-xl-8 {
        flex: 0 0 auto;
        width: 55%;
    }
}

/* ---- HERO/CTA BUTTONS ---- */
.hero-section .btn,
.hero-buttons .btn,
.cta-section .btn {
    padding: 0.5rem 1.1rem !important;
    font-size: var(--fs-sm) !important;
}

/* ---- MISC COMPACT ELEMENTS ---- */
.alert {
    padding: 0.625rem 0.875rem !important;
}

.badge {
    font-size: var(--fs-xs);
    padding: 0.3rem 0.5rem;
}

.modal-header {
    padding: 0.75rem 1rem;
}

.modal-body {
    padding: 1rem;
}

.modal-footer {
    padding: 0.75rem 1rem;
}

.pagination .page-link {
    padding: 0.35rem 0.65rem;
    font-size: var(--fs-sm);
}

/* ---- FIX: Button icon + text alignment ---- */
.btn > i,
.btn > .fas,
.btn > .far,
.btn > .fab {
    display: inline-flex;
    align-items: center;
    margin-right: 0.25rem;
}

/* Ensure proper vertical centering for all button content */
.btn {
    vertical-align: middle;
    line-height: 1.4;
}

/* ============================================
   TYPOGRAPHY SYSTEM - Using CSS Variables
   All font sizes use --fs-* variables from :root
   Adjust variables in :root to scale entire UI
   ============================================ */

/* === BASE ELEMENTS === */
body {
    font-size: var(--fs-base);
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
    font-size: var(--fs-md);
}

b, strong {
    font-weight: 600;
    font-size: inherit;
}

small, .small {
    font-size: var(--fs-sm);
}

/* === HEADINGS === */
h1, .h1 { font-size: var(--fs-6xl); }
h2, .h2 { font-size: var(--fs-5xl); }
h3, .h3 { font-size: var(--fs-4xl); }
h4, .h4 { font-size: var(--fs-3xl); }
h5, .h5 { font-size: var(--fs-2xl); }
h6, .h6 { font-size: var(--fs-xl); }

/* === BOOTSTRAP UTILITIES === */
.fs-1 { font-size: var(--fs-6xl) !important; }
.fs-2 { font-size: var(--fs-5xl) !important; }
.fs-3 { font-size: var(--fs-4xl) !important; }
.fs-4 { font-size: var(--fs-3xl) !important; }
.fs-5 { font-size: var(--fs-2xl) !important; }
.fs-6 { font-size: var(--fs-xl) !important; }

.lead { font-size: var(--fs-xl); }
.text-muted { font-size: var(--fs-sm); }

/* === TEXT CONTENT BLOCKS === */
.text-content {
    font-size: var(--fs-md);
}

.text-content p,
.text-content li {
    font-size: var(--fs-sm);
}

/* === CARDS === */
.card-title { font-size: var(--fs-lg); }
.card-text { font-size: var(--fs-base); }

/* === NAVIGATION === */
.nav-link { font-size: var(--fs-md); }
.dropdown-item { font-size: var(--fs-base); }
.breadcrumb-item { font-size: var(--fs-sm); }

/* === LISTS === */
.list-group-item { font-size: var(--fs-base); }

/* === TABLES === */
.table > :not(caption) > * > * {
    font-size: var(--fs-base) !important;
}

/* === ALERTS & BADGES === */
.alert { font-size: var(--fs-base); }
.badge { font-size: var(--fs-xs); }

/* === MODALS === */
.modal-title { font-size: var(--fs-xl); }
.modal-body { font-size: var(--fs-md); }

/* === FORMS === */
.form-label { font-size: var(--fs-base); }
.form-control { font-size: var(--fs-md); }
.form-select { font-size: var(--fs-md); }
.form-check-label { font-size: var(--fs-base); }
.form-text { font-size: var(--fs-sm); }
button, input, optgroup, select, textarea {
    font-size: var(--fs-md);
}

/* === UTILITY CLASSES === */
.activity-item { font-size: var(--fs-sm); }

/* === ACCORDION === */
.accordion-button { font-size: var(--fs-md); }
.accordion-body { font-size: var(--fs-md); }

/* === TABS & PILLS === */
.nav-tabs .nav-link,
.nav-pills .nav-link {
    font-size: var(--fs-base);
}

/* === TOOLTIPS & POPOVERS === */
.tooltip { font-size: var(--fs-xs); }
.popover { font-size: var(--fs-sm); }

/* === PAGINATION === */
.pagination .page-link {
    font-size: var(--fs-base);
}

/* === PROGRESS === */
.progress-bar { font-size: var(--fs-2xs); }

/* === TOAST === */
.toast { font-size: var(--fs-sm); }

/* === LANDING PAGE === */

/* Landing Hero Section */
.landing-hero {
    background: linear-gradient(135deg, #296DC2 0%, #d4272c 100%);
    color: white;
    padding: 100px 0 80px 0;
    position: relative;
    overflow: hidden;
}

/* Add floating shield background animation */
.landing-hero::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 85vmin;
    height: 85vmin;
    max-width: 1100px;
    max-height: 1100px;
    min-width: 280px;
    min-height: 280px;
    background: url('talence-hero.png') no-repeat center center;
    background-size: contain;
    opacity: 0.06;
    transform: translate(-50%, -50%);
    z-index: 1;
    filter: brightness(1.4) contrast(1.2) drop-shadow(0 0 20px rgba(59, 130, 246, 0.3));
    animation: heroShieldFloat 25s ease-in-out infinite;
    pointer-events: none;
}

/* Shield animation keyframes */
@keyframes heroShieldFloat {
    0%, 100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.06;
        filter: brightness(1.4) contrast(1.2) drop-shadow(0 0 20px rgba(59, 130, 246, 0.3));
    }
    25% {
        transform: translate(-49.5%, -51%) scale(1.015);
        opacity: 0.065;
        filter: brightness(1.45) contrast(1.25) drop-shadow(0 0 22px rgba(59, 130, 246, 0.35));
    }
    50% {
        transform: translate(-50%, -49%) scale(0.99);
        opacity: 0.07;
        filter: brightness(1.5) contrast(1.3) drop-shadow(0 0 25px rgba(59, 130, 246, 0.4));
    }
    75% {
        transform: translate(-50.5%, -50%) scale(1.01);
        opacity: 0.065;
        filter: brightness(1.45) contrast(1.25) drop-shadow(0 0 22px rgba(59, 130, 246, 0.35));
    }
}

/* Responsive shield sizing */
@media (min-width: 1440px) {
    .landing-hero::after {
        width: 90vmin;
        height: 90vmin;
        max-width: 1300px;
        max-height: 1300px;
    }
}

@media (min-width: 1920px) {
    .landing-hero::after {
        width: 95vmin;
        height: 95vmin;
        max-width: 1500px;
        max-height: 1500px;
    }
}

.landing-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="80" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="40" cy="70" r="1" fill="rgba(255,255,255,0.05)"/><circle cx="90" cy="10" r="1" fill="rgba(255,255,255,0.05)"/></svg>') repeat;
}

.landing-hero-content {
    min-height: 75vh;
}

.hero-text-content {
    position: relative;
    z-index: 2;
}

.hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--talence-primary-lighter);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 20px;
    padding: 6px 16px;
    border: 1px solid rgba(147, 197, 253, 0.3);
    border-radius: 999px;
    background: rgba(96, 165, 250, 0.12);
}

.hero-tag i {
    color: var(--talence-primary-lighter);
}

.landing-hero-title {
    font-size: 2.5rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 1.5rem;
    color: #ffffff !important;
}

.landing-hero-subtitle {
    font-size: var(--fs-xl);
    opacity: 0.95;
    margin-bottom: 2rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.9) !important;
}

.landing-hero-actions {
    margin-bottom: 3rem;
}

.landing-hero-actions .btn {
    margin-right: 1rem;
    margin-bottom: 1rem;
    padding: 12px 24px;
    height: 57px;
    font-weight: 600;
    border-radius: var(--radius-lg);
}

.landing-hero-actions .btn-primary,
.landing-cta-actions .btn-primary,
.cta-actions .btn-primary {
    border: 1px solid rgba(147, 197, 253, 0.45);
    position: relative;
    overflow: hidden;
}

.landing-hero-actions .btn-primary::before,
.landing-cta-actions .btn-primary::before,
.cta-actions .btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.landing-hero-actions .btn-primary:hover::before,
.landing-cta-actions .btn-primary:hover::before,
.cta-actions .btn-primary:hover::before {
    left: 100%;
}

.landing-hero-actions .btn-primary:hover,
.landing-cta-actions .btn-primary:hover,
.cta-actions .btn-primary:hover {
    background: var(--talence-primary);
    border-color: var(--talence-primary-lighter);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(96, 165, 250, 0.4);
    color: white;
}

/* Landing Stats Row */
.landing-stats-row {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
}

.landing-stat-item {
    text-align: center;
    min-width: 6rem;
}

.landing-stat-item:first-child {
    min-width: 7.5rem;
}

.stat-number {
    color: var(--talence-gray-600) !important;
}

[data-bs-theme="dark"] .stat-number {
    color: var(--talence-gray-700);
}

.landing-stat-number {
    display: block;
    font-size: 2rem;
    font-weight: 700;
    color: #ffffff;
    font-variant-numeric: tabular-nums;
}

.landing-stat-label {
    font-size: 0.9rem;
    opacity: 0.8;
    color: rgba(255, 255, 255, 0.8);
}

/* Landing Hero Visual */
.landing-hero-visual {
    position: relative;
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-visual-card {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 16px;
    padding: 2rem;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #ffffff;
    font-weight: 500;
    font-size: 0.9rem;
}

.hero-main-card {
    max-width: 300px;
}

.hero-floating-card,
.hero-floating-card-2 {
    position: absolute;
    padding: 1rem;
    min-width: 180px;
    animation: heroFloat 6s ease-in-out infinite;
}

.hero-floating-card {
    top: 20px;
    right: 20px;
    animation-delay: -2s;
}

.hero-floating-card-2 {
    bottom: 20px;
    left: 20px;
    animation-delay: -4s;
}

@keyframes heroFloat {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

.hero-visual-title {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 1.25rem;
    margin-bottom: 1rem;
}

/* Fix for floating card icons positioning */
.hero-floating-card .card-icon,
.hero-floating-card-2 .card-icon {
    font-size: 1.4rem;
    margin-right: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    vertical-align: middle;
}

/* Landing Section Headers */
.landing-section-header {
    margin-bottom: 2rem;
}

/* Testimonial Cards */
.testimonial-card {
    background: var(--talence-gray-50);
    border: 1px solid var(--talence-gray-200);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.testimonial-content {
    flex: 1;
    margin-bottom: 1rem;
}

.testimonial-content p {
    color: var(--talence-gray-700);
    font-style: italic;
    line-height: 1.6;
    margin-bottom: 0;
}

[data-bs-theme="dark"] .testimonial-content p {
    color: var(--talence-gray-600);
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--talence-gray-200);
}

[data-bs-theme="dark"] .testimonial-author {
    border-color: var(--talence-gray-500);
}

.testimonial-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--talence-primary-lighter), var(--talence-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.testimonial-info {
    display: flex;
    flex-direction: column;
}

.testimonial-info strong {
    color: var(--talence-gray-900);
    font-size: 0.95rem;
}

[data-bs-theme="dark"] .testimonial-info strong {
    color: var(--talence-gray-800);
}

.testimonial-info span {
    color: var(--talence-gray-500) !important;
    font-size: 0.85rem;
}

.testimonial-compact {
    padding: 1.25rem;
}

.testimonial-compact .testimonial-content p {
    font-size: 0.95rem;
}

.testimonial-compact .testimonial-author {
    padding-top: 0.75rem;
}

.testimonial-compact .testimonial-avatar {
    display: none;
}

/* Landing CTA Section */
.landing-cta {
    background:
        linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px),
        radial-gradient(ellipse 60% 80% at 50% 50%, rgba(96, 165, 250, 0.15) 0%, transparent 70%),
        linear-gradient(135deg, var(--talence-primary) 0%, var(--talence-primary-dark) 100%);
    background-size: 32px 32px, 32px 32px, 100% 100%, 100% 100%;
    color: white;
    padding: 80px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.landing-cta-content {
    position: relative;
    z-index: 2;
}

.landing-cta-title {
    font-size: 1.7rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #ffffff !important;
}

.landing-cta-subtitle {
    font-size: 1rem;
    opacity: 0.9;
    margin-bottom: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    color: rgba(255, 255, 255, 0.9);
}

.landing-cta-actions .btn {
    margin: 0.5rem;
    padding: 12px 24px;
    height: 55px;
    font-size: var(--fs-lg);
    font-weight: 600;
    border-radius: var(--radius-lg);
}

@media (max-width: 768px) {
    .landing-hero-title {
        font-size: 2.5rem;
    }

    .landing-hero-subtitle {
        font-size: 1.1rem;
    }

    .landing-stats-row {
        justify-content: center;
    }

    .landing-cta-title {
        font-size: 2rem;
    }

    .landing-hero-actions .btn,
    .landing-cta-actions .btn {
        display: block;
        width: 100%;
        margin: 0.5rem 0;
        height: 55px;
        border-radius: var(--radius-lg);
    }

    .landing-hero-visual {
        height: 300px;
        margin-top: 2rem;
    }

    .hero-main-card {
        max-width: 250px;
    }

    .hero-floating-card,
    .hero-floating-card-2 {
        min-width: 150px;
        padding: 0.75rem;
    }
}

/* === RESPONSIVE ADJUSTMENTS === */
@media (min-width: 1200px) {
    h1, .h1 { font-size: var(--fs-7xl); }
    h2, .h2 { font-size: var(--fs-5xl); }
    h3, .h3 { font-size: var(--fs-4xl); }
    h4, .h4 { font-size: var(--fs-3xl); }
}

/* ============================================
   FAQ PAGE STYLES
   ============================================ */

/* Nav Pills - Force 2-row layout using CSS Grid */
#categoryTabs.nav {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0.4rem !important;
    width: 100% !important;
}

/* Last 3 items on second row - centered */
#categoryTabs.nav .nav-item:nth-child(5),
#categoryTabs.nav .nav-item:nth-child(6),
#categoryTabs.nav .nav-item:nth-child(7) {
    grid-column: span 1;
}

/* Center the second row (3 items in 4-column grid) */
#categoryTabs.nav .nav-item:nth-child(5) {
    grid-column: 1 / 2;
    margin-left: calc(50% / 4);
}

/* Nav link styling - match profile page pills */
#categoryTabs.nav .nav-link {
    font-size: var(--fs-base) !important;
    padding: 0.5rem 0.75rem !important;
    white-space: nowrap !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
}

#categoryTabs.nav .nav-link i {
    font-size: var(--fs-sm) !important;
    margin-right: 0.3rem !important;
}

/* FAQ Accordion body */
.faq-accordion-body,
.accordion-body {
    padding: 1rem 1.5rem;
    background: var(--talence-gray-50);
    color: var(--talence-gray-700);
    line-height: 1.6;
    border-top: 1px solid var(--talence-gray-200);
    font-size: var(--fs-md);
}

/* ============================================
   CTA ACTION SECTIONS (FAQ, Legal pages)
   ============================================ */

/* Centered card container */
.card-centered {
    width: 70%;
    margin: 0 auto;
}

@media (max-width: 1200px) {
    .card-centered {
        width: 85%;
    }
}

@media (max-width: 768px) {
    .card-centered {
        width: 100%;
    }
}

/* CTA section container - text left, buttons right */
.card > .card-body > .row.align-items-center > .col-md-8,
.highlight-box > .row.align-items-center > .col-md-8 {
    text-align: left !important;
}

.card > .card-body > .row.align-items-center > .col-md-8 h6,
.card > .card-body > .row.align-items-center > .col-md-8 p,
.card > .card-body > .row.align-items-center > .col-md-8 small,
.highlight-box > .row.align-items-center > .col-md-8 .section-title,
.highlight-box > .row.align-items-center > .col-md-8 .section-subtitle,
.highlight-box > .row.align-items-center > .col-md-8 p {
    text-align: left !important;
}

/* CTA buttons - unified size, no text wrap */
.highlight-box .d-flex.flex-column .btn,
.highlight-box .d-flex.flex-column.gap-2 .btn,
.card-body .d-flex.flex-column.gap-2 .btn,
.card-body .row.align-items-center .col-md-4 > .btn {
    padding: 0.5rem 1.25rem !important;
    font-size: var(--fs-base) !important;
    min-width: 200px !important;
    white-space: nowrap !important;
}

/* Button container - right aligned */
.highlight-box .d-flex.flex-column,
.highlight-box .d-flex.flex-column.gap-2,
.card-body .d-flex.flex-column.gap-2 {
    align-items: flex-end !important;
}

/* Feature summary cards (Terms, Privacy, etc.) - preserve centering */
.card.text-center .card-body {
    text-align: center !important;
}

.card.text-center .card-body .card-title,
.card.text-center .card-body .card-text {
    text-align: center !important;
}

/* Feature card icons - compact on all screens */
.text-content .card-icon,
.row.g-4 .card-icon {
    width: 40px !important;
    height: 40px !important;
    font-size: var(--fs-lg) !important;
    margin-bottom: 0.75rem !important;
}

/* Feature card row - constrain width */
.text-content .row.g-4 {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Feature card body - compact padding */
.text-content .card.text-center .card-body {
    padding: 0.875rem !important;
}

.text-content .card.text-center .card-title {
    font-size: var(--fs-md) !important;
    margin-bottom: 0.25rem !important;
}

.text-content .card.text-center .card-text {
    font-size: var(--fs-sm) !important;
    margin-bottom: 0 !important;
}

@media (max-width: 992px) {
    #categoryTabs.nav {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    #categoryTabs.nav .nav-item:nth-child(5) {
        margin-left: 0;
    }
    
    .highlight-box .d-flex.flex-column,
    .card-body .d-flex.flex-column.gap-2 {
        align-items: stretch !important;
    }
    
    .highlight-box .d-flex.flex-column .btn,
    .card-body .d-flex.flex-column.gap-2 .btn {
        max-width: 100% !important;
        min-width: auto !important;
    }
    
    /* Stack CTA on mobile */
    .card > .card-body > .row.align-items-center > .col-md-8,
    .highlight-box > .row.align-items-center > .col-md-8 {
        text-align: center !important;
        margin-bottom: 1rem;
    }
    
    .card > .card-body > .row.align-items-center > .col-md-8 h6,
    .card > .card-body > .row.align-items-center > .col-md-8 p,
    .card > .card-body > .row.align-items-center > .col-md-8 small {
        text-align: center !important;
    }
}

@media (max-width: 576px) {
    #categoryTabs.nav {
        grid-template-columns: 1fr !important;
    }
}

/* ==============================================
   BLOG MODULE STYLES
   Merged from blog/assets/css/blog.css
   ============================================== */

/* ============================================
   SEARCH FORM IN HEADER
   Light style only (header always gradient)
   FIXED: No vertical movement on focus
   ============================================ */

.blog-search-form .input-group {
    display: flex;
    align-items: stretch;
}

.blog-search-form .form-control {
    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-right: none !important;
    color: #fff !important;
    padding: 0.5rem 1rem !important;
    height: 42px !important;
    border-radius: 6px 0 0 6px !important;
    font-size: 0.9rem;
    line-height: 1.5 !important;
    box-sizing: border-box !important;
    /* Prevent vertical movement on focus */
    margin: 0 !important;
    transform: none !important;
    transition: background 0.2s ease, border-color 0.2s ease !important;
}

.blog-search-form .form-control::placeholder {
    color: rgba(255, 255, 255, 0.7) !important;
}

.blog-search-form .form-control:focus {
    background: rgba(255, 255, 255, 0.2) !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    border-right: none !important;
    color: #fff !important;
    box-shadow: none !important;
    outline: none !important;
    height: 42px !important;
    padding: 0.5rem 1rem !important;
    /* Prevent any vertical movement */
    margin: 0 !important;
    transform: none !important;
}

.blog-search-form .btn {
    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-left: none !important;
    color: #fff !important;
    padding: 0.5rem 1rem !important;
    height: 42px !important;
    border-radius: 0 6px 6px 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box !important;
}

.blog-search-form .btn:hover,
.blog-search-form .btn:focus {
    background: rgba(255, 255, 255, 0.25) !important;
    color: #fff !important;
}

/* ============================================
   BREADCRUMB BAR BELOW HEADER
   ============================================ */

.blog-breadcrumb-bar {
    background: var(--talence-gray-100, #f8fafc);
    padding: 1rem 0;
    border-bottom: 1px solid var(--talence-gray-200, #e2e8f0);
}

[data-bs-theme="dark"] .blog-breadcrumb-bar {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(51, 65, 85, 0.4);
}

.blog-breadcrumb-bar .breadcrumb {
    margin-bottom: 0;
    background: transparent;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1.6;
}

.blog-breadcrumb-bar .breadcrumb-item {
    font-size: 0.95rem;
}

.blog-breadcrumb-bar .breadcrumb-item a {
    color: var(--talence-primary, #3b82f6);
    text-decoration: none;
}

.blog-breadcrumb-bar .breadcrumb-item a:hover {
    text-decoration: underline;
}

/* Home icon in breadcrumb */
.blog-breadcrumb-bar .breadcrumb-item a .bi-house {
    margin-left: 0.7rem;
    margin-right: 0.5rem;
    font-size: 0.95rem;
}

.blog-breadcrumb-bar .breadcrumb-item.active {
    color: var(--talence-gray-600, #475569);
}

[data-bs-theme="dark"] .blog-breadcrumb-bar .breadcrumb-item.active {
    color: var(--talence-gray-500, #94a3b8);
}

.blog-breadcrumb-bar .breadcrumb-item + .breadcrumb-item::before {
    color: var(--talence-gray-400, #94a3b8);
}

/* ============================================
   CONTENT SECTION
   ============================================ */

.blog-content {
    padding: 2rem 0 3rem;
}

/* ============================================
   BLOG CARDS
   ============================================ */

.blog-card-link {
    display: block;
    text-decoration: none;
    height: 100%;
}

.blog-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--talence-gray-200, #e2e8f0);
}

.blog-card-link:hover .blog-card {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
    border-color: var(--talence-primary, #3b82f6);
}

[data-bs-theme="dark"] .blog-card {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(51, 65, 85, 0.4);
}

[data-bs-theme="dark"] .blog-card-link:hover .blog-card {
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4);
    border-color: var(--talence-primary, #60a5fa);
}

.blog-card-image {
    display: block;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--talence-gray-200, #e2e8f0);
}

.blog-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.blog-card-link:hover .blog-card-image img {
    transform: scale(1.05);
}

.blog-card-body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.blog-card-category {
    display: inline-block;
    width: fit-content;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #fff;
    background: var(--talence-primary, #3b82f6);
    margin-bottom: 0.5rem;
    padding: 0.2rem 0.6rem;
    border-radius: 2rem;
}

[data-bs-theme="dark"] .blog-card-category {
    background: #60a5fa;
    color: #fff;
}

.blog-card-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 0.5rem;
    color: var(--talence-gray-900, #0f172a);
}

.blog-card-link:hover .blog-card-title {
    color: var(--talence-primary, #3b82f6);
}

[data-bs-theme="dark"] .blog-card-title {
    color: var(--talence-gray-700, #e2e8f0);
}

.blog-card-excerpt {
    color: var(--talence-gray-600, #475569);
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 0.75rem;
    flex: 1;
    /* Limit to 3 lines with ellipsis */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

[data-bs-theme="dark"] .blog-card-excerpt {
    color: var(--talence-gray-500, #94a3b8);
}

.blog-card-meta {
    display: flex;
    gap: 1rem;
    font-size: 0.75rem;
    color: var(--talence-gray-500, #64748b);
    padding-top: 0.75rem;
    border-top: 1px solid var(--talence-gray-200, #e2e8f0);
    margin-top: auto;
}

[data-bs-theme="dark"] .blog-card-meta {
    border-color: rgba(51, 65, 85, 0.4);
}

.blog-card-meta i {
    margin-right: 0.25rem;
}

/* ============================================
   SINGLE POST ARTICLE
   ============================================ */

.post-article {
    background: #fff;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--talence-gray-200, #e2e8f0);
}

[data-bs-theme="dark"] .post-article {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(51, 65, 85, 0.4);
}

.post-featured-image {
    max-height: 350px;
    overflow: hidden;
    border-radius: 8px;
}

.post-featured-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 8px;
}

.post-body {
    font-size: 0.9rem;
    line-height: 1.7;
    color: var(--talence-gray-800, #1e293b);
}

[data-bs-theme="dark"] .post-body {
    color: var(--talence-gray-600, #cbd5e1);
}

.post-body h2 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}

.post-body h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-top: 1.15rem;
    margin-bottom: 0.5rem;
}

.post-body p {
    margin-bottom: 1.25rem;
}

.post-body a {
    color: var(--talence-primary, #3b82f6);
}

.post-body img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 1.5rem 0;
}

.post-body pre {
    background: #1e293b;
    color: #e2e8f0;
    padding: 1rem 1.25rem;
    border-radius: 8px;
    overflow-x: auto;
    margin: 1.5rem 0;
}

.post-body code {
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 0.9em;
}

.post-body :not(pre) > code {
    background: var(--talence-gray-100, #f1f5f9);
    padding: 0.2em 0.4em;
    border-radius: 4px;
    color: #e11d48;
}

[data-bs-theme="dark"] .post-body :not(pre) > code {
    background: var(--talence-gray-300, #475569);
    color: #fb7185;
}

.post-body blockquote {
    border-left: 4px solid var(--talence-primary, #3b82f6);
    padding-left: 1.5rem;
    margin: 1.5rem 0;
    color: var(--talence-gray-600, #475569);
    font-style: italic;
}

.post-body ul,
.post-body ol {
    margin-bottom: 1.25rem;
    padding-left: 1.5rem;
}

.post-body li {
    margin-bottom: 0.5rem;
}

.post-body table {
    width: 100%;
    margin: 1.5rem 0;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--radius-lg, 12px);
    overflow: hidden;
    border: 1px solid var(--talence-gray-200, #e2e8f0);
}

.post-body th,
.post-body td {
    padding: 0.75rem;
    border: 1px solid var(--talence-gray-200, #e2e8f0);
    border-top: none;
    border-left: none;
    text-align: left;
}

.post-body tr td:last-child,
.post-body tr th:last-child {
    border-right: none;
}

.post-body tr:last-child td {
    border-bottom: none;
}

.post-body th {
    background: var(--talence-gray-100, #f8fafc);
    font-weight: 600;
}

[data-bs-theme="dark"] .post-body table {
    border-color: rgba(51, 65, 85, 0.4);
}

[data-bs-theme="dark"] .post-body th {
    background: rgba(30, 41, 59, 0.7);
}

[data-bs-theme="dark"] .post-body th,
[data-bs-theme="dark"] .post-body td {
    border-color: rgba(51, 65, 85, 0.4);
}

/* Post meta in header */
.post-meta-header {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    color: rgba(255, 255, 255, 0.9);
    margin-top: 0.5rem;
    margin-left: 1.1rem;
    font-size: 0.9rem;
}

.post-meta-header span i {
    margin-right: 0.5rem;
}

/* ============================================
   TAGS
   ============================================ */

.tag-link {
    display: inline-block;
    padding: 0.4rem 0.65rem;
    background: var(--talence-gray-100, #f1f5f9);
    color: var(--talence-gray-700, #334155);
    border-radius: 2rem;
    font-size: 0.8rem;
    text-decoration: none;
    margin: 0;
    transition: background 0.2s ease, color 0.2s ease;
}

.tag-link:hover,
.tag-link.active {
    background: var(--talence-primary, #3b82f6);
    color: #fff;
}

[data-bs-theme="dark"] .tag-link {
    background: rgba(51, 65, 85, 0.4);
    color: var(--talence-gray-600, #cbd5e1);
}

[data-bs-theme="dark"] .tag-link:hover,
[data-bs-theme="dark"] .tag-link.active {
    background: var(--talence-primary, #60a5fa);
    color: #fff;
}

/* ============================================
   SHARE BUTTONS
   ============================================ */

.post-share {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.post-share-label {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--talence-gray-700, #334155);
    margin-right: 0.25rem;
}

.post-share-label i {
    margin-right: 0.4rem;
    font-size: 1rem;
}

[data-bs-theme="dark"] .post-share-label {
    color: var(--talence-gray-600, #94a3b8);
}

.post-share .btn {
    width: 35px;
    height: 35px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 8px;
    background: var(--talence-gray-100, #f1f5f9);
    border: 1px solid var(--talence-gray-200, #e2e8f0);
    color: var(--talence-gray-600, #475569);
    transition: all 0.2s ease;
    line-height: 1;
    font-size: 0.85rem;
}

.post-share .btn i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    margin: 0;
    padding: 0;
    text-align: center;
    font-size: 0.85rem;
    line-height: 1;
}

.post-share .btn:hover {
    background: #60a5fa;
    border-color: #60a5fa;
    color: #fff;
}

[data-bs-theme="dark"] .post-share .btn {
    background: rgba(51, 65, 85, 0.4);
    border-color: rgba(51, 65, 85, 0.4);
    color: var(--talence-gray-500, #94a3b8);
}

[data-bs-theme="dark"] .post-share .btn:hover {
    background: #60a5fa;
    border-color: #60a5fa;
    color: #fff;
}

/* ============================================
   AUTHOR BOX
   ============================================ */

.author-box {
    background: var(--talence-gray-50, #f8fafc);
    padding: 1.5rem;
    border-radius: 8px;
}

[data-bs-theme="dark"] .author-box {
    background: rgba(30, 41, 59, 0.7);
    border-color: rgba(51, 65, 85, 0.4);
}

.author-box .avatar-placeholder {
    width: 64px;
    height: 64px;
    background: var(--talence-primary, #3b82f6);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ============================================
   RELATED POSTS
   ============================================ */

.related-post-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    height: 100%;
    border: 1px solid var(--talence-gray-200, #e2e8f0);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.related-post-card:hover {
    border-color: var(--talence-primary, #3b82f6);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

[data-bs-theme="dark"] .related-post-card {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(51, 65, 85, 0.4);
}

[data-bs-theme="dark"] .related-post-card:hover {
    border-color: var(--talence-primary, #60a5fa);
}

.related-post-image {
    display: block;
    aspect-ratio: 16/10;
    overflow: hidden;
}

.related-post-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.related-post-content {
    padding: 1rem;
}

.related-post-content h5 {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    line-height: 1.4;
}

.related-post-content h5 a {
    color: var(--talence-gray-900, #0f172a);
    text-decoration: none;
}

.related-post-content h5 a:hover {
    color: var(--talence-primary, #3b82f6);
}

[data-bs-theme="dark"] .related-post-content h5 a {
    color: var(--talence-gray-700, #e2e8f0);
}

/* ============================================
   SIDEBAR WIDGETS
   ============================================ */

.blog-sidebar {
    position: sticky;
    top: 2rem;
}

.sidebar-widget {
    background: #fff;
    border-radius: 12px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border: 1px solid var(--talence-gray-200, #e2e8f0);
}

[data-bs-theme="dark"] .sidebar-widget {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(51, 65, 85, 0.4);
}

.widget-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 1.2rem;
    color: var(--talence-gray-900, #1e293b);
    padding-bottom: 0.75rem;
    border-bottom: none;
    position: relative;
}

.widget-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background: linear-gradient(90deg, var(--talence-primary), var(--talence-primary-hover, #60a5fa));
    border-radius: 2px;
}

.widget-title i {
    color: var(--talence-gray-600, #475569);
}

[data-bs-theme="dark"] .widget-title {
    color: var(--talence-gray-800, #e2e8f0);
}

[data-bs-theme="dark"] .widget-title i {
    color: var(--talence-gray-500, #94a3b8);
}

.category-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.category-list li {
    margin-bottom: 1px;
}

.category-list li.active a {
    color: var(--talence-primary, #3b82f6);
    font-weight: 600;
}

.category-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--talence-gray-700, #334155);
    text-decoration: none;
    padding: 0.625rem 0.5rem;
    margin: 0 -0.5rem;
    border-bottom: 1px solid var(--talence-gray-200, #e2e8f0);
    border-radius: 0;
    transition: color 0.2s ease, background 0.2s ease, padding-left 0.2s ease, border-radius 0.2s ease;
}

.category-list li:last-child a {
    border-bottom: none;
}

.category-list a:hover {
    color: var(--talence-primary, #3b82f6);
    background: var(--talence-gray-100, #f1f5f9);
    padding-left: 0.75rem;
    border-radius: 4px;
}

[data-bs-theme="dark"] .category-list a {
    color: var(--talence-gray-600, #cbd5e1);
    border-color: var(--talence-gray-300, #475569);
}

[data-bs-theme="dark"] .category-list a:hover {
    background: var(--talence-gray-200, #334155);
}

.category-list .count {
    background: var(--talence-gray-100, #f1f5f9);
    padding: 0.125rem 0.5rem;
    border-radius: 1rem;
    font-size: 0.75rem;
    color: var(--talence-gray-500, #64748b);
}

[data-bs-theme="dark"] .category-list .count {
    background: var(--talence-gray-300, #475569);
    color: var(--talence-gray-500, #94a3b8);
}

.tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

/* Recent Posts Widget */
.recent-post-item {
    display: block;
    text-decoration: none;
    padding: 0.625rem 0.5rem;
    margin: 0 -0.5rem;
    margin-bottom: 1px;
    border-bottom: 1px solid var(--talence-gray-200, #e2e8f0);
    border-radius: 0;
    transition: background 0.2s ease, border-radius 0.2s ease;
}

.recent-post-item:hover {
    background: var(--talence-gray-100, #f1f5f9);
    border-radius: 4px;
}

.recent-post-item-inner {
    display: flex;
    gap: 0.75rem;
}

.recent-post-item:last-child {
    border-bottom: none;
    padding-bottom: 0.5rem;
}

.recent-post-item:first-child {
    padding-top: 0.5rem;
}

[data-bs-theme="dark"] .recent-post-item {
    border-color: var(--talence-gray-300, #475569);
}

[data-bs-theme="dark"] .recent-post-item:hover {
    background: var(--talence-gray-200, #334155);
}

.recent-post-thumb {
    width: 60px;
    height: 45px;
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--talence-gray-200, #e2e8f0);
}

.recent-post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.recent-post-info h6 {
    font-size: 0.85rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
    line-height: 1.3;
    color: var(--talence-gray-800, #1e293b);
}

.recent-post-item:hover .recent-post-info h6 {
    color: var(--talence-primary, #3b82f6);
}

[data-bs-theme="dark"] .recent-post-info h6 {
    color: var(--talence-gray-600, #cbd5e1);
}

[data-bs-theme="dark"] .recent-post-item:hover .recent-post-info h6 {
    color: var(--talence-primary, #60a5fa);
}

.recent-post-info small {
    color: var(--talence-gray-500, #64748b);
    font-size: 0.75rem;
}

/* CTA Widget */
.cta-widget {
    background: linear-gradient(135deg, var(--talence-primary) 0%, var(--talence-primary-dark) 100%) !important;
    color: #fff !important;
    border: none !important;
}

.cta-widget .widget-title {
    color: #fff !important;
}

.cta-widget p {
    opacity: 0.9;
    margin-bottom: 1rem;
    color: rgba(255, 255, 255, 0.9);
}

/* ============================================
   NO POSTS MESSAGE
   ============================================ */

.no-posts-message {
    text-align: center;
    padding: 4rem 2rem;
    background: #fff;
    border-radius: 12px;
    color: var(--talence-gray-500, #64748b);
    border: 1px solid var(--talence-gray-200, #e2e8f0);
}

[data-bs-theme="dark"] .no-posts-message {
    background: var(--talence-gray-100, #1e293b);
    border-color: rgba(75, 85, 99, 0.3);
}

.no-posts-message i {
    color: var(--talence-gray-400, #94a3b8);
}

.no-posts-message h3 {
    color: var(--talence-gray-600, #475569);
    margin-bottom: 0.5rem;
}

[data-bs-theme="dark"] .no-posts-message h3 {
    color: var(--talence-gray-600, #cbd5e1);
}

/* ============================================
   BLOG PAGINATION
   ============================================ */

.blog-pagination {
    margin-top: 2rem;
}

.blog-pagination .pagination {
    gap: 0.5rem;
}

.blog-pagination .page-link {
    border-radius: 8px;
    border: none;
    background: var(--talence-gray-100);
    color: var(--talence-gray-700, #334155);
    min-width: 40px;
    text-align: center;
    transition: all 0.25s ease;
}

.blog-pagination .page-item.active .page-link {
    background: var(--talence-primary, #3b82f6);
    color: #fff;
}

.blog-pagination .page-link:hover {
    background: var(--talence-primary, #3b82f6);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 3px 10px rgba(96, 165, 250, 0.3);
}

[data-bs-theme="dark"] .blog-pagination .page-link {
    background: rgba(51, 65, 85, 0.4);
    color: var(--talence-gray-600, #cbd5e1);
}

/* ============================================
   BLOG RESPONSIVE
   ============================================ */

@media (max-width: 991.98px) {
    .blog-sidebar {
        position: static;
        margin-top: 2rem;
    }
}

@media (max-width: 767.98px) {
    .post-article {
        padding: 1.25rem;
    }

    .post-meta-header {
        gap: 1rem;
        margin-left: 0;
    }
}
