/**
 * =======================================================
 * Template Name: EasyAdmin - Bootstrap Admin Template
 * Template URL: https://bootstrapmade.com/easy-admin-bootstrap-admin-html-template/
 * Updated: Jan 24, 2026 with Bootstrap v5.3.8
 * Author: BootstrapMade.com
 * License: https://bootstrapmade.com/license/
 * =======================================================
 */
@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 - EasyAdmin Color System
# shadcn-inspired design with floating UI elements
--------------------------------------------------------------*/
/* Fonts */
:root {
  --default-font: "Inter", 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: "Inter", sans-serif;
  --nav-font: "Inter", sans-serif;
  --mono-font: "Fira Code", "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;
}

/* Floating Layout Gaps */
:root {
  --floating-gap: 1.25rem;
  /* 20px - gap around floating elements */
  --floating-gap-lg: 1.5rem;
  /* 24px - larger screens */
}

/* Border Radius - Medium (10-12px) for shadcn aesthetic */
:root {
  --radius-sm: 0.375rem;
  /* 6px */
  --radius-md: 0.5rem;
  /* 8px */
  --radius-lg: 0.625rem;
  /* 10px - primary card/element radius */
  --radius-xl: 0.75rem;
  /* 12px - sidebar/header radius */
  --radius-2xl: 1rem;
  /* 16px */
  --radius-full: 9999px;
}

/* Shadows - Enhanced for floating cards */
:root {
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.07), 0 2px 4px -2px rgb(0 0 0 / 0.07);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.08), 0 4px 6px -4px rgb(0 0 0 / 0.08);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --shadow-floating: 0 4px 12px -2px rgb(0 0 0 / 0.08), 0 2px 4px -1px rgb(0 0 0 / 0.04);
}

/* Transitions */
:root {
  --transition-fast: 150ms ease;
  --transition-base: 200ms ease;
  --transition-slow: 300ms ease;
}

/* Layout Dimensions */
:root {
  --header-height: 64px;
  --sidebar-width: 280px;
  --sidebar-collapsed-width: 50px;
  /* Slim rail width */
  --footer-height: 60px;
}

/*--------------------------------------------------------------
# Global Colors - Light Mode
# True shadcn style - neutral/monochromatic with zinc palette
--------------------------------------------------------------*/
:root {
  /* Core palette - true shadcn style (neutral/monochromatic) */
  --background-color: #fafafa;
  /* Zinc-50 - light background */
  --default-color: #3f3f46;
  /* Zinc-700 */
  --heading-color: #18181b;
  /* Zinc-900 */
  --accent-color: #18181b;
  /* Zinc-900 - shadcn uses dark as primary */
  --surface-color: #ffffff;
  --contrast-color: #ffffff;
  /* Extended text colors */
  --muted-color: #71717a;
  /* Zinc-500 */
  --light-color: #a1a1aa;
  /* Zinc-400 */
  /* Borders */
  --border-color: #e4e4e7;
  /* Zinc-200 */
  --border-color-light: #f4f4f5;
  /* Zinc-100 */
  --border-color-dark: #d4d4d8;
  /* Zinc-300 */
  /* Status colors - slightly muted for shadcn feel */
  --success-color: #16a34a;
  /* Green-600 */
  --success-color-light: #dcfce7;
  --warning-color: #ca8a04;
  /* Yellow-600 */
  --warning-color-light: #fef9c3;
  --danger-color: #dc2626;
  /* Red-600 */
  --danger-color-light: #fee2e2;
  --info-color: #0891b2;
  /* Cyan-600 */
  --info-color-light: #cffafe;
  /* Navigation colors */
  --nav-color: var(--default-color);
  --nav-hover-color: var(--heading-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(--heading-color);
  /* Header - Floating card style */
  --header-bg: #ffffff;
  --header-shadow: var(--shadow-floating);
  --header-border: var(--border-color);
  /* Sidebar - Floating card style */
  --sidebar-bg: #ffffff;
  --sidebar-border: var(--border-color);
  --sidebar-shadow: var(--shadow-floating);
  --sidebar-color: var(--default-color);
  --sidebar-muted-color: var(--muted-color);
  --sidebar-hover-bg: #f4f4f5;
  /* Zinc-100 */
  --sidebar-active-bg: #f4f4f5;
  /* Zinc-100 - subtle background */
  --sidebar-active-color: var(--heading-color);
  /* Cards - Both border AND shadow for subtle definition */
  --card-bg: #ffffff;
  --card-shadow: var(--shadow-sm);
  --card-border: var(--border-color);
  /* Tables */
  --table-header-bg: #fafafa;
  --table-hover-bg: #f4f4f5;
  --table-stripe-bg: #fafafa;
  /* Forms */
  --input-bg: #ffffff;
  --input-border: var(--border-color);
  --input-focus-border: var(--heading-color);
  --input-focus-ring: rgb(24 24 27 / 0.15);
}

/*--------------------------------------------------------------
# Dark Mode Palette - True shadcn style
--------------------------------------------------------------*/
[data-theme=dark] {
  /* Core palette - true shadcn dark mode (zinc-based) */
  --background-color: #09090b;
  /* Zinc-950 - very dark */
  --default-color: #a1a1aa;
  /* Zinc-400 */
  --heading-color: #fafafa;
  /* Zinc-50 */
  --accent-color: #fafafa;
  /* Zinc-50 - shadcn uses light as primary in dark mode */
  --surface-color: #18181b;
  /* Zinc-900 */
  --contrast-color: #18181b;
  /* Dark contrast for light accent */
  /* Extended text colors */
  --muted-color: #71717a;
  /* Zinc-500 */
  --light-color: #52525b;
  /* Zinc-600 */
  /* Borders - More prominent in dark mode */
  --border-color: #27272a;
  /* Zinc-800 */
  --border-color-light: #18181b;
  /* Zinc-900 */
  --border-color-dark: #3f3f46;
  /* Zinc-700 */
  /* Status colors (adjusted for dark mode) */
  --success-color: #22c55e;
  /* Green-500 */
  --success-color-light: rgba(34, 197, 94, 0.15);
  --warning-color: #eab308;
  /* Yellow-500 */
  --warning-color-light: rgba(234, 179, 8, 0.15);
  --danger-color: #ef4444;
  /* Red-500 */
  --danger-color-light: rgba(239, 68, 68, 0.15);
  --info-color: #06b6d4;
  /* Cyan-500 */
  --info-color-light: rgba(6, 182, 212, 0.15);
  /* Navigation colors */
  --nav-color: var(--default-color);
  --nav-hover-color: var(--heading-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(--heading-color);
  /* Header - Border only, no shadow in dark mode */
  --header-bg: #18181b;
  --header-shadow: none;
  --header-border: var(--border-color);
  /* Sidebar - Border only, no shadow in dark mode */
  --sidebar-bg: #18181b;
  --sidebar-border: var(--border-color);
  --sidebar-shadow: none;
  --sidebar-color: var(--default-color);
  --sidebar-muted-color: var(--muted-color);
  --sidebar-hover-bg: #27272a;
  --sidebar-active-bg: #27272a;
  /* Zinc-800 - subtle background */
  --sidebar-active-color: var(--heading-color);
  /* Cards - Border only, no shadow in dark mode */
  --card-bg: #18181b;
  --card-shadow: none;
  --card-border: var(--border-color);
  /* Tables */
  --table-header-bg: #09090b;
  --table-hover-bg: #27272a;
  --table-stripe-bg: #0f0f11;
  /* Forms - Slightly lighter than surface */
  --input-bg: #27272a;
  --input-border: var(--border-color);
  --input-focus-border: var(--heading-color);
  --input-focus-ring: rgb(250 250 250 / 0.15);
  /* 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), #16a34a) !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), #0891b2) !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;
  -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] {
  -webkit-text-decoration: underline dotted;
  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-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}

/*--------------------------------------------------------------
# Selection
--------------------------------------------------------------*/
::-moz-selection {
  background-color: var(--accent-color);
  color: white;
}

::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%);
}

/* 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: 0 0 0 3px var(--input-focus-ring);
}

/* Cards */
.card {
  border-radius: var(--radius-lg);
  border-color: var(--card-border);
  box-shadow: var(--card-shadow);
  margin-bottom: var(--spacing-lg);
}

/* 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: 0 0 0 3px var(--input-focus-ring);
}

.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;
  -webkit-user-select: none;
  -moz-user-select: none;
  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 - Floating Card Style with Expandable Search
--------------------------------------------------------------*/
.header {
  position: fixed;
  top: var(--floating-gap);
  left: var(--floating-gap);
  right: var(--floating-gap);
  height: var(--header-height);
  background: var(--header-bg);
  border: 1px solid var(--header-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--header-shadow);
  display: flex;
  align-items: center;
  padding: 0 var(--spacing-md);
  z-index: 1000;
  transition: left var(--transition-base);
}

@media (min-width: 576px) {
  .header {
    padding: 0 var(--spacing-lg);
  }
}

/* Desktop: Account for floating sidebar with gaps */
@media (min-width: 1200px) {
  .header {
    left: calc(var(--sidebar-width) + var(--floating-gap) * 2);
    right: var(--floating-gap);
  }

  .sidebar-collapsed .header {
    left: calc(var(--sidebar-collapsed-width) + var(--floating-gap) * 2);
  }
}

/* Header Left - Logo & Toggle */
.header-left {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
}

.header-logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--heading-color);
}

.header-logo img {
  height: 24px;
  width: auto;
  max-width: 80px;
  -o-object-fit: contain;
  object-fit: contain;
  transition: filter var(--transition-base);
}

@media (min-width: 576px) {
  .header-logo img {
    height: 28px;
    max-width: 100px;
  }
}

.header-logo span {
  display: none;
}

@media (min-width: 576px) {
  .header-logo span {
    display: inline;
  }
}

.header-logo:hover {
  color: var(--accent-color);
}

/* Hide logo on desktop (shown in sidebar) */
@media (min-width: 1200px) {
  .header-logo {
    display: none;
  }
}

/* Sidebar Toggle Button */
.sidebar-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  color: var(--default-color);
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.sidebar-toggle:hover {
  background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
  color: var(--accent-color);
}

.sidebar-toggle i {
  font-size: 1.5rem;
}

/*--------------------------------------------------------------
# Expandable Search
--------------------------------------------------------------*/
.header-search {
  position: relative;
  flex: 0 0 auto;
  margin: 0 var(--spacing-md);
  display: none;
}

@media (min-width: 768px) {
  .header-search {
    display: flex;
    align-items: center;
  }
}

.search-form {
  position: relative;
  display: flex;
  align-items: center;
  transition: width var(--transition-base);
}

/* Collapsed state - icon only */
.search-form.collapsed {
  width: 40px;
  height: 40px;
}

.search-form.collapsed input {
  width: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  border: none;
}

/* Expanded state - full search field */
.search-form.expanded {
  width: 280px;
}

.search-form.expanded input {
  width: 100%;
  opacity: 1;
  pointer-events: auto;
}

.search-form input {
  height: 40px;
  padding: 0 var(--spacing-md) 0 40px;
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  font-size: 0.875rem;
  color: var(--default-color);
  transition: width var(--transition-base), opacity var(--transition-base), padding var(--transition-base), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.search-form input::-moz-placeholder {
  color: var(--muted-color);
}

.search-form input::placeholder {
  color: var(--muted-color);
}

.search-form input:focus {
  outline: none;
  border-color: var(--accent-color);
  box-shadow: 0 0 0 3px var(--input-focus-ring);
}

/* Search toggle button */
.search-toggle-btn {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: transparent;
  border: none;
  color: var(--muted-color);
  cursor: pointer;
  z-index: 1;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.search-toggle-btn:hover {
  background: var(--background-color);
  color: var(--accent-color);
}

.search-toggle-btn i {
  font-size: 1.125rem;
}

/* Hide toggle btn when expanded and focused */
.search-form.expanded .search-toggle-btn {
  pointer-events: none;
}

/* Header Right - Actions */
.header-right {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  margin-left: auto;
}

@media (min-width: 576px) {
  .header-right {
    gap: var(--spacing-sm);
  }
}

/* Header Action Button */
.header-action {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.header-action>button,
.header-action>a,
button.header-action,
a.header-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  color: var(--muted-color);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

@media (min-width: 576px) {

  .header-action>button,
  .header-action>a,
  button.header-action,
  a.header-action {
    width: 40px;
    height: 40px;
  }
}

.header-action>button:hover,
.header-action>a:hover,
button.header-action:hover,
a.header-action:hover {
  background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
  color: var(--accent-color);
}

.header-action i {
  font-size: 1.25rem;
}

/* Notification Badge */
.header-action .badge {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  background: var(--danger-color);
  color: white;
  border-radius: var(--radius-full);
}

/* Theme Toggle */
.theme-toggle .icon-light {
  display: none;
}

[data-theme=dark] .theme-toggle .icon-dark {
  display: none;
}

[data-theme=dark] .theme-toggle .icon-light {
  display: block;
}

/* Fullscreen Toggle */
.fullscreen-toggle .icon-exit {
  display: none;
}

.fullscreen-active .fullscreen-toggle .icon-enter {
  display: none;
}

.fullscreen-active .fullscreen-toggle .icon-exit {
  display: block;
}

/* Language Dropdown */
.language-dropdown .dropdown-toggle {
  padding: var(--spacing-xs) var(--spacing-sm);
}

.language-dropdown img {
  width: 20px;
  height: 15px;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 2px;
}

.language-dropdown .dropdown-menu {
  min-width: 160px;
}

.language-dropdown .dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.language-dropdown .dropdown-item img {
  width: 20px;
  height: 15px;
}

/*--------------------------------------------------------------
# Notification Dropdown - shadcn Style
--------------------------------------------------------------*/
.notification-dropdown .dropdown-toggle {
  background: transparent;
  border: none;
}

.notification-dropdown .dropdown-toggle::after {
  display: none;
}

.notification-dropdown .dropdown-menu {
  width: 380px;
  max-width: calc(100vw - 2rem);
  padding: 0;
  border-radius: var(--radius-lg);
  box-shadow: 0 10px 38px -10px rgba(22, 23, 24, 0.35), 0 10px 20px -15px rgba(22, 23, 24, 0.2);
  border: 1px solid var(--border-color);
  overflow: hidden;
  list-style: none;
}

.notification-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-md) var(--spacing-lg);
  background: var(--background-color);
}

.notification-header h6 {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--heading-color);
  letter-spacing: -0.01em;
}

.notification-header a {
  font-size: 0.75rem;
  color: var(--muted-color);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.notification-header a:hover {
  color: var(--heading-color);
}

.notification-list {
  max-height: 400px;
  overflow-y: auto;
  list-style: none !important;
  list-style-type: none !important;
  padding: 0;
  margin: 0;
}

.notification-list * {
  list-style: none;
  list-style-type: none;
}

/* Scrollbar styling for notification list */
.notification-list::-webkit-scrollbar {
  width: 6px;
}

.notification-list::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 3px;
}

.notification-list::-webkit-scrollbar-track {
  background: transparent;
}

.notification-item {
  display: flex;
  gap: var(--spacing-md);
  padding: var(--spacing-md) var(--spacing-lg);
  cursor: pointer;
  transition: background-color var(--transition-fast);
  position: relative;
  list-style: none;
}

.notification-item::marker {
  display: none;
  content: none;
}

.notification-item:hover {
  background-color: var(--background-color);
}

.notification-item:not(:last-child)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: var(--spacing-lg);
  right: var(--spacing-lg);
  height: 1px;
  background: var(--border-color-light);
}

.notification-item.unread {
  background-color: var(--background-color);
}

.notification-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  font-size: 1rem;
}

.notification-icon.success {
  background: var(--success-color-light);
  color: var(--success-color);
}

.notification-icon.warning {
  background: var(--warning-color-light);
  color: var(--warning-color);
}

.notification-icon.danger {
  background: var(--danger-color-light);
  color: var(--danger-color);
}

.notification-icon.info {
  background: var(--info-color-light);
  color: var(--info-color);
}

.notification-content {
  flex: 1;
  min-width: 0;
}

.notification-title {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--heading-color);
  margin-bottom: 2px;
  letter-spacing: -0.01em;
}

.notification-text {
  font-size: 0.8125rem;
  color: var(--muted-color);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.notification-time {
  font-size: 0.6875rem;
  color: var(--light-color);
  margin-top: 6px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.notification-footer {
  padding: var(--spacing-sm) var(--spacing-lg);
  background: var(--background-color);
}

.notification-footer a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-xs);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--muted-color);
  text-decoration: none;
  padding: var(--spacing-xs) 0;
  transition: color var(--transition-fast);
}

.notification-footer a:hover {
  color: var(--heading-color);
}

/* Empty state */
.notification-empty {
  padding: var(--spacing-xl);
  text-align: center;
}

.notification-empty i {
  font-size: 2.5rem;
  color: var(--light-color);
  margin-bottom: var(--spacing-md);
}

.notification-empty p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted-color);
}

/*--------------------------------------------------------------
# User Dropdown - shadcn Style
--------------------------------------------------------------*/
.user-dropdown {
  margin-left: var(--spacing-xs);
}

.user-dropdown .dropdown-toggle {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: 4px;
  border-radius: var(--radius-full);
  background: transparent;
  border: 1px solid transparent;
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.user-dropdown .dropdown-toggle:hover {
  background-color: var(--background-color);
  border-color: var(--border-color);
}

.user-dropdown .dropdown-toggle::after {
  display: none;
}

.user-dropdown .avatar {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  -o-object-fit: cover;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid var(--border-color);
  transition: border-color var(--transition-fast);
}

.user-dropdown .dropdown-toggle:hover .avatar {
  border-color: var(--border-color-dark);
}

.user-dropdown .user-name {
  display: none;
}

.user-dropdown .dropdown-menu {
  width: 240px;
  padding: var(--spacing-xs);
  border-radius: var(--radius-lg);
  box-shadow: 0 10px 38px -10px rgba(22, 23, 24, 0.35), 0 10px 20px -15px rgba(22, 23, 24, 0.2);
  border: 1px solid var(--border-color);
  margin-top: var(--spacing-xs);
  list-style: none;
}

/* User info header */
.user-dropdown .dropdown-header {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-sm) var(--spacing-sm);
  margin-bottom: var(--spacing-xs);
  border-bottom: none;
  background: transparent;
}

.user-dropdown .dropdown-header .user-avatar {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  -o-object-fit: cover;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid var(--border-color);
}

.user-dropdown .dropdown-header .user-info {
  flex: 1;
  min-width: 0;
}

.user-dropdown .dropdown-header h6 {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--heading-color);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-dropdown .dropdown-header span {
  font-size: 0.75rem;
  color: var(--muted-color);
}

/* Menu divider */
.user-dropdown .dropdown-divider {
  margin: var(--spacing-xs) 0;
  border-color: var(--border-color);
}

/* Menu items */
.user-dropdown .dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-sm) var(--spacing-sm);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  color: var(--default-color);
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.user-dropdown .dropdown-item:hover {
  background-color: var(--background-color);
  color: var(--heading-color);
}

.user-dropdown .dropdown-item i {
  width: 16px;
  font-size: 1rem;
  color: var(--muted-color);
  transition: color var(--transition-fast);
}

.user-dropdown .dropdown-item:hover i {
  color: var(--default-color);
}

/* Keyboard shortcut hint */
.user-dropdown .dropdown-item .shortcut {
  margin-left: auto;
  font-size: 0.6875rem;
  color: var(--light-color);
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
  background: var(--background-color);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-color);
}

/* Sign out item - danger style */
.user-dropdown .dropdown-item-danger {
  color: var(--danger-color);
}

.user-dropdown .dropdown-item-danger i {
  color: var(--danger-color);
}

.user-dropdown .dropdown-item-danger:hover {
  background-color: var(--danger-color-light);
  color: var(--danger-color);
}

.user-dropdown .dropdown-item-danger:hover i {
  color: var(--danger-color);
}

/*--------------------------------------------------------------
# Mobile Header Actions
--------------------------------------------------------------*/
/* Desktop actions - visible on larger screens */
.header-actions-desktop {
  display: none;
  align-items: center;
  gap: var(--spacing-xs);
}

@media (min-width: 576px) {
  .header-actions-desktop {
    gap: var(--spacing-sm);
  }
}

@media (min-width: 768px) {
  .header-actions-desktop {
    display: flex;
  }
}

/* Mobile actions - visible only on mobile */
.header-actions-mobile {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
}

@media (min-width: 768px) {
  .header-actions-mobile {
    display: none;
  }
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
  display: flex;
}

/*--------------------------------------------------------------
# Mobile Search Overlay
--------------------------------------------------------------*/
.mobile-search {
  display: none;
  position: fixed;
  top: calc(var(--header-height) + var(--floating-gap) * 2);
  left: var(--floating-gap);
  right: var(--floating-gap);
  padding: var(--spacing-sm);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  z-index: 998;
  animation: slideDown var(--transition-fast) ease-out;
}

.mobile-search.active {
  display: block;
}

/* Mobile search form styling */
.mobile-search .search-form {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
}

.mobile-search .search-form input {
  width: 100%;
  height: 44px;
  padding: 0 48px 0 var(--spacing-md);
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: 0.9375rem;
  color: var(--default-color);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.mobile-search .search-form input::-moz-placeholder {
  color: var(--muted-color);
}

.mobile-search .search-form input::placeholder {
  color: var(--muted-color);
}

.mobile-search .search-form input:focus {
  outline: none;
  border-color: var(--accent-color);
  box-shadow: 0 0 0 3px var(--input-focus-ring);
}

.mobile-search .search-form button[type=submit] {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  background: var(--accent-color);
  border: none;
  color: white;
  cursor: pointer;
  transition: background-color var(--transition-fast);
}

.mobile-search .search-form button[type=submit]:hover {
  background: color-mix(in srgb, var(--accent-color), black 10%);
}

.mobile-search .search-form button[type=submit] i {
  font-size: 1rem;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/*--------------------------------------------------------------
# Mobile Header Menu (Three Dots Menu)
--------------------------------------------------------------*/
.mobile-header-menu {
  display: none;
  position: fixed;
  top: calc(var(--header-height) + var(--floating-gap) * 2);
  left: var(--floating-gap);
  right: var(--floating-gap);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  z-index: 997;
  animation: slideDown var(--transition-fast) ease-out;
}

.mobile-header-menu.active {
  display: block;
}

@media (min-width: 768px) {
  .mobile-header-menu {
    display: none !important;
  }
}

.mobile-header-menu-content {
  display: flex;
  flex-wrap: wrap;
  padding: var(--spacing-sm);
  gap: var(--spacing-xs);
}

.mobile-menu-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: 1;
  min-width: calc(33.333% - var(--spacing-xs));
  max-width: calc(33.333% - var(--spacing-xs));
  padding: var(--spacing-md) var(--spacing-sm);
  border-radius: var(--radius-md);
  background: transparent;
  border: none;
  color: var(--default-color);
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  position: relative;
}

.mobile-menu-item:hover {
  background-color: var(--background-color);
  color: var(--accent-color);
}

.mobile-menu-item i {
  font-size: 1.25rem;
}

.mobile-menu-item .badge {
  position: absolute;
  top: 8px;
  right: calc(50% - 20px);
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  background: var(--danger-color);
  color: white;
  border-radius: var(--radius-full);
}

.mobile-menu-label {
  font-size: 0.6875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--muted-color);
}

.mobile-menu-item:hover .mobile-menu-label {
  color: var(--accent-color);
}

/* Danger variant for sign out */
.mobile-menu-item-danger:hover {
  background-color: var(--danger-color-light);
  color: var(--danger-color);
}

.mobile-menu-item-danger:hover .mobile-menu-label {
  color: var(--danger-color);
}

/* Theme toggle in mobile menu */
.mobile-menu-item.theme-toggle .icon-light {
  display: none;
}

[data-theme=dark] .mobile-menu-item.theme-toggle .icon-dark {
  display: none;
}

[data-theme=dark] .mobile-menu-item.theme-toggle .icon-light {
  display: block;
}

/* Fullscreen toggle in mobile menu */
.mobile-menu-item.fullscreen-toggle .icon-exit {
  display: none;
}

.fullscreen-active .mobile-menu-item.fullscreen-toggle .icon-enter {
  display: none;
}

.fullscreen-active .mobile-menu-item.fullscreen-toggle .icon-exit {
  display: block;
}

/*--------------------------------------------------------------
# Sidebar - Floating Card Style with Slim Rail Collapse
--------------------------------------------------------------*/
.sidebar {
  position: fixed;
  top: var(--floating-gap);
  left: var(--floating-gap);
  bottom: var(--floating-gap);
  width: var(--sidebar-width);
  background: var(--sidebar-bg);
  border: 1px solid var(--sidebar-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--sidebar-shadow);
  z-index: 1001;
  display: flex;
  flex-direction: column;
  transition: width var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
  overflow: hidden;
}

/* Mobile: Full overlay drawer (no floating, edge-to-edge) */
@media (max-width: 1199px) {
  .sidebar {
    top: 0;
    left: 0;
    bottom: 0;
    border-radius: 0;
    box-shadow: var(--shadow-xl);
    transform: translateX(-100%);
  }

  .sidebar-open .sidebar {
    transform: translateX(0);
  }
}

/* Desktop: Slim rail collapsed state (~50px) */
@media (min-width: 1200px) {
  .sidebar-collapsed .sidebar {
    width: var(--sidebar-collapsed-width);
    overflow: visible;
  }

  .sidebar-collapsed .sidebar-nav {
    overflow: visible;
  }

  /* Hover to expand full sidebar on desktop */
  .sidebar-collapsed .sidebar:hover {
    width: var(--sidebar-width);
    box-shadow: var(--shadow-xl);
  }

  /* Show hidden elements on hover-expand */
  .sidebar-collapsed .sidebar:hover .nav-item>.nav-link>span,
  .sidebar-collapsed .sidebar:hover .nav-arrow,
  .sidebar-collapsed .sidebar:hover .nav-badge,
  .sidebar-collapsed .sidebar:hover .nav-heading span,
  .sidebar-collapsed .sidebar:hover .sidebar-logo-text,
  .sidebar-collapsed .sidebar:hover .sidebar-logo>span {
    display: flex;
    opacity: 1;
    width: auto;
  }

  .sidebar-collapsed .sidebar:hover .nav-item>.nav-link {
    justify-content: flex-start;
    padding: 10px 12px;
  }

  .sidebar-collapsed .sidebar:hover .nav-item>.nav-link>i:first-child {
    margin-right: 12px;
    font-size: 1.25rem;
  }

  .sidebar-collapsed .sidebar:hover .nav-heading {
    text-align: left;
    padding: var(--spacing-lg) var(--spacing-md) var(--spacing-xs);
  }

  .sidebar-collapsed .sidebar:hover .nav-heading::before {
    display: none;
  }

  .sidebar-collapsed .sidebar:hover .sidebar-header {
    justify-content: space-between;
    padding: 0 var(--spacing-lg);
  }
}

/*--------------------------------------------------------------
# Sidebar Header
--------------------------------------------------------------*/
.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
  padding: 0 var(--spacing-lg);
  border-bottom: 1px solid var(--sidebar-border);
  flex-shrink: 0;
}

.sidebar-collapsed .sidebar-header {
  justify-content: center;
  padding: 0 var(--spacing-sm);
}

.sidebar-collapsed .sidebar-logo {
  justify-content: center;
  gap: 0;
}

.sidebar-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.sidebar-logo:hover {
  text-decoration: none;
}

.sidebar-logo img {
  height: 36px;
  max-width: 38px;
  flex-shrink: 0;
  -o-object-fit: contain;
  object-fit: contain;
  border-radius: var(--radius-sm);
  transition: filter var(--transition-base);
}

.sidebar-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
  transition: opacity var(--transition-fast), width var(--transition-fast);
}

.sidebar-logo-name {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--heading-color);
  letter-spacing: -0.01em;
}

.sidebar-logo-tagline {
  font-size: 0.75rem;
  color: var(--muted-color);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.sidebar-collapsed .sidebar-logo-text {
  opacity: 0;
  width: 0;
  overflow: hidden;
}

/* Legacy support for span-based logo */
.sidebar-logo>span:not(.sidebar-logo-text):not(.sidebar-logo-name):not(.sidebar-logo-tagline) {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--heading-color);
  letter-spacing: -0.01em;
  transition: opacity var(--transition-fast), width var(--transition-fast);
}

.sidebar-collapsed .sidebar-logo>span:not(.sidebar-logo-text):not(.sidebar-logo-name):not(.sidebar-logo-tagline) {
  opacity: 0;
  width: 0;
  overflow: hidden;
}

.sidebar-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-md);
  color: var(--muted-color);
  background: none;
  border: none;
  cursor: pointer;
}

.sidebar-close:hover {
  background-color: var(--sidebar-hover-bg);
  color: var(--default-color);
}

@media (min-width: 1200px) {
  .sidebar-close {
    display: none;
  }
}

/*--------------------------------------------------------------
# Sidebar Navigation
--------------------------------------------------------------*/
.sidebar-nav {
  flex: 1;
  padding: var(--spacing-md) var(--spacing-sm);
  overflow-y: auto;
  overflow-x: hidden;
}

/* Scrollbar styling */
.sidebar-nav::-webkit-scrollbar {
  width: 4px;
}

.sidebar-nav::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}

.sidebar-nav::-webkit-scrollbar-track {
  background: transparent;
}

/* Nav Menu - Reset list styles */
.nav-menu,
.nav-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.nav-menu {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/*--------------------------------------------------------------
# Nav Heading (Section Title)
--------------------------------------------------------------*/
.nav-heading {
  padding: var(--spacing-lg) var(--spacing-md) var(--spacing-xs);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sidebar-muted-color);
  white-space: nowrap;
  overflow: hidden;
}

.sidebar-collapsed .nav-heading {
  text-align: center;
  padding: var(--spacing-lg) var(--spacing-xs) var(--spacing-xs);
}

.sidebar-collapsed .nav-heading span {
  display: none;
}

.sidebar-collapsed .nav-heading::before {
  content: "•";
  font-size: 1rem;
}

/*--------------------------------------------------------------
# Nav Item & Nav Link
--------------------------------------------------------------*/
.nav-item {
  position: relative;
}

/* Main nav link style */
.nav-item>.nav-link {
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--sidebar-color);
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.nav-item>.nav-link:hover {
  background-color: var(--sidebar-hover-bg);
  color: var(--sidebar-color);
}

/* Icon in nav link */
.nav-item>.nav-link>i:first-child {
  width: 22px;
  margin-right: 12px;
  font-size: 1.25rem;
  text-align: center;
  flex-shrink: 0;
}

/* Text in nav link */
.nav-item>.nav-link>span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Arrow icon for submenus - positioned at the right */
.nav-arrow {
  font-size: 0.625rem;
  margin-left: auto;
  transition: transform var(--transition-fast);
  opacity: 0.7;
}

.nav-link[aria-expanded=true]>.nav-arrow,
.has-submenu.open>.nav-link>.nav-arrow {
  transform: rotate(180deg);
}

/* Active State */
.nav-item>.nav-link.active,
.nav-item.has-submenu.open>.nav-link {
  background-color: var(--sidebar-active-bg);
  color: var(--sidebar-active-color);
}

/* Badge in nav */
.nav-badge {
  padding: 2px 8px;
  font-size: 0.625rem;
  font-weight: 600;
  border-radius: var(--radius-full);
  background: var(--accent-color);
  color: white;
  flex-shrink: 0;
  margin-left: auto;
}

/*--------------------------------------------------------------
# Collapsed Sidebar State - Slim Rail
--------------------------------------------------------------*/
@media (min-width: 1200px) {
  .sidebar-collapsed .nav-item>.nav-link {
    justify-content: center;
    padding: 10px;
    position: relative;
  }

  .sidebar-collapsed .nav-item>.nav-link>i:first-child {
    margin-right: 0;
    font-size: 1.375rem;
  }

  .sidebar-collapsed .nav-item>.nav-link>span,
  .sidebar-collapsed .nav-arrow,
  .sidebar-collapsed .nav-badge {
    display: none;
  }

  /* Tooltip for collapsed state */
  .sidebar-collapsed .sidebar:not(:hover) .nav-item>.nav-link[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    left: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%);
    padding: 6px 12px;
    background: var(--heading-color);
    color: var(--contrast-color);
    font-size: 0.8125rem;
    font-weight: 500;
    border-radius: var(--radius-md);
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-fast);
    z-index: 1000;
  }

  .sidebar-collapsed .sidebar:not(:hover) .nav-item>.nav-link[data-tooltip]:hover::after {
    opacity: 1;
  }
}

/*--------------------------------------------------------------
# Submenu (2nd Level)
--------------------------------------------------------------*/
.nav-submenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition-base);
}

/* Open state - via JS (.open on parent) or Jinja (.show on submenu) */
.has-submenu.open>.nav-submenu,
.nav-submenu.show {
  max-height: none;
  margin-top: 4px;
}

/* Submenu items */
.nav-submenu>li>.nav-link {
  display: flex;
  align-items: center;
  padding: 7px 12px 7px 12px;
  margin-left: 32px;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--sidebar-muted-color);
  text-decoration: none;
  border-radius: var(--radius-md);
  position: relative;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

/* Bullet indicator */
.nav-submenu>li>.nav-link::before {
  content: "";
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  background-color: var(--sidebar-border);
  border-radius: var(--radius-full);
  transition: background-color var(--transition-fast);
}

.nav-submenu>li>.nav-link:hover {
  color: var(--accent-color);
}

.nav-submenu>li>.nav-link:hover::before {
  background-color: var(--accent-color);
}

.nav-submenu>li>.nav-link.active {
  color: var(--accent-color);
}

.nav-submenu>li>.nav-link.active::before {
  background-color: var(--accent-color);
}

/*--------------------------------------------------------------
# Nested Submenu (3rd Level)
--------------------------------------------------------------*/
/* 3rd level container inside 2nd level submenu */
.nav-submenu .has-submenu {
  position: relative;
}

.nav-submenu .has-submenu>.nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: 12px;
}

.nav-submenu .has-submenu>.nav-link>.nav-arrow {
  font-size: 0.75rem;
  transition: transform var(--transition-fast);
}

.nav-submenu .has-submenu.open>.nav-link>.nav-arrow {
  transform: rotate(180deg);
}

/* 3rd level submenu - inherits max-height: 0 from .nav-submenu */
.nav-submenu .has-submenu.open>.nav-submenu {
  margin-top: 4px;
}

.nav-submenu .nav-submenu>li>.nav-link {
  margin-left: 44px;
}

/*--------------------------------------------------------------
# Collapsed Sidebar - Flyout Submenus
--------------------------------------------------------------*/
@media (min-width: 1200px) {
  .sidebar-collapsed .sidebar:not(:hover) .nav-submenu {
    display: none !important;
    max-height: none !important;
  }

  /* Show submenu on hover for collapsed sidebar (non-expanded state) */
  .sidebar-collapsed .sidebar:not(:hover) .nav-item.has-submenu:hover>.nav-submenu {
    display: block !important;
    position: absolute;
    left: 100%;
    top: 0;
    min-width: 200px;
    max-height: none !important;
    padding: var(--spacing-sm);
    margin: 0;
    background: var(--sidebar-bg);
    border: 1px solid var(--sidebar-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    z-index: 1000;
  }

  .sidebar-collapsed .sidebar:not(:hover) .nav-item.has-submenu:hover>.nav-submenu>li>.nav-link {
    margin-left: 0;
    padding-left: 24px;
  }

  .sidebar-collapsed .sidebar:not(:hover) .nav-item.has-submenu:hover>.nav-submenu>li>.nav-link::before {
    left: 10px;
  }
}

/*--------------------------------------------------------------
# Sidebar Footer - REMOVED (actions moved to header)
--------------------------------------------------------------*/
.sidebar-footer {
  display: none;
}

/*--------------------------------------------------------------
# Sidebar Overlay (Mobile)
--------------------------------------------------------------*/
.sidebar-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  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;
  }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer {
  padding: var(--spacing-xl) var(--spacing-xl);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-floating);
  margin-top: auto;
}

.footer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--spacing-sm);
}

.footer-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--spacing-md) var(--spacing-lg);
}

.footer-links a {
  font-size: 0.875rem;
  color: var(--muted-color);
  transition: color var(--transition-fast);
}

.footer-links a:hover {
  color: var(--accent-color);
}

.footer-copyright {
  font-size: 0.875rem;
  color: var(--muted-color);
}

.footer-copyright a {
  font-weight: 500;
  color: var(--accent-color);
}

.footer-credits {
  font-size: 0.875rem;
  color: var(--muted-color);
}

.footer-credits a {
  color: var(--accent-color);
}

/* Responsive */
@media (max-width: 575px) {
  .footer {
    padding: var(--spacing-lg);
  }

  .footer-links {
    gap: var(--spacing-sm) var(--spacing-md);
  }
}

/*--------------------------------------------------------------
# Main Content Area - Floating Layout Support
--------------------------------------------------------------*/
.main {
  /* Account for floating header with gaps */
  margin-top: calc(var(--header-height) + var(--floating-gap) * 2);
  min-height: calc(100vh - var(--header-height) - var(--floating-gap) * 2);
  display: flex;
  flex-direction: column;
  /* Mobile: align with header edges */
  margin-left: var(--floating-gap);
  margin-right: var(--floating-gap);
  padding: 0;
  padding-bottom: var(--floating-gap);
  transition: margin-left var(--transition-base);
}

/* Desktop: Align main content with header (same left position) */
@media (min-width: 1200px) {
  .main {
    /* Match header's left position exactly */
    margin-left: calc(var(--sidebar-width) + var(--floating-gap) * 2);
    /* No horizontal padding - content fills the space like the header */
    padding: 0;
    padding-bottom: var(--floating-gap);
    /* Right margin to match header's right gap */
    margin-right: var(--floating-gap);
  }

  .sidebar-collapsed .main {
    margin-left: calc(var(--sidebar-collapsed-width) + var(--floating-gap) * 2);
  }
}

/* Main Content */
.main-content {
  flex: 1;
  padding: 5px;
  padding-bottom: 2rem;
}

/* Page Header */
.page-header,
.pagetitle {
  margin-bottom: var(--spacing-xl);
}

.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: white;
  border-radius: var(--radius-lg);
  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: white;
}

.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 (Login, Register, etc.)
# Clean shadcn style with theme background
--------------------------------------------------------------*/
.auth-layout {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-xl);
  position: relative;
  /* Use theme background - no gradient */
  background: var(--background-color);
}

/* Auth Container */
.auth-container {
  width: 100%;
  max-width: 440px;
  position: relative;
  z-index: 1;
}

/* Auth Logo */
.auth-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-xl);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--heading-color);
  text-decoration: none;
}

.auth-logo:hover {
  color: var(--heading-color);
}

.auth-logo img {
  height: 40px;
  width: auto;
}

/* Auth Card - Clean card style */
.auth-card {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  padding: var(--spacing-2xl);
}

.auth-card-header {
  text-align: center;
  margin-bottom: var(--spacing-xl);
}

.auth-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--heading-color);
  margin-bottom: var(--spacing-xs);
  letter-spacing: -0.02em;
}

.auth-subtitle {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin: 0;
}

/* Auth Icon (for pages like forgot password) */
.auth-icon {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--accent-color), transparent 90%);
  color: var(--accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--spacing-lg);
  font-size: 1.5rem;
}

.auth-icon.success {
  background: var(--success-color-light);
  color: var(--success-color);
}

.auth-icon.warning {
  background: var(--warning-color-light);
  color: var(--warning-color);
}

.auth-icon.danger {
  background: var(--danger-color-light);
  color: var(--danger-color);
}

/* Auth Avatar (for lock screen) */
.auth-avatar {
  width: 96px;
  height: 96px;
  margin: 0 auto var(--spacing-lg);
}

.auth-avatar img {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-full);
  -o-object-fit: cover;
  object-fit: cover;
  border: 4px solid var(--border-color);
  box-shadow: var(--shadow-md);
}

/* Auth Form */
.auth-form .form-group {
  margin-bottom: var(--spacing-lg);
}

.auth-form .form-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading-color);
  margin-bottom: var(--spacing-sm);
}

.auth-form .form-control {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0 var(--spacing-md);
  font-size: 0.875rem;
  color: var(--default-color);
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-md);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.auth-form .form-control:focus {
  outline: none;
  border-color: var(--input-focus-border);
  box-shadow: 0 0 0 3px var(--input-focus-ring);
}

.auth-form .form-control::-moz-placeholder {
  color: var(--light-color);
}

.auth-form .form-control::placeholder {
  color: var(--light-color);
}

.auth-form .form-text {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin-top: var(--spacing-xs);
}

/* Input Group for password toggle */
.auth-form .input-group {
  display: flex;
}

.auth-form .input-group .form-control {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.auth-form .input-group .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-left: 0;
  padding: 0 var(--spacing-md);
  border-color: var(--input-border);
  color: var(--muted-color);
  background: var(--input-bg);
}

.auth-form .input-group .btn:hover {
  background: var(--background-color);
  border-color: var(--input-border);
  color: var(--default-color);
}

.auth-form .input-group .btn:focus {
  box-shadow: none;
  border-color: var(--input-focus-border);
}

/* Remember Me / Forgot Password Row */
.auth-form .form-check {
  margin-bottom: var(--spacing-lg);
}

.auth-form .form-check-input {
  width: 18px;
  height: 18px;
  margin-top: 0;
  vertical-align: middle;
  border-radius: var(--radius-sm);
}

.auth-form .form-check-label {
  font-size: 0.875rem;
  color: var(--default-color);
  margin-left: var(--spacing-xs);
}

/* Auth Button */
.auth-form .btn-block {
  width: 100%;
  height: 44px;
  font-size: 0.875rem;
  font-weight: 600;
}

/* Auth Link */
.auth-link {
  color: var(--accent-color);
  font-weight: 500;
  text-decoration: none;
}

.auth-link:hover {
  color: color-mix(in srgb, var(--accent-color), black 15%);
  text-decoration: underline;
}

/* Social Login */
.auth-divider {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  margin: var(--spacing-xl) 0;
  color: var(--muted-color);
  font-size: 0.8125rem;
}

.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border-color);
}

.auth-social {
  display: flex;
  gap: var(--spacing-sm);
}

.auth-social .btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  height: 44px;
  font-size: 0.875rem;
  font-weight: 500;
}

/* Auth Footer Text */
.auth-footer-text {
  text-align: center;
  margin-top: var(--spacing-lg);
  font-size: 0.875rem;
  color: var(--muted-color);
}

.auth-footer-text:last-child {
  margin-bottom: 0;
}

/* Auth Alert */
.auth-alert {
  padding: var(--spacing-md);
  border-radius: var(--radius-md);
  margin-bottom: var(--spacing-lg);
  font-size: 0.875rem;
}

.auth-alert-error {
  background: var(--danger-color-light);
  color: var(--danger-color);
  border: 1px solid var(--danger-color);
}

.auth-alert-success {
  background: var(--success-color-light);
  color: var(--success-color);
  border: 1px solid var(--success-color);
}

/* OTP Input (for 2FA) */
.otp-input-group {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
}

.otp-input {
  width: 48px !important;
  height: 56px !important;
  padding: 0 !important;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 600;
}

.otp-separator {
  font-size: 1.5rem;
  color: var(--muted-color);
}

/* Centered Footer for Auth Layout */
.footer-centered {
  margin-top: var(--spacing-2xl);
  text-align: center;
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.footer-centered .footer-copyright {
  margin-bottom: var(--spacing-sm);
}

.footer-centered .footer-copyright a {
  color: var(--heading-color);
  font-weight: 500;
}

.footer-centered .footer-copyright a:hover {
  color: var(--accent-color);
}

.footer-centered .footer-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-md);
}

.footer-centered .footer-links a {
  color: var(--muted-color);
}

.footer-centered .footer-links a:hover {
  color: var(--heading-color);
}

/* Responsive */
@media (max-width: 575.98px) {
  .auth-layout {
    padding: var(--spacing-lg);
  }

  .auth-card {
    padding: var(--spacing-xl);
  }

  .auth-title {
    font-size: 1.25rem;
  }

  .auth-social {
    flex-direction: column;
  }

  .otp-input {
    width: 40px !important;
    height: 48px !important;
    font-size: 1.25rem;
  }
}

/*--------------------------------------------------------------
# Dark Mode Overrides for Auth
--------------------------------------------------------------*/
[data-theme=dark] .auth-card {
  box-shadow: none;
  border-color: var(--border-color);
}

/*--------------------------------------------------------------
# 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-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: #92400e;
}

.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;
  -webkit-user-select: none;
  -moz-user-select: none;
  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 - shadcn style (dark in light mode, light in dark mode) */
.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), var(--contrast-color) 10%);
  border-color: color-mix(in srgb, var(--accent-color), var(--contrast-color) 10%);
}

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

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

/* Success Button */
.btn-success {
  color: white;
  background-color: var(--success-color);
  border-color: var(--success-color);
}

.btn-success:hover {
  color: white;
  background-color: #16a34a;
  border-color: #16a34a;
}

/* Warning Button */
.btn-warning {
  color: #1e293b;
  background-color: var(--warning-color);
  border-color: var(--warning-color);
}

.btn-warning:hover {
  color: #1e293b;
  background-color: #d97706;
  border-color: #d97706;
}

/* Danger Button */
.btn-danger {
  color: white;
  background-color: var(--danger-color);
  border-color: var(--danger-color);
}

.btn-danger:hover {
  color: white;
  background-color: #dc2626;
  border-color: #dc2626;
}

/* Info Button */
.btn-info {
  color: white;
  background-color: var(--info-color);
  border-color: var(--info-color);
}

.btn-info:hover {
  color: white;
  background-color: #0891b2;
  border-color: #0891b2;
}

/* 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: white;
  background-color: var(--heading-color);
  border-color: var(--heading-color);
}

.btn-dark:hover {
  color: white;
  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: white;
  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: white;
  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: #1e293b;
  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: white;
  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: white;
  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%);
}

/* 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: white;
}

.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: white;
  border-bottom: none;
}

.card-header-primary .card-title {
  color: white;
}

/* 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;
  -o-object-fit: cover;
  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);
  -o-object-fit: cover;
  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: white;
}

.badge.bg-secondary {
  color: white;
}

.badge.bg-success {
  color: white;
}

.badge.bg-warning {
  color: #1e293b;
}

.badge.bg-danger {
  color: white;
}

.badge.bg-info {
  color: white;
}

.badge.bg-light {
  color: var(--default-color);
}

.badge.bg-dark {
  color: white;
}

/* 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: #166534;
}

.alert-warning {
  background-color: var(--warning-color-light);
  border-color: var(--warning-color);
  color: #92400e;
}

.alert-danger {
  background-color: var(--danger-color-light);
  border-color: var(--danger-color);
  color: #991b1b;
}

.alert-info {
  background-color: var(--info-color-light);
  border-color: var(--info-color);
  color: #0e7490;
}

/* 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: white;
}

.alert-solid-success {
  background-color: var(--success-color);
  border-color: var(--success-color);
  color: white;
}

.alert-solid-warning {
  background-color: var(--warning-color);
  border-color: var(--warning-color);
  color: #1e293b;
}

.alert-solid-danger {
  background-color: var(--danger-color);
  border-color: var(--danger-color);
  color: white;
}

.alert-solid-info {
  background-color: var(--info-color);
  border-color: var(--info-color);
  color: white;
}

/* 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: 0 0 0 3px var(--input-focus-ring);
}

.form-control::-moz-placeholder {
  color: var(--light-color);
}

.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);
  -webkit-appearance: none;
  -moz-appearance: none;
  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: 0 0 0 3px var(--input-focus-ring);
}

/* 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);
  -webkit-appearance: none;
  -moz-appearance: none;
  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: 0 0 0 3px var(--input-focus-ring);
}

.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: 0 0 0 3px rgba(34, 197, 94, 0.25) !important;
}

.is-invalid {
  border-color: var(--danger-color) !important;
}

.is-invalid:focus {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.25) !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:not(:-moz-placeholder)~label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}

.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);
}

/* Hover Table */
.table-hover>tbody>tr:hover>* {
  background-color: var(--table-hover-bg);
}

/* 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);
  -o-object-fit: cover;
  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;
  -webkit-user-select: none;
  -moz-user-select: none;
  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: white;
}

.datatable-pagination button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/*--------------------------------------------------------------
# Table Density Toggle
--------------------------------------------------------------*/
/* Compact density */
.table-compact> :not(caption)>*>* {
  padding: var(--spacing-xs) var(--spacing-sm);
  font-size: 0.8125rem;
}

.table-compact>thead>tr>th {
  font-size: 0.6875rem;
}

/* Comfortable density (default - same as base table) */
.table-comfortable> :not(caption)>*>* {
  padding: var(--spacing-md) var(--spacing-md);
}

/* Spacious density */
.table-spacious> :not(caption)>*>* {
  padding: var(--spacing-lg) var(--spacing-md);
}

/* Density toggle button group */
.table-density-toggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
}

.table-density-toggle button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: var(--radius-sm);
  border: none;
  background: transparent;
  color: var(--muted-color);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.table-density-toggle button:hover {
  color: var(--default-color);
}

.table-density-toggle button.active {
  background: var(--surface-color);
  color: var(--accent-color);
  box-shadow: var(--shadow-sm);
}

.table-density-toggle button i {
  font-size: 0.875rem;
}

/*--------------------------------------------------------------
# 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: rgba(0, 0, 0, 0.5);
  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: white;
  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: white;
  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-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: white;
}

.nav-steps .nav-link.completed::before {
  content: "✓";
  background-color: var(--success-color);
  color: white;
}

/*--------------------------------------------------------------
# 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: white;
  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: white;
  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: white;
}

.step-progress-item.completed .step-progress-marker {
  background-color: var(--success-color);
  border-color: var(--success-color);
  color: white;
}

.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: white;
}

.toast-solid-success .toast-header {
  background-color: transparent;
  border-bottom-color: rgba(255, 255, 255, 0.2);
  color: white;
}

.toast-solid-success .toast-title,
.toast-solid-success .toast-message {
  color: white;
}

.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: #1e293b;
}

.toast-solid-danger {
  background-color: var(--danger-color);
  border-color: var(--danger-color);
  color: white;
}

.toast-solid-info {
  background-color: var(--info-color);
  border-color: var(--info-color);
  color: white;
}

/* 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 (Additional)
--------------------------------------------------------------*/
/* 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);
}

/* 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: white;
  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);
  -o-object-fit: cover;
  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);
}

/* 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;
}

/* 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);
  -o-object-fit: cover;
  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);
}

/* 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: white;
  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);
}

/* 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);
}

/* 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;
}

/* 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);
}

/* 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 rgba(34, 197, 94, 0.7);
  }

  70% {
    box-shadow: 0 0 0 8px rgba(34, 197, 94, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
  }
}

.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);
  }
}

/* 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);
}

/* 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);
  -o-object-fit: cover;
  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;
}

.task-checkbox input {
  width: 18px;
  height: 18px;
  border: 2px solid var(--border-color);
  border-radius: var(--radius-sm);
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  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: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 0.75rem;
}

.task-checkbox label {
  display: none;
}

.task-info {
  flex: 1;
  min-width: 0;
}

.task-title {
  font-size: 0.875rem;
  color: var(--default-color);
}

.task-item input:checked~.task-info .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;
}

/* 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: rgba(0, 0, 0, 0.1);
  color: #000;
}

[data-bs-theme=dark] .social-icon.twitter {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.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;
}

/* 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;
}

/* 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;
  }
}

/* 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;
  -o-object-fit: cover;
  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;
  }
}

/* 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);
  -o-object-fit: cover;
  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);
}

/* 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);
}

/*--------------------------------------------------------------
# Dashboard - Bento Grid Layout
# Unique shadcn-inspired dashboard with modern bento box design
--------------------------------------------------------------*/
/* Bento Grid Container */
.bento-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-lg);
  margin-bottom: var(--spacing-xl);
}

/* Base Bento Card */
.bento-card {
  min-height: 160px;
}

/* Bento Card Sizes */
.bento-large {
  grid-column: span 2;
  grid-row: span 1;
}

.bento-wide {
  grid-column: span 2;
}

.bento-tall {
  grid-row: span 2;
}

.bento-full {
  grid-column: span 3;
}

/* Bento Icons */
.bento-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;
}

.bento-icon-lg {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg);
  font-size: 1.5rem;
  flex-shrink: 0;
}

/* Product Thumbnail */
.product-thumb {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  font-size: 1rem;
  flex-shrink: 0;
}

/* Team Activity Widget */
.team-activity {
  display: flex;
  align-items: center;
  gap: -8px;
}

.team-member {
  position: relative;
  margin-left: -8px;
}

.team-member:first-child {
  margin-left: 0;
}

.team-avatar {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  border: 2px solid var(--surface-color);
  -o-object-fit: cover;
  object-fit: cover;
}

.team-status {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 12px;
  height: 12px;
  border-radius: var(--radius-full);
  border: 2px solid var(--surface-color);
}

.team-status.online {
  background: var(--success-color);
}

.team-status.away {
  background: var(--warning-color);
}

.team-status.offline {
  background: var(--muted-color);
}

.team-more {
  width: 40px;
  height: 40px;
  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.75rem;
  font-weight: 600;
  color: var(--muted-color);
}

/* Goal Widget - Redesigned */
.goal-widget {
  display: flex;
  align-items: center;
  gap: var(--spacing-lg);
}

.goal-chart-wrapper {
  flex-shrink: 0;
  width: 100px;
  height: 100px;
}

.goal-stats {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.goal-stat-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.goal-stat-dot {
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}

.goal-stat-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.goal-stat-label {
  font-size: 0.75rem;
  color: var(--muted-color);
}

.goal-stat-value {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--heading-color);
}

.goal-stat-value .text-muted {
  font-weight: 400;
  color: var(--muted-color);
}

/* Task Summary Widget - Redesigned */
.task-summary {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
}

.task-count {
  display: flex;
  align-items: baseline;
  gap: var(--spacing-sm);
}

.task-number {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--heading-color);
  line-height: 1;
}

.task-label {
  font-size: 0.875rem;
  color: var(--muted-color);
}

.task-breakdown {
  display: flex;
  gap: var(--spacing-md);
}

.task-type {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--radius-md);
  background: var(--background-color);
}

.task-type i {
  font-size: 0.875rem;
}

.task-type-count {
  font-weight: 600;
  font-size: 0.875rem;
}

.task-type-label {
  font-size: 0.75rem;
  color: var(--muted-color);
}

.task-type.urgent {
  color: var(--danger-color);
}

.task-type.urgent i {
  color: var(--danger-color);
}

.task-type.medium {
  color: var(--warning-color);
}

.task-type.medium i {
  color: var(--warning-color);
}

.task-type.low {
  color: var(--info-color);
}

.task-type.low i {
  color: var(--info-color);
}

/* Soft Button Variants for Dashboard */
.btn-soft-primary {
  background: color-mix(in srgb, var(--accent-color), transparent 90%);
  color: var(--accent-color);
  border: none;
}

.btn-soft-primary:hover {
  background: var(--accent-color);
  color: var(--contrast-color);
}

.btn-soft-secondary {
  background: var(--background-color);
  color: var(--default-color);
  border: 1px solid var(--border-color);
}

.btn-soft-secondary:hover {
  background: var(--surface-color);
  border-color: var(--border-color-dark);
}

/* Quick Actions Bar */
.quick-actions-bar {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-md);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
  overflow-x: auto;
}

.quick-action-btn {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  color: var(--default-color);
  font-size: 0.8125rem;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: all var(--transition-fast);
}

.quick-action-btn:hover {
  background: var(--accent-color);
  border-color: var(--accent-color);
  color: white;
}

.quick-action-btn i {
  font-size: 1rem;
}

/* Mini Chart Container */
.mini-chart {
  height: 40px;
}

/* Responsive Bento Grid */
@media (max-width: 1199px) {
  .bento-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .bento-large,
  .bento-wide {
    grid-column: span 2;
  }

  .bento-full {
    grid-column: span 2;
  }
}

@media (max-width: 767px) {
  .bento-grid {
    grid-template-columns: 1fr;
  }

  .bento-large,
  .bento-wide,
  .bento-full {
    grid-column: span 1;
  }

  .bento-tall {
    grid-row: span 1;
  }

  .quick-actions-bar {
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
}

/* Dark Mode Overrides */
[data-theme=dark] .quick-actions-bar {
  box-shadow: none;
}

[data-theme=dark] .quick-action-btn {
  background: var(--background-color);
  border-color: var(--border-color);
}

[data-theme=dark] .team-avatar,
[data-theme=dark] .team-more,
[data-theme=dark] .team-status {
  border-color: var(--surface-color);
}

[data-theme=dark] .task-type {
  background: var(--background-color);
}

[data-theme=dark] .btn-soft-primary {
  background: color-mix(in srgb, var(--accent-color), transparent 85%);
}

[data-theme=dark] .btn-soft-secondary {
  background: var(--background-color);
}

/*--------------------------------------------------------------
# Error Pages (404, 500, 403, etc.)
# Minimal typography-focused design
--------------------------------------------------------------*/
.error-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-xl);
  text-align: center;
  background: var(--background-color);
}

.error-container {
  max-width: 540px;
}

/* Error Code - Large gradient typography */
.error-code {
  font-size: 10rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.05em;
  margin-bottom: var(--spacing-lg);
  /* Gradient text effect */
  background: linear-gradient(135deg, var(--accent-color) 0%, #7c3aed 50%, var(--accent-color) 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  /* Subtle animation */
  animation: gradientShift 8s ease infinite;
}

@keyframes gradientShift {

  0%,
  100% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }
}

/* Error Illustration - Hidden by default for minimal design */
.error-illustration {
  display: none;
  max-width: 320px;
  margin: 0 auto var(--spacing-xl);
}

/* Show illustration class if needed */
.error-page.with-illustration .error-illustration {
  display: block;
}

.error-illustration img {
  width: 100%;
  height: auto;
}

/* Error Icon - Smaller, subtle */
.error-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto var(--spacing-lg);
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--accent-color), transparent 92%);
  color: var(--accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
}

.error-icon.danger {
  background: var(--danger-color-light);
  color: var(--danger-color);
}

.error-icon.warning {
  background: var(--warning-color-light);
  color: var(--warning-color);
}

/* Error Title - Clean typography */
.error-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--heading-color);
  margin-bottom: var(--spacing-sm);
  letter-spacing: -0.01em;
}

/* Error Message - Refined */
.error-message {
  font-size: 1rem;
  color: var(--muted-color);
  margin-bottom: var(--spacing-xl);
  line-height: 1.7;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}

/* Error Actions */
.error-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-md);
  flex-wrap: wrap;
}

.error-actions .btn {
  min-width: 140px;
}

/* Maintenance Page */
.maintenance-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-xl);
  text-align: center;
  background: var(--background-color);
}

.maintenance-logo {
  margin-bottom: var(--spacing-2xl);
}

.maintenance-logo img {
  height: 48px;
  width: auto;
}

.maintenance-icon {
  width: 100px;
  height: 100px;
  margin: 0 auto var(--spacing-xl);
  border-radius: var(--radius-full);
  background: var(--warning-color-light);
  color: var(--warning-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
}

.maintenance-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--heading-color);
  margin-bottom: var(--spacing-md);
}

.maintenance-message {
  font-size: 1rem;
  color: var(--muted-color);
  margin-bottom: var(--spacing-xl);
  max-width: 480px;
  line-height: 1.6;
}

/* Coming Soon Page */
.coming-soon-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-xl);
  text-align: center;
  background: var(--background-color);
}

.coming-soon-logo {
  margin-bottom: var(--spacing-2xl);
}

.coming-soon-logo img {
  height: 48px;
  width: auto;
}

.coming-soon-title {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--heading-color);
  margin-bottom: var(--spacing-md);
}

.coming-soon-message {
  font-size: 1rem;
  color: var(--muted-color);
  margin-bottom: var(--spacing-xl);
  max-width: 480px;
  line-height: 1.6;
}

/* Countdown Timer */
.countdown {
  display: flex;
  justify-content: center;
  gap: var(--spacing-lg);
  margin-bottom: var(--spacing-2xl);
}

.countdown-item {
  text-align: center;
}

.countdown-value {
  display: block;
  width: 80px;
  height: 80px;
  line-height: 80px;
  font-size: 2rem;
  font-weight: 700;
  color: var(--heading-color);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  margin-bottom: var(--spacing-sm);
}

.countdown-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted-color);
}

/* Newsletter Form */
.newsletter-form {
  display: flex;
  gap: var(--spacing-sm);
  max-width: 400px;
  margin: 0 auto;
}

.newsletter-form .form-control {
  flex: 1;
  height: 48px;
  padding: 0 var(--spacing-md);
  font-size: 0.9375rem;
}

.newsletter-form .btn {
  height: 48px;
  padding: 0 var(--spacing-xl);
}

/* Social Links */
.social-links {
  display: flex;
  justify-content: center;
  gap: var(--spacing-sm);
  margin-top: var(--spacing-xl);
}

.social-link {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  color: var(--muted-color);
  font-size: 1.125rem;
  transition: all var(--transition-fast);
}

.social-link:hover {
  background: var(--accent-color);
  border-color: var(--accent-color);
  color: white;
}

/* Responsive */
@media (max-width: 767.98px) {
  .error-code {
    font-size: 7rem;
  }
}

@media (max-width: 575.98px) {
  .error-code {
    font-size: 5rem;
  }

  .error-title,
  .maintenance-title {
    font-size: 1.25rem;
  }

  .coming-soon-title {
    font-size: 1.5rem;
  }

  .countdown {
    gap: var(--spacing-md);
  }

  .countdown-value {
    width: 60px;
    height: 60px;
    line-height: 60px;
    font-size: 1.5rem;
  }

  .newsletter-form {
    flex-direction: column;
  }

  .newsletter-form .btn {
    width: 100%;
  }

  .error-actions {
    flex-direction: column;
  }

  .error-actions .btn {
    width: 100%;
  }
}

/*--------------------------------------------------------------
# Dark Mode Overrides for Error Pages
--------------------------------------------------------------*/
[data-theme=dark] .error-code {
  background: linear-gradient(135deg, var(--accent-color) 0%, #a855f7 50%, var(--accent-color) 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
}

/*--------------------------------------------------------------
# Profile Page - shadcn Style
--------------------------------------------------------------*/
/* Profile Container - Two Column Layout */
.profile-container {
  display: flex;
  gap: var(--spacing-xl);
  max-width: 1200px;
}

/* Profile Sidebar */
.profile-sidebar {
  flex-shrink: 0;
  width: 320px;
}

/* Profile Card */
.profile-card {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  padding: var(--spacing-xl);
  text-align: center;
}

/* Profile Avatar */
.profile-card-avatar {
  position: relative;
  display: inline-block;
  margin-bottom: var(--spacing-lg);
}

.profile-card-avatar img {
  width: 120px;
  height: 120px;
  border-radius: var(--radius-full);
  -o-object-fit: cover;
  object-fit: cover;
  border: 4px solid var(--border-color);
}

.profile-avatar-edit {
  position: absolute;
  bottom: 4px;
  right: 4px;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  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 var(--transition-fast);
}

.profile-avatar-edit:hover {
  background: var(--background-color);
  color: var(--heading-color);
}

/* Profile Info */
.profile-card-info h2 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 var(--spacing-xs);
  letter-spacing: -0.02em;
}

.profile-role {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin: 0 0 var(--spacing-xs);
}

.profile-location {
  font-size: 0.8125rem;
  color: var(--light-color);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-xs);
}

.profile-location i {
  font-size: 0.875rem;
}

/* Profile Stats */
.profile-card-stats {
  display: flex;
  justify-content: center;
  gap: var(--spacing-xl);
  padding: var(--spacing-lg) 0;
  margin: var(--spacing-lg) 0;
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}

.profile-stat {
  text-align: center;
}

.profile-stat-value {
  display: block;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--heading-color);
  letter-spacing: -0.02em;
}

.profile-stat-label {
  font-size: 0.75rem;
  color: var(--muted-color);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* Social Links */
.profile-card-social {
  display: flex;
  justify-content: center;
  gap: var(--spacing-sm);
}

.profile-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  background: var(--background-color);
  color: var(--muted-color);
  font-size: 1rem;
  transition: all var(--transition-fast);
}

.profile-social-link:hover {
  background: var(--heading-color);
  color: var(--surface-color);
}

/* Profile Actions */
.profile-actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  margin-top: var(--spacing-lg);
}

.profile-action-btn {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-md);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  color: var(--default-color);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  transition: all var(--transition-fast);
}

.profile-action-btn:hover {
  background: var(--background-color);
  color: var(--heading-color);
}

.profile-action-btn i {
  font-size: 1rem;
  color: var(--muted-color);
}

/* Profile Content */
.profile-content {
  flex: 1;
  min-width: 0;
}

/* Profile Tabs */
.profile-tabs-wrapper {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  padding: var(--spacing-xs);
  margin-bottom: var(--spacing-lg);
}

.profile-tabs {
  display: flex;
  gap: var(--spacing-xs);
}

.profile-tab {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-sm) var(--spacing-md);
  background: transparent;
  border: none;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--muted-color);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.profile-tab:hover {
  color: var(--heading-color);
  background: var(--background-color);
}

.profile-tab.active {
  color: var(--heading-color);
  background: var(--background-color);
}

.profile-tab i {
  font-size: 1rem;
}

/* Tab Content */
.profile-tab-pane {
  display: none;
}

.profile-tab-pane.active {
  display: block;
}

/* Profile Sections */
.profile-section {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  margin-bottom: var(--spacing-lg);
}

.profile-section:last-child {
  margin-bottom: 0;
}

.profile-section-header {
  padding: var(--spacing-lg);
  border-bottom: 1px solid var(--border-color);
}

.profile-section-header h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0;
  letter-spacing: -0.01em;
}

.profile-section-header p {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin: var(--spacing-xs) 0 0;
}

.profile-section-body {
  padding: var(--spacing-lg);
}

/* About Text */
.profile-about-text {
  font-size: 0.875rem;
  color: var(--default-color);
  line-height: 1.7;
  margin: 0;
}

/* Info Grid */
.profile-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-lg);
}

.profile-info-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.profile-info-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--muted-color);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.profile-info-value {
  font-size: 0.875rem;
  color: var(--heading-color);
  font-weight: 500;
}

/* Skills */
.profile-skills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-sm);
}

.profile-skill-tag {
  display: inline-block;
  padding: var(--spacing-xs) var(--spacing-md);
  background: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  color: var(--default-color);
}

/* Form Styles */
.profile-form-group {
  margin-bottom: var(--spacing-lg);
}

.profile-form-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading-color);
  margin-bottom: var(--spacing-xs);
}

.profile-form-hint {
  display: block;
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin-top: var(--spacing-xs);
}

.profile-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--spacing-sm);
  padding-top: var(--spacing-md);
  border-top: 1px solid var(--border-color);
  margin-top: var(--spacing-lg);
}

/* Photo Upload */
.profile-photo-upload {
  display: flex;
  align-items: center;
  gap: var(--spacing-lg);
}

.profile-photo-preview {
  width: 80px;
  height: 80px;
  border-radius: var(--radius-full);
  -o-object-fit: cover;
  object-fit: cover;
  border: 2px solid var(--border-color);
}

.profile-photo-actions {
  display: flex;
  gap: var(--spacing-sm);
}

/* 2FA Status */
.profile-2fa-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-lg);
}

.profile-2fa-info {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-md);
}

.profile-2fa-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: var(--background-color);
  border-radius: var(--radius-md);
  color: var(--muted-color);
  font-size: 1.5rem;
}

.profile-2fa-info h4 {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 4px;
}

.profile-2fa-info p {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin: 0;
}

/* Sessions */
.profile-sessions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
}

.profile-session-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
  background: var(--background-color);
  border-radius: var(--radius-md);
}

.profile-session-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  color: var(--muted-color);
  font-size: 1.125rem;
}

.profile-session-info {
  flex: 1;
}

.profile-session-info h4 {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading-color);
  margin: 0 0 2px;
}

.profile-session-info p {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin: 0;
}

.profile-session-badge {
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 500;
}

.profile-session-badge.active {
  background: var(--success-color-light);
  color: var(--success-color);
}

/* Responsive */
@media (max-width: 991px) {
  .profile-container {
    flex-direction: column;
  }

  .profile-sidebar {
    width: 100%;
  }

  .profile-info-grid {
    grid-template-columns: 1fr;
  }

  .profile-2fa-status {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 767px) {
  .profile-tabs {
    flex-wrap: wrap;
  }

  .profile-tab span {
    display: none;
  }

  .profile-tab {
    padding: var(--spacing-sm);
  }

  .profile-photo-upload {
    flex-direction: column;
    align-items: flex-start;
  }

  .profile-session-item {
    flex-wrap: wrap;
  }
}

/* Dark Mode */
[data-theme=dark] .profile-card,
[data-theme=dark] .profile-section,
[data-theme=dark] .profile-tabs-wrapper,
[data-theme=dark] .profile-action-btn {
  box-shadow: none;
}

[data-theme=dark] .profile-social-link:hover {
  background: var(--default-color);
  color: var(--surface-color);
}

.activity-log {
  position: relative;
}

.activity-date {
  position: relative;
  padding: 1rem 0;
  margin-bottom: 0.5rem;
}

.activity-date span {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background-color: var(--background-color);
  border: 1px solid var(--border-color);
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted-color);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.activity-item {
  display: flex;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--border-color);
}

.activity-item:last-child {
  border-bottom: none;
}

.activity-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.activity-content {
  flex: 1;
  min-width: 0;
}

.activity-title {
  font-weight: 600;
  color: var(--heading-color);
  margin-bottom: 0.25rem;
}

.activity-description {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin-bottom: 0.25rem;
}

.activity-time {
  font-size: 0.75rem;
  color: var(--light-color);
}

.activity-time i {
  margin-right: 0.25rem;
}

.activity-stat {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-color);
}

.activity-stat:last-child {
  border-bottom: none;
}

.activity-stat-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
}

.activity-stat-info {
  flex: 1;
}

.activity-stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--heading-color);
  line-height: 1;
}

.activity-stat-label {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin-top: 0.25rem;
}

.session-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-color);
}

.session-item:last-child {
  border-bottom: none;
}

.session-item.current .session-icon {
  color: var(--success-color);
}

.session-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 0.5rem;
  background-color: var(--background-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  color: var(--muted-color);
}

.session-info {
  flex: 1;
  min-width: 0;
}

.session-device {
  font-weight: 600;
  color: var(--heading-color);
  font-size: 0.875rem;
}

.session-location {
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.session-time {
  font-size: 0.75rem;
  color: var(--light-color);
}

.session-revoke {
  flex-shrink: 0;
}

.notifications-date-header {
  padding: 0.75rem 1.25rem;
  background-color: var(--background-color);
  border-bottom: 1px solid var(--border-color);
}

.notifications-date-header span {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted-color);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.notifications-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
  transition: background-color 0.15s ease;
}

.notifications-item:hover {
  background-color: var(--background-color);
}

.notifications-item.unread {
  background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
}

.notifications-item.unread:hover {
  background-color: color-mix(in srgb, var(--accent-color), transparent 92%);
}

.notifications-item.unread .notifications-item-title {
  font-weight: 600;
}

.notifications-item:last-child {
  border-bottom: none;
}

.notifications-item-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
}

.notifications-item-content {
  flex: 1;
  min-width: 0;
}

.notifications-item-title {
  font-weight: 500;
  color: var(--heading-color);
  margin-bottom: 0.25rem;
}

.notifications-item-text {
  font-size: 0.875rem;
  color: var(--default-color);
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

.notifications-item-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.75rem;
}

.notifications-item-time {
  color: var(--muted-color);
}

.notifications-item-time i {
  margin-right: 0.25rem;
}

.notifications-item-category {
  padding: 0.125rem 0.5rem;
  background-color: var(--background-color);
  border-radius: 0.25rem;
  color: var(--muted-color);
  font-weight: 500;
}

.notifications-item-actions {
  flex-shrink: 0;
  display: flex;
  gap: 0.25rem;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.notifications-item-actions .btn-link {
  color: var(--muted-color);
  padding: 0.25rem 0.5rem;
}

.notifications-item-actions .btn-link:hover {
  color: var(--accent-color);
}

.notifications-item:hover .notifications-item-actions {
  opacity: 1;
}

.notification-setting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-color);
}

.notification-setting:last-of-type {
  border-bottom: none;
}

.notification-setting-info {
  flex: 1;
  min-width: 0;
}

.notification-setting-title {
  font-weight: 500;
  color: var(--heading-color);
  font-size: 0.9375rem;
}

.notification-setting-desc {
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.notification-stat {
  padding: 0.5rem;
}

.notification-stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--heading-color);
  line-height: 1;
}

.notification-stat-label {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin-top: 0.25rem;
}

.table tbody tr {
  transition: background-color 0.15s ease;
}

.table .form-check {
  margin: 0;
  min-height: auto;
}

.user-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.user-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
}

.user-details {
  min-width: 0;
}

.user-name {
  font-weight: 600;
  color: var(--heading-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-email {
  font-size: 0.8125rem;
  color: var(--muted-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.role-badge {
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.25rem 0.625rem;
  border-radius: 0.25rem;
}

.role-badge.admin {
  background-color: var(--danger-color-light);
  color: var(--danger-color);
}

.role-badge.manager {
  background-color: var(--warning-color-light);
  color: var(--warning-color);
}

.role-badge.user {
  background-color: var(--info-color-light);
  color: var(--info-color);
}

.status-badge {
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
}

.status-badge.active {
  background-color: var(--success-color);
  color: white;
}

.status-badge.inactive {
  background-color: var(--muted-color);
  color: white;
}

.status-badge.pending {
  background-color: var(--warning-color);
  color: white;
}

.actions-dropdown .btn-link {
  color: var(--muted-color);
  padding: 0.25rem 0.5rem;
}

.actions-dropdown .btn-link:hover {
  color: var(--default-color);
}

.bulk-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1rem;
  background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
  border-bottom: 1px solid var(--border-color);
}

.bulk-actions .selected-count {
  font-weight: 500;
  color: var(--accent-color);
}

.activity-feed {
  position: relative;
}

.activity-feed-item {
  display: flex;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--border-color);
}

.activity-feed-item:last-child {
  border-bottom: none;
}

.activity-feed-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
}

.activity-feed-content {
  flex: 1;
  min-width: 0;
}

.role-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-color);
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.role-item:last-child {
  border-bottom: none;
}

.role-item:hover {
  background-color: var(--background-color);
}

.role-item.active {
  background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
  border-left: 3px solid var(--accent-color);
  padding-left: calc(1.25rem - 3px);
}

.role-item.active .role-name {
  color: var(--accent-color);
}

.role-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.role-icon {
  width: 40px;
  height: 40px;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
}

.role-details {
  min-width: 0;
}

.role-name {
  font-weight: 600;
  color: var(--heading-color);
}

.role-users {
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.role-actions .btn-link {
  color: var(--muted-color);
  padding: 0.25rem 0.5rem;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.role-actions .btn-link:hover {
  color: var(--accent-color);
}

.role-item:hover .role-actions .btn-link {
  opacity: 1;
}

.permissions-table th {
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--muted-color);
  border-bottom-width: 2px;
}

.permissions-table td {
  vertical-align: middle;
}

.permissions-table .form-check-input {
  cursor: pointer;
  width: 1.125rem;
  height: 1.125rem;
}

.permissions-table .form-check-input:checked {
  background-color: var(--accent-color);
  border-color: var(--accent-color);
}

.permissions-table .permission-group td {
  padding-top: 1rem;
  padding-bottom: 0.75rem;
  font-size: 0.875rem;
  border-bottom: 1px solid var(--border-color);
}

.permission-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 500;
}

.permission-badge.granted {
  background-color: var(--success-color-light);
  color: var(--success-color);
}

.permission-badge.denied {
  background-color: var(--danger-color-light);
  color: var(--danger-color);
}

.permission-badge.partial {
  background-color: var(--warning-color-light);
  color: var(--warning-color);
}

@media print {
  .invoice-card .card-body {
    padding: 0 !important;
  }
}

.invoice-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--border-color);
}

@media (max-width: 575px) {
  .invoice-header {
    flex-direction: column;
    gap: 1rem;
  }
}

.invoice-logo {
  display: flex;
  align-items: center;
}

.invoice-logo img {
  height: 40px;
  width: auto;
}

.invoice-title {
  text-align: right;
}

@media (max-width: 575px) {
  .invoice-title {
    text-align: left;
  }
}

.invoice-title h2 {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--heading-color);
  margin: 0;
  letter-spacing: 0.05em;
}

.invoice-number {
  font-size: 0.875rem;
  color: var(--muted-color);
  font-family: var(--font-monospace, monospace);
}

.invoice-info {
  margin-bottom: 2rem;
}

.invoice-items {
  margin-bottom: 2rem;
}

.invoice-items .table {
  margin-bottom: 0;
}

.invoice-items .table thead th {
  background-color: var(--background-color);
  border-bottom: 2px solid var(--border-color);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted-color);
  padding: 0.75rem 1rem;
}

.invoice-items .table tbody td {
  padding: 1rem;
  vertical-align: middle;
  border-bottom: 1px solid var(--border-color);
}

.invoice-items .table tbody tr:last-child td {
  border-bottom: none;
}

.invoice-summary {
  margin-bottom: 2rem;
}

.invoice-summary .table {
  margin-bottom: 0;
}

.invoice-summary .table td {
  padding: 0.5rem 0;
}

.invoice-summary .table td:first-child {
  padding-right: 2rem;
}

.invoice-summary .table .border-top td {
  padding-top: 0.75rem;
  border-top: 2px solid var(--border-color) !important;
}

.invoice-notes {
  padding: 1rem;
  background-color: var(--background-color);
  border-radius: var(--radius-md);
  margin-bottom: 2rem;
}

.invoice-footer {
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-color);
}

.invoice-footer i {
  font-size: 1.25rem;
  display: block;
  margin-bottom: 0.25rem;
}

.invoice-stats .card {
  border: none;
}

.invoice-stats .card .card-body {
  padding: 1.25rem;
}

.invoice-stats .stat-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
}

.invoice-stats .stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--heading-color);
  line-height: 1.2;
}

.invoice-stats .stat-label {
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.invoice-stats .stat-change {
  font-size: 0.75rem;
  font-weight: 500;
}

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

.invoice-table .table th {
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  color: var(--muted-color);
  border-bottom-width: 1px;
}

.invoice-table .table td {
  vertical-align: middle;
  padding: 1rem 0.75rem;
}

.invoice-table .invoice-id {
  font-family: var(--font-monospace, monospace);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--accent-color);
}

.invoice-table .invoice-id:hover {
  text-decoration: underline;
}

.invoice-table .client-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.invoice-table .client-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 600;
}

.invoice-table .client-name {
  font-weight: 500;
  color: var(--heading-color);
}

.invoice-table .client-email {
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.invoice-status {
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.25rem 0.625rem;
  border-radius: 0.25rem;
}

.invoice-status.paid {
  background-color: color-mix(in srgb, var(--success-color), transparent 85%);
  color: var(--success-color);
}

.invoice-status.pending {
  background-color: color-mix(in srgb, var(--warning-color), transparent 85%);
  color: var(--warning-color);
}

.invoice-status.overdue {
  background-color: color-mix(in srgb, var(--danger-color), transparent 85%);
  color: var(--danger-color);
}

.invoice-status.draft {
  background-color: color-mix(in srgb, var(--muted-color), transparent 85%);
  color: var(--muted-color);
}

.create-invoice-modal .modal-body {
  padding: 1.5rem;
}

.create-invoice-modal .invoice-items-container {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 1rem;
  margin-bottom: 1rem;
}

.create-invoice-modal .invoice-item-row {
  display: grid;
  grid-template-columns: 1fr 80px 100px 100px auto;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

@media (max-width: 767px) {
  .create-invoice-modal .invoice-item-row {
    grid-template-columns: 1fr;
  }
}

.create-invoice-modal .invoice-item-row:last-child {
  margin-bottom: 0;
}

@media print {
  .invoice-card {
    box-shadow: none !important;
    border: none !important;
  }

  .invoice-header {
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }

  .invoice-items .table thead th {
    background-color: #f8f9fa !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .invoice-notes {
    background-color: #f8f9fa !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

.billing-toggle {
  display: inline-flex;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  padding: 4px;
  gap: 4px;
}

.billing-toggle-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--muted-color);
  background: transparent;
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all 0.2s ease;
}

.billing-toggle-btn:hover:not(.active) {
  color: var(--heading-color);
  background: var(--sidebar-hover-bg);
}

.billing-toggle-btn.active {
  color: var(--contrast-color);
  background: var(--accent-color);
}

.billing-toggle-btn .badge {
  font-size: 0.625rem;
  padding: 0.2rem 0.4rem;
  font-weight: 600;
}

.pricing-card {
  position: relative;
  transform: translateY(0);
  transition: all 0.3s ease !important;
}

.pricing-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-xl);
}

.pricing-card-popular {
  border: 2px solid var(--accent-color);
}

.pricing-card-popular .pricing-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--accent-color);
  color: var(--contrast-color);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 1rem;
  border-radius: var(--radius-full);
  white-space: nowrap;
}

.pricing-icon {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  font-size: 1.5rem;
}

.pricing-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0;
}

.pricing-price .price-currency {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--heading-color);
  vertical-align: top;
}

.pricing-price .price-amount {
  display: inline-block;
  font-size: 3rem;
  font-weight: 700;
  color: var(--heading-color);
  line-height: 1;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.pricing-price .price-amount.price-changing {
  transform: scale(0.8);
  opacity: 0;
}

.pricing-price .price-period {
  font-size: 0.875rem;
}

.pricing-features li {
  padding: 0.5rem 0;
  display: flex;
  align-items: center;
  font-size: 0.9375rem;
}

.pricing-features li i {
  flex-shrink: 0;
}

.pricing-features li.text-muted {
  text-decoration: line-through;
  opacity: 0.6;
}

.table th.bg-primary-light,
.table td.bg-primary-light {
  background-color: color-mix(in srgb, var(--accent-color), transparent 95%) !important;
}

#pricingFAQ .accordion-item {
  border: none;
  border-bottom: 1px solid var(--border-color);
}

#pricingFAQ .accordion-item:last-child {
  border-bottom: none;
}

#pricingFAQ .accordion-button {
  padding: 1rem 0;
  font-weight: 500;
  background: transparent;
  box-shadow: none;
}

#pricingFAQ .accordion-button:not(.collapsed) {
  color: var(--accent-color);
  background: transparent;
}

#pricingFAQ .accordion-button:focus {
  box-shadow: none;
}

#pricingFAQ .accordion-button::after {
  width: 1rem;
  height: 1rem;
  background-size: 1rem;
}

#pricingFAQ .accordion-body {
  padding: 0 0 1rem 0;
}

.card.bg-primary {
  border: none;
}

.card.bg-primary .opacity-75 {
  opacity: 0.85;
}

@media (max-width: 991px) {
  .pricing-card-popular {
    order: -1;
  }
}

@media (max-width: 767px) {
  .pricing-price .price-amount {
    font-size: 2.5rem;
  }

  .pricing-icon {
    width: 56px;
    height: 56px;
    font-size: 1.25rem;
  }
}

#faqSearch {
  border-left: none;
}

#faqSearch:focus {
  box-shadow: none;
  border-color: var(--border-color);
}

.faq-categories .list-group-item {
  border: none;
  padding: 0.875rem 1.25rem;
  color: var(--default-color);
  transition: all 0.15s ease;
}

.faq-categories .list-group-item i {
  color: var(--muted-color);
  transition: color 0.15s ease;
}

.faq-categories .list-group-item .badge {
  font-size: 0.7rem;
  font-weight: 500;
}

.faq-categories .list-group-item:hover {
  background-color: var(--background-color);
  color: var(--accent-color);
}

.faq-categories .list-group-item:hover i {
  color: var(--accent-color);
}

.faq-categories .list-group-item.active {
  background-color: color-mix(in srgb, var(--accent-color), transparent 92%);
  color: var(--accent-color);
  font-weight: 500;
}

.faq-categories .list-group-item.active i {
  color: var(--accent-color);
}

.faq-categories .list-group-item.active .badge {
  background-color: var(--accent-color) !important;
  color: var(--contrast-color);
}

.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;
  font-size: 0.9375rem;
  background: transparent;
  box-shadow: none;
  color: var(--heading-color);
}

.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-button:hover {
  color: var(--accent-color);
}

.faq-accordion .accordion-body {
  padding: 0 0 1rem 0;
  line-height: 1.7;
}

.avatar-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
}

.badge.bg-light {
  border: 1px solid var(--border-color);
  transition: all 0.15s ease;
}

.badge.bg-light:hover {
  background-color: var(--accent-color) !important;
  color: var(--contrast-color) !important;
  border-color: var(--accent-color);
}

#general,
#account,
#billing,
#features,
#security,
#technical {
  scroll-margin-top: 100px;
}

.card-body .display-4 {
  font-size: 2.5rem;
}

@media (max-width: 991px) {
  .faq-categories {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    margin: 0 -1rem;
    padding: 0 1rem;
  }

  .faq-categories .list-group-item {
    white-space: nowrap;
    border-radius: var(--radius-md) !important;
    margin-right: 0.5rem;
  }

  .faq-categories .list-group-item .badge {
    display: none;
  }
}

@media (max-width: 767px) {
  .faq-accordion .accordion-button {
    font-size: 0.875rem;
  }

  .avatar-icon {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
}

.timeline {
  position: relative;
  padding-left: 30px;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--border-color);
}

.timeline-date {
  position: relative;
  margin-bottom: 1.5rem;
  margin-left: -30px;
  padding-left: 30px;
}

.timeline-date .badge {
  position: relative;
  z-index: 1;
}

.timeline-item {
  position: relative;
  margin-bottom: 1.5rem;
}

.timeline-item:last-child {
  margin-bottom: 0;
}

.timeline-marker {
  position: absolute;
  left: -30px;
  top: 1rem;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 0.75rem;
  z-index: 1;
}

.timeline-marker i {
  font-size: 0.75rem;
}

.timeline-content .card {
  margin-bottom: 0;
  transition: box-shadow 0.2s ease;
}

.timeline-content .card:hover {
  box-shadow: var(--shadow-md);
}

.timeline-content .card-body {
  padding: 1rem 1.25rem;
}

.milestone-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.project-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.file-attachment {
  display: flex;
  align-items: center;
  padding: 0.5rem 0.75rem;
  background: var(--background-color);
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
}

.file-attachment i {
  font-size: 1rem;
}

.badge.rounded-circle {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.badge.rounded-circle i {
  font-size: 0.75rem;
}

@media (max-width: 991px) {
  .timeline {
    padding-left: 24px;
  }

  .timeline::before {
    left: 8px;
  }

  .timeline-marker {
    left: -24px;
    width: 20px;
    height: 20px;
    font-size: 0.625rem;
  }

  .timeline-marker i {
    font-size: 0.625rem;
  }

  .timeline-date {
    margin-left: -24px;
    padding-left: 24px;
  }
}

@media (max-width: 767px) {
  .timeline-content .card-body {
    padding: 1rem;
  }

  .milestone-icon,
  .project-icon {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
}

.search-result-item {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  margin-bottom: 0.75rem;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  transition: all 0.2s ease;
}

.search-result-item:hover {
  border-color: var(--accent-color);
  box-shadow: var(--shadow-sm);
}

.search-result-item:last-child {
  margin-bottom: 0;
}

.search-result-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
}

.search-result-avatar {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
}

.search-result-content {
  flex: 1;
  min-width: 0;
}

.search-result-title {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  font-weight: 600;
}

.search-result-title a {
  color: var(--heading-color);
  transition: color 0.15s ease;
}

.search-result-title a:hover {
  color: var(--accent-color);
}

.search-result-excerpt {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  color: var(--muted-color);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.search-result-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.search-result-meta span {
  display: inline-flex;
  align-items: center;
}

.search-result-meta span i {
  font-size: 0.875rem;
}

mark {
  background-color: color-mix(in srgb, var(--warning-color), transparent 70%);
  color: inherit;
  padding: 0 0.125rem;
  border-radius: 2px;
}

.badge.bg-light {
  transition: all 0.15s ease;
}

.badge.bg-light:hover {
  background-color: var(--accent-color) !important;
  color: var(--contrast-color) !important;
}

.nav-tabs .nav-link {
  color: var(--muted-color);
  border: none;
  padding: 0.75rem 1rem;
}

.nav-tabs .nav-link:hover {
  color: var(--default-color);
  border-color: transparent;
}

.nav-tabs .nav-link.active {
  color: var(--accent-color);
  background: transparent;
  border-bottom: 2px solid var(--accent-color);
}

.nav-tabs .nav-link .badge {
  font-size: 0.7rem;
  vertical-align: middle;
}

.form-check {
  margin-bottom: 0.5rem;
}

.form-check:last-child {
  margin-bottom: 0;
}

.card-body ul li {
  line-height: 1.5;
}

@media (max-width: 767px) {
  .search-result-item {
    flex-direction: column;
    gap: 0.75rem;
  }

  .search-result-icon,
  .search-result-avatar {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }

  .search-result-meta {
    flex-direction: column;
    gap: 0.25rem;
  }

  .nav-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .nav-tabs .nav-link {
    white-space: nowrap;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
  }
}

.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-main .card {
  height: 100%;
}

.calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}

.calendar-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0;
}

.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;
}

.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, 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, 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, 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);
}

.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;
  -o-object-fit: cover;
  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);
}

.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;
  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);
  border-radius: 0 0 var(--bs-border-radius-lg) var(--bs-border-radius-lg);
}

.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);
  padding: 1rem;
  cursor: grab;
  border: 1px solid var(--border-color);
  transition: box-shadow 0.2s, transform 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;
  -o-object-fit: cover;
  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);
}

.chat-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;
}

.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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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: 40px;
  height: 40px;
  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%;
  -o-object-fit: cover;
  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: 36px;
  height: 36px;
  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::-moz-placeholder {
  color: var(--muted-color);
}

.chat-input-field textarea::placeholder {
  color: var(--muted-color);
}

.chat-send-btn {
  width: 40px;
  height: 40px;
  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%;
  -o-object-fit: cover;
  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;
  -o-object-fit: cover;
  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;
}

@media (max-width: 991.98px) {
  .chat-sidebar {
    width: 280px;
  }

  .chat-info {
    display: none !important;
  }
}

@media (max-width: 767.98px) {
  .chat-container {
    flex-direction: column;
    height: calc(100vh - 180px);
  }

  .chat-sidebar {
    width: 100%;
    height: auto;
    max-height: 300px;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
  }

  .chat-sidebar.chat-view-active {
    display: none;
  }

  .chat-main.chat-view-active {
    display: flex;
  }

  .chat-header-back {
    display: flex;
  }
}

.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: 36px;
  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;
}

.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%;
  -o-object-fit: cover;
  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: 36px;
  height: 36px;
  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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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);
}

@media (max-width: 991.98px) {
  .contacts-sidebar {
    width: 220px;
  }

  .contacts-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
  }
}

@media (max-width: 767.98px) {
  .contacts-container {
    flex-direction: column;
    min-height: auto;
  }

  .contacts-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
    max-height: 300px;
    overflow-y: auto;
  }

  .contacts-header {
    flex-wrap: wrap;
  }

  .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));
  }

  .contact-card {
    padding: 1rem;
  }

  .contact-card-avatar {
    width: 60px;
    height: 60px;
  }

  .contact-avatar-initial {
    width: 60px;
    height: 60px;
    font-size: 1.25rem;
  }

  .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-quick-actions {
    grid-template-columns: repeat(4, 1fr);
  }

  .contact-quick-action {
    padding: 0.75rem 0.5rem;
  }

  .contact-quick-action span {
    font-size: 0.6875rem;
  }
}

.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);
  -o-object-fit: cover;
  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;
  -webkit-user-select: none;
  -moz-user-select: none;
  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;
}

@media (max-width: 991.98px) {
  .fm-sidebar {
    width: 220px;
  }

  .fm-search {
    width: 180px;
  }
}

@media (max-width: 767.98px) {
  .file-manager {
    flex-direction: column;
    height: auto;
    min-height: auto;
  }

  .fm-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
  }

  .fm-nav {
    display: flex;
    overflow-x: auto;
    padding: 0.5rem;
    gap: 0.5rem;
  }

  .fm-nav-title {
    display: none;
  }

  .fm-nav-item {
    padding: 0.5rem 1rem;
    white-space: nowrap;
    border-radius: var(--bs-border-radius);
  }

  .fm-storage {
    display: none;
  }

  .fm-header {
    flex-direction: column;
    align-items: stretch;
  }

  .fm-search {
    width: 100%;
  }

  .fm-grid {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  }
}

.email-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;
}

.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: 36px;
  height: 36px;
  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%;
  -o-object-fit: cover;
  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: 36px;
  height: 36px;
  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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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::-moz-placeholder {
  color: var(--muted-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: 36px;
  height: 36px;
  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-sidebar {
    width: 200px;
  }

  .email-message-meta {
    flex-wrap: wrap;
  }
}

@media (max-width: 767.98px) {
  .email-container {
    flex-direction: column;
    height: calc(100vh - 180px);
  }

  .email-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
    max-height: 200px;
    overflow-y: auto;
  }

  .email-labels,
  .email-storage {
    display: none;
  }

  .email-list-header {
    flex-wrap: wrap;
  }

  .email-search {
    order: 1;
    flex-basis: 100%;
    max-width: none;
    margin-top: 0.5rem;
  }

  .email-list-pagination {
    margin-left: 0;
  }

  .email-item-preview {
    display: none;
  }

  .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;
  }
}

.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%;
  -o-object-fit: cover;
  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;
}

@media (max-width: 991.98px) {
  .todo-sidebar {
    width: 220px;
  }

  .todo-search {
    width: 150px;
  }
}

@media (max-width: 767.98px) {
  .todo-container {
    flex-direction: column;
    height: calc(100vh - 180px);
  }

  .todo-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
    max-height: 200px;
    overflow-y: auto;
  }

  .todo-projects,
  .todo-tags {
    display: none;
  }

  .todo-nav {
    border-bottom: none;
  }

  .todo-nav-list {
    display: flex;
    flex-wrap: wrap;
    padding: 0 0.5rem;
    gap: 0.25rem;
  }

  .todo-nav-item {
    padding: 0.5rem 0.75rem;
    border-left: none;
    border-radius: var(--bs-border-radius);
  }

  .todo-nav-item.active {
    border-left: none;
  }

  .todo-header {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .todo-header-title {
    width: 100%;
  }

  .todo-search {
    flex: 1;
    width: auto;
    min-width: 120px;
  }

  .todo-item-actions {
    flex-wrap: wrap;
  }

  .todo-item-priority {
    display: none;
  }

  .todo-item-star,
  .todo-item-more {
    opacity: 1;
  }
}

.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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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);
}

@media (max-width: 1199.98px) {
  .ticket-detail .row {
    flex-direction: column;
  }

  .ticket-detail-sidebar {
    margin-top: 1.5rem;
  }
}

@media (max-width: 991.98px) {
  .support-sidebar {
    width: 220px;
  }
}

@media (max-width: 767.98px) {
  .support-container {
    flex-direction: column;
    min-height: auto;
  }

  .support-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
    max-height: 300px;
  }

  .support-header {
    flex-wrap: wrap;
  }

  .support-header .support-search {
    order: 3;
    width: 100%;
    max-width: none;
    margin-top: 0.5rem;
  }

  .ticket-item {
    flex-wrap: wrap;
  }

  .ticket-assignee {
    order: -1;
    margin-left: auto;
  }

  .ticket-meta {
    gap: 0.75rem;
  }

  .support-pagination {
    flex-direction: column;
    gap: 0.75rem;
    text-align: center;
  }

  .ticket-message-user {
    flex-wrap: wrap;
  }

  .ticket-message-user .badge {
    margin-left: 0;
  }
}

/*--------------------------------------------------------------
# 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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: contain;
  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%;
  -o-object-fit: cover;
  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);
  -o-object-fit: cover;
  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);
  -o-object-fit: cover;
  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);
  -o-object-fit: cover;
  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%;
  -o-object-fit: contain;
  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);
  -o-object-fit: cover;
  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);
  -o-object-fit: cover;
  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: white;
  min-height: 100px;
}

.widget-credit-card.visa {
  background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
}

.widget-credit-card.mastercard {
  background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 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: white;
}

.widget-transaction-icon-mini.upwork {
  background: #6fda44;
  color: white;
}

.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: white;
}

.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: white;
}

.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: white;
}

.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: white;
}

.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: white;
}

.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, #667eea 0%, #764ba2 100%);
}

.gradient-success {
  background: linear-gradient(135deg, var(--success-color) 0%, #059669 100%);
}

.gradient-info {
  background: linear-gradient(135deg, var(--info-color) 0%, #0284c7 100%);
}

.gradient-danger {
  background: linear-gradient(135deg, var(--danger-color) 0%, #dc2626 100%);
}

.gradient-warning {
  background: linear-gradient(135deg, var(--warning-color) 0%, #d97706 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: white;
  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);
  -o-object-fit: cover;
  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, #fbbf24 0%, #f59e0b 100%);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: white;
  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, #f8fafc 0%, #e2e8f0 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);
  -o-object-fit: cover;
  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: white;
  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, #f8fafc 0%, #e2e8f0 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: white;
  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: white;
}

.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: white;
  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: white;
  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: white;
  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: rgba(0, 0, 0, 0.2);
}

.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: white;
  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: white;
  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: white;
}

.widget-browser-icon.firefox {
  background-color: #ff7139;
  color: white;
}

.widget-browser-icon.safari {
  background-color: #0fb5ee;
  color: white;
}

.widget-browser-icon.edge {
  background-color: #0078d4;
  color: white;
}

.widget-browser-icon.opera {
  background-color: #ff1b2d;
  color: white;
}

.widget-browser-icon.other {
  background-color: var(--muted-color);
  color: white;
}

.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: white;
}

.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);
}

/*--------------------------------------------------------------
# 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: white;
}

.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: white;
}

.widget-weather-week-item.active i {
  color: white;
}

.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: white;
}

.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: white;
}

.widget-crypto-stats.primary {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

.widget-crypto-stats.success {
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
}

.widget-crypto-stats.danger {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
}

.widget-crypto-stats.info {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
}

.widget-crypto-stats.warning {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 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: white;
}

.widget-colored-stat.primary {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

.widget-colored-stat.success {
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
}

.widget-colored-stat.info {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
}

.widget-colored-stat.danger {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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: 767.98px) {
  .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);
}

/*--------------------------------------------------------------
# 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;
  -webkit-user-select: none;
  -moz-user-select: none;
  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;
  -moz-tab-size: 2;
  -o-tab-size: 2;
  tab-size: 2;
}

.code-editor::-moz-placeholder {
  color: #858585;
}

.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::-moz-placeholder {
  color: var(--muted-color);
}

.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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  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%;
  -o-object-fit: cover;
  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: rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  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%;
  -o-object-fit: contain;
  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%;
  -o-object-fit: cover;
  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%;
  -o-object-fit: cover;
  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, rgba(0, 0, 0, 0.7) 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: white;
  font-size: 0.75rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7), 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 - shadcn Style
--------------------------------------------------------------*/
/* Section Title & Description */
.contact-section-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 var(--spacing-sm);
  letter-spacing: -0.02em;
}

.contact-section-description {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin: 0 0 var(--spacing-xl);
  line-height: 1.6;
}

/* Contact Info Cards Container */
.contact-cards {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
}

/* Individual Contact Info Card */
.contact-info-card {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-md);
  padding: var(--spacing-lg);
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  transition: border-color var(--transition-fast);
}

.contact-info-card:hover {
  border-color: var(--border-color-dark);
}

/* Contact Info Card Icon */
.contact-info-card-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: var(--background-color);
  border-radius: var(--radius-md);
  color: var(--heading-color);
  font-size: 1.25rem;
}

/* Contact Info Card Content */
.contact-info-card-content {
  flex: 1;
  min-width: 0;
}

.contact-info-card-content h5 {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 var(--spacing-xs);
  letter-spacing: -0.01em;
}

.contact-info-card-content p {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin: 0;
  line-height: 1.6;
}

/* Contact Form Wrapper */
.contact-form-wrapper {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  padding: var(--spacing-xl);
}

/* Contact Form Header */
.contact-form-header {
  margin-bottom: var(--spacing-xl);
}

.contact-form-header h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 var(--spacing-xs);
  letter-spacing: -0.01em;
}

.contact-form-header p {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin: 0;
}

/* Contact Form */
.contact-form .form-group {
  margin-bottom: var(--spacing-lg);
}

.contact-form .form-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading-color);
  margin-bottom: var(--spacing-xs);
}

/* Map Wrapper */
.contact-map-wrapper {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.contact-map-header {
  padding: var(--spacing-lg);
  border-bottom: 1px solid var(--border-color);
}

.contact-map-header h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 var(--spacing-xs);
  letter-spacing: -0.01em;
}

.contact-map-header p {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin: 0;
}

.contact-map-container {
  width: 100%;
  height: 400px;
}

.contact-map-container iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Responsive */
@media (max-width: 991px) {
  .contact-info-wrapper {
    margin-bottom: var(--spacing-lg);
  }
}

@media (max-width: 767px) {
  .contact-form-wrapper {
    padding: var(--spacing-lg);
  }

  .contact-map-container {
    height: 300px;
  }

  .contact-info-card {
    padding: var(--spacing-md);
  }

  .contact-info-card-icon {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
}

/* Dark Mode */
[data-theme=dark] .contact-info-card,
[data-theme=dark] .contact-form-wrapper,
[data-theme=dark] .contact-map-wrapper {
  box-shadow: none;
}

/*--------------------------------------------------------------
# Settings Page - shadcn Style
--------------------------------------------------------------*/
/* Container Layout */
.settings-container {
  display: flex;
  gap: var(--spacing-xl);
  max-width: 1200px;
}

/* Settings Navigation */
.settings-nav {
  flex-shrink: 0;
  width: 220px;
  position: sticky;
  top: calc(var(--header-height) + var(--floating-gap) * 2 + var(--spacing-xl));
  height: -moz-fit-content;
  height: fit-content;
}

.settings-nav-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.settings-nav-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--muted-color);
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.settings-nav-item:hover {
  background-color: var(--background-color);
  color: var(--heading-color);
}

.settings-nav-item.active {
  background-color: var(--background-color);
  color: var(--heading-color);
}

.settings-nav-item i {
  font-size: 1rem;
  width: 20px;
}

/* Settings Content */
.settings-content {
  flex: 1;
  min-width: 0;
}

.settings-section {
  display: none;
}

.settings-section.active {
  display: block;
}

/* Section Header */
.settings-section-header {
  margin-bottom: var(--spacing-xl);
}

.settings-section-header h2 {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 var(--spacing-xs);
  letter-spacing: -0.02em;
}

.settings-section-header p {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin: 0;
}

/* Settings Card */
.settings-card {
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  margin-bottom: var(--spacing-lg);
}

.settings-card-header {
  padding: var(--spacing-lg);
  border-bottom: 1px solid var(--border-color);
}

.settings-card-header h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--heading-color);
  margin: 0 0 var(--spacing-xs);
  letter-spacing: -0.01em;
}

.settings-card-header p {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin: 0;
}

.settings-card-body {
  padding: var(--spacing-lg);
}

.settings-card-footer {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-md) var(--spacing-lg);
  border-top: 1px solid var(--border-color);
  background: var(--background-color);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

/* Danger Card Variant */
.settings-card-danger {
  border-color: var(--danger-color-light);
}

.settings-card-danger .settings-card-header {
  border-color: var(--danger-color-light);
}

.settings-card-danger .settings-card-header h3 {
  color: var(--danger-color);
}

/* Form Elements */
.settings-form-group {
  margin-bottom: var(--spacing-lg);
}

.settings-form-group:last-child {
  margin-bottom: 0;
}

.settings-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading-color);
  margin-bottom: var(--spacing-xs);
}

.settings-hint {
  font-size: 0.8125rem;
  color: var(--muted-color);
  margin: var(--spacing-xs) 0 0;
}

/* Toggle Row */
.settings-toggle-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--spacing-lg);
}

.settings-toggle-info {
  flex: 1;
}

.settings-toggle-info .settings-label {
  margin-bottom: 2px;
}

.settings-toggle-info .settings-hint {
  margin-top: 2px;
}

/* Divider */
.settings-divider {
  height: 1px;
  background: var(--border-color);
  margin: var(--spacing-md) 0;
}

/* Avatar Upload */
.settings-avatar-upload {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
}

.settings-avatar {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-full);
  -o-object-fit: cover;
  object-fit: cover;
  border: 2px solid var(--border-color);
}

.settings-avatar-actions {
  display: flex;
  gap: var(--spacing-sm);
}

/* Theme Selection */
.settings-theme-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-md);
}

.settings-theme-option {
  cursor: pointer;
}

.settings-theme-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.settings-theme-preview {
  display: flex;
  height: 100px;
  border-radius: var(--radius-md);
  border: 2px solid var(--border-color);
  overflow: hidden;
  transition: border-color var(--transition-fast);
}

.settings-theme-option input:checked+.settings-theme-preview {
  border-color: var(--accent-color);
}

.settings-theme-option:hover .settings-theme-preview {
  border-color: var(--border-color-dark);
}

.settings-theme-option input:checked+.settings-theme-preview {
  border-color: var(--accent-color);
}

.theme-preview-sidebar {
  width: 24px;
  flex-shrink: 0;
}

.theme-preview-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.theme-preview-header {
  height: 16px;
}

.theme-preview-body {
  flex: 1;
}

/* Light Theme Preview */
.settings-theme-light .theme-preview-sidebar {
  background: #ffffff;
  border-right: 1px solid #e4e4e7;
}

.settings-theme-light .theme-preview-header {
  background: #ffffff;
  border-bottom: 1px solid #e4e4e7;
}

.settings-theme-light .theme-preview-body {
  background: #fafafa;
}

/* Dark Theme Preview */
.settings-theme-dark .theme-preview-sidebar {
  background: #18181b;
  border-right: 1px solid #27272a;
}

.settings-theme-dark .theme-preview-header {
  background: #18181b;
  border-bottom: 1px solid #27272a;
}

.settings-theme-dark .theme-preview-body {
  background: #09090b;
}

/* System Theme Preview - Split */
.settings-theme-system .theme-preview-sidebar {
  background: linear-gradient(to bottom, #ffffff 50%, #18181b 50%);
}

.settings-theme-system .theme-preview-header {
  background: linear-gradient(to right, #ffffff 50%, #18181b 50%);
}

.settings-theme-system .theme-preview-body {
  background: linear-gradient(135deg, #fafafa 50%, #09090b 50%);
}

.settings-theme-label {
  display: block;
  text-align: center;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--default-color);
  margin-top: var(--spacing-sm);
}

/* Plan Card */
.settings-plan-card {
  display: flex;
  gap: var(--spacing-xl);
  padding: var(--spacing-lg);
  background: var(--background-color);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
}

.settings-plan-info {
  flex: 1;
}

.settings-plan-badge {
  display: inline-block;
  padding: 2px 10px;
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--accent-color);
  color: var(--contrast-color);
  border-radius: var(--radius-full);
  margin-bottom: var(--spacing-sm);
}

.settings-plan-price {
  margin-bottom: var(--spacing-xs);
}

.settings-plan-amount {
  font-size: 2rem;
  font-weight: 700;
  color: var(--heading-color);
  letter-spacing: -0.02em;
}

.settings-plan-period {
  font-size: 0.875rem;
  color: var(--muted-color);
}

.settings-plan-description {
  font-size: 0.875rem;
  color: var(--muted-color);
  margin: 0;
}

.settings-plan-features {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.settings-plan-feature {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  font-size: 0.875rem;
  color: var(--default-color);
}

.settings-plan-feature i {
  color: var(--success-color);
}

/* Payment Method */
.settings-payment-method {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-md);
  background: var(--background-color);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
}

.settings-payment-card {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
}

.settings-payment-card i {
  font-size: 1.5rem;
  color: var(--muted-color);
}

.settings-payment-details {
  display: flex;
  flex-direction: column;
}

.settings-payment-brand {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading-color);
}

.settings-payment-expiry {
  font-size: 0.8125rem;
  color: var(--muted-color);
}

/* Integrations */
.settings-integration-list {
  display: flex;
  flex-direction: column;
}

.settings-integration-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-sm) 0;
}

.settings-integration-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: var(--background-color);
  border-radius: var(--radius-md);
  font-size: 1.25rem;
  color: var(--heading-color);
}

.settings-integration-info {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.settings-integration-name {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--heading-color);
}

.settings-integration-status {
  font-size: 0.8125rem;
  color: var(--muted-color);
}

.settings-integration-status.connected {
  color: var(--success-color);
}

/* Responsive */
@media (max-width: 991px) {
  .settings-container {
    flex-direction: column;
    gap: var(--spacing-lg);
  }

  .settings-nav {
    width: 100%;
    position: static;
  }

  .settings-nav-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
  }

  .settings-nav-item {
    padding: var(--spacing-xs) var(--spacing-md);
  }

  .settings-plan-card {
    flex-direction: column;
    gap: var(--spacing-lg);
  }
}

@media (max-width: 767px) {
  .settings-theme-grid {
    grid-template-columns: 1fr;
  }

  .settings-toggle-row {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-sm);
  }
}

/* Dark Mode Adjustments */
[data-theme=dark] .settings-card {
  box-shadow: none;
}

[data-theme=dark] .settings-card-footer {
  background: var(--background-color);
}

[data-theme=dark] .settings-card-danger {
  border-color: rgba(239, 68, 68, 0.3);
}

[data-theme=dark] .settings-card-danger .settings-card-header {
  border-color: rgba(239, 68, 68, 0.3);
}

[data-theme=dark] .settings-theme-preview {
  border-color: var(--border-color);
}

[data-theme=dark] .settings-theme-option:hover .settings-theme-preview {
  border-color: var(--border-color-dark);
}

[data-theme=dark] .settings-theme-option input:checked+.settings-theme-preview {
  border-color: var(--accent-color);
}

/*--------------------------------------------------------------
# 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
# Muted shadcn-inspired dark theme with border-only floating elements
--------------------------------------------------------------*/
/* 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;
}

/*--------------------------------------------------------------
# Floating Elements - Border Only (No Shadows)
--------------------------------------------------------------*/
/* Sidebar - border only, no shadow */
[data-theme=dark] .sidebar {
  box-shadow: none;
  border-color: var(--sidebar-border);
}

/* Header - border only, no shadow */
[data-theme=dark] .header {
  box-shadow: none;
  border-color: var(--header-border);
}

/* Footer - border only, no shadow */
[data-theme=dark] .footer {
  box-shadow: none;
  border-color: var(--border-color);
}

/* Dropdowns - subtle shadow for depth */
[data-theme=dark] .dropdown-menu {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  border-color: var(--border-color);
}

/* Images in dark mode - slight reduction in brightness (exclude logos) */
[data-theme=dark] img:not([src*=".svg"]):not(.sidebar-logo img):not(.header-logo img) {
  filter: brightness(0.95);
}

/* Logo inversion for dark mode - make dark logos white */
[data-theme=dark] .sidebar-logo img,
[data-theme=dark] .header-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;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  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='%2394a3b8' 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='%2394a3b8'/%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] ::-moz-placeholder {
  color: var(--light-color);
  opacity: 1;
}

[data-theme=dark] ::placeholder {
  color: var(--light-color);
  opacity: 1;
}

/* Selection in dark mode */
[data-theme=dark] ::-moz-selection {
  background-color: var(--accent-color);
  color: white;
}

[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);
}

/*--------------------------------------------------------------
# Cards & Widgets - Border Only (shadcn style)
--------------------------------------------------------------*/
/* Cards - border only, no shadow for cleaner look */
[data-theme=dark] .card,
[data-theme=dark] .widget {
  box-shadow: none;
  border-color: var(--border-color);
}

/* Card hover - subtle lift if needed */
[data-theme=dark] .card-hover:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Modal backdrop in dark mode */
[data-theme=dark] .modal-backdrop {
  background-color: rgba(0, 0, 0, 0.7);
}

/* Modal content - border only */
[data-theme=dark] .modal-content {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
  border-color: var(--border-color);
}

/* 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;
}

/*--------------------------------------------------------------
# Buttons in Dark Mode
--------------------------------------------------------------*/
/* Outline buttons - muted look */
[data-theme=dark] .btn-outline-secondary {
  border-color: var(--border-color);
  color: var(--default-color);
}

[data-theme=dark] .btn-outline-secondary:hover {
  background-color: var(--surface-color);
  border-color: var(--border-color-dark);
}

/* Light button - slightly visible in dark */
[data-theme=dark] .btn-light {
  background-color: var(--surface-color);
  border-color: var(--border-color);
  color: var(--default-color);
}

[data-theme=dark] .btn-light:hover {
  background-color: var(--background-color);
}

/*--------------------------------------------------------------
# Input Focus Rings - Muted
--------------------------------------------------------------*/
[data-theme=dark] .form-control:focus,
[data-theme=dark] .form-select:focus {
  box-shadow: 0 0 0 2px var(--input-focus-ring);
}

/*--------------------------------------------------------------
# Alert borders in dark mode
--------------------------------------------------------------*/
[data-theme=dark] .alert {
  border-width: 1px;
}

/*--------------------------------------------------------------
# Header Dropdowns - shadcn dark style
--------------------------------------------------------------*/
/* Notification dropdown */
[data-theme=dark] .notification-dropdown .dropdown-menu {
  box-shadow: 0 10px 38px -10px rgba(0, 0, 0, 0.7), 0 10px 20px -15px rgba(0, 0, 0, 0.5);
}

[data-theme=dark] .notification-header {
  background: var(--background-color);
}

[data-theme=dark] .notification-footer {
  background: var(--background-color);
}

/* User dropdown */
[data-theme=dark] .user-dropdown .dropdown-menu {
  box-shadow: 0 10px 38px -10px rgba(0, 0, 0, 0.7), 0 10px 20px -15px rgba(0, 0, 0, 0.5);
}

[data-theme=dark] .user-dropdown .avatar {
  border-color: var(--border-color);
}

[data-theme=dark] .user-dropdown .dropdown-toggle:hover .avatar {
  border-color: var(--border-color-dark);
}

[data-theme=dark] .user-dropdown .dropdown-header .user-avatar {
  border-color: var(--border-color);
}

[data-theme=dark] .user-dropdown .dropdown-item .shortcut {
  background: var(--background-color);
  border-color: var(--border-color);
}

/*--------------------------------------------------------------
# Sidebar tooltip in dark mode
--------------------------------------------------------------*/
[data-theme=dark] .sidebar-nav .nav-link::after {
  background-color: var(--surface-color);
  border-color: var(--border-color);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/*--------------------------------------------------------------
# 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;
  }
}