@charset "UTF-8";
/*--------------------------------------------------------------
# Starter Template - Main Stylesheet
# Self-contained - all imports are local to this template
# Uses modern Dart Sass @use syntax (no deprecated @import)
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# CSS Custom Properties - Color System
# Single accent color theming with comprehensive palette
--------------------------------------------------------------*/
/* Fonts */
:root {
    --default-font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --heading-font: "Sora", sans-serif;
    --nav-font: "Manrope", sans-serif;
    --mono-font: "JetBrains Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;
}

/* Spacing Scale */
:root {
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 3rem;
}

/* Border Radius */
:root {
    --radius-sm: 0.375rem;
    --radius-md: 0.5rem;
    --radius-lg: 0.75rem;
    --radius-xl: 1rem;
    --radius-2xl: 1.25rem;
    --radius-full: 9999px;
}

/* Shadows */
:root {
    --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.04), 0 1px 2px -1px rgb(0 0 0 / 0.04);
    --shadow-md: 0 8px 20px -10px rgb(2 12 27 / 0.18), 0 6px 12px -8px rgb(2 12 27 / 0.12);
    --shadow-lg: 0 16px 36px -16px rgb(2 12 27 / 0.26), 0 10px 20px -10px rgb(2 12 27 / 0.14);
    --shadow-xl: 0 28px 60px -22px rgb(2 12 27 / 0.34), 0 18px 28px -12px rgb(2 12 27 / 0.16);
}

/* Transitions */
:root {
    --transition-fast: 150ms ease;
    --transition-base: 200ms ease;
    --transition-slow: 300ms ease;
}

/* Layout Dimensions */
:root {
    --header-height: 3.5rem;
    --sidebar-width: 280px;
    --sidebar-collapsed-width: 70px;
    --footer-height: 0.5rem;
}

/*--------------------------------------------------------------
# Global Colors - Light Mode
--------------------------------------------------------------*/
:root {
    /* Core palette */
    --background-color: #f4f7fb;
    --default-color: #1c2635;
    --heading-color: #0f1728;
    --accent-color: #0ea5a4;
    --surface-color: #ffffff;
    --contrast-color: #ffffff;
    /* Extended text colors */
    --muted-color: #5f6e83;
    --light-color: #8ea0b8;
    /* Borders */
    --border-color: #dde5f1;
    --border-color-light: #eef3fa;
    --border-color-dark: #c4d2e6;
    /* Status colors */
    --success-color: #16a34a;
    --success-color-light: #dcfce7;
    --warning-color: #d97706;
    --warning-color-light: #ffedd5;
    --danger-color: #dc2626;
    --danger-color-light: #fee2e2;
    --info-color: #0284c7;
    --info-color-light: #e0f2fe;
    /* Navigation colors */
    --nav-color: var(--default-color);
    --nav-hover-color: var(--accent-color);
    --nav-mobile-background-color: var(--surface-color);
    --nav-dropdown-background-color: var(--surface-color);
    --nav-dropdown-color: var(--default-color);
    --nav-dropdown-hover-color: var(--accent-color);
    /* Header */
    --header-bg: rgba(255, 255, 255, 0.9);
    --header-shadow: 0 1px 0 rgb(14 26 47 / 0.06);
    --header-border: var(--border-color);
    /* Sidebar */
    --sidebar-bg: #ffffff;
    --sidebar-border: #d9e3f1;
    --sidebar-color: #223248;
    --sidebar-muted-color: #6b809d;
    --sidebar-hover-bg: rgba(14, 165, 164, 0.1);
    --sidebar-active-bg: rgba(14, 165, 164, 0.16);
    --sidebar-active-color: #ffffff;
    /* Cards */
    --card-bg: #ffffff;
    --card-shadow: var(--shadow-md);
    --card-border: var(--border-color);
    /* Tables */
    --table-header-bg: #edf3fb;
    --table-hover-bg: #e9f0fa;
    --table-stripe-bg: #f7faff;
    /* Forms */
    --input-bg: #ffffff;
    --input-border: var(--border-color);
    --input-focus-border: var(--accent-color);
    --input-focus-ring: rgb(14 165 164 / 0.25);
}

/*--------------------------------------------------------------
# Dark Mode Palette
--------------------------------------------------------------*/
[data-theme=dark] {
    /* Core palette */
    --background-color: #08141a;
    --default-color: #d2e1e7;
    --heading-color: #f3f7ff;
    --accent-color: #22d3ce;
    --surface-color: #11222c;
    --contrast-color: #ffffff;
    /* Extended text colors */
    --muted-color: #95aebe;
    --light-color: #6f8a9d;
    /* Borders */
    --border-color: #2a4458;
    --border-color-light: #1d3141;
    --border-color-dark: #3b5e77;
    /* Status colors (adjusted for dark mode) */
    --success-color: #4ade80;
    --success-color-light: rgba(74, 222, 128, 0.16);
    --warning-color: #f59e0b;
    --warning-color-light: rgba(245, 158, 11, 0.16);
    --danger-color: #fb7185;
    --danger-color-light: rgba(251, 113, 133, 0.16);
    --info-color: #38bdf8;
    --info-color-light: rgba(56, 189, 248, 0.16);
    /* Navigation colors */
    --nav-color: var(--default-color);
    --nav-hover-color: var(--accent-color);
    --nav-mobile-background-color: var(--surface-color);
    --nav-dropdown-background-color: var(--surface-color);
    --nav-dropdown-color: var(--default-color);
    --nav-dropdown-hover-color: var(--accent-color);
    /* Header */
    --header-bg: rgba(17, 34, 44, 0.9);
    --header-shadow: 0 1px 0 rgb(129 161 185 / 0.16);
    --header-border: var(--border-color);
    /* Sidebar */
    --sidebar-bg: #081018;
    --sidebar-border: var(--border-color);
    --sidebar-color: #b9cde0;
    --sidebar-muted-color: #7b92a8;
    --sidebar-hover-bg: rgba(34, 211, 206, 0.14);
    --sidebar-active-bg: rgba(34, 211, 206, 0.2);
    --sidebar-active-color: #ffffff;
    /* Cards */
    --card-bg: #11222c;
    --card-shadow: 0 14px 36px -20px rgb(0 0 0 / 0.75), 0 8px 16px -12px rgb(6 14 21 / 0.82);
    --card-border: var(--border-color);
    /* Tables */
    --table-header-bg: #0d1a24;
    --table-hover-bg: #173042;
    --table-stripe-bg: #142836;
    /* Forms */
    --input-bg: #0c1822;
    --input-border: var(--border-color);
    --input-focus-border: var(--accent-color);
    --input-focus-ring: rgb(34 211 206 / 0.25);
    /* Bootstrap overrides */
    --bs-body-color: var(--default-color);
    --bs-body-bg: var(--background-color);
}

/*--------------------------------------------------------------
# Color Utility Classes
# Override Bootstrap's color utilities with CSS custom properties
# for proper dark mode support
--------------------------------------------------------------*/
/* Text Colors */
.text-primary {
    color: var(--accent-color) !important;
}

.text-secondary {
    color: var(--muted-color) !important;
}

.text-success {
    color: var(--success-color) !important;
}

.text-warning {
    color: var(--warning-color) !important;
}

.text-danger {
    color: var(--danger-color) !important;
}

.text-info {
    color: var(--info-color) !important;
}

.text-muted {
    color: var(--muted-color) !important;
}

.text-body {
    color: var(--default-color) !important;
}

/* Background Colors */
.bg-primary {
    background-color: var(--accent-color) !important;
}

.bg-success {
    background-color: var(--success-color) !important;
}

.bg-warning {
    background-color: var(--warning-color) !important;
}

.bg-danger {
    background-color: var(--danger-color) !important;
}

.bg-info {
    background-color: var(--info-color) !important;
}

.bg-light {
    background-color: var(--background-color) !important;
}

.bg-body {
    background-color: var(--background-color) !important;
}

.bg-surface {
    background-color: var(--surface-color) !important;
}

/* Soft/Light Background Colors */
.bg-primary-light {
    background-color: color-mix(in srgb, var(--accent-color), transparent 90%) !important;
}

.bg-success-light {
    background-color: var(--success-color-light) !important;
}

.bg-warning-light {
    background-color: var(--warning-color-light) !important;
}

.bg-danger-light {
    background-color: var(--danger-color-light) !important;
}

.bg-info-light {
    background-color: var(--info-color-light) !important;
}

/* Border Colors */
.border-primary {
    border-color: var(--accent-color) !important;
}

.border-success {
    border-color: var(--success-color) !important;
}

.border-warning {
    border-color: var(--warning-color) !important;
}

.border-danger {
    border-color: var(--danger-color) !important;
}

.border-info {
    border-color: var(--info-color) !important;
}

/* Gradient Backgrounds */
.bg-gradient-primary {
    background: linear-gradient(135deg, var(--accent-color), color-mix(in srgb, var(--accent-color), black 15%)) !important;
}

.bg-gradient-success {
    background: linear-gradient(135deg, var(--success-color), #059669) !important;
}

.bg-gradient-warning {
    background: linear-gradient(135deg, var(--warning-color), #d97706) !important;
}

.bg-gradient-danger {
    background: linear-gradient(135deg, var(--danger-color), #dc2626) !important;
}

.bg-gradient-info {
    background: linear-gradient(135deg, var(--info-color), #7c3aed) !important;
}

/* Icon Colors */
.icon-primary {
    color: var(--accent-color);
}

.icon-success {
    color: var(--success-color);
}

.icon-warning {
    color: var(--warning-color);
}

.icon-danger {
    color: var(--danger-color);
}

.icon-info {
    color: var(--info-color);
}

.icon-muted {
    color: var(--muted-color);
}

/*--------------------------------------------------------------
# Base - Reset, Typography, and Global Styles
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Box Sizing & Scroll
--------------------------------------------------------------*/
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 70px;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
}

/*--------------------------------------------------------------
# Body
--------------------------------------------------------------*/
body {
    margin: 0;
    font-family: var(--default-font);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.6;
    color: var(--default-color);
    background-color: var(--background-color);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

/*--------------------------------------------------------------
# Headings
--------------------------------------------------------------*/
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--heading-font);
    font-weight: 600;
    line-height: 1.3;
    color: var(--heading-color);
    margin-top: 0;
    margin-bottom: 0.5rem;
}

h1, .h1 {
    font-size: 2.25rem;
}

h2, .h2 {
    font-size: 1.875rem;
}

h3, .h3 {
    font-size: 1.5rem;
}

h4, .h4 {
    font-size: 1.25rem;
}

h5, .h5 {
    font-size: 1.125rem;
}

h6, .h6 {
    font-size: 1rem;
}

/*--------------------------------------------------------------
# Paragraph & Text
--------------------------------------------------------------*/
p {
    margin-top: 0;
    margin-bottom: 1rem;
}

.lead {
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.7;
    color: var(--muted-color);
}

small,
.small {
    font-size: 0.875rem;
}

strong {
    font-weight: 600;
}

/* Custom text size - Bootstrap doesn't have .text-xs */
.text-xs {
    font-size: 0.75rem !important;
}

/*--------------------------------------------------------------
# Links
--------------------------------------------------------------*/
a {
    color: var(--accent-color);
    text-decoration: none;
    transition: color var(--transition-fast);
}

    a:hover {
        color: color-mix(in srgb, var(--accent-color), black 10%);
    }

/*--------------------------------------------------------------
# Lists
--------------------------------------------------------------*/
ul,
ol {
    list-style: none;
    padding: 0;
    margin: 0;
}

/*--------------------------------------------------------------
# Code
--------------------------------------------------------------*/
code {
    font-family: var(--mono-font);
    font-size: 0.875em;
    color: var(--danger-color);
    background-color: var(--danger-color-light);
    padding: 0.125rem 0.375rem;
    border-radius: var(--radius-sm);
}

pre {
    font-family: var(--mono-font);
    font-size: 0.875rem;
    margin: 0;
    padding: var(--spacing-md);
    background-color: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    overflow-x: auto;
}

    pre code {
        background: none;
        padding: 0;
        color: inherit;
    }

/*--------------------------------------------------------------
# Blockquote
--------------------------------------------------------------*/
blockquote {
    margin: 0 0 1rem;
    padding: var(--spacing-md) var(--spacing-lg);
    border-left: 4px solid var(--accent-color);
    background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

    blockquote p:last-child {
        margin-bottom: 0;
    }

/*--------------------------------------------------------------
# Horizontal Rule
--------------------------------------------------------------*/
hr {
    margin: var(--spacing-lg) 0;
    border: 0;
    border-top: 1px solid var(--border-color);
}

/*--------------------------------------------------------------
# Mark/Highlight
--------------------------------------------------------------*/
mark,
.mark {
    padding: 0.125rem 0.25rem;
    background-color: var(--warning-color-light);
    border-radius: var(--radius-sm);
}

/*--------------------------------------------------------------
# Abbreviation
--------------------------------------------------------------*/
abbr[title] {
    text-decoration: underline dotted;
    cursor: help;
}

/*--------------------------------------------------------------
# Images
--------------------------------------------------------------*/
img,
svg {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

/*--------------------------------------------------------------
# Tables
--------------------------------------------------------------*/
table {
    border-collapse: collapse;
    width: 100%;
}

/*--------------------------------------------------------------
# Forms Reset
--------------------------------------------------------------*/
button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
    margin: 0;
}

button {
    cursor: pointer;
    border: none;
    background: transparent;
}

/*--------------------------------------------------------------
# Focus Styles
--------------------------------------------------------------*/
:focus,
:focus-visible {
    outline: none;
}

/*--------------------------------------------------------------
# Selection
--------------------------------------------------------------*/
::selection {
    background-color: var(--accent-color);
    color: white;
}

/*--------------------------------------------------------------
# Scrollbar (WebKit)
--------------------------------------------------------------*/
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--background-color);
}

::-webkit-scrollbar-thumb {
    background: var(--light-color);
    border-radius: var(--radius-full);
}

    ::-webkit-scrollbar-thumb:hover {
        background: var(--muted-color);
    }

/* Firefox scrollbar */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--light-color) var(--background-color);
}

/*--------------------------------------------------------------
# Animations & Transitions
--------------------------------------------------------------*/
/* Keyframes */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-5px);
    }

    75% {
        transform: translateX(5px);
    }
}
/* Animation utility classes */
.animate-fade-in {
    animation: fadeIn var(--transition-base) ease-out;
}

.animate-fade-in-up {
    animation: fadeInUp var(--transition-slow) ease-out;
}

.animate-fade-in-down {
    animation: fadeInDown var(--transition-slow) ease-out;
}

.animate-slide-in-left {
    animation: slideInLeft var(--transition-slow) ease-out;
}

.animate-slide-in-right {
    animation: slideInRight var(--transition-slow) ease-out;
}

.animate-scale-in {
    animation: scaleIn var(--transition-base) ease-out;
}

.animate-spin {
    animation: spin 1s linear infinite;
}

.animate-pulse {
    animation: pulse 2s ease-in-out infinite;
}

.animate-bounce {
    animation: bounce 1s ease-in-out infinite;
}

/* Transition utilities */
.transition-none {
    transition: none !important;
}

.transition-all {
    transition: all var(--transition-base);
}

.transition-colors {
    transition: color var(--transition-base), background-color var(--transition-base), border-color var(--transition-base);
}

.transition-opacity {
    transition: opacity var(--transition-base);
}

.transition-transform {
    transition: transform var(--transition-base);
}

/* Hover transform utilities */
.hover-lift {
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

    .hover-lift:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-md);
    }

.hover-scale {
    transition: transform var(--transition-fast);
}

    .hover-scale:hover {
        transform: scale(1.02);
    }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
/*--------------------------------------------------------------
# Bootstrap Overrides
--------------------------------------------------------------*/
/* Container widths */
.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
    padding-left: var(--spacing-lg);
    padding-right: var(--spacing-lg);
}

/* Row gutter */
.row {
    --bs-gutter-x: var(--spacing-lg);
    --bs-gutter-y: var(--spacing-lg);
}

    /* Grid - ensure all columns use CSS custom properties */
    .row > * {
        padding-left: calc(var(--bs-gutter-x) * 0.5);
        padding-right: calc(var(--bs-gutter-x) * 0.5);
    }

/* Button overrides */
.btn {
    font-weight: 500;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.btn-primary {
    --bs-btn-bg: var(--accent-color);
    --bs-btn-border-color: var(--accent-color);
    --bs-btn-hover-bg: color-mix(in srgb, var(--accent-color), black 10%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--accent-color), black 10%);
    --bs-btn-active-bg: color-mix(in srgb, var(--accent-color), black 15%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--accent-color), black 15%);
}

.btn-outline-primary {
    --bs-btn-color: var(--accent-color);
    --bs-btn-border-color: var(--accent-color);
    --bs-btn-hover-color: var(--contrast-color);
    --bs-btn-hover-bg: var(--accent-color);
    --bs-btn-hover-border-color: var(--accent-color);
    --bs-btn-active-color: var(--contrast-color);
    --bs-btn-active-bg: color-mix(in srgb, var(--accent-color), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--accent-color), black 10%);
}

.btn-outline-secondary {
    --bs-btn-color: var(--muted-color);
    --bs-btn-border-color: var(--muted-color);
    --bs-btn-hover-color: var(--contrast-color);
    --bs-btn-hover-bg: var(--muted-color);
    --bs-btn-hover-border-color: var(--muted-color);
    --bs-btn-active-color: var(--contrast-color);
    --bs-btn-active-bg: color-mix(in srgb, var(--muted-color), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--muted-color), black 10%);
}

.btn-outline-success {
    --bs-btn-color: var(--success-color);
    --bs-btn-border-color: var(--success-color);
    --bs-btn-hover-color: var(--contrast-color);
    --bs-btn-hover-bg: var(--success-color);
    --bs-btn-hover-border-color: var(--success-color);
    --bs-btn-active-color: var(--contrast-color);
    --bs-btn-active-bg: color-mix(in srgb, var(--success-color), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--success-color), black 10%);
}

.btn-outline-warning {
    --bs-btn-color: var(--warning-color);
    --bs-btn-border-color: var(--warning-color);
    --bs-btn-hover-color: var(--heading-color);
    --bs-btn-hover-bg: var(--warning-color);
    --bs-btn-hover-border-color: var(--warning-color);
    --bs-btn-active-color: var(--heading-color);
    --bs-btn-active-bg: color-mix(in srgb, var(--warning-color), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--warning-color), black 10%);
}

.btn-outline-danger {
    --bs-btn-color: var(--danger-color);
    --bs-btn-border-color: var(--danger-color);
    --bs-btn-hover-color: var(--contrast-color);
    --bs-btn-hover-bg: var(--danger-color);
    --bs-btn-hover-border-color: var(--danger-color);
    --bs-btn-active-color: var(--contrast-color);
    --bs-btn-active-bg: color-mix(in srgb, var(--danger-color), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--danger-color), black 10%);
}

.btn-outline-info {
    --bs-btn-color: var(--info-color);
    --bs-btn-border-color: var(--info-color);
    --bs-btn-hover-color: var(--contrast-color);
    --bs-btn-hover-bg: var(--info-color);
    --bs-btn-hover-border-color: var(--info-color);
    --bs-btn-active-color: var(--contrast-color);
    --bs-btn-active-bg: color-mix(in srgb, var(--info-color), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--info-color), black 10%);
}

/* Form controls */
.form-control,
.form-select {
    border-radius: var(--radius-md);
    border-color: var(--input-border);
    padding: var(--spacing-sm) var(--spacing-md);
}

    .form-control:focus,
    .form-select:focus {
        border-color: var(--input-focus-border);
        box-shadow: none;
        outline: none;
    }

/* Remove all focus outlines and rings */
:focus,
:focus-visible {
    outline: none;
}

.btn:focus,
.form-check-input:focus,
.accordion-button:focus,
.page-link:focus,
.dropdown-toggle:focus {
    box-shadow: none;
}

/* Cards */
.card {
    border-radius: var(--radius-lg);
    border-color: var(--card-border);
    box-shadow: var(--card-shadow);
    margin-bottom: var(--spacing-lg);
}

    .card:last-child {
        margin-bottom: 0;
    }

/* Modals */
.modal-content {
    border-radius: var(--radius-xl);
    border: 1px solid var(--border-color);
}

/* Dropdowns */
.dropdown-menu {
    border-radius: var(--radius-lg);
    border-color: var(--border-color);
    box-shadow: var(--shadow-lg);
    padding: var(--spacing-sm) 0;
}

.dropdown-item {
    padding: var(--spacing-sm) var(--spacing-md);
    transition: background-color var(--transition-fast);
}

    .dropdown-item:hover,
    .dropdown-item:focus {
        background-color: var(--background-color);
    }

/* Alerts */
.alert {
    border-radius: var(--radius-md);
}

/* Badges */
.badge {
    font-weight: 600;
    border-radius: var(--radius-sm);
}

/* List Group */
.list-group-item {
    border-color: var(--border-color);
    padding: var(--spacing-md) var(--spacing-lg);
}

    .list-group-item.active {
        background-color: var(--accent-color);
        border-color: var(--accent-color);
    }

/* Navs & Tabs */
.nav-link {
    color: var(--muted-color);
    transition: color var(--transition-fast);
}

    .nav-link:hover {
        color: var(--accent-color);
    }

.nav-tabs .nav-link.active {
    color: var(--heading-color);
    border-color: var(--border-color) var(--border-color) var(--surface-color);
}

.nav-pills .nav-link.active {
    background-color: var(--accent-color);
}

/* Tables */
.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--default-color);
    --bs-table-border-color: var(--border-color);
    --bs-table-striped-bg: var(--table-stripe-bg);
    --bs-table-hover-bg: var(--table-hover-bg);
}

    .table > thead {
        background-color: var(--table-header-bg);
    }

/* Pagination */
.page-link {
    color: var(--default-color);
    border-color: var(--border-color);
}

    .page-link:hover {
        color: var(--accent-color);
        background-color: var(--background-color);
    }

.page-item.active .page-link {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

/* Progress */
.progress {
    background-color: var(--background-color);
    border-radius: var(--radius-full);
}

.progress-bar {
    background-color: var(--accent-color);
}

/* Accordion */
.accordion-button {
    padding: var(--spacing-md) var(--spacing-lg);
    background-color: var(--surface-color);
    color: var(--heading-color);
}

    .accordion-button:not(.collapsed) {
        background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .accordion-button:focus {
        box-shadow: none;
    }

.accordion-body {
    padding: var(--spacing-lg);
}

/* Breadcrumb */
.breadcrumb {
    margin-bottom: 0;
    padding: 0;
    background-color: transparent;
}

.breadcrumb-item + .breadcrumb-item::before {
    color: var(--light-color);
}

/* Close button */
.btn-close {
    opacity: 0.5;
    transition: opacity var(--transition-fast);
}

    .btn-close:hover {
        opacity: 1;
    }

/* Tooltips */
.tooltip {
    font-size: 0.8125rem;
}

.tooltip-inner {
    background-color: var(--heading-color);
    border-radius: var(--radius-sm);
    padding: var(--spacing-xs) var(--spacing-sm);
}

/* Popovers */
.popover {
    border-color: var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}

.popover-header {
    background-color: var(--background-color);
    border-bottom-color: var(--border-color);
}

/* Spinners */
.spinner-border {
    color: var(--accent-color);
}

/* Offcanvas */
.offcanvas {
    background-color: var(--surface-color);
    border-color: var(--border-color);
}

.offcanvas-header {
    border-bottom: 1px solid var(--border-color);
}

/* Input group */
.input-group-text {
    background-color: var(--background-color);
    border-color: var(--input-border);
}

/*--------------------------------------------------------------
# DataTables Overrides (simple-datatables)
--------------------------------------------------------------*/
.datatable-wrapper {
    overflow-x: auto;
}

    .datatable-wrapper .datatable-top,
    .datatable-wrapper .datatable-bottom {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: var(--spacing-md);
        padding: var(--spacing-md) 0;
    }

    .datatable-wrapper .datatable-search {
        display: flex;
        align-items: center;
        gap: var(--spacing-sm);
    }

        .datatable-wrapper .datatable-search input {
            padding: var(--spacing-sm) var(--spacing-md);
            font-size: 0.875rem;
            font-family: inherit;
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            background-color: var(--input-bg);
            color: var(--default-color);
            transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
        }

            .datatable-wrapper .datatable-search input:focus {
                outline: none;
                border-color: var(--input-focus-border);
                box-shadow: 0 0 0 3px var(--input-focus-ring);
            }

    .datatable-wrapper .datatable-dropdown {
        display: flex;
        align-items: center;
        gap: var(--spacing-sm);
        font-size: 0.875rem;
        color: var(--muted-color);
    }

        .datatable-wrapper .datatable-dropdown select {
            padding: var(--spacing-sm) var(--spacing-md);
            font-size: 0.875rem;
            font-family: inherit;
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            background-color: var(--input-bg);
            color: var(--default-color);
            cursor: pointer;
        }

    .datatable-wrapper .datatable-table {
        width: 100%;
        border-collapse: collapse;
    }

        .datatable-wrapper .datatable-table thead th {
            padding: var(--spacing-md);
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--muted-color);
            background-color: var(--table-header-bg);
            border-bottom: 1px solid var(--border-color);
            text-align: left;
            white-space: nowrap;
            cursor: pointer;
            user-select: none;
        }

            .datatable-wrapper .datatable-table thead th:hover {
                background-color: var(--table-hover-bg);
            }

            .datatable-wrapper .datatable-table thead th.datatable-ascending::after,
            .datatable-wrapper .datatable-table thead th.datatable-descending::after {
                content: "";
                display: inline-block;
                margin-left: var(--spacing-xs);
                border: 4px solid transparent;
            }

            .datatable-wrapper .datatable-table thead th.datatable-ascending::after {
                border-bottom-color: var(--accent-color);
                transform: translateY(-2px);
            }

            .datatable-wrapper .datatable-table thead th.datatable-descending::after {
                border-top-color: var(--accent-color);
                transform: translateY(2px);
            }

        .datatable-wrapper .datatable-table tbody td {
            padding: var(--spacing-md);
            font-size: 0.875rem;
            color: var(--default-color);
            border-bottom: 1px solid var(--border-color-light);
            vertical-align: middle;
        }

        .datatable-wrapper .datatable-table tbody tr:last-child td {
            border-bottom: none;
        }

        .datatable-wrapper .datatable-table tbody tr:hover td {
            background-color: var(--table-hover-bg);
        }

    .datatable-wrapper .datatable-info {
        font-size: 0.8125rem;
        color: var(--muted-color);
    }

    .datatable-wrapper .datatable-pagination {
        display: flex;
        align-items: center;
        gap: var(--spacing-xs);
    }

        .datatable-wrapper .datatable-pagination button,
        .datatable-wrapper .datatable-pagination a {
            display: flex;
            align-items: center;
            justify-content: center;
            min-width: 32px;
            height: 32px;
            padding: 0 var(--spacing-sm);
            font-size: 0.8125rem;
            font-family: inherit;
            border: 1px solid var(--border-color);
            border-radius: var(--radius-sm);
            background-color: var(--surface-color);
            color: var(--default-color);
            cursor: pointer;
            text-decoration: none;
            transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
        }

            .datatable-wrapper .datatable-pagination button:hover:not(:disabled),
            .datatable-wrapper .datatable-pagination a:hover {
                background-color: var(--background-color);
                border-color: var(--border-color-dark);
            }

        .datatable-wrapper .datatable-pagination .active button,
        .datatable-wrapper .datatable-pagination .active a {
            background-color: var(--accent-color);
            border-color: var(--accent-color);
            color: white;
        }

        .datatable-wrapper .datatable-pagination button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }

    /* Empty state */
    .datatable-wrapper .datatable-empty {
        text-align: center;
        padding: var(--spacing-2xl);
        color: var(--muted-color);
    }

/*--------------------------------------------------------------
# Chart Library Overrides
--------------------------------------------------------------*/
/* ApexCharts */
.apexcharts-canvas {
    font-family: var(--font-default) !important;
}

.apexcharts-title-text {
    fill: var(--heading-color) !important;
}

.apexcharts-subtitle-text {
    fill: var(--muted-color) !important;
}

.apexcharts-legend-text {
    color: var(--default-color) !important;
}

.apexcharts-xaxis-label,
.apexcharts-yaxis-label {
    fill: var(--muted-color) !important;
}

.apexcharts-gridline {
    stroke: var(--border-color) !important;
}

.apexcharts-tooltip {
    background-color: var(--surface-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-lg) !important;
}

.apexcharts-tooltip-title {
    background-color: var(--background-color) !important;
    border-bottom: 1px solid var(--border-color) !important;
    padding: var(--spacing-sm) var(--spacing-md) !important;
    font-weight: 600 !important;
}

.apexcharts-tooltip-text {
    padding: var(--spacing-sm) var(--spacing-md) !important;
}

.apexcharts-menu {
    background-color: var(--surface-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-lg) !important;
}

.apexcharts-menu-item {
    color: var(--default-color) !important;
}

    .apexcharts-menu-item:hover {
        background-color: var(--background-color) !important;
    }

/* Chart.js */
.chartjs-tooltip {
    background-color: var(--surface-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-lg) !important;
    padding: var(--spacing-sm) var(--spacing-md) !important;
    font-family: var(--font-default) !important;
}

/* ECharts */
.echarts-tooltip {
    font-family: var(--font-default) !important;
}

/* Chart Containers */
.chart-container {
    position: relative;
    width: 100%;
    min-height: 300px;
}

.chart-container-sm {
    min-height: 200px;
}

.chart-container-lg {
    min-height: 400px;
}

/* Chart Loading State */
.chart-loading {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--surface-color);
}

/* Chart Legend Custom */
.chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    justify-content: center;
    padding-top: var(--spacing-md);
}

.chart-legend-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.chart-legend-color {
    width: 12px;
    height: 12px;
    border-radius: var(--radius-sm);
}

/* Sparkline Charts */
.sparkline-container {
    height: 40px;
    width: 100%;
}

/* Mini Chart Stat */
.mini-chart {
    display: flex;
    align-items: flex-end;
    gap: var(--spacing-md);
}

.mini-chart-info {
    flex: 1;
}

.mini-chart-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.2;
}

.mini-chart-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.mini-chart-canvas {
    width: 100px;
    height: 50px;
}

/*--------------------------------------------------------------
# Header - FlexAdmin
# Command-bar style header with contextual chip,
# floating controls, and richly styled dropdown surfaces.
--------------------------------------------------------------*/
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--header-height);
    background: var(--header-bg);
    backdrop-filter: saturate(140%) blur(8px);
    border-bottom: 1px solid var(--header-border);
    box-shadow: var(--header-shadow);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 0 var(--spacing-md);
    z-index: 1000;
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

@media (min-width: 576px) {
    .header {
        padding: 0 var(--spacing-lg);
    }
}

.header-left {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

@media (min-width: 1200px) {
    .header-left {
        min-width: calc(var(--sidebar-width) - var(--spacing-lg) - 10px);
    }
}

.header-logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--heading-font);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--heading-color);
    text-decoration: none;
}

    .header-logo:hover {
        color: var(--accent-color);
    }

    .header-logo img {
        height: 1.75rem;
        width: auto;
    }

    .header-logo span {
        display: none;
    }

@media (min-width: 576px) {
    .header-logo span {
        display: inline;
    }
}

.sidebar-toggle {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--default-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
}

    .sidebar-toggle i {
        font-size: 1.15rem;
    }

    .sidebar-toggle:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 40%);
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
    }

/*--------------------------------------------------------------
# Search
--------------------------------------------------------------*/
.header-search {
    flex: 1;
    max-width: 520px;
    margin: 0 var(--spacing-sm);
    display: none;
}

@media (min-width: 768px) {
    .header-search {
        display: block;
    }
}

.search-form {
    position: relative;
    display: flex;
    align-items: center;
}

.search-icon {
    position: absolute;
    left: 14px;
    font-size: 0.9rem;
    color: var(--muted-color);
    pointer-events: none;
}

.search-form input {
    width: 100%;
    height: 42px;
    padding: 0 52px 0 40px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--surface-color), var(--background-color) 24%);
    color: var(--default-color);
    font-size: 0.83rem;
    transition: all var(--transition-fast);
}

    .search-form input::placeholder {
        color: var(--light-color);
    }

    .search-form input:focus, .search-form input:focus-visible {
        outline: none;
        border-color: var(--accent-color);
        background: var(--surface-color);
        box-shadow: 0 0 0 4px var(--input-focus-ring);
    }

.search-shortcut {
    position: absolute;
    right: 10px;
    height: 24px;
    min-width: 24px;
    border-radius: 7px;
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--light-color);
    font-size: 0.72rem;
    font-family: var(--mono-font);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    pointer-events: none;
}

/*--------------------------------------------------------------
# Header Center
--------------------------------------------------------------*/
.header-center {
    flex: 1;
    display: flex;
    align-items: center;
}

/*--------------------------------------------------------------
# Right Action Cluster
--------------------------------------------------------------*/
.header-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.header-actions-desktop {
    display: none;
    align-items: center;
    gap: 8px;
}

@media (min-width: 768px) {
    .header-actions-desktop {
        display: flex;
    }
}

.header-actions-mobile {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

@media (min-width: 768px) {
    .header-actions-mobile {
        display: none;
    }
}

.header-action-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.header-action-cluster {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border-radius: 14px;
    border: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--surface-color), var(--background-color) 16%);
    box-shadow: 0 12px 24px -20px rgba(15, 23, 40, 0.35);
}

.header-action {
    position: relative;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: 1px solid color-mix(in srgb, var(--border-color), transparent 20%);
    background: var(--surface-color);
    color: var(--muted-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
    cursor: pointer;
}

    .header-action i {
        font-size: 1.1rem;
    }

    .header-action:hover {
        color: var(--accent-color);
        border-color: color-mix(in srgb, var(--accent-color), transparent 55%);
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
    }

.header-divider {
    display: none;
    width: 1px;
    height: 30px;
    background: var(--border-color);
    margin: 0 6px;
}

@media (min-width: 768px) {
    .header-divider {
        display: block;
    }
}

.header-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: var(--radius-full);
    background: var(--danger-color);
    color: var(--contrast-color);
    font-size: 0.62rem;
    line-height: 17px;
    text-align: center;
    font-weight: 700;
}

.theme-toggle .theme-icon-light {
    display: none;
}

.theme-toggle i {
    font-size: 1.2rem;
}

[data-theme=dark] .theme-toggle .theme-icon-dark {
    display: none;
}

[data-theme=dark] .theme-toggle .theme-icon-light {
    display: block;
}

/*--------------------------------------------------------------
# Shared Dropdown Surface
--------------------------------------------------------------*/
.header .dropdown-menu {
    margin-top: 10px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    background: var(--surface-color);
    box-shadow: var(--shadow-xl);
    padding: 0;
    overflow: hidden;
}

.menu-title {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-color);
    color: var(--heading-color);
    font-size: 0.84rem;
    font-weight: 700;
}

/* Language */
.lang-dropdown .dropdown-toggle::after {
    display: none;
}

.lang-trigger {
    padding: 0;
}

.lang-flag {
    width: 22px;
    height: 16px;
    border-radius: 3px;
    object-fit: cover;
}

.lang-menu {
    width: 210px;
}

.lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    font-size: 0.8rem;
    color: var(--default-color);
    text-decoration: none;
}

    .lang-item:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 93%);
        color: var(--accent-color);
    }

    .lang-item span {
        flex: 1;
    }

    .lang-item i {
        color: var(--accent-color);
        font-size: 0.9rem;
    }

    .lang-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 91%);
        font-weight: 600;
    }

/* Quick access */
.quickaccess-dropdown .dropdown-toggle::after {
    display: none;
}

.quickaccess-menu {
    width: 286px;
}

.quickaccess-grid {
    padding: 12px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.quickaccess-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 10px 6px;
    border-radius: 12px;
    text-decoration: none;
    transition: all var(--transition-fast);
}

    .quickaccess-item:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
    }

.quickaccess-icon {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--accent-color), transparent 88%);
    color: var(--accent-color);
}

    .quickaccess-icon i {
        font-size: 1rem;
    }

.quickaccess-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--default-color);
}

/* Notifications */
.notification-dropdown .dropdown-toggle::after {
    display: none;
}

.notification-menu {
    width: 360px;
}

.messages-dropdown .dropdown-toggle::after {
    display: none;
}

.messages-menu {
    width: 360px;
}

    .messages-menu .notification-item {
        color: var(--default-color);
        text-decoration: none;
    }

        .messages-menu .notification-item .notification-title,
        .messages-menu .notification-item .notification-text,
        .messages-menu .notification-item .notification-time {
            color: inherit;
        }

.notification-header {
    padding: 12px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--background-color), var(--surface-color) 20%);
}

    .notification-header h6 {
        margin: 0;
        font-size: 0.88rem;
        font-weight: 700;
        color: var(--heading-color);
    }

.notification-count {
    font-size: 0.72rem;
    color: var(--muted-color);
}

.notification-mark-read {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--accent-color);
    text-decoration: none;
}

.notification-list {
    max-height: 350px;
    overflow-y: auto;
}

.notification-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-color-light);
    cursor: pointer;
    transition: background var(--transition-fast);
}

    .notification-item:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 94%);
    }

    .notification-item.unread {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.notification-dot {
    position: absolute;
    left: 6px;
    top: 18px;
    width: 6px;
    height: 6px;
    border-radius: var(--radius-full);
    background: var(--accent-color);
}

.notification-avatar,
.notification-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    flex-shrink: 0;
}

.notification-avatar {
    object-fit: cover;
}

.notification-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

    .notification-icon.success {
        color: var(--success-color);
        background: var(--success-color-light);
    }

    .notification-icon.warning {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

    .notification-icon.info {
        color: var(--info-color);
        background: var(--info-color-light);
    }

.notification-content {
    min-width: 0;
}

.notification-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--heading-color);
}

.notification-text {
    margin-top: 1px;
    font-size: 0.77rem;
    line-height: 1.38;
    color: var(--muted-color);
}

.notification-time {
    margin-top: 4px;
    display: inline-block;
    font-size: 0.69rem;
    color: var(--light-color);
}

.notification-footer {
    padding: 10px 14px;
    border-top: 1px solid var(--border-color);
    text-align: center;
}

    .notification-footer a {
        color: var(--accent-color);
        text-decoration: none;
        font-size: 0.78rem;
        font-weight: 600;
    }

/* User */
.user-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px 4px 4px;
    border-radius: 14px;
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all var(--transition-fast);
}

    .user-trigger:hover {
        border-color: var(--border-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

    .user-trigger.dropdown-toggle::after {
        display: none;
    }

.user-avatar {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 2px solid var(--border-color);
}

.user-brief {
    display: none;
    flex-direction: column;
    min-width: 0;
}

@media (min-width: 992px) {
    .user-brief {
        display: flex;
    }
}

.user-name {
    font-size: 0.77rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.2;
}

.user-role {
    font-size: 0.67rem;
    color: var(--muted-color);
}

.user-chevron {
    font-size: 0.62rem;
    color: var(--light-color);
    display: none;
}

@media (min-width: 992px) {
    .user-chevron {
        display: block;
    }
}

.user-menu {
    width: 250px;
}

.user-menu-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px;
    border-bottom: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--accent-color), transparent 95%);
}

.user-menu-avatar {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 2px solid color-mix(in srgb, var(--accent-color), transparent 62%);
}

.user-menu-name {
    font-size: 0.83rem;
    font-weight: 700;
    color: var(--heading-color);
}

.user-menu-email {
    font-size: 0.72rem;
    color: var(--muted-color);
}

.user-menu-body {
    padding: 8px;
}

.user-menu-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 11px;
    text-decoration: none;
    color: var(--default-color);
    font-size: 0.8rem;
    font-weight: 600;
}

    .user-menu-item:hover {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
    }

.user-menu-icon {
    width: 28px;
    height: 28px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--background-color);
    color: var(--muted-color);
}

.user-menu-footer {
    padding: 8px;
    border-top: 1px solid var(--border-color);
}

.user-menu-logout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 38px;
    border-radius: 11px;
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--danger-color);
}

    .user-menu-logout:hover {
        background: var(--danger-color-light);
    }

/*--------------------------------------------------------------
# Mobile Search + Menu
--------------------------------------------------------------*/
.mobile-search,
.mobile-header-menu {
    display: none;
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    z-index: 998;
    background: var(--header-bg);
    border-bottom: 1px solid var(--border-color);
    box-shadow: var(--shadow-md);
    animation: headerDrop var(--transition-fast) ease;
}

    .mobile-search.active,
    .mobile-header-menu.active {
        display: block;
    }

.mobile-search {
    padding: 8px var(--spacing-md);
}

    .mobile-search .search-form input {
        height: 42px;
        padding-right: 42px;
        padding-left: 12px;
        border-radius: 12px;
    }

    .mobile-search .search-form button {
        position: absolute;
        right: 5px;
        top: 50%;
        transform: translateY(-50%);
        width: 32px;
        height: 32px;
        border-radius: 9px;
        border: none;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: var(--muted-color);
        background: transparent;
    }

        .mobile-search .search-form button:hover {
            color: var(--accent-color);
            background: color-mix(in srgb, var(--accent-color), transparent 90%);
        }

.mobile-header-menu-content {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px;
}

.mobile-menu-item {
    position: relative;
    flex: 1;
    min-width: calc(33.333% - 6px);
    max-width: calc(33.333% - 6px);
    border: none;
    border-radius: 12px;
    background: transparent;
    color: var(--default-color);
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 12px 6px;
    transition: all var(--transition-fast);
}

    .mobile-menu-item:hover {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 93%);
    }

    .mobile-menu-item i {
        font-size: 1.14rem;
    }

.mobile-menu-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--muted-color);
}

.mobile-menu-item:hover .mobile-menu-label {
    color: var(--accent-color);
}

.mobile-menu-item .badge {
    position: absolute;
    top: 8px;
    right: calc(50% - 19px);
    min-width: 17px;
    height: 17px;
    line-height: 17px;
    border-radius: var(--radius-full);
    background: var(--danger-color);
    color: var(--contrast-color);
    font-size: 0.62rem;
    font-weight: 700;
}

.mobile-menu-item-danger:hover {
    color: var(--danger-color);
    background: var(--danger-color-light);
}

    .mobile-menu-item-danger:hover .mobile-menu-label {
        color: var(--danger-color);
    }

.mobile-menu-item.theme-toggle .theme-icon-light {
    display: none;
}

[data-theme=dark] .mobile-menu-item.theme-toggle .theme-icon-dark {
    display: none;
}

[data-theme=dark] .mobile-menu-item.theme-toggle .theme-icon-light {
    display: block;
}

@media (min-width: 768px) {
    .mobile-search,
    .mobile-header-menu {
        display: none !important;
    }
}

@keyframes headerDrop {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/*--------------------------------------------------------------
# Sidebar - FlexAdmin
# Frosted productivity rail with card-like nav groups,
# pill interactions, and workspace/footer utility modules.
--------------------------------------------------------------*/
.sidebar {
    position: fixed;
    top: var(--header-height);
    left: 0;
    bottom: 0;
    width: var(--sidebar-width);
    background: var(--sidebar-bg);
    border-right: 1px solid var(--sidebar-border);
    box-shadow: 14px 0 34px -26px rgba(15, 23, 40, 0.38);
    z-index: 999;
    display: flex;
    flex-direction: column;
    transition: transform var(--transition-base);
    overflow: hidden;
}

[data-theme=dark] .sidebar {
    box-shadow: 18px 0 44px -28px rgba(0, 0, 0, 0.8);
}

/* Mobile: Hidden by default */
@media (max-width: 1199px) {
    .sidebar {
        transform: translateX(-100%);
    }

    .sidebar-open .sidebar {
        transform: translateX(0);
    }
}
/* Desktop sidebar hide/show */
@media (min-width: 1200px) {
    .sidebar-hidden .sidebar {
        transform: translateX(-100%);
    }
}
/*--------------------------------------------------------------
# Navigation
--------------------------------------------------------------*/
.sidebar-nav {
    flex: 1;
    padding: var(--spacing-md) var(--spacing-sm) var(--spacing-sm);
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--sidebar-muted-color), transparent 42%) transparent;
}

    .sidebar-nav::-webkit-scrollbar {
        width: 4px;
    }

    .sidebar-nav::-webkit-scrollbar-thumb {
        background: color-mix(in srgb, var(--sidebar-muted-color), transparent 42%);
        border-radius: 4px;
    }

        .sidebar-nav::-webkit-scrollbar-thumb:hover {
            background: color-mix(in srgb, var(--sidebar-muted-color), transparent 24%);
        }

.nav-menu,
.nav-submenu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav-menu {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.nav-heading {
    padding: 16px 12px 6px;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--sidebar-muted-color);
    white-space: nowrap;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 8px;
}

    .nav-heading::after {
        content: "";
        flex: 1;
        height: 1px;
        background: color-mix(in srgb, var(--sidebar-muted-color), transparent 78%);
    }

.nav-item {
    position: relative;
}

    .nav-item > .nav-link {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 10px;
        border-radius: var(--radius-lg);
        font-size: 0.8125rem;
        font-weight: 600;
        color: var(--sidebar-color);
        text-decoration: none;
        transition: all var(--transition-fast);
        position: relative;
    }

        .nav-item > .nav-link:hover {
            background: var(--sidebar-hover-bg);
            color: var(--heading-color);
        }

.nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--accent-color), transparent 92%);
    color: color-mix(in srgb, var(--accent-color), black 12%);
    flex-shrink: 0;
    transition: all var(--transition-fast);
}

    .nav-icon i {
        font-size: 1.125rem;
    }

.nav-text {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.nav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
    height: 18px;
    border-radius: var(--radius-full);
    background: var(--accent-color);
    color: var(--contrast-color);
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1;
    margin-left: auto;
}

.nav-badge-soft {
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
    color: color-mix(in srgb, var(--accent-color), black 8%);
}

.nav-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: var(--sidebar-muted-color);
    transition: transform var(--transition-fast), color var(--transition-fast);
}

    .nav-arrow i {
        font-size: 0.625rem;
    }

.nav-link[aria-expanded=true] > .nav-arrow,
.has-submenu.open > .nav-link > .nav-arrow {
    transform: rotate(90deg);
    color: var(--accent-color);
}

.nav-item > .nav-link.active {
    color: var(--contrast-color);
    background: linear-gradient(135deg, var(--accent-color), color-mix(in srgb, var(--accent-color), black 12%));
    box-shadow: 0 12px 20px -14px color-mix(in srgb, var(--accent-color), black 18%);
}

    .nav-item > .nav-link.active .nav-icon {
        background: rgba(255, 255, 255, 0.18);
        color: var(--contrast-color);
    }

    .nav-item > .nav-link.active .nav-badge-soft,
    .nav-item > .nav-link.active .nav-badge {
        background: rgba(255, 255, 255, 0.2);
        color: var(--contrast-color);
    }

    .nav-item > .nav-link.active .nav-arrow {
        color: var(--contrast-color);
    }

.nav-item.has-submenu.open > .nav-link:not(.active) {
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--heading-color);
}

    .nav-item.has-submenu.open > .nav-link:not(.active) .nav-icon {
        background: color-mix(in srgb, var(--accent-color), transparent 84%);
    }

/*--------------------------------------------------------------
# Submenus
--------------------------------------------------------------*/
.nav-submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition-base);
}

    .has-submenu.open > .nav-submenu,
    .nav-submenu.show {
        margin-top: 4px;
    }

    .nav-submenu > li {
        position: relative;
    }

        .nav-submenu > li > .nav-link {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-left: 14px;
            padding: 7px 10px 7px 12px;
            border-radius: var(--radius-md);
            font-size: 0.785rem;
            font-weight: 500;
            color: var(--sidebar-muted-color);
            text-decoration: none;
            transition: all var(--transition-fast);
        }

            .nav-submenu > li > .nav-link:hover {
                color: var(--sidebar-color);
                background: color-mix(in srgb, var(--accent-color), transparent 92%);
            }

            .nav-submenu > li > .nav-link.active {
                color: color-mix(in srgb, var(--accent-color), black 8%);
                background: color-mix(in srgb, var(--accent-color), transparent 86%);
                font-weight: 700;
            }

.nav-dot {
    width: 7px;
    height: 7px;
    border-radius: var(--radius-full);
    border: 2px solid currentColor;
    opacity: 0.34;
    flex-shrink: 0;
    transition: all var(--transition-fast);
}

.nav-submenu > li > .nav-link:hover .nav-dot,
.nav-submenu > li > .nav-link.active .nav-dot {
    opacity: 1;
    background: currentColor;
}

.nav-submenu .has-submenu > .nav-link {
    font-weight: 600;
}

    .nav-submenu .has-submenu > .nav-link .nav-arrow {
        margin-left: auto;
    }

.nav-submenu .has-submenu.open > .nav-link > .nav-arrow {
    transform: rotate(90deg);
}

.nav-submenu .has-submenu.open > .nav-submenu {
    margin-top: 4px;
}

.nav-submenu .nav-submenu > li > .nav-link {
    margin-left: 28px;
    font-size: 0.75rem;
}

.nav-submenu .nav-submenu .nav-dot {
    width: 6px;
    height: 6px;
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.sidebar-footer {
    margin-top: auto;
    padding: var(--spacing-sm);
    border-top: 1px solid var(--sidebar-border);
}

.sidebar-footer-user {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: var(--radius-xl);
    background: color-mix(in srgb, var(--accent-color), transparent 93%);
    border: 1px solid color-mix(in srgb, var(--accent-color), transparent 82%);
}

.sidebar-footer-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1;
    text-decoration: none;
}

.sidebar-footer-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 2px solid color-mix(in srgb, var(--accent-color), transparent 70%);
    flex-shrink: 0;
}

.sidebar-footer-info {
    min-width: 0;
}

.sidebar-footer-name {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-footer-role {
    font-size: 0.675rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sidebar-muted-color);
    font-weight: 600;
}

.sidebar-footer-actions {
    display: flex;
    gap: 4px;
}

.sidebar-footer-action {
    width: 30px;
    height: 30px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--sidebar-muted-color);
    transition: all var(--transition-fast);
}

    .sidebar-footer-action:hover {
        background: var(--sidebar-hover-bg);
        color: var(--sidebar-color);
    }

    .sidebar-footer-action i {
        font-size: 0.9rem;
    }

.sidebar-footer-logout:hover {
    color: var(--danger-color);
    background: color-mix(in srgb, var(--danger-color), transparent 86%);
}

.sidebar-help-card {
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-radius: var(--radius-lg);
    border: 1px dashed color-mix(in srgb, var(--accent-color), transparent 72%);
    padding: 8px 10px;
    text-decoration: none;
    color: var(--sidebar-muted-color);
    font-size: 0.72rem;
    font-weight: 600;
    transition: all var(--transition-fast);
}

    .sidebar-help-card:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 46%);
        background: color-mix(in srgb, var(--accent-color), transparent 93%);
        color: var(--sidebar-color);
    }

    .sidebar-help-card i {
        font-size: 0.78rem;
    }

.sidebar-help-icon {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 88%);
    flex-shrink: 0;
}

.sidebar-help-text {
    flex: 1;
    line-height: 1.25;
}

/*--------------------------------------------------------------
# Overlay
--------------------------------------------------------------*/
.sidebar-overlay {
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(10, 16, 30, 0.56);
    backdrop-filter: blur(3px);
    z-index: 998;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-base), visibility var(--transition-base);
}

.sidebar-open .sidebar-overlay {
    opacity: 1;
    visibility: visible;
}

@media (min-width: 1200px) {
    .sidebar-overlay {
        display: none;
    }
}

@media (max-width: 575px) {
    .sidebar {
        width: min(86vw, 300px);
    }
}
/*--------------------------------------------------------------
# Footer - FlexAdmin
# Structured utility footer with status signal,
# compact nav links, and right-aligned credits.
--------------------------------------------------------------*/
.footer {
    margin-top: auto;
    padding: 0.2rem var(--spacing-lg);
    background: color-mix(in srgb, var(--surface-color), var(--background-color) 18%);
    border-top: 1px solid var(--border-color);
}

    .footer.footer-fixed {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
    }

@media (min-width: 1200px) {
    .sidebar-hidden .footer.footer-fixed {
        left: 0;
    }
}

.footer-content {
    min-height: var(--footer-height);
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    justify-items: center;
    text-align: center;
    gap: 8px;
}

.footer-meta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 0;
}

.footer-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 28px;
    padding: 0 11px;
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--success-color), transparent 88%);
    color: color-mix(in srgb, var(--success-color), black 14%);
    font-size: 0.71rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.footer-status-dot {
    width: 7px;
    height: 7px;
    border-radius: var(--radius-full);
    background: var(--success-color);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--success-color), transparent 82%);
}

.footer-version {
    font-size: 0.74rem;
    color: var(--muted-color);
    font-weight: 600;
    white-space: nowrap;
}

.footer-links {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

    .footer-links a {
        position: relative;
        color: var(--muted-color);
        text-decoration: none;
        font-size: 0.76rem;
        font-weight: 600;
        transition: color var(--transition-fast);
    }

        .footer-links a:hover {
            color: var(--accent-color);
        }

        .footer-links a:not(:last-child)::after {
            content: "";
            position: absolute;
            right: -9px;
            top: 50%;
            transform: translateY(-50%);
            width: 3px;
            height: 3px;
            border-radius: var(--radius-full);
            background: color-mix(in srgb, var(--muted-color), transparent 38%);
        }

.footer-credits {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

.footer-copyright {
    font-size: 0.74rem;
    color: var(--muted-color);
    line-height: 1.4;
}

    .footer-copyright a {
        color: var(--accent-color);
        text-decoration: none;
        font-weight: 700;
    }

@media (max-width: 991px) {
    .footer {
        padding: 0.25rem var(--spacing-md);
    }

    .footer-content {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        gap: 10px;
    }

    .footer-meta,
    .footer-links,
    .footer-credits {
        justify-content: center;
    }
}

@media (max-width: 575px) {
    .footer-links {
        gap: 12px;
        flex-wrap: wrap;
    }

    .footer-version {
        display: none;
    }
}
/*--------------------------------------------------------------
# Main Content Area
--------------------------------------------------------------*/
.main {
    margin-top: var(--header-height);
    min-height: calc(100svh - var(--header-height));
    min-height: calc(100dvh - var(--header-height));
    display: flex;
    flex-direction: column;
    transition: margin-left var(--transition-base);
    /*transform: translateZ(0);*/
}

/* Desktop: Account for sidebar */
@media (min-width: 1200px) {
    .main {
        margin-left: var(--sidebar-width);
    }

    .sidebar-hidden .main {
        margin-left: 0;
    }
}
/* Main Content */
.main-content {
    flex: 1;
    padding: var(--spacing-xl);
    padding-bottom: 4rem;
}

@media (max-width: 767px) {
    .main-content {
        padding: var(--spacing-md);
        padding-bottom: var(--spacing-xl);
    }

    .page-header {
        flex-direction: column;
    }
}
/* Page Header */
.page-header,
.pagetitle {
    margin-bottom: var(--spacing-xl);
}

.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.page-header-actions {
    display: flex;
    gap: var(--spacing-sm);
}

.page-title,
.pagetitle h1 {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 var(--spacing-sm);
}

/* Breadcrumb */
.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-xs);
    padding: 0;
    margin: 0;
    background: transparent;
    font-size: 0.8125rem;
}

.breadcrumb-item {
    color: var(--muted-color);
}

    .breadcrumb-item a {
        color: var(--muted-color);
        transition: color var(--transition-fast);
    }

        .breadcrumb-item a:hover {
            color: var(--accent-color);
        }

    .breadcrumb-item.active {
        color: var(--default-color);
    }

    .breadcrumb-item + .breadcrumb-item::before {
        content: "/";
        padding-right: var(--spacing-xs);
        color: var(--light-color);
    }

/* Content Sections */
.section {
    margin-bottom: var(--spacing-xl);
}

    .section:last-child {
        margin-bottom: 0;
    }

.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-lg);
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.section-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.section-subtitle {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-top: 2px;
}

/* Dashboard Grid */
.dashboard-grid {
    display: grid;
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-xl);
}

    .dashboard-grid > .card {
        margin-bottom: 0;
        height: 100%;
    }

.dashboard-grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.dashboard-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.dashboard-grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 991px) {
    .dashboard-grid-3,
    .dashboard-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .dashboard-grid-2,
    .dashboard-grid-3,
    .dashboard-grid-4 {
        grid-template-columns: 1fr;
    }
}
/* Two Column Layout */
.two-column-layout {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: var(--spacing-xl);
}

    .two-column-layout > div > .card:last-child {
        margin-bottom: 0;
    }

@media (max-width: 1199px) {
    .two-column-layout {
        grid-template-columns: 1fr;
    }
}
/* Back to Top Button */
.back-to-top {
    position: fixed;
    bottom: var(--spacing-xl);
    right: var(--spacing-xl);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-color);
    color: var(--contrast-color);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-base), visibility var(--transition-base), background-color var(--transition-fast);
    z-index: 999;
}

    .back-to-top:hover {
        background: color-mix(in srgb, var(--accent-color), black 10%);
        color: var(--contrast-color);
    }

    .back-to-top.visible {
        opacity: 1;
        visibility: visible;
    }

    .back-to-top i {
        font-size: 1.25rem;
    }

/* Loading Overlay */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--background-color);
    z-index: 9999;
    transition: opacity var(--transition-slow);
}

    .loading-overlay.fade-out {
        opacity: 0;
        pointer-events: none;
    }

.loading-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border-color);
    border-top-color: var(--accent-color);
    border-radius: var(--radius-full);
    animation: spin 1s linear infinite;
}

/* Empty State */
.empty-state {
    text-align: center;
    padding: var(--spacing-2xl);
}

.empty-state-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    border-radius: var(--radius-full);
}

    .empty-state-icon i {
        font-size: 2rem;
    }

.empty-state-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-sm);
}

.empty-state-text {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-lg);
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

/*--------------------------------------------------------------
# Auth Layout - FlexAdmin
--------------------------------------------------------------*/
.fauth {
    min-height: 100vh;
    background: radial-gradient(circle at 6% 0%, color-mix(in srgb, var(--accent-color), transparent 94%) 0, transparent 38%), radial-gradient(circle at 100% 100%, color-mix(in srgb, var(--info-color), transparent 95%) 0, transparent 34%), var(--background-color);
}

.fauth-split {
    display: grid;
    grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
}

.fauth-centered {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-xl);
}

.fauth-visual {
    background: linear-gradient(165deg, color-mix(in srgb, var(--accent-color), #0f172a 25%), color-mix(in srgb, var(--accent-color), #020617 55%));
    color: #f8fafc;
    padding: 34px 28px;
    position: relative;
    overflow: hidden;
}

    .fauth-visual::before,
    .fauth-visual::after {
        content: "";
        position: absolute;
        border-radius: 999px;
        pointer-events: none;
    }

    .fauth-visual::before {
        width: 220px;
        height: 220px;
        top: -120px;
        right: -90px;
        background: rgba(255, 255, 255, 0.08);
    }

    .fauth-visual::after {
        width: 180px;
        height: 180px;
        bottom: -80px;
        left: -70px;
        background: rgba(255, 255, 255, 0.06);
    }

.fauth-kicker {
    display: inline-flex;
    padding: 4px 9px;
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.16);
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 22px 0 12px;
    position: relative;
    z-index: 1;
}

.fauth-visual-title {
    margin: 0;
    font-size: 1.7rem;
    line-height: 1.2;
    font-weight: 700;
    color: #ffffff;
    position: relative;
    z-index: 1;
}

.fauth-visual-text {
    margin: 10px 0 18px;
    font-size: 0.84rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.84);
    position: relative;
    z-index: 1;
}

.fauth-visual-points {
    display: flex;
    flex-direction: column;
    gap: 9px;
    position: relative;
    z-index: 1;
}

.fauth-point {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.79rem;
    color: rgba(255, 255, 255, 0.92);
}

    .fauth-point i {
        font-size: 0.88rem;
        color: rgba(255, 255, 255, 0.7);
    }

.fauth-main {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.fauth-main-inner {
    width: 100%;
    max-width: 470px;
}

.fauth-logo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: inherit;
    font-size: 1.06rem;
    font-weight: 700;
}

    .fauth-logo img {
        height: 23px;
        width: auto;
    }

.fauth-visual .fauth-logo {
    color: #ffffff;
    position: relative;
    z-index: 1;
}

    .fauth-visual .fauth-logo img {
        filter: brightness(0) invert(1);
    }

.fauth-logo-center {
    display: flex;
    justify-content: center;
    margin-bottom: 16px;
    color: var(--heading-color);
}

.fauth-card {
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    padding: 22px;
}

.fauth-card-sm {
    max-width: 440px;
    margin: 0 auto;
}

.fauth-card-head {
    margin-bottom: 16px;
}

.fauth-title {
    margin: 0;
    color: var(--heading-color);
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.25;
}

.fauth-subtitle {
    margin: 6px 0 0;
    color: var(--muted-color);
    font-size: 0.82rem;
    line-height: 1.55;
}

.fauth-form .form-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-bottom: 6px;
}

.fauth-form .form-control {
    height: 42px;
    border-color: var(--input-border);
    background: var(--input-bg);
    color: var(--default-color);
    font-size: 0.84rem;
}

    .fauth-form .form-control::placeholder {
        color: var(--light-color);
    }

    .fauth-form .form-control:focus {
        box-shadow: none;
        border-color: var(--input-focus-border);
    }

.fauth-form .input-group .btn {
    border-color: var(--input-border);
    color: var(--muted-color);
    background: var(--input-bg);
}

    .fauth-form .input-group .btn:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

    .fauth-form .input-group .btn:focus {
        box-shadow: none;
        border-color: var(--input-focus-border);
    }

.fauth-form .form-check {
    margin: 0;
}

    .fauth-form .form-check .form-check-input {
        margin-top: 0.18rem;
        width: 16px;
        height: 16px;
    }

    .fauth-form .form-check .form-check-label {
        color: var(--default-color);
        font-size: 0.78rem;
    }

.fauth-form .form-text {
    margin-top: 6px;
    font-size: 0.72rem;
    color: var(--muted-color);
}

.fauth-form .btn-primary {
    height: 42px;
    font-weight: 700;
    font-size: 0.84rem;
}

.fauth-field {
    margin-bottom: 12px;
}

.fauth-row-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.fauth-link {
    color: var(--accent-color);
    text-decoration: none;
    font-size: 0.76rem;
    font-weight: 700;
}

    .fauth-link:hover {
        color: color-mix(in srgb, var(--accent-color), black 20%);
    }

.fauth-divider {
    margin: 14px 0;
    position: relative;
    text-align: center;
}

    .fauth-divider span {
        position: relative;
        z-index: 1;
        background: var(--card-bg);
        padding: 0 8px;
        font-size: 0.72rem;
        color: var(--muted-color);
    }

    .fauth-divider::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 50%;
        height: 1px;
        background: var(--border-color);
    }

.fauth-social {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

    .fauth-social .btn {
        height: 38px;
        font-size: 0.76rem;
        font-weight: 700;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
    }

.fauth-foot-text {
    margin: 12px 0 0;
    color: var(--muted-color);
    text-align: center;
    font-size: 0.78rem;
}

.fauth-icon {
    width: 52px;
    height: 52px;
    border-radius: var(--radius-full);
    margin: 0 auto 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 88%);
}

.fauth-icon-success {
    color: var(--success-color);
    background: var(--success-color-light);
}

.fauth-avatar {
    width: 84px;
    height: 84px;
    margin: 0 auto 10px;
}

    .fauth-avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: var(--radius-full);
        border: 3px solid var(--card-bg);
        box-shadow: var(--shadow-md);
    }

.fauth-otp {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}

.fauth-otp-input {
    width: 44px;
    height: 52px;
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
    padding: 0;
}

.fauth-otp-gap {
    color: var(--muted-color);
    font-weight: 700;
    margin: 0 1px;
}

.footer-centered {
    margin-top: 16px;
    text-align: center;
    color: var(--muted-color);
    font-size: 0.72rem;
}

    .footer-centered .footer-copyright {
        margin-bottom: 5px;
    }

        .footer-centered .footer-copyright a {
            color: var(--default-color);
            font-weight: 600;
            text-decoration: none;
        }

    .footer-centered .footer-links {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
    }

        .footer-centered .footer-links a {
            color: var(--muted-color);
            text-decoration: none;
        }

            .footer-centered .footer-links a:hover {
                color: var(--accent-color);
            }

@media (max-width: 991px) {
    .fauth-split {
        grid-template-columns: 1fr;
    }

    .fauth-visual {
        display: none;
    }
}

@media (max-width: 575px) {
    .fauth-main {
        padding: 12px;
    }

    .fauth-centered {
        padding: 12px;
    }

    .fauth-card {
        padding: 16px;
    }

    .fauth-title {
        font-size: 1.24rem;
    }

    .fauth-row-between {
        flex-wrap: wrap;
    }

    .fauth-social {
        grid-template-columns: 1fr;
    }

    .fauth-otp-input {
        width: 38px;
        height: 46px;
        font-size: 1.05rem;
    }
}
/*--------------------------------------------------------------
# Accordion
--------------------------------------------------------------*/
.accordion {
    --bs-accordion-bg: var(--surface-color);
    --bs-accordion-border-color: var(--border-color);
    --bs-accordion-btn-color: var(--heading-color);
    --bs-accordion-btn-bg: var(--surface-color);
    --bs-accordion-active-color: var(--accent-color);
    --bs-accordion-active-bg: color-mix(in srgb, var(--accent-color), transparent 95%);
}

.accordion-button {
    font-weight: 500;
}

    .accordion-button:focus {
        box-shadow: none;
        border-color: var(--border-color);
    }

    .accordion-button:not(.collapsed) {
        box-shadow: none;
    }

    .accordion-button::after {
        --accordion-icon-size: var(--bs-accordion-btn-icon-width, 1.25rem);
        background-image: none !important;
        width: var(--accordion-icon-size);
        height: var(--accordion-icon-size);
        margin-left: auto;
        transform: rotate(0deg);
        transition: transform 0.2s ease;
        -webkit-mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath d='M2 5l6 6 6-6' stroke='black' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e") center/var(--accordion-icon-size) var(--accordion-icon-size) no-repeat;
        mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath d='M2 5l6 6 6-6' stroke='black' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e") center/var(--accordion-icon-size) var(--accordion-icon-size) no-repeat;
        background-color: currentColor;
    }

    .accordion-button:not(.collapsed)::after {
        transform: rotate(180deg);
    }

.accordion-body {
    color: var(--default-color);
}

/* Flush Accordion */
.accordion-flush .accordion-item {
    border-left: 0;
    border-right: 0;
}

    .accordion-flush .accordion-item:first-child {
        border-top: 0;
    }

    .accordion-flush .accordion-item:last-child {
        border-bottom: 0;
    }

.accordion-flush .accordion-button {
    background-color: transparent;
}

    .accordion-flush .accordion-button:not(.collapsed) {
        background-color: transparent;
    }

/* Colored Accordions */
.accordion-primary .accordion-button:not(.collapsed) {
    background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
}

.accordion-primary .accordion-item {
    border-color: color-mix(in srgb, var(--accent-color), transparent 70%);
}

.accordion-success .accordion-button:not(.collapsed) {
    background-color: var(--success-color-light);
    color: var(--success-color);
}

.accordion-success .accordion-item {
    border-color: color-mix(in srgb, var(--success-color), transparent 70%);
}

.accordion-warning .accordion-button:not(.collapsed) {
    background-color: var(--warning-color-light);
    color: color-mix(in srgb, var(--warning-color), black 30%);
}

.accordion-warning .accordion-item {
    border-color: color-mix(in srgb, var(--warning-color), transparent 70%);
}

.accordion-danger .accordion-button:not(.collapsed) {
    background-color: var(--danger-color-light);
    color: var(--danger-color);
}

.accordion-danger .accordion-item {
    border-color: color-mix(in srgb, var(--danger-color), transparent 70%);
}

.accordion-info .accordion-button:not(.collapsed) {
    background-color: var(--info-color-light);
    color: var(--info-color);
}

.accordion-info .accordion-item {
    border-color: color-mix(in srgb, var(--info-color), transparent 70%);
}

/* Dark mode adjustments */
[data-theme=dark] .accordion-warning .accordion-button:not(.collapsed) {
    color: var(--warning-color);
}

/*--------------------------------------------------------------
# Buttons
--------------------------------------------------------------*/
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-lg);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

    .btn:focus-visible {
        outline: none;
        box-shadow: 0 0 0 3px var(--input-focus-ring);
    }

    .btn:disabled,
    .btn.disabled {
        opacity: 0.5;
        pointer-events: none;
    }

/* Button Sizes */
.btn-sm {
    padding: 6px var(--spacing-md);
    font-size: 0.8125rem;
}

.btn-lg {
    padding: var(--spacing-md) var(--spacing-xl);
    font-size: 1rem;
}

/* Primary Button */
.btn-primary {
    color: var(--contrast-color);
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

    .btn-primary:hover {
        color: var(--contrast-color);
        background-color: color-mix(in srgb, var(--accent-color), black 10%);
        border-color: color-mix(in srgb, var(--accent-color), black 10%);
    }

/* Secondary Button */
.btn-secondary {
    color: var(--contrast-color);
    background-color: var(--muted-color);
    border-color: var(--muted-color);
}

    .btn-secondary:hover {
        color: var(--contrast-color);
        background-color: var(--default-color);
        border-color: var(--default-color);
    }

/* Success Button */
.btn-success {
    color: var(--contrast-color);
    background-color: var(--success-color);
    border-color: var(--success-color);
}

    .btn-success:hover {
        color: var(--contrast-color);
        background-color: color-mix(in srgb, var(--success-color), black 10%);
        border-color: color-mix(in srgb, var(--success-color), black 10%);
    }

/* Warning Button */
.btn-warning {
    color: var(--heading-color);
    background-color: var(--warning-color);
    border-color: var(--warning-color);
}

    .btn-warning:hover {
        color: var(--heading-color);
        background-color: color-mix(in srgb, var(--warning-color), black 10%);
        border-color: color-mix(in srgb, var(--warning-color), black 10%);
    }

/* Danger Button */
.btn-danger {
    color: var(--contrast-color);
    background-color: var(--danger-color);
    border-color: var(--danger-color);
}

    .btn-danger:hover {
        color: var(--contrast-color);
        background-color: color-mix(in srgb, var(--danger-color), black 10%);
        border-color: color-mix(in srgb, var(--danger-color), black 10%);
    }

/* Info Button */
.btn-info {
    color: var(--contrast-color);
    background-color: var(--info-color);
    border-color: var(--info-color);
}

    .btn-info:hover {
        color: var(--contrast-color);
        background-color: color-mix(in srgb, var(--info-color), black 10%);
        border-color: color-mix(in srgb, var(--info-color), black 10%);
    }

/* Light Button */
.btn-light {
    color: var(--default-color);
    background-color: var(--background-color);
    border-color: var(--border-color);
}

    .btn-light:hover {
        color: var(--default-color);
        background-color: var(--border-color-light);
        border-color: var(--border-color-dark);
    }

/* Dark Button */
.btn-dark {
    color: var(--contrast-color);
    background-color: var(--heading-color);
    border-color: var(--heading-color);
}

    .btn-dark:hover {
        color: var(--contrast-color);
        background-color: var(--default-color);
        border-color: var(--default-color);
    }

/* Outline Buttons */
.btn-outline-primary {
    color: var(--accent-color);
    border-color: var(--accent-color);
    background-color: transparent;
}

    .btn-outline-primary:hover {
        color: var(--contrast-color);
        background-color: var(--accent-color);
    }

.btn-outline-secondary {
    color: var(--muted-color);
    border-color: var(--muted-color);
    background-color: transparent;
}

    .btn-outline-secondary:hover {
        color: var(--contrast-color);
        background-color: var(--muted-color);
    }

.btn-outline-success {
    color: var(--success-color);
    border-color: var(--success-color);
    background-color: transparent;
}

    .btn-outline-success:hover {
        color: var(--contrast-color);
        background-color: var(--success-color);
    }

.btn-outline-warning {
    color: var(--warning-color);
    border-color: var(--warning-color);
    background-color: transparent;
}

    .btn-outline-warning:hover {
        color: var(--heading-color);
        background-color: var(--warning-color);
    }

.btn-outline-danger {
    color: var(--danger-color);
    border-color: var(--danger-color);
    background-color: transparent;
}

    .btn-outline-danger:hover {
        color: var(--contrast-color);
        background-color: var(--danger-color);
    }

.btn-outline-info {
    color: var(--info-color);
    border-color: var(--info-color);
    background-color: transparent;
}

    .btn-outline-info:hover {
        color: var(--contrast-color);
        background-color: var(--info-color);
    }

/* Accent Button - Uses template accent color */
.btn-accent {
    color: var(--contrast-color);
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

    .btn-accent:hover {
        color: var(--contrast-color);
        background-color: color-mix(in srgb, var(--accent-color), black 10%);
        border-color: color-mix(in srgb, var(--accent-color), black 10%);
    }

.btn-outline-accent {
    color: var(--accent-color);
    border-color: var(--border-color);
    background-color: transparent;
}

    .btn-outline-accent:hover {
        color: var(--accent-color);
        background-color: color-mix(in srgb, var(--accent-color), transparent 92%);
        border-color: var(--accent-color);
    }

/* Btn-check with accent outline (radio/checkbox toggles) */
.btn-check:checked + .btn-outline-accent,
.btn-check:active + .btn-outline-accent {
    color: var(--contrast-color);
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

    .btn-check:checked + .btn-outline-accent:hover,
    .btn-check:active + .btn-outline-accent:hover {
        background-color: color-mix(in srgb, var(--accent-color), black 10%);
        border-color: color-mix(in srgb, var(--accent-color), black 10%);
    }

.btn-check:focus-visible + .btn-outline-accent {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 75%);
}

/* Btn-check with primary outline - use accent color */
.btn-check + .btn-outline-primary {
    color: var(--accent-color);
    border-color: var(--accent-color);
}

.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary {
    color: var(--contrast-color);
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

    .btn-check:checked + .btn-outline-primary:hover,
    .btn-check:active + .btn-outline-primary:hover {
        background-color: color-mix(in srgb, var(--accent-color), black 10%);
        border-color: color-mix(in srgb, var(--accent-color), black 10%);
    }

.btn-check:focus-visible + .btn-outline-primary {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 75%);
}

/* Button group with outline-primary active state - use accent color */
.btn-group .btn-outline-primary.active,
.btn-group .btn-outline-primary:active {
    color: var(--contrast-color);
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

    .btn-group .btn-outline-primary.active:hover,
    .btn-group .btn-outline-primary:active:hover {
        background-color: color-mix(in srgb, var(--accent-color), black 10%);
        border-color: color-mix(in srgb, var(--accent-color), black 10%);
    }

/* Ghost/Link Button */
.btn-ghost {
    color: var(--muted-color);
    background-color: transparent;
    border-color: transparent;
}

    .btn-ghost:hover {
        color: var(--default-color);
        background-color: var(--background-color);
    }

.btn-link {
    color: var(--accent-color);
    background-color: transparent;
    border-color: transparent;
    text-decoration: none;
}

    .btn-link:hover {
        color: color-mix(in srgb, var(--accent-color), black 10%);
        text-decoration: underline;
    }

/* Icon Button */
.btn-icon {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: var(--radius-md);
}

    .btn-icon.btn-sm {
        width: 32px;
        height: 32px;
    }

    .btn-icon.btn-lg {
        width: 48px;
        height: 48px;
    }

/* Button Group */
.btn-group {
    display: inline-flex;
}

    .btn-group > .btn {
        border-radius: 0;
    }

        .btn-group > .btn:first-child,
        .btn-group > .btn-check:first-child + .btn {
            border-top-left-radius: var(--radius-md);
            border-bottom-left-radius: var(--radius-md);
        }

        .btn-group > .btn:last-child,
        .btn-group > .btn-check:last-of-type + .btn {
            border-top-right-radius: var(--radius-md);
            border-bottom-right-radius: var(--radius-md);
        }

        .btn-group > .btn:not(:first-child),
        .btn-group > .btn-check + .btn {
            margin-left: -1px;
        }

    /* Reset margin for first btn-check + btn */
    .btn-group > .btn-check:first-child + .btn {
        margin-left: 0;
    }

/* Loading State */
.btn-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

    .btn-loading::after {
        content: "";
        position: absolute;
        width: 1em;
        height: 1em;
        border: 2px solid currentColor;
        border-right-color: transparent;
        border-radius: 50%;
        animation: spin 0.6s linear infinite;
        color: var(--contrast-color);
    }

.btn-outline-primary.btn-loading::after,
.btn-outline-secondary.btn-loading::after,
.btn-outline-success.btn-loading::after,
.btn-outline-warning.btn-loading::after,
.btn-outline-danger.btn-loading::after,
.btn-outline-info.btn-loading::after {
    color: currentColor;
}

/*--------------------------------------------------------------
# Cards
--------------------------------------------------------------*/
.card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--card-shadow);
}

.card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) var(--spacing-lg);
    background: transparent;
    border-bottom: 1px solid var(--border-color);
}

    .card-header:first-child {
        border-radius: calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;
    }

.card-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.card-subtitle {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-top: 2px;
}

.card-body {
    padding: var(--spacing-lg);
}

.card-footer {
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--background-color);
    border-top: 1px solid var(--border-color);
    border-radius: 0 0 calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px);
}

/* Card Actions (Dropdown menu) */
.card-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

    .card-actions .btn-icon {
        width: 32px;
        height: 32px;
        color: var(--muted-color);
    }

        .card-actions .btn-icon:hover {
            color: var(--default-color);
            background: var(--background-color);
        }

/* Card with no header border */
.card-borderless .card-header {
    border-bottom: none;
    padding-bottom: 0;
}

/* Card with colored header */
.card-header-primary {
    background: var(--accent-color);
    color: var(--contrast-color);
    border-bottom: none;
}

    .card-header-primary .card-title {
        color: var(--contrast-color);
    }

/* Card image */
.card-img-top {
    border-radius: calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;
}

.card-img-bottom {
    border-radius: 0 0 calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px);
}

/* Horizontal Card */
.card-horizontal {
    flex-direction: row;
}

    .card-horizontal .card-img-left {
        border-radius: calc(var(--radius-lg) - 1px) 0 0 calc(var(--radius-lg) - 1px);
        width: 200px;
        object-fit: cover;
    }

/* Card Link */
.card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

    .card-link:hover .card {
        border-color: var(--accent-color);
        box-shadow: var(--shadow-md);
    }

/* Card hover effect */
.card-hover {
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

    .card-hover:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-md);
    }

/*--------------------------------------------------------------
# Dashboard Widgets
--------------------------------------------------------------*/
.widget {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--card-shadow);
}

.widget-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--border-color);
}

.widget-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.widget-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.widget-action {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--muted-color);
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

    .widget-action:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.widget-body {
    padding: var(--spacing-lg);
    position: relative;
}

/* Widget Loading State */
.widget-loading .widget-body::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--card-bg);
    display: flex;
    align-items: center;
    justify-content: center;
}

.widget-loading .widget-action[data-action=refresh] i {
    animation: spin 1s linear infinite;
}

/* Stat Widget */
.widget-stat {
    padding: var(--spacing-lg);
}

.widget-stat-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: var(--spacing-sm);
}

.widget-stat-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 1.5rem;
}

    .widget-stat-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-stat-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-stat-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .widget-stat-icon.danger {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

    .widget-stat-icon.info {
        background: var(--info-color-light);
        color: var(--info-color);
    }

.widget-stat-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.2;
}

.widget-stat-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-top: 2px;
}

.widget-stat-change {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 0.75rem;
    font-weight: 500;
    margin-top: var(--spacing-sm);
    padding: 2px 8px;
    border-radius: var(--radius-full);
}

    .widget-stat-change.positive {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-stat-change.negative {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

/* Progress Widget */
.widget-progress {
    padding: var(--spacing-lg);
}

.widget-progress-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-sm);
}

.widget-progress-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.widget-progress-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--accent-color);
}

/* List Widget */
.widget-list {
    padding: 0;
}

.widget-list-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--border-color-light);
    transition: background-color var(--transition-fast);
}

    .widget-list-item:last-child {
        border-bottom: none;
    }

    .widget-list-item:hover {
        background: var(--background-color);
    }

.widget-list-avatar {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.widget-list-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    flex-shrink: 0;
}

.widget-list-content {
    flex: 1;
    min-width: 0;
}

.widget-list-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.widget-list-subtitle {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.widget-list-meta {
    font-size: 0.75rem;
    color: var(--light-color);
    text-align: right;
    flex-shrink: 0;
}

/*--------------------------------------------------------------
# Badges
--------------------------------------------------------------*/
.badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25em 0.5em;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-sm);
}

    /* Badge Colors - Bootstrap's .bg-* handle backgrounds, these set text color */
    .badge.bg-primary {
        color: var(--contrast-color);
    }

    .badge.bg-secondary {
        color: var(--contrast-color);
    }

    .badge.bg-success {
        color: var(--contrast-color);
    }

    .badge.bg-warning {
        color: var(--heading-color);
    }

    .badge.bg-danger {
        color: var(--contrast-color);
    }

    .badge.bg-info {
        color: var(--contrast-color);
    }

    .badge.bg-light {
        color: var(--default-color);
    }

    .badge.bg-dark {
        color: var(--contrast-color);
    }

/* Soft/Light Badge Variants */
.badge-soft-primary {
    background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
}

.badge-soft-success {
    background-color: var(--success-color-light);
    color: var(--success-color);
}

.badge-soft-warning {
    background-color: var(--warning-color-light);
    color: var(--warning-color);
}

.badge-soft-danger {
    background-color: var(--danger-color-light);
    color: var(--danger-color);
}

.badge-soft-info {
    background-color: var(--info-color-light);
    color: var(--info-color);
}

.badge-soft-secondary {
    background-color: var(--border-color-light);
    color: var(--muted-color);
}

/* Outline Badges */
.badge-outline-primary {
    background-color: transparent;
    border: 1px solid var(--accent-color);
    color: var(--accent-color);
}

.badge-outline-secondary {
    background-color: transparent;
    border: 1px solid var(--muted-color);
    color: var(--muted-color);
}

.badge-outline-success {
    background-color: transparent;
    border: 1px solid var(--success-color);
    color: var(--success-color);
}

.badge-outline-warning {
    background-color: transparent;
    border: 1px solid var(--warning-color);
    color: var(--warning-color);
}

.badge-outline-danger {
    background-color: transparent;
    border: 1px solid var(--danger-color);
    color: var(--danger-color);
}

.badge-outline-info {
    background-color: transparent;
    border: 1px solid var(--info-color);
    color: var(--info-color);
}

/* Pill Badge - Bootstrap has .rounded-pill, this adds badge-specific padding */
.badge.rounded-pill {
    padding-left: 0.75em;
    padding-right: 0.75em;
}

/* Badge with Icon */
.badge-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.25em;
}

    .badge-icon i {
        font-size: 0.875em;
    }

/* Badge Dot */
.badge-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border-radius: var(--radius-full);
}

.badge-dot-lg {
    width: 10px;
    height: 10px;
}

/* Status Badge */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: var(--radius-full);
}

    .status-badge::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: var(--radius-full);
        background-color: currentColor;
    }

.status-badge-active {
    background-color: var(--success-color-light);
    color: var(--success-color);
}

.status-badge-inactive {
    background-color: var(--border-color-light);
    color: var(--muted-color);
}

.status-badge-pending {
    background-color: var(--warning-color-light);
    color: var(--warning-color);
}

.status-badge-error {
    background-color: var(--danger-color-light);
    color: var(--danger-color);
}

/* Badge Sizes */
.badge-sm {
    padding: 0.2em 0.4em;
    font-size: 0.625rem;
}

.badge-lg {
    padding: 0.35em 0.65em;
    font-size: 0.875rem;
}

/*--------------------------------------------------------------
# Alerts
--------------------------------------------------------------*/
.alert {
    position: relative;
    padding: var(--spacing-md) var(--spacing-lg);
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    font-size: 0.875rem;
}

.alert-heading {
    font-weight: 600;
    margin-bottom: var(--spacing-sm);
    color: inherit;
}

.alert p:last-child {
    margin-bottom: 0;
}

/* Alert Colors */
.alert-primary {
    background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
    border-color: var(--accent-color);
    color: color-mix(in srgb, var(--accent-color), black 15%);
}

.alert-secondary {
    background-color: var(--border-color-light);
    border-color: var(--border-color-dark);
    color: var(--default-color);
}

.alert-success {
    background-color: var(--success-color-light);
    border-color: var(--success-color);
    color: color-mix(in srgb, var(--success-color), black 30%);
}

.alert-warning {
    background-color: var(--warning-color-light);
    border-color: var(--warning-color);
    color: color-mix(in srgb, var(--warning-color), black 30%);
}

.alert-danger {
    background-color: var(--danger-color-light);
    border-color: var(--danger-color);
    color: color-mix(in srgb, var(--danger-color), black 30%);
}

.alert-info {
    background-color: var(--info-color-light);
    border-color: var(--info-color);
    color: color-mix(in srgb, var(--info-color), black 30%);
}

/* Dark mode adjustments */
[data-theme=dark] .alert-success {
    color: var(--success-color);
}

[data-theme=dark] .alert-warning {
    color: var(--warning-color);
}

[data-theme=dark] .alert-danger {
    color: var(--danger-color);
}

[data-theme=dark] .alert-info {
    color: var(--info-color);
}

[data-theme=dark] .alert-primary {
    color: var(--accent-color);
}

/* Alert with Icon */
.alert-icon {
    display: flex;
    gap: var(--spacing-md);
}

    .alert-icon > i {
        font-size: 1.25rem;
        flex-shrink: 0;
        margin-top: 2px;
    }

.alert-icon-content {
    flex: 1;
}

/* Dismissible Alert */
.alert-dismissible {
    padding-right: calc(var(--spacing-lg) + 32px);
}

    .alert-dismissible .btn-close {
        position: absolute;
        top: 50%;
        right: var(--spacing-md);
        transform: translateY(-50%);
        padding: var(--spacing-sm);
        background: transparent;
        border: none;
        opacity: 0.5;
        cursor: pointer;
        transition: opacity var(--transition-fast);
    }

        .alert-dismissible .btn-close:hover {
            opacity: 1;
        }

        .alert-dismissible .btn-close i {
            font-size: 1rem;
        }

/* Alert Outline Variants */
.alert-outline-primary {
    background-color: transparent;
    border-color: var(--accent-color);
    color: var(--accent-color);
}

.alert-outline-success {
    background-color: transparent;
    border-color: var(--success-color);
    color: var(--success-color);
}

.alert-outline-warning {
    background-color: transparent;
    border-color: var(--warning-color);
    color: var(--warning-color);
}

.alert-outline-danger {
    background-color: transparent;
    border-color: var(--danger-color);
    color: var(--danger-color);
}

.alert-outline-info {
    background-color: transparent;
    border-color: var(--info-color);
    color: var(--info-color);
}

/* Solid Background Variants */
.alert-solid-primary {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--contrast-color);
}

.alert-solid-success {
    background-color: var(--success-color);
    border-color: var(--success-color);
    color: var(--contrast-color);
}

.alert-solid-warning {
    background-color: var(--warning-color);
    border-color: var(--warning-color);
    color: var(--heading-color);
}

.alert-solid-danger {
    background-color: var(--danger-color);
    border-color: var(--danger-color);
    color: var(--contrast-color);
}

.alert-solid-info {
    background-color: var(--info-color);
    border-color: var(--info-color);
    color: var(--contrast-color);
}

/* Alert Link */
.alert-link {
    font-weight: 600;
    color: inherit;
    text-decoration: underline;
}

/* Alert List */
.alert ul {
    margin-bottom: 0;
    padding-left: var(--spacing-lg);
}

    .alert ul li {
        margin-top: var(--spacing-xs);
    }

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
.form-group {
    margin-bottom: var(--spacing-lg);
}

.form-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    margin-bottom: var(--spacing-sm);
}

.form-label-optional {
    font-weight: 400;
    color: var(--muted-color);
    margin-left: var(--spacing-xs);
}

/* Text Inputs */
.form-control {
    display: block;
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--default-color);
    background-color: var(--input-bg);
    background-clip: padding-box;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

    .form-control:focus {
        outline: none;
        border-color: var(--input-focus-border);
        box-shadow: none;
    }

    .form-control::placeholder {
        color: var(--light-color);
    }

    .form-control:disabled,
    .form-control[readonly] {
        background-color: var(--background-color);
        opacity: 0.7;
        cursor: not-allowed;
    }

/* Form Control Sizes */
.form-control-sm {
    padding: 6px var(--spacing-sm);
    font-size: 0.8125rem;
    border-radius: var(--radius-sm);
}

.form-control-lg {
    padding: var(--spacing-md) var(--spacing-lg);
    font-size: 1rem;
    border-radius: var(--radius-md);
}

/* Textarea */
textarea.form-control {
    min-height: 100px;
    resize: vertical;
}

/* Select */
.form-select {
    display: block;
    width: 100%;
    padding: var(--spacing-sm) calc(var(--spacing-md) + 24px) var(--spacing-sm) var(--spacing-md);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--default-color);
    background-color: var(--input-bg);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right var(--spacing-md) center;
    background-size: 16px 12px;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    appearance: none;
    cursor: pointer;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

    .form-select:focus {
        outline: none;
        border-color: var(--input-focus-border);
        box-shadow: none;
    }

/* Checkbox & Radio */
.form-check {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    min-height: 1.5rem;
}

.form-check-input {
    width: 1.125rem;
    height: 1.125rem;
    margin: 0;
    vertical-align: top;
    background-color: var(--input-bg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border: 1px solid var(--input-border);
    appearance: none;
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

    .form-check-input[type=checkbox] {
        border-radius: var(--radius-sm);
    }

    .form-check-input[type=radio] {
        border-radius: 50%;
    }

    .form-check-input:focus {
        outline: none;
        border-color: var(--input-focus-border);
        box-shadow: none;
    }

    .form-check-input:checked {
        background-color: var(--accent-color);
        border-color: var(--accent-color);
    }

        .form-check-input:checked[type=checkbox] {
            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:checked[type=radio] {
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
        }

.form-check-label {
    font-size: 0.9375rem;
    color: var(--default-color);
    cursor: pointer;
}

/* Switch */
.form-switch .form-check-input {
    width: 2.5rem;
    height: 1.25rem;
    border-radius: var(--radius-full);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2364748b'/%3e%3c/svg%3e");
    background-position: left center;
    transition: background-position var(--transition-fast), background-color var(--transition-fast);
}

    .form-switch .form-check-input:checked {
        background-position: right center;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
    }

/* Input Group */
.input-group {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
}

    .input-group > .form-control {
        position: relative;
        flex: 1 1 auto;
        width: 1%;
        min-width: 0;
    }

        .input-group > .form-control:not(:first-child) {
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }

        .input-group > .form-control:not(:last-child) {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

.input-group-text {
    display: flex;
    align-items: center;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--muted-color);
    text-align: center;
    white-space: nowrap;
    background-color: var(--background-color);
    border: 1px solid var(--input-border);
}

.input-group > .input-group-text:first-child {
    border-top-left-radius: var(--radius-md);
    border-bottom-left-radius: var(--radius-md);
    border-right: 0;
}

.input-group > .input-group-text:last-child {
    border-top-right-radius: var(--radius-md);
    border-bottom-right-radius: var(--radius-md);
    border-left: 0;
}

/* Form Text/Help */
.form-text {
    margin-top: var(--spacing-xs);
    font-size: 0.8125rem;
    color: var(--muted-color);
}

/* Validation States */
.is-valid {
    border-color: var(--success-color) !important;
}

    .is-valid:focus {
        box-shadow: none !important;
    }

.is-invalid {
    border-color: var(--danger-color) !important;
}

    .is-invalid:focus {
        box-shadow: none !important;
    }

.valid-feedback,
.invalid-feedback {
    display: none;
    margin-top: var(--spacing-xs);
    font-size: 0.8125rem;
}

.valid-feedback {
    color: var(--success-color);
}

.invalid-feedback {
    color: var(--danger-color);
}

.is-valid ~ .valid-feedback,
.is-invalid ~ .invalid-feedback {
    display: block;
}

/* Floating Labels */
.form-floating {
    position: relative;
}

    .form-floating > .form-control {
        height: 56px;
        padding: 1.5rem var(--spacing-md) 0.5rem;
    }

    .form-floating > label {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        padding: var(--spacing-md);
        pointer-events: none;
        border: 1px solid transparent;
        transform-origin: 0 0;
        transition: opacity var(--transition-fast), transform var(--transition-fast);
        color: var(--muted-color);
    }

    .form-floating > .form-control:focus ~ label,
    .form-floating > .form-control:not(:placeholder-shown) ~ label {
        opacity: 0.65;
        transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
    }

/* Required Indicator */
.required::after {
    content: " *";
    color: var(--danger-color);
}

/*--------------------------------------------------------------
# Tables
--------------------------------------------------------------*/
.table {
    width: 100%;
    margin-bottom: 0;
    color: var(--default-color);
    vertical-align: middle;
    border-color: var(--border-color);
}

    .table > :not(caption) > * > * {
        padding: var(--spacing-md) var(--spacing-md);
        background-color: transparent;
        border-bottom-width: 1px;
        box-shadow: none;
    }

    .table > thead {
        vertical-align: bottom;
    }

        .table > thead > tr > th {
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--muted-color);
            background-color: var(--table-header-bg);
            border-bottom: 1px solid var(--border-color);
        }

    .table > tbody > tr > td {
        font-size: 0.875rem;
        border-bottom: 1px solid var(--border-color-light);
    }

    .table > tbody > tr:last-child > td {
        border-bottom: none;
    }

/* Striped Table */
.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--table-stripe-bg);
    color: var(--default-color);
}

/* Hover Table */
.table-hover > tbody > tr:hover > * {
    background-color: var(--table-hover-bg);
    color: var(--default-color);
}

/* Bordered Table */
.table-bordered > :not(caption) > * {
    border-width: 1px 0;
}

    .table-bordered > :not(caption) > * > * {
        border-width: 0 1px;
    }

/* Borderless Table */
.table-borderless > :not(caption) > * > * {
    border-bottom-width: 0;
}

/* Small Table */
.table-sm > :not(caption) > * > * {
    padding: var(--spacing-sm) var(--spacing-sm);
}

/* Responsive Table */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Table with Actions */
.table-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

    .table-actions .btn-icon {
        width: 32px;
        height: 32px;
    }

/* Table User Cell */
.table-user {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.table-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.table-user-name {
    font-weight: 500;
    color: var(--heading-color);
}

.table-user-email {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

/* Table Status */
.table-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8125rem;
    font-weight: 500;
}

    .table-status::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: var(--radius-full);
    }

.table-status-active::before {
    background-color: var(--success-color);
}

.table-status-inactive::before {
    background-color: var(--light-color);
}

.table-status-pending::before {
    background-color: var(--warning-color);
}

/* Sortable Headers */
.table-sortable th {
    cursor: pointer;
    user-select: none;
}

    .table-sortable th:hover {
        background-color: var(--table-hover-bg);
    }

.table-sort-icon {
    margin-left: var(--spacing-xs);
    opacity: 0.3;
}

.table-sortable th.sorted .table-sort-icon {
    opacity: 1;
    color: var(--accent-color);
}

/* Selectable Rows */
.table-selectable tbody tr {
    cursor: pointer;
}

    .table-selectable tbody tr.selected {
        background-color: color-mix(in srgb, var(--accent-color), transparent 90%) !important;
    }

/* Empty Table State */
.table-empty {
    text-align: center;
    padding: var(--spacing-2xl) var(--spacing-lg);
    color: var(--muted-color);
}

.table-empty-icon {
    font-size: 2rem;
    margin-bottom: var(--spacing-md);
    opacity: 0.5;
}

/* DataTables Overrides (when using simple-datatables) */
.datatable-wrapper {
    font-size: 0.875rem;
}

.datatable-top,
.datatable-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
}

.datatable-search {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .datatable-search input {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 0.875rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        background: var(--input-bg);
        color: var(--default-color);
    }

        .datatable-search input:focus {
            outline: none;
            border-color: var(--accent-color);
            box-shadow: 0 0 0 3px var(--input-focus-ring);
        }

.datatable-dropdown {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .datatable-dropdown select {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 0.875rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        background: var(--input-bg);
        color: var(--default-color);
    }

.datatable-info {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.datatable-pagination {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

    .datatable-pagination button {
        min-width: 32px;
        height: 32px;
        padding: 0 var(--spacing-sm);
        font-size: 0.8125rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-sm);
        background: var(--surface-color);
        color: var(--default-color);
        cursor: pointer;
        transition: background-color var(--transition-fast), border-color var(--transition-fast);
    }

        .datatable-pagination button:hover:not(:disabled) {
            background: var(--background-color);
            border-color: var(--border-color-dark);
        }

        .datatable-pagination button.active {
            background: var(--accent-color);
            border-color: var(--accent-color);
            color: var(--contrast-color);
        }

        .datatable-pagination button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }

/*--------------------------------------------------------------
# Modals
--------------------------------------------------------------*/
.modal {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1055;
    display: none;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    outline: 0;
}

    .modal.show {
        display: block;
    }

.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    width: 100vw;
    height: 100vh;
    background-color: color-mix(in srgb, var(--default-color), transparent 50%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

    .modal-backdrop.show {
        opacity: 1;
    }

.modal-dialog {
    position: relative;
    width: auto;
    margin: var(--spacing-lg);
    pointer-events: none;
    transform: translateY(-20px);
    opacity: 0;
    transition: transform var(--transition-base), opacity var(--transition-base);
}

.modal.show .modal-dialog {
    transform: translateY(0);
    opacity: 1;
}

.modal-dialog-centered {
    display: flex;
    align-items: center;
    min-height: calc(100% - var(--spacing-lg) * 2);
}

.modal-dialog-scrollable {
    height: calc(100% - var(--spacing-lg) * 2);
}

    .modal-dialog-scrollable .modal-content {
        max-height: 100%;
        overflow: hidden;
    }

    .modal-dialog-scrollable .modal-body {
        overflow-y: auto;
    }

.modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-color: var(--surface-color);
    background-clip: padding-box;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
    outline: 0;
}

.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-lg);
    border-bottom: 1px solid var(--border-color);
    border-top-left-radius: calc(var(--radius-xl) - 1px);
    border-top-right-radius: calc(var(--radius-xl) - 1px);
}

.modal-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color);
}

.btn-close {
    box-sizing: content-box;
    width: 1em;
    height: 1em;
    padding: 0.25em 0.25em;
    color: var(--default-color);
    background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
    border: 0;
    border-radius: 0.375rem;
    opacity: 0.5;
    cursor: pointer;
    transition: opacity var(--transition-fast);
}

    .btn-close:hover {
        opacity: 1;
    }

    .btn-close:focus {
        outline: 0;
        box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--accent-color), transparent 75%);
        opacity: 1;
    }

[data-theme=dark] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.modal-body {
    position: relative;
    flex: 1 1 auto;
    padding: var(--spacing-lg);
}

.modal-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--spacing-sm);
    padding: var(--spacing-lg);
    border-top: 1px solid var(--border-color);
    border-bottom-right-radius: calc(var(--radius-xl) - 1px);
    border-bottom-left-radius: calc(var(--radius-xl) - 1px);
}

/* Modal Sizes */
@media (min-width: 576px) {
    .modal-dialog {
        max-width: 500px;
        margin: var(--spacing-xl) auto;
    }

    .modal-sm {
        max-width: 380px;
    }
}

@media (min-width: 992px) {
    .modal-lg {
        max-width: 800px;
    }

    .modal-xl {
        max-width: 1140px;
    }
}
/* Fullscreen Modal */
.modal-fullscreen {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0;
}

    .modal-fullscreen .modal-content {
        height: 100%;
        border: 0;
        border-radius: 0;
    }

/* Confirmation Modal */
.modal-confirm .modal-body {
    text-align: center;
    padding: var(--spacing-xl);
}

.modal-confirm-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    font-size: 2rem;
}

    .modal-confirm-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .modal-confirm-icon.danger {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

    .modal-confirm-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

.modal-confirm-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-sm);
}

.modal-confirm-text {
    color: var(--muted-color);
    margin-bottom: var(--spacing-lg);
}

.modal-confirm .modal-footer {
    justify-content: center;
    border-top: none;
    padding-top: 0;
}

/*--------------------------------------------------------------
# Dropdowns
--------------------------------------------------------------*/
.dropdown {
    position: relative;
}

.dropdown-toggle {
    white-space: nowrap;
}

    .dropdown-toggle::after {
        display: inline-block;
        margin-left: 0.5em;
        vertical-align: 0.15em;
        content: "";
        border-top: 0.3em solid;
        border-right: 0.3em solid transparent;
        border-bottom: 0;
        border-left: 0.3em solid transparent;
    }

    .dropdown-toggle:empty::after {
        margin-left: 0;
    }

.dropdown-menu {
    position: absolute;
    z-index: 1000;
    display: none;
    min-width: 180px;
    padding: var(--spacing-sm) 0;
    margin: 0;
    font-size: 0.875rem;
    color: var(--default-color);
    text-align: left;
    list-style: none;
    background-color: var(--surface-color);
    background-clip: padding-box;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}

    .dropdown-menu.show {
        display: block;
    }

/* Dropdown positioning */
.dropdown-menu-end {
    right: 0;
    left: auto;
}

.dropdown-menu-start {
    right: auto;
    left: 0;
}

/* Dropup, Dropstart, Dropend */
.dropup .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: var(--spacing-xs);
}

.dropup .dropdown-toggle::after {
    border-top: 0;
    border-bottom: 0.3em solid;
}

.dropend .dropdown-menu {
    top: 0;
    right: auto;
    left: 100%;
    margin-top: 0;
    margin-left: var(--spacing-xs);
}

.dropstart .dropdown-menu {
    top: 0;
    right: 100%;
    left: auto;
    margin-top: 0;
    margin-right: var(--spacing-xs);
}

/* Dropdown Items */
.dropdown-item {
    display: flex;
    align-items: center;
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    clear: both;
    font-weight: 400;
    color: var(--default-color);
    text-align: inherit;
    white-space: nowrap;
    background-color: transparent;
    border: 0;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

    .dropdown-item:hover,
    .dropdown-item:focus {
        color: var(--default-color);
        background-color: var(--background-color);
    }

    .dropdown-item.active,
    .dropdown-item:active {
        color: var(--accent-color);
        background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
    }

    .dropdown-item:disabled,
    .dropdown-item.disabled {
        color: var(--light-color);
        pointer-events: none;
        background-color: transparent;
    }

    /* Dropdown Item with Icon */
    .dropdown-item i {
        width: 20px;
        margin-right: var(--spacing-sm);
        color: var(--muted-color);
        text-align: center;
    }

    .dropdown-item:hover i {
        color: var(--accent-color);
    }

/* Dropdown Divider */
.dropdown-divider {
    height: 0;
    margin: var(--spacing-sm) 0;
    overflow: hidden;
    border-top: 1px solid var(--border-color);
}

/* Dropdown Header */
.dropdown-header {
    display: block;
    padding: var(--spacing-sm) var(--spacing-md);
    margin-bottom: 0;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
    white-space: nowrap;
}

/* Dropdown Text */
.dropdown-item-text {
    display: block;
    padding: var(--spacing-sm) var(--spacing-md);
    color: var(--muted-color);
}

/* Dropdown Menu Dark */
.dropdown-menu-dark {
    color: var(--light-color);
    background-color: var(--heading-color);
    border-color: transparent;
}

    .dropdown-menu-dark .dropdown-item {
        color: var(--light-color);
    }

        .dropdown-menu-dark .dropdown-item:hover,
        .dropdown-menu-dark .dropdown-item:focus {
            color: var(--contrast-color);
            background-color: rgba(255, 255, 255, 0.1);
        }

    .dropdown-menu-dark .dropdown-divider {
        border-color: rgba(255, 255, 255, 0.1);
    }

    .dropdown-menu-dark .dropdown-header {
        color: var(--muted-color);
    }

/* Dropdown with Animation */
.dropdown-menu[data-bs-popper] {
    top: 100%;
    left: 0;
    margin-top: var(--spacing-xs);
}

/* Wide Dropdown */
.dropdown-menu-wide {
    min-width: 280px;
}

/* Dropdown with Scrollable Content */
.dropdown-menu-scrollable {
    max-height: 300px;
    overflow-y: auto;
}

/* Dropdown Checkbox/Radio */
.dropdown-item-check {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .dropdown-item-check input {
        margin: 0;
    }

/*--------------------------------------------------------------
# Navigation Components (Tabs, Pills, etc.)
--------------------------------------------------------------*/
.nav {
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.nav-link {
    display: block;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--muted-color);
    text-decoration: none;
    transition: color var(--transition-fast), background-color var(--transition-fast);
}

    .nav-link:hover,
    .nav-link:focus {
        color: var(--accent-color);
    }

    .nav-link.disabled {
        color: var(--light-color);
        pointer-events: none;
        cursor: default;
    }

    .nav-link.active {
        color: var(--accent-color);
    }

/* Tabs */
.nav-tabs {
    border-bottom: 1px solid var(--border-color);
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; /* Firefox */
}

    .nav-tabs::-webkit-scrollbar {
        display: none; /* Chrome, Safari */
    }

    .nav-tabs .nav-item {
        flex-shrink: 0;
    }

    .nav-tabs .nav-link {
        margin-bottom: -1px;
        background: none;
        border: 1px solid transparent;
        border-top-left-radius: var(--radius-md);
        border-top-right-radius: var(--radius-md);
        white-space: nowrap;
    }

        .nav-tabs .nav-link:hover,
        .nav-tabs .nav-link:focus {
            border-color: var(--border-color-light) var(--border-color-light) var(--border-color);
            isolation: isolate;
        }

        .nav-tabs .nav-link.active {
            color: var(--heading-color);
            background-color: var(--surface-color);
            border-color: var(--border-color) var(--border-color) var(--surface-color);
        }

/* Bordered Tabs (used in profile, settings pages) */
.nav-tabs-bordered {
    border-bottom: 2px solid var(--border-color);
}

    .nav-tabs-bordered .nav-link {
        margin-bottom: -2px;
        border: none;
        border-bottom: 2px solid transparent;
        border-radius: 0;
        padding: var(--spacing-sm) var(--spacing-md);
    }

        .nav-tabs-bordered .nav-link:hover,
        .nav-tabs-bordered .nav-link:focus {
            border-color: transparent;
            border-bottom-color: var(--accent-color);
            isolation: auto;
        }

        .nav-tabs-bordered .nav-link.active {
            background-color: transparent;
            border-color: transparent;
            border-bottom-color: var(--accent-color);
            color: var(--accent-color);
        }

/* Pills */
.nav-pills .nav-link {
    background: none;
    border: 0;
    border-radius: var(--radius-md);
}

    .nav-pills .nav-link:hover {
        background-color: var(--background-color);
    }

    .nav-pills .nav-link.active {
        color: var(--contrast-color);
        background-color: var(--accent-color);
    }

/* Underline Tabs */
.nav-underline {
    gap: var(--spacing-lg);
    border-bottom: 1px solid var(--border-color);
}

    .nav-underline .nav-link {
        padding: var(--spacing-md) 0;
        border-bottom: 2px solid transparent;
        border-radius: 0;
        margin-bottom: -1px;
    }

        .nav-underline .nav-link:hover {
            border-bottom-color: var(--border-color-dark);
        }

        .nav-underline .nav-link.active {
            color: var(--accent-color);
            border-bottom-color: var(--accent-color);
        }

/* Justified Tabs/Pills */
.nav-fill .nav-item {
    flex: 1 1 auto;
    text-align: center;
}

.nav-justified .nav-item {
    flex-basis: 0;
    flex-grow: 1;
    text-align: center;
}

/* Vertical Nav */
.nav-vertical {
    flex-direction: column;
}

    .nav-vertical .nav-link {
        border-radius: var(--radius-md);
    }

        .nav-vertical .nav-link.active {
            background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
            color: var(--accent-color);
        }

/* Tab Content */
.tab-content > .tab-pane {
    display: none;
}

.tab-content > .active {
    display: block;
}

/* Nav with Icon */
.nav-link-icon {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .nav-link-icon i {
        font-size: 1.125rem;
    }

/* Segment Control (Toggle Group) */
.nav-segment {
    background-color: var(--background-color);
    border-radius: var(--radius-md);
    padding: 4px;
    gap: 0;
}

    .nav-segment .nav-link {
        padding: var(--spacing-sm) var(--spacing-lg);
        border-radius: var(--radius-sm);
    }

        .nav-segment .nav-link.active {
            background-color: var(--surface-color);
            color: var(--heading-color);
            box-shadow: var(--shadow-sm);
        }

/* Card Nav (inside card header) */
.card-header-tabs {
    margin-right: calc(var(--spacing-lg) * -0.5);
    margin-bottom: calc(var(--spacing-md) * -1);
    margin-left: calc(var(--spacing-lg) * -0.5);
    border-bottom: 0;
}

    .card-header-tabs .nav-link {
        border: none;
        border-bottom: 2px solid transparent;
        border-radius: 0;
        padding: var(--spacing-sm) var(--spacing-md);
        margin-bottom: 0;
        color: var(--muted-color);
        font-weight: 500;
    }

        .card-header-tabs .nav-link:hover,
        .card-header-tabs .nav-link:focus {
            border-color: transparent;
            border-bottom-color: var(--border-color-dark);
            color: var(--default-color);
            isolation: auto;
        }

        .card-header-tabs .nav-link.active {
            background: none;
            border-color: transparent;
            border-bottom-color: var(--accent-color);
            color: var(--accent-color);
        }

.card-header-pills {
    margin-right: calc(var(--spacing-lg) * -0.5);
    margin-left: calc(var(--spacing-lg) * -0.5);
}

/* Steps Navigation */
.nav-steps {
    counter-reset: step;
}

    .nav-steps .nav-link {
        display: flex;
        align-items: center;
        gap: var(--spacing-sm);
        padding: var(--spacing-md);
    }

        .nav-steps .nav-link::before {
            counter-increment: step;
            content: counter(step);
            display: flex;
            align-items: center;
            justify-content: center;
            width: 28px;
            height: 28px;
            font-size: 0.8125rem;
            font-weight: 600;
            background-color: var(--background-color);
            color: var(--muted-color);
            border-radius: var(--radius-full);
            flex-shrink: 0;
        }

        .nav-steps .nav-link.active::before {
            background-color: var(--accent-color);
            color: var(--contrast-color);
        }

        .nav-steps .nav-link.completed::before {
            content: "✓";
            background-color: var(--success-color);
            color: var(--contrast-color);
        }

/*--------------------------------------------------------------
# Pagination
--------------------------------------------------------------*/
.pagination {
    display: flex;
    padding-left: 0;
    list-style: none;
    gap: var(--spacing-xs);
}

.page-link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 var(--spacing-sm);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--default-color);
    text-decoration: none;
    background-color: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
}

    .page-link:hover {
        z-index: 2;
        color: var(--accent-color);
        background-color: var(--background-color);
        border-color: var(--border-color-dark);
    }

    .page-link:focus {
        z-index: 3;
        outline: 0;
        box-shadow: 0 0 0 3px var(--input-focus-ring);
    }

.page-item.active .page-link {
    z-index: 3;
    color: var(--contrast-color);
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

.page-item.disabled .page-link {
    color: var(--light-color);
    pointer-events: none;
    background-color: var(--surface-color);
    border-color: var(--border-color);
    opacity: 0.5;
}

/* Pagination Sizes */
.pagination-lg .page-link {
    min-width: 44px;
    height: 44px;
    padding: 0 var(--spacing-md);
    font-size: 1rem;
}

.pagination-sm .page-link {
    min-width: 28px;
    height: 28px;
    padding: 0 6px;
    font-size: 0.75rem;
}

/* Pagination Variants */
.pagination-rounded .page-link {
    border-radius: var(--radius-full);
}

.pagination-borderless .page-link {
    border: none;
}

.pagination-borderless .page-item.active .page-link {
    background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
}

/* Simple Pagination (Prev/Next only) */
.pagination-simple {
    justify-content: space-between;
}

    .pagination-simple .page-link {
        display: flex;
        align-items: center;
        gap: var(--spacing-sm);
    }

/* Pagination with Info */
.pagination-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.pagination-info-text {
    font-size: 0.875rem;
    color: var(--muted-color);
}

/* Centered Pagination */
.pagination-center {
    justify-content: center;
}

/* Per Page Selector */
.per-page-select {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 0.875rem;
    color: var(--muted-color);
}

    .per-page-select select {
        padding: var(--spacing-xs) var(--spacing-sm);
        font-size: 0.875rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-sm);
        background-color: var(--surface-color);
        color: var(--default-color);
    }

/*--------------------------------------------------------------
# Progress Bars
--------------------------------------------------------------*/
.progress {
    display: flex;
    height: 8px;
    overflow: hidden;
    font-size: 0.625rem;
    background-color: var(--background-color);
    border-radius: var(--radius-full);
}

.progress-bar {
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: var(--contrast-color);
    text-align: center;
    white-space: nowrap;
    background-color: var(--accent-color);
    transition: width var(--transition-slow) ease;
}

/* Progress Bar Colors */
.progress-bar-success,
.bg-success {
    background-color: var(--success-color) !important;
}

.progress-bar-warning,
.bg-warning {
    background-color: var(--warning-color) !important;
}

.progress-bar-danger,
.bg-danger {
    background-color: var(--danger-color) !important;
}

.progress-bar-info,
.bg-info {
    background-color: var(--info-color) !important;
}

/* Striped Progress Bar */
.progress-bar-striped {
    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
    background-size: 1rem 1rem;
}

/* Animated Striped */
.progress-bar-animated {
    animation: progress-bar-stripes 1s linear infinite;
}

@keyframes progress-bar-stripes {
    0% {
        background-position-x: 1rem;
    }
}
/* Progress Sizes */
.progress-sm {
    height: 4px;
}

.progress-lg {
    height: 12px;
}

.progress-xl {
    height: 16px;
    font-size: 0.75rem;
}

/* Progress with Label */
.progress-with-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

    .progress-with-label .progress {
        flex: 1;
    }

.progress-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    min-width: 40px;
    text-align: right;
}

/* Stacked Progress (Multiple bars) */
.progress-stacked {
    display: flex;
}

    .progress-stacked .progress {
        flex: 1;
    }

/* Progress Circle */
.progress-circle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

    .progress-circle svg {
        transform: rotate(-90deg);
    }

.progress-circle-track {
    fill: none;
    stroke: var(--background-color);
}

.progress-circle-bar {
    fill: none;
    stroke: var(--accent-color);
    stroke-linecap: round;
    transition: stroke-dasharray var(--transition-slow) ease;
}

    .progress-circle-bar.success {
        stroke: var(--success-color);
    }

    .progress-circle-bar.warning {
        stroke: var(--warning-color);
    }

    .progress-circle-bar.danger {
        stroke: var(--danger-color);
    }

.progress-circle-value {
    position: absolute;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
}

.progress-circle-sm .progress-circle-value {
    font-size: 0.875rem;
}

.progress-circle-lg .progress-circle-value {
    font-size: 1.5rem;
}

/* Progress Group (Multiple progress items) */
.progress-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.progress-group-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.progress-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.progress-group-label {
    font-size: 0.875rem;
    color: var(--default-color);
}

.progress-group-value {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

/* Step Progress */
.step-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
}

    .step-progress::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        right: 0;
        height: 2px;
        background-color: var(--border-color);
        transform: translateY(-50%);
        z-index: 0;
    }

.step-progress-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
    z-index: 1;
}

.step-progress-marker {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background-color: var(--surface-color);
    border: 2px solid var(--border-color);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--muted-color);
}

.step-progress-item.active .step-progress-marker {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--contrast-color);
}

.step-progress-item.completed .step-progress-marker {
    background-color: var(--success-color);
    border-color: var(--success-color);
    color: var(--contrast-color);
}

.step-progress-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
    text-align: center;
    white-space: nowrap;
}

.step-progress-item.active .step-progress-label {
    color: var(--heading-color);
    font-weight: 500;
}

/*--------------------------------------------------------------
# Toasts / Notifications
--------------------------------------------------------------*/
.toast-container {
    position: fixed;
    z-index: 1090;
    width: 100%;
    max-width: 380px;
    pointer-events: none;
}

    /* Toast Positions */
    .toast-container.top-right {
        top: var(--spacing-lg);
        right: var(--spacing-lg);
    }

    .toast-container.top-left {
        top: var(--spacing-lg);
        left: var(--spacing-lg);
    }

    .toast-container.top-center {
        top: var(--spacing-lg);
        left: 50%;
        transform: translateX(-50%);
    }

    .toast-container.bottom-right {
        bottom: var(--spacing-lg);
        right: var(--spacing-lg);
    }

    .toast-container.bottom-left {
        bottom: var(--spacing-lg);
        left: var(--spacing-lg);
    }

    .toast-container.bottom-center {
        bottom: var(--spacing-lg);
        left: 50%;
        transform: translateX(-50%);
    }

.toast {
    width: 100%;
    max-width: 380px;
    font-size: 0.875rem;
    pointer-events: auto;
    background-color: var(--surface-color);
    background-clip: padding-box;
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow-lg);
    border-radius: var(--radius-lg);
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity var(--transition-base), transform var(--transition-base);
}

    .toast.show {
        opacity: 1;
        transform: translateY(0);
    }

    .toast.hiding {
        opacity: 0;
        transform: translateY(-10px);
    }

    .toast + .toast {
        margin-top: var(--spacing-md);
    }

.toast-header {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    color: var(--heading-color);
    background-color: var(--surface-color);
    background-clip: padding-box;
    border-bottom: 1px solid var(--border-color-light);
    border-top-left-radius: calc(var(--radius-lg) - 1px);
    border-top-right-radius: calc(var(--radius-lg) - 1px);
}

    .toast-header .btn-close {
        margin-left: auto;
        padding: var(--spacing-xs);
        background: transparent;
        border: none;
        opacity: 0.5;
        cursor: pointer;
    }

        .toast-header .btn-close:hover {
            opacity: 1;
        }

.toast-body {
    padding: var(--spacing-md);
    word-wrap: break-word;
}

/* Toast with Icon */
.toast-icon {
    display: flex;
    gap: var(--spacing-sm);
}

.toast-icon-wrapper {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    font-size: 0.875rem;
}

    .toast-icon-wrapper.success {
        background-color: var(--success-color-light);
        color: var(--success-color);
    }

    .toast-icon-wrapper.warning {
        background-color: var(--warning-color-light);
        color: var(--warning-color);
    }

    .toast-icon-wrapper.danger {
        background-color: var(--danger-color-light);
        color: var(--danger-color);
    }

    .toast-icon-wrapper.info {
        background-color: var(--info-color-light);
        color: var(--info-color);
    }

.toast-content {
    flex: 1;
    min-width: 0;
}

.toast-title {
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 2px;
}

.toast-message {
    color: var(--muted-color);
}

.toast-time {
    font-size: 0.75rem;
    color: var(--light-color);
    margin-top: var(--spacing-xs);
}

/* Toast Variants */
.toast-success {
    border-left: 4px solid var(--success-color);
}

.toast-warning {
    border-left: 4px solid var(--warning-color);
}

.toast-danger {
    border-left: 4px solid var(--danger-color);
}

.toast-info {
    border-left: 4px solid var(--info-color);
}

/* Solid Toast Variants */
.toast-solid-success {
    background-color: var(--success-color);
    border-color: var(--success-color);
    color: var(--contrast-color);
}

    .toast-solid-success .toast-header {
        background-color: transparent;
        border-bottom-color: rgba(255, 255, 255, 0.2);
        color: var(--contrast-color);
    }

    .toast-solid-success .toast-title,
    .toast-solid-success .toast-message {
        color: var(--contrast-color);
    }

    .toast-solid-success .toast-time {
        color: rgba(255, 255, 255, 0.8);
    }

.toast-solid-warning {
    background-color: var(--warning-color);
    border-color: var(--warning-color);
    color: var(--heading-color);
}

.toast-solid-danger {
    background-color: var(--danger-color);
    border-color: var(--danger-color);
    color: var(--contrast-color);
}

.toast-solid-info {
    background-color: var(--info-color);
    border-color: var(--info-color);
    color: var(--contrast-color);
}

/* Toast Actions */
.toast-actions {
    display: flex;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-sm);
}

    .toast-actions .btn {
        padding: var(--spacing-xs) var(--spacing-sm);
        font-size: 0.8125rem;
    }

/* Toast Progress Bar (Auto-dismiss indicator) */
.toast-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 3px;
    background-color: var(--accent-color);
    border-radius: 0 0 0 var(--radius-lg);
    animation: toast-progress linear forwards;
}

@keyframes toast-progress {
    from {
        width: 100%;
    }

    to {
        width: 0%;
    }
}
/*--------------------------------------------------------------
# Dashboard Widgets - Activity
--------------------------------------------------------------*/
/* Activity Widget */
.widget-activity .activity-item {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
    position: relative;
}

    .widget-activity .activity-item:not(:last-child)::before {
        content: "";
        position: absolute;
        left: 18px;
        top: 48px;
        bottom: 0;
        width: 2px;
        background: var(--border-color);
    }

.activity-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    font-size: 0.875rem;
}

    .activity-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .activity-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .activity-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .activity-icon.danger {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

.activity-content {
    flex: 1;
    min-width: 0;
}

.activity-title {
    font-size: 0.875rem;
    color: var(--heading-color);
    margin-bottom: 2px;
}

    .activity-title a {
        font-weight: 500;
        color: var(--accent-color);
    }

.activity-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.activity-time {
    font-size: 0.75rem;
    color: var(--light-color);
    margin-top: var(--spacing-xs);
}

/* Badge Dot */
.badge-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

/* Activity Icon Info Variant */
.activity-icon.info {
    background: var(--info-color-light);
    color: var(--info-color);
}

/*--------------------------------------------------------------
# Dashboard Widgets - Lists
--------------------------------------------------------------*/
/* Todo Widget */
.widget-todo .todo-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) 0;
}

    .widget-todo .todo-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.todo-checkbox {
    width: 18px;
    height: 18px;
    border: 2px solid var(--border-color);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

    .todo-checkbox:hover {
        border-color: var(--accent-color);
    }

    .todo-checkbox.checked {
        background: var(--success-color);
        border-color: var(--success-color);
    }

        .todo-checkbox.checked::after {
            content: "✓";
            color: var(--contrast-color);
            font-size: 0.75rem;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100%;
        }

.todo-content {
    flex: 1;
    min-width: 0;
}

.todo-title {
    font-size: 0.875rem;
    color: var(--default-color);
}

.todo-item.completed .todo-title {
    text-decoration: line-through;
    color: var(--muted-color);
}

.todo-priority {
    width: 6px;
    height: 6px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

    .todo-priority.high {
        background: var(--danger-color);
    }

    .todo-priority.medium {
        background: var(--warning-color);
    }

    .todo-priority.low {
        background: var(--success-color);
    }

/* Sales Widget */
.widget-sales-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) 0;
}

    .widget-sales-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.widget-sales-product {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.widget-sales-image {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    object-fit: cover;
}

.widget-sales-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.widget-sales-category {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-sales-amount {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
}

/* News/Blog Widget */
.widget-news-item {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
}

    .widget-news-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.widget-news-image {
    width: 80px;
    height: 60px;
    border-radius: var(--radius-md);
    object-fit: cover;
    flex-shrink: 0;
}

.widget-news-content {
    flex: 1;
    min-width: 0;
}

.widget-news-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    margin-bottom: 4px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

    .widget-news-title a:hover {
        color: var(--accent-color);
    }

.widget-news-meta {
    font-size: 0.75rem;
    color: var(--muted-color);
}

/* Transaction List Widget */
.transaction-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.transaction-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.transaction-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    font-size: 1rem;
}

    .transaction-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .transaction-icon.danger {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

.transaction-details {
    flex: 1;
    min-width: 0;
}

.transaction-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.transaction-meta {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.transaction-amount {
    font-size: 0.9375rem;
    font-weight: 600;
}

    .transaction-amount.positive {
        color: var(--success-color);
    }

    .transaction-amount.negative {
        color: var(--danger-color);
    }

/* Deal List Widget */
.deal-list {
    display: flex;
    flex-direction: column;
}

.deal-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

    .deal-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.deal-info {
    flex: 1;
    min-width: 0;
}

.deal-company {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.deal-contact {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.deal-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--spacing-xs);
}

.deal-amount {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
}

/* Contact List Widget */
.contact-list {
    display: flex;
    flex-direction: column;
}

.contact-item {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

    .contact-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.contact-avatar {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.contact-info {
    flex: 1;
    min-width: 0;
}

.contact-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.contact-company {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.contact-stats {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    min-width: 80px;
}

.contact-deals {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.contact-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
}

.contact-actions {
    display: flex;
    gap: var(--spacing-xs);
}

    .contact-actions .btn {
        padding: 4px 8px;
    }

/* Task List Widget */
.task-list {
    display: flex;
    flex-direction: column;
}

.task-item {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

    .task-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.task-checkbox {
    position: relative;
    flex-shrink: 0;
}

    .task-checkbox input {
        position: relative;
        width: 20px;
        height: 20px;
        border: 2px solid var(--border-color);
        border-radius: var(--radius-sm);
        cursor: pointer;
        appearance: none;
        margin: 0;
        display: block;
        transition: all var(--transition-fast);
    }

        .task-checkbox input:checked {
            background: var(--success-color);
            border-color: var(--success-color);
        }

            .task-checkbox input:checked::after {
                content: "";
                position: absolute;
                top: 3px;
                left: 6px;
                width: 5px;
                height: 9px;
                border: solid var(--contrast-color);
                border-width: 0 2px 2px 0;
                transform: rotate(45deg);
            }

    .task-checkbox label {
        display: none;
    }

.task-info {
    flex: 1;
    min-width: 0;
}

.task-title {
    font-size: 0.875rem;
    color: var(--default-color);
}

.task-item:has(input:checked) .task-title {
    text-decoration: line-through;
    color: var(--muted-color);
}

.task-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-top: 2px;
}

.task-due {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    gap: 4px;
}

    .task-due i {
        font-size: 0.6875rem;
    }

/* Content List Widget */
.content-list {
    display: flex;
    flex-direction: column;
}

.content-item {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

    .content-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.content-rank {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--background-color);
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted-color);
    flex-shrink: 0;
}

.content-info {
    flex: 1;
    min-width: 0;
}

.content-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.content-meta {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.content-stats {
    display: flex;
    gap: var(--spacing-md);
}

.content-views,
.content-shares {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    gap: 4px;
}

    .content-views i,
    .content-shares i {
        font-size: 0.6875rem;
    }

/* Milestone List Widget */
.milestone-list {
    display: flex;
    flex-direction: column;
}

.milestone-item {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

    .milestone-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.milestone-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    background: var(--background-color);
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.milestone-day {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1;
}

.milestone-month {
    font-size: 0.6875rem;
    color: var(--muted-color);
    text-transform: uppercase;
}

.milestone-info {
    flex: 1;
    min-width: 0;
}

.milestone-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.milestone-project {
    font-size: 0.75rem;
    color: var(--muted-color);
}

/* Workload List Widget */
.workload-list {
    display: flex;
    flex-direction: column;
}

.workload-item {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

    .workload-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.workload-avatar {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.workload-info {
    min-width: 120px;
}

.workload-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.workload-role {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.workload-stats {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.workload-tasks {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.workload-bar-container {
    height: 6px;
    background: var(--background-color);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.workload-bar {
    height: 100%;
    border-radius: var(--radius-full);
}

.workload-bar-fill {
    height: 100%;
    border-radius: var(--radius-full);
    width: 100%;
}

    .workload-bar-fill.overloaded {
        background: var(--danger-color);
    }

    .workload-bar-fill.warning {
        background: var(--warning-color);
    }

    .workload-bar-fill.normal {
        background: var(--success-color);
    }

    .workload-bar-fill.low {
        background: var(--info-color);
    }

/*--------------------------------------------------------------
# Dashboard Widgets - Analytics
--------------------------------------------------------------*/
/* Traffic Sources Widget */
.traffic-source-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) 0;
}

.traffic-source-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 1rem;
}

.traffic-source-info {
    flex: 1;
}

.traffic-source-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.traffic-source-value {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.traffic-source-percent {
    font-size: 0.875rem;
    font-weight: 600;
}

/* Region List Widget */
.region-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.region-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
}

.region-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    min-width: 140px;
}

.region-flag {
    font-size: 1.25rem;
}

.region-name {
    font-size: 0.875rem;
    color: var(--default-color);
}

.region-stats {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    flex: 1;
}

.region-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
    min-width: 70px;
    text-align: right;
}

.region-progress {
    flex: 1;
    height: 6px;
}

/* Device List Widget */
.device-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.device-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.device-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    background: var(--background-color);
    color: var(--muted-color);
    font-size: 1.125rem;
    flex-shrink: 0;
}

.device-info {
    flex: 1;
    min-width: 0;
}

.device-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.device-progress {
    height: 6px;
}

.device-stats {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 70px;
}

.device-percent {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
}

.device-count {
    font-size: 0.75rem;
    color: var(--muted-color);
}

/* Browser List Widget */
.browser-list {
    display: flex;
    flex-direction: column;
}

.browser-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-sm) 0;
}

    .browser-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.browser-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .browser-info i {
        font-size: 1.25rem;
    }

.browser-name {
    font-size: 0.875rem;
    color: var(--default-color);
}

.browser-stats {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.browser-percent {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
    min-width: 50px;
    text-align: right;
}

/* Real-time Stats Widget */
.realtime-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    background-color: var(--success-color);
    border-radius: var(--radius-full);
    margin-right: var(--spacing-sm);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--success-color), transparent 30%);
    }

    70% {
        box-shadow: 0 0 0 8px color-mix(in srgb, var(--success-color), transparent 100%);
    }

    100% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--success-color), transparent 100%);
    }
}

.realtime-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spacing-lg);
    text-align: center;
}

.realtime-stat {
    padding: var(--spacing-md);
    background: var(--background-color);
    border-radius: var(--radius-md);
}

.realtime-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.2;
}

.realtime-label {
    font-size: 0.75rem;
    color: var(--muted-color);
    margin-top: var(--spacing-xs);
}

@media (max-width: 767px) {
    .realtime-stats {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* Social Stats Widget */
.social-stats-list {
    display: flex;
    flex-direction: column;
}

.social-stats-item {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

    .social-stats-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.social-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 1.125rem;
    flex-shrink: 0;
}

    .social-icon.facebook {
        background: rgba(24, 119, 242, 0.1);
        color: #1877f2;
    }

    .social-icon.twitter {
        background: color-mix(in srgb, var(--default-color), transparent 90%);
        color: var(--default-color);
    }

[data-bs-theme=dark] .social-icon.twitter {
    background: color-mix(in srgb, var(--contrast-color), transparent 90%);
    color: var(--contrast-color);
}

.social-icon.instagram {
    background: linear-gradient(45deg, rgba(253, 29, 29, 0.1), rgba(131, 58, 180, 0.1));
    color: #e1306c;
}

.social-icon.linkedin {
    background: rgba(10, 102, 194, 0.1);
    color: #0a66c2;
}

.social-icon.youtube {
    background: rgba(255, 0, 0, 0.1);
    color: #ff0000;
}

.social-info {
    flex: 1;
    min-width: 0;
}

.social-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.social-followers {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.social-engagement {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 70px;
}

.engagement-value {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--success-color);
}

.engagement-label {
    font-size: 0.6875rem;
    color: var(--muted-color);
    text-transform: uppercase;
}

/* Funnel Chart Widget */
.funnel-chart {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
}

.funnel-stage {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.funnel-bar {
    height: 32px;
    width: var(--funnel-width, 100%);
    border-radius: var(--radius-sm);
    transition: width var(--transition-base);
}

    .funnel-bar.primary {
        background: var(--accent-color);
    }

    .funnel-bar.info {
        background: var(--info-color);
    }

    .funnel-bar.warning {
        background: var(--warning-color);
    }

    .funnel-bar.success {
        background: var(--success-color);
    }

    .funnel-bar.danger {
        background: var(--danger-color);
    }

.funnel-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    min-width: 180px;
    flex-shrink: 0;
}

.funnel-name {
    font-size: 0.875rem;
    color: var(--default-color);
    min-width: 80px;
}

.funnel-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
}

.funnel-rate {
    font-size: 0.75rem;
    color: var(--muted-color);
}

@media (max-width: 767px) {
    .funnel-info {
        min-width: 120px;
    }
}
/* Pipeline Stages Widget */
.pipeline-stages {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.pipeline-stage {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.pipeline-stage-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.pipeline-stage-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--default-color);
}

.pipeline-stage-count {
    font-size: 0.75rem;
    color: var(--muted-color);
    background: var(--background-color);
    padding: 2px 8px;
    border-radius: var(--radius-full);
}

.pipeline-stage-bar {
    height: 8px;
    background: var(--background-color);
    border-radius: var(--radius-full);
    position: relative;
    overflow: hidden;
}

    .pipeline-stage-bar::after {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: var(--stage-width, 100%);
        background: var(--stage-color, var(--accent-color));
        border-radius: var(--radius-full);
        transition: width var(--transition-base);
    }

.pipeline-stage-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
}

/*--------------------------------------------------------------
# Dashboard Widgets - Interactive
--------------------------------------------------------------*/
/* Calendar Widget */
.widget-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-md);
}

.widget-calendar-nav {
    display: flex;
    gap: var(--spacing-xs);
}

    .widget-calendar-nav button {
        width: 28px;
        height: 28px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: var(--radius-sm);
        color: var(--muted-color);
    }

        .widget-calendar-nav button:hover {
            background: var(--background-color);
            color: var(--default-color);
        }

.widget-calendar-month {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
}

.widget-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    text-align: center;
}

.widget-calendar-day-header {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--muted-color);
    padding: var(--spacing-sm);
}

.widget-calendar-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    color: var(--default-color);
    border-radius: var(--radius-full);
    cursor: pointer;
}

    .widget-calendar-day:hover {
        background: var(--background-color);
    }

    .widget-calendar-day.other-month {
        color: var(--light-color);
    }

    .widget-calendar-day.today {
        background: var(--accent-color);
        color: var(--contrast-color);
        font-weight: 600;
    }

    .widget-calendar-day.has-event::after {
        content: "";
        position: absolute;
        bottom: 4px;
        width: 4px;
        height: 4px;
        background: var(--accent-color);
        border-radius: var(--radius-full);
    }

/* Quick Actions Widget */
.quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-sm);
}

.quick-action-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

    .quick-action-item:hover {
        background: var(--background-color);
    }

.quick-action-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 1rem;
    flex-shrink: 0;
}

.quick-action-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--default-color);
}

/* Project List Widget */
.project-list {
    display: flex;
    flex-direction: column;
}

.project-item {
    display: flex;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    gap: var(--spacing-lg);
}

    .project-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.project-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    min-width: 220px;
}

.project-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 1.125rem;
    flex-shrink: 0;
}

.project-details {
    min-width: 0;
}

.project-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.project-client {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.project-team {
    min-width: 120px;
}

.avatar-group {
    display: flex;
    align-items: center;
}

    .avatar-group .avatar {
        width: 32px;
        height: 32px;
        border-radius: var(--radius-full);
        border: 2px solid var(--surface-color);
        margin-left: -8px;
        object-fit: cover;
    }

        .avatar-group .avatar:first-child {
            margin-left: 0;
        }

.avatar-more {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--background-color);
    border-radius: var(--radius-full);
    border: 2px solid var(--surface-color);
    margin-left: -8px;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--muted-color);
}

.project-progress-info {
    min-width: 150px;
}

.project-progress-label {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.project-progress-value {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--heading-color);
}

.project-deadline {
    display: flex;
    flex-direction: column;
    min-width: 100px;
}

.deadline-label {
    font-size: 0.6875rem;
    color: var(--muted-color);
    text-transform: uppercase;
}

.deadline-date {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--default-color);
}

.project-status {
    min-width: 80px;
}

.project-actions {
    min-width: 40px;
}

@media (max-width: 1199px) {
    .project-item {
        flex-wrap: wrap;
        gap: var(--spacing-md);
    }

    .project-info {
        min-width: 100%;
    }

    .project-team,
    .project-progress-info,
    .project-deadline,
    .project-status {
        min-width: auto;
    }
}

.faq-accordion .accordion-item {
    border: none;
    border-bottom: 1px solid var(--border-color);
}

    .faq-accordion .accordion-item:last-child {
        border-bottom: none;
    }

.faq-accordion .accordion-button {
    padding: 1rem 0;
    font-weight: 500;
    background: transparent;
    box-shadow: none;
}

    .faq-accordion .accordion-button:not(.collapsed) {
        color: var(--accent-color);
        background: transparent;
    }

    .faq-accordion .accordion-button:focus {
        box-shadow: none;
    }

    .faq-accordion .accordion-button::after {
        width: 1rem;
        height: 1rem;
        background-size: 1rem;
    }

.faq-accordion .accordion-body {
    padding: 0 0 1rem 0;
}

/*--------------------------------------------------------------
# Error Pages - FlexAdmin
--------------------------------------------------------------*/
.fx-error-page {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: radial-gradient(circle at 12% 12%, color-mix(in srgb, var(--accent-color), transparent 95%), transparent 46%), radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--info-color), transparent 95%), transparent 48%), var(--background-color);
    position: relative;
    overflow: hidden;
}

.fx-error-bg-shape {
    position: absolute;
    border-radius: var(--radius-full);
    pointer-events: none;
}

    .fx-error-bg-shape.shape-a {
        width: 340px;
        height: 340px;
        top: -150px;
        right: -90px;
        background: color-mix(in srgb, var(--accent-color), transparent 93%);
    }

    .fx-error-bg-shape.shape-b {
        width: 300px;
        height: 300px;
        bottom: -130px;
        left: -110px;
        background: color-mix(in srgb, var(--success-color), transparent 95%);
    }

.fx-error-card {
    width: min(560px, 100%);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    background: var(--card-bg);
    box-shadow: var(--shadow-lg);
    padding: 1.5rem;
    text-align: center;
    position: relative;
    z-index: 1;
}

.fx-error-logo {
    display: inline-block;
    margin-bottom: 1.05rem;
}

    .fx-error-logo img {
        height: 34px;
        width: auto;
    }

.fx-error-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.22rem 0.55rem;
    border-radius: var(--radius-full);
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    border: 1px solid color-mix(in srgb, var(--accent-color), transparent 75%);
}

.fx-error-code {
    margin: 0.7rem 0 0;
    font-size: clamp(4.2rem, 14vw, 6.6rem);
    line-height: 1;
    letter-spacing: -0.04em;
    color: var(--heading-color);
}

.fx-error-icon {
    width: 68px;
    height: 68px;
    margin: 0.7rem auto 0;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
}

    .fx-error-icon.warning {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

    .fx-error-icon.danger {
        color: var(--danger-color);
        background: var(--danger-color-light);
    }

.fx-error-title {
    margin: 0.8rem 0 0;
    font-size: 1.45rem;
    color: var(--heading-color);
}

.fx-error-text {
    margin: 0.45rem auto 0;
    font-size: 0.88rem;
    color: var(--muted-color);
    line-height: 1.58;
    max-width: 52ch;
}

.fx-error-status-row {
    margin-top: 0.8rem;
    display: flex;
    justify-content: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

    .fx-error-status-row span {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        font-size: 0.72rem;
        color: var(--muted-color);
        border: 1px solid var(--border-color-light);
        border-radius: var(--radius-full);
        padding: 0.22rem 0.55rem;
        background: var(--surface-color);
    }

.fx-error-actions {
    margin-top: 1rem;
    display: flex;
    justify-content: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.fx-maintenance-steps {
    margin-top: 0.95rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    text-align: left;
}

.fx-step {
    border: 1px solid var(--border-color-light);
    background: var(--surface-color);
    border-radius: var(--radius-md);
    padding: 0.48rem 0.6rem;
    font-size: 0.77rem;
    color: var(--default-color);
    display: flex;
    align-items: center;
    gap: 0.38rem;
}

    .fx-step i {
        font-size: 0.82rem;
    }

    .fx-step.done i {
        color: var(--success-color);
    }

    .fx-step.active {
        border-color: color-mix(in srgb, var(--accent-color), transparent 55%);
        background: color-mix(in srgb, var(--accent-color), transparent 96%);
    }

        .fx-step.active i {
            color: var(--accent-color);
        }

.fx-countdown {
    margin-top: 0.95rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}

.fx-count-item {
    border: 1px solid var(--border-color-light);
    background: var(--surface-color);
    border-radius: var(--radius-md);
    padding: 0.45rem 0.35rem;
}

    .fx-count-item strong {
        display: block;
        font-size: 1.28rem;
        line-height: 1;
        color: var(--heading-color);
    }

    .fx-count-item span {
        display: block;
        margin-top: 0.2rem;
        font-size: 0.65rem;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--muted-color);
    }

.fx-newsletter-form {
    margin-top: 0.9rem;
    display: flex;
    gap: 0.45rem;
}

    .fx-newsletter-form .form-control {
        height: 40px;
        font-size: 0.8rem;
        border-radius: var(--radius-md);
    }

    .fx-newsletter-form .btn {
        height: 40px;
        white-space: nowrap;
    }

.fx-social-links {
    margin-top: 0.9rem;
    display: inline-flex;
    gap: 0.4rem;
}

.fx-social-link {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--muted-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all var(--transition-fast);
}

    .fx-social-link:hover {
        border-color: var(--accent-color);
        background: var(--accent-color);
        color: var(--contrast-color);
    }

@media (max-width: 767px) {
    .fx-error-card {
        padding: 1.1rem;
    }

    .fx-error-title {
        font-size: 1.2rem;
    }

    .fx-countdown {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fx-newsletter-form {
        flex-direction: column;
    }

        .fx-newsletter-form .btn {
            width: 100%;
        }

    .fx-error-actions .btn {
        width: 100%;
    }
}
/*--------------------------------------------------------------
# Profile Page - FlexAdmin
--------------------------------------------------------------*/
.page-profile .profile-shell {
    border-radius: var(--radius-xl);
    border: 1px solid color-mix(in srgb, var(--accent-color), transparent 78%);
    overflow: hidden;
    background: radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--accent-color), transparent 92%) 0, transparent 40%), var(--card-bg);
}

.page-profile .profile-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: 16px;
    border-bottom: 1px solid var(--border-color-light);
}

.page-profile .profile-hero-main {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.page-profile .profile-avatar-wrap {
    position: relative;
    flex-shrink: 0;
}

.page-profile .profile-avatar {
    width: 88px;
    height: 88px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 3px solid var(--card-bg);
    box-shadow: var(--shadow-md);
}

.page-profile .profile-status-dot {
    position: absolute;
    right: 4px;
    bottom: 4px;
    width: 12px;
    height: 12px;
    border-radius: var(--radius-full);
    border: 2px solid var(--card-bg);
    background: var(--success-color);
}

.page-profile .profile-eyebrow {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: var(--accent-color);
}

.page-profile .profile-name {
    margin: 2px 0 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-profile .profile-role {
    margin: 5px 0 0;
    font-size: 0.83rem;
    color: var(--muted-color);
    max-width: 640px;
}

.page-profile .profile-meta-row {
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

    .page-profile .profile-meta-row span {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-size: 0.75rem;
        color: var(--muted-color);
        font-weight: 600;
    }

    .page-profile .profile-meta-row i {
        color: var(--light-color);
    }

.page-profile .profile-hero-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.page-profile .profile-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 10px 16px 14px;
}

.page-profile .profile-metric {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: color-mix(in srgb, var(--surface-color), var(--background-color) 16%);
    padding: 9px 44px 9px 11px;
    position: relative;
    overflow: hidden;
}

.page-profile .profile-metric-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    position: absolute;
    right: 8px;
    top: 8px;
}

.page-profile .profile-metric:nth-child(1) .profile-metric-icon {
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-profile .profile-metric:nth-child(2) .profile-metric-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-profile .profile-metric:nth-child(3) .profile-metric-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-profile .profile-metric:nth-child(4) .profile-metric-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-profile .profile-metric-label {
    display: block;
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted-color);
    font-weight: 700;
}

.page-profile .profile-metric-value {
    display: block;
    margin-top: 1px;
    font-size: 1.15rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-profile .profile-about {
    font-size: 0.84rem;
    color: var(--default-color);
    line-height: 1.65;
    margin-bottom: var(--spacing-md);
}

.page-profile .profile-contact-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-profile .profile-contact-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--muted-color);
}

    .page-profile .profile-contact-item i {
        width: 16px;
        color: var(--light-color);
        text-align: center;
        flex-shrink: 0;
    }

.page-profile .profile-skills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.page-profile .profile-skill {
    padding: 4px 10px;
    border-radius: var(--radius-full);
    font-size: 0.71rem;
    font-weight: 700;
    color: var(--accent-color);
    border: 1px solid color-mix(in srgb, var(--accent-color), transparent 72%);
    background: color-mix(in srgb, var(--accent-color), transparent 93%);
}

.page-profile .profile-social-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.page-profile .profile-social-link {
    height: 34px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--default-color);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
}

    .page-profile .profile-social-link i {
        font-size: 0.82rem;
    }

    .page-profile .profile-social-link:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 58%);
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 94%);
    }

.page-profile .profile-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.page-profile .profile-info-item {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    padding: 9px 10px;
    background: var(--surface-color);
}

.page-profile .profile-info-label {
    display: block;
    font-size: 0.69rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
    font-weight: 700;
}

.page-profile .profile-info-value {
    display: block;
    margin-top: 2px;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--heading-color);
}

.page-profile .profile-timeline {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-profile .profile-timeline-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px 0;
}

    .page-profile .profile-timeline-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.page-profile .profile-timeline-dot {
    width: 9px;
    height: 9px;
    border-radius: var(--radius-full);
    margin-top: 6px;
    flex-shrink: 0;
}

    .page-profile .profile-timeline-dot.success {
        background: var(--success-color);
    }

    .page-profile .profile-timeline-dot.accent {
        background: var(--accent-color);
    }

    .page-profile .profile-timeline-dot.info {
        background: var(--info-color);
    }

    .page-profile .profile-timeline-dot.warning {
        background: var(--warning-color);
    }

.page-profile .profile-timeline-title {
    font-size: 0.81rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.35;
}

.page-profile .profile-timeline-meta {
    margin-top: 1px;
    font-size: 0.72rem;
    color: var(--muted-color);
}

.page-profile .profile-project-list {
    display: flex;
    flex-direction: column;
}

.page-profile .profile-project-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
}

    .page-profile .profile-project-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.page-profile .profile-project-name {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--heading-color);
}

.page-profile .profile-project-desc {
    margin-top: 2px;
    font-size: 0.76rem;
    color: var(--muted-color);
    line-height: 1.45;
    max-width: 520px;
}

.page-profile .profile-project-status {
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 4px 8px;
    border-radius: var(--radius-full);
    white-space: nowrap;
}

    .page-profile .profile-project-status.on-track {
        color: var(--success-color);
        background: var(--success-color-light);
    }

    .page-profile .profile-project-status.review {
        color: var(--info-color);
        background: var(--info-color-light);
    }

    .page-profile .profile-project-status.planning {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

@media (max-width: 1199px) {
    .page-profile .profile-hero {
        flex-direction: column;
    }

    .page-profile .profile-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .page-profile .profile-hero-main {
        flex-direction: column;
        align-items: flex-start;
    }

    .page-profile .profile-metrics {
        grid-template-columns: 1fr;
    }

    .page-profile .profile-info-grid,
    .page-profile .profile-social-grid {
        grid-template-columns: 1fr;
    }

    .page-profile .profile-project-item {
        flex-direction: column;
        align-items: flex-start;
    }
}

/*--------------------------------------------------------------
# Activity Log Page - FlexAdmin
--------------------------------------------------------------*/
.page-activity .act-link {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--accent-color);
    text-decoration: none;
}

.page-activity .act-kpi-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.page-activity .act-kpi {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    padding: 9px 40px 9px 9px;
    background: var(--surface-color);
    position: relative;
    overflow: hidden;
}

.page-activity .act-kpi-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    position: absolute;
    right: 8px;
    top: 8px;
}

.page-activity .act-kpi:nth-child(1) .act-kpi-icon {
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-activity .act-kpi:nth-child(2) .act-kpi-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-activity .act-kpi:nth-child(3) .act-kpi-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-activity .act-kpi:nth-child(4) .act-kpi-icon {
    color: var(--danger-color);
    background: var(--danger-color-light);
}

.page-activity .act-kpi-label {
    display: block;
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
    font-weight: 700;
}

.page-activity .act-kpi-value {
    display: block;
    margin-top: 1px;
    font-size: 1.05rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-activity .act-session-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-activity .act-session-item {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    padding: 9px;
}

.page-activity .act-session-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--background-color);
    color: var(--muted-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.page-activity .act-session-name {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--heading-color);
}

.page-activity .act-session-meta {
    margin-top: 1px;
    font-size: 0.71rem;
    color: var(--muted-color);
}

.page-activity .act-stream-card {
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.page-activity .act-stream-group {
    border-bottom: 1px solid var(--border-color-light);
}

    .page-activity .act-stream-group:last-child {
        border-bottom: none;
    }

.page-activity .act-stream-date {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: 700;
    color: var(--muted-color);
    padding: 10px 14px;
    background: var(--background-color);
    border-bottom: 1px solid var(--border-color-light);
}

.page-activity .act-stream-item {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 11px 14px;
    border-bottom: 1px solid var(--border-color-light);
}

    .page-activity .act-stream-item:last-child {
        border-bottom: none;
    }

.page-activity .act-stream-dot {
    width: 9px;
    height: 9px;
    border-radius: var(--radius-full);
    margin-top: 6px;
    flex-shrink: 0;
}

    .page-activity .act-stream-dot.success {
        background: var(--success-color);
    }

    .page-activity .act-stream-dot.accent {
        background: var(--accent-color);
    }

    .page-activity .act-stream-dot.warning {
        background: var(--warning-color);
    }

    .page-activity .act-stream-dot.info {
        background: var(--info-color);
    }

    .page-activity .act-stream-dot.danger {
        background: var(--danger-color);
    }

.page-activity .act-stream-content {
    flex: 1;
    min-width: 0;
}

.page-activity .act-stream-title {
    font-size: 0.82rem;
    color: var(--heading-color);
    font-weight: 700;
    line-height: 1.35;
}

.page-activity .act-stream-text {
    margin-top: 1px;
    font-size: 0.74rem;
    color: var(--muted-color);
    line-height: 1.45;
}

.page-activity .act-stream-time {
    font-size: 0.71rem;
    color: var(--muted-color);
    white-space: nowrap;
    margin-top: 2px;
}

@media (max-width: 575px) {
    .page-activity .act-stream-item {
        flex-wrap: wrap;
    }

    .page-activity .act-stream-time {
        margin-left: 18px;
    }
}
/*--------------------------------------------------------------
# Notifications Page - FlexAdmin
--------------------------------------------------------------*/
.page-notifications .notif-channel-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.page-notifications .notif-channel-card {
    border-radius: var(--radius-lg);
}

.page-notifications .notif-channel-head {
    display: flex;
    align-items: center;
    gap: 9px;
}

.page-notifications .notif-channel-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

    .page-notifications .notif-channel-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .page-notifications .notif-channel-icon.info {
        background: var(--info-color-light);
        color: var(--info-color);
    }

    .page-notifications .notif-channel-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

.page-notifications .notif-channel-title {
    margin: 0;
    font-size: 0.82rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-notifications .notif-channel-desc {
    margin: 1px 0 0;
    font-size: 0.72rem;
    color: var(--muted-color);
}

.page-notifications .notif-rule-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-notifications .notif-rule-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 11px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
}

.page-notifications .notif-rule-info {
    flex: 1;
    min-width: 0;
}

.page-notifications .notif-rule-title {
    display: block;
    font-size: 0.8rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-notifications .notif-rule-desc {
    display: block;
    margin-top: 1px;
    font-size: 0.72rem;
    color: var(--muted-color);
}

.page-notifications .notif-rule-priority {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 7px;
    border-radius: var(--radius-full);
    white-space: nowrap;
}

    .page-notifications .notif-rule-priority.high {
        color: var(--danger-color);
        background: var(--danger-color-light);
    }

    .page-notifications .notif-rule-priority.medium {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

    .page-notifications .notif-rule-priority.low {
        color: var(--info-color);
        background: var(--info-color-light);
    }

.page-notifications .notif-stream-card {
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.page-notifications .notif-stream-list {
    display: flex;
    flex-direction: column;
}

.page-notifications .notif-stream-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-color-light);
}

    .page-notifications .notif-stream-item:last-child {
        border-bottom: none;
    }

    .page-notifications .notif-stream-item.unread {
        background: color-mix(in srgb, var(--accent-color), transparent 96%);
    }

.page-notifications .notif-stream-icon {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

    .page-notifications .notif-stream-icon.success {
        color: var(--success-color);
        background: var(--success-color-light);
    }

    .page-notifications .notif-stream-icon.warning {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

    .page-notifications .notif-stream-icon.info {
        color: var(--info-color);
        background: var(--info-color-light);
    }

    .page-notifications .notif-stream-icon.accent {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 88%);
    }

.page-notifications .notif-stream-content {
    flex: 1;
    min-width: 0;
}

.page-notifications .notif-stream-title {
    font-size: 0.82rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-notifications .notif-stream-text {
    margin-top: 1px;
    font-size: 0.74rem;
    color: var(--muted-color);
}

.page-notifications .notif-stream-meta {
    font-size: 0.71rem;
    color: var(--muted-color);
    white-space: nowrap;
    margin-top: 3px;
}

@media (max-width: 1199px) {
    .page-notifications .notif-channel-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .page-notifications .notif-rule-item {
        flex-wrap: wrap;
    }

    .page-notifications .notif-stream-item {
        flex-wrap: wrap;
    }

    .page-notifications .notif-stream-meta {
        margin-left: 44px;
    }
}
/*--------------------------------------------------------------
# Users List - FlexAdmin
--------------------------------------------------------------*/
.page-users .users-page-header {
    margin-bottom: var(--spacing-lg);
}

.page-users .users-page-subtitle {
    margin: 0;
    font-size: 0.88rem;
    color: var(--muted-color);
}

.page-users .users-insight-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-sm);
}

.page-users .users-insight {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    padding: 12px 14px;
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    display: flex;
    flex-direction: column;
    gap: 2px;
    position: relative;
    overflow: hidden;
}

.page-users .users-insight-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    position: absolute;
    right: 10px;
    top: 10px;
}

.page-users .users-insight-label {
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted-color);
    font-weight: 700;
    position: relative;
    z-index: 1;
}

.page-users .users-insight-value {
    font-size: 1.3rem;
    line-height: 1.2;
    color: var(--heading-color);
    font-weight: 700;
    position: relative;
    z-index: 1;
}

.page-users .users-insight-meta {
    font-size: 0.72rem;
    color: var(--muted-color);
    font-weight: 600;
    position: relative;
    z-index: 1;
}

.page-users .users-insight-total {
    border-color: color-mix(in srgb, var(--accent-color), transparent 70%);
    background: color-mix(in srgb, var(--accent-color), transparent 95%);
}

    .page-users .users-insight-total .users-insight-icon {
        background: color-mix(in srgb, var(--accent-color), transparent 84%);
        color: var(--accent-color);
    }

.page-users .users-insight-active {
    border-color: color-mix(in srgb, var(--success-color), transparent 70%);
    background: color-mix(in srgb, var(--success-color), transparent 94%);
}

    .page-users .users-insight-active .users-insight-icon {
        background: var(--success-color-light);
        color: var(--success-color);
    }

.page-users .users-insight-pending {
    border-color: color-mix(in srgb, var(--warning-color), transparent 66%);
    background: color-mix(in srgb, var(--warning-color), transparent 93%);
}

    .page-users .users-insight-pending .users-insight-icon {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

.page-users .users-insight-inactive {
    border-color: color-mix(in srgb, var(--danger-color), transparent 74%);
    background: color-mix(in srgb, var(--danger-color), transparent 95%);
}

    .page-users .users-insight-inactive .users-insight-icon {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

.page-users .users-list-card {
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.page-users .users-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--card-bg), var(--background-color) 22%);
    flex-wrap: wrap;
}

.page-users .users-toolbar-left,
.page-users .users-toolbar-right {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.page-users .users-filter-tabs {
    display: inline-flex;
    gap: 3px;
    border-radius: var(--radius-md);
    background: var(--background-color);
    padding: 3px;
}

.page-users .users-filter-tab {
    border: none;
    background: transparent;
    color: var(--muted-color);
    font-size: 0.76rem;
    font-weight: 700;
    border-radius: var(--radius-sm);
    padding: 6px 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

    .page-users .users-filter-tab.active {
        background: var(--surface-color);
        color: var(--heading-color);
        box-shadow: var(--shadow-sm);
    }

.page-users .users-filter-count {
    font-size: 0.67rem;
    color: var(--light-color);
    font-weight: 700;
}

.page-users .users-search {
    position: relative;
}

    .page-users .users-search i {
        position: absolute;
        left: 10px;
        top: 50%;
        transform: translateY(-50%);
        color: var(--light-color);
        font-size: 0.8rem;
        pointer-events: none;
    }

    .page-users .users-search input {
        width: 250px;
        height: 34px;
        border-radius: var(--radius-md);
        border: 1px solid var(--border-color);
        padding: 0 10px 0 30px;
        font-size: 0.78rem;
        color: var(--default-color);
        background: var(--surface-color);
    }

        .page-users .users-search input:focus {
            outline: none;
            border-color: var(--accent-color);
        }

.page-users .users-toolbar-btn {
    height: 34px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    color: var(--default-color);
    font-size: 0.78rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0 10px;
}

.page-users .users-table-wrap {
    border-top: 1px solid var(--border-color-light);
}

.page-users .table {
    --bs-table-striped-bg: transparent;
}

    .page-users .table thead th {
        font-size: 0.69rem;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        font-weight: 700;
        color: var(--muted-color);
        background: color-mix(in srgb, var(--background-color), var(--surface-color) 26%);
        border-bottom: 1px solid var(--border-color);
        padding: 11px 10px;
    }

    .page-users .table tbody td {
        padding: 11px 10px;
        border-bottom: 1px solid var(--border-color-light);
    }

.page-users .users-th-check {
    width: 44px;
}

.page-users .users-th-actions {
    width: 126px;
    text-align: right;
}

.page-users .users-meta {
    font-size: 0.76rem;
    color: var(--muted-color);
    white-space: nowrap;
}

.page-users .users-user {
    display: flex;
    align-items: center;
    gap: 10px;
}

.page-users .users-avatar-wrap {
    position: relative;
    flex-shrink: 0;
}

.page-users .users-avatar {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
    object-fit: cover;
}

.page-users .users-avatar-status {
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    border: 2px solid var(--card-bg);
}

    .page-users .users-avatar-status.online {
        background: var(--success-color);
    }

    .page-users .users-avatar-status.away {
        background: var(--warning-color);
    }

    .page-users .users-avatar-status.offline {
        background: var(--light-color);
    }

.page-users .users-user-name {
    display: block;
    font-size: 0.84rem;
    color: var(--heading-color);
    font-weight: 700;
    text-decoration: none;
    line-height: 1.2;
}

    .page-users .users-user-name:hover {
        color: var(--accent-color);
    }

.page-users .users-user-email {
    display: block;
    font-size: 0.71rem;
    color: var(--muted-color);
    margin-top: 1px;
}

.page-users .users-role {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 9px;
    border-radius: var(--radius-full);
    font-size: 0.71rem;
    font-weight: 700;
}

    .page-users .users-role i {
        font-size: 0.66rem;
    }

    .page-users .users-role.admin {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

    .page-users .users-role.manager {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .page-users .users-role.user {
        background: var(--info-color-light);
        color: var(--info-color);
    }

.page-users .users-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.74rem;
    font-weight: 700;
    white-space: nowrap;
}

    .page-users .users-status .users-status-dot {
        width: 7px;
        height: 7px;
        border-radius: var(--radius-full);
        background: currentColor;
    }

    .page-users .users-status.active {
        color: var(--success-color);
    }

    .page-users .users-status.inactive {
        color: var(--muted-color);
    }

    .page-users .users-status.pending {
        color: var(--warning-color);
    }

.page-users .users-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 3px;
}

.page-users .users-action-btn {
    width: 30px;
    height: 30px;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--muted-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.82rem;
    text-decoration: none;
    padding: 0;
}

    .page-users .users-action-btn:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 65%);
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
        color: var(--accent-color);
    }

    .page-users .users-action-btn::after {
        display: none;
    }

.page-users .users-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
    padding: 10px 14px;
    border-top: 1px solid var(--border-color);
}

.page-users .users-pagination-info {
    font-size: 0.76rem;
    color: var(--muted-color);
}

@media (max-width: 991px) {
    .page-users .users-insight-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-users .users-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .page-users .users-toolbar-right {
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .page-users .users-search input {
        width: 220px;
    }
}

@media (max-width: 767px) {
    .page-users .users-insight-row {
        grid-template-columns: 1fr;
    }

    .page-users .users-search {
        width: 100%;
    }

        .page-users .users-search input {
            width: 100%;
        }

    .page-users .users-th-actions {
        width: 94px;
    }

    .page-users .users-actions {
        gap: 0;
    }
}

/*--------------------------------------------------------------
# User View - FlexAdmin
--------------------------------------------------------------*/
.page-users-view .uv-page-header {
    margin-bottom: var(--spacing-lg);
}

.page-users-view .uv-identity-card {
    border-radius: var(--radius-xl);
    border: 1px solid color-mix(in srgb, var(--accent-color), transparent 78%);
    background: linear-gradient(155deg, color-mix(in srgb, var(--accent-color), transparent 95%), var(--card-bg) 58%);
}

.page-users-view .uv-identity-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.page-users-view .uv-identity-user {
    display: flex;
    gap: var(--spacing-md);
    align-items: center;
}

.page-users-view .uv-identity-avatar-wrap {
    position: relative;
}

.page-users-view .uv-identity-avatar {
    width: 82px;
    height: 82px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 3px solid var(--card-bg);
    box-shadow: var(--shadow-md);
}

.page-users-view .uv-identity-status {
    position: absolute;
    right: 3px;
    bottom: 3px;
    width: 13px;
    height: 13px;
    border-radius: var(--radius-full);
    border: 2px solid var(--card-bg);
    background: var(--success-color);
}

.page-users-view .uv-identity-name {
    margin: 0;
    font-size: 1.35rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-users-view .uv-identity-email {
    margin: 0;
    font-size: 0.82rem;
    color: var(--muted-color);
}

.page-users-view .uv-identity-tags {
    margin-top: 8px;
    display: flex;
    gap: 7px;
    align-items: center;
    flex-wrap: wrap;
}

.page-users-view .uv-id-chip {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--muted-color);
    padding: 3px 8px;
    border-radius: var(--radius-full);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
}

.page-users-view .uv-identity-cta {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--accent-color);
    text-decoration: none;
}

    .page-users-view .uv-identity-cta i {
        font-size: 0.72rem;
        margin-left: 4px;
    }

.page-users-view .uv-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.page-users-view .uv-metric {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    padding: 10px 44px 10px 11px;
    background: color-mix(in srgb, var(--surface-color), var(--background-color) 20%);
    position: relative;
    overflow: hidden;
}

.page-users-view .uv-metric-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    position: absolute;
    right: 8px;
    top: 8px;
}

.page-users-view .uv-metric:nth-child(1) .uv-metric-icon {
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-users-view .uv-metric:nth-child(2) .uv-metric-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-users-view .uv-metric:nth-child(3) .uv-metric-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-users-view .uv-metric:nth-child(4) .uv-metric-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-users-view .uv-metric-label {
    display: block;
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted-color);
    font-weight: 700;
}

.page-users-view .uv-metric-value {
    display: block;
    font-size: 1.16rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-top: 2px;
}

.page-users-view .uv-identity-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.page-users-view .uv-detail-item {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    padding: 8px 10px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

    .page-users-view .uv-detail-item span {
        font-size: 0.72rem;
        color: var(--muted-color);
    }

    .page-users-view .uv-detail-item strong {
        font-size: 0.74rem;
        color: var(--heading-color);
        font-weight: 700;
        text-align: right;
    }

.page-users-view .uv-health-card {
    border-radius: var(--radius-xl);
}

.page-users-view .uv-health-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 0;
}

    .page-users-view .uv-health-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.page-users-view .uv-health-label {
    font-size: 0.77rem;
    color: var(--muted-color);
}

.page-users-view .uv-health-value {
    font-size: 0.78rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-users-view .uv-health-ok {
    font-size: 0.76rem;
    color: var(--success-color);
    font-weight: 700;
}

    .page-users-view .uv-health-ok i {
        margin-right: 3px;
    }

.page-users-view .uv-team-stack {
    margin-top: var(--spacing-sm);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-users-view .uv-team-stack-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 8px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
}

.page-users-view .uv-team-icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.page-users-view .uv-team-name {
    font-size: 0.78rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-users-view .uv-team-members {
    font-size: 0.7rem;
    color: var(--muted-color);
}

.page-users-view .uv-timeline {
    display: flex;
    flex-direction: column;
}

.page-users-view .uv-timeline-item {
    position: relative;
    display: flex;
    gap: 10px;
    padding: 9px 0;
}

    .page-users-view .uv-timeline-item:not(:last-child)::before {
        content: "";
        position: absolute;
        left: 4px;
        top: 20px;
        bottom: -6px;
        width: 1px;
        background: var(--border-color-light);
    }

.page-users-view .uv-timeline-dot {
    width: 9px;
    height: 9px;
    margin-top: 5px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

    .page-users-view .uv-timeline-dot.success {
        background: var(--success-color);
    }

    .page-users-view .uv-timeline-dot.info {
        background: var(--info-color);
    }

    .page-users-view .uv-timeline-dot.warning {
        background: var(--warning-color);
    }

    .page-users-view .uv-timeline-dot.accent {
        background: var(--accent-color);
    }

.page-users-view .uv-timeline-title {
    font-size: 0.82rem;
    color: var(--heading-color);
    font-weight: 700;
    line-height: 1.3;
}

.page-users-view .uv-timeline-desc {
    font-size: 0.76rem;
    color: var(--muted-color);
    margin-top: 1px;
}

.page-users-view .uv-timeline-time {
    font-size: 0.69rem;
    color: var(--light-color);
    margin-top: 3px;
}

.page-users-view .uv-access-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    padding: 9px 10px;
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--info-color), transparent 78%);
    background: color-mix(in srgb, var(--info-color), transparent 94%);
    color: var(--info-color);
    font-size: 0.74rem;
    margin-bottom: var(--spacing-sm);
}

    .page-users-view .uv-access-note a {
        color: inherit;
        font-weight: 700;
    }

.page-users-view .uv-access-grid {
    display: flex;
    flex-direction: column;
}

.page-users-view .uv-access-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--border-color-light);
    font-size: 0.78rem;
    color: var(--muted-color);
}

    .page-users-view .uv-access-row:last-child {
        border-bottom: none;
    }

.page-users-view .uv-perm-yes {
    color: var(--success-color);
    font-weight: 700;
}

.page-users-view .uv-session-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
}

    .page-users-view .uv-session-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.page-users-view .uv-session-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--background-color);
    color: var(--muted-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.page-users-view .uv-session-title {
    font-size: 0.8rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-users-view .uv-session-current {
    font-size: 0.64rem;
    font-weight: 700;
    color: var(--success-color);
    background: var(--success-color-light);
    padding: 1px 6px;
    border-radius: var(--radius-sm);
    margin-left: 5px;
}

.page-users-view .uv-session-details {
    font-size: 0.72rem;
    color: var(--muted-color);
    margin-top: 1px;
}

@media (max-width: 1199px) {
    .page-users-view .uv-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .page-users-view .uv-identity-head {
        flex-direction: column;
    }

    .page-users-view .uv-identity-user {
        align-items: flex-start;
    }

    .page-users-view .uv-identity-details {
        grid-template-columns: 1fr;
    }

    .page-users-view .uv-metrics-grid {
        grid-template-columns: 1fr;
    }

    .page-users-view .uv-session-item {
        align-items: flex-start;
        flex-wrap: wrap;
    }
}

/*--------------------------------------------------------------
# User Edit - FlexAdmin
--------------------------------------------------------------*/
.page-users-edit .ue-summary-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-sm);
}

.page-users-edit .ue-summary-item {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    padding: 11px 44px 11px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    position: relative;
    overflow: hidden;
}

.page-users-edit .ue-summary-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    position: absolute;
    right: 9px;
    top: 9px;
}

.page-users-edit .ue-summary-item:nth-child(1) .ue-summary-icon {
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-users-edit .ue-summary-item:nth-child(2) .ue-summary-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-users-edit .ue-summary-item:nth-child(3) .ue-summary-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-users-edit .ue-summary-item:nth-child(4) .ue-summary-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-users-edit .ue-summary-label {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    color: var(--muted-color);
}

.page-users-edit .ue-summary-value {
    font-size: 0.9rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-users-edit {
    /* Avatar Upload */
}

    .page-users-edit .ue-avatar-upload {
        position: relative;
        width: 120px;
        height: 120px;
        margin: 0 auto var(--spacing-md);
        border-radius: var(--radius-full);
        overflow: hidden;
        cursor: pointer;
    }

    .page-users-edit .ue-avatar-preview {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .page-users-edit .ue-avatar-overlay {
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        color: var(--contrast-color);
        font-size: 0.75rem;
        font-weight: 500;
        opacity: 0;
        transition: opacity var(--transition-fast);
    }

        .page-users-edit .ue-avatar-overlay i {
            font-size: 1.25rem;
        }

    .page-users-edit .ue-avatar-upload:hover .ue-avatar-overlay {
        opacity: 1;
    }

    .page-users-edit .ue-avatar-input {
        position: absolute;
        inset: 0;
        opacity: 0;
        cursor: pointer;
    }

    .page-users-edit .ue-avatar-hint {
        text-align: center;
        font-size: 0.75rem;
        color: var(--light-color);
        margin: 0;
    }

.page-users-edit {
    /* Toggle Items */
}

    .page-users-edit .ue-toggles {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .page-users-edit .ue-toggle-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--spacing-md);
        padding: var(--spacing-sm) 0;
    }

        .page-users-edit .ue-toggle-item:not(:last-child) {
            border-bottom: 1px solid var(--border-color-light);
        }

    .page-users-edit .ue-toggle-label {
        display: block;
        font-size: 0.8125rem;
        font-weight: 500;
        color: var(--heading-color);
    }

    .page-users-edit .ue-toggle-desc {
        display: block;
        font-size: 0.6875rem;
        color: var(--light-color);
    }

.page-users-edit {
    /* Danger Card */
}

    .page-users-edit .ue-danger-card {
        border-color: var(--danger-color-light);
    }

        .page-users-edit .ue-danger-card .card-header {
            background: var(--danger-color-light);
            color: var(--danger-color);
        }

    .page-users-edit .ue-danger-text {
        font-size: 0.8125rem;
        color: var(--muted-color);
        margin-bottom: var(--spacing-md);
    }

.page-users-edit {
    /* Password Note */
}

    .page-users-edit .ue-password-note {
        display: flex;
        align-items: center;
        gap: var(--spacing-sm);
        padding: var(--spacing-sm) var(--spacing-md);
        background: color-mix(in srgb, var(--info-color), transparent 92%);
        border-radius: var(--radius-md);
        color: var(--info-color);
        font-size: 0.8125rem;
        margin-bottom: var(--spacing-lg);
    }

.page-users-edit {
    /* Form Actions */
}

    .page-users-edit .ue-form-actions {
        display: flex;
        justify-content: flex-end;
        gap: var(--spacing-sm);
    }

.page-users-edit {
    /* Delete Modal Icon */
}

    .page-users-edit .ue-delete-icon {
        width: 56px;
        height: 56px;
        border-radius: var(--radius-full);
        background: var(--danger-color-light);
        color: var(--danger-color);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.5rem;
        margin: 0 auto var(--spacing-md);
    }

/* Responsive */
@media (max-width: 767px) {
    .page-users .users-toolbar, .page-users-view .users-toolbar, .page-users-edit .users-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .page-users .users-toolbar-right, .page-users-view .users-toolbar-right, .page-users-edit .users-toolbar-right {
        flex-wrap: wrap;
    }

    .page-users .users-search input, .page-users-view .users-search input, .page-users-edit .users-search input {
        width: 100%;
    }

    .page-users .users-filter-tabs, .page-users-view .users-filter-tabs, .page-users-edit .users-filter-tabs {
        overflow-x: auto;
    }

    .page-users .uv-banner-content, .page-users-view .uv-banner-content, .page-users-edit .uv-banner-content {
        flex-direction: column;
        align-items: flex-start;
        padding: 0 var(--spacing-lg) var(--spacing-lg);
    }

    .page-users .uv-banner-stats, .page-users-view .uv-banner-stats, .page-users-edit .uv-banner-stats {
        gap: var(--spacing-lg);
    }

    .page-users-edit .ue-summary-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .page-users-edit .ue-summary-row {
        grid-template-columns: 1fr;
    }
}
/*--------------------------------------------------------------
# Roles & Permissions Page - FlexAdmin
--------------------------------------------------------------*/
.page-roles {
    /* Subtitle */
}

    .page-roles .roles-subtitle {
        font-size: 0.8125rem;
        color: var(--muted-color);
    }

.page-roles {
    /* Roles List */
}

    .page-roles .roles-item {
        display: flex;
        align-items: center;
        gap: var(--spacing-md);
        padding: var(--spacing-md) var(--spacing-lg);
        border-bottom: 1px solid var(--border-color-light);
        cursor: pointer;
        transition: all var(--transition-fast);
    }

        .page-roles .roles-item:last-child {
            border-bottom: none;
        }

        .page-roles .roles-item:hover {
            background: var(--background-color);
        }

        .page-roles .roles-item.active {
            background: color-mix(in srgb, var(--accent-color), transparent 94%);
            border-left: 3px solid var(--accent-color);
            padding-left: calc(var(--spacing-lg) - 3px);
        }

            .page-roles .roles-item.active .roles-item-name {
                color: var(--accent-color);
            }

    .page-roles .roles-item-icon {
        width: 40px;
        height: 40px;
        border-radius: var(--radius-md);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.125rem;
        flex-shrink: 0;
    }

    .page-roles .roles-item-info {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

    .page-roles .roles-item-name {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .page-roles .roles-item-count {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

    .page-roles .roles-item-edit {
        width: 30px;
        height: 30px;
        border-radius: var(--radius-md);
        border: none;
        background: none;
        color: var(--muted-color);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.8125rem;
        cursor: pointer;
        opacity: 0;
        transition: all var(--transition-fast);
    }

    .page-roles .roles-item:hover .roles-item-edit {
        opacity: 1;
    }

    .page-roles .roles-item-edit:hover {
        background: var(--background-color);
        color: var(--accent-color);
    }

.page-roles {
    /* Role Details */
}

    .page-roles .roles-detail-list {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-md);
    }

    .page-roles .roles-detail {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .page-roles .roles-detail-label {
        font-size: 0.75rem;
        color: var(--muted-color);
        text-transform: uppercase;
        letter-spacing: 0.04em;
        font-weight: 500;
    }

    .page-roles .roles-detail-value {
        font-size: 0.875rem;
        color: var(--heading-color);
        line-height: 1.5;
    }

.page-roles {
    /* Permissions Table */
}

    .page-roles .roles-perm-table {
        font-size: 0.875rem;
    }

        .page-roles .roles-perm-table thead th {
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            color: var(--muted-color);
            border-bottom-width: 2px;
            padding: var(--spacing-sm) var(--spacing-md);
        }

        .page-roles .roles-perm-table td {
            vertical-align: middle;
            padding: var(--spacing-sm) var(--spacing-md);
        }

    .page-roles .roles-perm-group td {
        background: var(--background-color);
        font-weight: 600;
        font-size: 0.8125rem;
        color: var(--heading-color);
        padding-top: var(--spacing-md);
        border-bottom: 1px solid var(--border-color);
    }

    .page-roles .roles-perm-module {
        padding-left: var(--spacing-xl);
        color: var(--default-color);
    }

    .page-roles .roles-perm-na {
        color: var(--light-color);
        font-size: 0.75rem;
    }

    .page-roles .roles-perm-table .form-check-input {
        cursor: pointer;
        width: 1.125rem;
        height: 1.125rem;
    }

        .page-roles .roles-perm-table .form-check-input:checked {
            background-color: var(--accent-color);
            border-color: var(--accent-color);
        }

.page-roles {
    /* Users with Role */
}

    .page-roles .roles-user-count {
        font-size: 0.8125rem;
        font-weight: 500;
        color: var(--muted-color);
        background: var(--background-color);
        padding: 2px 10px;
        border-radius: var(--radius-full);
    }

    .page-roles .roles-users-list {
        display: flex;
        flex-direction: column;
    }

    .page-roles .roles-user {
        display: flex;
        align-items: center;
        gap: var(--spacing-md);
        padding: var(--spacing-md) var(--spacing-lg);
        border-bottom: 1px solid var(--border-color-light);
    }

        .page-roles .roles-user:last-child {
            border-bottom: none;
        }

    .page-roles .roles-user-avatar {
        width: 36px;
        height: 36px;
        border-radius: var(--radius-full);
        object-fit: cover;
        flex-shrink: 0;
    }

    .page-roles .roles-user-info {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

    .page-roles .roles-user-name {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .page-roles .roles-user-email {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

    .page-roles .roles-user-status {
        font-size: 0.6875rem;
        font-weight: 500;
        padding: 2px 8px;
        border-radius: var(--radius-full);
        flex-shrink: 0;
    }

        .page-roles .roles-user-status.active {
            background: var(--success-color-light);
            color: var(--success-color);
        }

    .page-roles .roles-user-date {
        font-size: 0.75rem;
        color: var(--muted-color);
        flex-shrink: 0;
        white-space: nowrap;
    }

.page-roles {
    /* Color Picker in Modal */
}

    .page-roles .roles-color-options {
        display: flex;
        gap: var(--spacing-sm);
    }

    .page-roles .roles-color-option {
        cursor: pointer;
        position: relative;
    }

        .page-roles .roles-color-option input[type=radio] {
            position: absolute;
            opacity: 0;
            pointer-events: none;
        }

    .page-roles .roles-color-swatch {
        display: block;
        width: 32px;
        height: 32px;
        border-radius: var(--radius-full);
        border: 2px solid transparent;
        transition: all var(--transition-fast);
    }

    .page-roles .roles-color-option input:checked + .roles-color-swatch {
        border-color: var(--heading-color);
        box-shadow: 0 0 0 2px var(--card-bg), 0 0 0 4px var(--heading-color);
    }

/* Responsive */
@media (max-width: 767px) {
    .page-roles .roles-user {
        flex-wrap: wrap;
    }

    .page-roles .roles-user-date {
        display: none;
    }

    .page-roles .roles-perm-module {
        padding-left: var(--spacing-md);
    }
}
/*--------------------------------------------------------------
# Invoice Pages - FlexAdmin
--------------------------------------------------------------*/
.page-invoice-list .inv-header-subtitle,
.page-invoice .inv-header-subtitle {
    margin: 0;
    font-size: 0.86rem;
    color: var(--muted-color);
}

.page-invoice-list .inv-overview,
.page-invoice .inv-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.page-invoice-list .inv-overview-item,
.page-invoice .inv-overview-item {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    padding: 10px 42px 10px 11px;
    position: relative;
}

.page-invoice-list .inv-overview-icon,
.page-invoice .inv-overview-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 9px;
    top: 9px;
    font-size: 0.82rem;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-invoice-list .inv-overview-item:nth-child(2) .inv-overview-icon,
.page-invoice .inv-overview-item:nth-child(2) .inv-overview-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-invoice-list .inv-overview-item:nth-child(3) .inv-overview-icon,
.page-invoice .inv-overview-item:nth-child(3) .inv-overview-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-invoice-list .inv-overview-item:nth-child(4) .inv-overview-icon,
.page-invoice .inv-overview-item:nth-child(4) .inv-overview-icon {
    color: var(--danger-color);
    background: var(--danger-color-light);
}

.page-invoice-list .inv-overview-label,
.page-invoice .inv-overview-label {
    display: block;
    font-size: 0.67rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted-color);
    font-weight: 700;
}

.page-invoice-list .inv-overview-value,
.page-invoice .inv-overview-value {
    display: block;
    margin-top: 2px;
    font-size: 0.94rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-invoice-list .inv-status,
.page-invoice .inv-status {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: var(--radius-full);
}

    .page-invoice-list .inv-status.paid,
    .page-invoice .inv-status.paid {
        color: var(--success-color);
        background: var(--success-color-light);
    }

    .page-invoice-list .inv-status.pending,
    .page-invoice .inv-status.pending {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

    .page-invoice-list .inv-status.overdue,
    .page-invoice .inv-status.overdue {
        color: var(--danger-color);
        background: var(--danger-color-light);
    }

    .page-invoice-list .inv-status.draft,
    .page-invoice .inv-status.draft {
        color: var(--muted-color);
        background: color-mix(in srgb, var(--muted-color), transparent 84%);
    }

.page-invoice-list .inv-client-avatar,
.page-invoice .inv-client-avatar {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 700;
}

    .page-invoice-list .inv-client-avatar.accent,
    .page-invoice .inv-client-avatar.accent {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 84%);
    }

    .page-invoice-list .inv-client-avatar.success,
    .page-invoice .inv-client-avatar.success {
        color: var(--success-color);
        background: var(--success-color-light);
    }

    .page-invoice-list .inv-client-avatar.warning,
    .page-invoice .inv-client-avatar.warning {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

    .page-invoice-list .inv-client-avatar.info,
    .page-invoice .inv-client-avatar.info {
        color: var(--info-color);
        background: var(--info-color-light);
    }

    .page-invoice-list .inv-client-avatar.danger,
    .page-invoice .inv-client-avatar.danger {
        color: var(--danger-color);
        background: var(--danger-color-light);
    }

.page-invoice-list .inv-list-card,
.page-invoice-list .inv-side-card {
    border-radius: var(--radius-lg);
}

.page-invoice-list .inv-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.page-invoice-list .inv-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
}

.page-invoice-list .inv-search {
    position: relative;
}

    .page-invoice-list .inv-search i {
        position: absolute;
        left: 9px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 0.78rem;
        color: var(--muted-color);
    }

    .page-invoice-list .inv-search input {
        width: 225px;
        height: 34px;
        border-radius: var(--radius-md);
        border: 1px solid var(--border-color);
        background: var(--surface-color);
        padding: 0 10px 0 28px;
        font-size: 0.76rem;
    }

        .page-invoice-list .inv-search input:focus {
            outline: none;
            border-color: var(--accent-color);
        }

.page-invoice-list .inv-filter {
    height: 34px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    font-size: 0.76rem;
    color: var(--default-color);
    padding: 0 9px;
}

    .page-invoice-list .inv-filter:focus {
        outline: none;
        border-color: var(--accent-color);
    }

.page-invoice-list .table thead th {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--muted-color);
    font-weight: 700;
    border-bottom: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--background-color), var(--surface-color) 25%);
    padding: 10px;
}

.page-invoice-list .table tbody td {
    padding: 10px;
    border-bottom: 1px solid var(--border-color-light);
}

.page-invoice-list .inv-th-check {
    width: 42px;
}

.page-invoice-list .inv-th-actions {
    width: 108px;
    text-align: right;
}

.page-invoice-list .inv-id {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--accent-color);
    text-decoration: none;
}

.page-invoice-list .inv-client {
    display: flex;
    align-items: center;
    gap: 7px;
}

    .page-invoice-list .inv-client span:last-child {
        font-size: 0.79rem;
        color: var(--heading-color);
        font-weight: 700;
    }

.page-invoice-list .inv-date {
    font-size: 0.75rem;
    color: var(--muted-color);
    white-space: nowrap;
}

.page-invoice-list .inv-amount {
    font-size: 0.8rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-invoice-list .inv-actions {
    display: inline-flex;
    gap: 3px;
}

.page-invoice-list .inv-action-btn {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    background: transparent;
    color: var(--muted-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
}

    .page-invoice-list .inv-action-btn:hover {
        color: var(--accent-color);
        border-color: color-mix(in srgb, var(--accent-color), transparent 64%);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.page-invoice-list .inv-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px;
    border-top: 1px solid var(--border-color-light);
    flex-wrap: wrap;
}

.page-invoice-list .inv-pagination-info {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.page-invoice-list .inv-pipeline .inv-pipe-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5px;
    font-size: 0.76rem;
    color: var(--muted-color);
}

    .page-invoice-list .inv-pipeline .inv-pipe-row strong {
        color: var(--heading-color);
        font-weight: 700;
    }

.page-invoice-list .inv-pipeline .progress {
    height: 8px;
    border-radius: var(--radius-full);
    background: var(--background-color);
}

.page-invoice-list .inv-quick-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .page-invoice-list .inv-quick-links a {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        text-decoration: none;
        border: 1px solid var(--border-color-light);
        border-radius: var(--radius-md);
        padding: 8px;
        font-size: 0.77rem;
        color: var(--default-color);
    }

        .page-invoice-list .inv-quick-links a i {
            color: var(--accent-color);
        }

        .page-invoice-list .inv-quick-links a:hover {
            color: var(--accent-color);
            border-color: color-mix(in srgb, var(--accent-color), transparent 60%);
            background: color-mix(in srgb, var(--accent-color), transparent 95%);
        }

.page-invoice .inv-sheet-card,
.page-invoice .inv-side-card {
    border-radius: var(--radius-lg);
}

.page-invoice .inv-sheet-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--border-color-light);
    padding-bottom: 14px;
    margin-bottom: 14px;
}

.page-invoice .inv-brand {
    display: flex;
    align-items: center;
    gap: 9px;
}

    .page-invoice .inv-brand img {
        height: 26px;
        width: auto;
    }

.page-invoice .inv-brand-name {
    font-size: 0.9rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-invoice .inv-brand-meta {
    font-size: 0.73rem;
    color: var(--muted-color);
}

.page-invoice .inv-doc-meta {
    text-align: right;
}

.page-invoice .inv-doc-title {
    font-size: 1.12rem;
    font-weight: 700;
    color: var(--heading-color);
    letter-spacing: 0.04em;
}

.page-invoice .inv-doc-number {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.page-invoice .inv-address-card {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    padding: 10px;
    background: var(--surface-color);
}

    .page-invoice .inv-address-card p {
        margin: 4px 0 0;
        font-size: 0.75rem;
        color: var(--muted-color);
        line-height: 1.5;
    }

.page-invoice .inv-address-label {
    font-size: 0.66rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted-color);
    font-weight: 700;
}

.page-invoice .inv-address-name {
    display: block;
    margin-top: 2px;
    font-size: 0.83rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-invoice .inv-meta-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0;
}

    .page-invoice .inv-meta-strip div {
        border: 1px solid var(--border-color-light);
        border-radius: var(--radius-md);
        padding: 8px;
        background: var(--surface-color);
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .page-invoice .inv-meta-strip span {
        font-size: 0.67rem;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--muted-color);
        font-weight: 700;
    }

    .page-invoice .inv-meta-strip strong {
        font-size: 0.78rem;
        color: var(--heading-color);
        font-weight: 700;
    }

.page-invoice .inv-line-table-wrap {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 12px;
}

.page-invoice .inv-line-table {
    margin: 0;
}

    .page-invoice .inv-line-table thead th {
        font-size: 0.67rem;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        color: var(--muted-color);
        font-weight: 700;
        background: color-mix(in srgb, var(--background-color), var(--surface-color) 25%);
        border-bottom: 1px solid var(--border-color);
        padding: 10px;
    }

    .page-invoice .inv-line-table tbody td {
        padding: 10px;
        border-bottom: 1px solid var(--border-color-light);
        font-size: 0.77rem;
        color: var(--default-color);
    }

    .page-invoice .inv-line-table tbody tr:last-child td {
        border-bottom: none;
    }

.page-invoice .inv-line-name {
    font-size: 0.79rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-invoice .inv-line-desc {
    font-size: 0.72rem;
    color: var(--muted-color);
    margin-top: 1px;
}

.page-invoice .inv-total-table td {
    font-size: 0.76rem;
    color: var(--muted-color);
    padding: 4px 0;
}

.page-invoice .inv-total-table .inv-total td {
    font-size: 0.88rem;
    color: var(--heading-color);
    font-weight: 700;
    border-top: 1px solid var(--border-color-light);
    padding-top: 8px;
}

.page-invoice .inv-total-table .inv-balance td {
    font-size: 0.8rem;
    color: var(--heading-color);
    font-weight: 700;
    border-top: 1px solid var(--border-color-light);
    padding-top: 7px;
}

.page-invoice .inv-note-block {
    margin-top: 12px;
    border-top: 1px solid var(--border-color-light);
    padding-top: 10px;
}

    .page-invoice .inv-note-block p {
        margin: 4px 0 0;
        font-size: 0.75rem;
        color: var(--muted-color);
        line-height: 1.5;
    }

.page-invoice .inv-side-list {
    display: flex;
    flex-direction: column;
}

.page-invoice .inv-side-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 11px;
    border-bottom: 1px solid var(--border-color-light);
}

    .page-invoice .inv-side-row:last-child {
        border-bottom: none;
    }

    .page-invoice .inv-side-row span {
        font-size: 0.74rem;
        color: var(--muted-color);
    }

    .page-invoice .inv-side-row strong {
        font-size: 0.77rem;
        color: var(--heading-color);
        font-weight: 700;
    }

.page-invoice .inv-client-card {
    display: flex;
    align-items: center;
    gap: 8px;
}

.page-invoice .inv-client-name {
    font-size: 0.82rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-invoice .inv-client-email {
    font-size: 0.73rem;
    color: var(--muted-color);
    margin-top: 1px;
}

.page-invoice .inv-activity {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.page-invoice .inv-activity-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.page-invoice .inv-activity-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    margin-top: 6px;
    flex-shrink: 0;
}

    .page-invoice .inv-activity-dot.success {
        background: var(--success-color);
    }

    .page-invoice .inv-activity-dot.accent {
        background: var(--accent-color);
    }

    .page-invoice .inv-activity-dot.muted {
        background: var(--muted-color);
    }

.page-invoice .inv-activity-text {
    font-size: 0.78rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-invoice .inv-activity-time {
    font-size: 0.72rem;
    color: var(--muted-color);
    margin-top: 1px;
}

@media (max-width: 1199px) {
    .page-invoice-list .inv-overview,
    .page-invoice .inv-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-invoice .inv-meta-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .page-invoice-list .inv-overview,
    .page-invoice .inv-overview {
        grid-template-columns: 1fr;
    }

    .page-invoice-list .inv-toolbar {
        width: 100%;
        flex-wrap: wrap;
    }

    .page-invoice-list .inv-search {
        width: 100%;
    }

        .page-invoice-list .inv-search input {
            width: 100%;
        }

    .page-invoice .inv-sheet-head {
        flex-direction: column;
    }

    .page-invoice .inv-doc-meta {
        text-align: left;
    }

    .page-invoice .inv-meta-strip {
        grid-template-columns: 1fr;
    }
}
/*--------------------------------------------------------------
# Pricing Page - FlexAdmin
--------------------------------------------------------------*/
.page-pricing .pricing-hero {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    overflow: hidden;
}

    .page-pricing .pricing-hero .pricing-hero-main {
        padding: 1.35rem;
    }

    .page-pricing .pricing-hero .pricing-kicker {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        font-size: 0.67rem;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--accent-color);
        font-weight: 700;
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
        border: 1px solid color-mix(in srgb, var(--accent-color), transparent 74%);
        padding: 0.35rem 0.6rem;
        border-radius: var(--radius-full);
    }

    .page-pricing .pricing-hero .pricing-hero-title {
        margin: 0.75rem 0 0.35rem;
        font-size: 1.8rem;
        line-height: 1.2;
        color: var(--heading-color);
    }

    .page-pricing .pricing-hero .pricing-hero-desc {
        margin: 0;
        max-width: 62ch;
        color: var(--muted-color);
        font-size: 0.9rem;
    }

    .page-pricing .pricing-hero .pricing-toggle-shell {
        margin-top: 1rem;
    }

    .page-pricing .pricing-hero .pricing-toggle {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        padding: 0.28rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-full);
        background: var(--surface-color);
    }

    .page-pricing .pricing-hero .pricing-toggle-label {
        height: 32px;
        border: none;
        border-radius: var(--radius-full);
        background: transparent;
        padding: 0 0.8rem;
        font-size: 0.78rem;
        font-weight: 700;
        color: var(--muted-color);
    }

        .page-pricing .pricing-hero .pricing-toggle-label.active {
            color: var(--contrast-color);
            background: var(--accent-color);
        }

    .page-pricing .pricing-hero .pricing-toggle-pill {
        font-size: 0.65rem;
        font-weight: 700;
        color: var(--success-color);
        background: var(--success-color-light);
        border-radius: var(--radius-full);
        padding: 0.18rem 0.5rem;
        white-space: nowrap;
    }

    .page-pricing .pricing-hero .pricing-hero-points {
        margin-top: 0.9rem;
        display: flex;
        flex-wrap: wrap;
        gap: 0.65rem;
    }

    .page-pricing .pricing-hero .pricing-hero-point {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        font-size: 0.74rem;
        color: var(--muted-color);
    }

        .page-pricing .pricing-hero .pricing-hero-point i {
            color: var(--success-color);
        }

    .page-pricing .pricing-hero .pricing-hero-side {
        height: 100%;
        border-left: 1px solid var(--border-color-light);
        background: linear-gradient(155deg, color-mix(in srgb, var(--accent-color), transparent 95%), var(--card-bg));
        padding: 1.15rem;
    }

    .page-pricing .pricing-hero .pricing-side-title {
        font-size: 0.78rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--muted-color);
        margin-bottom: 0.7rem;
    }

    .page-pricing .pricing-hero .pricing-side-list {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }

    .page-pricing .pricing-hero .pricing-side-item {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        border: 1px solid var(--border-color-light);
        background: var(--card-bg);
        border-radius: var(--radius-md);
        padding: 0.5rem 0.6rem;
        font-size: 0.78rem;
        color: var(--heading-color);
    }

        .page-pricing .pricing-hero .pricing-side-item i {
            color: var(--accent-color);
        }

.page-pricing .pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.page-pricing .pricing-card {
    position: relative;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

    .page-pricing .pricing-card.pricing-card-featured {
        border-color: color-mix(in srgb, var(--accent-color), transparent 45%);
        box-shadow: 0 10px 26px color-mix(in srgb, var(--accent-color), transparent 85%);
    }

.page-pricing .pricing-badge {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    background: color-mix(in srgb, var(--accent-color), transparent 10%);
    color: var(--contrast-color);
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: var(--radius-full);
    padding: 0.22rem 0.45rem;
}

.page-pricing .pricing-plan-head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.page-pricing .pricing-plan-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

    .page-pricing .pricing-plan-icon.starter {
        color: var(--info-color);
        background: var(--info-color-light);
    }

    .page-pricing .pricing-plan-icon.pro {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 84%);
    }

    .page-pricing .pricing-plan-icon.enterprise {
        color: var(--warning-color);
        background: var(--warning-color-light);
    }

.page-pricing .pricing-name {
    font-size: 1rem;
    color: var(--heading-color);
    margin: 0;
}

.page-pricing .pricing-tagline {
    margin: 0.1rem 0 0;
    font-size: 0.75rem;
    color: var(--muted-color);
}

.page-pricing .pricing-price-row {
    display: flex;
    align-items: baseline;
    gap: 0.18rem;
    margin-top: 0.25rem;
}

.page-pricing .pricing-currency {
    font-size: 1rem;
    font-weight: 700;
    color: var(--heading-color);
}

.page-pricing .pricing-amount {
    font-size: 2.2rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--heading-color);
    line-height: 1;
    transition: opacity 0.14s ease, transform 0.14s ease;
}

.page-pricing .pricing-amount-changing {
    opacity: 0;
    transform: translateY(-4px);
}

.page-pricing .pricing-period {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--muted-color);
}

.page-pricing .pricing-features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

    .page-pricing .pricing-features li {
        display: flex;
        align-items: center;
        gap: 0.4rem;
        font-size: 0.78rem;
        color: var(--default-color);
    }

        .page-pricing .pricing-features li i {
            color: var(--success-color);
        }

.page-pricing .pricing-note {
    display: block;
    text-align: center;
    margin-top: -0.2rem;
    font-size: 0.68rem;
    color: var(--muted-color);
}

.page-pricing .pricing-compare-card,
.page-pricing .pricing-faq-card,
.page-pricing .pricing-cta {
    border-radius: var(--radius-xl);
}

.page-pricing .pricing-matrix-hint {
    font-size: 0.72rem;
    color: var(--muted-color);
}

.page-pricing .pricing-compare-table {
    width: 100%;
}

    .page-pricing .pricing-compare-table th,
    .page-pricing .pricing-compare-table td {
        padding: 0.7rem 0.9rem;
        border-bottom: 1px solid var(--border-color-light);
        font-size: 0.78rem;
        white-space: nowrap;
    }

    .page-pricing .pricing-compare-table th {
        font-size: 0.66rem;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        color: var(--muted-color);
        font-weight: 700;
        background: color-mix(in srgb, var(--background-color), var(--surface-color) 30%);
    }

    .page-pricing .pricing-compare-table td {
        color: var(--default-color);
    }

        .page-pricing .pricing-compare-table td:first-child {
            font-weight: 700;
            color: var(--heading-color);
        }

        .page-pricing .pricing-compare-table td:nth-child(3),
        .page-pricing .pricing-compare-table th:nth-child(3) {
            background: color-mix(in srgb, var(--accent-color), transparent 95%);
        }

    .page-pricing .pricing-compare-table i.bi-check2 {
        color: var(--success-color);
        font-weight: 700;
    }

    .page-pricing .pricing-compare-table i.bi-dash-lg {
        color: var(--muted-color);
    }

.page-pricing .pricing-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.page-pricing .pricing-faq-item {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    padding: 0.65rem;
    background: var(--surface-color);
}

    .page-pricing .pricing-faq-item h6 {
        margin: 0;
        font-size: 0.8rem;
        color: var(--heading-color);
    }

    .page-pricing .pricing-faq-item p {
        margin: 0.28rem 0 0;
        font-size: 0.74rem;
        color: var(--muted-color);
        line-height: 1.45;
    }

.page-pricing .pricing-cta {
    border: 1px solid var(--border-color);
    background: linear-gradient(130deg, color-mix(in srgb, var(--accent-color), transparent 92%), color-mix(in srgb, var(--success-color), transparent 94%));
}

    .page-pricing .pricing-cta .pricing-cta-inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        flex-wrap: wrap;
    }

    .page-pricing .pricing-cta .pricing-cta-title {
        font-size: 1.1rem;
        margin: 0;
        color: var(--heading-color);
    }

    .page-pricing .pricing-cta .pricing-cta-desc {
        margin: 0.3rem 0 0;
        font-size: 0.82rem;
        color: var(--muted-color);
        max-width: 56ch;
    }

    .page-pricing .pricing-cta .pricing-cta-actions {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
    }

@media (max-width: 1199px) {
    .page-pricing .pricing-hero .pricing-hero-side {
        border-left: none;
        border-top: 1px solid var(--border-color-light);
    }

    .page-pricing .pricing-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .page-pricing .pricing-hero .pricing-hero-title {
        font-size: 1.35rem;
    }

    .page-pricing .pricing-hero .pricing-toggle {
        width: 100%;
        justify-content: space-between;
    }

    .page-pricing .pricing-hero .pricing-toggle-label {
        flex: 1;
    }

    .page-pricing .pricing-compare-table th,
    .page-pricing .pricing-compare-table td {
        padding: 0.6rem 0.7rem;
    }

    .page-pricing .pricing-cta .pricing-cta-actions {
        width: 100%;
    }

        .page-pricing .pricing-cta .pricing-cta-actions .btn {
            flex: 1;
        }
}
/*--------------------------------------------------------------
# FAQ Page - FlexAdmin
--------------------------------------------------------------*/
.page-faq .faq-header-subtitle {
    margin: 0;
    font-size: 0.86rem;
    color: var(--muted-color);
}

.page-faq .faq-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.page-faq .faq-overview-item {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    padding: 10px 42px 10px 11px;
    position: relative;
}

.page-faq .faq-overview-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 9px;
    top: 9px;
    font-size: 0.82rem;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-faq .faq-overview-item:nth-child(2) .faq-overview-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-faq .faq-overview-item:nth-child(3) .faq-overview-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-faq .faq-overview-item:nth-child(4) .faq-overview-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-faq .faq-overview-label {
    display: block;
    font-size: 0.67rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted-color);
    font-weight: 700;
}

.page-faq .faq-overview-value {
    display: block;
    margin-top: 2px;
    font-size: 0.94rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-faq .faq-search-card,
.page-faq .faq-side-card,
.page-faq .faq-side-help,
.page-faq .faq-section {
    border-radius: var(--radius-lg);
}

.page-faq .faq-search-shell {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--surface-color);
    padding: 6px;
}

    .page-faq .faq-search-shell i {
        color: var(--muted-color);
        font-size: 0.95rem;
        margin-left: 4px;
    }

    .page-faq .faq-search-shell .faq-search-input {
        flex: 1;
        border: none;
        background: transparent;
        font-size: 0.84rem;
        color: var(--default-color);
        outline: none;
    }

.page-faq .faq-search-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.page-faq .faq-search-tags-label {
    font-size: 0.74rem;
    color: var(--muted-color);
    font-weight: 600;
}

.page-faq .faq-tag {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: var(--radius-full);
    border: 1px solid var(--border-color);
    background: var(--background-color);
    color: var(--default-color);
    text-decoration: none;
}

    .page-faq .faq-tag:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        border-color: color-mix(in srgb, var(--accent-color), transparent 60%);
        color: var(--accent-color);
    }

.page-faq .faq-cat-list {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.page-faq .faq-cat-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 9px;
    border-radius: var(--radius-md);
    color: var(--default-color);
    text-decoration: none;
    font-size: 0.8rem;
}

    .page-faq .faq-cat-item i {
        width: 16px;
        text-align: center;
        color: var(--muted-color);
        flex-shrink: 0;
    }

    .page-faq .faq-cat-item span:nth-child(2) {
        flex: 1;
    }

    .page-faq .faq-cat-item:hover {
        background: var(--background-color);
        color: var(--heading-color);
    }

    .page-faq .faq-cat-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

        .page-faq .faq-cat-item.active i {
            color: var(--accent-color);
        }

        .page-faq .faq-cat-item.active .faq-cat-count {
            background: var(--accent-color);
            color: var(--contrast-color);
        }

.page-faq .faq-cat-count {
    font-size: 0.66rem;
    font-weight: 700;
    border-radius: var(--radius-full);
    padding: 2px 7px;
    background: var(--background-color);
    color: var(--muted-color);
}

.page-faq .faq-support-icon {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 88%);
    font-size: 1.1rem;
    margin-bottom: 8px;
}

.page-faq .faq-support-title {
    margin: 0;
    font-size: 0.82rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-faq .faq-support-desc {
    margin: 4px 0 11px;
    font-size: 0.74rem;
    color: var(--muted-color);
    line-height: 1.45;
}

.page-faq .faq-section .card-header .card-title {
    font-size: 0.9rem;
}

    .page-faq .faq-section .card-header .card-title i {
        color: var(--accent-color);
    }

.page-faq .faq-accordion .accordion-item {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    margin-bottom: 7px;
    overflow: hidden;
}

    .page-faq .faq-accordion .accordion-item:last-child {
        margin-bottom: 0;
    }

.page-faq .faq-accordion .accordion-button {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--heading-color);
    background: var(--surface-color);
    box-shadow: none;
    padding: 11px 12px;
}

    .page-faq .faq-accordion .accordion-button:not(.collapsed) {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.page-faq .faq-accordion .accordion-body {
    font-size: 0.76rem;
    color: var(--muted-color);
    line-height: 1.5;
    padding: 10px 12px 12px;
}

@media (max-width: 1199px) {
    .page-faq .faq-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .page-faq .faq-cat-list {
        flex-direction: row;
        overflow-x: auto;
    }

    .page-faq .faq-cat-item {
        white-space: nowrap;
        flex-shrink: 0;
    }
}

@media (max-width: 575px) {
    .page-faq .faq-overview {
        grid-template-columns: 1fr;
    }

    .page-faq .faq-search-shell {
        flex-wrap: wrap;
    }

        .page-faq .faq-search-shell .btn {
            width: 100%;
        }
}

/*--------------------------------------------------------------
# Timeline Page - FlexAdmin
--------------------------------------------------------------*/
.page-timeline .tl-header-subtitle {
    margin: 0;
    font-size: 0.86rem;
    color: var(--muted-color);
}

.page-timeline .tl-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.page-timeline .tl-overview-item {
    position: relative;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    padding: 10px 42px 10px 11px;
}

.page-timeline .tl-overview-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 9px;
    top: 9px;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
    font-size: 0.82rem;
}

.page-timeline .tl-overview-item:nth-child(2) .tl-overview-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-timeline .tl-overview-item:nth-child(3) .tl-overview-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-timeline .tl-overview-item:nth-child(4) .tl-overview-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-timeline .tl-overview-label {
    display: block;
    font-size: 0.67rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted-color);
    font-weight: 700;
}

.page-timeline .tl-overview-value {
    display: block;
    margin-top: 2px;
    font-size: 0.94rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-timeline .tl-stream-card,
.page-timeline .tl-side-card {
    border-radius: var(--radius-lg);
}

.page-timeline .tl-stream-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.page-timeline .tl-filter-group {
    display: inline-flex;
    gap: 5px;
    flex-wrap: wrap;
}

.page-timeline .tl-filter-btn {
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--muted-color);
    border-radius: var(--radius-md);
    font-size: 0.73rem;
    font-weight: 700;
    height: 30px;
    padding: 0 10px;
}

    .page-timeline .tl-filter-btn.active, .page-timeline .tl-filter-btn:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 40%);
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.page-timeline .tl-sort {
    height: 30px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    font-size: 0.74rem;
    color: var(--default-color);
    padding: 0 8px;
}

    .page-timeline .tl-sort:focus {
        outline: none;
        border-color: var(--accent-color);
    }

.page-timeline .tl-stream {
    position: relative;
    padding-left: 26px;
}

    .page-timeline .tl-stream::before {
        content: "";
        position: absolute;
        left: 10px;
        top: 0;
        bottom: 0;
        width: 2px;
        background: color-mix(in srgb, var(--border-color), transparent 20%);
    }

.page-timeline .tl-day-label {
    display: inline-flex;
    align-items: center;
    border-radius: var(--radius-full);
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    color: var(--contrast-color);
    background: var(--accent-color);
    padding: 0.22rem 0.6rem;
    margin: 4px 0 9px -3px;
}

    .page-timeline .tl-day-label.muted {
        background: var(--muted-color);
    }

.page-timeline .tl-event {
    position: relative;
    margin-bottom: 10px;
}

.page-timeline .tl-node {
    position: absolute;
    left: -26px;
    top: 10px;
    width: 18px;
    height: 18px;
    border-radius: var(--radius-full);
    color: var(--contrast-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.62rem;
    z-index: 1;
}

.page-timeline .tl-event-accent .tl-node {
    background: var(--accent-color);
}

.page-timeline .tl-event-success .tl-node {
    background: var(--success-color);
}

.page-timeline .tl-event-warning .tl-node {
    background: var(--warning-color);
}

.page-timeline .tl-event-danger .tl-node {
    background: var(--danger-color);
}

.page-timeline .tl-event-info .tl-node {
    background: var(--info-color);
}

.page-timeline .tl-event-card {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    padding: 10px;
}

.page-timeline .tl-event-alert {
    border-color: color-mix(in srgb, var(--danger-color), transparent 55%);
    background: color-mix(in srgb, var(--danger-color), transparent 97%);
}

.page-timeline .tl-event-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 7px;
}

.page-timeline .tl-event-user {
    display: flex;
    align-items: center;
    gap: 7px;
}

    .page-timeline .tl-event-user strong {
        display: block;
        font-size: 0.79rem;
        color: var(--heading-color);
        line-height: 1.2;
    }

    .page-timeline .tl-event-user span {
        display: block;
        font-size: 0.73rem;
        color: var(--muted-color);
        line-height: 1.2;
        margin-top: 1px;
    }

.page-timeline .tl-avatar {
    width: 30px;
    height: 30px;
    border-radius: var(--radius-full);
    object-fit: cover;
}

.page-timeline .tl-time {
    font-size: 0.7rem;
    color: var(--muted-color);
    white-space: nowrap;
}

.page-timeline .tl-event-text {
    margin: 0;
    font-size: 0.75rem;
    color: var(--default-color);
    line-height: 1.5;
}

.page-timeline .tl-tags {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.page-timeline .tl-tag {
    font-size: 0.66rem;
    font-weight: 700;
    border-radius: var(--radius-full);
    padding: 0.22rem 0.52rem;
}

    .page-timeline .tl-tag.success {
        color: var(--success-color);
        background: var(--success-color-light);
    }

    .page-timeline .tl-tag.danger {
        color: var(--danger-color);
        background: var(--danger-color-light);
    }

    .page-timeline .tl-tag.neutral {
        color: var(--muted-color);
        background: color-mix(in srgb, var(--muted-color), transparent 84%);
    }

.page-timeline .tl-quote {
    margin: 0;
    padding: 8px 9px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-color), transparent 96%);
    border: 1px solid color-mix(in srgb, var(--accent-color), transparent 86%);
    font-size: 0.75rem;
    font-style: italic;
    color: var(--muted-color);
    line-height: 1.45;
}

.page-timeline .tl-highlight-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

    .page-timeline .tl-highlight-row h6 {
        margin: 0;
        font-size: 0.79rem;
        color: var(--heading-color);
    }

    .page-timeline .tl-highlight-row p {
        margin: 2px 0 0;
        font-size: 0.73rem;
        color: var(--muted-color);
        line-height: 1.45;
    }

.page-timeline .tl-highlight-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--warning-color);
    background: var(--warning-color-light);
    font-size: 0.82rem;
    flex-shrink: 0;
}

.page-timeline .tl-file-grid {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.page-timeline .tl-file-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--card-bg);
    color: var(--default-color);
    font-size: 0.72rem;
    padding: 0.26rem 0.52rem;
}

    .page-timeline .tl-file-pill i {
        color: var(--accent-color);
    }

.page-timeline .tl-mix-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-timeline .tl-mix-item {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.76rem;
    color: var(--default-color);
}

    .page-timeline .tl-mix-item span:nth-child(2) {
        flex: 1;
    }

    .page-timeline .tl-mix-item strong {
        font-size: 0.75rem;
        color: var(--heading-color);
    }

.page-timeline .tl-mix-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
}

    .page-timeline .tl-mix-dot.success {
        background: var(--success-color);
    }

    .page-timeline .tl-mix-dot.accent {
        background: var(--accent-color);
    }

    .page-timeline .tl-mix-dot.warning {
        background: var(--warning-color);
    }

    .page-timeline .tl-mix-dot.danger {
        background: var(--danger-color);
    }

.page-timeline .tl-contrib-list {
    display: flex;
    flex-direction: column;
}

.page-timeline .tl-contrib-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--border-color-light);
}

    .page-timeline .tl-contrib-item:last-child {
        border-bottom: none;
    }

    .page-timeline .tl-contrib-item img {
        width: 30px;
        height: 30px;
        border-radius: var(--radius-full);
        object-fit: cover;
    }

    .page-timeline .tl-contrib-item strong {
        display: block;
        font-size: 0.77rem;
        color: var(--heading-color);
        line-height: 1.2;
    }

    .page-timeline .tl-contrib-item span {
        display: block;
        font-size: 0.71rem;
        color: var(--muted-color);
        margin-top: 1px;
    }

.page-timeline .tl-upcoming-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.page-timeline .tl-upcoming-item {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 8px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    padding: 7px;
}

    .page-timeline .tl-upcoming-item strong {
        display: block;
        font-size: 0.77rem;
        color: var(--heading-color);
        line-height: 1.2;
    }

    .page-timeline .tl-upcoming-item p {
        margin: 1px 0 0;
        font-size: 0.71rem;
        color: var(--muted-color);
        line-height: 1.35;
    }

.page-timeline .tl-upcoming-date {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

@media (max-width: 1199px) {
    .page-timeline .tl-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .page-timeline .tl-overview {
        grid-template-columns: 1fr;
    }

    .page-timeline .tl-stream {
        padding-left: 22px;
    }

        .page-timeline .tl-stream::before {
            left: 8px;
        }

    .page-timeline .tl-node {
        left: -22px;
    }

    .page-timeline .tl-event-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .page-timeline .tl-upcoming-item {
        grid-template-columns: 1fr;
    }

        .page-timeline .tl-upcoming-item .tl-upcoming-date {
            width: fit-content;
            padding: 0.2rem 0.45rem;
        }
}
/*--------------------------------------------------------------
# Search Results Page - FlexAdmin
--------------------------------------------------------------*/
.page-search-results .sr-header-subtitle {
    margin: 0;
    font-size: 0.86rem;
    color: var(--muted-color);
}

.page-search-results .sr-command-card,
.page-search-results .sr-main-card,
.page-search-results .sr-side-card {
    border-radius: var(--radius-lg);
}

.page-search-results .sr-command-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--surface-color);
    padding: 7px 8px 7px 11px;
}

.page-search-results .sr-command-icon {
    font-size: 0.9rem;
    color: var(--muted-color);
}

.page-search-results .sr-command-input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 0.8rem;
    color: var(--default-color);
}

    .page-search-results .sr-command-input:focus {
        outline: none;
    }

.page-search-results .sr-command-meta {
    margin-top: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.page-search-results .sr-result-count {
    font-size: 0.75rem;
    color: var(--muted-color);
}

    .page-search-results .sr-result-count strong {
        color: var(--heading-color);
        font-weight: 700;
    }

.page-search-results .sr-chip-list {
    display: inline-flex;
    gap: 5px;
    flex-wrap: wrap;
}

.page-search-results .sr-chip {
    font-size: 0.68rem;
    font-weight: 700;
    text-decoration: none;
    border-radius: var(--radius-full);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--muted-color);
    padding: 0.2rem 0.52rem;
}

    .page-search-results .sr-chip:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 50%);
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.page-search-results .sr-main-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.page-search-results .sr-tabs {
    display: inline-flex;
    gap: 5px;
    flex-wrap: wrap;
}

.page-search-results .sr-tab {
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--muted-color);
    border-radius: var(--radius-md);
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.34rem 0.58rem;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

    .page-search-results .sr-tab span {
        font-size: 0.64rem;
        padding: 0.1rem 0.38rem;
        border-radius: var(--radius-full);
        color: var(--muted-color);
        background: color-mix(in srgb, var(--muted-color), transparent 87%);
    }

    .page-search-results .sr-tab.active, .page-search-results .sr-tab:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 45%);
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 96%);
    }

        .page-search-results .sr-tab.active span, .page-search-results .sr-tab:hover span {
            color: var(--accent-color);
            background: color-mix(in srgb, var(--accent-color), transparent 87%);
        }

.page-search-results .sr-sort {
    height: 30px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    font-size: 0.73rem;
    color: var(--default-color);
    padding: 0 8px;
}

    .page-search-results .sr-sort:focus {
        outline: none;
        border-color: var(--accent-color);
    }

.page-search-results .sr-group-title {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted-color);
    font-weight: 700;
    margin-bottom: 8px;
}

.page-search-results .sr-item {
    display: flex;
    gap: 9px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    padding: 9px;
    margin-bottom: 8px;
}

    .page-search-results .sr-item:last-child {
        margin-bottom: 0;
    }

    .page-search-results .sr-item:hover {
        border-color: color-mix(in srgb, var(--accent-color), transparent 62%);
        background: color-mix(in srgb, var(--accent-color), transparent 97%);
    }

.page-search-results .sr-item-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    flex-shrink: 0;
}

    .page-search-results .sr-item-icon.accent {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 85%);
    }

    .page-search-results .sr-item-icon.danger {
        color: var(--danger-color);
        background: var(--danger-color-light);
    }

    .page-search-results .sr-item-icon.success {
        color: var(--success-color);
        background: var(--success-color-light);
    }

.page-search-results .sr-user-avatar {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.page-search-results .sr-item-body {
    min-width: 0;
    flex: 1;
}

    .page-search-results .sr-item-body h6 {
        margin: 0;
        font-size: 0.79rem;
        color: var(--heading-color);
        display: flex;
        align-items: center;
        gap: 6px;
        flex-wrap: wrap;
    }

        .page-search-results .sr-item-body h6 a {
            color: var(--heading-color);
            text-decoration: none;
        }

            .page-search-results .sr-item-body h6 a:hover {
                color: var(--accent-color);
            }

    .page-search-results .sr-item-body p {
        margin: 3px 0 0;
        font-size: 0.74rem;
        color: var(--muted-color);
        line-height: 1.45;
    }

.page-search-results .sr-status {
    font-size: 0.64rem;
    font-weight: 700;
    padding: 0.14rem 0.45rem;
    border-radius: var(--radius-full);
}

    .page-search-results .sr-status.success {
        color: var(--success-color);
        background: var(--success-color-light);
    }

.page-search-results .sr-item-meta {
    margin-top: 5px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

    .page-search-results .sr-item-meta span {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        font-size: 0.69rem;
        color: var(--muted-color);
    }

.page-search-results mark {
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
    color: inherit;
    border-radius: 3px;
    padding: 0 2px;
}

.page-search-results .sr-pagination {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border-color-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

    .page-search-results .sr-pagination span {
        font-size: 0.74rem;
        color: var(--muted-color);
    }

.page-search-results .sr-filter-block {
    margin-bottom: 11px;
}

    .page-search-results .sr-filter-block label {
        display: block;
        font-size: 0.7rem;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        color: var(--muted-color);
        font-weight: 700;
        margin-bottom: 5px;
    }

.page-search-results .sr-check-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

    .page-search-results .sr-check-list label {
        cursor: pointer;
        transition: border-color var(--transition-fast), background-color var(--transition-fast);
        margin: 0;
        border: 1px solid var(--border-color-light);
        border-radius: var(--radius-md);
        background: var(--surface-color);
        padding: 6px 8px;
        font-size: 0.75rem;
        text-transform: none;
        letter-spacing: normal;
        color: var(--default-color);
        font-weight: 500;
        display: flex;
        align-items: center;
        gap: 6px;
    }

        .page-search-results .sr-check-list label:hover {
            border-color: color-mix(in srgb, var(--accent-color), transparent 62%);
            background: color-mix(in srgb, var(--accent-color), transparent 97%);
        }

        .page-search-results .sr-check-list label input[type=checkbox] {
            appearance: none;
            -webkit-appearance: none;
            width: 15px;
            height: 15px;
            border-radius: 4px;
            border: 1.5px solid color-mix(in srgb, var(--muted-color), transparent 25%);
            background: var(--card-bg);
            margin: 0;
            display: inline-grid;
            place-content: center;
            transition: border-color var(--transition-fast), background-color var(--transition-fast);
        }

            .page-search-results .sr-check-list label input[type=checkbox]::before {
                content: "";
                width: 7px;
                height: 4px;
                border: 2px solid var(--contrast-color);
                border-top: 0;
                border-right: 0;
                transform: rotate(-45deg) scale(0);
                transform-origin: center;
                transition: transform var(--transition-fast);
            }

            .page-search-results .sr-check-list label input[type=checkbox]:checked {
                border-color: var(--accent-color);
                background: var(--accent-color);
            }

                .page-search-results .sr-check-list label input[type=checkbox]:checked::before {
                    transform: rotate(-45deg) scale(1);
                }

            .page-search-results .sr-check-list label input[type=checkbox]:focus-visible {
                outline: none;
                box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 78%);
            }

        .page-search-results .sr-check-list label input {
            margin: 0;
        }

        .page-search-results .sr-check-list label span {
            margin-left: auto;
            font-size: 0.67rem;
            color: var(--muted-color);
            font-weight: 700;
        }

.page-search-results .sr-insight-list {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.page-search-results .sr-insight-item {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    padding: 7px;
}

    .page-search-results .sr-insight-item span {
        display: block;
        font-size: 0.69rem;
        color: var(--muted-color);
    }

    .page-search-results .sr-insight-item strong {
        display: block;
        margin-top: 2px;
        font-size: 0.76rem;
        color: var(--heading-color);
    }

@media (max-width: 1199px) {
    .page-search-results .sr-side-card {
        margin-top: 0;
    }
}

@media (max-width: 767px) {
    .page-search-results .sr-command-bar {
        flex-wrap: wrap;
    }

        .page-search-results .sr-command-bar .btn {
            width: 100%;
        }

    .page-search-results .sr-main-header {
        flex-direction: column;
        align-items: stretch;
    }

    .page-search-results .sr-sort {
        width: 100%;
    }

    .page-search-results .sr-pagination .pagination {
        width: 100%;
        justify-content: center;
    }
}
/*--------------------------------------------------------------
# Blank Page - FlexAdmin
--------------------------------------------------------------*/
.page-blank .blank-subtitle {
    margin: 0;
    font-size: 0.86rem;
    color: var(--muted-color);
}

.page-blank .blank-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.page-blank .blank-tile {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    padding: 10px 42px 10px 11px;
    position: relative;
}

.page-blank .blank-tile-icon {
    position: absolute;
    right: 9px;
    top: 9px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
    color: var(--accent-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.84rem;
}

.page-blank .blank-tile-label {
    display: block;
    font-size: 0.66rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted-color);
    font-weight: 700;
}

.page-blank .blank-tile-value {
    display: block;
    font-size: 0.87rem;
    line-height: 1.25;
    color: var(--heading-color);
    margin-top: 2px;
}

.page-blank .blank-card {
    border-radius: var(--radius-lg);
}

.page-blank .blank-steps {
    margin: 0;
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 0.8rem;
    color: var(--default-color);
}

.page-blank .blank-code-block {
    margin-top: 12px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    padding: 10px;
}

    .page-blank .blank-code-block pre {
        margin: 0;
        font-size: 0.72rem;
        color: var(--muted-color);
    }

.page-blank .blank-checklist {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

    .page-blank .blank-checklist label {
        font-size: 0.8rem;
        color: var(--default-color);
        display: inline-flex;
        gap: 8px;
        align-items: center;
    }

    .page-blank .blank-checklist input {
        width: 15px;
        height: 15px;
    }

.page-blank .blank-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .page-blank .blank-links a {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        text-decoration: none;
        font-size: 0.8rem;
        color: var(--default-color);
        padding: 7px 8px;
        border-radius: var(--radius-md);
        border: 1px solid var(--border-color-light);
    }

        .page-blank .blank-links a i {
            color: var(--accent-color);
        }

        .page-blank .blank-links a:hover {
            color: var(--accent-color);
            border-color: color-mix(in srgb, var(--accent-color), transparent 62%);
            background: color-mix(in srgb, var(--accent-color), transparent 95%);
        }

@media (max-width: 1199px) {
    .page-blank .blank-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .page-blank .blank-grid {
        grid-template-columns: 1fr;
    }
}

.calendar-app {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 1.5rem;
    min-height: calc(100vh - 200px);
}

@media (max-width: 991.98px) {
    .calendar-app {
        grid-template-columns: 1fr;
    }
}

.calendar-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

    .calendar-sidebar .card {
        margin-bottom: 0;
    }

.mini-calendar {
    padding: 0.5rem;
}

.mini-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem;
    margin-bottom: 0.5rem;
}

.mini-calendar-title {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--heading-color);
}

.mini-calendar-nav {
    display: flex;
    gap: 0.25rem;
}

    .mini-calendar-nav button {
        background: none;
        border: none;
        width: 28px;
        height: 28px;
        border-radius: var(--bs-border-radius);
        cursor: pointer;
        color: var(--muted-color);
        transition: all 0.2s;
    }

        .mini-calendar-nav button:hover {
            background: var(--accent-color);
            color: var(--contrast-color);
        }

.mini-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    text-align: center;
}

.mini-calendar-day-header {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted-color);
    padding: 0.5rem 0;
}

.mini-calendar-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    border-radius: var(--bs-border-radius);
    cursor: pointer;
    transition: all 0.2s;
    color: var(--default-color);
    position: relative;
}

    .mini-calendar-day:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
    }

    .mini-calendar-day.other-month {
        color: var(--muted-color);
        opacity: 0.5;
    }

    .mini-calendar-day.today {
        background: var(--accent-color);
        color: var(--contrast-color);
        font-weight: 600;
    }

    .mini-calendar-day.selected {
        background: color-mix(in srgb, var(--accent-color), transparent 80%);
        color: var(--accent-color);
        font-weight: 600;
    }

    .mini-calendar-day.has-event::after {
        content: "";
        position: absolute;
        bottom: 2px;
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background: var(--accent-color);
    }

.event-categories {
    padding: 0;
}

.event-category-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1rem;
    cursor: pointer;
    transition: background 0.2s;
}

    .event-category-item:hover {
        background: color-mix(in srgb, var(--default-color), transparent 95%);
    }

.event-category-color {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex-shrink: 0;
}

.event-category-name {
    flex: 1;
    font-size: 0.875rem;
    color: var(--default-color);
}

.event-category-count {
    font-size: 0.75rem;
    color: var(--muted-color);
    background: color-mix(in srgb, var(--default-color), transparent 90%);
    padding: 0.125rem 0.5rem;
    border-radius: 10px;
}

.calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.calendar-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
    white-space: nowrap;
}

.calendar-nav {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.calendar-nav-btn {
    background: none;
    border: 1px solid var(--border-color);
    width: 36px;
    height: 36px;
    border-radius: var(--bs-border-radius);
    cursor: pointer;
    color: var(--default-color);
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .calendar-nav-btn:hover {
        border-color: var(--accent-color);
        color: var(--accent-color);
    }

.calendar-today-btn {
    padding: 0 1rem;
    width: auto;
    min-width: max-content;
    white-space: nowrap;
}

.calendar-views-nav {
    border-bottom: none;
}

    .calendar-views-nav .nav-link {
        padding: 0.5rem 1rem;
        font-size: 0.875rem;
        color: var(--default-color);
        border: 1px solid var(--border-color);
        border-radius: 0;
        margin-left: -1px;
    }

        .calendar-views-nav .nav-link:hover {
            background: color-mix(in srgb, var(--accent-color), transparent 90%);
            border-color: var(--accent-color);
            color: var(--accent-color);
        }

        .calendar-views-nav .nav-link.active {
            background: var(--accent-color);
            border-color: var(--accent-color);
            color: var(--contrast-color);
        }

    .calendar-views-nav .nav-item:first-child .nav-link {
        border-radius: var(--bs-border-radius) 0 0 var(--bs-border-radius);
        margin-left: 0;
    }

    .calendar-views-nav .nav-item:last-child .nav-link {
        border-radius: 0 var(--bs-border-radius) var(--bs-border-radius) 0;
    }

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(100px, 1fr));
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
    overflow: hidden;
}

.calendar-day-header {
    padding: 0.75rem;
    text-align: center;
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--muted-color);
    background: color-mix(in srgb, var(--default-color), transparent 97%);
    border-bottom: 1px solid var(--border-color);
}

.calendar-day {
    min-height: 120px;
    padding: 0.5rem;
    border-right: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    background: var(--surface-color);
    cursor: pointer;
    transition: background 0.2s;
}

    .calendar-day:nth-child(7n) {
        border-right: none;
    }

    .calendar-day:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 97%);
    }

    .calendar-day.other-month {
        background: color-mix(in srgb, var(--default-color), transparent 98%);
    }

        .calendar-day.other-month .day-number {
            color: var(--muted-color);
            opacity: 0.5;
        }

    .calendar-day.today {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

        .calendar-day.today .day-number {
            background: var(--accent-color);
            color: var(--contrast-color);
        }

.day-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 50%;
    margin-bottom: 0.25rem;
    color: var(--default-color);
}

.day-events {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.calendar-event {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    border-radius: 4px;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: opacity 0.2s;
}

    .calendar-event:hover {
        opacity: 0.85;
    }

    .calendar-event.event-primary {
        background: color-mix(in srgb, var(--accent-color), transparent 80%);
        color: var(--accent-color);
        border-left: 3px solid var(--accent-color);
    }

    .calendar-event.event-success {
        background: color-mix(in srgb, var(--success-color), transparent 80%);
        color: var(--success-color);
        border-left: 3px solid var(--success-color);
    }

    .calendar-event.event-warning {
        background: color-mix(in srgb, var(--warning-color), transparent 80%);
        color: color-mix(in srgb, var(--warning-color), black 20%);
        border-left: 3px solid var(--warning-color);
    }

    .calendar-event.event-danger {
        background: color-mix(in srgb, var(--danger-color), transparent 80%);
        color: var(--danger-color);
        border-left: 3px solid var(--danger-color);
    }

    .calendar-event.event-info {
        background: color-mix(in srgb, var(--info-color), transparent 80%);
        color: color-mix(in srgb, var(--info-color), black 20%);
        border-left: 3px solid var(--info-color);
    }

.more-events {
    font-size: 0.75rem;
    color: var(--muted-color);
    padding: 0.125rem 0.5rem;
    cursor: pointer;
}

    .more-events:hover {
        color: var(--accent-color);
    }

.week-view {
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
    overflow: hidden;
}

.week-header {
    display: grid;
    grid-template-columns: 60px repeat(7, minmax(80px, 1fr));
    background: color-mix(in srgb, var(--default-color), transparent 97%);
    border-bottom: 1px solid var(--border-color);
}

.week-header-time {
    padding: 0.75rem 0.5rem;
    border-right: 1px solid var(--border-color);
}

.week-header-day {
    padding: 0.75rem 0.5rem;
    text-align: center;
    border-right: 1px solid var(--border-color);
}

    .week-header-day:last-child {
        border-right: none;
    }

    .week-header-day .day-name {
        font-size: 0.75rem;
        color: var(--muted-color);
        font-weight: 600;
        text-transform: uppercase;
    }

    .week-header-day .day-num {
        font-size: 1.25rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .week-header-day.today .day-num {
        background: var(--accent-color);
        color: var(--contrast-color);
        border-radius: 50%;
        width: 32px;
        height: 32px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

.week-body {
    display: grid;
    grid-template-columns: 60px repeat(7, minmax(80px, 1fr));
    max-height: 600px;
    overflow-y: auto;
}

.week-time-col {
    border-right: 1px solid var(--border-color);
}

.week-time-slot {
    height: 60px;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    color: var(--muted-color);
    border-bottom: 1px solid var(--border-color-light);
    text-align: right;
}

.week-day-col {
    border-right: 1px solid var(--border-color);
    position: relative;
}

    .week-day-col:last-child {
        border-right: none;
    }

.week-day-slot {
    height: 60px;
    border-bottom: 1px solid var(--border-color-light);
    position: relative;
}

.week-event {
    position: absolute;
    left: 2px;
    right: 2px;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    border-radius: 4px;
    cursor: pointer;
    overflow: hidden;
    z-index: 1;
}

    .week-event.event-primary {
        background: color-mix(in srgb, var(--accent-color), transparent 70%);
        border-left: 3px solid var(--accent-color);
        color: var(--accent-color);
    }

    .week-event.event-success {
        background: color-mix(in srgb, var(--success-color), transparent 70%);
        border-left: 3px solid var(--success-color);
        color: var(--success-color);
    }

    .week-event.event-warning {
        background: color-mix(in srgb, var(--warning-color), transparent 70%);
        border-left: 3px solid var(--warning-color);
        color: color-mix(in srgb, var(--warning-color), black 20%);
    }

    .week-event.event-danger {
        background: color-mix(in srgb, var(--danger-color), transparent 70%);
        border-left: 3px solid var(--danger-color);
        color: var(--danger-color);
    }

    .week-event.event-info {
        background: color-mix(in srgb, var(--info-color), transparent 70%);
        border-left: 3px solid var(--info-color);
        color: color-mix(in srgb, var(--info-color), black 20%);
    }

.day-view {
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
    overflow: hidden;
}

.day-view-header {
    display: grid;
    grid-template-columns: 60px 1fr;
    background: color-mix(in srgb, var(--default-color), transparent 97%);
    border-bottom: 1px solid var(--border-color);
}

.day-view-header-time {
    padding: 0.75rem 0.5rem;
    border-right: 1px solid var(--border-color);
}

.day-view-header-info {
    padding: 0.75rem 1rem;
    text-align: center;
}

    .day-view-header-info .day-name {
        font-size: 0.875rem;
        color: var(--muted-color);
        font-weight: 600;
    }

    .day-view-header-info .day-num {
        font-size: 2rem;
        font-weight: 700;
        color: var(--heading-color);
    }

    .day-view-header-info.today .day-num {
        background: var(--accent-color);
        color: var(--contrast-color);
        border-radius: 50%;
        width: 48px;
        height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

.day-view-body {
    display: grid;
    grid-template-columns: 60px 1fr;
    max-height: 600px;
    overflow-y: auto;
}

.day-view-time-col {
    border-right: 1px solid var(--border-color);
}

.day-view-time-slot {
    height: 60px;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    color: var(--muted-color);
    border-bottom: 1px solid var(--border-color-light);
    text-align: right;
}

.day-view-events-col {
    position: relative;
}

.day-view-slot {
    height: 60px;
    border-bottom: 1px solid var(--border-color-light);
    position: relative;
}

    .day-view-slot:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 97%);
    }

.day-event {
    position: absolute;
    left: 4px;
    right: 4px;
    padding: 0.5rem;
    font-size: 0.8125rem;
    border-radius: 4px;
    cursor: pointer;
    z-index: 1;
}

    .day-event .event-title {
        font-weight: 500;
        margin-bottom: 0.25rem;
    }

    .day-event .event-time {
        font-size: 0.75rem;
        opacity: 0.8;
    }

    .day-event.event-primary {
        background: color-mix(in srgb, var(--accent-color), transparent 70%);
        border-left: 4px solid var(--accent-color);
        color: var(--accent-color);
    }

    .day-event.event-success {
        background: color-mix(in srgb, var(--success-color), transparent 70%);
        border-left: 4px solid var(--success-color);
        color: var(--success-color);
    }

    .day-event.event-warning {
        background: color-mix(in srgb, var(--warning-color), transparent 70%);
        border-left: 4px solid var(--warning-color);
        color: color-mix(in srgb, var(--warning-color), black 20%);
    }

    .day-event.event-danger {
        background: color-mix(in srgb, var(--danger-color), transparent 70%);
        border-left: 4px solid var(--danger-color);
        color: var(--danger-color);
    }

    .day-event.event-info {
        background: color-mix(in srgb, var(--info-color), transparent 70%);
        border-left: 4px solid var(--info-color);
        color: color-mix(in srgb, var(--info-color), black 20%);
    }

.upcoming-events {
    max-height: 300px;
    overflow-y: auto;
}

.upcoming-event-item {
    display: flex;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    transition: background 0.2s;
}

    .upcoming-event-item:last-child {
        border-bottom: none;
    }

    .upcoming-event-item:hover {
        background: color-mix(in srgb, var(--default-color), transparent 97%);
    }

.upcoming-event-date {
    text-align: center;
    min-width: 45px;
}

.upcoming-event-day {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1;
}

.upcoming-event-month {
    font-size: 0.75rem;
    color: var(--muted-color);
    text-transform: uppercase;
}

.upcoming-event-details {
    flex: 1;
    min-width: 0;
}

.upcoming-event-title {
    font-weight: 500;
    color: var(--default-color);
    margin-bottom: 0.125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.upcoming-event-time {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.upcoming-event-color {
    width: 4px;
    border-radius: 2px;
    flex-shrink: 0;
}

.event-modal .modal-header {
    border-bottom: none;
    padding-bottom: 0;
}

.event-color-picker {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.event-color-option {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.2s;
}

    .event-color-option:hover, .event-color-option.selected {
        transform: scale(1.15);
        border-color: var(--default-color);
    }

.calendar-main {
    min-width: 0;
    container-type: inline-size;
}

    .calendar-main .card {
        height: 100%;
    }

@media (max-width: 1399.98px) {
    .calendar-main {
        overflow: hidden;
    }

        .calendar-main .card {
            max-width: 100%;
        }

        .calendar-main .card-body {
            max-width: 100%;
        }

    .calendar-scroll-wrapper {
        overflow-x: auto;
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

        .calendar-scroll-wrapper::-webkit-scrollbar {
            height: 8px;
        }

        .calendar-scroll-wrapper::-webkit-scrollbar-track {
            background: var(--background-color);
            border-radius: 4px;
        }

        .calendar-scroll-wrapper::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 4px;
        }

            .calendar-scroll-wrapper::-webkit-scrollbar-thumb:hover {
                background: var(--muted-color);
            }

    .calendar-grid,
    .week-view,
    .day-view {
        min-width: 768px;
    }
}

@container (max-width: 700px) {
    .calendar-day {
        min-height: 100px;
        padding: 0.375rem;
    }

    .calendar-day-header {
        padding: 0.5rem 0.25rem;
        font-size: 0.75rem;
    }

    .day-number {
        width: 24px;
        height: 24px;
        font-size: 0.8125rem;
    }

    .calendar-event {
        padding: 0.125rem 0.375rem;
        font-size: 0.6875rem;
    }

    .more-events {
        font-size: 0.6875rem;
    }

    .week-header {
        grid-template-columns: 50px repeat(7, 1fr);
    }

    .week-body {
        grid-template-columns: 50px repeat(7, 1fr);
    }

    .week-header-day {
        padding: 0.5rem 0.25rem;
    }

        .week-header-day .day-name {
            font-size: 0.625rem;
        }

        .week-header-day .day-num {
            font-size: 1rem;
        }

    .week-time-slot,
    .week-day-slot {
        height: 50px;
    }

    .week-time-slot {
        font-size: 0.625rem;
        padding: 0.125rem 0.25rem;
    }

    .day-view-header {
        grid-template-columns: 50px 1fr;
    }

    .day-view-body {
        grid-template-columns: 50px 1fr;
    }

    .day-view-time-slot,
    .day-view-slot {
        height: 50px;
    }

    .day-view-time-slot {
        font-size: 0.625rem;
    }
}

@container (max-width: 550px) {
    .calendar-day {
        min-height: 70px;
        padding: 0.25rem;
    }

    .calendar-day-header {
        padding: 0.375rem 0.125rem;
        font-size: 0.6875rem;
    }

    .day-number {
        width: 20px;
        height: 20px;
        font-size: 0.75rem;
        margin-bottom: 0.125rem;
    }

    .calendar-event {
        padding: 0.0625rem 0.25rem;
        font-size: 0.625rem;
        border-left-width: 2px;
    }

    .day-events {
        gap: 1px;
    }

    .more-events {
        font-size: 0.5625rem;
        padding: 0.0625rem 0.125rem;
    }

    .week-header {
        grid-template-columns: 40px repeat(7, 1fr);
    }

    .week-body {
        grid-template-columns: 40px repeat(7, 1fr);
        max-height: 350px;
    }

    .week-header-day {
        padding: 0.375rem 0.125rem;
    }

        .week-header-day .day-name {
            font-size: 0.5625rem;
        }

        .week-header-day .day-num {
            font-size: 0.875rem;
        }

        .week-header-day.today .day-num {
            width: 24px;
            height: 24px;
        }

    .week-time-slot,
    .week-day-slot {
        height: 45px;
    }

    .week-time-slot {
        font-size: 0.5625rem;
        padding: 0.0625rem 0.125rem;
    }

    .week-event {
        padding: 0.0625rem 0.125rem;
        font-size: 0.5625rem;
    }

    .day-view-header {
        grid-template-columns: 40px 1fr;
    }

    .day-view-body {
        grid-template-columns: 40px 1fr;
        max-height: 400px;
    }

    .day-view-time-slot,
    .day-view-slot {
        height: 45px;
    }

    .day-view-time-slot {
        font-size: 0.5625rem;
        padding: 0.0625rem 0.125rem;
    }

    .day-event {
        padding: 0.25rem;
        font-size: 0.6875rem;
        border-left-width: 2px;
    }

        .day-event .event-title {
            font-size: 0.6875rem;
            margin-bottom: 0;
        }

        .day-event .event-time {
            font-size: 0.5625rem;
        }
}

@container (max-width: 950px) {
    .card-header.calendar-header {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

        .card-header.calendar-header > .d-flex {
            flex-direction: column;
            align-items: flex-start !important;
            gap: 0.5rem !important;
            flex: 1;
            min-width: 0;
        }

    .calendar-title {
        font-size: 1.125rem;
        order: 1;
    }

    .calendar-nav {
        order: 2;
    }

    .calendar-nav-btn {
        width: 36px;
        height: 36px;
    }

    .calendar-views-nav {
        align-self: flex-start;
    }
}

@container (max-width: 750px) {
    .card-header.calendar-header {
        gap: 0.625rem;
    }

    .calendar-title {
        font-size: 1rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .calendar-views-nav {
        width: 100%;
        justify-content: center;
    }

        .calendar-views-nav .nav-link {
            flex: 1;
            justify-content: center;
            padding: 0.5rem 0.75rem;
            font-size: 0.8125rem;
        }
}

@container (max-width: 550px) {
    .card-header.calendar-header {
        padding: 0.75rem;
        gap: 0.5rem;
    }

    .calendar-title {
        font-size: 0.9375rem;
        text-align: center;
        width: 100%;
    }

    .calendar-nav {
        width: 100%;
        justify-content: space-between;
    }

    .calendar-nav-btn {
        width: 40px;
        height: 40px;
    }

    .calendar-today-btn {
        flex: 1;
        max-width: 120px;
        min-width: max-content;
    }

    .calendar-views-nav .nav-link {
        padding: 0.5rem 0.625rem;
        font-size: 0.8125rem;
        min-height: 40px;
    }
}

@container (max-width: 400px) {
    .calendar-title {
        font-size: 0.875rem;
    }

    .calendar-views-nav .nav-link {
        padding: 0.375rem 0.5rem;
        font-size: 0.75rem;
    }
}

.calendar-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 44px;
    padding: 0.625rem 1rem;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
    color: var(--default-color);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

    .calendar-sidebar-toggle svg {
        width: 18px;
        height: 18px;
        stroke: var(--muted-color);
    }

    .calendar-sidebar-toggle:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
        border-color: var(--accent-color);
        color: var(--accent-color);
    }

        .calendar-sidebar-toggle:hover svg {
            stroke: var(--accent-color);
        }

    .calendar-sidebar-toggle:active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
    }

.calendar-sidebar-close {
    display: none;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 44px;
    height: 44px;
    padding: 0;
    background: color-mix(in srgb, var(--default-color), transparent 95%);
    border: none;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10;
}

    .calendar-sidebar-close:hover {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

    .calendar-sidebar-close:active {
        background: color-mix(in srgb, var(--danger-color), transparent 75%);
    }

.calendar-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--default-color), transparent 50%);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .calendar-sidebar-overlay.show {
        opacity: 1;
    }

[data-theme=dark] .calendar-sidebar-overlay {
    background: color-mix(in srgb, var(--default-color), transparent 30%);
}

@media (max-width: 1279.98px) {
    .calendar-app {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .calendar-sidebar-toggle {
        display: flex;
    }

    .calendar-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

        .calendar-sidebar-overlay.show {
            pointer-events: auto;
        }

    .calendar-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 0.75rem;
        right: 0.75rem;
        z-index: 10;
    }

    .calendar-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 320px;
        max-width: 90vw;
        background: var(--surface-color);
        z-index: 1050;
        flex-direction: column;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 1rem;
        padding-top: 4rem;
        padding-bottom: calc(env(safe-area-inset-bottom) + 1rem);
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        display: flex;
    }

        .calendar-sidebar.show {
            transform: translateX(0);
        }

        .calendar-sidebar .card {
            min-width: auto;
            flex-shrink: 0;
        }

    body.calendar-sidebar-open {
        overflow: hidden;
    }

    .calendar-header {
        gap: 0.75rem;
        flex-wrap: nowrap;
    }

    .calendar-title {
        flex-shrink: 1;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .calendar-nav-btn {
        width: 40px;
        height: 40px;
        flex-shrink: 0;
    }

    .calendar-views-nav {
        flex-shrink: 0;
    }

    .mini-calendar-nav button {
        width: 36px;
        height: 36px;
    }
}

@media (max-width: 767.98px) {
    .calendar-app {
        min-height: auto;
        gap: 0.75rem;
    }

    .calendar-header {
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0.75rem 1rem;
    }

    .calendar-title {
        font-size: 1rem;
        order: 1;
        flex: 1;
        text-align: center;
        width: 100%;
    }

    .calendar-nav {
        order: 3;
        width: 100%;
        justify-content: space-between;
    }

    .calendar-nav-btn {
        width: 44px;
        height: 44px;
    }

    .calendar-today-btn {
        flex: 1;
        max-width: 120px;
    }

    .calendar-views-nav {
        order: 2;
    }

        .calendar-views-nav .nav-link {
            padding: 0.5rem 0.75rem;
            font-size: 0.8125rem;
            min-height: 44px;
            display: flex;
            align-items: center;
        }

    .mini-calendar {
        padding: 0.375rem;
    }

    .mini-calendar-header {
        padding: 0.375rem;
        margin-bottom: 0.375rem;
    }

    .mini-calendar-title {
        font-size: 0.875rem;
    }

    .mini-calendar-nav {
        gap: 0.125rem;
    }

        .mini-calendar-nav button {
            width: 44px;
            height: 44px;
        }

    .mini-calendar-day-header {
        font-size: 0.6875rem;
        padding: 0.375rem 0;
    }

    .mini-calendar-day {
        font-size: 0.75rem;
    }

    .calendar-grid {
        border-radius: var(--bs-border-radius);
    }

    .calendar-day-header {
        padding: 0.5rem 0.25rem;
        font-size: 0.6875rem;
    }

    .calendar-day {
        min-height: 80px;
        padding: 0.25rem;
    }

    .day-number {
        width: 24px;
        height: 24px;
        font-size: 0.75rem;
    }

    .day-events {
        gap: 1px;
    }

    .calendar-event {
        padding: 0.125rem 0.25rem;
        font-size: 0.625rem;
        border-left-width: 2px;
    }

    .more-events {
        font-size: 0.625rem;
        padding: 0.125rem 0.25rem;
    }

    .week-header {
        grid-template-columns: 50px repeat(7, 1fr);
    }

    .week-header-time {
        padding: 0.5rem 0.25rem;
    }

    .week-header-day {
        padding: 0.5rem 0.25rem;
    }

        .week-header-day .day-name {
            font-size: 0.625rem;
        }

        .week-header-day .day-num {
            font-size: 1rem;
        }

        .week-header-day.today .day-num {
            width: 28px;
            height: 28px;
        }

    .week-body {
        grid-template-columns: 50px repeat(7, 1fr);
        max-height: 400px;
    }

    .week-time-slot {
        height: 50px;
        font-size: 0.625rem;
        padding: 0.125rem 0.25rem;
    }

    .week-day-slot {
        height: 50px;
    }

    .week-event {
        padding: 0.125rem 0.25rem;
        font-size: 0.625rem;
        border-left-width: 2px;
    }

    .day-view-header {
        grid-template-columns: 50px 1fr;
    }

    .day-view-header-time {
        padding: 0.5rem 0.25rem;
    }

    .day-view-header-info {
        padding: 0.5rem;
    }

        .day-view-header-info .day-name {
            font-size: 0.75rem;
        }

        .day-view-header-info .day-num {
            font-size: 1.5rem;
        }

        .day-view-header-info.today .day-num {
            width: 40px;
            height: 40px;
        }

    .day-view-body {
        grid-template-columns: 50px 1fr;
        max-height: 450px;
    }

    .day-view-time-slot {
        height: 50px;
        font-size: 0.625rem;
        padding: 0.125rem 0.25rem;
    }

    .day-view-slot {
        height: 50px;
    }

    .day-event {
        padding: 0.375rem;
        font-size: 0.75rem;
        border-left-width: 3px;
    }

        .day-event .event-title {
            font-size: 0.75rem;
            margin-bottom: 0.125rem;
        }

        .day-event .event-time {
            font-size: 0.625rem;
        }

    .upcoming-events {
        max-height: 200px;
    }

    .upcoming-event-item {
        padding: 0.625rem 0.75rem;
        gap: 0.5rem;
    }

    .upcoming-event-date {
        min-width: 40px;
    }

    .upcoming-event-day {
        font-size: 1rem;
    }

    .upcoming-event-month {
        font-size: 0.625rem;
    }

    .upcoming-event-title {
        font-size: 0.875rem;
    }

    .upcoming-event-time {
        font-size: 0.75rem;
    }

    .event-category-item {
        padding: 0.75rem;
        min-height: 44px;
    }

    .event-category-name {
        font-size: 0.8125rem;
    }

    .event-category-count {
        font-size: 0.6875rem;
    }

    .event-color-picker {
        gap: 0.625rem;
    }

    .event-color-option {
        width: 36px;
        height: 36px;
    }
}

@media (max-width: 575.98px) {
    .calendar-app {
        gap: 0.5rem;
    }

    .calendar-main .card {
        border-radius: var(--bs-border-radius);
    }

    .calendar-header {
        padding: 0.5rem 0.75rem;
        gap: 0.375rem;
    }

    .calendar-title {
        font-size: 0.9375rem;
    }

    .calendar-nav {
        gap: 0.25rem;
    }

    .calendar-nav-btn {
        width: 44px;
        height: 44px;
        font-size: 1rem;
    }

    .calendar-today-btn {
        font-size: 0.75rem;
        padding: 0 0.625rem;
    }

    .calendar-views-nav .nav-link {
        padding: 0.375rem 0.5rem;
        font-size: 0.75rem;
        min-height: 40px;
    }

    .mini-calendar {
        padding: 0.25rem;
    }

    .mini-calendar-header {
        padding: 0.25rem;
        margin-bottom: 0.25rem;
    }

    .mini-calendar-title {
        font-size: 0.8125rem;
    }

    .mini-calendar-nav button {
        width: 40px;
        height: 40px;
    }

    .mini-calendar-grid {
        gap: 1px;
    }

    .mini-calendar-day-header {
        font-size: 0.625rem;
        padding: 0.25rem 0;
    }

    .mini-calendar-day {
        font-size: 0.6875rem;
    }

        .mini-calendar-day.has-event::after {
            width: 3px;
            height: 3px;
            bottom: 1px;
        }

    .calendar-day-header {
        padding: 0.375rem 0.125rem;
        font-size: 0.5625rem;
    }

        .calendar-day-header::first-letter {
            text-transform: uppercase;
        }

    .calendar-day {
        min-height: 60px;
        padding: 0.125rem;
    }

    .day-number {
        width: 20px;
        height: 20px;
        font-size: 0.625rem;
        margin-bottom: 0.125rem;
    }

    .calendar-event {
        padding: 0.0625rem 0.125rem;
        font-size: 0.5625rem;
        border-left-width: 2px;
        border-radius: 2px;
    }

    .more-events {
        font-size: 0.5625rem;
        padding: 0.0625rem 0.125rem;
    }

    .week-header {
        grid-template-columns: 40px repeat(7, 1fr);
    }

    .week-header-time {
        padding: 0.375rem 0.125rem;
        font-size: 0.5625rem;
    }

    .week-header-day {
        padding: 0.375rem 0.125rem;
    }

        .week-header-day .day-name {
            font-size: 0.5625rem;
        }

        .week-header-day .day-num {
            font-size: 0.875rem;
        }

        .week-header-day.today .day-num {
            width: 24px;
            height: 24px;
            font-size: 0.75rem;
        }

    .week-body {
        grid-template-columns: 40px repeat(7, 1fr);
        max-height: 350px;
    }

    .week-time-slot {
        height: 45px;
        font-size: 0.5625rem;
        padding: 0.0625rem 0.125rem;
    }

    .week-day-slot {
        height: 45px;
    }

    .week-event {
        padding: 0.0625rem 0.125rem;
        font-size: 0.5625rem;
        left: 1px;
        right: 1px;
    }

    .day-view-header {
        grid-template-columns: 40px 1fr;
    }

    .day-view-header-time {
        padding: 0.375rem 0.125rem;
    }

    .day-view-header-info {
        padding: 0.375rem;
    }

        .day-view-header-info .day-name {
            font-size: 0.6875rem;
        }

        .day-view-header-info .day-num {
            font-size: 1.25rem;
        }

        .day-view-header-info.today .day-num {
            width: 36px;
            height: 36px;
        }

    .day-view-body {
        grid-template-columns: 40px 1fr;
        max-height: 400px;
    }

    .day-view-time-slot {
        height: 45px;
        font-size: 0.5625rem;
        padding: 0.0625rem 0.125rem;
    }

    .day-view-slot {
        height: 45px;
    }

    .day-event {
        left: 2px;
        right: 2px;
        padding: 0.25rem;
        font-size: 0.6875rem;
        border-left-width: 2px;
    }

        .day-event .event-title {
            font-size: 0.6875rem;
            margin-bottom: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .day-event .event-time {
            font-size: 0.5625rem;
        }

    .upcoming-events {
        max-height: 180px;
    }

    .upcoming-event-item {
        padding: 0.5rem 0.625rem;
        gap: 0.375rem;
    }

    .upcoming-event-date {
        min-width: 35px;
    }

    .upcoming-event-day {
        font-size: 0.9375rem;
    }

    .upcoming-event-month {
        font-size: 0.5625rem;
    }

    .upcoming-event-title {
        font-size: 0.8125rem;
    }

    .upcoming-event-time {
        font-size: 0.6875rem;
    }

    .upcoming-event-color {
        width: 3px;
    }

    .event-category-item {
        padding: 0.625rem 0.75rem;
        gap: 0.5rem;
        min-height: 44px;
    }

    .event-category-color {
        width: 10px;
        height: 10px;
    }

    .event-category-name {
        font-size: 0.75rem;
    }

    .event-category-count {
        font-size: 0.625rem;
        padding: 0.0625rem 0.375rem;
    }

    .event-modal .modal-header {
        padding: 0.75rem 1rem;
    }

    .event-modal .modal-body {
        padding: 0.75rem 1rem;
    }

    .event-modal .modal-footer {
        padding: 0.75rem 1rem;
        gap: 0.5rem;
    }

        .event-modal .modal-footer .btn {
            min-height: 44px;
            padding: 0.5rem 1rem;
            font-size: 0.8125rem;
        }

    .event-color-picker {
        gap: 0.5rem;
        justify-content: center;
    }

    .event-color-option {
        width: 40px;
        height: 40px;
    }
}

.kanban-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.kanban-header-left {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.kanban-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.kanban-members {
    display: flex;
    align-items: center;
}

.kanban-member {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--surface-color);
    margin-left: -8px;
    object-fit: cover;
}

    .kanban-member:first-child {
        margin-left: 0;
    }

.kanban-member-add {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px dashed var(--border-color);
    margin-left: -8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted-color);
    font-size: 0.875rem;
    cursor: pointer;
    background: var(--surface-color);
    transition: all 0.2s;
}

    .kanban-member-add:hover {
        border-color: var(--accent-color);
        color: var(--accent-color);
    }

.kanban-header-right {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.kanban-board {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    padding-bottom: 1rem;
    min-height: calc(100vh - 280px);
}

    .kanban-board::-webkit-scrollbar {
        height: 8px;
    }

    .kanban-board::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

    .kanban-board::-webkit-scrollbar-track {
        background: var(--background-color);
    }

.kanban-column {
    flex: 0 0 320px;
    min-width: 320px;
    max-width: 320px;
    display: flex;
    flex-direction: column;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius-lg);
    max-height: calc(100vh - 280px);
    overflow: hidden;
}

    .kanban-column[data-status=backlog] .kanban-column-header {
        border-top: 3px solid var(--muted-color);
        border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0;
    }

    .kanban-column[data-status=todo] .kanban-column-header {
        border-top: 3px solid var(--info-color);
        border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0;
    }

    .kanban-column[data-status=in-progress] .kanban-column-header {
        border-top: 3px solid var(--warning-color);
        border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0;
    }

    .kanban-column[data-status=review] .kanban-column-header {
        border-top: 3px solid var(--accent-color);
        border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0;
    }

    .kanban-column[data-status=done] .kanban-column-header {
        border-top: 3px solid var(--success-color);
        border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0;
    }

.kanban-column-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    background: var(--surface-color);
    border-bottom: 1px solid var(--border-color);
}

.kanban-column-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--heading-color);
}

.kanban-column-count {
    background: var(--border-color);
    color: var(--muted-color);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.125rem 0.5rem;
    border-radius: 10px;
}

.kanban-column-actions {
    display: flex;
    gap: 0.25rem;
}

.kanban-column-btn {
    background: none;
    border: none;
    width: 28px;
    height: 28px;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

    .kanban-column-btn:hover {
        background: var(--surface-color);
        color: var(--default-color);
    }

.kanban-column-body {
    flex: 1;
    padding: 0.75rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    background: var(--surface-color);
}

    .kanban-column-body::-webkit-scrollbar {
        width: 4px;
    }

    .kanban-column-body::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

    .kanban-column-body.drag-over {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
        border-radius: var(--bs-border-radius);
    }

.kanban-card {
    background: var(--surface-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 1rem;
    cursor: grab;
    border: 1px solid var(--border-color);
    transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}

    .kanban-card:hover {
        box-shadow: var(--bs-box-shadow-sm);
    }

    .kanban-card.dragging {
        opacity: 0.5;
        transform: rotate(3deg);
    }

    .kanban-card[data-priority=high] {
        border-left: 3px solid var(--danger-color);
    }

    .kanban-card[data-priority=medium] {
        border-left: 3px solid var(--warning-color);
    }

    .kanban-card[data-priority=low] {
        border-left: 3px solid var(--success-color);
    }

.kanban-card-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-bottom: 0.75rem;
}

.kanban-label {
    padding: 0.125rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 600;
    border-radius: 3px;
    text-transform: uppercase;
}

.kanban-label-feature {
    background: color-mix(in srgb, var(--accent-color), transparent 85%);
    color: var(--accent-color);
}

.kanban-label-bug {
    background: color-mix(in srgb, var(--danger-color), transparent 85%);
    color: var(--danger-color);
}

.kanban-label-enhancement {
    background: color-mix(in srgb, var(--success-color), transparent 85%);
    color: var(--success-color);
}

.kanban-label-design {
    background: color-mix(in srgb, var(--info-color), transparent 85%);
    color: var(--info-color);
}

.kanban-label-urgent {
    background: color-mix(in srgb, var(--warning-color), transparent 85%);
    color: color-mix(in srgb, var(--warning-color), black 20%);
}

.kanban-card-title {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--heading-color);
    margin-bottom: 0.5rem;
    line-height: 1.4;
}

    .kanban-card-title:hover {
        color: var(--accent-color);
        cursor: pointer;
    }

.kanban-card-description {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.kanban-card-image {
    width: 100%;
    border-radius: var(--bs-border-radius);
    margin-bottom: 0.75rem;
}

.kanban-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-color);
}

.kanban-card-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.kanban-card-meta-item {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    color: var(--muted-color);
}

    .kanban-card-meta-item i {
        font-size: 0.875rem;
    }

.kanban-card-assignees {
    display: flex;
}

.kanban-card-assignee {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid var(--surface-color);
    margin-left: -6px;
    object-fit: cover;
}

    .kanban-card-assignee:first-child {
        margin-left: 0;
    }

.kanban-card-progress {
    margin-bottom: 0.75rem;
}

    .kanban-card-progress .progress {
        height: 4px;
    }

.kanban-card-progress-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}

.kanban-card-progress-label {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.kanban-card-progress-value {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--default-color);
}

.kanban-card-checklist {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    color: var(--muted-color);
}

    .kanban-card-checklist.complete {
        color: var(--success-color);
    }

.kanban-due-date {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    padding: 0.125rem 0.5rem;
    border-radius: 3px;
}

    .kanban-due-date.overdue {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

    .kanban-due-date.due-soon {
        background: color-mix(in srgb, var(--warning-color), transparent 85%);
        color: color-mix(in srgb, var(--warning-color), black 20%);
    }

    .kanban-due-date.on-track {
        background: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

.kanban-add-card {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem;
    background: none;
    border: 2px dashed var(--border-color);
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
    width: 100%;
}

    .kanban-add-card:hover {
        border-color: var(--accent-color);
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.kanban-add-column {
    flex: 0 0 320px;
    min-width: 320px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 1rem;
}

.kanban-add-column-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: var(--surface-color);
    border: 2px dashed var(--border-color);
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
}

    .kanban-add-column-btn:hover {
        border-color: var(--accent-color);
        color: var(--accent-color);
    }

.kanban-empty {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--muted-color);
}

    .kanban-empty i {
        font-size: 2rem;
        margin-bottom: 0.5rem;
        opacity: 0.5;
    }

    .kanban-empty p {
        font-size: 0.8125rem;
        margin: 0;
    }

.task-modal .modal-body {
    padding: 1.5rem;
}

.task-detail-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.task-detail-icon {
    width: 24px;
    color: var(--muted-color);
    flex-shrink: 0;
    text-align: center;
}

.task-detail-content {
    flex: 1;
}

.task-detail-label {
    font-size: 0.75rem;
    color: var(--muted-color);
    margin-bottom: 0.25rem;
}

.task-detail-value {
    color: var(--default-color);
}

@media (max-width: 991.98px) {
    .kanban-board {
        min-height: calc(100vh - 240px);
    }

    .kanban-column {
        flex: 0 0 280px;
        min-width: 280px;
        max-width: 280px;
        max-height: calc(100vh - 240px);
    }

    .kanban-add-column {
        flex: 0 0 280px;
        min-width: 280px;
    }

    .kanban-column-btn {
        width: 36px;
        height: 36px;
    }

    .kanban-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .kanban-header-right {
        width: 100%;
        justify-content: flex-end;
    }
}

@media (max-width: 767.98px) {
    .kanban-header {
        margin-bottom: 1rem;
    }

    .kanban-title {
        font-size: 1.25rem;
    }

    .kanban-header-left {
        flex-wrap: wrap;
        width: 100%;
    }

    .kanban-header-right {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

        .kanban-header-right .btn {
            min-height: 44px;
            padding: 0.5rem 1rem;
        }

    .kanban-board {
        gap: 1rem;
        min-height: auto;
        padding-bottom: 1.5rem;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .kanban-column {
        flex: 0 0 85vw;
        min-width: 85vw;
        max-width: 85vw;
        max-height: calc(100vh - 260px);
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .kanban-add-column {
        flex: 0 0 85vw;
        min-width: 85vw;
        scroll-snap-align: start;
    }

    .kanban-column-header {
        padding: 0.875rem;
    }

    .kanban-column-title {
        font-size: 0.875rem;
    }

    .kanban-column-btn {
        width: 44px;
        height: 44px;
        font-size: 1.125rem;
    }

    .kanban-column-body {
        padding: 0.5rem;
        gap: 0.5rem;
    }

    .kanban-card {
        padding: 0.875rem;
    }

    .kanban-card-title {
        font-size: 0.875rem;
    }

    .kanban-card-description {
        font-size: 0.75rem;
    }

    .kanban-card-meta-item {
        font-size: 0.6875rem;
    }

        .kanban-card-meta-item i {
            font-size: 0.75rem;
        }

    .kanban-add-card {
        padding: 0.875rem;
        min-height: 44px;
    }

    .kanban-add-column-btn {
        padding: 0.875rem 1.25rem;
        min-height: 44px;
    }

    .kanban-member,
    .kanban-member-add {
        width: 36px;
        height: 36px;
    }

    .kanban-mobile-nav {
        display: flex;
        justify-content: center;
        gap: 0.5rem;
        padding: 0.75rem 0;
    }

    .kanban-mobile-nav-dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--border-color);
        transition: all 0.2s;
    }

        .kanban-mobile-nav-dot.active {
            width: 24px;
            border-radius: 4px;
            background: var(--accent-color);
        }
}

@media (max-width: 575.98px) {
    .kanban-header {
        gap: 0.75rem;
        margin-bottom: 0.75rem;
    }

    .kanban-title {
        font-size: 1.125rem;
    }

    .kanban-members {
        flex-wrap: wrap;
    }

    .kanban-member,
    .kanban-member-add {
        width: 32px;
        height: 32px;
        margin-left: -6px;
    }

        .kanban-member:first-child,
        .kanban-member-add:first-child {
            margin-left: 0;
        }

    .kanban-header-right {
        gap: 0.375rem;
    }

        .kanban-header-right .btn {
            font-size: 0.8125rem;
            padding: 0.5rem 0.75rem;
        }

    .kanban-board {
        gap: 0.75rem;
        padding-bottom: 1rem;
    }

    .kanban-column {
        flex: 0 0 calc(100vw - 2rem);
        min-width: calc(100vw - 2rem);
        max-width: calc(100vw - 2rem);
        max-height: calc(100vh - 280px);
    }

    .kanban-add-column {
        flex: 0 0 calc(100vw - 2rem);
        min-width: calc(100vw - 2rem);
    }

    .kanban-column-header {
        padding: 0.75rem;
    }

    .kanban-column-title {
        font-size: 0.8125rem;
        gap: 0.375rem;
    }

    .kanban-column-count {
        font-size: 0.6875rem;
        padding: 0.125rem 0.375rem;
    }

    .kanban-column-actions {
        gap: 0.125rem;
    }

    .kanban-column-btn {
        width: 44px;
        height: 44px;
    }

    .kanban-column-body {
        padding: 0.375rem;
        gap: 0.375rem;
    }

    .kanban-card {
        padding: 0.75rem;
    }

    .kanban-card-labels {
        margin-bottom: 0.5rem;
    }

    .kanban-label {
        font-size: 0.625rem;
        padding: 0.125rem 0.375rem;
    }

    .kanban-card-title {
        font-size: 0.8125rem;
        margin-bottom: 0.375rem;
    }

    .kanban-card-description {
        font-size: 0.6875rem;
        margin-bottom: 0.5rem;
        -webkit-line-clamp: 3;
    }

    .kanban-card-footer {
        padding-top: 0.5rem;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .kanban-card-meta {
        gap: 0.5rem;
    }

    .kanban-card-meta-item {
        font-size: 0.625rem;
    }

        .kanban-card-meta-item i {
            font-size: 0.6875rem;
        }

    .kanban-card-assignee {
        width: 20px;
        height: 20px;
        margin-left: -4px;
    }

        .kanban-card-assignee:first-child {
            margin-left: 0;
        }

    .kanban-card-progress {
        margin-bottom: 0.5rem;
    }

    .kanban-card-progress-label,
    .kanban-card-progress-value {
        font-size: 0.6875rem;
    }

    .kanban-due-date {
        font-size: 0.6875rem;
        padding: 0.125rem 0.375rem;
    }

    .kanban-add-card {
        padding: 0.75rem;
        font-size: 0.8125rem;
        min-height: 44px;
    }

    .kanban-add-column-btn {
        padding: 0.75rem 1rem;
        font-size: 0.8125rem;
        min-height: 44px;
    }

    .kanban-empty {
        padding: 1.5rem 0.75rem;
    }

        .kanban-empty i {
            font-size: 1.5rem;
        }

        .kanban-empty p {
            font-size: 0.75rem;
        }

    .task-modal .modal-body {
        padding: 1rem;
    }

    .task-detail-row {
        gap: 0.75rem;
        margin-bottom: 0.75rem;
    }

    .task-detail-icon {
        width: 20px;
    }

    .task-detail-label {
        font-size: 0.6875rem;
    }

    .task-detail-value {
        font-size: 0.875rem;
    }
}

.chat-container {
    display: flex;
    min-height: calc(100vh - 200px);
    background: var(--surface-color);
    border-radius: var(--bs-border-radius-lg);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.chat-sidebar {
    width: 320px;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}

.chat-sidebar-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.chat-sidebar-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 1rem;
}

.chat-search {
    position: relative;
}

    .chat-search .form-control {
        padding-left: 2.5rem;
        background: var(--background-color);
        border-color: var(--border-color);
    }

        .chat-search .form-control:focus {
            background: var(--surface-color);
        }

.chat-search-icon {
    position: absolute;
    left: 0.875rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-color);
}

.chat-tabs {
    display: flex;
    padding: 0.5rem 1.25rem;
    gap: 0.5rem;
    border-bottom: 1px solid var(--border-color);
}

.chat-tab {
    flex: 1;
    padding: 0.5rem;
    border: none;
    background: none;
    color: var(--muted-color);
    font-size: 0.8125rem;
    font-weight: 500;
    border-radius: var(--bs-border-radius);
    cursor: pointer;
    transition: all 0.2s;
}

    .chat-tab:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

    .chat-tab.active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .chat-tab .badge {
        margin-left: 0.25rem;
        font-size: 0.6875rem;
    }

.chat-list {
    flex: 1;
    overflow-y: auto;
}

    .chat-list::-webkit-scrollbar {
        width: 4px;
    }

    .chat-list::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.chat-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1.25rem;
    cursor: pointer;
    transition: background 0.2s;
    border-left: 3px solid transparent;
}

    .chat-item:hover {
        background: var(--background-color);
    }

    .chat-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
        border-left-color: var(--accent-color);
    }

.chat-item-avatar {
    position: relative;
    flex-shrink: 0;
}

    .chat-item-avatar img {
        width: 48px;
        height: 48px;
        border-radius: 50%;
        object-fit: cover;
    }

.chat-item-status {
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid var(--surface-color);
}

    .chat-item-status.online {
        background: var(--success-color);
    }

    .chat-item-status.away {
        background: var(--warning-color);
    }

    .chat-item-status.offline {
        background: var(--muted-color);
    }

    .chat-item-status.busy {
        background: var(--danger-color);
    }

.chat-item-content {
    flex: 1;
    min-width: 0;
}

.chat-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.25rem;
}

.chat-item-name {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chat-item-time {
    font-size: 0.75rem;
    color: var(--muted-color);
    flex-shrink: 0;
}

.chat-item-message {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.chat-item-message-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.chat-item-unread {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--accent-color);
    color: var(--contrast-color);
    font-size: 0.6875rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.chat-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.chat-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.chat-header-user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.chat-header-avatar {
    position: relative;
}

    .chat-header-avatar img {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        object-fit: cover;
    }

.chat-header-info h5 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 0.125rem 0;
}

.chat-header-info span {
    font-size: 0.8125rem;
    color: var(--success-color);
}

.chat-header-actions {
    display: flex;
    gap: 0.5rem;
}

.chat-header-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: var(--background-color);
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .chat-header-btn:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.chat-messages {
    flex: 1;
    padding: 1.5rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

    .chat-messages::-webkit-scrollbar {
        width: 6px;
    }

    .chat-messages::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.message-group {
    display: flex;
    gap: 0.75rem;
}

    .message-group.sent {
        flex-direction: row-reverse;
    }

        .message-group.sent .message-content {
            align-items: flex-end;
        }

        .message-group.sent .message-bubble {
            background: var(--accent-color);
            color: var(--contrast-color);
            border-bottom-right-radius: 0.25rem;
        }

    .message-group.received .message-bubble {
        border-bottom-left-radius: 0.25rem;
    }

.message-avatar img {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
}

.message-content {
    max-width: 70%;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.message-bubble {
    padding: 0.75rem 1rem;
    border-radius: 1rem;
    background: var(--background-color);
    color: var(--default-color);
    font-size: 0.9375rem;
    line-height: 1.5;
    word-wrap: break-word;
}

.message-time {
    font-size: 0.6875rem;
    color: var(--muted-color);
    padding: 0 0.5rem;
}

.message-status {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

    .message-status.seen {
        color: var(--accent-color);
    }

.message-date-divider {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0.5rem 0;
}

    .message-date-divider::before, .message-date-divider::after {
        content: "";
        flex: 1;
        height: 1px;
        background: var(--border-color);
    }

    .message-date-divider span {
        font-size: 0.75rem;
        color: var(--muted-color);
        white-space: nowrap;
    }

.message-image {
    max-width: 280px;
    border-radius: 0.75rem;
    overflow: hidden;
    margin-top: 0.25rem;
}

    .message-image img {
        width: 100%;
        display: block;
    }

.message-file {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--background-color);
    border-radius: 0.75rem;
    margin-top: 0.25rem;
    border: 1px solid var(--border-color);
}

.message-file-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--bs-border-radius);
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.message-file-info {
    flex: 1;
}

.message-file-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.message-file-size {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.message-file-download {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .message-file-download:hover {
        background: var(--accent-color);
        border-color: var(--accent-color);
        color: var(--contrast-color);
    }

.typing-indicator {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
}

    .typing-indicator img {
        width: 32px;
        height: 32px;
        border-radius: 50%;
    }

.typing-dots {
    display: flex;
    gap: 4px;
    padding: 0.75rem 1rem;
    background: var(--background-color);
    border-radius: 1rem;
    border-bottom-left-radius: 0.25rem;
}

    .typing-dots span {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--muted-color);
        animation: typingBounce 1.4s infinite ease-in-out both;
    }

        .typing-dots span:nth-child(1) {
            animation-delay: -0.32s;
        }

        .typing-dots span:nth-child(2) {
            animation-delay: -0.16s;
        }

@keyframes typingBounce {
    0%, 80%, 100% {
        transform: scale(0.6);
        opacity: 0.5;
    }

    40% {
        transform: scale(1);
        opacity: 1;
    }
}

.chat-input {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--border-color);
    background: var(--surface-color);
}

.chat-input-wrapper {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 0.5rem;
}

.chat-input-actions {
    display: flex;
    gap: 0.25rem;
}

.chat-input-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .chat-input-btn:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.chat-input-field {
    flex: 1;
}

    .chat-input-field textarea {
        width: 100%;
        border: none;
        background: none;
        resize: none;
        padding: 0.5rem;
        font-size: 0.9375rem;
        color: var(--default-color);
        max-height: 120px;
        line-height: 1.5;
    }

        .chat-input-field textarea:focus {
            outline: none;
        }

        .chat-input-field textarea::placeholder {
            color: var(--muted-color);
        }

.chat-send-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: var(--accent-color);
    color: var(--contrast-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .chat-send-btn:hover {
        background: color-mix(in srgb, var(--accent-color), black 15%);
    }

    .chat-send-btn:disabled {
        background: var(--border-color);
        color: var(--muted-color);
        cursor: not-allowed;
    }

.chat-info {
    width: 300px;
    border-left: 1px solid var(--border-color);
    display: none;
    flex-direction: column;
}

    .chat-info.show {
        display: flex;
    }

.chat-info-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

    .chat-info-header h6 {
        font-size: 0.9375rem;
        font-weight: 600;
        color: var(--heading-color);
        margin: 0;
    }

.chat-info-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    background: none;
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
}

    .chat-info-close:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.chat-info-body {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem;
}

.chat-info-profile {
    text-align: center;
    margin-bottom: 1.5rem;
}

    .chat-info-profile img {
        width: 80px;
        height: 80px;
        border-radius: 50%;
        object-fit: cover;
        margin-bottom: 0.75rem;
    }

    .chat-info-profile h5 {
        font-size: 1.125rem;
        font-weight: 600;
        color: var(--heading-color);
        margin: 0 0 0.25rem 0;
    }

    .chat-info-profile span {
        font-size: 0.875rem;
        color: var(--muted-color);
    }

.chat-info-section {
    margin-bottom: 1.5rem;
}

.chat-info-section-title {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted-color);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.75rem;
}

.chat-info-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
}

    .chat-info-item i {
        width: 20px;
        color: var(--muted-color);
        text-align: center;
    }

    .chat-info-item span {
        font-size: 0.875rem;
        color: var(--default-color);
    }

.chat-info-media {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

    .chat-info-media img {
        width: 100%;
        aspect-ratio: 1;
        object-fit: cover;
        border-radius: var(--bs-border-radius);
        cursor: pointer;
        transition: opacity 0.2s;
    }

        .chat-info-media img:hover {
            opacity: 0.8;
        }

.chat-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--muted-color);
    padding: 2rem;
    text-align: center;
}

.chat-empty-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--background-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin-bottom: 1rem;
}

.chat-empty h5 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 0.5rem 0;
}

.chat-empty p {
    font-size: 0.875rem;
    margin: 0;
}

.chat-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--background-color);
    border: none;
    border-radius: 50%;
    color: var(--muted-color);
    font-size: 1.125rem;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

    .chat-sidebar-toggle:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.chat-sidebar-close {
    display: none;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 44px;
    height: 44px;
    padding: 0;
    background: color-mix(in srgb, var(--default-color), transparent 95%);
    border: none;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10;
}

    .chat-sidebar-close:hover {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.chat-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--default-color), transparent 50%);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .chat-sidebar-overlay.show {
        opacity: 1;
    }

[data-theme=dark] .chat-sidebar-overlay {
    background: color-mix(in srgb, var(--default-color), transparent 30%);
}

@media (max-width: 1279.98px) {
    .chat-sidebar-toggle {
        display: flex;
    }

    .chat-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

        .chat-sidebar-overlay.show {
            pointer-events: auto;
        }

    .chat-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .chat-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 340px;
        max-width: 90vw;
        height: 100vh;
        height: 100dvh;
        background: var(--surface-color);
        z-index: 1050;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        padding-top: 3.5rem;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

        .chat-sidebar.show {
            transform: translateX(0);
        }

    .chat-sidebar-header {
        flex-shrink: 0;
    }

    .chat-tabs {
        flex-shrink: 0;
    }

    .chat-list {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        max-height: none;
        scrollbar-width: thin;
    }

        .chat-list::-webkit-scrollbar {
            width: 4px;
        }

        .chat-list::-webkit-scrollbar-track {
            background: var(--background-color);
        }

        .chat-list::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 2px;
        }

            .chat-list::-webkit-scrollbar-thumb:hover {
                background: var(--muted-color);
            }

    body.chat-sidebar-open {
        overflow: hidden;
    }

    .chat-info {
        display: none !important;
    }
}

@media (max-width: 991.98px) {
    .chat-info {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .chat-container {
        min-height: calc(100vh - 180px);
    }

    .message-content {
        max-width: 80%;
    }

    .chat-messages {
        padding: 1rem;
        gap: 1rem;
    }

    .chat-input {
        padding: 0.75rem 1rem;
    }

    .chat-input-wrapper {
        padding: 0.375rem;
    }
}

@media (max-width: 575.98px) {
    .chat-container {
        border-radius: 0;
        border-left: none;
        border-right: none;
        min-height: calc(100vh - 160px);
    }

    .chat-sidebar-header {
        padding: 0.75rem 1rem;
    }

    .chat-sidebar-title {
        font-size: 1.125rem;
        margin-bottom: 0.75rem;
    }

    .chat-tabs {
        padding: 0.375rem 0.75rem;
    }

    .chat-tab {
        padding: 0.625rem 0.5rem;
        min-height: 44px;
        font-size: 0.75rem;
    }

    .chat-list {
        max-height: 200px;
    }

    .chat-item {
        padding: 0.75rem 1rem;
        min-height: 64px;
    }

    .chat-item-avatar img {
        width: 44px;
        height: 44px;
    }

    .chat-item-name {
        font-size: 0.875rem;
    }

    .chat-item-message-text {
        font-size: 0.75rem;
    }

    .chat-item-time {
        font-size: 0.6875rem;
    }

    .chat-header {
        padding: 0.75rem 1rem;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .chat-header-user {
        flex: 1;
        min-width: 0;
    }

    .chat-header-avatar img {
        width: 40px;
        height: 40px;
    }

    .chat-header-info {
        min-width: 0;
    }

        .chat-header-info h5 {
            font-size: 0.9375rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .chat-header-info span {
            font-size: 0.75rem;
        }

    .chat-header-actions {
        gap: 0.25rem;
    }

    .chat-header-btn[title="Voice Call"],
    .chat-header-btn[title="Video Call"] {
        display: none;
    }

    .message-content {
        max-width: 85%;
    }

    .message-avatar img {
        width: 32px;
        height: 32px;
    }

    .message-bubble {
        padding: 0.625rem 0.875rem;
        font-size: 0.875rem;
    }

    .message-time {
        font-size: 0.625rem;
    }

    .message-image {
        max-width: 220px;
    }

    .message-file {
        padding: 0.5rem 0.75rem;
    }

    .message-file-icon {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }

    .message-file-name {
        font-size: 0.8125rem;
    }

    .message-file-download {
        width: 44px;
        height: 44px;
    }

    .chat-input {
        padding: 0.5rem 0.75rem;
    }

    .chat-input-wrapper {
        gap: 0.5rem;
        padding: 0.25rem;
    }

    .chat-input-actions {
        gap: 0;
    }

    .chat-input-btn {
        width: 44px;
        height: 44px;
    }

    .chat-input-field textarea {
        font-size: 0.875rem;
        padding: 0.375rem 0.5rem;
    }

    .chat-send-btn {
        width: 44px;
        height: 44px;
    }

    .typing-indicator img {
        width: 28px;
        height: 28px;
    }

    .typing-dots {
        padding: 0.625rem 0.875rem;
    }

        .typing-dots span {
            width: 6px;
            height: 6px;
        }

    .chat-empty {
        padding: 1.5rem;
    }

    .chat-empty-icon {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }

    .chat-empty h5 {
        font-size: 1rem;
    }

    .chat-empty p {
        font-size: 0.8125rem;
    }
}

.contacts-container {
    display: flex;
    min-height: calc(100vh - 200px);
    background: var(--surface-color);
    border-radius: var(--bs-border-radius-lg);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.contacts-sidebar {
    width: 260px;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}

.contacts-sidebar-header {
    padding: 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.contacts-nav {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border-color);
}

.contacts-nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1.25rem;
    color: var(--default-color);
    text-decoration: none;
    font-size: 0.875rem;
    transition: all 0.2s;
}

    .contacts-nav-item i {
        font-size: 1.125rem;
        color: var(--muted-color);
        width: 20px;
        text-align: center;
    }

    .contacts-nav-item span:first-of-type {
        flex: 1;
    }

    .contacts-nav-item .badge {
        background: var(--background-color);
        color: var(--muted-color);
        font-weight: 500;
        font-size: 0.75rem;
        padding: 0.25rem 0.5rem;
    }

    .contacts-nav-item:hover {
        background: var(--background-color);
        color: var(--heading-color);
    }

        .contacts-nav-item:hover i {
            color: var(--accent-color);
        }

    .contacts-nav-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

        .contacts-nav-item.active i {
            color: var(--accent-color);
        }

        .contacts-nav-item.active .badge {
            background: color-mix(in srgb, var(--accent-color), transparent 80%);
            color: var(--accent-color);
        }

.contacts-groups {
    padding: 1rem 0;
    border-bottom: 1px solid var(--border-color);
}

.contacts-groups-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.25rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
}

.contacts-groups-add {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    border: none;
    background: none;
    color: var(--muted-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

    .contacts-groups-add:hover {
        background: var(--background-color);
        color: var(--accent-color);
    }

.contacts-groups-list {
    display: flex;
    flex-direction: column;
}

.contacts-group-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 1.25rem;
    color: var(--default-color);
    text-decoration: none;
    font-size: 0.875rem;
    transition: all 0.2s;
}

    .contacts-group-item .badge {
        background: var(--background-color);
        color: var(--muted-color);
        font-weight: 500;
        font-size: 0.6875rem;
        padding: 0.125rem 0.375rem;
        margin-left: auto;
    }

    .contacts-group-item:hover {
        background: var(--background-color);
    }

    .contacts-group-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

.contacts-group-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.contacts-tags {
    padding: 1rem 1.25rem;
}

.contacts-tags-header {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
    margin-bottom: 0.75rem;
}

.contacts-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.contacts-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    background: var(--background-color);
    border-radius: 20px;
    font-size: 0.75rem;
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
}

    .contacts-tag:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

.contacts-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

.contacts-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.contacts-search {
    flex: 1;
    position: relative;
    max-width: 400px;
}

    .contacts-search i {
        position: absolute;
        left: 0.875rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--muted-color);
    }

    .contacts-search .form-control {
        padding-left: 2.5rem;
        background: var(--background-color);
        border-color: transparent;
    }

        .contacts-search .form-control:focus {
            background: var(--surface-color);
            border-color: var(--accent-color);
        }

.contacts-view-toggle {
    display: flex;
    background: var(--background-color);
    border-radius: var(--bs-border-radius);
    padding: 2px;
}

.contacts-view-btn {
    width: 44px;
    height: 44px;
    border: none;
    background: none;
    color: var(--muted-color);
    border-radius: var(--bs-border-radius);
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .contacts-view-btn:hover {
        color: var(--default-color);
    }

    .contacts-view-btn.active {
        background: var(--surface-color);
        color: var(--accent-color);
        box-shadow: var(--shadow-sm);
    }

.contacts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.25rem;
    padding: 1.25rem;
    overflow-y: auto;
    flex: 1;
}

    .contacts-grid::-webkit-scrollbar {
        width: 6px;
    }

    .contacts-grid::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.contact-card {
    position: relative;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius-lg);
    text-align: center;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
}

    .contact-card:hover {
        border-color: var(--accent-color);
        box-shadow: 0 4px 12px color-mix(in srgb, var(--accent-color), transparent 90%);
    }

        .contact-card:hover .contact-card-actions {
            opacity: 1;
        }

.contact-card-body {
    padding: 1.5rem 1.5rem 0;
    cursor: pointer;
    flex: 1;
}

.contact-card-actions {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    left: 0.75rem;
    display: flex;
    justify-content: space-between;
    opacity: 0;
    transition: opacity 0.2s;
}

.contact-favorite {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    background: var(--background-color);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .contact-favorite:hover {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .contact-favorite.active {
        background: var(--warning-color-light);
        color: var(--warning-color);
        opacity: 1;
    }

.contact-menu {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    background: var(--background-color);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .contact-menu:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.contact-card-avatar {
    position: relative;
    width: 80px;
    height: 80px;
    margin: 0 auto 1rem;
}

    .contact-card-avatar img {
        width: 100%;
        height: 100%;
        border-radius: 50%;
        object-fit: cover;
    }

.contact-avatar-initial {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 600;
}

.contact-status {
    position: absolute;
    bottom: 4px;
    right: 4px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--surface-color);
}

    .contact-status.online {
        background: var(--success-color);
    }

    .contact-status.away {
        background: var(--warning-color);
    }

    .contact-status.offline {
        background: var(--muted-color);
    }

    .contact-status.busy {
        background: var(--danger-color);
    }

.contact-card-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 0.25rem;
}

.contact-card-role {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin: 0 0 0.125rem;
}

.contact-card-company {
    font-size: 0.75rem;
    color: var(--light-color);
    margin: 0 0 0.75rem;
}

.contact-card-tags {
    display: flex;
    justify-content: center;
    gap: 0.375rem;
    margin-bottom: 1rem;
}

.contact-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.1875rem 0.5rem;
    background: var(--background-color);
    border-radius: 20px;
    font-size: 0.6875rem;
    color: var(--muted-color);
}

.contact-card-info {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 1.5rem;
    margin-top: auto;
    border-top: 1px solid var(--border-color);
}

.contact-info-item {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--background-color);
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    text-decoration: none;
}

    .contact-info-item:hover {
        background: var(--accent-color);
        color: var(--contrast-color);
    }

.contacts-list {
    flex: 1;
    overflow-y: auto;
    padding: 0 1.25rem;
}

    .contacts-list::-webkit-scrollbar {
        width: 6px;
    }

    .contacts-list::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.contacts-table {
    margin: 0;
}

    .contacts-table th {
        font-size: 0.75rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: var(--muted-color);
        background: var(--background-color);
        padding: 0.75rem 1rem;
        border-bottom: 1px solid var(--border-color);
        white-space: nowrap;
    }

    .contacts-table td {
        padding: 0.875rem 1rem;
        vertical-align: middle;
        font-size: 0.875rem;
        color: var(--default-color);
        border-bottom: 1px solid var(--border-color);
    }

    .contacts-table tr:hover td {
        background: var(--background-color);
    }

.contact-list-user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

    .contact-list-user img {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        object-fit: cover;
    }

.contact-list-name {
    font-weight: 600;
    color: var(--heading-color);
}

.contact-list-role {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.contact-list-actions {
    display: flex;
    gap: 0.25rem;
}

    .contact-list-actions .btn-icon {
        width: 32px;
        height: 32px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        border: none;
        background: none;
        color: var(--muted-color);
        border-radius: var(--bs-border-radius);
        cursor: pointer;
    }

        .contact-list-actions .btn-icon:hover {
            background: var(--background-color);
            color: var(--accent-color);
        }

        .contact-list-actions .btn-icon.text-danger:hover {
            background: var(--danger-color-light);
            color: var(--danger-color);
        }

.contacts-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--border-color);
}

.contacts-pagination-info {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.contact-avatar-upload {
    position: relative;
    display: inline-block;
}

.contact-avatar-preview {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: var(--background-color);
    border: 2px dashed var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

    .contact-avatar-preview i {
        font-size: 2.5rem;
        color: var(--muted-color);
    }

    .contact-avatar-preview img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.contact-avatar-btn {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--accent-color);
    color: var(--contrast-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .contact-avatar-btn:hover {
        background: color-mix(in srgb, var(--accent-color), black 15%);
    }

.contact-detail {
    padding: 0;
}

.contact-detail-header {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--border-color);
}

.contact-detail-avatar {
    position: relative;
    flex-shrink: 0;
}

    .contact-detail-avatar img,
    .contact-detail-avatar .contact-avatar-initial {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        object-fit: cover;
    }

    .contact-detail-avatar .contact-avatar-initial {
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 2rem;
        font-weight: 600;
    }

    .contact-detail-avatar .contact-status {
        width: 18px;
        height: 18px;
        bottom: 6px;
        right: 6px;
        border-width: 3px;
    }

.contact-detail-info {
    flex: 1;
    min-width: 0;
}

.contact-detail-name {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 0.25rem;
}

.contact-detail-role {
    font-size: 0.9375rem;
    color: var(--muted-color);
    margin: 0 0 0.75rem;
}

.contact-detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

    .contact-detail-tags .contact-tag {
        font-size: 0.75rem;
        padding: 0.25rem 0.75rem;
    }

.contact-detail-actions {
    display: flex;
    gap: 0.5rem;
}

    .contact-detail-actions .btn {
        width: 44px;
        height: 44px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
    }

        .contact-detail-actions .btn i {
            font-size: 1.125rem;
        }

.contact-detail-body {
    padding: 1.5rem 0 0;
}

.contact-detail-section {
    margin-bottom: 1.5rem;
}

.contact-detail-section-title {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
    margin-bottom: 1rem;
}

.contact-detail-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.625rem 0;
}

    .contact-detail-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.contact-detail-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--background-color);
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contact-detail-content {
    flex: 1;
    min-width: 0;
}

.contact-detail-label {
    display: block;
    font-size: 0.75rem;
    color: var(--muted-color);
    margin-bottom: 0.125rem;
}

.contact-detail-value {
    display: block;
    font-size: 0.875rem;
    color: var(--default-color);
    text-decoration: none;
    word-break: break-word;
}

    .contact-detail-value:hover {
        color: var(--accent-color);
    }

.contact-detail-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

.contact-quick-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem;
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    color: var(--default-color);
    text-decoration: none;
    transition: all 0.2s;
}

    .contact-quick-action i {
        font-size: 1.25rem;
        color: var(--accent-color);
    }

    .contact-quick-action span {
        font-size: 0.8125rem;
    }

    .contact-quick-action:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

.contact-detail-notes {
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 1rem;
}

    .contact-detail-notes p {
        margin: 0;
        font-size: 0.875rem;
        color: var(--default-color);
        line-height: 1.6;
    }

.contact-activity-timeline {
    position: relative;
}

.contact-activity-item {
    display: flex;
    gap: 1rem;
    padding: 0.75rem 0;
    position: relative;
}

    .contact-activity-item:not(:last-child)::before {
        content: "";
        position: absolute;
        left: 18px;
        top: 36px;
        bottom: -0.75rem;
        width: 2px;
        background: var(--border-color);
    }

    .contact-activity-item:first-child {
        padding-top: 0;
    }

        .contact-activity-item:first-child::before {
            top: 36px;
        }

    .contact-activity-item:last-child {
        padding-bottom: 0;
    }

.contact-activity-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

    .contact-activity-icon i {
        font-size: 0.875rem;
    }

.contact-activity-content {
    flex: 1;
    min-width: 0;
    padding-top: 0.375rem;
}

.contact-activity-text {
    margin: 0 0 0.25rem;
    font-size: 0.875rem;
    color: var(--default-color);
}

.contact-activity-time {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.contacts-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--background-color);
    border: none;
    border-radius: 50%;
    color: var(--muted-color);
    font-size: 1.125rem;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

    .contacts-sidebar-toggle:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.contacts-sidebar-close {
    display: none;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 44px;
    height: 44px;
    padding: 0;
    background: color-mix(in srgb, var(--default-color), transparent 95%);
    border: none;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10;
}

    .contacts-sidebar-close:hover {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.contacts-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--default-color), transparent 50%);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .contacts-sidebar-overlay.show {
        opacity: 1;
    }

[data-theme=dark] .contacts-sidebar-overlay {
    background: color-mix(in srgb, var(--default-color), transparent 30%);
}

@media (max-width: 1279.98px) {
    .contacts-sidebar-toggle {
        display: flex;
    }

    .contacts-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

        .contacts-sidebar-overlay.show {
            pointer-events: auto;
        }

    .contacts-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 0.75rem;
        right: 0.75rem;
        z-index: 10;
    }

    .contacts-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 320px;
        height: 100vh;
        height: 100dvh;
        background: var(--surface-color);
        z-index: 1050;
        display: flex;
        flex-direction: column;
        overflow-x: hidden;
        overflow-y: auto;
        padding-top: 3.5rem;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

        .contacts-sidebar.show {
            transform: translateX(0);
        }

    body.contacts-sidebar-open {
        overflow: hidden;
    }
}

@media (max-width: 991.98px) {
    .contacts-grid {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 1rem;
    }
}

@media (max-width: 767.98px) {
    .contacts-container {
        min-height: calc(100vh - 180px);
    }

    .contacts-header {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

        .contacts-header .contacts-search {
            order: 3;
            width: 100%;
            max-width: none;
            margin-top: 0.5rem;
        }

    .contacts-grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        padding: 1rem;
        gap: 0.75rem;
    }

    .contact-card {
        padding: 0;
    }

    .contact-card-body {
        padding: 1rem 1rem 0;
    }

    .contact-card-avatar {
        width: 60px;
        height: 60px;
    }

    .contact-avatar-initial {
        width: 60px;
        height: 60px;
        font-size: 1.25rem;
    }

    .contact-card-info {
        padding: 0.75rem 1rem;
    }

    .contact-info-item {
        width: 44px;
        height: 44px;
    }

    .contacts-pagination {
        flex-direction: column;
        gap: 0.75rem;
        text-align: center;
    }

    .contacts-table th:nth-child(n+4),
    .contacts-table td:nth-child(n+4) {
        display: none;
    }

    .contact-detail-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .contact-detail-tags {
        justify-content: center;
    }

    .contact-detail-actions {
        margin-top: 1rem;
    }

        .contact-detail-actions .btn {
            width: 44px;
            height: 44px;
        }

    .contact-detail-quick-actions {
        grid-template-columns: repeat(4, 1fr);
    }

    .contact-quick-action {
        padding: 0.75rem 0.5rem;
        min-height: 44px;
    }

        .contact-quick-action span {
            font-size: 0.6875rem;
        }
}

@media (max-width: 575.98px) {
    .contacts-container {
        border-radius: 0;
        border-left: none;
        border-right: none;
        min-height: calc(100vh - 160px);
    }

    .contacts-header {
        padding: 0.75rem;
        gap: 0.5rem;
    }

    .contacts-view-toggle {
        order: 2;
        margin-left: auto;
    }

    .contacts-view-btn {
        width: 44px;
        height: 44px;
    }

    .contacts-grid {
        grid-template-columns: repeat(2, 1fr);
        padding: 0.75rem;
        gap: 0.5rem;
    }

    .contact-card-body {
        padding: 0.75rem 0.75rem 0;
    }

    .contact-card-avatar {
        width: 50px;
        height: 50px;
        margin-bottom: 0.75rem;
    }

    .contact-avatar-initial {
        width: 50px;
        height: 50px;
        font-size: 1rem;
    }

    .contact-card-name {
        font-size: 0.875rem;
    }

    .contact-card-role {
        font-size: 0.75rem;
    }

    .contact-card-company {
        display: none;
    }

    .contact-card-tags {
        display: none;
    }

    .contact-card-info {
        padding: 0.625rem 0.75rem;
        gap: 0.25rem;
    }

    .contact-info-item {
        width: 40px;
        height: 40px;
        font-size: 0.875rem;
    }

    .contact-card-actions {
        opacity: 1;
    }

    .contact-favorite,
    .contact-menu {
        width: 36px;
        height: 36px;
    }

    .contacts-list {
        padding: 0 0.75rem;
    }

    .contacts-table th {
        padding: 0.625rem 0.75rem;
        font-size: 0.6875rem;
    }

    .contacts-table td {
        padding: 0.75rem;
        font-size: 0.8125rem;
    }

        .contacts-table th:nth-child(n+3),
        .contacts-table td:nth-child(n+3) {
            display: none;
        }

    .contact-list-user {
        gap: 0.5rem;
    }

        .contact-list-user img {
            width: 36px;
            height: 36px;
        }

    .contact-list-name {
        font-size: 0.8125rem;
    }

    .contact-list-role {
        font-size: 0.6875rem;
    }

    .contact-list-actions .btn-icon {
        width: 44px;
        height: 44px;
    }

    .contacts-pagination {
        padding: 0.75rem;
    }

    .contacts-pagination-info {
        font-size: 0.75rem;
    }

    .contact-detail-header {
        padding: 1rem 0;
    }

    .contact-detail-avatar img,
    .contact-detail-avatar .contact-avatar-initial {
        width: 80px;
        height: 80px;
    }

    .contact-detail-avatar .contact-avatar-initial {
        font-size: 1.5rem;
    }

    .contact-detail-name {
        font-size: 1.25rem;
    }

    .contact-detail-role {
        font-size: 0.875rem;
    }

    .contact-detail-body {
        padding: 1rem 0 0;
    }

    .contact-detail-section {
        margin-bottom: 1rem;
    }

    .contact-detail-item {
        padding: 0.5rem 0;
        gap: 0.75rem;
    }

    .contact-detail-icon {
        width: 40px;
        height: 40px;
    }

    .contact-detail-label {
        font-size: 0.6875rem;
    }

    .contact-detail-value {
        font-size: 0.8125rem;
    }

    .contact-detail-quick-actions {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }

    .contact-quick-action {
        padding: 1rem 0.75rem;
        min-height: 70px;
    }

        .contact-quick-action i {
            font-size: 1.125rem;
        }

        .contact-quick-action span {
            font-size: 0.75rem;
        }

    .contact-detail-notes {
        padding: 0.75rem;
    }

        .contact-detail-notes p {
            font-size: 0.8125rem;
        }

    .contact-activity-item {
        gap: 0.75rem;
    }

        .contact-activity-item:not(:last-child)::before {
            left: 16px;
        }

    .contact-activity-icon {
        width: 32px;
        height: 32px;
    }

        .contact-activity-icon i {
            font-size: 0.75rem;
        }

    .contact-activity-text {
        font-size: 0.8125rem;
    }

    .contact-activity-time {
        font-size: 0.6875rem;
    }

    .contact-avatar-preview {
        width: 80px;
        height: 80px;
    }

        .contact-avatar-preview i {
            font-size: 2rem;
        }

    .contact-avatar-btn {
        width: 28px;
        height: 28px;
    }
}

.file-manager {
    display: flex;
    height: calc(100vh - 200px);
    min-height: 500px;
    background: var(--surface-color);
    border-radius: var(--bs-border-radius-lg);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.fm-sidebar {
    width: 260px;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    background: var(--surface-color);
}

.fm-sidebar-header {
    padding: 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.fm-upload-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: var(--accent-color);
    color: var(--contrast-color);
    border: none;
    border-radius: var(--bs-border-radius);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

    .fm-upload-btn:hover {
        background: color-mix(in srgb, var(--accent-color), black 15%);
    }

.fm-nav {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 0;
}

.fm-nav-title {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
    padding: 0.5rem 1.25rem;
    margin-top: 0.5rem;
}

.fm-nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1.25rem;
    color: var(--default-color);
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
}

    .fm-nav-item:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

    .fm-nav-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .fm-nav-item i {
        font-size: 1.125rem;
        width: 20px;
        text-align: center;
    }

    .fm-nav-item span:not(.badge) {
        flex: 1;
        font-size: 0.875rem;
    }

    .fm-nav-item .badge {
        font-size: 0.6875rem;
        padding: 0.2rem 0.5rem;
        flex: 0 0 auto;
        min-width: auto;
    }

.fm-storage {
    padding: 1.25rem;
    border-top: 1px solid var(--border-color);
}

    .fm-storage .progress {
        height: 6px;
        margin-bottom: 0.5rem;
    }

.fm-storage-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.fm-storage-label {
    font-size: 0.8125rem;
    color: var(--default-color);
}

.fm-storage-value {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.fm-storage-detail {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.fm-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.fm-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
    gap: 1rem;
    flex-wrap: wrap;
}

.fm-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.875rem;
}

    .fm-breadcrumb a {
        color: var(--muted-color);
        text-decoration: none;
        transition: color 0.2s;
    }

        .fm-breadcrumb a:hover {
            color: var(--accent-color);
        }

    .fm-breadcrumb span {
        color: var(--default-color);
        font-weight: 500;
    }

    .fm-breadcrumb i {
        color: var(--muted-color);
        font-size: 0.75rem;
    }

.fm-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.fm-search {
    position: relative;
    width: 240px;
}

    .fm-search .form-control {
        padding-left: 2.5rem;
        background: var(--background-color);
        border-color: var(--border-color);
    }

        .fm-search .form-control:focus {
            background: var(--surface-color);
        }

.fm-search-icon {
    position: absolute;
    left: 0.875rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-color);
}

.fm-view-toggle {
    display: flex;
    background: var(--background-color);
    border-radius: var(--bs-border-radius);
    padding: 0.25rem;
}

.fm-view-btn {
    width: 32px;
    height: 32px;
    border: none;
    background: none;
    color: var(--muted-color);
    border-radius: var(--bs-border-radius);
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .fm-view-btn:hover {
        color: var(--default-color);
    }

    .fm-view-btn.active {
        background: var(--surface-color);
        color: var(--accent-color);
        box-shadow: var(--bs-box-shadow-sm);
    }

.fm-content {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem;
}

    .fm-content::-webkit-scrollbar {
        width: 6px;
    }

    .fm-content::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.fm-section-title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 1rem;
}

.fm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

    .fm-grid.active {
        display: grid;
    }

    .fm-grid:not(.active) {
        display: none;
    }

.fm-item {
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 1rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    border: 2px solid transparent;
    position: relative;
}

    .fm-item:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
        border-color: color-mix(in srgb, var(--accent-color), transparent 80%);
    }

        .fm-item:hover .fm-item-checkbox {
            opacity: 1;
        }

    .fm-item.selected {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        border-color: var(--accent-color);
    }

        .fm-item.selected .fm-item-checkbox {
            opacity: 1;
        }

.fm-item-checkbox {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    opacity: 0;
    transition: opacity 0.2s;
}

.fm-item-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
}

    .fm-item-icon.folder {
        color: #fbbf24;
    }

    .fm-item-icon.image {
        color: var(--success-color);
    }

    .fm-item-icon.document {
        color: var(--accent-color);
    }

    .fm-item-icon.pdf {
        color: var(--danger-color);
    }

    .fm-item-icon.spreadsheet {
        color: var(--success-color);
    }

    .fm-item-icon.video {
        color: var(--info-color);
    }

    .fm-item-icon.audio {
        color: #a855f7;
    }

    .fm-item-icon.archive {
        color: var(--warning-color);
    }

    .fm-item-icon.code {
        color: #6366f1;
    }

.fm-item-name {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.25rem;
}

.fm-item-meta {
    font-size: 0.6875rem;
    color: var(--muted-color);
}

.fm-item-thumbnail {
    width: 100%;
    height: 80px;
    border-radius: var(--bs-border-radius);
    object-fit: cover;
    margin-bottom: 0.75rem;
}

.fm-list {
    display: none;
}

    .fm-list.active {
        display: block;
    }

.fm-list-table {
    width: 100%;
}

    .fm-list-table th {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--muted-color);
        text-transform: uppercase;
        letter-spacing: 0.05em;
        padding: 0.75rem 1rem;
        border-bottom: 1px solid var(--border-color);
        text-align: left;
    }

        .fm-list-table th.sortable {
            cursor: pointer;
            user-select: none;
        }

            .fm-list-table th.sortable:hover {
                color: var(--default-color);
            }

    .fm-list-table td {
        padding: 0.75rem 1rem;
        border-bottom: 1px solid var(--border-color);
        font-size: 0.875rem;
        vertical-align: middle;
    }

    .fm-list-table tr:hover {
        background: var(--background-color);
    }

        .fm-list-table tr:hover .fm-list-actions {
            opacity: 1;
        }

    .fm-list-table tr.selected {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
    }

.fm-list-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fm-list-icon {
    font-size: 1.5rem;
    width: 32px;
    text-align: center;
}

.fm-list-name {
    font-weight: 500;
    color: var(--heading-color);
}

.fm-list-actions {
    display: flex;
    gap: 0.25rem;
    opacity: 0;
    transition: opacity 0.2s;
}

.fm-list-action-btn {
    width: 28px;
    height: 28px;
    border: none;
    background: none;
    color: var(--muted-color);
    border-radius: var(--bs-border-radius);
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .fm-list-action-btn:hover {
        background: var(--surface-color);
        color: var(--default-color);
    }

.fm-quick-access {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.fm-quick-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    cursor: pointer;
    transition: all 0.2s;
}

    .fm-quick-item:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.fm-quick-icon {
    width: 44px;
    height: 44px;
    border-radius: var(--bs-border-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

    .fm-quick-icon.documents {
        background: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .fm-quick-icon.images {
        background: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .fm-quick-icon.videos {
        background: color-mix(in srgb, var(--info-color), transparent 85%);
        color: var(--info-color);
    }

    .fm-quick-icon.music {
        background: color-mix(in srgb, #a855f7, transparent 85%);
        color: #a855f7;
    }

.fm-quick-info h6 {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 0.125rem 0;
}

.fm-quick-info span {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.fm-context-menu {
    position: fixed;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
    box-shadow: var(--bs-box-shadow-lg);
    padding: 0.5rem 0;
    min-width: 180px;
    z-index: 1050;
    display: none;
}

    .fm-context-menu.show {
        display: block;
    }

.fm-context-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    color: var(--default-color);
    cursor: pointer;
    transition: background 0.2s;
}

    .fm-context-item:hover {
        background: var(--background-color);
    }

    .fm-context-item i {
        width: 16px;
        color: var(--muted-color);
    }

    .fm-context-item.danger {
        color: var(--danger-color);
    }

        .fm-context-item.danger i {
            color: var(--danger-color);
        }

.fm-context-divider {
    height: 1px;
    background: var(--border-color);
    margin: 0.5rem 0;
}

.fm-empty {
    text-align: center;
    padding: 3rem;
    color: var(--muted-color);
}

.fm-empty-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

.fm-empty h5 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 0.5rem 0;
}

.fm-empty p {
    font-size: 0.875rem;
    margin: 0;
}

.fm-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--background-color);
    border: none;
    border-radius: 50%;
    color: var(--muted-color);
    font-size: 1.125rem;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

    .fm-sidebar-toggle:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.fm-sidebar-close {
    display: none;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 44px;
    height: 44px;
    padding: 0;
    background: color-mix(in srgb, var(--default-color), transparent 95%);
    border: none;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10;
}

    .fm-sidebar-close:hover {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.fm-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--default-color), transparent 50%);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .fm-sidebar-overlay.show {
        opacity: 1;
    }

[data-theme=dark] .fm-sidebar-overlay {
    background: color-mix(in srgb, var(--default-color), transparent 30%);
}

@media (max-width: 1279.98px) {
    .fm-sidebar-toggle {
        display: flex;
    }

    .fm-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

        .fm-sidebar-overlay.show {
            pointer-events: auto;
        }

    .fm-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .fm-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 280px;
        max-width: 90vw;
        height: 100vh;
        height: 100dvh;
        background: var(--surface-color);
        z-index: 1050;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        padding-top: 3.5rem;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

        .fm-sidebar.show {
            transform: translateX(0);
        }

    .fm-sidebar-header {
        flex-shrink: 0;
    }

    .fm-nav {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        max-height: none;
        scrollbar-width: thin;
    }

        .fm-nav::-webkit-scrollbar {
            width: 4px;
        }

        .fm-nav::-webkit-scrollbar-track {
            background: var(--background-color);
        }

        .fm-nav::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 2px;
        }

            .fm-nav::-webkit-scrollbar-thumb:hover {
                background: var(--muted-color);
            }

    .fm-storage {
        flex-shrink: 0;
    }

    body.fm-sidebar-open {
        overflow: hidden;
    }
}

@media (max-width: 991.98px) {
    .fm-search {
        width: 180px;
    }
}

@media (max-width: 767.98px) {
    .file-manager {
        flex-direction: column;
        height: auto;
        min-height: auto;
    }

    .fm-header {
        flex-direction: column;
        align-items: stretch;
        padding: 0.75rem 1rem;
        gap: 0.75rem;
    }

    .fm-breadcrumb {
        font-size: 0.8125rem;
        flex-wrap: wrap;
        gap: 0.25rem;
    }

        .fm-breadcrumb a, .fm-breadcrumb span {
            max-width: 120px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

    .fm-actions {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .fm-search {
        width: 100%;
        order: -1;
    }

    .fm-view-toggle {
        order: 1;
    }

    .fm-view-btn {
        width: 44px;
        height: 44px;
    }

    .fm-grid {
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
        gap: 0.75rem;
        padding: 0;
    }

    .fm-item {
        padding: 0.75rem;
    }

    .fm-quick-access {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }

    .fm-quick-item {
        padding: 0.75rem;
    }

    .fm-list {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .fm-list-table {
        min-width: 500px;
    }

    .fm-list-action-btn {
        width: 44px;
        height: 44px;
        opacity: 1;
    }

    .fm-list-actions {
        opacity: 1;
    }

    .fm-content {
        padding: 1rem;
    }

    .fm-upload-btn {
        min-height: 44px;
    }
}

@media (max-width: 575.98px) {
    .file-manager {
        border-radius: var(--bs-border-radius);
    }

    .fm-sidebar-header {
        padding: 1rem;
    }

    .fm-header {
        padding: 0.75rem;
    }

    .fm-breadcrumb {
        font-size: 0.75rem;
    }

        .fm-breadcrumb a, .fm-breadcrumb span {
            max-width: 80px;
        }

    .fm-actions {
        justify-content: space-between;
    }

        .fm-actions .dropdown {
            flex: 0 0 auto;
        }

        .fm-actions .btn {
            min-height: 44px;
            padding: 0.5rem 0.75rem;
            font-size: 0.8125rem;
        }

    .fm-grid {
        grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
        gap: 0.5rem;
    }

    .fm-item {
        padding: 0.5rem;
    }

    .fm-item-icon {
        width: 40px;
        height: 40px;
        font-size: 1.75rem;
        margin-bottom: 0.5rem;
    }

    .fm-item-thumbnail {
        height: 60px;
        margin-bottom: 0.5rem;
    }

    .fm-item-name {
        font-size: 0.75rem;
    }

    .fm-item-meta {
        font-size: 0.625rem;
    }

    .fm-item-checkbox {
        top: 0.25rem;
        left: 0.25rem;
    }

    .fm-quick-access {
        grid-template-columns: 1fr;
    }

    .fm-quick-item {
        padding: 0.625rem;
    }

    .fm-quick-icon {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }

    .fm-quick-info h6 {
        font-size: 0.8125rem;
    }

    .fm-quick-info span {
        font-size: 0.6875rem;
    }

    .fm-content {
        padding: 0.75rem;
    }

    .fm-section-title {
        font-size: 0.75rem;
        margin-bottom: 0.75rem;
    }

    .fm-context-menu {
        max-width: calc(100vw - 1rem);
        min-width: 160px;
    }
}

.email-container {
    display: flex;
    min-height: calc(100vh - 200px);
    background: var(--surface-color);
    border-radius: var(--bs-border-radius-lg);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.email-sidebar {
    width: 240px;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}

.email-sidebar-header {
    padding: 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.email-nav {
    padding: 0.75rem 0;
}

.email-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.email-nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1.25rem;
    color: var(--default-color);
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
    border-left: 3px solid transparent;
}

    .email-nav-item i {
        font-size: 1.125rem;
        width: 20px;
        text-align: center;
        color: var(--muted-color);
    }

    .email-nav-item span:first-of-type {
        flex: 1;
    }

    .email-nav-item:hover {
        background: var(--background-color);
    }

    .email-nav-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
        border-left-color: var(--accent-color);
        color: var(--accent-color);
        font-weight: 500;
    }

        .email-nav-item.active i {
            color: var(--accent-color);
        }

.email-nav-badge {
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.125rem 0.5rem;
    border-radius: 10px;
    background: var(--accent-color);
    color: var(--contrast-color);
}

    .email-nav-badge.bg-warning {
        background: var(--warning-color) !important;
    }

.email-labels {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--border-color);
}

.email-labels-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

    .email-labels-header span {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--muted-color);
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

.email-labels-add {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .email-labels-add:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.email-labels-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.email-label-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0;
    font-size: 0.8125rem;
    color: var(--default-color);
    cursor: pointer;
    border-radius: var(--bs-border-radius);
}

    .email-label-item:hover {
        color: var(--accent-color);
    }

    .email-label-item.active {
        color: var(--accent-color);
        font-weight: 500;
    }

.email-label-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.email-storage {
    padding: 1rem 1.25rem;
    margin-top: auto;
    border-top: 1px solid var(--border-color);
}

.email-storage-info {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: var(--muted-color);
    margin-bottom: 0.5rem;
}

.email-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.email-list-view {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.email-list-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color);
}

.email-list-actions {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

    .email-list-actions .form-check {
        margin: 0;
        padding-left: 0;
    }

        .email-list-actions .form-check .form-check-input {
            margin: 0;
        }

.email-action-btn {
    width: 44px;
    height: 44px;
    border-radius: var(--bs-border-radius);
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .email-action-btn:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.email-search {
    flex: 1;
    position: relative;
    max-width: 400px;
}

    .email-search .form-control {
        padding-left: 2.5rem;
        background: var(--background-color);
        border-color: transparent;
    }

        .email-search .form-control:focus {
            background: var(--surface-color);
            border-color: var(--border-color);
        }

.email-search-icon {
    position: absolute;
    left: 0.875rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-color);
}

.email-list-pagination {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

.email-pagination-info {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.email-pagination-btn {
    width: 32px;
    height: 32px;
    border-radius: var(--bs-border-radius);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .email-pagination-btn:hover:not(:disabled) {
        background: var(--background-color);
        color: var(--default-color);
    }

    .email-pagination-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

.email-list {
    flex: 1;
    overflow-y: auto;
}

    .email-list::-webkit-scrollbar {
        width: 6px;
    }

    .email-list::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.email-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    transition: background 0.2s;
}

    .email-item:hover {
        background: var(--background-color);
    }

    .email-item.unread {
        background: color-mix(in srgb, var(--accent-color), transparent 97%);
    }

        .email-item.unread .email-item-sender,
        .email-item.unread .email-item-subject {
            font-weight: 600;
        }

        .email-item.unread:hover {
            background: color-mix(in srgb, var(--accent-color), transparent 94%);
        }

.email-item-select {
    flex-shrink: 0;
}

    .email-item-select .form-check-input {
        margin: 0;
    }

.email-item-star {
    flex-shrink: 0;
    background: none;
    border: none;
    color: var(--muted-color);
    cursor: pointer;
    padding: 0;
    font-size: 1rem;
    transition: color 0.2s;
}

    .email-item-star:hover {
        color: var(--warning-color);
    }

    .email-item-star.starred {
        color: var(--warning-color);
    }

.email-item-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 600;
}

    .email-item-avatar img {
        width: 100%;
        height: 100%;
        border-radius: 50%;
        object-fit: cover;
    }

.email-item-content {
    flex: 1;
    min-width: 0;
}

.email-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.125rem;
}

.email-item-sender {
    font-size: 0.875rem;
    color: var(--heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.email-item-time {
    font-size: 0.75rem;
    color: var(--muted-color);
    flex-shrink: 0;
    margin-left: 0.5rem;
}

.email-item-subject {
    font-size: 0.8125rem;
    color: var(--default-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.125rem;
}

.email-item-preview {
    font-size: 0.8125rem;
    color: var(--muted-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.email-item-labels {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}

.email-item-label {
    font-size: 0.6875rem;
    padding: 0.125rem 0.5rem;
    border-radius: 10px;
    color: var(--contrast-color);
    font-weight: 500;
}

.email-item-attachment {
    color: var(--muted-color);
    flex-shrink: 0;
}

.email-detail-view {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.email-detail-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color);
}

.email-back-btn {
    width: 44px;
    height: 44px;
    border-radius: var(--bs-border-radius);
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .email-back-btn:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.email-detail-actions {
    display: flex;
    gap: 0.25rem;
}

.email-detail-nav {
    display: flex;
    gap: 0.25rem;
    margin-left: auto;
}

.email-detail-content {
    flex: 1;
    overflow-y: auto;
    padding: 1.5rem;
}

    .email-detail-content::-webkit-scrollbar {
        width: 6px;
    }

    .email-detail-content::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.email-detail-subject {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

    .email-detail-subject h4 {
        font-size: 1.25rem;
        font-weight: 600;
        color: var(--heading-color);
        margin: 0;
        line-height: 1.4;
    }

.email-detail-labels {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}

.email-message {
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.email-message-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-color);
}

.email-message-sender {
    display: flex;
    gap: 0.75rem;
}

    .email-message-sender img {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        object-fit: cover;
    }

.email-message-sender-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.email-message-sender-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
}

.email-message-sender-email {
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--muted-color);
    margin-left: 0.25rem;
}

.email-message-recipients {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.email-message-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.email-message-date {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.email-star-btn.starred {
    color: var(--warning-color);
}

.email-message-body {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--default-color);
}

    .email-message-body p {
        margin-bottom: 1rem;
    }

        .email-message-body p:last-child {
            margin-bottom: 0;
        }

    .email-message-body ul, .email-message-body ol {
        margin-bottom: 1rem;
        padding-left: 1.5rem;
    }

        .email-message-body ul li, .email-message-body ol li {
            margin-bottom: 0.5rem;
        }

.email-attachments {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
}

.email-attachments-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

    .email-attachments-header i {
        color: var(--muted-color);
    }

    .email-attachments-header span {
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--heading-color);
        flex: 1;
    }

.email-attachments-download {
    font-size: 0.8125rem;
    color: var(--accent-color);
    text-decoration: none;
}

    .email-attachments-download:hover {
        text-decoration: underline;
    }

.email-attachments-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.email-attachment-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
}

.email-attachment-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--bs-border-radius);
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.email-attachment-info {
    flex: 1;
    min-width: 0;
}

.email-attachment-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.email-attachment-size {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.email-attachment-actions {
    display: flex;
    gap: 0.25rem;
}

.email-attachment-btn {
    width: 32px;
    height: 32px;
    border-radius: var(--bs-border-radius);
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .email-attachment-btn:hover {
        background: var(--background-color);
        color: var(--accent-color);
    }

.email-quick-reply {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
}

    .email-quick-reply img {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        object-fit: cover;
    }

    .email-quick-reply .btn {
        flex-shrink: 0;
    }

.email-quick-reply-input {
    flex: 1;
}

    .email-quick-reply-input textarea {
        width: 100%;
        border: 1px solid var(--border-color);
        background: var(--surface-color);
        border-radius: var(--bs-border-radius);
        padding: 0.75rem;
        font-size: 0.875rem;
        color: var(--default-color);
        resize: none;
        min-height: 80px;
    }

        .email-quick-reply-input textarea:focus {
            outline: none;
            border-color: var(--accent-color);
        }

        .email-quick-reply-input textarea::placeholder {
            color: var(--muted-color);
        }

.email-compose-form .form-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--heading-color);
}

.email-compose-form .form-control {
    font-size: 0.875rem;
}

.email-compose-form textarea.form-control {
    resize: none;
}

.email-compose-attachments {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.email-compose-attachment {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    background: var(--background-color);
    border-radius: var(--bs-border-radius);
    font-size: 0.8125rem;
    color: var(--default-color);
}

    .email-compose-attachment i {
        color: var(--muted-color);
    }

.email-compose-attachment-remove {
    background: none;
    border: none;
    padding: 0;
    color: var(--muted-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .email-compose-attachment-remove:hover {
        color: var(--danger-color);
    }

.email-compose-tools {
    display: flex;
    gap: 0.25rem;
}

.email-compose-tool {
    width: 44px;
    height: 44px;
    border-radius: var(--bs-border-radius);
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .email-compose-tool:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

@media (max-width: 991.98px) {
    .email-message-meta {
        flex-wrap: wrap;
    }
}

@media (max-width: 767.98px) {
    .email-container {
        min-height: calc(100vh - 180px);
    }

    .email-list-header {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .email-search {
        order: 1;
        flex-basis: 100%;
        max-width: none;
        margin-top: 0.5rem;
    }

    .email-list-pagination {
        margin-left: 0;
    }

    .email-item-preview {
        display: block;
        -webkit-line-clamp: 1;
    }

    .email-detail-content {
        padding: 1rem;
    }

    .email-message {
        padding: 1rem;
    }

    .email-message-header {
        flex-direction: column;
        gap: 1rem;
    }

    .email-message-meta {
        width: 100%;
        justify-content: flex-start;
    }

    .email-quick-reply {
        flex-wrap: wrap;
    }

        .email-quick-reply img {
            width: 44px;
            height: 44px;
        }

        .email-quick-reply .btn {
            min-height: 44px;
            padding: 0.5rem 1rem;
        }

    .email-quick-reply-input {
        flex-basis: 100%;
        order: 2;
        margin-top: 0.5rem;
    }

        .email-quick-reply-input textarea {
            min-height: 60px;
        }
}

.email-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--background-color);
    border: none;
    border-radius: 50%;
    color: var(--muted-color);
    font-size: 1.125rem;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

    .email-sidebar-toggle:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.email-sidebar-close {
    display: none;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 44px;
    height: 44px;
    padding: 0;
    background: color-mix(in srgb, var(--default-color), transparent 95%);
    border: none;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10;
}

    .email-sidebar-close:hover {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.email-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--default-color), transparent 50%);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .email-sidebar-overlay.show {
        opacity: 1;
    }

[data-theme=dark] .email-sidebar-overlay {
    background: color-mix(in srgb, var(--default-color), transparent 30%);
}

@media (max-width: 1279.98px) {
    .email-sidebar-toggle {
        display: flex;
    }

    .email-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

        .email-sidebar-overlay.show {
            pointer-events: auto;
        }

    .email-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .email-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 280px;
        max-width: 90vw;
        height: 100vh;
        height: 100dvh;
        background: var(--surface-color);
        z-index: 1050;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        padding-top: 3.5rem;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

        .email-sidebar.show {
            transform: translateX(0);
        }

    .email-sidebar-header {
        flex-shrink: 0;
    }

    .email-nav {
        flex-shrink: 0;
    }

    .email-labels {
        display: block;
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        max-height: none;
        scrollbar-width: thin;
    }

        .email-labels::-webkit-scrollbar {
            width: 4px;
        }

        .email-labels::-webkit-scrollbar-track {
            background: var(--background-color);
        }

        .email-labels::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 2px;
        }

            .email-labels::-webkit-scrollbar-thumb:hover {
                background: var(--muted-color);
            }

    .email-storage {
        display: block;
        flex-shrink: 0;
    }

    body.email-sidebar-open {
        overflow: hidden;
    }
}

@media (max-width: 575.98px) {
    .email-container {
        border-radius: 0;
        border-left: none;
        border-right: none;
        min-height: calc(100vh - 160px);
    }

    .email-list-header {
        padding: 0.5rem 0.75rem;
    }

    .email-list-actions {
        gap: 0;
    }

    .email-action-btn {
        width: 44px;
        height: 44px;
    }

    .email-pagination-btn {
        width: 44px;
        height: 44px;
    }

    .email-pagination-info {
        font-size: 0.75rem;
    }

    .email-item {
        padding: 0.75rem;
        gap: 0.5rem;
    }

    .email-item-avatar {
        width: 36px;
        height: 36px;
        font-size: 0.75rem;
    }

    .email-item-sender {
        font-size: 0.8125rem;
    }

    .email-item-subject {
        font-size: 0.75rem;
    }

    .email-item-preview {
        font-size: 0.75rem;
    }

    .email-item-time {
        font-size: 0.6875rem;
    }

    .email-item-labels {
        display: none;
    }

    .email-detail-header {
        padding: 0.5rem 0.75rem;
        gap: 0.25rem;
    }

    .email-detail-content {
        padding: 0.75rem;
    }

    .email-detail-subject {
        flex-direction: column;
        gap: 0.5rem;
        margin-bottom: 1rem;
    }

        .email-detail-subject h4 {
            font-size: 1rem;
        }

    .email-message {
        padding: 0.75rem;
        margin-bottom: 1rem;
    }

    .email-message-header {
        margin-bottom: 1rem;
        padding-bottom: 0.75rem;
    }

    .email-message-sender img {
        width: 40px;
        height: 40px;
    }

    .email-message-sender-name {
        font-size: 0.875rem;
    }

    .email-message-sender-email {
        font-size: 0.75rem;
    }

    .email-message-body {
        font-size: 0.875rem;
    }

    .email-attachments {
        margin-top: 1rem;
        padding-top: 1rem;
    }

    .email-attachment-item {
        padding: 0.5rem;
    }

    .email-attachment-icon {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }

    .email-attachment-btn {
        width: 44px;
        height: 44px;
    }

    .email-compose-tools {
        flex-wrap: wrap;
    }

    .email-compose-tool {
        width: 44px;
        height: 44px;
    }
}

.todo-container {
    display: flex;
    height: calc(100vh - 200px);
    min-height: 500px;
    background: var(--surface-color);
    border-radius: var(--bs-border-radius-lg);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.todo-sidebar {
    width: 260px;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}

.todo-sidebar-header {
    padding: 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.todo-nav {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border-color);
}

.todo-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.todo-nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1.25rem;
    color: var(--default-color);
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
    border-left: 3px solid transparent;
}

    .todo-nav-item i {
        font-size: 1.125rem;
        width: 20px;
        text-align: center;
        color: var(--muted-color);
    }

    .todo-nav-item span:first-of-type {
        flex: 1;
    }

    .todo-nav-item:hover {
        background: var(--background-color);
    }

    .todo-nav-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
        border-left-color: var(--accent-color);
        color: var(--accent-color);
        font-weight: 500;
    }

        .todo-nav-item.active i {
            color: var(--accent-color);
        }

.todo-nav-count {
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.125rem 0.5rem;
    border-radius: 10px;
    background: var(--background-color);
    color: var(--muted-color);
}

.todo-projects {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.todo-projects-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

    .todo-projects-header span {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--muted-color);
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

.todo-projects-add {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .todo-projects-add:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.todo-projects-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.todo-project-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.5rem;
    font-size: 0.8125rem;
    color: var(--default-color);
    cursor: pointer;
    border-radius: var(--bs-border-radius);
    margin: 0 -0.5rem;
}

    .todo-project-item span:nth-child(2) {
        flex: 1;
    }

    .todo-project-item:hover {
        background: var(--background-color);
    }

    .todo-project-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 92%);
        color: var(--accent-color);
        font-weight: 500;
    }

.todo-project-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.todo-tags {
    padding: 1rem 1.25rem;
}

.todo-tags-header {
    margin-bottom: 0.75rem;
}

    .todo-tags-header span {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--muted-color);
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

.todo-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.todo-tag {
    font-size: 0.75rem;
    padding: 0.25rem 0.625rem;
    border-radius: 10px;
    background: var(--background-color);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
}

    .todo-tag:hover {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

.todo-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.todo-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.todo-header-title h5 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.todo-header-count {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.todo-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.todo-search {
    position: relative;
    width: 200px;
}

    .todo-search .form-control {
        padding-left: 2.25rem;
        background: var(--background-color);
        border-color: transparent;
        font-size: 0.875rem;
    }

        .todo-search .form-control:focus {
            background: var(--surface-color);
            border-color: var(--border-color);
        }

.todo-search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-color);
    font-size: 0.875rem;
}

.todo-filter-btn {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--bs-border-radius);
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    color: var(--muted-color);
    font-size: 0.8125rem;
    cursor: pointer;
    transition: all 0.2s;
}

    .todo-filter-btn:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.todo-view-toggle {
    display: flex;
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
    overflow: hidden;
}

.todo-view-btn {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--surface-color);
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .todo-view-btn:not(:last-child) {
        border-right: 1px solid var(--border-color);
    }

    .todo-view-btn:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

    .todo-view-btn.active {
        background: var(--accent-color);
        color: var(--contrast-color);
    }

.todo-list {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 0;
}

    .todo-list::-webkit-scrollbar {
        width: 6px;
    }

    .todo-list::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.todo-section {
    margin-bottom: 1rem;
}

.todo-section-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1.25rem;
    position: sticky;
    top: 0;
    background: var(--surface-color);
    z-index: 1;
}

    .todo-section-header h6 {
        font-size: 0.8125rem;
        font-weight: 600;
        color: var(--heading-color);
        margin: 0;
        flex: 1;
    }

.todo-section-toggle {
    width: 24px;
    height: 24px;
    border-radius: var(--bs-border-radius);
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .todo-section-toggle:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.todo-section-count {
    font-size: 0.75rem;
    color: var(--muted-color);
    background: var(--background-color);
    padding: 0.125rem 0.5rem;
    border-radius: 10px;
}

.todo-section-content {
    padding: 0.25rem 0;
}

.todo-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
    cursor: pointer;
    transition: background 0.2s;
    border-left: 3px solid transparent;
}

    .todo-item:hover {
        background: var(--background-color);
    }

    .todo-item.selected {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
        border-left-color: var(--accent-color);
    }

    .todo-item.completed .todo-item-title {
        text-decoration: line-through;
        color: var(--muted-color);
    }

    .todo-item.completed .todo-item-content {
        opacity: 0.7;
    }

.todo-item-check {
    padding-top: 0.125rem;
}

    .todo-item-check .todo-checkbox {
        display: none;
    }

        .todo-item-check .todo-checkbox + label {
            display: block;
            width: 20px;
            height: 20px;
            border: 2px solid var(--border-color-dark);
            border-radius: 50%;
            cursor: pointer;
            transition: all 0.2s;
            position: relative;
        }

            .todo-item-check .todo-checkbox + label:hover {
                border-color: var(--accent-color);
            }

            .todo-item-check .todo-checkbox + label::after {
                content: "";
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) scale(0);
                width: 10px;
                height: 10px;
                border-radius: 50%;
                background: var(--accent-color);
                transition: transform 0.2s;
            }

        .todo-item-check .todo-checkbox:checked + label {
            border-color: var(--accent-color);
            background: var(--accent-color);
        }

            .todo-item-check .todo-checkbox:checked + label::after {
                content: "";
                width: 5px;
                height: 9px;
                border: solid var(--contrast-color);
                border-width: 0 2px 2px 0;
                border-radius: 0;
                background: transparent;
                transform: translate(-50%, -60%) rotate(45deg);
            }

.todo-item-content {
    flex: 1;
    min-width: 0;
}

.todo-item-title {
    font-size: 0.9375rem;
    color: var(--default-color);
    margin-bottom: 0.375rem;
    line-height: 1.4;
}

.todo-item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.todo-item-project {
    font-size: 0.75rem;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    background: color-mix(in srgb, var(--project-color, var(--accent-color)), transparent 85%);
    color: var(--project-color, var(--accent-color));
    font-weight: 500;
}

.todo-item-due {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

    .todo-item-due i {
        font-size: 0.6875rem;
    }

.todo-item-tag {
    font-size: 0.6875rem;
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    background: var(--background-color);
    color: var(--muted-color);
}

.todo-item-completed-date {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.todo-item-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.todo-item-star {
    background: none;
    border: none;
    padding: 0;
    color: var(--muted-color);
    cursor: pointer;
    font-size: 1rem;
    opacity: 0;
    transition: all 0.2s;
}

    .todo-item-star:hover {
        color: var(--warning-color);
    }

    .todo-item-star.starred {
        color: var(--warning-color);
        opacity: 1;
    }

.todo-item:hover .todo-item-star {
    opacity: 1;
}

.todo-item-priority {
    font-size: 0.6875rem;
    font-weight: 500;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    text-transform: uppercase;
}

    .todo-item-priority.high {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

    .todo-item-priority.medium {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .todo-item-priority.low {
        background: var(--success-color-light);
        color: var(--success-color);
    }

.todo-item-more {
    width: 28px;
    height: 28px;
    border-radius: var(--bs-border-radius);
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: all 0.2s;
}

    .todo-item-more:hover {
        background: var(--background-color);
        color: var(--default-color);
    }

.todo-item:hover .todo-item-more {
    opacity: 1;
}

.todo-quick-add {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--border-color);
    background: var(--surface-color);
}

.todo-quick-add-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: var(--bs-border-radius);
    border: 1px dashed var(--border-color);
    background: none;
    color: var(--muted-color);
    font-size: 0.875rem;
    width: 100%;
    cursor: pointer;
    transition: all 0.2s;
}

    .todo-quick-add-btn:hover {
        border-color: var(--accent-color);
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.todo-quick-add-form .form-control {
    margin-bottom: 0.75rem;
    font-size: 0.9375rem;
}

.todo-quick-add-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.todo-color-picker {
    display: flex;
    gap: 0.5rem;
}

.todo-color-option {
    cursor: pointer;
}

    .todo-color-option input {
        display: none;
    }

        .todo-color-option input:checked + span {
            transform: scale(1.1);
            box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 70%);
        }

    .todo-color-option span {
        display: block;
        width: 28px;
        height: 28px;
        border-radius: 50%;
        transition: all 0.2s;
    }

        .todo-color-option span:hover {
            transform: scale(1.1);
        }

.todo-view-task {
    padding: 0.5rem 0;
}

.todo-view-header {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.todo-view-check {
    padding-top: 0.25rem;
}

.todo-view-title-wrapper {
    flex: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.todo-view-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
    line-height: 1.4;
}

.todo-view-star {
    background: none;
    border: none;
    padding: 0.25rem;
    color: var(--muted-color);
    cursor: pointer;
    font-size: 1.25rem;
    transition: color 0.2s;
}

    .todo-view-star:hover {
        color: var(--warning-color);
    }

    .todo-view-star.starred {
        color: var(--warning-color);
    }

.todo-view-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem;
    background: var(--background-color);
    border-radius: var(--bs-border-radius);
    margin-bottom: 1.5rem;
}

.todo-view-meta-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--default-color);
}

    .todo-view-meta-item i {
        color: var(--muted-color);
    }

.todo-view-project {
    font-size: 0.75rem;
    padding: 0.25rem 0.625rem;
    border-radius: 4px;
    background: color-mix(in srgb, var(--project-color, var(--accent-color)), transparent 85%);
    color: var(--project-color, var(--accent-color));
    font-weight: 500;
}

.todo-view-section {
    margin-bottom: 1.5rem;
}

    .todo-view-section h6 {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--muted-color);
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin-bottom: 0.75rem;
    }

    .todo-view-section p {
        font-size: 0.9375rem;
        color: var(--default-color);
        line-height: 1.6;
        margin: 0;
    }

.todo-view-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.todo-subtasks {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.todo-subtask {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

    .todo-subtask label {
        font-size: 0.9375rem;
        color: var(--default-color);
        cursor: pointer;
    }

    .todo-subtask input:checked + label {
        text-decoration: line-through;
        color: var(--muted-color);
    }

.todo-subtask-check {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--accent-color);
}

.todo-activity {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.todo-activity-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

    .todo-activity-item img {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        object-fit: cover;
    }

.todo-activity-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.todo-activity-text {
    font-size: 0.875rem;
    color: var(--default-color);
}

    .todo-activity-text strong {
        font-weight: 600;
    }

.todo-activity-time {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.todo-edit-subtasks {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.todo-edit-subtask {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

    .todo-edit-subtask .form-control {
        flex: 1;
    }

.todo-edit-subtask-remove {
    width: 32px;
    height: 32px;
    border-radius: var(--bs-border-radius);
    border: none;
    background: none;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

    .todo-edit-subtask-remove:hover {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

.todo-list.board-view {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    padding: 1rem 1.25rem;
}

    .todo-list.board-view .todo-section {
        display: contents;
    }

    .todo-list.board-view .todo-section-header {
        display: none;
    }

    .todo-list.board-view .todo-section-content {
        display: contents;
        padding: 0;
    }

    .todo-list.board-view .todo-item {
        flex-direction: column;
        align-items: stretch;
        padding: 1rem;
        background: var(--surface-color);
        border: 1px solid var(--border-color);
        border-radius: var(--bs-border-radius-lg);
        border-left: 4px solid var(--accent-color);
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
        transition: all 0.2s;
    }

        .todo-list.board-view .todo-item:hover {
            background: var(--surface-color);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            transform: translateY(-2px);
        }

        .todo-list.board-view .todo-item.selected {
            border-color: var(--accent-color);
            box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-color), transparent 70%);
        }

        .todo-list.board-view .todo-item[data-priority=high] {
            border-left-color: var(--danger-color);
        }

        .todo-list.board-view .todo-item[data-priority=medium] {
            border-left-color: var(--warning-color);
        }

        .todo-list.board-view .todo-item[data-priority=low] {
            border-left-color: var(--success-color);
        }

    .todo-list.board-view .todo-item-check {
        position: absolute;
        top: 1rem;
        right: 1rem;
        padding-top: 0;
    }

    .todo-list.board-view .todo-item-content {
        order: 1;
        padding-right: 2rem;
    }

    .todo-list.board-view .todo-item-title {
        font-size: 0.9375rem;
        font-weight: 500;
        margin-bottom: 0.75rem;
        line-height: 1.4;
    }

    .todo-list.board-view .todo-item-meta {
        flex-wrap: wrap;
        margin-bottom: 0.75rem;
    }

    .todo-list.board-view .todo-item-actions {
        order: 2;
        margin-top: 0.5rem;
        padding-top: 0.75rem;
        border-top: 1px solid var(--border-color);
        justify-content: space-between;
    }

        .todo-list.board-view .todo-item-actions .todo-item-star,
        .todo-list.board-view .todo-item-actions .todo-item-more {
            opacity: 1;
        }

    .todo-list.board-view .todo-item-priority {
        margin-left: 0;
    }

    .todo-list.board-view .todo-item {
        position: relative;
    }

.todo-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--background-color);
    border: none;
    border-radius: 50%;
    color: var(--muted-color);
    font-size: 1.125rem;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

    .todo-sidebar-toggle:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.todo-sidebar-close {
    display: none;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 44px;
    height: 44px;
    padding: 0;
    background: color-mix(in srgb, var(--default-color), transparent 95%);
    border: none;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10;
}

    .todo-sidebar-close:hover {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.todo-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--default-color), transparent 50%);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .todo-sidebar-overlay.show {
        opacity: 1;
    }

[data-theme=dark] .todo-sidebar-overlay {
    background: color-mix(in srgb, var(--default-color), transparent 30%);
}

@media (max-width: 1279.98px) {
    .todo-sidebar-toggle {
        display: flex;
    }

    .todo-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

        .todo-sidebar-overlay.show {
            pointer-events: auto;
        }

    .todo-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .todo-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 280px;
        max-width: 90vw;
        height: 100vh;
        height: 100dvh;
        background: var(--surface-color);
        z-index: 1050;
        display: flex;
        flex-direction: column;
        overflow-y: auto;
        padding-top: 3.5rem;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

        .todo-sidebar.show {
            transform: translateX(0);
        }

    body.todo-sidebar-open {
        overflow: hidden;
    }
}

@media (max-width: 991.98px) {
    .todo-search {
        width: 150px;
    }
}

@media (max-width: 767.98px) {
    .todo-container {
        min-height: calc(100vh - 180px);
    }

    .todo-header {
        flex-wrap: wrap;
        gap: 0.75rem;
        padding: 1rem;
    }

    .todo-header-title {
        flex: 1;
    }

        .todo-header-title h5 {
            font-size: 1rem;
        }

    .todo-header-actions {
        width: 100%;
        gap: 0.5rem;
    }

    .todo-search {
        flex: 1;
        width: auto;
        min-width: 100px;
    }

        .todo-search .form-control {
            min-height: 44px;
        }

    .todo-filter-btn {
        min-height: 44px;
        min-width: 44px;
        padding: 0.5rem;
    }

        .todo-filter-btn span {
            display: none;
        }

    .todo-view-toggle {
        flex-shrink: 0;
    }

    .todo-view-btn {
        width: 44px;
        height: 44px;
    }

    .todo-list {
        flex: 1;
        min-height: 300px;
    }

    .todo-section-header {
        padding: 0.5rem 1rem;
    }

        .todo-section-header h6 {
            font-size: 0.75rem;
        }

    .todo-section-toggle {
        width: 36px;
        height: 36px;
    }

    .todo-item {
        padding: 0.875rem 1rem;
        gap: 0.625rem;
    }

    .todo-item-check .todo-checkbox + label {
        width: 24px;
        height: 24px;
    }

    .todo-item-title {
        font-size: 0.875rem;
    }

    .todo-item-meta {
        gap: 0.375rem;
    }

    .todo-item-actions {
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .todo-item-priority {
        display: none;
    }

    .todo-item-star {
        opacity: 1;
        width: 44px;
        height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .todo-item-more {
        opacity: 1;
        width: 44px;
        height: 44px;
    }

    .todo-quick-add {
        padding: 0.875rem 1rem;
    }

    .todo-quick-add-btn {
        min-height: 44px;
        padding: 0.875rem 1rem;
    }

    .todo-list.board-view {
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
        gap: 0.75rem;
        padding: 0.75rem 1rem;
    }

        .todo-list.board-view .todo-item {
            padding: 0.875rem;
        }

        .todo-list.board-view .todo-item-check {
            top: 0.875rem;
            right: 0.875rem;
        }

        .todo-list.board-view .todo-item-content {
            padding-right: 2.5rem;
        }
}

@media (max-width: 575.98px) {
    .todo-container {
        min-height: calc(100vh - 160px);
        border-radius: var(--bs-border-radius);
    }

    .todo-header {
        padding: 0.75rem;
        gap: 0.5rem;
    }

    .todo-header-title h5 {
        font-size: 0.9375rem;
    }

    .todo-header-count {
        font-size: 0.75rem;
    }

    .todo-header-actions {
        gap: 0.375rem;
    }

    .todo-search {
        min-width: 0;
        flex: 1;
    }

        .todo-search .form-control {
            font-size: 0.8125rem;
            padding-left: 2rem;
        }

    .todo-search-icon {
        left: 0.625rem;
        font-size: 0.8125rem;
    }

    .todo-filter-btn {
        min-width: 44px;
        padding: 0.5rem;
    }

        .todo-filter-btn i {
            font-size: 1rem;
        }

        .todo-filter-btn span {
            display: none;
        }

    .todo-view-btn {
        width: 40px;
        height: 40px;
    }

    .todo-list {
        padding: 0.5rem 0;
        min-height: 250px;
        max-height: calc(100vh - 340px);
    }

    .todo-section {
        margin-bottom: 0.75rem;
    }

    .todo-section-header {
        padding: 0.375rem 0.75rem;
    }

        .todo-section-header h6 {
            font-size: 0.6875rem;
        }

    .todo-section-toggle {
        width: 32px;
        height: 32px;
    }

    .todo-section-count {
        font-size: 0.6875rem;
        padding: 0.125rem 0.375rem;
    }

    .todo-item {
        padding: 0.75rem;
        gap: 0.5rem;
        border-left-width: 2px;
    }

    .todo-item-check {
        padding-top: 0;
    }

        .todo-item-check .todo-checkbox + label {
            width: 28px;
            height: 28px;
        }

            .todo-item-check .todo-checkbox + label::after {
                width: 12px;
                height: 12px;
            }

        .todo-item-check .todo-checkbox:checked + label::after {
            width: 6px;
            height: 10px;
        }

    .todo-item-title {
        font-size: 0.8125rem;
        margin-bottom: 0.25rem;
        line-height: 1.3;
    }

    .todo-item-meta {
        gap: 0.25rem;
        flex-wrap: wrap;
    }

    .todo-item-project {
        font-size: 0.6875rem;
        padding: 0.125rem 0.375rem;
    }

    .todo-item-due {
        font-size: 0.6875rem;
    }

        .todo-item-due i {
            font-size: 0.625rem;
        }

    .todo-item-tag {
        font-size: 0.625rem;
        padding: 0.125rem 0.25rem;
    }

    .todo-item-actions {
        gap: 0.25rem;
        margin-top: 0.25rem;
    }

    .todo-item-star {
        width: 40px;
        height: 40px;
        font-size: 1.125rem;
    }

    .todo-item-more {
        width: 40px;
        height: 40px;
    }

    .todo-quick-add {
        padding: 0.75rem;
    }

    .todo-quick-add-btn {
        padding: 0.75rem;
        font-size: 0.8125rem;
        min-height: 44px;
    }

    .todo-quick-add-form .form-control {
        font-size: 0.875rem;
        min-height: 44px;
    }

    .todo-quick-add-actions {
        gap: 0.375rem;
    }

        .todo-quick-add-actions .btn {
            min-height: 44px;
            padding: 0.5rem 1rem;
            font-size: 0.8125rem;
        }

    .todo-list.board-view {
        grid-template-columns: 1fr;
        gap: 0.5rem;
        padding: 0.5rem 0.75rem;
    }

        .todo-list.board-view .todo-item {
            padding: 0.75rem;
            border-left-width: 3px;
        }

        .todo-list.board-view .todo-item-check {
            top: 0.75rem;
            right: 0.75rem;
        }

            .todo-list.board-view .todo-item-check .todo-checkbox + label {
                width: 24px;
                height: 24px;
            }

        .todo-list.board-view .todo-item-content {
            padding-right: 2rem;
        }

        .todo-list.board-view .todo-item-title {
            font-size: 0.8125rem;
            margin-bottom: 0.5rem;
        }

        .todo-list.board-view .todo-item-meta {
            margin-bottom: 0.5rem;
        }

        .todo-list.board-view .todo-item-actions {
            padding-top: 0.5rem;
            gap: 0.375rem;
        }

            .todo-list.board-view .todo-item-actions .todo-item-star,
            .todo-list.board-view .todo-item-actions .todo-item-more {
                width: 36px;
                height: 36px;
            }

    .todo-view-task {
        padding: 0.25rem 0;
    }

    .todo-view-header {
        gap: 0.5rem;
        margin-bottom: 1rem;
    }

    .todo-view-title {
        font-size: 1.0625rem;
    }

    .todo-view-star {
        padding: 0.5rem;
        font-size: 1.125rem;
    }

    .todo-view-meta {
        gap: 0.625rem;
        padding: 0.75rem;
        margin-bottom: 1rem;
    }

    .todo-view-meta-item {
        font-size: 0.8125rem;
    }

    .todo-view-section {
        margin-bottom: 1rem;
    }

        .todo-view-section h6 {
            font-size: 0.6875rem;
            margin-bottom: 0.5rem;
        }

        .todo-view-section p {
            font-size: 0.875rem;
        }

    .todo-color-option span {
        width: 36px;
        height: 36px;
    }

    .todo-subtask-check {
        width: 24px;
        height: 24px;
    }

    .todo-subtask label {
        font-size: 0.875rem;
    }

    .todo-edit-subtask-remove {
        width: 44px;
        height: 44px;
    }

    .todo-activity-item {
        gap: 0.5rem;
    }

        .todo-activity-item img {
            width: 28px;
            height: 28px;
        }

    .todo-activity-text {
        font-size: 0.8125rem;
    }

    .todo-activity-time {
        font-size: 0.6875rem;
    }
}

.support-container {
    display: flex;
    min-height: calc(100vh - 200px);
    background: var(--surface-color);
    border-radius: var(--bs-border-radius-lg);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.support-sidebar {
    width: 260px;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    overflow-y: auto;
}

.support-sidebar-header {
    padding: 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.support-nav,
.support-status-nav,
.support-categories {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border-color);
}

.support-nav-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.25rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
}

.support-nav-add {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    border: none;
    background: none;
    color: var(--muted-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

    .support-nav-add:hover {
        background: var(--background-color);
        color: var(--accent-color);
    }

.support-nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1.25rem;
    color: var(--default-color);
    text-decoration: none;
    font-size: 0.875rem;
    transition: all 0.2s;
}

    .support-nav-item > i {
        font-size: 1.125rem;
        color: var(--muted-color);
        width: 20px;
        text-align: center;
        flex-shrink: 0;
    }

    .support-nav-item > span:not(.badge):not(.support-status-dot) {
        flex: 1;
        min-width: 0;
    }

    .support-nav-item .badge {
        background: var(--background-color);
        color: var(--muted-color);
        font-weight: 500;
        font-size: 0.75rem;
        padding: 0.25rem 0.5rem;
        flex-shrink: 0;
        margin-left: auto;
    }

    .support-nav-item:hover {
        background: var(--background-color);
        color: var(--heading-color);
    }

        .support-nav-item:hover > i {
            color: var(--accent-color);
        }

    .support-nav-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

        .support-nav-item.active > i {
            color: var(--accent-color);
        }

        .support-nav-item.active .badge {
            background: color-mix(in srgb, var(--accent-color), transparent 80%);
            color: var(--accent-color);
        }

.support-status-dot {
    width: 10px;
    height: 10px;
    min-width: 10px;
    max-width: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-block;
}

    .support-status-dot.open {
        background: var(--info-color);
    }

    .support-status-dot.in-progress {
        background: var(--accent-color);
    }

    .support-status-dot.pending {
        background: var(--warning-color);
    }

    .support-status-dot.resolved {
        background: var(--success-color);
    }

    .support-status-dot.closed {
        background: var(--muted-color);
    }

.support-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

.support-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

.support-search {
    flex: 1;
    position: relative;
    max-width: 400px;
}

    .support-search i {
        position: absolute;
        left: 0.875rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--muted-color);
    }

    .support-search .form-control {
        padding-left: 2.5rem;
        background: var(--background-color);
        border-color: transparent;
    }

        .support-search .form-control:focus {
            background: var(--surface-color);
            border-color: var(--accent-color);
        }

.support-header-actions {
    display: flex;
    gap: 0.5rem;
}

.support-tickets {
    flex: 1;
    overflow-y: auto;
    padding: 0;
}

    .support-tickets::-webkit-scrollbar {
        width: 6px;
    }

    .support-tickets::-webkit-scrollbar-thumb {
        background: var(--border-color);
        border-radius: 4px;
    }

.ticket-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.25rem;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    transition: all 0.2s;
}

    .ticket-item:hover {
        background: var(--background-color);
    }

    .ticket-item:last-child {
        border-bottom: none;
    }

.ticket-checkbox {
    padding-top: 0.25rem;
}

.ticket-content {
    flex: 1;
    min-width: 0;
}

.ticket-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}

.ticket-id {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted-color);
    font-family: monospace;
}

.ticket-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 0.375rem;
    line-height: 1.4;
}

.ticket-item:hover .ticket-title {
    color: var(--accent-color);
}

.ticket-excerpt {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin: 0 0 0.75rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ticket-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    font-size: 0.75rem;
    color: var(--muted-color);
}

.ticket-user {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

    .ticket-user img {
        width: 24px;
        height: 24px;
        border-radius: 50%;
        object-fit: cover;
    }

    .ticket-user span {
        font-weight: 500;
        color: var(--default-color);
    }

.ticket-user-initial {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.625rem;
    font-weight: 600;
}

.ticket-category,
.ticket-time,
.ticket-replies {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.ticket-assignee {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
}

    .ticket-assignee img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .ticket-assignee.unassigned {
        background: var(--background-color);
        border: 2px dashed var(--border-color);
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--muted-color);
    }

        .ticket-assignee.unassigned i {
            font-size: 1rem;
        }

.priority-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1875rem 0.5rem;
    border-radius: 20px;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

    .priority-badge.urgent {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

    .priority-badge.high {
        background: var(--warning-color-light);
        color: color-mix(in srgb, var(--warning-color), black 15%);
    }

    .priority-badge.medium {
        background: var(--info-color-light);
        color: var(--info-color);
    }

    .priority-badge.low {
        background: var(--success-color-light);
        color: var(--success-color);
    }

.ticket-status {
    display: inline-flex;
    align-items: center;
    padding: 0.1875rem 0.5rem;
    border-radius: 20px;
    font-size: 0.6875rem;
    font-weight: 600;
}

    .ticket-status.open {
        background: var(--info-color-light);
        color: var(--info-color);
    }

    .ticket-status.in-progress {
        background: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .ticket-status.pending {
        background: var(--warning-color-light);
        color: color-mix(in srgb, var(--warning-color), black 15%);
    }

    .ticket-status.resolved {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .ticket-status.closed {
        background: var(--background-color);
        color: var(--muted-color);
    }

.support-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--border-color);
}

.support-pagination-info {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.support-attachment-zone {
    border: 2px dashed var(--border-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 2rem;
    text-align: center;
    transition: all 0.2s;
}

    .support-attachment-zone:hover, .support-attachment-zone.highlight {
        border-color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.support-attachment-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    color: var(--muted-color);
}

    .support-attachment-label i {
        font-size: 2rem;
        color: var(--accent-color);
    }

    .support-attachment-label span {
        font-weight: 500;
        color: var(--default-color);
    }

    .support-attachment-label small {
        font-size: 0.75rem;
    }

.ticket-detail-header-info {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ticket-detail {
    padding: 0;
}

.ticket-detail-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0 0 1.5rem;
    line-height: 1.4;
}

.ticket-message {
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 1.25rem;
    margin-bottom: 1rem;
}

    .ticket-message.original {
        background: var(--surface-color);
        border: 1px solid var(--border-color);
    }

    .ticket-message.staff {
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
        border-left: 3px solid var(--accent-color);
    }

.ticket-message-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.ticket-message-user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

    .ticket-message-user img {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        object-fit: cover;
    }

    .ticket-message-user strong {
        display: block;
        font-size: 0.9375rem;
        color: var(--heading-color);
    }

    .ticket-message-user .badge {
        font-size: 0.6875rem;
        margin-left: 0.5rem;
    }

.ticket-message-time {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.ticket-message-body {
    font-size: 0.875rem;
    color: var(--default-color);
    line-height: 1.6;
}

    .ticket-message-body p {
        margin: 0 0 0.75rem;
    }

        .ticket-message-body p:last-child {
            margin-bottom: 0;
        }

    .ticket-message-body ul,
    .ticket-message-body ol {
        margin: 0.75rem 0;
        padding-left: 1.5rem;
    }

        .ticket-message-body ul li,
        .ticket-message-body ol li {
            margin-bottom: 0.375rem;
        }

.ticket-message-attachments {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ticket-attachment {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--bs-border-radius);
    font-size: 0.8125rem;
    color: var(--default-color);
    cursor: pointer;
    transition: all 0.2s;
}

    .ticket-attachment i {
        color: var(--accent-color);
    }

    .ticket-attachment small {
        color: var(--muted-color);
    }

    .ticket-attachment:hover {
        border-color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.ticket-reply-form {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
}

    .ticket-reply-form h6 {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
        margin-bottom: 1rem;
    }

.ticket-reply-editor .form-control {
    border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0;
    border-bottom: none;
    resize: none;
}

    .ticket-reply-editor .form-control:focus {
        box-shadow: none;
        border-color: var(--accent-color);
    }

        .ticket-reply-editor .form-control:focus + .ticket-reply-actions {
            border-color: var(--accent-color);
        }

.ticket-reply-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem;
    background: var(--background-color);
    border: 1px solid var(--border-color);
    border-radius: 0 0 var(--bs-border-radius-lg) var(--bs-border-radius-lg);
}

.ticket-reply-attachments {
    display: flex;
    gap: 0.25rem;
}

.ticket-detail-sidebar {
    background: var(--background-color);
    border-radius: var(--bs-border-radius-lg);
    padding: 1.25rem;
}

.ticket-detail-section {
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--border-color);
}

    .ticket-detail-section:last-child {
        padding-bottom: 0;
        margin-bottom: 0;
        border-bottom: none;
    }

.ticket-detail-section-title {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted-color);
    margin-bottom: 1rem;
}

.ticket-detail-requester {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

    .ticket-detail-requester img {
        width: 48px;
        height: 48px;
        border-radius: 50%;
        object-fit: cover;
    }

    .ticket-detail-requester strong {
        display: block;
        font-size: 0.9375rem;
        color: var(--heading-color);
    }

    .ticket-detail-requester span {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.ticket-detail-requester-stats {
    display: flex;
    gap: 1.5rem;
}

    .ticket-detail-requester-stats .stat {
        display: flex;
        flex-direction: column;
    }

    .ticket-detail-requester-stats .stat-value {
        font-size: 1.25rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .ticket-detail-requester-stats .stat-label {
        font-size: 0.6875rem;
        color: var(--muted-color);
        text-transform: uppercase;
        letter-spacing: 0.02em;
    }

.ticket-detail-assignee {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

    .ticket-detail-assignee img {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        object-fit: cover;
    }

    .ticket-detail-assignee div {
        flex: 1;
    }

        .ticket-detail-assignee div strong {
            display: block;
            font-size: 0.875rem;
            color: var(--heading-color);
        }

        .ticket-detail-assignee div span {
            font-size: 0.75rem;
            color: var(--muted-color);
        }

    .ticket-detail-assignee .btn-link {
        font-size: 0.75rem;
        padding: 0;
        text-decoration: none;
    }

        .ticket-detail-assignee .btn-link:hover {
            text-decoration: underline;
        }

.ticket-detail-info-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ticket-detail-info-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

    .ticket-detail-info-item .label {
        font-size: 0.8125rem;
        color: var(--muted-color);
    }

    .ticket-detail-info-item .value {
        font-size: 0.8125rem;
        color: var(--default-color);
        font-weight: 500;
    }

.ticket-detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ticket-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    font-size: 0.75rem;
    color: var(--default-color);
}

.ticket-tag-add {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px dashed var(--border-color);
    background: none;
    color: var(--muted-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

    .ticket-tag-add:hover {
        border-color: var(--accent-color);
        color: var(--accent-color);
    }

.ticket-activity {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ticket-activity-item {
    display: flex;
    gap: 0.75rem;
    font-size: 0.8125rem;
}

    .ticket-activity-item i {
        font-size: 1rem;
        margin-top: 0.125rem;
    }

    .ticket-activity-item div {
        flex: 1;
    }

        .ticket-activity-item div span {
            display: block;
            color: var(--default-color);
            line-height: 1.4;
        }

        .ticket-activity-item div small {
            font-size: 0.6875rem;
            color: var(--muted-color);
        }

.support-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--background-color);
    border: none;
    border-radius: 50%;
    color: var(--muted-color);
    font-size: 1.125rem;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

    .support-sidebar-toggle:hover {
        background: var(--border-color);
        color: var(--default-color);
    }

.support-sidebar-close {
    display: none;
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 44px;
    height: 44px;
    padding: 0;
    background: color-mix(in srgb, var(--default-color), transparent 95%);
    border: none;
    border-radius: var(--bs-border-radius);
    color: var(--muted-color);
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10;
}

    .support-sidebar-close:hover {
        background: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.support-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--default-color), transparent 50%);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.3s ease;
}

    .support-sidebar-overlay.show {
        opacity: 1;
    }

[data-theme=dark] .support-sidebar-overlay {
    background: color-mix(in srgb, var(--default-color), transparent 30%);
}

@media (max-width: 1279.98px) {
    .support-sidebar-toggle {
        display: flex;
    }

    .support-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

        .support-sidebar-overlay.show {
            pointer-events: auto;
        }

    .support-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .support-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 280px;
        max-width: 90vw;
        height: 100vh;
        height: 100dvh;
        background: var(--surface-color);
        z-index: 1050;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        padding-top: 3.5rem;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

        .support-sidebar.show {
            transform: translateX(0);
        }

    .support-sidebar-header {
        flex-shrink: 0;
    }

    .support-nav,
    .support-status-nav,
    .support-categories {
        flex-shrink: 0;
    }

    .support-sidebar {
        overflow-y: auto;
        scrollbar-width: thin;
    }

        .support-sidebar::-webkit-scrollbar {
            width: 4px;
        }

        .support-sidebar::-webkit-scrollbar-track {
            background: var(--background-color);
        }

        .support-sidebar::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 2px;
        }

            .support-sidebar::-webkit-scrollbar-thumb:hover {
                background: var(--muted-color);
            }

    body.support-sidebar-open {
        overflow: hidden;
    }
}

@media (max-width: 1199.98px) {
    .ticket-detail .row {
        flex-direction: column;
    }

    .ticket-detail-sidebar {
        margin-top: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .support-container {
        flex-direction: column;
        min-height: auto;
    }

    .support-nav-item {
        min-height: 44px;
        padding: 0.75rem 1.25rem;
    }

    .support-nav-add {
        width: 44px;
        height: 44px;
    }

    .support-header {
        flex-wrap: wrap;
        padding: 1rem;
        gap: 0.75rem;
    }

        .support-header .support-search {
            order: 3;
            width: 100%;
            max-width: none;
            margin-top: 0;
        }

    .support-header-actions {
        gap: 0.5rem;
    }

        .support-header-actions .btn {
            min-height: 44px;
            padding: 0.5rem 0.75rem;
        }

    .ticket-item {
        flex-wrap: wrap;
        padding: 1rem;
        gap: 0.75rem;
    }

    .ticket-checkbox .form-check-input {
        width: 20px;
        height: 20px;
    }

    .ticket-assignee {
        order: -1;
        margin-left: auto;
        width: 44px;
        height: 44px;
    }

    .ticket-content {
        width: 100%;
        order: 1;
    }

    .ticket-header {
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .ticket-meta {
        gap: 0.5rem 0.75rem;
    }

    .support-pagination {
        flex-direction: column;
        gap: 0.75rem;
        text-align: center;
        padding: 1rem;
    }

        .support-pagination .pagination {
            justify-content: center;
        }

            .support-pagination .pagination .page-link {
                min-width: 44px;
                min-height: 44px;
                display: flex;
                align-items: center;
                justify-content: center;
            }

    .ticket-message-user {
        flex-wrap: wrap;
    }

        .ticket-message-user .badge {
            margin-left: 0;
        }

    .ticket-message {
        padding: 1rem;
    }

    .ticket-reply-actions {
        flex-direction: column;
        gap: 0.75rem;
    }

        .ticket-reply-actions .d-flex {
            width: 100%;
            justify-content: flex-end;
        }

        .ticket-reply-actions .btn {
            min-height: 44px;
        }

    .ticket-reply-attachments .btn {
        width: 44px;
        height: 44px;
    }

    .support-attachment-zone {
        padding: 1.5rem 1rem;
        min-height: 120px;
    }
}

@media (max-width: 575.98px) {
    .support-container {
        border-radius: var(--bs-border-radius);
    }

    .support-header {
        padding: 0.75rem;
    }

        .support-header .btn {
            font-size: 0.8125rem;
        }

    .support-search .form-control {
        min-height: 44px;
        font-size: 0.875rem;
    }

    .ticket-item {
        padding: 0.875rem;
    }

    .ticket-id {
        font-size: 0.6875rem;
    }

    .ticket-title {
        font-size: 0.875rem;
        line-height: 1.3;
    }

    .ticket-excerpt {
        font-size: 0.75rem;
        -webkit-line-clamp: 2;
        margin-bottom: 0.5rem;
    }

    .ticket-meta {
        font-size: 0.6875rem;
        gap: 0.375rem 0.5rem;
    }

    .ticket-user img {
        width: 20px;
        height: 20px;
    }

    .ticket-user span {
        font-size: 0.75rem;
    }

    .ticket-user-initial {
        width: 20px;
        height: 20px;
        font-size: 0.5rem;
    }

    .priority-badge,
    .ticket-status {
        font-size: 0.625rem;
        padding: 0.125rem 0.375rem;
    }

    .support-pagination {
        padding: 0.75rem;
    }

    .support-pagination-info {
        font-size: 0.75rem;
    }

    .ticket-detail-title {
        font-size: 1rem;
        line-height: 1.3;
    }

    .ticket-message {
        padding: 0.875rem;
        margin-bottom: 0.75rem;
    }

    .ticket-message-user {
        gap: 0.5rem;
    }

        .ticket-message-user img {
            width: 32px;
            height: 32px;
        }

        .ticket-message-user strong {
            font-size: 0.8125rem;
        }

    .ticket-message-body {
        font-size: 0.8125rem;
    }

        .ticket-message-body p {
            margin-bottom: 0.5rem;
        }

        .ticket-message-body ul, .ticket-message-body ol {
            padding-left: 1.25rem;
        }

            .ticket-message-body ul li, .ticket-message-body ol li {
                margin-bottom: 0.25rem;
            }

    .ticket-attachment {
        padding: 0.375rem 0.5rem;
        font-size: 0.75rem;
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .ticket-reply-form {
        margin-top: 1rem;
        padding-top: 1rem;
    }

        .ticket-reply-form h6 {
            font-size: 0.8125rem;
        }

    .ticket-reply-editor .form-control {
        font-size: 0.875rem;
        min-height: 100px;
    }

    .ticket-reply-actions {
        padding: 0.5rem;
    }

    .ticket-detail-sidebar {
        padding: 1rem;
    }

    .ticket-detail-section {
        padding-bottom: 1rem;
        margin-bottom: 1rem;
    }

    .ticket-detail-section-title {
        font-size: 0.6875rem;
        margin-bottom: 0.75rem;
    }

    .ticket-detail-requester {
        gap: 0.5rem;
        margin-bottom: 0.75rem;
    }

        .ticket-detail-requester img {
            width: 40px;
            height: 40px;
        }

        .ticket-detail-requester strong {
            font-size: 0.8125rem;
        }

        .ticket-detail-requester span {
            font-size: 0.6875rem;
        }

    .ticket-detail-requester-stats {
        gap: 1rem;
    }

        .ticket-detail-requester-stats .stat-value {
            font-size: 1rem;
        }

        .ticket-detail-requester-stats .stat-label {
            font-size: 0.625rem;
        }

    .ticket-detail-assignee {
        gap: 0.5rem;
    }

        .ticket-detail-assignee img {
            width: 32px;
            height: 32px;
        }

        .ticket-detail-assignee div strong {
            font-size: 0.8125rem;
        }

        .ticket-detail-assignee div span {
            font-size: 0.6875rem;
        }

    .ticket-detail-info-item .label, .ticket-detail-info-item .value {
        font-size: 0.75rem;
    }

    .ticket-tag {
        font-size: 0.6875rem;
        padding: 0.1875rem 0.5rem;
    }

    .ticket-tag-add {
        width: 44px;
        height: 28px;
        border-radius: 14px;
    }

    .ticket-activity-item {
        font-size: 0.75rem;
    }

        .ticket-activity-item i {
            font-size: 0.875rem;
        }

        .ticket-activity-item small {
            font-size: 0.625rem;
        }
}
/*--------------------------------------------------------------
# Widget Cards Page Styles
--------------------------------------------------------------*/
/* Blog / Article Cards */
.widget-blog-card {
    overflow: hidden;
}

.widget-blog-image {
    position: relative;
    height: 180px;
    overflow: hidden;
}

    .widget-blog-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform var(--transition-base);
    }

    .widget-blog-image:hover img {
        transform: scale(1.05);
    }

.widget-blog-read-time {
    position: absolute;
    bottom: var(--spacing-md);
    right: var(--spacing-md);
    background: var(--accent-color);
    color: var(--contrast-color);
    padding: 4px 10px;
    border-radius: var(--radius-full);
    font-size: 0.6875rem;
    font-weight: 500;
}

.widget-blog-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-sm);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.widget-blog-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    font-size: 0.75rem;
    color: var(--muted-color);
}

    .widget-blog-meta span {
        display: flex;
        align-items: center;
        gap: 4px;
    }

    .widget-blog-meta i {
        font-size: 0.8125rem;
    }

/* Product Cards */
.widget-product-card {
    overflow: hidden;
}

.widget-product-image {
    position: relative;
    height: 200px;
    background: var(--background-color);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

    .widget-product-image img {
        max-width: 80%;
        max-height: 80%;
        object-fit: contain;
        transition: transform var(--transition-base);
    }

    .widget-product-image:hover img {
        transform: scale(1.05);
    }

.widget-product-wishlist {
    position: absolute;
    bottom: var(--spacing-md);
    right: var(--spacing-md);
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    background: var(--surface-color);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted-color);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

    .widget-product-wishlist:hover {
        color: var(--danger-color);
    }

    .widget-product-wishlist.active {
        color: var(--danger-color);
    }

.widget-product-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.widget-product-price {
    margin-bottom: var(--spacing-xs);
}

    .widget-product-price .current-price {
        font-size: 1rem;
        font-weight: 700;
        color: var(--heading-color);
    }

    .widget-product-price .original-price {
        font-size: 0.8125rem;
        color: var(--muted-color);
        text-decoration: line-through;
        margin-left: var(--spacing-xs);
    }

.widget-product-rating {
    display: flex;
    gap: 2px;
}

    .widget-product-rating i {
        font-size: 0.75rem;
        color: var(--warning-color);
    }

        .widget-product-rating i.bi-star {
            color: var(--border-color);
        }

/* Music Player Cards */
.widget-music-card {
    overflow: hidden;
}

.widget-music-content {
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
}

.widget-music-info {
    flex: 1;
    padding-right: var(--spacing-md);
}

.widget-music-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 2px;
}

.widget-music-artist {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-md);
}

.widget-music-controls {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.widget-music-btn {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    border: none;
    background: transparent;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast);
}

    .widget-music-btn:hover {
        color: var(--accent-color);
    }

    .widget-music-btn.play {
        background: var(--accent-color);
        color: var(--contrast-color);
    }

        .widget-music-btn.play:hover {
            background: color-mix(in srgb, var(--accent-color), black 10%);
            color: var(--contrast-color);
        }

.widget-music-image {
    width: 100px;
    height: 100px;
    border-radius: var(--radius-lg);
    overflow: hidden;
    flex-shrink: 0;
}

    .widget-music-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

/* User Profile Cards (Horizontal) */
.widget-user-card-horizontal .card-body {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.widget-user-avatar {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.widget-user-info {
    flex: 1;
    min-width: 0;
}

.widget-user-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 2px;
}

.widget-user-location {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
}

    .widget-user-location i {
        font-size: 0.6875rem;
    }

/* Friend Suggestion Cards */
.widget-friend-card .card-body {
    padding: var(--spacing-lg);
}

.widget-friend-avatar {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-full);
    object-fit: cover;
    margin-bottom: var(--spacing-md);
}

.widget-friend-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-sm);
}

.widget-friend-mutual {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

    .widget-friend-mutual span {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.widget-friend-mutual-avatars {
    display: flex;
}

    .widget-friend-mutual-avatars img {
        width: 24px;
        height: 24px;
        border-radius: var(--radius-full);
        border: 2px solid var(--surface-color);
        margin-left: -8px;
    }

        .widget-friend-mutual-avatars img:first-child {
            margin-left: 0;
        }

.widget-friend-actions {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

/* Profile Info Cards */
.widget-profile-card .card-body {
    padding: var(--spacing-lg);
}

.widget-profile-avatar {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-full);
    object-fit: cover;
    margin-bottom: var(--spacing-md);
}

.widget-profile-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 4px;
}

.widget-profile-role {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-md);
}

.widget-profile-social {
    display: flex;
    justify-content: center;
    gap: var(--spacing-sm);
}

.widget-social-link {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    transition: all var(--transition-fast);
}

    .widget-social-link.facebook {
        color: #1877f2;
    }

        .widget-social-link.facebook:hover {
            background: rgba(24, 119, 242, 0.1);
        }

    .widget-social-link.instagram {
        color: #e1306c;
    }

        .widget-social-link.instagram:hover {
            background: rgba(225, 48, 108, 0.1);
        }

    .widget-social-link.github {
        color: var(--default-color);
    }

        .widget-social-link.github:hover {
            background: var(--background-color);
        }

    .widget-social-link.twitter {
        color: var(--default-color);
    }

        .widget-social-link.twitter:hover {
            background: var(--background-color);
        }

/* Settings Card */
.widget-settings-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
}

    .widget-settings-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.widget-settings-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
}

    .widget-settings-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-settings-icon.info {
        background: var(--info-color-light);
        color: var(--info-color);
    }

.widget-settings-info {
    flex: 1;
    min-width: 0;
}

.widget-settings-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    display: block;
}

.widget-settings-desc {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: block;
}

.widget-settings-slider {
    margin-top: var(--spacing-xs);
}

.widget-settings-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
    min-width: 40px;
    text-align: right;
}

.widget-settings-actions {
    display: flex;
    gap: var(--spacing-sm);
    justify-content: flex-end;
    margin-top: var(--spacing-md);
}

/* Gift Card */
.widget-gift-card .card-body {
    padding: var(--spacing-md);
}

.widget-gift-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-md);
}

.widget-gift-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.widget-gift-icon {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    border: none;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.widget-gift-image {
    height: 140px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-md);
}

    .widget-gift-image img {
        max-width: 70%;
        max-height: 70%;
        object-fit: contain;
    }

/* Payment Items */
.widget-payment-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
}

    .widget-payment-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.widget-payment-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
}

    .widget-payment-icon.paypal {
        background: rgba(0, 112, 186, 0.1);
        color: #0070ba;
    }

    .widget-payment-icon.wallet {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .widget-payment-icon.credit {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-payment-icon.refund {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

.widget-payment-info {
    flex: 1;
    min-width: 0;
}

.widget-payment-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    display: block;
}

.widget-payment-subtitle {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: block;
}

.widget-payment-amount {
    font-size: 0.9375rem;
    font-weight: 600;
}

    .widget-payment-amount.positive {
        color: var(--success-color);
    }

    .widget-payment-amount.negative {
        color: var(--danger-color);
    }

/* Activity Items Alternative */
.widget-activity-item-alt {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
}

    .widget-activity-item-alt:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.widget-activity-icon-alt {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}

    .widget-activity-icon-alt.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-activity-icon-alt.info {
        background: var(--info-color-light);
        color: var(--info-color);
    }

    .widget-activity-icon-alt.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .widget-activity-icon-alt.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-activity-icon-alt.muted {
        background: var(--background-color);
        color: var(--muted-color);
    }

.widget-activity-info-alt {
    flex: 1;
    min-width: 0;
}

.widget-activity-title-alt {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    display: block;
}

.widget-activity-status-alt {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: block;
}

.widget-activity-time-alt {
    font-size: 0.75rem;
    color: var(--muted-color);
}

/* Timeline Widget */
.widget-timeline {
    position: relative;
}

.widget-timeline-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
    position: relative;
}

    .widget-timeline-item:not(:last-child)::before {
        content: "";
        position: absolute;
        left: 52px;
        top: 38px;
        bottom: 0;
        width: 2px;
        background: var(--border-color);
    }

.widget-timeline-time {
    font-size: 0.75rem;
    color: var(--muted-color);
    min-width: 40px;
    text-align: right;
}

.widget-timeline-dot {
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin-top: 4px;
}

    .widget-timeline-dot.primary {
        background: var(--accent-color);
    }

    .widget-timeline-dot.success {
        background: var(--success-color);
    }

    .widget-timeline-dot.warning {
        background: var(--warning-color);
    }

    .widget-timeline-dot.danger {
        background: var(--danger-color);
    }

    .widget-timeline-dot.info {
        background: var(--info-color);
    }

.widget-timeline-content {
    flex: 1;
    min-width: 0;
}

    .widget-timeline-content p {
        font-size: 0.8125rem;
        color: var(--default-color);
        margin: 0;
    }

        .widget-timeline-content p a {
            color: var(--accent-color);
            font-weight: 500;
        }

/* Products Table Widget */
.widget-products-table th {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted-color);
    text-transform: uppercase;
    border-bottom: 1px solid var(--border-color);
    padding: var(--spacing-md);
}

.widget-products-table td {
    padding: var(--spacing-md);
    vertical-align: middle;
}

.widget-product-cell {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.widget-product-thumb {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    object-fit: cover;
}

.widget-product-name-sm {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--heading-color);
    max-width: 200px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.widget-product-payment {
    font-size: 0.8125rem;
}

    .widget-product-payment strong {
        color: var(--heading-color);
    }

.widget-payment-label {
    font-size: 0.6875rem;
    color: var(--muted-color);
    display: block;
}

/* Schedule Widget */
.widget-schedule-tabs {
    display: flex;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.widget-schedule-tab {
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--radius-full);
    border: none;
    background: transparent;
    font-size: 0.8125rem;
    color: var(--muted-color);
    cursor: pointer;
    transition: all var(--transition-fast);
}

    .widget-schedule-tab.active {
        background: var(--background-color);
        color: var(--heading-color);
        font-weight: 500;
    }

    .widget-schedule-tab:hover:not(.active) {
        color: var(--default-color);
    }

.widget-schedule-list {
    display: flex;
    flex-direction: column;
}

.widget-schedule-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) 0;
}

.widget-schedule-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}

    .widget-schedule-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-schedule-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

.widget-schedule-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin-left: 14px;
}

    .widget-schedule-dot.primary {
        background: var(--accent-color);
    }

    .widget-schedule-dot.info {
        background: var(--info-color);
    }

    .widget-schedule-dot.warning {
        background: var(--warning-color);
    }

    .widget-schedule-dot.danger {
        background: var(--danger-color);
    }

.widget-schedule-info {
    flex: 1;
    min-width: 0;
}

.widget-schedule-title {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--heading-color);
    display: block;
}

.widget-schedule-subtitle {
    font-size: 0.6875rem;
    color: var(--muted-color);
    display: block;
}

/* Reviews Table Widget */
.widget-reviews-table th {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted-color);
    text-transform: uppercase;
    border-bottom: 1px solid var(--border-color);
    padding: var(--spacing-md);
}

.widget-reviews-table td {
    padding: var(--spacing-md);
    vertical-align: middle;
}

.widget-reviewer {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.widget-reviewer-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    object-fit: cover;
}

.widget-reviewer-name {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--heading-color);
}

.widget-reviewer-email {
    font-size: 0.6875rem;
    color: var(--muted-color);
}

.widget-reviewer-rating {
    display: flex;
    gap: 2px;
    margin-top: 2px;
}

    .widget-reviewer-rating i {
        font-size: 0.625rem;
        color: var(--warning-color);
    }

        .widget-reviewer-rating i.bi-star {
            color: var(--border-color);
        }

.widget-review-text {
    font-size: 0.75rem;
    color: var(--muted-color);
    margin: 0;
    max-width: 250px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.widget-review-time {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md);
    border-top: 1px solid var(--border-color-light);
}

/* Location Widget */
.widget-map-placeholder {
    height: 180px;
    background: var(--background-color);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

    .widget-map-placeholder i {
        font-size: 2rem;
        color: var(--muted-color);
    }

    .widget-map-placeholder span {
        font-size: 0.8125rem;
        color: var(--muted-color);
    }

.widget-location-stats {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.widget-location-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.widget-location-code {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--heading-color);
    min-width: 24px;
}

.widget-location-bar {
    flex: 1;
    height: 6px;
    background: var(--background-color);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.widget-location-fill {
    height: 100%;
    border-radius: var(--radius-full);
}

.widget-location-percent {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--heading-color);
    min-width: 36px;
    text-align: right;
}

/* Credit Card Widget */
.widget-credit-cards {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.widget-credit-card {
    flex: 1;
    padding: var(--spacing-md);
    border-radius: var(--radius-lg);
    color: var(--contrast-color);
    min-height: 100px;
}

    .widget-credit-card.visa {
        background: linear-gradient(135deg, var(--heading-color) 0%, color-mix(in srgb, var(--heading-color), transparent 20%) 100%);
    }

    .widget-credit-card.mastercard {
        background: linear-gradient(135deg, var(--background-color) 0%, var(--border-color-light) 100%);
        color: var(--heading-color);
    }

.widget-credit-card-number {
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
}

.widget-credit-card-logo {
    height: 16px;
    margin-bottom: var(--spacing-sm);
}

.widget-credit-card-mc-logo {
    display: flex;
    gap: -8px;
    margin-bottom: var(--spacing-sm);
}

    .widget-credit-card-mc-logo .mc-circle {
        width: 20px;
        height: 20px;
        border-radius: var(--radius-full);
    }

        .widget-credit-card-mc-logo .mc-circle.mc-red {
            background: #eb001b;
        }

        .widget-credit-card-mc-logo .mc-circle.mc-orange {
            background: #f79e1b;
            margin-left: -8px;
        }

.widget-credit-card-balance .label {
    font-size: 0.6875rem;
    opacity: 0.8;
    display: block;
}

.widget-credit-card-balance .amount {
    font-size: 1rem;
    font-weight: 700;
}

.widget-transactions-mini {
    background: var(--background-color);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
}

.widget-transactions-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-md);
}

    .widget-transactions-header span {
        font-size: 0.8125rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .widget-transactions-header a {
        font-size: 0.75rem;
        color: var(--accent-color);
        display: flex;
        align-items: center;
        gap: 4px;
    }

.widget-transaction-item-mini {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) 0;
}

    .widget-transaction-item-mini:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.widget-transaction-icon-mini {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    font-weight: 700;
    flex-shrink: 0;
}

    .widget-transaction-icon-mini.netflix {
        background: #e50914;
        color: var(--contrast-color);
    }

    .widget-transaction-icon-mini.upwork {
        background: #6fda44;
        color: var(--contrast-color);
    }

.widget-transaction-info-mini {
    flex: 1;
    min-width: 0;
}

.widget-transaction-title-mini {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--heading-color);
    display: block;
}

.widget-transaction-date-mini {
    font-size: 0.6875rem;
    color: var(--muted-color);
    display: block;
}

.widget-transaction-amount-mini {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

    .widget-transaction-amount-mini .amount {
        font-size: 0.8125rem;
        font-weight: 600;
    }

        .widget-transaction-amount-mini .amount.positive {
            color: var(--success-color);
        }

        .widget-transaction-amount-mini .amount.negative {
            color: var(--danger-color);
        }

    .widget-transaction-amount-mini .bonus {
        font-size: 0.6875rem;
        color: var(--success-color);
    }

/* Earning Report Widget */
.widget-earning-list {
    display: flex;
    flex-direction: column;
}

.widget-earning-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
}

    .widget-earning-item:not(:last-child) {
        border-bottom: 1px solid var(--border-color-light);
    }

.widget-earning-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
}

    .widget-earning-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-earning-icon.danger {
        background: var(--danger-color-light);
        color: var(--danger-color);
    }

    .widget-earning-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-earning-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

.widget-earning-info {
    flex: 1;
    min-width: 0;
}

.widget-earning-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    display: block;
}

.widget-earning-subtitle {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: flex;
    align-items: center;
    gap: 4px;
}

    .widget-earning-subtitle i {
        font-size: 0.6875rem;
    }

.widget-earning-link {
    display: block;
    text-align: center;
    font-size: 0.8125rem;
    color: var(--accent-color);
    padding-top: var(--spacing-md);
}

/* Mini Stat Card */
.widget-mini-stat .card-body {
    padding: var(--spacing-lg);
}

.widget-mini-stat-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-xs);
}

.widget-mini-stat-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
}

.widget-mini-stat-subtitle {
    font-size: 0.75rem;
    color: var(--muted-color);
    margin: 0 0 var(--spacing-md);
}

.widget-mini-stat-values {
    margin-bottom: var(--spacing-xs);
}

    .widget-mini-stat-values .widget-mini-stat-current {
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--heading-color);
    }

    .widget-mini-stat-values .widget-mini-stat-total {
        font-size: 1rem;
        color: var(--muted-color);
        margin-left: var(--spacing-sm);
    }

.widget-mini-stat-info {
    font-size: 0.75rem;
    color: var(--muted-color);
    margin: 0 0 var(--spacing-md);
}

.widget-mini-stat-footer {
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-color-light);
}

.widget-mini-stat-label {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: block;
    margin-bottom: var(--spacing-sm);
}

.widget-mini-stat-avatars {
    display: flex;
    align-items: center;
}

    .widget-mini-stat-avatars img {
        width: 28px;
        height: 28px;
        border-radius: var(--radius-full);
        border: 2px solid var(--surface-color);
        margin-left: -8px;
    }

        .widget-mini-stat-avatars img:first-child {
            margin-left: 0;
        }

.widget-mini-stat-more {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-full);
    background: var(--accent-color);
    color: var(--contrast-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    font-weight: 600;
    margin-left: -8px;
}

/* Color Stat Cards */
.widget-color-stat {
    overflow: hidden;
}

    .widget-color-stat.primary .card-body {
        background: linear-gradient(135deg, var(--accent-color) 0%, color-mix(in srgb, var(--accent-color), black 15%) 100%);
        color: var(--contrast-color);
    }

    .widget-color-stat.success .card-body {
        background: linear-gradient(135deg, var(--success-color) 0%, color-mix(in srgb, var(--success-color), black 15%) 100%);
        color: var(--contrast-color);
    }

    .widget-color-stat.danger .card-body {
        background: linear-gradient(135deg, var(--danger-color) 0%, color-mix(in srgb, var(--danger-color), black 15%) 100%);
        color: var(--contrast-color);
    }

    .widget-color-stat.warning .card-body {
        background: linear-gradient(135deg, var(--warning-color) 0%, color-mix(in srgb, var(--warning-color), black 15%) 100%);
        color: var(--contrast-color);
    }

    .widget-color-stat.info .card-body {
        background: linear-gradient(135deg, var(--info-color) 0%, color-mix(in srgb, var(--info-color), black 15%) 100%);
        color: var(--contrast-color);
    }

    .widget-color-stat .card-body {
        padding: var(--spacing-lg);
        display: flex;
        align-items: center;
        gap: var(--spacing-md);
    }

.widget-color-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.widget-color-stat-content {
    flex: 1;
}

.widget-color-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}

.widget-color-stat-change {
    font-size: 0.8125rem;
    font-weight: 500;
    opacity: 0.9;
}

    .widget-color-stat-change.negative {
        opacity: 0.8;
    }

.widget-color-stat-label {
    font-size: 0.8125rem;
    opacity: 0.9;
}

/*--------------------------------------------------------------
# Widget Banners Page Styles
--------------------------------------------------------------*/
/* Gradient Backgrounds */
.gradient-primary {
    background: linear-gradient(135deg, var(--accent-color) 0%, color-mix(in srgb, var(--accent-color), black 15%) 100%);
}

.gradient-success {
    background: linear-gradient(135deg, var(--success-color) 0%, color-mix(in srgb, var(--success-color), black 15%) 100%);
}

.gradient-info {
    background: linear-gradient(135deg, var(--info-color) 0%, color-mix(in srgb, var(--info-color), black 15%) 100%);
}

.gradient-danger {
    background: linear-gradient(135deg, var(--danger-color) 0%, color-mix(in srgb, var(--danger-color), black 15%) 100%);
}

.gradient-warning {
    background: linear-gradient(135deg, var(--warning-color) 0%, color-mix(in srgb, var(--warning-color), black 15%) 100%);
}

/* Welcome Banner */
.widget-banner-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    color: var(--contrast-color);
    overflow: hidden;
    position: relative;
    min-height: 180px;
}

.widget-banner-content {
    flex: 1;
    z-index: 1;
}

.widget-banner-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

.widget-banner-text {
    font-size: 0.9375rem;
    opacity: 0.9;
    margin-bottom: var(--spacing-md);
    max-width: 400px;
}

.widget-banner-image {
    position: relative;
    z-index: 1;
}

    .widget-banner-image img {
        max-height: 160px;
        border-radius: var(--radius-lg);
        object-fit: cover;
    }

    .widget-banner-image.bottom {
        align-self: flex-end;
        margin-bottom: calc(-1 * var(--spacing-xl));
    }

        .widget-banner-image.bottom img {
            max-height: 140px;
        }

/* Achievement Banner */
.widget-banner-achievement .card-body {
    padding: var(--spacing-xl);
}

.widget-banner-label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--muted-color);
    display: block;
    margin-bottom: var(--spacing-md);
}

.widget-banner-badge {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-md);
    background: linear-gradient(135deg, var(--warning-color) 0%, color-mix(in srgb, var(--warning-color), black 10%) 100%);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--contrast-color);
    box-shadow: 0 8px 24px rgba(245, 158, 11, 0.3);
}

.widget-banner-heading {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.widget-banner-desc {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-md);
}

/* Promo Banner Light */
.widget-banner-promo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    overflow: hidden;
    min-height: 180px;
}

    .widget-banner-promo.light {
        background: linear-gradient(135deg, var(--background-color) 0%, var(--border-color-light) 100%);
    }

    .widget-banner-promo .widget-banner-title {
        color: var(--heading-color);
        font-size: 1.25rem;
    }

    .widget-banner-promo .widget-banner-text {
        color: var(--muted-color);
        font-size: 0.875rem;
    }

/* Friend Banner */
.widget-banner-friend .card-body {
    padding: var(--spacing-xl);
}

.widget-banner-avatar-wrapper {
    position: relative;
    display: inline-block;
    margin-bottom: var(--spacing-md);
}

.widget-banner-avatar {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 4px solid color-mix(in srgb, var(--accent-color), transparent 80%);
}

.widget-banner-notification {
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background: var(--danger-color);
    color: var(--contrast-color);
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--surface-color);
}

.widget-banner-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.widget-banner-actions {
    display: flex;
    gap: var(--spacing-sm);
    justify-content: center;
}

/* Status Banner */
.widget-banner-status .card-body {
    padding: var(--spacing-xl);
}

.widget-banner-icon-wrapper {
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-md);
}

.widget-banner-illustration {
    max-height: 100%;
    border-radius: var(--radius-md);
}

.widget-banner-empty-cart {
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, var(--background-color) 0%, var(--border-color-light) 100%);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: var(--muted-color);
}

/* Stats Banner */
.widget-banner-stats {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    color: var(--contrast-color);
    overflow: hidden;
    min-height: 200px;
}

.widget-banner-stat-group {
    display: flex;
    gap: var(--spacing-md);
    margin-top: var(--spacing-md);
}

.widget-banner-stat {
    background: rgba(255, 255, 255, 0.2);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    text-align: center;
}

.widget-banner-stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    display: block;
}

.widget-banner-stat-label {
    font-size: 0.6875rem;
    opacity: 0.9;
    display: block;
}

/* Alert Banners */
.widget-banner-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--spacing-lg);
    border-radius: var(--radius-lg);
    position: relative;
}

    .widget-banner-alert.success {
        background: var(--success-color-light);
        border-left: 4px solid var(--success-color);
    }

        .widget-banner-alert.success .widget-banner-alert-icon {
            color: var(--success-color);
        }

    .widget-banner-alert.warning {
        background: var(--warning-color-light);
        border-left: 4px solid var(--warning-color);
    }

        .widget-banner-alert.warning .widget-banner-alert-icon {
            color: var(--warning-color);
        }

    .widget-banner-alert.info {
        background: var(--info-color-light);
        border-left: 4px solid var(--info-color);
    }

        .widget-banner-alert.info .widget-banner-alert-icon {
            color: var(--info-color);
        }

    .widget-banner-alert.danger {
        background: var(--danger-color-light);
        border-left: 4px solid var(--danger-color);
    }

        .widget-banner-alert.danger .widget-banner-alert-icon {
            color: var(--danger-color);
        }

.widget-banner-alert-icon {
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.widget-banner-alert-content {
    flex: 1;
}

.widget-banner-alert-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 4px;
}

.widget-banner-alert-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-banner-alert-close {
    background: none;
    border: none;
    padding: 0;
    color: var(--muted-color);
    cursor: pointer;
    font-size: 1.25rem;
    line-height: 1;
    transition: color var(--transition-fast);
}

    .widget-banner-alert-close:hover {
        color: var(--danger-color);
    }

/* CTA Banners */
.widget-banner-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    color: var(--contrast-color);
}

    .widget-banner-cta.horizontal .widget-banner-cta-content {
        flex: none;
    }

    .widget-banner-cta.horizontal .widget-banner-cta-buttons {
        margin-top: 0;
    }

.widget-banner-cta-content {
    flex: 1;
}

.widget-banner-cta-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.2);
    padding: 4px 12px;
    border-radius: var(--radius-full);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: var(--spacing-sm);
}

.widget-banner-cta-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: var(--spacing-xs);
}

.widget-banner-cta-text {
    font-size: 0.875rem;
    opacity: 0.9;
    margin-bottom: var(--spacing-md);
}

.widget-banner-cta-buttons {
    display: flex;
    gap: var(--spacing-sm);
}

.widget-banner-cta-icon {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    flex-shrink: 0;
    margin-left: var(--spacing-lg);
}

/* Notification Banners */
.widget-banner-notification .card-body {
    padding: var(--spacing-lg);
}

.widget-banner-notif-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-md);
}

.widget-banner-notif-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
}

    .widget-banner-notif-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-banner-notif-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-banner-notif-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

.widget-banner-notif-time {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-banner-notif-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.widget-banner-notif-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-md);
}

.widget-banner-notif-actions {
    display: flex;
    gap: var(--spacing-sm);
}

/* Feature Banners */
.widget-banner-feature {
    display: flex;
    align-items: center;
    padding: var(--spacing-lg);
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    position: relative;
    overflow: hidden;
}

.widget-banner-feature-badge {
    position: absolute;
    top: var(--spacing-md);
    left: var(--spacing-md);
    background: var(--accent-color);
    color: var(--contrast-color);
    padding: 4px 10px;
    border-radius: var(--radius-full);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 1px;
}

    .widget-banner-feature-badge.update {
        background: var(--info-color);
    }

.widget-banner-feature-content {
    flex: 1;
    padding-top: var(--spacing-lg);
}

.widget-banner-feature-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.widget-banner-feature-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-sm);
}

.widget-banner-feature-link {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--accent-color);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

    .widget-banner-feature-link:hover {
        text-decoration: underline;
    }

.widget-banner-feature-icon {
    width: 56px;
    height: 56px;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--accent-color);
    flex-shrink: 0;
    margin-left: var(--spacing-lg);
}

/* Onboarding Banners */
.widget-banner-onboarding .card-body {
    padding: var(--spacing-xl);
}

.widget-banner-onboarding-step {
    width: 32px;
    height: 32px;
    background: var(--accent-color);
    color: var(--contrast-color);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 700;
    margin: 0 auto var(--spacing-md);
}

    .widget-banner-onboarding-step.completed {
        background: var(--success-color);
    }

.widget-banner-onboarding-icon {
    width: 64px;
    height: 64px;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--accent-color);
    margin: 0 auto var(--spacing-md);
}

    .widget-banner-onboarding-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

.widget-banner-onboarding-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.widget-banner-onboarding-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-md);
}

/* Sale Banners */
.widget-banner-sale {
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    color: var(--contrast-color);
    text-align: center;
}

.widget-banner-sale-content {
    position: relative;
    z-index: 1;
}

.widget-banner-sale-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.2);
    padding: 4px 12px;
    border-radius: var(--radius-full);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: var(--spacing-sm);
}

    .widget-banner-sale-badge.dark {
        background: color-mix(in srgb, var(--default-color), transparent 80%);
    }

.widget-banner-sale-title {
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: var(--spacing-xs);
}

.widget-banner-sale-text {
    font-size: 0.9375rem;
    opacity: 0.9;
    margin-bottom: var(--spacing-md);
}

.widget-banner-sale-timer {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.widget-banner-timer-item {
    background: rgba(255, 255, 255, 0.2);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    min-width: 60px;
}

.widget-banner-timer-value {
    font-size: 1.25rem;
    font-weight: 700;
    display: block;
}

.widget-banner-timer-label {
    font-size: 0.6875rem;
    opacity: 0.9;
    display: block;
}

.widget-banner-sale-code {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    background: rgba(255, 255, 255, 0.2);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-md);
}

.widget-banner-code {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 2px;
}

.widget-banner-copy-btn {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    padding: 4px 8px;
    border-radius: var(--radius-sm);
    color: var(--contrast-color);
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

    .widget-banner-copy-btn:hover {
        background: rgba(255, 255, 255, 0.3);
    }

/* Cookie Banner */
.widget-banner-cookie {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    flex-wrap: wrap;
}

.widget-banner-cookie-icon {
    width: 48px;
    height: 48px;
    background: var(--warning-color-light);
    color: var(--warning-color);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.widget-banner-cookie-content {
    flex: 1;
    min-width: 200px;
}

.widget-banner-cookie-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 4px;
}

.widget-banner-cookie-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-banner-cookie-actions {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

/* Newsletter Banner */
.widget-banner-newsletter {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
}

.widget-banner-newsletter-icon {
    width: 48px;
    height: 48px;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.widget-banner-newsletter-content {
    flex: 1;
}

.widget-banner-newsletter-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 4px;
}

.widget-banner-newsletter-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-sm);
}

.widget-banner-newsletter-form {
    display: flex;
    gap: var(--spacing-sm);
}

    .widget-banner-newsletter-form input {
        flex: 1;
        max-width: 250px;
    }

/* App Install Banner */
.widget-banner-app-install {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
}

.widget-banner-app-icon {
    width: 48px;
    height: 48px;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.widget-banner-app-content {
    flex: 1;
}

.widget-banner-app-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 4px;
}

.widget-banner-app-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-banner-app-actions {
    display: flex;
    gap: var(--spacing-sm);
}

/* Responsive */
@media (max-width: 767px) {
    .widget-banner-welcome,
    .widget-banner-promo,
    .widget-banner-stats {
        flex-direction: column;
        text-align: center;
    }

        .widget-banner-welcome .widget-banner-content,
        .widget-banner-promo .widget-banner-content,
        .widget-banner-stats .widget-banner-content {
            order: 2;
        }

        .widget-banner-welcome .widget-banner-image,
        .widget-banner-promo .widget-banner-image,
        .widget-banner-stats .widget-banner-image {
            order: 1;
            margin-bottom: var(--spacing-md);
        }

            .widget-banner-welcome .widget-banner-image.bottom,
            .widget-banner-promo .widget-banner-image.bottom,
            .widget-banner-stats .widget-banner-image.bottom {
                margin-bottom: var(--spacing-md);
            }

        .widget-banner-welcome .widget-banner-text,
        .widget-banner-promo .widget-banner-text,
        .widget-banner-stats .widget-banner-text {
            max-width: none;
        }

    .widget-banner-cta {
        flex-direction: column;
        text-align: center;
    }

        .widget-banner-cta.horizontal .widget-banner-cta-buttons {
            margin-top: var(--spacing-md);
        }

        .widget-banner-cta .widget-banner-cta-icon {
            margin-left: 0;
            margin-bottom: var(--spacing-md);
        }

    .widget-banner-cookie {
        flex-direction: column;
        text-align: center;
    }

        .widget-banner-cookie .widget-banner-cookie-actions {
            justify-content: center;
        }

    .widget-banner-newsletter-form {
        flex-direction: column;
    }

        .widget-banner-newsletter-form input {
            max-width: none;
        }

    .widget-banner-app-install {
        flex-direction: column;
        text-align: center;
    }
}
/*--------------------------------------------------------------
# Widget Charts Page Styles
--------------------------------------------------------------*/
/* Mini Stat Cards with Sparklines */
.widget-chart-stat .card-body {
    padding: var(--spacing-lg);
}

.widget-chart-stat-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-md);
}

.widget-chart-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.2;
}

.widget-chart-stat-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.widget-chart-stat-change {
    font-size: 0.75rem;
    font-weight: 500;
}

    .widget-chart-stat-change.positive {
        color: var(--success-color);
    }

    .widget-chart-stat-change.negative {
        color: var(--danger-color);
    }

.widget-chart-sparkline {
    height: 50px;
}

    .widget-chart-sparkline svg {
        width: 100%;
        height: 100%;
    }

    .widget-chart-sparkline.primary {
        color: var(--accent-color);
    }

    .widget-chart-sparkline.warning {
        color: var(--warning-color);
    }

    .widget-chart-sparkline.success {
        color: var(--success-color);
    }

    .widget-chart-sparkline.info {
        color: var(--info-color);
    }

.widget-chart-sparkline-bars {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    height: 50px;
}

    .widget-chart-sparkline-bars span {
        flex: 1;
        border-radius: 2px;
        min-width: 6px;
    }

    .widget-chart-sparkline-bars.info span {
        background: var(--info-color);
    }

    .widget-chart-sparkline-bars.dark span {
        background: var(--heading-color);
    }

    .widget-chart-sparkline-bars.primary span {
        background: var(--accent-color);
    }

/* Balance Card */
.widget-balance-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-lg);
}

.widget-balance-label {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-xs);
}

.widget-balance-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-balance-change {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: 0.8125rem;
    margin-top: var(--spacing-xs);
}

    .widget-balance-change i {
        color: var(--danger-color);
    }

    .widget-balance-change .negative {
        color: var(--danger-color);
    }

.widget-balance-tabs {
    display: flex;
    gap: var(--spacing-xs);
}

    .widget-balance-tabs button {
        padding: var(--spacing-xs) var(--spacing-md);
        border-radius: var(--radius-full);
        border: 1px solid var(--border-color);
        background: transparent;
        font-size: 0.8125rem;
        color: var(--muted-color);
        cursor: pointer;
        transition: all var(--transition-fast);
    }

        .widget-balance-tabs button.active {
            background: var(--heading-color);
            color: var(--contrast-color);
            border-color: var(--heading-color);
        }

        .widget-balance-tabs button:hover:not(.active) {
            border-color: var(--heading-color);
        }

.widget-balance-content {
    display: flex;
    gap: var(--spacing-lg);
}

.widget-balance-chart {
    flex: 1;
    min-width: 0;
}

    .widget-balance-chart svg {
        width: 100%;
        height: 100px;
    }

.widget-balance-chart-labels {
    display: flex;
    justify-content: space-between;
    margin-top: var(--spacing-sm);
}

    .widget-balance-chart-labels span {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.widget-balance-stats {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.widget-balance-stat-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.widget-balance-stat-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

    .widget-balance-stat-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-balance-stat-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-balance-stat-icon.info {
        background: var(--info-color-light);
        color: var(--info-color);
    }

    .widget-balance-stat-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

.widget-balance-stat-label {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-balance-stat-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
}

/* ROI Card */
.widget-roi-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.widget-roi-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.widget-roi-values {
    flex: 1;
}

.widget-roi-percent {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-roi-label {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-roi-change {
    text-align: right;
}

    .widget-roi-change .positive {
        color: var(--success-color);
        font-weight: 600;
        display: block;
    }

    .widget-roi-change .text-muted {
        font-size: 0.75rem;
    }

.widget-roi-chart {
    height: 150px;
}

.widget-roi-bars {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    height: 100%;
    gap: var(--spacing-md);
}

.widget-roi-bar-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
}

    .widget-roi-bar-group span {
        font-size: 0.6875rem;
        color: var(--muted-color);
        margin-top: var(--spacing-xs);
    }

.widget-roi-bar {
    width: 100%;
    max-width: 30px;
    background: var(--border-color);
    border-radius: var(--radius-sm);
    margin-top: auto;
}

    .widget-roi-bar.highlight {
        background: var(--info-color);
    }

/* Stat Chart Cards */
.widget-stat-chart .card-body {
    padding: var(--spacing-lg);
}

.widget-stat-chart-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.widget-stat-chart-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

    .widget-stat-chart-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-stat-chart-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

    .widget-stat-chart-icon.info {
        background: var(--info-color-light);
        color: var(--info-color);
    }

.widget-stat-chart-title {
    font-size: 0.875rem;
    color: var(--muted-color);
}

.widget-stat-chart-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: var(--spacing-md);
}

.widget-stat-chart-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-stat-chart-bars {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    height: 60px;
}

    .widget-stat-chart-bars span {
        width: 8px;
        border-radius: 2px;
    }

    .widget-stat-chart-bars.primary span {
        background: var(--accent-color);
    }

.widget-stat-chart-line {
    width: 100px;
    height: 50px;
}

    .widget-stat-chart-line svg {
        width: 100%;
        height: 100%;
    }

    .widget-stat-chart-line.success {
        color: var(--success-color);
    }

.widget-stat-chart-donut {
    width: 60px;
    height: 60px;
}

    .widget-stat-chart-donut svg {
        width: 100%;
        height: 100%;
        transform: rotate(-90deg);
    }

    .widget-stat-chart-donut.info {
        color: var(--info-color);
    }

.widget-stat-chart-footer {
    font-size: 0.8125rem;
}

    .widget-stat-chart-footer.positive {
        color: var(--success-color);
    }

    .widget-stat-chart-footer.negative {
        color: var(--danger-color);
    }

/* Current Value Card */
.widget-value-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.widget-value-tabs {
    display: flex;
    gap: var(--spacing-xs);
}

    .widget-value-tabs button {
        padding: var(--spacing-xs) var(--spacing-md);
        border-radius: var(--radius-sm);
        border: none;
        font-size: 0.8125rem;
        cursor: pointer;
        transition: all var(--transition-fast);
    }

        .widget-value-tabs button.active {
            background: var(--accent-color);
            color: var(--contrast-color);
        }

        .widget-value-tabs button:not(.active) {
            background: var(--background-color);
            color: var(--muted-color);
        }

.widget-value-item {
    background: var(--background-color);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
}

    .widget-value-item.highlight {
        background: var(--surface-color);
        border: 1px solid var(--border-color);
    }

.widget-value-chart-bars {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    height: 80px;
    margin-bottom: var(--spacing-md);
}

    .widget-value-chart-bars span {
        flex: 1;
        border-radius: var(--radius-sm);
    }

    .widget-value-chart-bars.primary span {
        background: var(--accent-color);
    }

    .widget-value-chart-bars.info span {
        background: var(--info-color);
    }

.widget-value-chart-area {
    position: relative;
    height: 80px;
    margin-bottom: var(--spacing-md);
}

    .widget-value-chart-area svg {
        width: 100%;
        height: 100%;
    }

.widget-value-chart-tooltip {
    position: absolute;
    top: 0;
    right: 20%;
    background: var(--accent-color);
    color: var(--contrast-color);
    padding: 4px 8px;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 600;
}

.widget-value-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.widget-value-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.widget-value-amount .value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-value-amount .change {
    font-size: 0.75rem;
    margin-left: var(--spacing-sm);
}

    .widget-value-amount .change.positive {
        color: var(--success-color);
    }

    .widget-value-amount .change.negative {
        color: var(--danger-color);
    }

/* Yearly Cards */
.widget-yearly-title {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-sm);
}

.widget-yearly-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-bottom: var(--spacing-sm);
}

.widget-yearly-change {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-md);
}

    .widget-yearly-change .positive {
        color: var(--success-color);
        font-weight: 500;
    }

.widget-yearly-legend {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

    .widget-yearly-legend span {
        display: flex;
        align-items: center;
        gap: 4px;
        font-size: 0.75rem;
        color: var(--muted-color);
    }

        .widget-yearly-legend span i {
            font-size: 0.5rem;
        }

.widget-yearly-donut {
    width: 100px;
    height: 100px;
    margin: 0 auto;
}

    .widget-yearly-donut svg {
        width: 100%;
        height: 100%;
        transform: rotate(-90deg);
    }

/* Yearly Sales */
.widget-sales-header {
    margin-bottom: var(--spacing-md);
}

.widget-sales-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 2px;
}

.widget-sales-chart {
    height: 150px;
    margin-bottom: var(--spacing-md);
}

.widget-sales-bars {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    height: 100%;
    gap: var(--spacing-sm);
}

.widget-sales-bar-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
}

    .widget-sales-bar-item .bar {
        width: 100%;
        max-width: 24px;
        background: var(--info-color);
        border-radius: var(--radius-sm);
        margin-top: auto;
    }

    .widget-sales-bar-item span {
        font-size: 0.6875rem;
        color: var(--muted-color);
        margin-top: var(--spacing-xs);
    }

    .widget-sales-bar-item.highlight .bar {
        background: var(--accent-color);
    }

.widget-sales-footer {
    display: flex;
    gap: var(--spacing-lg);
}

.widget-sales-stat {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .widget-sales-stat i {
        color: var(--muted-color);
    }

    .widget-sales-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

    .widget-sales-stat .value {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
    }

/* Revenue Updates */
.widget-revenue-header {
    margin-bottom: var(--spacing-sm);
}

.widget-revenue-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 2px;
}

.widget-revenue-legend {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

    .widget-revenue-legend span {
        display: flex;
        align-items: center;
        gap: 4px;
        font-size: 0.75rem;
        color: var(--muted-color);
    }

        .widget-revenue-legend span i {
            font-size: 0.5rem;
        }

.widget-revenue-chart {
    display: flex;
    gap: var(--spacing-sm);
    height: 150px;
}

.widget-revenue-bars {
    flex: 1;
    display: flex;
    justify-content: space-between;
    gap: var(--spacing-sm);
}

    .widget-revenue-bars .bar-group {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
    }

        .widget-revenue-bars .bar-group .bar {
            width: 100%;
            max-width: 16px;
            border-radius: 2px;
        }

            .widget-revenue-bars .bar-group .bar.positive {
                background: var(--accent-color);
            }

            .widget-revenue-bars .bar-group .bar.negative {
                background: var(--info-color);
            }

        .widget-revenue-bars .bar-group span {
            font-size: 0.6875rem;
            color: var(--muted-color);
            margin-top: var(--spacing-xs);
        }

.widget-revenue-axis {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--spacing-sm) 0;
}

    .widget-revenue-axis span {
        font-size: 0.6875rem;
        color: var(--muted-color);
    }

/* Monthly Earnings */
.widget-earnings .card-body {
    padding: var(--spacing-lg);
}

.widget-earnings-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-sm);
}

.widget-earnings-title {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-earnings-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-bottom: var(--spacing-md);
}

.widget-earnings-chart {
    height: 60px;
}

    .widget-earnings-chart svg {
        width: 100%;
        height: 100%;
    }

/* Most Visited */
.widget-visited-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-lg);
}

.widget-visited-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.widget-visited-chart {
    display: flex;
    gap: var(--spacing-sm);
    height: 150px;
    margin-bottom: var(--spacing-md);
}

.widget-visited-bars {
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--spacing-md);
}

    .widget-visited-bars .bar-item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        height: 100%;
    }

        .widget-visited-bars .bar-item .bar {
            width: 100%;
            max-width: 32px;
            background: var(--border-color);
            border-radius: var(--radius-sm);
            margin-top: auto;
        }

        .widget-visited-bars .bar-item.highlight .bar {
            background: var(--accent-color);
        }

        .widget-visited-bars .bar-item span {
            font-size: 0.75rem;
            color: var(--muted-color);
            margin-top: var(--spacing-xs);
        }

.widget-visited-axis {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

    .widget-visited-axis span {
        font-size: 0.6875rem;
        color: var(--muted-color);
    }

.widget-visited-legend {
    display: flex;
    justify-content: center;
    gap: var(--spacing-lg);
}

    .widget-visited-legend span {
        display: flex;
        align-items: center;
        gap: 4px;
        font-size: 0.75rem;
        color: var(--muted-color);
    }

        .widget-visited-legend span i {
            font-size: 0.5rem;
        }

/* Page Impressions */
.widget-impressions-title {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-bottom: var(--spacing-xs);
}

.widget-impressions-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-bottom: var(--spacing-xs);
}

.widget-impressions-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.widget-impressions-chart {
    height: 60px;
    margin-bottom: var(--spacing-md);
}

    .widget-impressions-chart svg {
        width: 100%;
        height: 100%;
    }

.widget-impressions-stats {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.widget-impressions-stat {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .widget-impressions-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

    .widget-impressions-stat .value {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
        margin-left: auto;
    }

    .widget-impressions-stat .badge {
        margin-left: var(--spacing-sm);
    }

/* Delivery Analytics */
.widget-delivery-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.widget-delivery-tabs {
    display: flex;
    gap: var(--spacing-xs);
    margin-left: auto;
}

    .widget-delivery-tabs button {
        padding: var(--spacing-xs) var(--spacing-md);
        border-radius: var(--radius-full);
        border: 1px solid var(--border-color);
        background: transparent;
        font-size: 0.75rem;
        color: var(--muted-color);
        cursor: pointer;
    }

        .widget-delivery-tabs button.active {
            background: var(--background-color);
            color: var(--heading-color);
        }

.widget-delivery-content {
    display: flex;
    gap: var(--spacing-lg);
}

.widget-delivery-chart {
    flex: 1;
}

.widget-radar-chart {
    width: 100%;
    max-width: 200px;
    height: 200px;
}

.widget-delivery-info {
    flex: 1;
}

.widget-delivery-message {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: var(--background-color);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-md);
}

    .widget-delivery-message i {
        font-size: 1.25rem;
        color: var(--accent-color);
    }

    .widget-delivery-message strong {
        display: block;
        font-size: 0.875rem;
        color: var(--heading-color);
    }

    .widget-delivery-message span {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.widget-delivery-stats {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.widget-delivery-stat {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .widget-delivery-stat .dot {
        width: 8px;
        height: 8px;
        border-radius: var(--radius-full);
    }

        .widget-delivery-stat .dot.primary {
            background: var(--accent-color);
        }

        .widget-delivery-stat .dot.info {
            background: var(--info-color);
        }

        .widget-delivery-stat .dot.danger {
            background: var(--danger-color);
        }

    .widget-delivery-stat .value {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .widget-delivery-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

/* Marketing Report */
.widget-marketing-content {
    display: flex;
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
}

.widget-marketing-stats {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.widget-marketing-stat {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .widget-marketing-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
        display: block;
    }

    .widget-marketing-stat .value {
        font-size: 1rem;
        font-weight: 600;
        color: var(--heading-color);
    }

.widget-marketing-icon {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
}

    .widget-marketing-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-marketing-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

    .widget-marketing-icon.info {
        background: var(--info-color-light);
        color: var(--info-color);
    }

    .widget-marketing-icon.success {
        background: var(--success-color-light);
        color: var(--success-color);
    }

.widget-marketing-chart {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.widget-gauge {
    position: relative;
    width: 150px;
    text-align: center;
}

    .widget-gauge svg {
        width: 100%;
        height: auto;
    }

.widget-gauge-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-top: var(--spacing-sm);
}

.widget-gauge-label {
    font-size: 0.75rem;
    color: var(--muted-color);
    margin-top: var(--spacing-xs);
}

.widget-marketing-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md);
    background: var(--background-color);
    border-radius: var(--radius-md);
}

.widget-marketing-tip {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .widget-marketing-tip i {
        color: var(--warning-color);
    }

    .widget-marketing-tip span {
        font-size: 0.8125rem;
        color: var(--muted-color);
    }

/* Bottom Stats Cards */
.widget-bottom-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-md);
}

.widget-bottom-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 2px;
}

.widget-bottom-values {
    text-align: right;
}

    .widget-bottom-values .value {
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--heading-color);
        display: block;
    }

    .widget-bottom-values .change {
        font-size: 0.75rem;
        font-weight: 500;
    }

        .widget-bottom-values .change.positive {
            color: var(--success-color);
        }

        .widget-bottom-values .change.negative {
            color: var(--danger-color);
        }

.widget-bottom-chart {
    height: 80px;
    margin-bottom: var(--spacing-md);
}

    .widget-bottom-chart svg {
        width: 100%;
        height: 100%;
    }

    .widget-bottom-chart.primary {
        color: var(--accent-color);
    }

.widget-bottom-bars {
    display: flex;
    align-items: flex-end;
    gap: var(--spacing-md);
    height: 80px;
    margin-bottom: var(--spacing-md);
}

    .widget-bottom-bars .bar-day {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        height: 100%;
    }

        .widget-bottom-bars .bar-day .bar-fill {
            width: 100%;
            max-width: 24px;
            background: var(--accent-color);
            border-radius: var(--radius-full);
            margin-top: auto;
        }

        .widget-bottom-bars .bar-day span {
            font-size: 0.75rem;
            color: var(--muted-color);
            margin-top: var(--spacing-xs);
        }

.widget-bottom-donut {
    width: 100px;
    height: 100px;
    margin: 0 auto var(--spacing-md);
}

    .widget-bottom-donut svg {
        width: 100%;
        height: 100%;
        transform: rotate(-90deg);
    }

.widget-bottom-legend {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.widget-bottom-legend-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 0.8125rem;
    color: var(--muted-color);
}

    .widget-bottom-legend-item .dot {
        width: 8px;
        height: 8px;
        border-radius: var(--radius-full);
    }

        .widget-bottom-legend-item .dot.primary {
            background: var(--accent-color);
        }

        .widget-bottom-legend-item .dot.muted {
            background: var(--border-color);
        }

    .widget-bottom-legend-item .value {
        margin-left: auto;
        font-weight: 500;
        color: var(--heading-color);
    }

.widget-bottom-footer {
    text-align: center;
    padding-top: var(--spacing-md);
}

/* Sales Profit */
.widget-profit-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-lg);
}

.widget-profit-tabs {
    display: flex;
    gap: var(--spacing-xs);
}

    .widget-profit-tabs button {
        padding: var(--spacing-xs) var(--spacing-md);
        border-radius: var(--radius-full);
        border: 1px solid var(--border-color);
        background: transparent;
        font-size: 0.8125rem;
        color: var(--muted-color);
        cursor: pointer;
    }

        .widget-profit-tabs button.active {
            background: var(--background-color);
            color: var(--heading-color);
        }

.widget-profit-chart {
    position: relative;
    height: 150px;
    margin-bottom: var(--spacing-md);
}

    .widget-profit-chart svg {
        width: 100%;
        height: 100%;
    }

.widget-profit-labels {
    display: flex;
    justify-content: space-between;
    margin-top: var(--spacing-sm);
}

    .widget-profit-labels span {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.widget-profit-axis {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

    .widget-profit-axis span {
        font-size: 0.6875rem;
        color: var(--muted-color);
    }

.widget-profit-footer {
    display: flex;
    align-items: center;
    gap: var(--spacing-lg);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-color-light);
}

.widget-profit-stat {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

    .widget-profit-stat .value {
        font-size: 1.125rem;
        font-weight: 700;
        color: var(--heading-color);
    }

    .widget-profit-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.widget-profit-stat-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-xs);
}

    .widget-profit-stat-icon.primary {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .widget-profit-stat-icon.warning {
        background: var(--warning-color-light);
        color: var(--warning-color);
    }

/* Product Sales Donut */
.widget-product-donut {
    position: relative;
    width: 150px;
    height: 150px;
    margin: 0 auto var(--spacing-md);
}

    .widget-product-donut svg {
        width: 100%;
        height: 100%;
        transform: rotate(-90deg);
    }

.widget-product-donut-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

    .widget-product-donut-center .value {
        font-size: 1.5rem;
        font-weight: 700;
        color: var(--heading-color);
        display: block;
    }

.widget-product-legend {
    margin-bottom: var(--spacing-md);
}

.widget-product-legend-row {
    display: flex;
    justify-content: space-around;
    margin-bottom: var(--spacing-xs);
}

    .widget-product-legend-row span {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

        .widget-product-legend-row span i {
            font-size: 0.5rem;
        }

.widget-product-note {
    font-size: 0.75rem;
}

/* Sales Overview */
.widget-overview-header {
    margin-bottom: var(--spacing-md);
}

.widget-overview-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 2px;
}

.widget-overview-donut {
    position: relative;
    width: 150px;
    height: 150px;
    margin: 0 auto var(--spacing-md);
}

    .widget-overview-donut svg {
        width: 100%;
        height: 100%;
        transform: rotate(-90deg);
    }

.widget-overview-donut-value {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-overview-stats {
    display: flex;
    justify-content: center;
    gap: var(--spacing-lg);
}

.widget-overview-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-xs);
}

    .widget-overview-stat i {
        color: var(--muted-color);
    }

    .widget-overview-stat .value {
        font-size: 1rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .widget-overview-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

/* Marketing Mini */
.widget-marketing-mini {
    display: flex;
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
}

.widget-marketing-mini-stats {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.widget-marketing-mini-stat {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .widget-marketing-mini-stat .icon {
        width: 32px;
        height: 32px;
        border-radius: var(--radius-md);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.875rem;
    }

        .widget-marketing-mini-stat .icon.primary {
            background: color-mix(in srgb, var(--accent-color), transparent 90%);
            color: var(--accent-color);
        }

        .widget-marketing-mini-stat .icon.warning {
            background: var(--warning-color-light);
            color: var(--warning-color);
        }

        .widget-marketing-mini-stat .icon.success {
            background: var(--success-color-light);
            color: var(--success-color);
        }

    .widget-marketing-mini-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
        display: block;
    }

    .widget-marketing-mini-stat .value {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
    }

.widget-marketing-mini-chart {
    position: relative;
    width: 80px;
    height: 80px;
}

    .widget-marketing-mini-chart svg {
        width: 100%;
        height: 100%;
        transform: rotate(-90deg);
    }

    .widget-marketing-mini-chart .value {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--heading-color);
    }

.widget-marketing-mini-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md);
    background: var(--background-color);
    border-radius: var(--radius-md);
}

    .widget-marketing-mini-footer span {
        font-size: 0.8125rem;
        color: var(--muted-color);
    }

/* Annual Profit */
.widget-annual-chart {
    position: relative;
    margin-bottom: var(--spacing-md);
}

    .widget-annual-chart svg {
        width: 100%;
        height: 60px;
    }

.widget-annual-rate {
    position: absolute;
    top: 0;
    right: 0;
    text-align: right;
}

    .widget-annual-rate .label {
        font-size: 0.75rem;
        color: var(--muted-color);
        display: block;
    }

    .widget-annual-rate .value {
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--heading-color);
    }

.widget-annual-stats {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.widget-annual-stat .label {
    font-size: 0.8125rem;
    color: var(--heading-color);
    display: block;
}

.widget-annual-stat .sublabel {
    font-size: 0.75rem;
    color: var(--muted-color);
    display: block;
    margin-bottom: var(--spacing-xs);
}

.widget-annual-stat-value {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

    .widget-annual-stat-value .value {
        font-size: 1rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .widget-annual-stat-value .change {
        font-size: 0.75rem;
        font-weight: 500;
    }

        .widget-annual-stat-value .change.positive {
            color: var(--success-color);
        }

        .widget-annual-stat-value .change.negative {
            color: var(--danger-color);
        }

/*--------------------------------------------------------------
# Widget Apps Page Styles
--------------------------------------------------------------*/
.widget-comment-item {
    display: flex;
    gap: 0.75rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--border-color);
    position: relative;
}

    .widget-comment-item:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .widget-comment-item:first-child {
        padding-top: 0;
    }

.widget-comment-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
}

.widget-comment-content {
    flex: 1;
    min-width: 0;
}

.widget-comment-author {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.25rem;
}

.widget-comment-text {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: 0.5rem;
    line-height: 1.5;
}

.widget-comment-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

    .widget-comment-actions .btn-link {
        color: var(--muted-color);
    }

        .widget-comment-actions .btn-link:hover {
            color: var(--accent-color);
        }

.widget-comment-date {
    position: absolute;
    top: 1rem;
    right: 0;
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-todo-list .widget-todo-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border-bottom: 1px solid var(--border-color);
}

    .widget-todo-list .widget-todo-item:last-child {
        border-bottom: none;
    }

.widget-todo-check {
    padding-top: 0.125rem;
}

    .widget-todo-check .form-check-input {
        width: 18px;
        height: 18px;
    }

.widget-todo-content {
    flex: 1;
    min-width: 0;
}

.widget-todo-title {
    font-size: 0.875rem;
    color: var(--heading-color);
    font-weight: 500;
    margin-bottom: 0.25rem;
    cursor: pointer;
}

.form-check-input:checked + .widget-todo-title {
    text-decoration: line-through;
    color: var(--muted-color);
}

.widget-todo-date {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-projects-table th {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--muted-color);
    border-bottom: 1px solid var(--border-color);
    padding: 0.75rem 1rem;
}

.widget-projects-table td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
}

.widget-projects-table tr:last-child td {
    border-bottom: none;
}

.widget-project-assignee {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.widget-project-initial {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--contrast-color);
    font-size: 0.75rem;
    font-weight: 600;
    flex-shrink: 0;
}

.widget-project-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.widget-project-role {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-project-client {
    font-size: 0.875rem;
    color: var(--accent-color);
}

.widget-weather-main {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.widget-weather-icon {
    font-size: 3rem;
    color: var(--warning-color);
}

.widget-weather-temp {
    display: flex;
    align-items: flex-start;
}

.widget-weather-degree {
    font-size: 3rem;
    font-weight: 600;
    color: var(--heading-color);
    line-height: 1;
}

.widget-weather-unit {
    font-size: 1.5rem;
    color: var(--muted-color);
}

.widget-weather-info h5 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.25rem;
}

.widget-weather-info p {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-weather-details {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.widget-weather-detail {
    display: flex;
    justify-content: space-between;
}

    .widget-weather-detail .label {
        font-size: 0.8125rem;
        color: var(--muted-color);
    }

    .widget-weather-detail .value {
        font-size: 0.8125rem;
        font-weight: 500;
        color: var(--heading-color);
    }

.widget-weather-forecast {
    display: flex;
    justify-content: space-between;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
}

.widget-weather-forecast-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

    .widget-weather-forecast-item .time {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

    .widget-weather-forecast-item i {
        font-size: 1.25rem;
        color: var(--warning-color);
    }

    .widget-weather-forecast-item .temp {
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--heading-color);
    }

.widget-user-profile-full .card-body {
    padding: 2rem 1.5rem;
}

.widget-user-profile-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    margin-bottom: 1rem;
}

.widget-user-profile-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.25rem;
}

.widget-user-profile-email {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-bottom: 1rem;
}

.widget-user-profile-tags {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.widget-user-profile-actions {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
}

.widget-message-list .widget-message-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color);
}

    .widget-message-list .widget-message-item:last-child {
        border-bottom: none;
    }

    .widget-message-list .widget-message-item:hover {
        background-color: var(--background-color);
    }

.widget-message-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    flex-shrink: 0;
}

.widget-message-content {
    flex: 1;
    min-width: 0;
}

.widget-message-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    margin-bottom: 0;
}

.widget-message-email {
    font-size: 0.75rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-user-stats-card .card-body {
    padding: 1.5rem;
}

.widget-user-stats-avatar {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    margin-bottom: 0.75rem;
}

.widget-user-stats-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.25rem;
}

.widget-user-stats-role {
    font-size: 0.875rem;
    color: var(--accent-color);
    margin-bottom: 0.75rem;
}

.widget-user-stats-grid {
    display: flex;
    justify-content: center;
    gap: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
}

.widget-user-stat {
    text-align: center;
}

.widget-user-stat-value {
    display: block;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
}

.widget-user-stat-label {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-description-text {
    font-size: 0.875rem;
    color: var(--muted-color);
    line-height: 1.6;
    margin-bottom: 1rem;
}

.widget-description-actions {
    display: flex;
    gap: 0.5rem;
}

.widget-browser-list .widget-browser-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color);
}

    .widget-browser-list .widget-browser-item:last-child {
        border-bottom: none;
    }

.widget-browser-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}

    .widget-browser-icon.chrome {
        background-color: #4285f4;
        color: var(--contrast-color);
    }

    .widget-browser-icon.firefox {
        background-color: #ff7139;
        color: var(--contrast-color);
    }

    .widget-browser-icon.safari {
        background-color: #0fb5ee;
        color: var(--contrast-color);
    }

    .widget-browser-icon.edge {
        background-color: #0078d4;
        color: var(--contrast-color);
    }

    .widget-browser-icon.opera {
        background-color: #ff1b2d;
        color: var(--contrast-color);
    }

    .widget-browser-icon.other {
        background-color: var(--muted-color);
        color: var(--contrast-color);
    }

.widget-browser-name {
    flex: 1;
    font-size: 0.875rem;
    color: var(--heading-color);
}

.widget-browser-percent {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.widget-people-card .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.widget-people-search {
    margin-bottom: 1rem;
}

.widget-people-list {
    margin-bottom: 1rem;
}

.widget-people-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
}

.widget-people-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
}

.widget-people-name {
    flex: 1;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.widget-people-actions {
    margin-top: 1rem;
}

.widget-currency-input {
    display: flex;
    gap: 0.5rem;
}

    .widget-currency-input .form-control {
        flex: 1;
    }

    .widget-currency-input .form-select {
        width: 80px;
        flex-shrink: 0;
    }

.widget-currency-swap {
    display: flex;
    justify-content: center;
    padding: 0.75rem 0;
}

.widget-social-profile .card-body {
    padding: 1.5rem;
}

.widget-social-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    margin-bottom: 1rem;
}

.widget-social-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 1rem;
}

.widget-social-stats {
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.widget-social-stat {
    text-align: center;
}

    .widget-social-stat .value {
        display: block;
        font-size: 1.125rem;
        font-weight: 600;
        color: var(--heading-color);
    }

    .widget-social-stat .label {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.widget-reviews-summary {
    text-align: center;
}

.widget-reviews-count {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-bottom: 0.5rem;
}

.widget-order-tabs {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.widget-order-tab {
    flex: 1;
    padding: 0.5rem 1rem;
    border: 1px solid var(--border-color);
    background: transparent;
    border-radius: var(--border-radius);
    font-size: 0.875rem;
    color: var(--default-color);
    cursor: pointer;
    transition: all 0.2s;
}

    .widget-order-tab.active {
        background-color: var(--accent-color);
        border-color: var(--accent-color);
        color: var(--contrast-color);
    }

    .widget-order-tab:hover:not(.active) {
        background-color: var(--background-color);
    }

.widget-poll-question {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--heading-color);
    margin-bottom: 1rem;
}

.widget-poll-options {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.widget-poll-option {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
}

    .widget-poll-option label {
        font-size: 0.875rem;
        color: var(--default-color);
        cursor: pointer;
    }

    .widget-poll-option.selected label {
        color: var(--accent-color);
        font-weight: 500;
    }

.widget-poll-results {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.widget-poll-result .widget-poll-result-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.5rem;
    font-size: 0.8125rem;
    color: var(--default-color);
}

.widget-poll-result .progress {
    background-color: var(--background-color);
}

.widget-feeds-list .widget-feed-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color);
}

    .widget-feeds-list .widget-feed-item:last-child {
        border-bottom: none;
    }

.widget-feed-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}

    .widget-feed-icon.warning {
        background-color: color-mix(in srgb, var(--warning-color), transparent 85%);
        color: var(--warning-color);
    }

    .widget-feed-icon.danger {
        background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

    .widget-feed-icon.success {
        background-color: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .widget-feed-icon.info {
        background-color: color-mix(in srgb, var(--info-color), transparent 85%);
        color: var(--info-color);
    }

    .widget-feed-icon.primary {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

.widget-feed-content {
    flex: 1;
    min-width: 0;
}

.widget-feed-text {
    font-size: 0.875rem;
    color: var(--default-color);
    margin: 0;
}

.widget-feed-time {
    font-size: 0.75rem;
    color: var(--muted-color);
    white-space: nowrap;
}

.widget-visits-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.widget-visit-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.widget-visit-info {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
}

.widget-visit-count {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
}

.widget-visit-country {
    font-size: 0.875rem;
    color: var(--muted-color);
}

.widget-visit-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

    .widget-visit-bar .progress {
        flex: 1;
        background-color: var(--background-color);
    }

.widget-visit-percent {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
    min-width: 40px;
    text-align: right;
}

.widget-earning-total {
    font-size: 2rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-bottom: 1rem;
}

.widget-earning-users {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.widget-earning-user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.widget-earning-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    flex-shrink: 0;
}

.widget-earning-name {
    flex: 1;
    font-size: 0.875rem;
    color: var(--heading-color);
}

@media (max-width: 991.98px) {
    .widget-weather-main {
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .widget-weather-details {
        gap: 0.5rem;
    }

    .widget-user-stats-grid {
        gap: 1.5rem;
    }

    .widget-social-stats {
        gap: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .widget-comment-item {
        flex-wrap: wrap;
        position: relative;
    }

    .widget-comment-date {
        position: static;
        width: 100%;
        margin-top: 0.5rem;
        order: 3;
    }

    .widget-comment-content {
        width: calc(100% - 52px);
    }

    .widget-comment-actions .btn {
        min-height: 44px;
        min-width: 44px;
    }

    .widget-todo-item {
        padding: 1rem;
        min-height: 60px;
    }

        .widget-todo-item .btn {
            min-height: 44px;
            min-width: 44px;
        }

    .widget-todo-check .form-check-input {
        width: 22px;
        height: 22px;
    }

    .widget-projects-table th, .widget-projects-table td {
        padding: 0.625rem 0.75rem;
    }

    .widget-project-assignee {
        gap: 0.5rem;
    }

    .widget-project-initial {
        width: 28px;
        height: 28px;
        font-size: 0.6875rem;
    }

    .widget-project-name {
        font-size: 0.8125rem;
    }

    .widget-project-role {
        font-size: 0.6875rem;
    }

    .widget-weather-forecast {
        gap: 0.5rem;
        flex-wrap: wrap;
        justify-content: center;
    }

    .widget-weather-forecast-item {
        flex: 0 0 auto;
        min-width: 60px;
    }

    .widget-user-profile-avatar,
    .widget-social-avatar {
        width: 64px;
        height: 64px;
    }

    .widget-user-stats-avatar {
        width: 56px;
        height: 56px;
    }

    .widget-user-profile-actions,
    .widget-description-actions {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

        .widget-user-profile-actions .btn,
        .widget-description-actions .btn {
            min-height: 44px;
        }

    .widget-message-item {
        padding: 0.625rem 1rem;
        min-height: 56px;
    }

    .widget-browser-item {
        padding: 0.625rem 1rem;
        min-height: 52px;
    }

    .widget-people-item {
        padding: 0.625rem 0;
        gap: 0.5rem;
    }

        .widget-people-item .btn {
            min-height: 44px;
            padding: 0.375rem 0.75rem;
        }

    .widget-people-actions .btn {
        min-height: 44px;
    }

    .widget-currency-input {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

        .widget-currency-input .form-control {
            min-height: 44px;
        }

        .widget-currency-input .form-select {
            width: 100%;
            min-height: 44px;
        }

    .widget-currency-swap .btn {
        width: 44px;
        height: 44px;
    }

    .widget-poll-option {
        padding: 0.75rem 0;
    }

        .widget-poll-option .form-check-input {
            width: 20px;
            height: 20px;
        }

        .widget-poll-option label {
            font-size: 0.8125rem;
        }

    .widget-feed-item {
        padding: 0.625rem 1rem;
        min-height: 52px;
    }

    .widget-visit-count {
        font-size: 1.25rem;
    }

    .widget-visit-bar {
        gap: 0.5rem;
    }

    .widget-earning-user {
        padding: 0.5rem 0;
        min-height: 52px;
    }
}

@media (max-width: 575.98px) {
    .widget-comment-avatar {
        width: 32px;
        height: 32px;
    }

    .widget-comment-content {
        width: calc(100% - 44px);
    }

    .widget-comment-author {
        font-size: 0.8125rem;
    }

    .widget-comment-text {
        font-size: 0.75rem;
        line-height: 1.4;
    }

    .widget-comment-date {
        font-size: 0.6875rem;
    }

    .widget-todo-item {
        padding: 0.75rem;
        gap: 0.5rem;
    }

    .widget-todo-title {
        font-size: 0.8125rem;
    }

    .widget-todo-date {
        font-size: 0.6875rem;
    }

    .widget-projects-table {
        font-size: 0.8125rem;
    }

        .widget-projects-table th, .widget-projects-table td {
            padding: 0.5rem;
        }

    .widget-project-initial {
        width: 24px;
        height: 24px;
        font-size: 0.625rem;
    }

    .widget-project-name {
        font-size: 0.75rem;
    }

    .widget-project-role {
        font-size: 0.625rem;
    }

    .widget-project-client {
        font-size: 0.75rem;
    }

    .widget-weather-main {
        margin-bottom: 1rem;
    }

    .widget-weather-icon {
        font-size: 2.5rem;
    }

    .widget-weather-degree {
        font-size: 2.5rem;
    }

    .widget-weather-unit {
        font-size: 1.25rem;
    }

    .widget-weather-info h5 {
        font-size: 0.875rem;
    }

    .widget-weather-info p {
        font-size: 0.75rem;
    }

    .widget-weather-details {
        grid-template-columns: 1fr;
        margin-bottom: 1rem;
    }

    .widget-weather-detail .label, .widget-weather-detail .value {
        font-size: 0.75rem;
    }

    .widget-weather-forecast-item {
        min-width: 50px;
    }

        .widget-weather-forecast-item .time {
            font-size: 0.6875rem;
        }

        .widget-weather-forecast-item i {
            font-size: 1rem;
        }

        .widget-weather-forecast-item .temp {
            font-size: 0.75rem;
        }

    .widget-user-profile-full .card-body {
        padding: 1.5rem 1rem;
    }

    .widget-user-profile-avatar,
    .widget-social-avatar {
        width: 56px;
        height: 56px;
    }

    .widget-user-profile-name,
    .widget-social-name {
        font-size: 0.9375rem;
    }

    .widget-user-profile-email {
        font-size: 0.8125rem;
    }

    .widget-user-profile-tags {
        gap: 0.375rem;
    }

        .widget-user-profile-tags .badge {
            font-size: 0.6875rem;
        }

    .widget-message-avatar {
        width: 32px;
        height: 32px;
    }

    .widget-message-name {
        font-size: 0.8125rem;
    }

    .widget-message-email {
        font-size: 0.6875rem;
    }

    .widget-user-stats-card .card-body {
        padding: 1rem;
    }

    .widget-user-stats-avatar {
        width: 48px;
        height: 48px;
    }

    .widget-user-stats-name {
        font-size: 0.9375rem;
    }

    .widget-user-stats-role {
        font-size: 0.8125rem;
    }

    .widget-user-stats-grid {
        gap: 1rem;
        padding-top: 0.75rem;
    }

    .widget-user-stat-value {
        font-size: 1rem;
    }

    .widget-user-stat-label {
        font-size: 0.6875rem;
    }

    .widget-description-text {
        font-size: 0.8125rem;
    }

    .widget-browser-icon {
        width: 24px;
        height: 24px;
        font-size: 0.75rem;
    }

    .widget-browser-name {
        font-size: 0.8125rem;
    }

    .widget-browser-percent {
        font-size: 0.8125rem;
    }

    .widget-people-avatar {
        width: 32px;
        height: 32px;
    }

    .widget-people-name {
        font-size: 0.8125rem;
    }

    .widget-social-profile .card-body {
        padding: 1.25rem 1rem;
    }

    .widget-social-stats {
        gap: 1rem;
    }

    .widget-social-stat .value {
        font-size: 1rem;
    }

    .widget-social-stat .label {
        font-size: 0.6875rem;
    }

    .widget-reviews-count {
        font-size: 2rem;
    }

    .widget-order-tabs {
        gap: 0.375rem;
    }

    .widget-order-tab {
        padding: 0.5rem 0.75rem;
        font-size: 0.8125rem;
        min-height: 44px;
    }

    .widget-poll-question {
        font-size: 0.875rem;
    }

    .widget-poll-option {
        gap: 0.5rem;
    }

    .widget-poll-result .widget-poll-result-header {
        font-size: 0.75rem;
    }

    .widget-feed-icon {
        width: 28px;
        height: 28px;
        font-size: 0.75rem;
    }

    .widget-feed-text {
        font-size: 0.8125rem;
    }

    .widget-feed-time {
        font-size: 0.6875rem;
    }

    .widget-visit-count {
        font-size: 1.125rem;
    }

    .widget-visit-country {
        font-size: 0.8125rem;
    }

    .widget-visit-percent {
        font-size: 0.8125rem;
        min-width: 35px;
    }

    .widget-earning-total {
        font-size: 1.75rem;
    }

    .widget-earning-avatar {
        width: 32px;
        height: 32px;
    }

    .widget-earning-name {
        font-size: 0.8125rem;
    }
}
/*--------------------------------------------------------------
# Widget Data Page Styles
--------------------------------------------------------------*/
.widget-stat-progress .card-body {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    position: relative;
    overflow: hidden;
}

.widget-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

    .widget-stat-icon.primary {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .widget-stat-icon.success {
        background-color: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .widget-stat-icon.warning {
        background-color: color-mix(in srgb, var(--warning-color), transparent 85%);
        color: var(--warning-color);
    }

    .widget-stat-icon.danger {
        background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

    .widget-stat-icon.info {
        background-color: color-mix(in srgb, var(--info-color), transparent 85%);
        color: var(--info-color);
    }

    .widget-stat-icon.secondary {
        background-color: color-mix(in srgb, var(--muted-color), transparent 85%);
        color: var(--muted-color);
    }

.widget-stat-content {
    flex: 1;
    min-width: 0;
}

.widget-stat-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
    line-height: 1.2;
}

.widget-stat-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.widget-stat-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
}

    .widget-stat-bar.primary {
        background-color: var(--accent-color);
    }

    .widget-stat-bar.success {
        background-color: var(--success-color);
    }

    .widget-stat-bar.warning {
        background-color: var(--warning-color);
    }

    .widget-stat-bar.danger {
        background-color: var(--danger-color);
    }

    .widget-stat-bar.info {
        background-color: var(--info-color);
    }

    .widget-stat-bar.secondary {
        background-color: var(--muted-color);
    }

.widget-icon-stat .card-body {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
}

.widget-icon-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

    .widget-icon-stat-icon.primary {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .widget-icon-stat-icon.success {
        background-color: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .widget-icon-stat-icon.warning {
        background-color: color-mix(in srgb, var(--warning-color), transparent 85%);
        color: var(--warning-color);
    }

    .widget-icon-stat-icon.danger {
        background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

    .widget-icon-stat-icon.info {
        background-color: color-mix(in srgb, var(--info-color), transparent 85%);
        color: var(--info-color);
    }

    .widget-icon-stat-icon.secondary {
        background-color: color-mix(in srgb, var(--muted-color), transparent 85%);
        color: var(--muted-color);
    }

.widget-icon-stat-content {
    flex: 1;
}

.widget-icon-stat-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-icon-stat-label {
    font-size: 0.875rem;
    color: var(--muted-color);
}

.widget-icon-left-stat .card-body {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
}

.widget-icon-left-icon {
    width: 44px;
    height: 44px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
}

    .widget-icon-left-icon.primary {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .widget-icon-left-icon.success {
        background-color: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .widget-icon-left-icon.warning {
        background-color: color-mix(in srgb, var(--warning-color), transparent 85%);
        color: var(--warning-color);
    }

    .widget-icon-left-icon.danger {
        background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

    .widget-icon-left-icon.info {
        background-color: color-mix(in srgb, var(--info-color), transparent 85%);
        color: var(--info-color);
    }

    .widget-icon-left-icon.secondary {
        background-color: color-mix(in srgb, var(--muted-color), transparent 85%);
        color: var(--muted-color);
    }

.widget-icon-left-content {
    flex: 1;
}

.widget-icon-left-value {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-icon-left-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.widget-weather-image-card {
    overflow: hidden;
    border: none;
}

.widget-weather-image-bg {
    padding: 2rem;
    min-height: 200px;
    display: flex;
    align-items: flex-end;
    position: relative;
}

.widget-weather-image-content {
    color: var(--contrast-color);
}

.widget-weather-location {
    font-size: 0.875rem;
    opacity: 0.9;
    margin-bottom: 0.5rem;
}

.widget-weather-temp-large {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

    .widget-weather-temp-large i {
        font-size: 2rem;
    }

    .widget-weather-temp-large span {
        font-size: 2.5rem;
        font-weight: 600;
        line-height: 1;
    }

        .widget-weather-temp-large span small {
            font-size: 1rem;
            opacity: 0.8;
        }

.widget-weather-day {
    font-size: 0.875rem;
    opacity: 0.9;
}

.widget-weather-simple .card-body {
    padding: 1.5rem;
}

.widget-weather-simple-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.widget-weather-simple-temp {
    font-size: 2rem;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0;
}

.widget-weather-simple-location {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-weather-simple-icon {
    font-size: 2.5rem;
    color: var(--info-color);
}

.widget-weather-simple-date {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.widget-weather-compact .card-body {
    padding: 1rem;
    text-align: center;
}

.widget-weather-compact-icon {
    font-size: 2rem;
    color: var(--warning-color);
    margin-bottom: 0.5rem;
}

.widget-weather-compact-temp {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.25rem;
}

    .widget-weather-compact-temp small {
        font-size: 0.75rem;
        color: var(--muted-color);
    }

.widget-weather-compact-date {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-weather-compact-info {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: var(--muted-color);
    margin-bottom: 0.5rem;
}

.widget-weather-week {
    display: flex;
    justify-content: space-around;
    padding: 1rem 0;
}

.widget-weather-week-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    transition: background-color 0.2s;
}

    .widget-weather-week-item.active {
        background-color: var(--accent-color);
    }

        .widget-weather-week-item.active .day, .widget-weather-week-item.active .temp {
            color: var(--contrast-color);
        }

        .widget-weather-week-item.active i {
            color: var(--contrast-color);
        }

    .widget-weather-week-item .day {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--muted-color);
        text-transform: uppercase;
    }

    .widget-weather-week-item i {
        font-size: 1.5rem;
        color: var(--warning-color);
    }

    .widget-weather-week-item .temp {
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--heading-color);
    }

.widget-crypto-card {
    border: none;
    color: var(--contrast-color);
}

    .widget-crypto-card.ethereum {
        background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    }

    .widget-crypto-card.dash {
        background: linear-gradient(135deg, #0ea5e9 0%, #06b6d4 100%);
    }

    .widget-crypto-card.bitcoin {
        background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
    }

    .widget-crypto-card.ripple {
        background: linear-gradient(135deg, #ec4899 0%, #f43f5e 100%);
    }

    .widget-crypto-card .card-body {
        display: flex;
        align-items: center;
        gap: 1rem;
        padding: 1.25rem;
    }

.widget-crypto-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
}

.widget-crypto-info {
    flex: 1;
}

.widget-crypto-name {
    display: block;
    font-size: 0.9375rem;
    font-weight: 600;
}

.widget-crypto-value {
    font-size: 0.8125rem;
    opacity: 0.9;
}

.widget-crypto-stats {
    border: none;
    color: var(--contrast-color);
}

    .widget-crypto-stats.primary {
        background: linear-gradient(135deg, var(--accent-color) 0%, color-mix(in srgb, var(--accent-color), black 15%) 100%);
    }

    .widget-crypto-stats.success {
        background: linear-gradient(135deg, var(--success-color) 0%, color-mix(in srgb, var(--success-color), black 15%) 100%);
    }

    .widget-crypto-stats.danger {
        background: linear-gradient(135deg, var(--danger-color) 0%, color-mix(in srgb, var(--danger-color), black 15%) 100%);
    }

    .widget-crypto-stats.info {
        background: linear-gradient(135deg, var(--info-color) 0%, color-mix(in srgb, var(--info-color), black 15%) 100%);
    }

    .widget-crypto-stats.warning {
        background: linear-gradient(135deg, var(--warning-color) 0%, color-mix(in srgb, var(--warning-color), black 15%) 100%);
    }

    .widget-crypto-stats.secondary {
        background: linear-gradient(135deg, #ec4899 0%, #db2777 100%);
    }

    .widget-crypto-stats .card-body {
        padding: 1.25rem;
    }

.widget-crypto-stats-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.widget-crypto-stats-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
}

.widget-crypto-stats-info {
    flex: 1;
}

.widget-crypto-stats-name {
    display: block;
    font-size: 1rem;
    font-weight: 600;
}

.widget-crypto-stats-category {
    font-size: 0.8125rem;
    opacity: 0.8;
}

.widget-crypto-stats-grid {
    display: flex;
    justify-content: space-between;
}

.widget-crypto-stat-item {
    text-align: center;
}

    .widget-crypto-stat-item .label {
        display: block;
        font-size: 0.75rem;
        opacity: 0.8;
        margin-bottom: 0.25rem;
    }

    .widget-crypto-stat-item .value {
        font-size: 0.875rem;
        font-weight: 500;
    }

        .widget-crypto-stat-item .value.up {
            color: #86efac;
        }

        .widget-crypto-stat-item .value.down {
            color: #fca5a5;
        }

.widget-simple-stat .card-body {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
}

.widget-simple-stat-icon {
    width: 44px;
    height: 44px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
}

    .widget-simple-stat-icon.primary {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .widget-simple-stat-icon.success {
        background-color: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .widget-simple-stat-icon.warning {
        background-color: color-mix(in srgb, var(--warning-color), transparent 85%);
        color: var(--warning-color);
    }

    .widget-simple-stat-icon.danger {
        background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.widget-simple-stat-content {
    flex: 1;
    min-width: 0;
}

.widget-simple-stat-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--heading-color);
}

.widget-simple-stat-sublabel {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.widget-simple-stat-value {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-colored-stat {
    border: none;
    color: var(--contrast-color);
}

    .widget-colored-stat.primary {
        background: linear-gradient(135deg, var(--accent-color) 0%, color-mix(in srgb, var(--accent-color), black 15%) 100%);
    }

    .widget-colored-stat.success {
        background: linear-gradient(135deg, var(--success-color) 0%, color-mix(in srgb, var(--success-color), black 15%) 100%);
    }

    .widget-colored-stat.info {
        background: linear-gradient(135deg, var(--info-color) 0%, color-mix(in srgb, var(--info-color), black 15%) 100%);
    }

    .widget-colored-stat.danger {
        background: linear-gradient(135deg, var(--danger-color) 0%, color-mix(in srgb, var(--danger-color), black 15%) 100%);
    }

    .widget-colored-stat .card-body {
        display: flex;
        align-items: center;
        gap: 1rem;
        padding: 1.25rem;
    }

.widget-colored-stat-icon {
    width: 44px;
    height: 44px;
    border-radius: 0.5rem;
    background-color: rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
}

.widget-colored-stat-content {
    flex: 1;
    min-width: 0;
}

.widget-colored-stat-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
}

.widget-colored-stat-sublabel {
    font-size: 0.75rem;
    opacity: 0.8;
}

.widget-colored-stat-value {
    font-size: 1.125rem;
    font-weight: 700;
}

.widget-product-item .card-body {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
}

.widget-product-item-image {
    width: 60px;
    height: 60px;
    border-radius: 0.5rem;
    overflow: hidden;
    flex-shrink: 0;
}

    .widget-product-item-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.widget-product-item-content {
    flex: 1;
    min-width: 0;
}

.widget-product-item-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.25rem;
}

.widget-product-item-author {
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin: 0;
}

.widget-info-stat .card-body {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
}

.widget-info-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

    .widget-info-stat-icon.primary {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .widget-info-stat-icon.success {
        background-color: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .widget-info-stat-icon.warning {
        background-color: color-mix(in srgb, var(--warning-color), transparent 85%);
        color: var(--warning-color);
    }

    .widget-info-stat-icon.danger {
        background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.widget-info-stat-content {
    flex: 1;
}

.widget-info-stat-value {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-info-stat-label {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.widget-progress-stat .card-body {
    padding: 1.25rem;
}

.widget-progress-stat-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.5rem;
}

.widget-progress-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-progress-stat-icon {
    width: 40px;
    height: 40px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

    .widget-progress-stat-icon.primary {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

    .widget-progress-stat-icon.success {
        background-color: color-mix(in srgb, var(--success-color), transparent 85%);
        color: var(--success-color);
    }

    .widget-progress-stat-icon.info {
        background-color: color-mix(in srgb, var(--info-color), transparent 85%);
        color: var(--info-color);
    }

    .widget-progress-stat-icon.danger {
        background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
        color: var(--danger-color);
    }

.widget-progress-stat-label {
    display: block;
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: 0.75rem;
}

.widget-progress-bar {
    background-color: var(--background-color);
}

.widget-featured-card {
    overflow: hidden;
}

.widget-featured-image {
    height: 180px;
    overflow: hidden;
}

    .widget-featured-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.3s;
    }

    .widget-featured-image:hover img {
        transform: scale(1.05);
    }

.widget-featured-meta {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    font-size: 0.8125rem;
    color: var(--muted-color);
}

    .widget-featured-meta i {
        margin-right: 0.25rem;
    }

.widget-featured-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.5rem;
}

.widget-featured-desc {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-bottom: 1rem;
    line-height: 1.5;
}

.widget-bottom-progress .card-body {
    padding: 1.25rem;
}

.widget-bottom-progress-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color);
}

.widget-bottom-progress-label {
    display: block;
    font-size: 0.8125rem;
    color: var(--muted-color);
    margin-bottom: 0.75rem;
}

/*--------------------------------------------------------------
# Responsive Tables Page Styles
--------------------------------------------------------------*/
/* Stacked Table Pattern - transforms to card-like layout on mobile */
@media (max-width: 1200px) {
    .table-stacked thead {
        display: none;
    }

    .table-stacked tbody tr {
        display: block;
        margin-bottom: var(--spacing-md);
        padding: var(--spacing-md);
        background-color: var(--surface-color);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-lg);
    }

    .table-stacked tbody td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: var(--spacing-sm) 0;
        border: none;
        border-bottom: 1px solid var(--border-color-light);
    }

        .table-stacked tbody td:last-child {
            border-bottom: none;
        }

        .table-stacked tbody td::before {
            content: attr(data-label);
            font-weight: 600;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--muted-color);
            margin-right: var(--spacing-md);
        }
}
/* Scroll Indicator Wrapper */
.table-scroll-wrapper {
    position: relative;
}

    .table-scroll-wrapper::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 40px;
        background: linear-gradient(to right, transparent, var(--surface-color));
        pointer-events: none;
        opacity: 1;
        transition: opacity var(--transition-fast);
    }

    .table-scroll-wrapper.scrolled-end::after {
        opacity: 0;
    }

/* Sticky Column Table */
.table-sticky-col .sticky-col {
    position: sticky;
    left: 0;
    background-color: var(--surface-color);
    z-index: 1;
    min-width: 200px;
}

    .table-sticky-col .sticky-col::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 1px;
        background-color: var(--border-color);
    }

.table-sticky-col thead .sticky-col {
    background-color: var(--table-header-bg);
    z-index: 2;
}

.table-sticky-col tbody tr:hover .sticky-col {
    background-color: var(--table-hover-bg);
}

/* Dark mode adjustments */
[data-theme=dark] .table-scroll-wrapper::after {
    background: linear-gradient(to right, transparent, var(--surface-color));
}

[data-theme=dark] .table-sticky-col .sticky-col {
    background-color: var(--surface-color);
}

[data-theme=dark] .table-sticky-col thead .sticky-col {
    background-color: var(--table-header-bg);
}

[data-theme=dark] .table-sticky-col tbody tr:hover .sticky-col {
    background-color: var(--table-hover-bg);
}

/* ================================
   TABLET LAYOUT
   ================================ */
@media (min-width: 1200px) {
    .d-table-stacked-row {
        display: table-row !important;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .table-stacked tbody tr {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-bottom: var(--spacing-md);
        padding: var(--spacing-md);
        background-color: var(--surface-color);
        border: 1px solid #c8cfd9;
        border-radius: var(--radius-lg);
    }

    .table-stacked tbody td {
        display: flex;
        justify-content: space-between !important;
        gap: 6px;
        align-items: center;
        padding: 4px 10px !important;
        border: none;
    }

        .table-stacked tbody td::before {
            content: attr(data-label);
            font-size: 0.75rem;
            text-align: start;
            margin-left: 10px;
            color: var(--muted-color);
            background: var(--table-header-bg);
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

    .table-stacked tbody tr:has(td:last-child:nth-child(odd))::after {
        content: "";
    }
    /* Hover */
    .table-stacked tbody tr:hover::after {
        background-color: var(--table-hover-bg);
    }
    /* Selected */
    .table-stacked tbody tr.selected::after {
        background-color: var(--table-selected-bg);
    }

    .table-stacked tbody tr::before {
        content: "";
        position: absolute;
        top: 12px;
        bottom: 12px;
        left: 50%;
        width: 1px;
        background-color: var(--border-color);
        pointer-events: none;
    }

    .table-stacked tbody tr {
        position: relative; /* required */
    }
        /* Disable grid for empty row */
        .table-stacked tbody tr.table-empty-row {
            display: block;
            padding: var(--spacing-lg);
            text-align: center;
        }
            /* Removed headers && Remove fake grid cell && Remove vertical divider */
            .table-stacked thead, .table-stacked tbody tr.table-empty-row::after, .table-stacked tbody tr.table-empty-row::before {
                display: none;
            }
            /* Make td full width */
            .table-stacked tbody tr.table-empty-row td {
                justify-content: center !important;
            }
}
/*--------------------------------------------------------------
# Form Wizard Styles
--------------------------------------------------------------*/
/* Horizontal Wizard Steps */
.wizard-steps {
    display: flex;
    justify-content: space-between;
    position: relative;
}

    .wizard-steps::before {
        content: "";
        position: absolute;
        top: 20px;
        left: 0;
        right: 0;
        height: 2px;
        background: var(--border-color);
        z-index: 0;
    }

.wizard-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 1;
    flex: 1;
}

.wizard-step-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--surface-color);
    border: 2px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: var(--muted-color);
    transition: all var(--transition-base);
}

.wizard-step-number {
    font-size: 0.875rem;
}

.wizard-step-check {
    display: none;
}

.wizard-step-label {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    color: var(--muted-color);
    font-weight: 500;
    transition: color var(--transition-base);
}

.wizard-step.active .wizard-step-icon {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--contrast-color);
}

.wizard-step.active .wizard-step-label {
    color: var(--accent-color);
}

.wizard-step.completed .wizard-step-icon {
    background: var(--success-color);
    border-color: var(--success-color);
    color: var(--contrast-color);
}

.wizard-step.completed .wizard-step-number {
    display: none;
}

.wizard-step.completed .wizard-step-check {
    display: block;
}

.wizard-step.completed .wizard-step-label {
    color: var(--success-color);
}

/* Wizard Content */
.wizard-content {
    display: none;
    padding: 1.5rem 0;
}

    .wizard-content.active {
        display: block;
    }

/* Wizard Actions */
.wizard-actions {
    display: flex;
    justify-content: space-between;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
    margin-top: 1.5rem;
}

/* Wizard Finish Icon */
.wizard-finish-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
}

    .wizard-finish-icon.success {
        background: color-mix(in srgb, var(--success-color), transparent 90%);
        color: var(--success-color);
    }

/* Vertical Wizard */
.wizard-steps-vertical {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    padding-left: 1rem;
}

    .wizard-steps-vertical::before {
        content: "";
        position: absolute;
        left: calc(1rem + 15px);
        top: 30px;
        bottom: 30px;
        width: 2px;
        background: var(--border-color);
    }

.wizard-step-v {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 0;
    position: relative;
}

.wizard-step-v-icon {
    width: 32px;
    height: 32px;
    min-width: 32px;
    border-radius: 50%;
    background: var(--surface-color);
    border: 2px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--muted-color);
    transition: all var(--transition-base);
    z-index: 1;
}

.wizard-step-v-content {
    flex: 1;
}

.wizard-step-v-title {
    font-weight: 600;
    color: var(--muted-color);
    font-size: 0.9375rem;
    transition: color var(--transition-base);
}

.wizard-step-v-desc {
    font-size: 0.8125rem;
    color: var(--light-color);
}

.wizard-step-v.active .wizard-step-v-icon {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--contrast-color);
}

.wizard-step-v.active .wizard-step-v-title {
    color: var(--heading-color);
}

.wizard-step-v.completed .wizard-step-v-icon {
    background: var(--success-color);
    border-color: var(--success-color);
    color: var(--contrast-color);
}

.wizard-step-v.completed .wizard-step-v-title {
    color: var(--success-color);
}

.wizard-content-v {
    display: none;
}

    .wizard-content-v.active {
        display: block;
    }

/* Plan Cards */
.plan-card {
    position: relative;
}

    .plan-card .btn-check:checked + .plan-card-label {
        border-color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

.plan-card-label {
    display: block;
    padding: 1.5rem;
    border: 2px solid var(--border-color);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: all var(--transition-base);
    height: 100%;
}

    .plan-card-label:hover {
        border-color: var(--accent-color);
    }

    .plan-card-label.featured {
        border-color: var(--accent-color);
    }

.plan-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--accent-color);
    color: var(--contrast-color);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
}

.plan-card-header {
    text-align: center;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-color);
}

    .plan-card-header h6 {
        margin-bottom: 0.5rem;
        font-weight: 600;
    }

.plan-price {
    font-size: 2rem;
    font-weight: 700;
    color: var(--heading-color);
}

    .plan-price small {
        font-size: 0.875rem;
        font-weight: 400;
        color: var(--muted-color);
    }

.plan-features {
    list-style: none;
    padding: 0;
    margin: 0;
}

    .plan-features li {
        padding: 0.375rem 0;
        font-size: 0.875rem;
    }

        .plan-features li i {
            margin-right: 0.5rem;
        }

/* Order Summary */
.order-summary {
    background: var(--background-color);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
}

.order-summary-item {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
}

.order-total {
    padding-top: 1rem;
}

/* Progress Bar Wizard */
.wizard-progress {
    margin-bottom: 2rem;
}

.wizard-content-p {
    display: none;
    min-height: 200px;
}

    .wizard-content-p.active {
        display: block;
    }

/* Pills Wizard */
.wizard-pills {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

    .wizard-pills .nav-item {
        flex: 1;
        min-width: 120px;
        max-width: 200px;
    }

    .wizard-pills .nav-link {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.75rem 1rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        background: var(--surface-color);
        color: var(--muted-color);
        width: 100%;
        transition: all var(--transition-base);
    }

        .wizard-pills .nav-link:hover:not(:disabled) {
            border-color: var(--accent-color);
        }

        .wizard-pills .nav-link.active {
            background: var(--accent-color);
            border-color: var(--accent-color);
            color: var(--contrast-color);
        }

            .wizard-pills .nav-link.active .wizard-pill-number {
                background: rgba(255, 255, 255, 0.2);
                color: var(--contrast-color);
            }

        .wizard-pills .nav-link.completed {
            border-color: var(--success-color);
            color: var(--success-color);
        }

            .wizard-pills .nav-link.completed .wizard-pill-number {
                background: var(--success-color);
                color: var(--contrast-color);
            }

        .wizard-pills .nav-link:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }

.wizard-pill-number {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--background-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 600;
    flex-shrink: 0;
}

.wizard-pill-text {
    font-weight: 500;
    font-size: 0.875rem;
}

/* Icon Steps Wizard */
.wizard-icon-steps {
    display: flex;
    justify-content: space-between;
    position: relative;
}

    .wizard-icon-steps::before {
        content: "";
        position: absolute;
        top: 24px;
        left: 10%;
        right: 10%;
        height: 2px;
        background: var(--border-color);
    }

.wizard-icon-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 1;
    flex: 1;
}

.wizard-icon-step-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--surface-color);
    border: 2px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: var(--muted-color);
    transition: all var(--transition-base);
}

.wizard-icon-step-label {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    color: var(--muted-color);
    font-weight: 500;
    text-align: center;
}

.wizard-icon-step.active .wizard-icon-step-icon {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--contrast-color);
}

.wizard-icon-step.active .wizard-icon-step-label {
    color: var(--accent-color);
}

.wizard-icon-step.completed .wizard-icon-step-icon {
    background: var(--success-color);
    border-color: var(--success-color);
    color: var(--contrast-color);
}

.wizard-icon-step.completed .wizard-icon-step-label {
    color: var(--success-color);
}

.wizard-content-i {
    display: none;
    padding: 1.5rem 0;
}

    .wizard-content-i.active {
        display: block;
    }

/* Responsive */
@media (max-width: 767.98px) {
    .wizard-steps {
        flex-wrap: wrap;
        gap: 1rem;
    }

        .wizard-steps::before {
            display: none;
        }

    .wizard-step {
        flex: 0 0 calc(50% - 0.5rem);
    }

    .wizard-icon-steps {
        flex-wrap: wrap;
        gap: 1rem;
    }

        .wizard-icon-steps::before {
            display: none;
        }

    .wizard-icon-step {
        flex: 0 0 calc(33.333% - 0.75rem);
    }

    .wizard-pills .nav-item {
        min-width: 100%;
        max-width: 100%;
    }
}
/*--------------------------------------------------------------
# Rich Text Editors Styles
--------------------------------------------------------------*/
/* Quill Editor Overrides */
.ql-toolbar.ql-snow {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    background: var(--background-color);
}

.ql-container.ql-snow {
    border: 1px solid var(--border-color);
    border-top: 0;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    font-family: inherit;
    font-size: 0.9375rem;
}

.ql-editor {
    min-height: 200px;
    color: var(--default-color);
}

    .ql-editor.ql-blank::before {
        color: var(--light-color);
        font-style: normal;
    }

.ql-snow .ql-stroke {
    stroke: var(--default-color);
}

    .ql-snow .ql-fill,
    .ql-snow .ql-stroke.ql-fill {
        fill: var(--default-color);
    }

.ql-snow .ql-picker {
    color: var(--default-color);
}

.ql-snow .ql-picker-options {
    background-color: var(--surface-color);
    border-color: var(--border-color);
}

.ql-snow .ql-picker.ql-expanded .ql-picker-options {
    border-color: var(--border-color);
}

/* Quill Bubble Theme */
.ql-container.ql-bubble {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
}

.ql-bubble .ql-editor {
    min-height: 200px;
    padding: 1rem;
}

.ql-bubble .ql-tooltip {
    background-color: var(--heading-color);
    border-radius: var(--radius-md);
    z-index: 1050;
}

/* TinyMCE Overrides */
.tox-tinymce {
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
}

.tox .tox-toolbar,
.tox .tox-toolbar__overflow,
.tox .tox-toolbar__primary {
    background-color: var(--background-color) !important;
}

.tox:not(.tox-tinymce-inline) .tox-editor-header {
    border-bottom: 1px solid var(--border-color) !important;
}

/* Markdown Editor */
.markdown-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.markdown-preview {
    min-height: 200px;
    padding: 1rem;
    background: var(--background-color);
    border-radius: var(--radius-md);
    overflow-y: auto;
    max-height: 400px;
}

    .markdown-preview h1, .markdown-preview h2, .markdown-preview h3, .markdown-preview h4, .markdown-preview h5, .markdown-preview h6 {
        margin-top: 1rem;
        margin-bottom: 0.5rem;
        color: var(--heading-color);
    }

    .markdown-preview h1 {
        font-size: 1.75rem;
    }

    .markdown-preview h2 {
        font-size: 1.5rem;
    }

    .markdown-preview h3 {
        font-size: 1.25rem;
    }

    .markdown-preview p {
        margin-bottom: 0.75rem;
    }

    .markdown-preview code {
        padding: 0.125rem 0.375rem;
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
        border-radius: var(--radius-sm);
        font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
        font-size: 0.875em;
    }

    .markdown-preview pre {
        background: var(--heading-color);
        color: var(--background-color);
        padding: 1rem;
        border-radius: var(--radius-md);
        overflow-x: auto;
        margin-bottom: 1rem;
    }

        .markdown-preview pre code {
            padding: 0;
            background: transparent;
            color: inherit;
            border-radius: 0;
        }

    .markdown-preview blockquote {
        border-left: 4px solid var(--accent-color);
        padding-left: 1rem;
        margin-left: 0;
        color: var(--muted-color);
        font-style: italic;
    }

    .markdown-preview ul, .markdown-preview ol {
        margin-bottom: 0.75rem;
        padding-left: 1.5rem;
    }

    .markdown-preview li {
        margin-bottom: 0.25rem;
    }

    .markdown-preview a {
        color: var(--accent-color);
        text-decoration: underline;
    }

        .markdown-preview a:hover {
            color: color-mix(in srgb, var(--accent-color), black 15%);
        }

    .markdown-preview img {
        max-width: 100%;
        height: auto;
        border-radius: var(--radius-md);
    }

/* Code Editor */
.code-editor-wrapper {
    display: flex;
    background: #1e1e1e;
    border-radius: var(--radius-md);
    overflow: hidden;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.875rem;
    line-height: 1.6;
}

.code-editor-lines {
    display: flex;
    flex-direction: column;
    padding: 1rem 0.5rem;
    background: #252526;
    color: #858585;
    text-align: right;
    user-select: none;
    min-width: 40px;
    overflow: hidden;
}

    .code-editor-lines span {
        display: block;
        height: 1.6em;
    }

.code-editor {
    flex: 1;
    padding: 1rem;
    background: #1e1e1e;
    color: #d4d4d4;
    border: none;
    outline: none;
    resize: none;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    min-height: 300px;
    tab-size: 2;
}

    .code-editor::placeholder {
        color: #858585;
    }

/* Dark Mode Adjustments */
[data-theme=dark] .ql-toolbar.ql-snow {
    background: var(--surface-color);
}

[data-theme=dark] .ql-snow .ql-stroke {
    stroke: var(--default-color);
}

    [data-theme=dark] .ql-snow .ql-fill,
    [data-theme=dark] .ql-snow .ql-stroke.ql-fill {
        fill: var(--default-color);
    }

[data-theme=dark] .ql-snow .ql-picker {
    color: var(--default-color);
}

[data-theme=dark] .ql-snow .ql-picker-options {
    background-color: var(--surface-color);
}

[data-theme=dark] .ql-editor {
    background: var(--surface-color);
}

[data-theme=dark] .markdown-preview {
    background: var(--surface-color);
}

    [data-theme=dark] .markdown-preview pre {
        background: #0d1117;
    }

/* Responsive */
@media (max-width: 767.98px) {
    .markdown-toolbar .btn-group {
        margin-bottom: 0.25rem;
    }

    .code-editor-lines {
        display: none;
    }

    .code-editor {
        border-radius: var(--radius-md);
    }
}
/*--------------------------------------------------------------
# Advanced Select / Choices.js Styles
--------------------------------------------------------------*/
/* Choices.js Container */
.choices {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.choices__inner {
    background-color: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 0.375rem 0.75rem;
    min-height: calc(2.5rem + 2px);
    font-size: inherit;
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.is-focused .choices__inner {
    border-color: var(--accent-color);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--accent-color), transparent 75%);
}

.is-disabled .choices__inner {
    background-color: var(--background-color);
    cursor: not-allowed;
}

/* Placeholder */
.choices__placeholder {
    color: var(--muted-color);
    opacity: 1;
}

/* Input */
.choices__input {
    background-color: transparent;
    color: var(--default-color);
    font-size: inherit;
    margin-bottom: 0;
    padding: 0;
}

    .choices__input::placeholder {
        color: var(--muted-color);
    }

.choices__input--cloned {
    margin-bottom: 0 !important;
}

/* Dropdown List */
.choices__list--dropdown {
    background-color: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    margin-top: 4px;
    box-shadow: var(--shadow-lg);
    z-index: 1050;
}

    .choices__list--dropdown .choices__item {
        padding: 0.5rem 0.75rem;
        font-size: 0.9375rem;
        color: var(--default-color);
    }

    .choices__list--dropdown .choices__item--selectable:hover, .choices__list--dropdown .choices__item--selectable.is-highlighted {
        background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

    .choices__list--dropdown .choices__item--disabled {
        color: var(--muted-color);
        cursor: not-allowed;
        opacity: 0.6;
    }

        .choices__list--dropdown .choices__item--disabled:hover {
            background-color: transparent;
        }

    .choices__list--dropdown .choices__item--choice.is-selected {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
        color: var(--accent-color);
    }

.choices__list--dropdown {
    /* Search Input in Dropdown */
}

    .choices__list--dropdown .choices__input {
        background-color: var(--surface-color);
        border-bottom: 1px solid var(--border-color);
        padding: 0.5rem 0.75rem;
        margin: 0;
    }

.choices__list--dropdown {
    /* No Results */
}

    .choices__list--dropdown .choices__item--disabled.has-no-results {
        color: var(--muted-color);
        text-align: center;
        font-style: italic;
    }

/* Single Select */
.choices__list--single {
    padding: 0;
}

    .choices__list--single .choices__item {
        color: var(--default-color);
    }

/* Multiple Select - Tags */
.choices__list--multiple {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 0;
}

    .choices__list--multiple .choices__item {
        display: inline-flex;
        align-items: center;
        padding: 0.125rem 0.5rem;
        margin: 0;
        background-color: var(--accent-color);
        color: var(--contrast-color);
        border: none;
        border-radius: var(--radius-sm);
        font-size: 0.8125rem;
        font-weight: 500;
    }

        .choices__list--multiple .choices__item.is-highlighted {
            background-color: color-mix(in srgb, var(--accent-color), black 15%);
        }

/* Remove Button */
.choices__button {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23fff' d='M6 4.586L9.293 1.293a1 1 0 1 1 1.414 1.414L7.414 6l3.293 3.293a1 1 0 0 1-1.414 1.414L6 7.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L4.586 6 1.293 2.707a1 1 0 0 1 1.414-1.414L6 4.586z'/%3E%3C/svg%3E");
    background-size: 8px;
    background-repeat: no-repeat;
    background-position: center;
    border: none;
    border-left: 1px solid rgba(255, 255, 255, 0.3);
    margin-left: 0.375rem;
    padding-left: 0.375rem;
    width: 16px;
    opacity: 0.8;
    transition: opacity var(--transition-base);
}

    .choices__button:hover {
        opacity: 1;
    }

/* Single Select Remove Button */
.choices[data-type*=select-one] .choices__button {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 4.586L9.293 1.293a1 1 0 1 1 1.414 1.414L7.414 6l3.293 3.293a1 1 0 0 1-1.414 1.414L6 7.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L4.586 6 1.293 2.707a1 1 0 0 1 1.414-1.414L6 4.586z'/%3E%3C/svg%3E");
    border-left: none;
    margin-left: 0;
    padding: 0 0.5rem;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

/* Arrow Icon for Single Select */
.choices[data-type*=select-one]::after {
    border-color: var(--muted-color) transparent transparent;
    border-style: solid;
    border-width: 5px 5px 0;
    content: "";
    height: 0;
    margin-top: -2.5px;
    pointer-events: none;
    position: absolute;
    right: 0.75rem;
    top: 50%;
    width: 0;
}

.choices[data-type*=select-one].is-open::after {
    border-width: 0 5px 5px;
    border-color: transparent transparent var(--muted-color);
}

/* Group Headings */
.choices__heading {
    border-bottom: 1px solid var(--border-color);
    color: var(--heading-color);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    padding: 0.5rem 0.75rem;
    background-color: var(--background-color);
}

.choices__group .choices__item {
    padding-left: 1rem;
}

/* Loading State */
.choices.is-loading::after {
    border-color: var(--accent-color) transparent transparent;
}

/* Sizing Variants */
.form-select-sm + .choices .choices__inner,
.choices--sm .choices__inner {
    padding: 0.25rem 0.5rem;
    min-height: calc(1.875rem + 2px);
    font-size: 0.8125rem;
}

.form-select-sm + .choices .choices__list--multiple .choices__item,
.choices--sm .choices__list--multiple .choices__item {
    font-size: 0.75rem;
    padding: 0.0625rem 0.375rem;
}

.form-select-lg + .choices .choices__inner,
.choices--lg .choices__inner {
    padding: 0.5rem 1rem;
    min-height: calc(3rem + 2px);
    font-size: 1rem;
}

.form-select-lg + .choices .choices__list--multiple .choices__item,
.choices--lg .choices__list--multiple .choices__item {
    font-size: 0.875rem;
    padding: 0.1875rem 0.625rem;
}

/* Validation States */
.is-valid + .choices .choices__inner,
.was-validated select:valid + .choices .choices__inner {
    border-color: var(--success-color);
}

.is-focused .is-valid + .choices .choices__inner,
.is-focused .was-validated select:valid + .choices .choices__inner {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--success-color), transparent 75%);
}

.is-invalid + .choices .choices__inner,
.was-validated select:invalid + .choices .choices__inner {
    border-color: var(--danger-color);
}

.is-focused .is-invalid + .choices .choices__inner,
.is-focused .was-validated select:invalid + .choices .choices__inner {
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--danger-color), transparent 75%);
}

/* Dark Mode */
[data-theme=dark] .choices__inner {
    background-color: var(--surface-color);
    border-color: var(--border-color);
}

[data-theme=dark] .choices__list--dropdown {
    background-color: var(--surface-color);
    border-color: var(--border-color);
}

    [data-theme=dark] .choices__list--dropdown .choices__input {
        background-color: var(--surface-color);
        border-color: var(--border-color);
    }

    [data-theme=dark] .choices__list--dropdown .choices__item--selectable:hover, [data-theme=dark] .choices__list--dropdown .choices__item--selectable.is-highlighted {
        background-color: color-mix(in srgb, var(--accent-color), transparent 85%);
    }

[data-theme=dark] .choices__heading {
    background-color: color-mix(in srgb, var(--surface-color), black 10%);
    border-color: var(--border-color);
}

[data-theme=dark] .choices[data-type*=select-one]::after {
    border-color: var(--muted-color) transparent transparent;
}

[data-theme=dark] .choices[data-type*=select-one].is-open::after {
    border-color: transparent transparent var(--muted-color);
}

[data-theme=dark] .choices[data-type*=select-one] .choices__button {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 4.586L9.293 1.293a1 1 0 1 1 1.414 1.414L7.414 6l3.293 3.293a1 1 0 0 1-1.414 1.414L6 7.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L4.586 6 1.293 2.707a1 1 0 0 1 1.414-1.414L6 4.586z'/%3E%3C/svg%3E");
}

/* Responsive */
@media (max-width: 767.98px) {
    .choices__list--dropdown .choices__item {
        padding: 0.625rem 0.75rem;
    }
}
/*--------------------------------------------------------------
# File Upload Styles
--------------------------------------------------------------*/
/* Dropzone */
.upload-dropzone {
    border: 2px dashed var(--border-color);
    border-radius: var(--radius-lg);
    padding: 2rem;
    text-align: center;
    cursor: pointer;
    transition: all var(--transition-base);
    background-color: var(--background-color);
}

    .upload-dropzone:hover, .upload-dropzone.dragover {
        border-color: var(--accent-color);
        background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

    .upload-dropzone.dragover {
        transform: scale(1.01);
    }

.upload-dropzone-content {
    pointer-events: none;
}

.upload-dropzone-icon {
    font-size: 3rem;
    color: var(--muted-color);
    margin-bottom: 1rem;
    transition: color var(--transition-base);
}

.upload-dropzone:hover .upload-dropzone-icon, .upload-dropzone.dragover .upload-dropzone-icon {
    color: var(--accent-color);
}

.upload-dropzone-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 0.5rem;
}

.upload-dropzone-text {
    font-size: 0.875rem;
    color: var(--muted-color);
    margin-bottom: 0;
}

/* Compact Dropzone */
.upload-dropzone-compact {
    padding: 1rem 1.5rem;
}

    .upload-dropzone-compact .upload-dropzone-content {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        font-size: 0.9375rem;
        color: var(--muted-color);
    }

        .upload-dropzone-compact .upload-dropzone-content i {
            font-size: 1.25rem;
        }

/* Large Dropzone */
.upload-dropzone-lg {
    padding: 3rem;
}

    .upload-dropzone-lg .upload-dropzone-icon {
        font-size: 4rem;
    }

/* Browse Link */
.upload-browse-link {
    color: var(--accent-color);
    text-decoration: underline;
    pointer-events: auto;
    cursor: pointer;
}

    .upload-browse-link:hover {
        color: color-mix(in srgb, var(--accent-color), black 15%);
    }

/* File List */
.upload-file-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.upload-file-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background-color: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    animation: uploadFadeIn 0.3s ease-out;
}

@keyframes uploadFadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.upload-file-icon {
    font-size: 1.5rem;
    width: 40px;
    text-align: center;
}

.upload-file-info {
    flex: 1;
    min-width: 0;
}

.upload-file-name {
    display: block;
    font-weight: 500;
    color: var(--default-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.upload-file-size {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

/* Image Preview */
.upload-image-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.upload-image-item {
    position: relative;
    width: 80px;
    height: 80px;
    border-radius: var(--radius-md);
    overflow: hidden;
    animation: uploadFadeIn 0.3s ease-out;
}

    .upload-image-item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.upload-image-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: var(--danger-color);
    color: var(--contrast-color);
    border: none;
    font-size: 0.625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--transition-base);
}

.upload-image-item:hover .upload-image-remove {
    opacity: 1;
}

/* Avatar Upload */
.upload-avatar {
    position: relative;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    overflow: hidden;
    cursor: pointer;
    margin: 0 auto;
}

    .upload-avatar.upload-avatar-square {
        border-radius: var(--radius-lg);
    }

.upload-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-base);
}

.upload-avatar:hover .upload-avatar-img {
    transform: scale(1.05);
}

.upload-avatar-overlay {
    position: absolute;
    inset: 0;
    background-color: color-mix(in srgb, var(--default-color), transparent 50%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--contrast-color);
    font-size: 1.5rem;
    opacity: 0;
    transition: opacity var(--transition-base);
}

.upload-avatar:hover .upload-avatar-overlay {
    opacity: 1;
}

/* Cover Upload */
.upload-cover {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    cursor: pointer;
    aspect-ratio: 4/1;
}

.upload-cover-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-base);
}

.upload-cover:hover .upload-cover-img {
    transform: scale(1.02);
}

.upload-cover-overlay {
    position: absolute;
    inset: 0;
    background-color: color-mix(in srgb, var(--default-color), transparent 50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--contrast-color);
    gap: 0.5rem;
    opacity: 0;
    transition: opacity var(--transition-base);
}

.upload-cover:hover .upload-cover-overlay {
    opacity: 1;
}

/* Logo Upload */
.upload-logo {
    width: 160px;
    height: 100px;
    border: 2px dashed var(--border-color);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-base);
    overflow: hidden;
}

    .upload-logo:hover {
        border-color: var(--accent-color);
        background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

    .upload-logo img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

.upload-logo-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    color: var(--muted-color);
}

    .upload-logo-placeholder i {
        font-size: 2rem;
    }

    .upload-logo-placeholder span {
        font-size: 0.8125rem;
    }

/* Progress List */
.upload-progress-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.upload-progress-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background-color: var(--background-color);
    border-radius: var(--radius-md);
}

.upload-progress-icon {
    font-size: 1.5rem;
    width: 40px;
    text-align: center;
}

.upload-progress-info {
    flex: 1;
    min-width: 0;
}

.upload-progress-name {
    font-weight: 500;
    color: var(--default-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.upload-progress-size {
    font-size: 0.75rem;
    color: var(--muted-color);
}

.upload-progress-status {
    width: 40px;
    text-align: center;
}

/* File Cards */
.upload-file-cards {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.upload-file-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background-color: var(--background-color);
    border-radius: var(--radius-md);
    transition: background-color var(--transition-base);
}

    .upload-file-card:hover {
        background-color: var(--border-color-light);
    }

.upload-file-card-preview {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-sm);
    background-color: var(--surface-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    overflow: hidden;
}

    .upload-file-card-preview.upload-file-card-preview-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.upload-file-card-info {
    flex: 1;
    min-width: 0;
}

.upload-file-card-name {
    display: block;
    font-weight: 500;
    color: var(--default-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.upload-file-card-size {
    font-size: 0.8125rem;
    color: var(--muted-color);
}

.upload-file-card-actions {
    display: flex;
    gap: 0.25rem;
}

/* Gallery */
.upload-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 1rem;
}

.upload-gallery-item {
    position: relative;
    aspect-ratio: 4/3;
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: pointer;
}

    .upload-gallery-item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform var(--transition-base);
    }

    .upload-gallery-item:hover img {
        transform: scale(1.05);
    }

.upload-gallery-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, color-mix(in srgb, var(--default-color), transparent 30%) 0%, transparent 50%);
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 0.5rem;
    gap: 0.25rem;
    opacity: 0;
    transition: opacity var(--transition-base);
}

.upload-gallery-item:hover .upload-gallery-overlay {
    opacity: 1;
}

.upload-gallery-info {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.5rem;
    color: var(--contrast-color);
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: linear-gradient(to top, color-mix(in srgb, var(--default-color), transparent 30%), transparent);
}

.upload-gallery-add {
    aspect-ratio: 4/3;
    border: 2px dashed var(--border-color);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: var(--muted-color);
    cursor: pointer;
    transition: all var(--transition-base);
}

    .upload-gallery-add i {
        font-size: 1.5rem;
    }

    .upload-gallery-add span {
        font-size: 0.8125rem;
    }

    .upload-gallery-add:hover {
        border-color: var(--accent-color);
        color: var(--accent-color);
        background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
    }

/* Icon Button */
.btn-icon {
    padding: 0.5rem;
    line-height: 1;
}

    .btn-icon i {
        font-size: 1rem;
    }

/* Dark Mode */
[data-theme=dark] .upload-dropzone {
    background-color: var(--surface-color);
}

    [data-theme=dark] .upload-dropzone:hover, [data-theme=dark] .upload-dropzone.dragover {
        background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
    }

[data-theme=dark] .upload-file-item {
    background-color: var(--surface-color);
}

[data-theme=dark] .upload-progress-item {
    background-color: var(--surface-color);
}

[data-theme=dark] .upload-file-card {
    background-color: var(--surface-color);
}

    [data-theme=dark] .upload-file-card:hover {
        background-color: color-mix(in srgb, var(--surface-color), white 5%);
    }

[data-theme=dark] .upload-file-card-preview {
    background-color: var(--background-color);
}

/* Responsive */
@media (max-width: 767.98px) {
    .upload-dropzone {
        padding: 1.5rem;
    }

    .upload-dropzone-lg {
        padding: 2rem;
    }

    .upload-dropzone-icon {
        font-size: 2.5rem;
    }

    .upload-gallery {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 0.75rem;
    }

    .upload-avatar {
        width: 100px;
        height: 100px;
    }

    .upload-cover {
        aspect-ratio: 2/1;
    }
}
/*--------------------------------------------------------------
# Date/Time Pickers - Flatpickr Overrides
--------------------------------------------------------------*/
/* Flatpickr Calendar */
.flatpickr-calendar {
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    font-family: inherit;
    width: 307px;
}

    .flatpickr-calendar.arrowTop::before, .flatpickr-calendar.arrowTop::after {
        border-bottom-color: var(--border-color);
    }

    .flatpickr-calendar.arrowBottom::before, .flatpickr-calendar.arrowBottom::after {
        border-top-color: var(--border-color);
    }

    .flatpickr-calendar.inline {
        box-shadow: none;
        border: 1px solid var(--border-color);
    }

/* Month Navigation */
.flatpickr-months {
    padding: 0.5rem;
}

    .flatpickr-months .flatpickr-month {
        background: transparent;
        color: var(--heading-color);
        height: 40px;
    }

    .flatpickr-months .flatpickr-prev-month,
    .flatpickr-months .flatpickr-next-month {
        color: var(--muted-color);
        fill: var(--muted-color);
        padding: 0.5rem;
        border-radius: var(--radius-md);
        transition: all var(--transition-base);
    }

        .flatpickr-months .flatpickr-prev-month:hover,
        .flatpickr-months .flatpickr-next-month:hover {
            background: var(--background-color);
            color: var(--accent-color);
            fill: var(--accent-color);
        }

            .flatpickr-months .flatpickr-prev-month:hover svg,
            .flatpickr-months .flatpickr-next-month:hover svg {
                fill: var(--accent-color);
            }

.flatpickr-current-month {
    font-size: 1rem;
    font-weight: 600;
    color: var(--heading-color);
    padding: 0;
}

    .flatpickr-current-month .flatpickr-monthDropdown-months {
        background: transparent;
        border: none;
        font-weight: 600;
        color: var(--heading-color);
        padding: 0 0.25rem;
    }

        .flatpickr-current-month .flatpickr-monthDropdown-months:hover {
            background: transparent;
        }

    .flatpickr-current-month .numInputWrapper span {
        border: none;
    }

        .flatpickr-current-month .numInputWrapper span:hover {
            background: var(--background-color);
        }

    .flatpickr-current-month input.cur-year {
        color: var(--heading-color);
        font-weight: 600;
    }

/* Weekday Headers */
.flatpickr-weekdays {
    background: transparent;
    padding: 0 0.5rem;
}

.flatpickr-weekday {
    background: transparent;
    color: var(--muted-color);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

/* Days Container */
.flatpickr-days {
    padding: 0 0.5rem 0.5rem;
}

.dayContainer {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
}

/* Day Elements */
.flatpickr-day {
    color: var(--default-color);
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    font-weight: 500;
    max-width: 38px;
    height: 38px;
    line-height: 38px;
    margin: 1px;
    border: none;
    transition: all var(--transition-base);
}

    .flatpickr-day:hover {
        background: var(--background-color);
        border-color: transparent;
    }

    .flatpickr-day.today {
        border: 2px solid var(--accent-color);
        background: transparent;
    }

        .flatpickr-day.today:hover {
            background: var(--accent-color);
            color: var(--contrast-color);
        }

    .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange {
        background: var(--accent-color);
        border-color: var(--accent-color);
        color: var(--contrast-color);
    }

        .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover {
            background: color-mix(in srgb, var(--accent-color), black 10%);
            border-color: color-mix(in srgb, var(--accent-color), black 10%);
        }

        .flatpickr-day.selected.today, .flatpickr-day.startRange.today, .flatpickr-day.endRange.today {
            border-color: var(--accent-color);
        }

    .flatpickr-day.inRange {
        background: color-mix(in srgb, var(--accent-color), transparent 85%);
        border-color: transparent;
        box-shadow: none;
    }

        .flatpickr-day.inRange:hover {
            background: color-mix(in srgb, var(--accent-color), transparent 75%);
        }

    .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay {
        color: var(--light-color);
    }

        .flatpickr-day.prevMonthDay:hover, .flatpickr-day.nextMonthDay:hover {
            background: var(--background-color);
        }

    .flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover {
        color: var(--light-color);
        background: transparent;
        cursor: not-allowed;
        opacity: 0.5;
    }

    .flatpickr-day.week.selected {
        border-radius: 0;
        box-shadow: -5px 0 0 var(--accent-color), 5px 0 0 var(--accent-color);
    }

/* Week Numbers */
.flatpickr-weekwrapper .flatpickr-weekday {
    color: var(--muted-color);
}

.flatpickr-weekwrapper .flatpickr-weeks {
    padding: 0 0.5rem 0.5rem 0;
    box-shadow: none;
    border-right: 1px solid var(--border-color);
}

.flatpickr-weekwrapper span.flatpickr-day {
    color: var(--muted-color);
    font-size: 0.75rem;
    font-weight: 600;
}

/* Time Picker */
.flatpickr-time {
    background: var(--surface-color);
    border-top: 1px solid var(--border-color);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    max-height: 50px;
}

    .flatpickr-time input {
        color: var(--default-color);
        font-size: 1rem;
        font-weight: 500;
        background: transparent;
    }

        .flatpickr-time input:hover, .flatpickr-time input:focus {
            background: var(--background-color);
        }

    .flatpickr-time .flatpickr-time-separator {
        color: var(--default-color);
        font-weight: 600;
    }

    .flatpickr-time .flatpickr-am-pm {
        color: var(--default-color);
        font-weight: 500;
    }

        .flatpickr-time .flatpickr-am-pm:hover, .flatpickr-time .flatpickr-am-pm:focus {
            background: var(--background-color);
        }

.numInputWrapper span {
    border-color: var(--border-color);
}

    .numInputWrapper span:hover {
        background: var(--background-color);
    }

    .numInputWrapper span::after {
        border-color: var(--muted-color) transparent transparent;
    }

    .numInputWrapper span.arrowUp::after {
        border-bottom-color: var(--muted-color);
    }

    .numInputWrapper span.arrowDown::after {
        border-top-color: var(--muted-color);
    }

/* Inline Calendar Wrapper */
.picker-inline-wrapper {
    display: flex;
    justify-content: center;
}

    .picker-inline-wrapper .flatpickr-calendar {
        position: static;
        box-shadow: none;
    }

/* Clearable Input */
.picker-clearable .picker-clear-btn {
    border-left: 0;
    border-right: 0;
}

/* Input Group Adjustments */
.input-group .flatpickr-input:focus {
    z-index: 3;
}

/* Dark Mode */
[data-theme=dark] .flatpickr-calendar {
    background: var(--surface-color);
    border-color: var(--border-color);
}

    [data-theme=dark] .flatpickr-calendar.arrowTop::before {
        border-bottom-color: var(--border-color);
    }

    [data-theme=dark] .flatpickr-calendar.arrowTop::after {
        border-bottom-color: var(--surface-color);
    }

    [data-theme=dark] .flatpickr-calendar.arrowBottom::before {
        border-top-color: var(--border-color);
    }

    [data-theme=dark] .flatpickr-calendar.arrowBottom::after {
        border-top-color: var(--surface-color);
    }

[data-theme=dark] .flatpickr-months .flatpickr-prev-month:hover,
[data-theme=dark] .flatpickr-months .flatpickr-next-month:hover {
    background: var(--background-color);
}

[data-theme=dark] .flatpickr-months .flatpickr-prev-month svg,
[data-theme=dark] .flatpickr-months .flatpickr-next-month svg {
    fill: var(--muted-color);
}

[data-theme=dark] .flatpickr-current-month .flatpickr-monthDropdown-months {
    background: transparent;
    color: var(--heading-color);
}

    [data-theme=dark] .flatpickr-current-month .flatpickr-monthDropdown-months option {
        background: var(--surface-color);
        color: var(--default-color);
    }

[data-theme=dark] .flatpickr-current-month input.cur-year {
    color: var(--heading-color);
}

[data-theme=dark] .flatpickr-day {
    color: var(--default-color);
}

    [data-theme=dark] .flatpickr-day:hover {
        background: var(--background-color);
    }

    [data-theme=dark] .flatpickr-day.prevMonthDay, [data-theme=dark] .flatpickr-day.nextMonthDay {
        color: var(--light-color);
    }

    [data-theme=dark] .flatpickr-day.inRange {
        background: color-mix(in srgb, var(--accent-color), transparent 80%);
    }

[data-theme=dark] .flatpickr-time {
    background: var(--surface-color);
    border-color: var(--border-color);
}

    [data-theme=dark] .flatpickr-time input {
        color: var(--default-color);
    }

        [data-theme=dark] .flatpickr-time input:hover, [data-theme=dark] .flatpickr-time input:focus {
            background: var(--background-color);
        }

[data-theme=dark] .flatpickr-weekwrapper .flatpickr-weeks {
    border-color: var(--border-color);
}

/* Responsive */
@media (max-width: 767.98px) {
    .flatpickr-calendar {
        width: 100%;
        max-width: 307px;
    }

    .picker-inline-wrapper .flatpickr-calendar {
        width: 100%;
    }
}

.icons-filter {
    position: sticky;
    top: 70px;
    z-index: 10;
    background: var(--surface-color);
    padding: 1rem;
    border-radius: 0.5rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--border-color);
}

.icons-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 1rem;
}

.icon-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem 0.5rem;
    border-radius: 0.5rem;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    min-height: 100px;
}

    .icon-item:hover {
        border-color: var(--accent-color);
        box-shadow: 0 4px 12px color-mix(in srgb, var(--accent-color), transparent 85%);
        transform: translateY(-2px);
    }

    .icon-item i {
        font-size: 1.75rem;
        color: var(--default-color);
        margin-bottom: 0.5rem;
    }

    .icon-item .icon-name {
        font-size: 0.7rem;
        color: var(--muted-color);
        word-break: break-all;
        line-height: 1.2;
    }

    .icon-item.copied {
        border-color: var(--success-color);
        background: var(--success-color-light);
    }

        .icon-item.copied i {
            color: var(--success-color);
        }

.icons-count {
    font-size: 0.875rem;
    color: var(--muted-color);
}

.icon-category {
    margin-bottom: 2rem;
}

    .icon-category h5 {
        margin-bottom: 1rem;
        padding-bottom: 0.5rem;
        border-bottom: 1px solid var(--border-color);
    }

.copy-toast {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: var(--heading-color);
    color: var(--contrast-color);
    padding: 0.75rem 1.5rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    opacity: 0;
    transition: all 0.3s ease;
    z-index: 9999;
    pointer-events: none;
}

    .copy-toast.show {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }

/*--------------------------------------------------------------
# Contact Page - FlexAdmin
--------------------------------------------------------------*/
.page-contact .contact-header-subtitle {
    margin: 0;
    font-size: 0.86rem;
    color: var(--muted-color);
}

.page-contact .contact-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.page-contact .contact-overview-item {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    padding: 10px 42px 10px 11px;
    position: relative;
}

.page-contact .contact-overview-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 9px;
    top: 9px;
    font-size: 0.82rem;
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-contact .contact-overview-item:nth-child(2) .contact-overview-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-contact .contact-overview-item:nth-child(3) .contact-overview-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-contact .contact-overview-item:nth-child(4) .contact-overview-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-contact .contact-overview-label {
    display: block;
    font-size: 0.67rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted-color);
    font-weight: 700;
}

.page-contact .contact-overview-value {
    display: block;
    margin-top: 2px;
    font-size: 0.94rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-contact .contact-main-card,
.page-contact .contact-channels-card {
    border-radius: var(--radius-lg);
}

.page-contact .contact-card-note {
    font-size: 0.72rem;
    color: var(--muted-color);
    font-weight: 600;
}

.page-contact .contact-form-modern .form-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--heading-color);
    margin-bottom: 6px;
}

.page-contact .contact-form-modern .form-control,
.page-contact .contact-form-modern .form-select {
    height: 40px;
    font-size: 0.82rem;
}

.page-contact .contact-form-modern textarea.form-control {
    height: auto;
}

.page-contact .contact-form-modern .form-check-label {
    font-size: 0.77rem;
    color: var(--default-color);
}

.page-contact .contact-channel-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.page-contact .contact-channel-item {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    padding: 9px 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--surface-color);
}

.page-contact .contact-channel-icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

    .page-contact .contact-channel-icon.accent {
        color: var(--accent-color);
        background: color-mix(in srgb, var(--accent-color), transparent 86%);
    }

    .page-contact .contact-channel-icon.success {
        color: var(--success-color);
        background: var(--success-color-light);
    }

    .page-contact .contact-channel-icon.info {
        color: var(--info-color);
        background: var(--info-color-light);
    }

.page-contact .contact-channel-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--heading-color);
}

.page-contact .contact-channel-meta {
    font-size: 0.72rem;
    color: var(--muted-color);
    margin-top: 1px;
}

.page-contact .contact-map {
    width: 100%;
    height: 220px;
    border: 0;
    border-radius: var(--radius-lg);
    display: block;
}

.page-contact .contact-office-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-contact .contact-office-item {
    font-size: 0.78rem;
    color: var(--default-color);
    display: flex;
    align-items: center;
    gap: 7px;
}

    .page-contact .contact-office-item i {
        width: 15px;
        text-align: center;
        color: var(--accent-color);
        flex-shrink: 0;
    }

.page-contact .contact-faq-modern {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.page-contact .contact-faq-item-modern {
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    background: var(--surface-color);
    padding: 10px;
}

    .page-contact .contact-faq-item-modern h6 {
        margin: 0;
        font-size: 0.79rem;
        color: var(--heading-color);
        font-weight: 700;
    }

    .page-contact .contact-faq-item-modern p {
        margin: 4px 0 0;
        font-size: 0.73rem;
        color: var(--muted-color);
        line-height: 1.45;
    }

@media (max-width: 1199px) {
    .page-contact .contact-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .page-contact .contact-overview {
        grid-template-columns: 1fr;
    }
}

/*--------------------------------------------------------------
# Dashboard - FlexAdmin
# Asymmetric command-center layout with briefing hero,
# pulse rail, modular insights, and compact execution blocks.
--------------------------------------------------------------*/
.page-dashboard .fx-page-header {
    margin-bottom: var(--spacing-lg);
}

.page-dashboard .fx-subtitle {
    margin: 0;
    color: var(--muted-color);
    font-size: 0.9rem;
    max-width: 720px;
}

.page-dashboard .card {
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.page-dashboard .card-header {
    background: transparent;
    border-bottom: 1px solid var(--border-color-light);
    padding: 0.95rem 1.1rem;
}

    .page-dashboard .card-header .card-title {
        margin: 0;
        font-size: 0.92rem;
        font-weight: 700;
        letter-spacing: 0.01em;
    }

.page-dashboard .fx-link,
.page-dashboard .dash-link {
    color: var(--accent-color);
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
}

    .page-dashboard .fx-link i,
    .page-dashboard .dash-link i {
        font-size: 0.72rem;
        margin-left: 4px;
    }

.page-dashboard {
    /* Hero */
}

    .page-dashboard .fx-hero-card {
        background: linear-gradient(145deg, color-mix(in srgb, var(--accent-color), transparent 94%), var(--card-bg) 60%);
        border: 1px solid color-mix(in srgb, var(--accent-color), transparent 78%);
    }

    .page-dashboard .fx-hero-head {
        display: flex;
        justify-content: space-between;
        gap: var(--spacing-md);
        margin-bottom: var(--spacing-lg);
    }

    .page-dashboard .fx-overline {
        font-size: 0.65rem;
        text-transform: uppercase;
        letter-spacing: 0.12em;
        color: var(--accent-color);
        font-weight: 700;
        margin-bottom: 6px;
    }

    .page-dashboard .fx-hero-title {
        margin: 0 0 6px;
        font-size: 1.4rem;
        font-weight: 700;
        color: var(--heading-color);
    }

    .page-dashboard .fx-hero-text {
        margin: 0;
        font-size: 0.88rem;
        color: var(--muted-color);
        max-width: 640px;
        line-height: 1.5;
    }

    .page-dashboard .fx-hero-badge {
        align-self: flex-start;
        font-size: 0.72rem;
        font-weight: 700;
        border-radius: var(--radius-full);
        display: inline-flex;
        gap: 4px;
        align-items: center;
    }

    .page-dashboard .fx-kpi-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: var(--spacing-sm);
    }

    .page-dashboard .fx-kpi-item {
        padding: 11px 12px;
        border-radius: var(--radius-lg);
        border: 1px solid var(--border-color);
        background: color-mix(in srgb, var(--card-bg), var(--background-color) 26%);
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .page-dashboard .fx-kpi-label {
        font-size: 0.68rem;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        color: var(--muted-color);
        font-weight: 700;
    }

    .page-dashboard .fx-kpi-value {
        font-size: 1.15rem;
        font-weight: 700;
        color: var(--heading-color);
        line-height: 1.2;
    }

    .page-dashboard .fx-kpi-trend {
        font-size: 0.72rem;
        font-weight: 700;
        color: var(--muted-color);
    }

        .page-dashboard .fx-kpi-trend.positive {
            color: var(--success-color);
        }

        .page-dashboard .fx-kpi-trend.negative {
            color: var(--danger-color);
        }

    .page-dashboard .fx-hero-footer {
        margin-top: var(--spacing-md);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--spacing-sm);
        flex-wrap: wrap;
    }

    .page-dashboard .fx-chip-list {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    .page-dashboard .fx-chip {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 10px;
        border-radius: var(--radius-full);
        border: 1px solid var(--border-color);
        color: var(--muted-color);
        font-size: 0.72rem;
        font-weight: 600;
        background: var(--surface-color);
    }

        .page-dashboard .fx-chip i {
            color: var(--accent-color);
            font-size: 0.8rem;
        }

.page-dashboard {
    /* Pulse rail */
}

    .page-dashboard .fx-pulse-card .card-body {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-sm);
    }

    .page-dashboard .fx-pulse-stat {
        border: 1px solid var(--border-color-light);
        border-radius: var(--radius-md);
        padding: 9px 10px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .page-dashboard .fx-pulse-label {
        font-size: 0.76rem;
        color: var(--muted-color);
        font-weight: 600;
    }

    .page-dashboard .fx-pulse-value {
        font-size: 0.95rem;
        color: var(--heading-color);
        font-weight: 700;
    }

    .page-dashboard .fx-live-list {
        margin-top: 2px;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .page-dashboard .fx-live-item {
        display: flex;
        align-items: center;
        gap: 10px;
        text-decoration: none;
        color: inherit;
        border: 1px solid var(--border-color-light);
        border-radius: var(--radius-md);
        padding: 8px 10px;
        transition: all var(--transition-fast);
    }

        .page-dashboard .fx-live-item:hover {
            border-color: color-mix(in srgb, var(--accent-color), transparent 70%);
            background: color-mix(in srgb, var(--accent-color), transparent 95%);
        }

    .page-dashboard .fx-live-avatar {
        width: 32px;
        height: 32px;
        border-radius: var(--radius-full);
        object-fit: cover;
        flex-shrink: 0;
    }

    .page-dashboard .fx-live-title {
        font-size: 0.77rem;
        color: var(--heading-color);
        font-weight: 700;
        line-height: 1.2;
    }

    .page-dashboard .fx-live-text {
        font-size: 0.72rem;
        color: var(--muted-color);
        margin-top: 1px;
        line-height: 1.3;
    }

    .page-dashboard .fx-live-time {
        margin-left: auto;
        font-size: 0.66rem;
        font-weight: 700;
        color: var(--light-color);
        flex-shrink: 0;
    }

.page-dashboard {
    /* Mini stats */
}

    .page-dashboard .fx-mini-stat .card-body {
        padding: 0.95rem 1rem;
        position: relative;
    }

    .page-dashboard .fx-mini-icon {
        position: absolute;
        top: 0.7rem;
        right: 0.85rem;
        width: 34px;
        height: 34px;
        border-radius: 10px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: color-mix(in srgb, var(--accent-color), transparent 88%);
        color: var(--accent-color);
    }

        .page-dashboard .fx-mini-icon i {
            font-size: 1.05rem;
        }

        .page-dashboard .fx-mini-icon.revenue {
            background: color-mix(in srgb, var(--success-color), transparent 86%);
            color: var(--success-color);
        }

        .page-dashboard .fx-mini-icon.churn {
            background: color-mix(in srgb, var(--warning-color), transparent 84%);
            color: var(--warning-color);
        }

        .page-dashboard .fx-mini-icon.nps {
            background: color-mix(in srgb, var(--info-color), transparent 84%);
            color: var(--info-color);
        }

        .page-dashboard .fx-mini-icon.refund {
            background: color-mix(in srgb, var(--danger-color), transparent 86%);
            color: var(--danger-color);
        }

    .page-dashboard .fx-mini-label {
        display: block;
        font-size: 0.69rem;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--muted-color);
        font-weight: 700;
    }

    .page-dashboard .fx-mini-value {
        display: block;
        margin-top: 5px;
        font-size: 1.2rem;
        line-height: 1.2;
        color: var(--heading-color);
        font-weight: 700;
    }

    .page-dashboard .fx-mini-meta {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        margin-top: 6px;
        font-size: 0.72rem;
        color: var(--muted-color);
        font-weight: 600;
    }

        .page-dashboard .fx-mini-meta.positive {
            color: var(--success-color);
        }

.page-dashboard {
    /* Chart area */
}

    .page-dashboard .dash-chart-tabs {
        display: inline-flex;
        gap: 3px;
        padding: 3px;
        border-radius: var(--radius-md);
        background: var(--background-color);
    }

    .page-dashboard .dash-chart-tab {
        border: none;
        background: transparent;
        color: var(--muted-color);
        font-size: 0.74rem;
        font-weight: 700;
        padding: 5px 11px;
        border-radius: var(--radius-sm);
        transition: all var(--transition-fast);
    }

        .page-dashboard .dash-chart-tab.active {
            background: var(--surface-color);
            color: var(--heading-color);
            box-shadow: var(--shadow-sm);
        }

    .page-dashboard .fx-summary-grid {
        display: flex;
        gap: var(--spacing-lg);
        margin-bottom: var(--spacing-sm);
        flex-wrap: wrap;
    }

    .page-dashboard .dash-chart-summary-item {
        display: inline-flex;
        align-items: center;
        gap: 7px;
    }

    .page-dashboard .dash-chart-summary-dot {
        width: 8px;
        height: 8px;
        border-radius: var(--radius-full);
        flex-shrink: 0;
    }

    .page-dashboard .dash-chart-summary-label {
        font-size: 0.76rem;
        color: var(--muted-color);
        font-weight: 600;
    }

    .page-dashboard .dash-chart-summary-value {
        font-size: 0.84rem;
        font-weight: 700;
        color: var(--heading-color);
    }

    .page-dashboard .dash-traffic-legend {
        margin-top: var(--spacing-sm);
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .page-dashboard .dash-traffic-item {
        display: flex;
        align-items: center;
        gap: 7px;
    }

    .page-dashboard .dash-traffic-dot {
        width: 7px;
        height: 7px;
        border-radius: var(--radius-full);
    }

    .page-dashboard .dash-traffic-label {
        font-size: 0.74rem;
        color: var(--muted-color);
        flex: 1;
    }

    .page-dashboard .dash-traffic-value {
        font-size: 0.75rem;
        font-weight: 700;
        color: var(--heading-color);
    }

.page-dashboard {
    /* Pipeline */
}

    .page-dashboard .fx-pipeline-item:not(:last-child) {
        margin-bottom: 11px;
    }

    .page-dashboard .fx-pipeline-head {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 5px;
        font-size: 0.74rem;
        font-weight: 600;
        color: var(--muted-color);
    }

        .page-dashboard .fx-pipeline-head span:last-child {
            color: var(--heading-color);
            font-weight: 700;
        }

    .page-dashboard .fx-pipeline-item .progress {
        height: 7px;
        border-radius: var(--radius-full);
        background: var(--background-color);
    }

.page-dashboard {
    /* Tasks */
}

    .page-dashboard .fx-task-item {
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 10px;
        padding: 9px 2px;
        border-bottom: 1px solid var(--border-color-light);
    }

        .page-dashboard .fx-task-item:last-child {
            border-bottom: none;
        }

        .page-dashboard .fx-task-item input {
            margin: 0;
            width: 16px;
            height: 16px;
            accent-color: var(--accent-color);
        }

        .page-dashboard .fx-task-item label {
            display: block;
            margin: 0;
            font-size: 0.79rem;
            color: var(--default-color);
            font-weight: 600;
            cursor: pointer;
        }

            .page-dashboard .fx-task-item label span {
                display: block;
                margin-top: 1px;
                font-size: 0.69rem;
                color: var(--muted-color);
                font-weight: 500;
            }

        .page-dashboard .fx-task-item.done label {
            text-decoration: line-through;
            color: var(--light-color);
        }

.page-dashboard {
    /* Shared list blocks */
}

    .page-dashboard .table-user {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .page-dashboard .table-user-avatar {
        width: 28px;
        height: 28px;
        border-radius: var(--radius-full);
        object-fit: cover;
    }

    .page-dashboard .table-user-name {
        font-size: 0.78rem;
        color: var(--heading-color);
        font-weight: 600;
    }

    .page-dashboard .dash-activity {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .page-dashboard .dash-activity-item {
        position: relative;
        display: flex;
        gap: 10px;
        padding: 8px 0;
    }

        .page-dashboard .dash-activity-item:not(:last-child)::before {
            content: "";
            position: absolute;
            left: 4px;
            top: 20px;
            bottom: -6px;
            width: 1px;
            background: var(--border-color);
        }

    .page-dashboard .dash-activity-dot {
        width: 9px;
        height: 9px;
        border-radius: var(--radius-full);
        margin-top: 4px;
        flex-shrink: 0;
    }

    .page-dashboard .dash-activity-text {
        margin: 0;
        font-size: 0.78rem;
        color: var(--default-color);
        line-height: 1.45;
    }

    .page-dashboard .dash-activity-time {
        font-size: 0.68rem;
        color: var(--light-color);
    }

    .page-dashboard .dash-team {
        display: flex;
        flex-direction: column;
        gap: 11px;
    }

    .page-dashboard .dash-team-member {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .page-dashboard .dash-team-avatar {
        width: 34px;
        height: 34px;
        border-radius: var(--radius-full);
        object-fit: cover;
    }

    .page-dashboard .dash-team-name {
        display: block;
        font-size: 0.78rem;
        font-weight: 700;
        color: var(--heading-color);
        line-height: 1.2;
    }

    .page-dashboard .dash-team-role {
        display: block;
        font-size: 0.69rem;
        color: var(--muted-color);
    }

    .page-dashboard .dash-team-status {
        width: 8px;
        height: 8px;
        border-radius: var(--radius-full);
        margin-left: auto;
    }

        .page-dashboard .dash-team-status.online {
            background: var(--success-color);
        }

        .page-dashboard .dash-team-status.away {
            background: var(--warning-color);
        }

        .page-dashboard .dash-team-status.offline {
            background: var(--light-color);
        }

    .page-dashboard .region-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .page-dashboard .region-item {
        border: 1px solid var(--border-color-light);
        border-radius: var(--radius-md);
        padding: 8px 10px;
    }

    .page-dashboard .region-info {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 6px;
    }

    .page-dashboard .region-name {
        font-size: 0.76rem;
        color: var(--heading-color);
        font-weight: 700;
    }

    .page-dashboard .region-stats {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .page-dashboard .region-value {
        min-width: 70px;
        font-size: 0.74rem;
        color: var(--muted-color);
        font-weight: 600;
    }

    .page-dashboard .region-progress {
        height: 6px;
        border-radius: var(--radius-full);
        background: var(--background-color);
    }

.page-dashboard {
    /* Responsive */
}

@media (max-width: 1399px) {
    .page-dashboard .fx-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .page-dashboard .fx-hero-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 767px) {
    .page-dashboard .fx-kpi-grid {
        grid-template-columns: 1fr;
    }

    .page-dashboard .fx-hero-title {
        font-size: 1.2rem;
    }

    .page-dashboard .fx-summary-grid {
        gap: var(--spacing-sm);
    }
}

/*--------------------------------------------------------------
# Settings Pages - FlexAdmin
--------------------------------------------------------------*/
.page-settings .settings-page-subtitle,
.page-notifications .settings-page-subtitle,
.page-activity .settings-page-subtitle {
    margin: 0;
    font-size: 0.86rem;
    color: var(--muted-color);
}

.page-settings .settings-shell,
.page-notifications .settings-shell,
.page-activity .settings-shell {
    align-items: flex-start;
}

.page-settings .settings-side-card,
.page-notifications .settings-side-card,
.page-activity .settings-side-card {
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.page-settings .settings-nav,
.page-notifications .settings-nav,
.page-activity .settings-nav {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.page-settings .settings-nav-item,
.page-notifications .settings-nav-item,
.page-activity .settings-nav-item {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 10px;
    border-radius: var(--radius-md);
    text-decoration: none;
    color: var(--default-color);
    transition: all var(--transition-fast);
}

    .page-settings .settings-nav-item i,
    .page-notifications .settings-nav-item i,
    .page-activity .settings-nav-item i {
        width: 18px;
        font-size: 1rem;
        color: var(--muted-color);
        flex-shrink: 0;
        text-align: center;
    }

    .page-settings .settings-nav-item:hover,
    .page-notifications .settings-nav-item:hover,
    .page-activity .settings-nav-item:hover {
        background: var(--background-color);
        color: var(--heading-color);
    }

    .page-settings .settings-nav-item.active,
    .page-notifications .settings-nav-item.active,
    .page-activity .settings-nav-item.active {
        background: color-mix(in srgb, var(--accent-color), transparent 90%);
        color: var(--accent-color);
    }

        .page-settings .settings-nav-item.active i,
        .page-notifications .settings-nav-item.active i,
        .page-activity .settings-nav-item.active i {
            color: var(--accent-color);
        }

        .page-settings .settings-nav-item.active .settings-nav-desc,
        .page-notifications .settings-nav-item.active .settings-nav-desc,
        .page-activity .settings-nav-item.active .settings-nav-desc {
            color: color-mix(in srgb, var(--accent-color), transparent 35%);
        }

.page-settings .settings-nav-text,
.page-notifications .settings-nav-text,
.page-activity .settings-nav-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.page-settings .settings-nav-label,
.page-notifications .settings-nav-label,
.page-activity .settings-nav-label {
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.3;
}

.page-settings .settings-nav-desc,
.page-notifications .settings-nav-desc,
.page-activity .settings-nav-desc {
    font-size: 0.71rem;
    color: var(--muted-color);
    line-height: 1.3;
}

.page-settings .settings-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.page-settings .settings-overview-item {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    padding: 10px 44px 10px 11px;
    background: var(--card-bg);
    box-shadow: var(--card-shadow);
    position: relative;
    overflow: hidden;
}

.page-settings .settings-overview-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    position: absolute;
    right: 9px;
    top: 9px;
}

.page-settings .settings-overview-item:nth-child(1) .settings-overview-icon {
    color: var(--accent-color);
    background: color-mix(in srgb, var(--accent-color), transparent 84%);
}

.page-settings .settings-overview-item:nth-child(2) .settings-overview-icon {
    color: var(--success-color);
    background: var(--success-color-light);
}

.page-settings .settings-overview-item:nth-child(3) .settings-overview-icon {
    color: var(--info-color);
    background: var(--info-color-light);
}

.page-settings .settings-overview-item:nth-child(4) .settings-overview-icon {
    color: var(--warning-color);
    background: var(--warning-color-light);
}

.page-settings .settings-overview-label {
    display: block;
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted-color);
    font-weight: 700;
}

.page-settings .settings-overview-value {
    display: block;
    margin-top: 1px;
    font-size: 1.02rem;
    color: var(--heading-color);
    line-height: 1.2;
}

.page-settings .settings-side-note {
    border-radius: var(--radius-lg);
}

.page-settings .settings-side-note-title {
    margin: 0;
    font-size: 0.86rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-settings .settings-side-note-text {
    margin: 6px 0 12px;
    font-size: 0.75rem;
    color: var(--muted-color);
    line-height: 1.5;
}

.page-settings .settings-theme-options {
    display: flex;
    gap: 10px;
}

.page-settings .settings-theme-card {
    flex: 1;
    cursor: pointer;
    position: relative;
}

    .page-settings .settings-theme-card input[type=radio] {
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }

.page-settings .settings-theme-preview {
    display: flex;
    height: 76px;
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 2px solid var(--border-color);
    transition: border-color var(--transition-fast);
}

.page-settings .settings-theme-card input:checked + .settings-theme-preview {
    border-color: var(--accent-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-color), transparent 80%);
}

.page-settings .settings-theme-sidebar {
    width: 21%;
    flex-shrink: 0;
}

.page-settings .settings-theme-main-preview {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.page-settings .settings-theme-header {
    height: 12px;
}

.page-settings .settings-theme-content {
    flex: 1;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.page-settings .settings-theme-block {
    flex: 1;
    border-radius: 2px;
}

.page-settings .settings-theme-light .settings-theme-sidebar {
    background: #ffffff;
    border-right: 1px solid #e7e5e4;
}

.page-settings .settings-theme-light .settings-theme-header {
    background: #ffffff;
    border-bottom: 1px solid #e7e5e4;
}

.page-settings .settings-theme-light .settings-theme-content {
    background: #f7f6f4;
}

.page-settings .settings-theme-light .settings-theme-block {
    background: #ffffff;
    border: 1px solid #e7e5e4;
}

.page-settings .settings-theme-dark .settings-theme-sidebar {
    background: #13111a;
}

.page-settings .settings-theme-dark .settings-theme-header {
    background: #1e1b2e;
    border-bottom: 1px solid #2e2a3d;
}

.page-settings .settings-theme-dark .settings-theme-content {
    background: #13111a;
}

.page-settings .settings-theme-dark .settings-theme-block {
    background: #1e1b2e;
    border: 1px solid #2e2a3d;
}

.page-settings .settings-theme-system {
    background: linear-gradient(135deg, #ffffff 50%, #13111a 50%);
}

    .page-settings .settings-theme-system .settings-theme-sidebar {
        background: linear-gradient(180deg, #ffffff 50%, #13111a 50%);
    }

    .page-settings .settings-theme-system .settings-theme-header,
    .page-settings .settings-theme-system .settings-theme-block {
        background: linear-gradient(135deg, #ffffff 50%, #1e1b2e 50%);
    }

.page-settings .settings-theme-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-top: 5px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--muted-color);
}

.page-settings .settings-theme-card input:checked ~ .settings-theme-label {
    color: var(--accent-color);
}

.page-settings .settings-security-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.page-settings .settings-security-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-md);
    padding: 10px 11px;
    background: var(--surface-color);
}

.page-settings .settings-security-title {
    margin: 0;
    font-size: 0.8rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-settings .settings-security-desc {
    margin: 1px 0 0;
    font-size: 0.72rem;
    color: var(--muted-color);
}

.page-settings .settings-password-form {
    padding: 4px 0 2px;
}

.page-settings .settings-danger-card {
    border-color: color-mix(in srgb, var(--danger-color), transparent 70%);
}

    .page-settings .settings-danger-card .card-header {
        border-bottom-color: color-mix(in srgb, var(--danger-color), transparent 70%);
    }

    .page-settings .settings-danger-card .card-title {
        color: var(--danger-color);
    }

.page-settings .settings-danger-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.page-settings .settings-danger-title {
    margin: 0;
    font-size: 0.82rem;
    color: var(--heading-color);
    font-weight: 700;
}

.page-settings .settings-danger-desc {
    margin: 1px 0 0;
    font-size: 0.74rem;
    color: var(--muted-color);
}

.page-settings .settings-delete-icon {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-full);
    background: var(--danger-color-light);
    color: var(--danger-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin: 0 auto var(--spacing-md);
}

@media (max-width: 1199px) {
    .page-settings .settings-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .page-settings .settings-nav,
    .page-notifications .settings-nav,
    .page-activity .settings-nav {
        flex-direction: row;
        overflow-x: auto;
        gap: 4px;
    }

    .page-settings .settings-nav-item,
    .page-notifications .settings-nav-item,
    .page-activity .settings-nav-item {
        white-space: nowrap;
        flex-shrink: 0;
    }

    .page-settings .settings-nav-desc,
    .page-notifications .settings-nav-desc,
    .page-activity .settings-nav-desc {
        display: none;
    }
}

@media (max-width: 575px) {
    .page-settings .settings-overview,
    .page-settings .settings-theme-options {
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .page-settings .settings-danger-row,
    .page-settings .settings-security-item {
        flex-direction: column;
        align-items: flex-start;
    }
}
/*--------------------------------------------------------------
# Helper Utilities
# Bootstrap provides most utilities (display, flex, position, etc.)
# This file only contains custom utilities not in Bootstrap
--------------------------------------------------------------*/
/* Cursor - not in Bootstrap */
.cursor-pointer {
    cursor: pointer !important;
}

.cursor-default {
    cursor: default !important;
}

.cursor-not-allowed {
    cursor: not-allowed !important;
}

.cursor-wait {
    cursor: wait !important;
}

.cursor-grab {
    cursor: grab !important;
}

.cursor-grabbing {
    cursor: grabbing !important;
}

/* Min width/height - limited in Bootstrap */
.min-w-0 {
    min-width: 0 !important;
}

.min-h-0 {
    min-height: 0 !important;
}

.max-w-100 {
    max-width: 100% !important;
}

.max-h-100 {
    max-height: 100% !important;
}

/* Z-Index - Bootstrap has limited z-index utilities */
.z-0 {
    z-index: 0 !important;
}

.z-1 {
    z-index: 1 !important;
}

.z-2 {
    z-index: 2 !important;
}

.z-3 {
    z-index: 3 !important;
}

/* Aspect Ratio - custom additions */
.ratio-1x1 {
    aspect-ratio: 1/1;
}

.ratio-4x3 {
    aspect-ratio: 4/3;
}

.ratio-16x9 {
    aspect-ratio: 16/9;
}

.ratio-21x9 {
    aspect-ratio: 21/9;
}

/*--------------------------------------------------------------
# Dark Mode Specific Styles
--------------------------------------------------------------*/
/* Dark mode is primarily handled through CSS custom properties in _variables.scss
   This file contains any additional dark mode specific overrides */
[data-theme=dark] {
    color-scheme: dark;
}

    /* Images in dark mode - slight reduction in brightness */
    [data-theme=dark] img:not([src*=".svg"]) {
        filter: brightness(0.93) contrast(1.05);
    }

    /* Keep logo white in dark mode */
    [data-theme=dark] .sidebar-logo-icon img {
        filter: brightness(0) invert(1);
    }

    [data-theme=dark] .header-logo img {
        filter: brightness(0) invert(1);
    }

    [data-theme=dark] .auth-brand-logo img,
    [data-theme=dark] .auth-logo img {
        filter: brightness(0) invert(1);
    }

    /* Code blocks */
    [data-theme=dark] code {
        background-color: rgba(255, 255, 255, 0.1);
    }

    [data-theme=dark] pre {
        background-color: var(--surface-color);
        border-color: var(--border-color);
    }

    /* Form elements - ensure proper styling */
    [data-theme=dark] input:-webkit-autofill,
    [data-theme=dark] input:-webkit-autofill:hover,
    [data-theme=dark] input:-webkit-autofill:focus,
    [data-theme=dark] textarea:-webkit-autofill,
    [data-theme=dark] textarea:-webkit-autofill:hover,
    [data-theme=dark] textarea:-webkit-autofill:focus,
    [data-theme=dark] select:-webkit-autofill,
    [data-theme=dark] select:-webkit-autofill:hover,
    [data-theme=dark] select:-webkit-autofill:focus {
        -webkit-text-fill-color: var(--default-color);
        -webkit-box-shadow: 0 0 0px 1000px var(--input-bg) inset;
        transition: background-color 5000s ease-in-out 0s;
    }

    /* Select dropdown arrow in dark mode */
    [data-theme=dark] .form-select {
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2388aac0' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    }

    /* Checkbox/Radio in dark mode */
    [data-theme=dark] .form-check-input {
        background-color: var(--input-bg);
        border-color: var(--border-color);
    }

    /* Switch in dark mode */
    [data-theme=dark] .form-switch .form-check-input {
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2388aac0'/%3e%3c/svg%3e");
    }

    /* Scrollbar in dark mode */
    [data-theme=dark] ::-webkit-scrollbar-track {
        background: var(--background-color);
    }

    [data-theme=dark] ::-webkit-scrollbar-thumb {
        background: var(--border-color);
    }

        [data-theme=dark] ::-webkit-scrollbar-thumb:hover {
            background: var(--muted-color);
        }

    /* HR in dark mode */
    [data-theme=dark] hr {
        border-color: var(--border-color);
    }

    /* Placeholder text */
    [data-theme=dark] ::placeholder {
        color: var(--light-color);
        opacity: 1;
    }

    /* Selection in dark mode */
    [data-theme=dark] ::selection {
        background-color: var(--accent-color);
        color: white;
    }

    /* Disabled elements */
    [data-theme=dark] .form-control:disabled,
    [data-theme=dark] .form-select:disabled,
    [data-theme=dark] .btn:disabled {
        background-color: var(--background-color);
        opacity: 0.5;
    }

    /* Focus ring in dark mode */
    [data-theme=dark] :focus-visible {
        outline-color: var(--accent-color);
    }

    /* Tables striped in dark mode */
    [data-theme=dark] .table-striped > tbody > tr:nth-of-type(odd) > * {
        background-color: rgba(255, 255, 255, 0.02);
    }

    /* Card shadow adjustment */
    [data-theme=dark] .card,
    [data-theme=dark] .widget {
        box-shadow: 0 18px 42px -24px rgba(0, 0, 0, 0.8), 0 12px 24px -20px rgba(6, 14, 21, 0.85);
    }

    /* Modal backdrop in dark mode */
    [data-theme=dark] .modal-backdrop {
        background-color: rgba(0, 0, 0, 0.7);
    }

    /* Dropdown shadows */
    [data-theme=dark] .dropdown-menu {
        box-shadow: 0 22px 40px -24px rgba(0, 0, 0, 0.75), 0 14px 28px -20px rgba(6, 14, 21, 0.85);
    }

    /* Chart specific dark mode */
    [data-theme=dark] .apexcharts-tooltip,
    [data-theme=dark] .apexcharts-xaxistooltip,
    [data-theme=dark] .apexcharts-yaxistooltip {
        background: var(--surface-color) !important;
        border-color: var(--border-color) !important;
        color: var(--default-color) !important;
    }

    [data-theme=dark] .apexcharts-tooltip-title {
        background: var(--background-color) !important;
        border-color: var(--border-color) !important;
    }

/*--------------------------------------------------------------
# Print Styles
--------------------------------------------------------------*/
@media print {
    *,
    *::before,
    *::after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }
    /* Hide non-essential elements */
    .header,
    .sidebar,
    .footer,
    .back-to-top,
    .btn,
    .dropdown-menu,
    .modal,
    .toast-container,
    .no-print {
        display: none !important;
    }
    /* Reset main content area */
    .main {
        margin: 0 !important;
        padding: 0 !important;
    }

    .main-content {
        padding: 0 !important;
    }
    /* Page setup */
    @page {
        margin: 2cm;
        size: A4;
    }
    /* Headings */
    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
        page-break-inside: avoid;
    }
    /* Images */
    img {
        max-width: 100% !important;
        page-break-inside: avoid;
    }
    /* Tables */
    table {
        border-collapse: collapse !important;
    }

    table, th, td {
        border: 1px solid #ddd !important;
    }

    th {
        background-color: #f5f5f5 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    thead {
        display: table-header-group;
    }

    tr {
        page-break-inside: avoid;
    }
    /* Links */
    a {
        text-decoration: underline;
    }

        a[href^=http]::after {
            content: " (" attr(href) ")";
            font-size: 0.8em;
            color: #666;
        }

        a[href^="#"]::after,
        a[href^="javascript:"]::after {
            content: "";
        }
    /* Cards - show borders */
    .card {
        border: 1px solid #ddd !important;
        page-break-inside: avoid;
    }

    .card-header {
        border-bottom: 1px solid #ddd !important;
        background-color: #f5f5f5 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    /* Badges - show borders */
    .badge {
        border: 1px solid currentColor !important;
        padding: 2px 6px !important;
    }
    /* Progress bars */
    .progress {
        border: 1px solid #ddd !important;
    }

    .progress-bar {
        background-color: #333 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    /* Alerts */
    .alert {
        border: 1px solid currentColor !important;
    }
    /* Forms - hide interactive elements */
    input[type=text],
    input[type=email],
    input[type=password],
    textarea,
    select {
        border: 1px solid #ddd !important;
        background: transparent !important;
    }
    /* Charts - typically not printable */
    .chart-container,
    canvas {
        page-break-inside: avoid;
    }
    /* Invoice specific */
    .invoice {
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .invoice-header {
        margin-bottom: 2cm !important;
    }

    .invoice-logo img {
        max-height: 60px !important;
    }

    .invoice-table {
        width: 100% !important;
        margin: 1cm 0 !important;
    }

    .invoice-total {
        margin-top: 1cm !important;
    }
    /* Orphan/Widow control */
    p, li {
        orphans: 3;
        widows: 3;
    }
    /* Prevent breaks after headings */
    h1, h2, h3, h4, h5, h6 {
        orphans: 3;
        widows: 3;
    }
    /* Blockquotes */
    blockquote {
        border-left: 4px solid #333 !important;
        page-break-inside: avoid;
    }
    /* Code blocks */
    pre, code {
        border: 1px solid #ddd !important;
        page-break-inside: avoid;
    }
    /* Show print-only elements */
    .print-only {
        display: block !important;
    }
}
/* Print-only class (hidden on screen) */
.print-only {
    display: none;
}

/* No-print class (visible on screen, hidden in print) */
@media screen {
    .no-print {
        display: block;
    }
}
