/* =============================================================================
   HB VUE THEME - CSS VARIABLES
   =============================================================================
   Generated from design tokens
   ============================================================================= */

:root {
  --hb-primary-50: #eff6ff;
  --hb-primary-100: #dbeafe;
  --hb-primary-200: #bfdbfe;
  --hb-primary-300: #93c5fd;
  --hb-primary-400: #60a5fa;
  --hb-primary-500: #3b82f6;
  --hb-primary-600: #2563eb;
  --hb-primary-700: #1d4ed8;
  --hb-primary-800: #1e40af;
  --hb-primary-900: #1e3a8a;
  --hb-secondary-50: #f8fafc;
  --hb-secondary-100: #f1f5f9;
  --hb-secondary-200: #e2e8f0;
  --hb-secondary-300: #cbd5e1;
  --hb-secondary-400: #94a3b8;
  --hb-secondary-500: #64748b;
  --hb-secondary-600: #475569;
  --hb-secondary-700: #334155;
  --hb-secondary-800: #1e293b;
  --hb-secondary-900: #0f172a;
  --hb-success-50: #f0fdf4;
  --hb-success-100: #dcfce7;
  --hb-success-200: #bbf7d0;
  --hb-success-300: #86efac;
  --hb-success-400: #4ade80;
  --hb-success-500: #22c55e;
  --hb-success-600: #16a34a;
  --hb-success-700: #15803d;
  --hb-success-800: #166534;
  --hb-success-900: #14532d;
  --hb-warning-50: #fffbeb;
  --hb-warning-100: #fef3c7;
  --hb-warning-200: #fde68a;
  --hb-warning-300: #fcd34d;
  --hb-warning-400: #fbbf24;
  --hb-warning-500: #f59e0b;
  --hb-warning-600: #d97706;
  --hb-warning-700: #b45309;
  --hb-warning-800: #92400e;
  --hb-warning-900: #78350f;
  --hb-danger-50: #fef2f2;
  --hb-danger-100: #fee2e2;
  --hb-danger-200: #fecaca;
  --hb-danger-300: #fca5a5;
  --hb-danger-400: #f87171;
  --hb-danger-500: #ef4444;
  --hb-danger-600: #dc2626;
  --hb-danger-700: #b91c1c;
  --hb-danger-800: #991b1b;
  --hb-danger-900: #7f1d1d;
  --hb-info-50: #f0f9ff;
  --hb-info-100: #e0f2fe;
  --hb-info-200: #bae6fd;
  --hb-info-300: #7dd3fc;
  --hb-info-400: #38bdf8;
  --hb-info-500: #0ea5e9;
  --hb-info-600: #0284c7;
  --hb-info-700: #0369a1;
  --hb-info-800: #075985;
  --hb-info-900: #0c4a6e;
  --hb-neutral-50: #fafafa;
  --hb-neutral-100: #f5f5f5;
  --hb-neutral-200: #e5e5e5;
  --hb-neutral-300: #d4d4d4;
  --hb-neutral-400: #a3a3a3;
  --hb-neutral-500: #737373;
  --hb-neutral-600: #525252;
  --hb-neutral-700: #404040;
  --hb-neutral-800: #262626;
  --hb-neutral-900: #171717;
  --hb-primary: var(--hb-primary-500);
  --hb-primary-light: var(--hb-primary-400);
  --hb-primary-dark: var(--hb-primary-600);
  --hb-primary-hover: var(--hb-primary-600);
  --hb-primary-active: var(--hb-primary-700);
  --hb-secondary: var(--hb-secondary-500);
  --hb-secondary-light: var(--hb-secondary-400);
  --hb-secondary-dark: var(--hb-secondary-600);
  --hb-success: var(--hb-success-500);
  --hb-warning: var(--hb-warning-500);
  --hb-danger: var(--hb-danger-500);
  --hb-info: var(--hb-info-500);
  --hb-text-primary: var(--hb-neutral-900);
  --hb-text-secondary: var(--hb-neutral-600);
  --hb-text-muted: var(--hb-neutral-500);
  --hb-text-disabled: var(--hb-neutral-400);
  --hb-text-inverse: var(--hb-neutral-50);
  --hb-bg-primary: #ffffff;
  --hb-bg-secondary: var(--hb-neutral-50);
  --hb-bg-tertiary: var(--hb-neutral-100);
  --hb-bg-overlay: rgba(0, 0, 0, 0.5);
  --hb-border-light: var(--hb-neutral-200);
  --hb-border-medium: var(--hb-neutral-300);
  --hb-border-dark: var(--hb-neutral-400);
  --hb-border-focus: var(--hb-primary-500);
  --hb-font-family-primary: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  --hb-font-family-mono: 'Courier New', Courier, monospace;
  --hb-font-size-xs: 0.75rem;
  --hb-font-size-sm: 0.875rem;
  --hb-font-size-base: 1rem;
  --hb-font-size-lg: 1.125rem;
  --hb-font-size-xl: 1.25rem;
  --hb-font-size-2xl: 1.5rem;
  --hb-font-size-3xl: 1.875rem;
  --hb-font-size-4xl: 2.25rem;
  --hb-font-weight-light: 300;
  --hb-font-weight-normal: 400;
  --hb-font-weight-medium: 500;
  --hb-font-weight-semibold: 600;
  --hb-font-weight-bold: 700;
  --hb-line-height-tight: 1.25;
  --hb-line-height-normal: 1.5;
  --hb-line-height-relaxed: 1.75;
  --hb-spacing-0: 0;
  --hb-spacing-1: 0.25rem;
  --hb-spacing-2: 0.5rem;
  --hb-spacing-3: 0.75rem;
  --hb-spacing-4: 1rem;
  --hb-spacing-5: 1.25rem;
  --hb-spacing-6: 1.5rem;
  --hb-spacing-8: 2rem;
  --hb-spacing-10: 2.5rem;
  --hb-spacing-12: 3rem;
  --hb-spacing-16: 4rem;
  --hb-spacing-20: 5rem;
  --hb-spacing-24: 6rem;
  --hb-border-radius-none: 0;
  --hb-border-radius-sm: 0.125rem;
  --hb-border-radius-base: 0.25rem;
  --hb-border-radius-md: 0.375rem;
  --hb-border-radius-lg: 0.5rem;
  --hb-border-radius-xl: 0.75rem;
  --hb-border-radius-2xl: 1rem;
  --hb-border-radius-full: 9999px;
  --hb-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --hb-shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  --hb-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --hb-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --hb-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  --hb-transition-fast: 150ms ease-in-out;
  --hb-transition-base: 250ms ease-in-out;
  --hb-transition-slow: 350ms ease-in-out;
  --hb-z-index-dropdown: 1000;
  --hb-z-index-sticky: 1020;
  --hb-z-index-fixed: 1030;
  --hb-z-index-modal-backdrop: 1040;
  --hb-z-index-modal: 1050;
  --hb-z-index-popover: 1060;
  --hb-z-index-tooltip: 1070;
  --hb-breakpoint-sm: 640px;
  --hb-breakpoint-md: 768px;
  --hb-breakpoint-lg: 1024px;
  --hb-breakpoint-xl: 1280px;
  --hb-breakpoint-2xl: 1536px;
  --primary-color: var(--hb-primary);
  --primary-color-text: var(--hb-text-inverse);
  --surface-ground: var(--hb-bg-secondary);
  --surface-section: var(--hb-bg-primary);
  --surface-card: var(--hb-bg-primary);
  --surface-overlay: var(--hb-bg-primary);
  --surface-border: var(--hb-border-light);
  --surface-hover: var(--hb-bg-secondary);
  --focus-ring: 0 0 0 3px rgba(59, 130, 246, 0.1);
  --maskbg: var(--hb-bg-overlay);
  --text-color: var(--hb-text-primary);
  --text-color-secondary: var(--hb-text-secondary);
  --text-muted-color: var(--hb-text-muted);
  --border-radius: var(--hb-border-radius-md);
  --border-radius-sm: var(--hb-border-radius-sm);
  --border-radius-lg: var(--hb-border-radius-lg);
  --content-padding: var(--hb-spacing-4);
  --inline-spacing: var(--hb-spacing-2);
  --transition-duration: var(--hb-transition-base);
  --font-family: var(--hb-font-family-primary);
  --font-size: var(--hb-font-size-base);
  --font-weight: var(--hb-font-weight-normal);
  --font-weight-bold: var(--hb-font-weight-bold);
  --shadow-1: var(--hb-shadow-sm);
  --shadow-2: var(--hb-shadow-base);
  --shadow-3: var(--hb-shadow-md);
  --shadow-4: var(--hb-shadow-lg);
  --shadow-5: var(--hb-shadow-xl);
  --button-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --button-border-radius: var(--hb-border-radius-md);
  --button-font-weight: var(--hb-font-weight-medium);
  --button-transition: var(--hb-transition-base);
  --button-primary-bg: var(--hb-primary);
  --button-primary-color: var(--hb-text-inverse);
  --button-primary-hover-bg: var(--hb-primary-hover);
  --button-secondary-bg: var(--hb-bg-primary);
  --button-secondary-color: var(--hb-text-primary);
  --button-secondary-border: var(--hb-border-medium);
  --button-success-bg: var(--hb-success);
  --button-warning-bg: var(--hb-warning);
  --button-danger-bg: var(--hb-danger);
  --button-info-bg: var(--hb-info);
  --input-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --input-border-radius: var(--hb-border-radius-md);
  --input-border-color: var(--hb-border-medium);
  --input-focus-border-color: var(--hb-border-focus);
  --input-focus-box-shadow: var(--hb-shadow-sm);
  --input-bg: var(--hb-bg-primary);
  --input-color: var(--hb-text-primary);
  --input-placeholder-color: var(--hb-text-muted);
  --input-disabled-bg: var(--hb-bg-tertiary);
  --input-disabled-color: var(--hb-text-disabled);
  --select-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --select-border-radius: var(--hb-border-radius-md);
  --select-bg: var(--hb-bg-primary);
  --select-border-color: var(--hb-border-medium);
  --select-focus-border-color: var(--hb-border-focus);
  --select-hover-bg: var(--hb-bg-secondary);
  --select-item-padding: var(--hb-spacing-2) var(--hb-spacing-4);
  --select-item-hover-bg: var(--hb-bg-secondary);
  --select-item-selected-bg: var(--hb-primary-50);
  --select-item-selected-color: var(--hb-primary);
  --select-trigger-bg: var(--hb-bg-primary);
  --select-trigger-border: 1px solid var(--hb-border-medium);
  --select-trigger-border-radius: var(--hb-border-radius-md);
  --select-trigger-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --select-trigger-hover-bg: var(--hb-bg-secondary);
  --select-trigger-focus-border-color: var(--hb-border-focus);
  --select-trigger-focus-box-shadow: var(--hb-shadow-sm);
  --multiselect-padding: var(--hb-spacing-2) var(--hb-spacing-4);
  --multiselect-border-radius: var(--hb-border-radius-md);
  --multiselect-token-bg: var(--hb-primary-50);
  --multiselect-token-color: var(--hb-primary);
  --multiselect-token-border-radius: var(--hb-border-radius-sm);
  --multiselect-token-padding: var(--hb-spacing-1) var(--hb-spacing-2);
  --calendar-bg: var(--hb-bg-primary);
  --calendar-border-radius: var(--hb-border-radius-lg);
  --calendar-header-bg: var(--hb-bg-secondary);
  --calendar-day-hover-bg: var(--hb-bg-secondary);
  --calendar-day-selected-bg: var(--hb-primary);
  --calendar-day-selected-color: var(--hb-text-inverse);
  --calendar-day-today-bg: var(--hb-primary-50);
  --calendar-day-today-color: var(--hb-primary);
  --checkbox-size: 1.25rem;
  --checkbox-border-radius: var(--hb-border-radius-sm);
  --checkbox-border-color: var(--hb-border-medium);
  --checkbox-checked-bg: var(--hb-primary);
  --checkbox-checked-border-color: var(--hb-primary);
  --checkbox-hover-border-color: var(--hb-border-dark);
  --checkbox-focus-border-color: var(--hb-border-focus);
  --radiobutton-size: 1.25rem;
  --radiobutton-border-color: var(--hb-border-medium);
  --radiobutton-checked-bg: var(--hb-primary);
  --radiobutton-checked-border-color: var(--hb-primary);
  --radiobutton-hover-border-color: var(--hb-border-dark);
  --radiobutton-focus-border-color: var(--hb-border-focus);
  --switch-width: 3rem;
  --switch-height: 1.5rem;
  --switch-border-radius: var(--hb-border-radius-full);
  --switch-bg: var(--hb-border-medium);
  --switch-checked-bg: var(--hb-primary);
  --switch-thumb-size: 1.125rem;
  --switch-thumb-bg: var(--hb-bg-primary);
  --switch-transition: var(--hb-transition-base);
  --slider-track-bg: var(--hb-border-light);
  --slider-track-height: 0.25rem;
  --slider-track-border-radius: var(--hb-border-radius-full);
  --slider-range-bg: var(--hb-primary);
  --slider-handle-size: 1.25rem;
  --slider-handle-bg: var(--hb-bg-primary);
  --slider-handle-border: 2px solid var(--hb-primary);
  --slider-handle-border-radius: var(--hb-border-radius-full);
  --datatable-bg: var(--hb-bg-primary);
  --datatable-border-radius: var(--hb-border-radius-lg);
  --datatable-header-bg: var(--hb-bg-secondary);
  --datatable-header-color: var(--hb-text-primary);
  --datatable-header-font-weight: var(--hb-font-weight-semibold);
  --datatable-row-hover-bg: var(--hb-bg-secondary);
  --datatable-row-selected-bg: var(--hb-primary-50);
  --datatable-border-color: var(--hb-border-light);
  --datatable-pagination-bg: var(--hb-bg-secondary);
  --datatable-pagination-border-color: var(--hb-border-light);
  --tree-bg: var(--hb-bg-primary);
  --tree-border-radius: var(--hb-border-radius-md);
  --tree-node-padding: var(--hb-spacing-2) var(--hb-spacing-4);
  --tree-node-hover-bg: var(--hb-bg-secondary);
  --tree-node-selected-bg: var(--hb-primary-50);
  --tree-node-selected-color: var(--hb-primary);
  --tree-toggle-icon-color: var(--hb-text-secondary);
  --treetable-bg: var(--hb-bg-primary);
  --treetable-border-radius: var(--hb-border-radius-lg);
  --treetable-header-bg: var(--hb-bg-secondary);
  --treetable-row-hover-bg: var(--hb-bg-secondary);
  --treetable-row-selected-bg: var(--hb-primary-50);
  --treetable-border-color: var(--hb-border-light);
  --panel-bg: var(--hb-bg-primary);
  --panel-border-radius: var(--hb-border-radius-lg);
  --panel-header-bg: var(--hb-bg-secondary);
  --panel-header-color: var(--hb-text-primary);
  --panel-header-font-weight: var(--hb-font-weight-semibold);
  --panel-header-padding: var(--hb-spacing-4);
  --panel-content-padding: var(--hb-spacing-4);
  --panel-border-color: var(--hb-border-light);
  --panel-shadow: var(--hb-shadow-base);
  --accordion-bg: var(--hb-bg-primary);
  --accordion-border-radius: var(--hb-border-radius-lg);
  --accordion-header-bg: var(--hb-bg-secondary);
  --accordion-header-color: var(--hb-text-primary);
  --accordion-header-hover-bg: var(--hb-bg-tertiary);
  --accordion-header-padding: var(--hb-spacing-4);
  --accordion-content-padding: var(--hb-spacing-4);
  --accordion-border-color: var(--hb-border-light);
  --tabview-bg: var(--hb-bg-primary);
  --tabview-border-radius: var(--hb-border-radius-lg);
  --tabview-nav-bg: var(--hb-bg-secondary);
  --tabview-nav-border-color: var(--hb-border-light);
  --tabview-nav-item-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --tabview-nav-item-color: var(--hb-text-secondary);
  --tabview-nav-item-hover-bg: var(--hb-bg-tertiary);
  --tabview-nav-item-active-bg: var(--hb-bg-primary);
  --tabview-nav-item-active-color: var(--hb-primary);
  --tabview-content-padding: var(--hb-spacing-4);
  --card-bg: var(--hb-bg-primary);
  --card-border-radius: var(--hb-border-radius-lg);
  --card-header-bg: var(--hb-bg-secondary);
  --card-header-color: var(--hb-text-primary);
  --card-header-padding: var(--hb-spacing-4);
  --card-content-padding: var(--hb-spacing-4);
  --card-footer-padding: var(--hb-spacing-4);
  --card-border-color: var(--hb-border-light);
  --card-shadow: var(--hb-shadow-base);
  --dialog-bg: var(--hb-bg-primary);
  --dialog-border-radius: var(--hb-border-radius-lg);
  --dialog-header-bg: var(--hb-bg-secondary);
  --dialog-header-color: var(--hb-text-primary);
  --dialog-header-padding: var(--hb-spacing-4);
  --dialog-content-padding: var(--hb-spacing-4);
  --dialog-footer-padding: var(--hb-spacing-4);
  --dialog-shadow: var(--hb-shadow-xl);
  --dialog-mask-bg: var(--hb-bg-overlay);
  --sidebar-bg: var(--hb-bg-primary);
  --sidebar-width: 20rem;
  --sidebar-header-bg: var(--hb-bg-secondary);
  --sidebar-header-color: var(--hb-text-primary);
  --sidebar-header-padding: var(--hb-spacing-4);
  --sidebar-content-padding: var(--hb-spacing-4);
  --sidebar-shadow: var(--hb-shadow-xl);
  --sidebar-mask-bg: var(--hb-bg-overlay);
  --overlaypanel-bg: var(--hb-bg-primary);
  --overlaypanel-border-radius: var(--hb-border-radius-lg);
  --overlaypanel-padding: var(--hb-spacing-4);
  --overlaypanel-shadow: var(--hb-shadow-lg);
  --overlaypanel-arrow-size: 0.5rem;
  --tooltip-bg: var(--hb-neutral-800);
  --tooltip-color: var(--hb-text-inverse);
  --tooltip-border-radius: var(--hb-border-radius-md);
  --tooltip-padding: var(--hb-spacing-2) var(--hb-spacing-3);
  --tooltip-font-size: var(--hb-font-size-sm);
  --tooltip-shadow: var(--hb-shadow-md);
  --fileupload-bg: var(--hb-bg-primary);
  --fileupload-border-radius: var(--hb-border-radius-lg);
  --fileupload-border-color: var(--hb-border-medium);
  --fileupload-border-style: dashed;
  --fileupload-border-width: 2px;
  --fileupload-padding: var(--hb-spacing-8);
  --fileupload-hover-border-color: var(--hb-primary);
  --fileupload-hover-bg: var(--hb-primary-50);
  --menu-bg: var(--hb-bg-primary);
  --menu-border-radius: var(--hb-border-radius-md);
  --menu-padding: var(--hb-spacing-2);
  --menu-item-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --menu-item-color: var(--hb-text-primary);
  --menu-item-hover-bg: var(--hb-bg-secondary);
  --menu-item-active-bg: var(--hb-primary-50);
  --menu-item-active-color: var(--hb-primary);
  --menu-shadow: var(--hb-shadow-lg);
  --menubar-bg: var(--hb-bg-primary);
  --menubar-border-radius: var(--hb-border-radius-md);
  --menubar-padding: var(--hb-spacing-2) var(--hb-spacing-4);
  --menubar-item-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --menubar-item-color: var(--hb-text-primary);
  --menubar-item-hover-bg: var(--hb-bg-secondary);
  --menubar-item-active-bg: var(--hb-primary-50);
  --menubar-item-active-color: var(--hb-primary);
  --menubar-shadow: var(--hb-shadow-base);
  --message-padding: var(--hb-spacing-3) var(--hb-spacing-4);
  --message-border-radius: var(--hb-border-radius-md);
  --message-info-bg: var(--hb-info-50);
  --message-info-color: var(--hb-info-700);
  --message-info-border-color: var(--hb-info-200);
  --message-success-bg: var(--hb-success-50);
  --message-success-color: var(--hb-success-700);
  --message-success-border-color: var(--hb-success-200);
  --message-warning-bg: var(--hb-warning-50);
  --message-warning-color: var(--hb-warning-700);
  --message-warning-border-color: var(--hb-warning-200);
  --message-error-bg: var(--hb-danger-50);
  --message-error-color: var(--hb-danger-700);
  --message-error-border-color: var(--hb-danger-200);
  --toast-bg: var(--hb-bg-primary);
  --toast-border-radius: var(--hb-border-radius-lg);
  --toast-padding: var(--hb-spacing-4);
  --toast-shadow: var(--hb-shadow-xl);
  --toast-info-bg: var(--hb-info-50);
  --toast-info-color: var(--hb-info-700);
  --toast-success-bg: var(--hb-success-50);
  --toast-success-color: var(--hb-success-700);
  --toast-warning-bg: var(--hb-warning-50);
  --toast-warning-color: var(--hb-warning-700);
  --toast-error-bg: var(--hb-danger-50);
  --toast-error-color: var(--hb-danger-700);
  --progressbar-bg: var(--hb-border-light);
  --progressbar-border-radius: var(--hb-border-radius-full);
  --progressbar-height: 0.5rem;
  --progressbar-value-bg: var(--hb-primary);
  --progressbar-value-border-radius: var(--hb-border-radius-full);
  --rating-item-size: 1.5rem;
  --rating-item-color: var(--hb-border-medium);
  --rating-item-active-color: var(--hb-warning);
  --rating-item-hover-color: var(--hb-warning-400);
  --chip-bg: var(--hb-bg-secondary);
  --chip-color: var(--hb-text-primary);
  --chip-border-radius: var(--hb-border-radius-full);
  --chip-padding: var(--hb-spacing-1) var(--hb-spacing-3);
  --chip-font-size: var(--hb-font-size-sm);
  --chip-remove-icon-color: var(--hb-text-muted);
  --chip-remove-icon-hover-color: var(--hb-text-primary);
  --avatar-size-sm: 2rem;
  --avatar-size-md: 3rem;
  --avatar-size-lg: 4rem;
  --avatar-size-xl: 5rem;
  --avatar-bg: var(--hb-bg-secondary);
  --avatar-color: var(--hb-text-primary);
  --avatar-border-radius: var(--hb-border-radius-full);
  --avatar-font-weight: var(--hb-font-weight-semibold);
  --divider-color: var(--hb-border-light);
  --divider-width: 1px;
  --divider-margin: var(--hb-spacing-4) 0;
  --divider-text-color: var(--hb-text-muted);
  --divider-text-padding: 0 var(--hb-spacing-4);
  --divider-text-font-size: var(--hb-font-size-sm);
  --scrolltop-bg: var(--hb-primary);
  --scrolltop-color: var(--hb-text-inverse);
  --scrolltop-border-radius: var(--hb-border-radius-full);
  --scrolltop-size: 3rem;
  --scrolltop-shadow: var(--hb-shadow-lg);
  --scrolltop-hover-bg: var(--hb-primary-hover);
  --skeleton-bg: var(--hb-bg-secondary);
  --skeleton-border-radius: var(--hb-border-radius-md);
  --skeleton-animation-duration: 1.5s;
  --skeleton-animation-timing: ease-in-out;
  --tag-bg: var(--hb-primary-50);
  --tag-color: var(--hb-primary);
  --tag-border-radius: var(--hb-border-radius-full);
  --tag-padding: var(--hb-spacing-1) var(--hb-spacing-3);
  --tag-font-size: var(--hb-font-size-sm);
  --tag-font-weight: var(--hb-font-weight-medium);
  --terminal-bg: var(--hb-neutral-900);
  --terminal-color: var(--hb-neutral-100);
  --terminal-font-family: var(--hb-font-family-mono);
  --terminal-padding: var(--hb-spacing-4);
  --terminal-border-radius: var(--hb-border-radius-lg);
  --terminal-header-bg: var(--hb-neutral-800);
  --terminal-header-color: var(--hb-neutral-200);
  --terminal-header-padding: var(--hb-spacing-3) var(--hb-spacing-4);
}

/* =============================================================================
   PRIMEFLEX UTILITIES
   ============================================================================= */

.hb-p-1 { padding: var(--hb-spacing-1) }
.hb-p-2 { padding: var(--hb-spacing-2) }
.hb-p-3 { padding: var(--hb-spacing-3) }
.hb-p-4 { padding: var(--hb-spacing-4) }
.hb-p-5 { padding: var(--hb-spacing-5) }
.hb-p-6 { padding: var(--hb-spacing-6) }
.hb-m-1 { margin: var(--hb-spacing-1) }
.hb-m-2 { margin: var(--hb-spacing-2) }
.hb-m-3 { margin: var(--hb-spacing-3) }
.hb-m-4 { margin: var(--hb-spacing-4) }
.hb-m-5 { margin: var(--hb-spacing-5) }
.hb-m-6 { margin: var(--hb-spacing-6) }
.hb-text-primary { color: var(--hb-text-primary) }
.hb-text-secondary { color: var(--hb-text-secondary) }
.hb-text-muted { color: var(--hb-text-muted) }
.hb-bg-primary { background-color: var(--hb-bg-primary) }
.hb-bg-secondary { background-color: var(--hb-bg-secondary) }
.hb-bg-tertiary { background-color: var(--hb-bg-tertiary) }
.hb-rounded-sm { border-radius: var(--hb-border-radius-sm) }
.hb-rounded { border-radius: var(--hb-border-radius-base) }
.hb-rounded-md { border-radius: var(--hb-border-radius-md) }
.hb-rounded-lg { border-radius: var(--hb-border-radius-lg) }
.hb-rounded-xl { border-radius: var(--hb-border-radius-xl) }
.hb-rounded-full { border-radius: var(--hb-border-radius-full) }
.hb-shadow-sm { box-shadow: var(--hb-shadow-sm) }
.hb-shadow { box-shadow: var(--hb-shadow-base) }
.hb-shadow-md { box-shadow: var(--hb-shadow-md) }
.hb-shadow-lg { box-shadow: var(--hb-shadow-lg) }
.hb-shadow-xl { box-shadow: var(--hb-shadow-xl) }

/* =============================================================================
   COMPONENT STYLES
   ============================================================================= */

/* =============================================================================
   HB VUE THEME - CSS OVERRIDES FOR PRIMEVUE 4 UNSTYLED MODE
   =============================================================================
   This file provides CSS overrides to replace PrimeVue's 'p-' prefixed classes
   with our custom 'hb-' prefixed classes for unstyled mode
   ============================================================================= */

/* =============================================================================
   DATATABLE COMPONENT OVERRIDES
   ============================================================================= */

/* Main DataTable container */
.hb-datatable {
  border: none;
  outline: none;
  font-family: var(--hb-font-family-primary);
  font-size: var(--hb-font-size-base);
  line-height: var(--hb-line-height-normal);
  color: var(--hb-text-primary);
  width: 100%;
  background-color: var(--hb-bg-primary);
  border-radius: var(--hb-border-radius-lg);
  box-shadow: var(--hb-shadow-base);
  overflow: hidden;
}

/* DataTable table element */
.hb-datatable-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

/* DataTable table header (thead) */
.hb-datatable-thead {
  background-color: var(--hb-bg-secondary);
  border-bottom: 2px solid var(--hb-border-medium);
}

.hb-datatable-thead th {
  padding: var(--hb-spacing-4) var(--hb-spacing-6);
  text-align: left;
  font-weight: var(--hb-font-weight-semibold);
  color: var(--hb-text-primary);
  border-bottom: 1px solid var(--hb-border-light);
  position: relative;
  cursor: pointer;
  transition: all var(--hb-transition-base);
}

.hb-datatable-thead th:hover {
  background-color: var(--hb-bg-tertiary);
}

.hb-datatable-thead th.hb-sortable {
  padding-right: 2rem;
}

.hb-datatable-thead th.hb-sortable::after {
  content: '';
  position: absolute;
  right: var(--hb-spacing-4);
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-bottom: 4px solid var(--hb-text-muted);
  transition: all var(--hb-transition-base);
}

.hb-datatable-thead th.hb-sortable.hb-sortable-asc::after {
  border-bottom-color: var(--hb-primary);
  transform: translateY(-50%) rotate(180deg);
}

.hb-datatable-thead th.hb-sortable.hb-sortable-desc::after {
  border-bottom-color: var(--hb-primary);
}

/* DataTable table body (tbody) */
.hb-datatable-tbody {
  background-color: var(--hb-bg-primary);
}

.hb-datatable-tbody tr {
  border-bottom: 1px solid var(--hb-border-light);
  transition: all var(--hb-transition-base);
}

.hb-datatable-tbody tr:hover {
  background-color: var(--hb-bg-secondary);
}

.hb-datatable-tbody tr.hb-row-selected {
  background-color: var(--hb-primary-50);
  border-left: 3px solid var(--hb-primary);
}

/* DataTable table footer (tfoot) */
.hb-datatable-tfoot {
  background-color: var(--hb-bg-secondary);
  border-top: 2px solid var(--hb-border-medium);
}

.hb-datatable-tfoot td {
  padding: var(--hb-spacing-4) var(--hb-spacing-6);
  text-align: left;
  font-weight: var(--hb-font-weight-semibold);
  color: var(--hb-text-primary);
  border-top: 1px solid var(--hb-border-light);
}

/* DataTable header section */
.hb-datatable-header {
  background-color: var(--hb-bg-secondary);
  border-bottom: 1px solid var(--hb-border-light);
  padding: var(--hb-spacing-4);
}

.hb-datatable-header-row {
  background-color: var(--hb-bg-secondary);
}

.hb-datatable-header-cell {
  background-color: var(--hb-bg-secondary);
  color: var(--hb-text-primary);
  font-weight: var(--hb-font-weight-semibold);
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  border-bottom: 1px solid var(--hb-border-light);
  text-align: left;
  vertical-align: middle;
}

.hb-datatable-header-cell.hb-sortable {
  cursor: pointer;
  user-select: none;
}

.hb-datatable-header-cell.hb-sortable:hover {
  background-color: var(--hb-bg-tertiary);
}

/* DataTable body section */
.hb-datatable-body {
  background-color: var(--hb-bg-primary);
}

.hb-datatable-row {
  transition: background-color var(--hb-transition-base);
}

.hb-datatable-row:hover {
  background-color: var(--hb-bg-secondary);
}

.hb-datatable-row.hb-selected {
  background-color: var(--hb-primary-50);
}

.hb-datatable-body-cell {
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  border-bottom: 1px solid var(--hb-border-light);
  text-align: left;
  vertical-align: middle;
  color: var(--hb-text-primary);
}

/* DataTable footer section */
.hb-datatable-footer {
  background-color: var(--hb-bg-secondary);
  border-top: 1px solid var(--hb-border-light);
  padding: var(--hb-spacing-4);
}

.hb-datatable-footer-row {
  background-color: var(--hb-bg-secondary);
}

.hb-datatable-footer-cell {
  background-color: var(--hb-bg-secondary);
  color: var(--hb-text-primary);
  font-weight: var(--hb-font-weight-semibold);
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  border-top: 1px solid var(--hb-border-light);
  text-align: left;
  vertical-align: middle;
}

/* DataTable loading states */
.hb-datatable-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(255, 255, 255, 0.8);
  z-index: var(--hb-z-index-fixed);
  display: flex;
  align-items: center;
  justify-content: center;
}

.hb-datatable-loading-icon {
  width: 32px;
  height: 32px;
  border: 3px solid var(--hb-border-light);
  border-top: 3px solid var(--hb-primary);
  border-radius: 50%;
  animation: hb-spin 1s linear infinite;
}

.hb-datatable-empty-message {
  padding: var(--hb-spacing-8);
  text-align: center;
  color: var(--hb-text-muted);
  font-style: italic;
}

/* =============================================================================
   COLUMN COMPONENT OVERRIDES
   ============================================================================= */

.hb-column {
  /* Column root styles */
}

.hb-column-header {
  background-color: var(--hb-bg-secondary);
  color: var(--hb-text-primary);
  font-weight: var(--hb-font-weight-semibold);
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  border-bottom: 1px solid var(--hb-border-light);
  text-align: left;
  vertical-align: middle;
}

.hb-column-header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hb-column-header-title {
  font-weight: var(--hb-font-weight-semibold);
  color: var(--hb-text-primary);
}

.hb-column-sort-icon {
  margin-left: var(--hb-spacing-2);
  color: var(--hb-text-secondary);
  transition: color var(--hb-transition-base);
}

.hb-column-sort-icon:hover {
  color: var(--hb-text-primary);
}

.hb-column-filter-overlay {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: var(--hb-z-index-dropdown);
  background-color: var(--hb-bg-primary);
  border: 1px solid var(--hb-border-light);
  border-radius: var(--hb-border-radius-md);
  box-shadow: var(--hb-shadow-lg);
  padding: var(--hb-spacing-4);
  min-width: 200px;
}

.hb-column-filter-input {
  width: 100%;
  padding: var(--hb-spacing-2) var(--hb-spacing-3);
  border: 1px solid var(--hb-border-medium);
  border-radius: var(--hb-border-radius-sm);
  font-size: var(--hb-font-size-sm);
}

.hb-column-filter-button {
  margin-top: var(--hb-spacing-2);
  padding: var(--hb-spacing-1) var(--hb-spacing-3);
  background-color: var(--hb-primary);
  color: var(--hb-text-inverse);
  border: none;
  border-radius: var(--hb-border-radius-sm);
  cursor: pointer;
  font-size: var(--hb-font-size-sm);
}

.hb-column-filter-clear-button {
  margin-top: var(--hb-spacing-2);
  margin-left: var(--hb-spacing-2);
  padding: var(--hb-spacing-1) var(--hb-spacing-3);
  background-color: var(--hb-bg-secondary);
  color: var(--hb-text-primary);
  border: 1px solid var(--hb-border-medium);
  border-radius: var(--hb-border-radius-sm);
  cursor: pointer;
  font-size: var(--hb-font-size-sm);
}

.hb-column-body {
  /* Column body styles */
}

.hb-column-body-cell {
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  border-bottom: 1px solid var(--hb-border-light);
  text-align: left;
  vertical-align: middle;
  color: var(--hb-text-primary);
}

/* =============================================================================
   BUTTON COMPONENT OVERRIDES
   ============================================================================= */

.hb-button {
  border: none;
  outline: none;
  cursor: pointer;
  font-family: var(--hb-font-family-primary);
  font-size: var(--hb-font-size-base);
  font-weight: var(--hb-font-weight-medium);
  line-height: 1;
  text-decoration: none;
  text-align: center;
  vertical-align: middle;
  user-select: none;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--hb-spacing-2);
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  min-height: 2.5rem;
  border-radius: var(--hb-border-radius-md);
  box-shadow: var(--hb-shadow-sm);
  transition: all var(--hb-transition-base);
  background-color: var(--hb-bg-primary);
  color: var(--hb-text-primary);
  border: 1px solid var(--hb-border-medium);
}

.hb-button:hover:not(:disabled) {
  background-color: var(--hb-bg-secondary);
  border-color: var(--hb-border-dark);
  box-shadow: var(--hb-shadow-base);
  transform: translateY(-1px);
}

.hb-button:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: var(--hb-shadow-sm);
}

.hb-button:focus-visible {
  outline: 2px solid var(--hb-border-focus);
  outline-offset: 2px;
}

.hb-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.hb-button-label {
  font-weight: var(--hb-font-weight-medium);
}

.hb-button-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.hb-button-loading-icon {
  animation: hb-spin 1s linear infinite;
}

/* Button variants */
.hb-button.hb-primary {
  background-color: var(--hb-primary);
  color: var(--hb-text-inverse);
  border-color: var(--hb-primary);
}

.hb-button.hb-primary:hover:not(:disabled) {
  background-color: var(--hb-primary-hover);
  border-color: var(--hb-primary-hover);
}

.hb-button.hb-secondary {
  background-color: var(--hb-bg-primary);
  color: var(--hb-text-primary);
  border-color: var(--hb-border-medium);
}

.hb-button.hb-success {
  background-color: var(--hb-success);
  color: var(--hb-text-inverse);
  border-color: var(--hb-success);
}

.hb-button.hb-warning {
  background-color: var(--hb-warning);
  color: var(--hb-text-inverse);
  border-color: var(--hb-warning);
}

.hb-button.hb-danger {
  background-color: var(--hb-danger);
  color: var(--hb-text-inverse);
  border-color: var(--hb-danger);
}

.hb-button.hb-info {
  background-color: var(--hb-info);
  color: var(--hb-text-inverse);
  border-color: var(--hb-info);
}

.hb-button.hb-text {
  background-color: transparent;
  color: var(--hb-text-primary);
  border-color: transparent;
  box-shadow: none;
}

.hb-button.hb-text:hover:not(:disabled) {
  background-color: var(--hb-bg-secondary);
  transform: none;
}

/* =============================================================================
   INPUT COMPONENT OVERRIDES
   ============================================================================= */

.hb-inputtext {
  border: none;
  outline: none;
  background: none;
  font-family: var(--hb-font-family-primary);
  font-size: var(--hb-font-size-base);
  font-weight: var(--hb-font-weight-normal);
  line-height: var(--hb-line-height-normal);
  color: var(--hb-text-primary);
  display: block;
  width: 100%;
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  min-height: 2.5rem;
  background-color: var(--hb-bg-primary);
  border: 1px solid var(--hb-border-medium);
  border-radius: var(--hb-border-radius-md);
  box-shadow: var(--hb-shadow-sm);
  transition: all var(--hb-transition-base);
}

.hb-inputtext::placeholder {
  color: var(--hb-text-muted);
  opacity: 1;
}

.hb-inputtext:hover:not(:disabled) {
  border-color: var(--hb-border-dark);
  box-shadow: var(--hb-shadow-base);
}

.hb-inputtext:focus {
  border-color: var(--hb-border-focus);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
  outline: none;
}

.hb-inputtext:disabled {
  background-color: var(--hb-bg-tertiary);
  color: var(--hb-text-disabled);
  cursor: not-allowed;
  opacity: 0.6;
}

.hb-inputtext:read-only {
  background-color: var(--hb-bg-secondary);
  color: var(--hb-text-secondary);
}

/* =============================================================================
   SELECT COMPONENT OVERRIDES
   ============================================================================= */

.hb-select {
  position: relative;
  display: block;
  width: 100%;
}

.hb-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  min-height: 2.5rem;
  background-color: var(--hb-bg-primary);
  border: 1px solid var(--hb-border-medium);
  border-radius: var(--hb-border-radius-md);
  font-family: var(--hb-font-family-primary);
  font-size: var(--hb-font-size-base);
  font-weight: var(--hb-font-weight-normal);
  line-height: var(--hb-line-height-normal);
  color: var(--hb-text-primary);
  cursor: pointer;
  transition: all var(--hb-transition-base);
  box-shadow: var(--hb-shadow-sm);
}

.hb-select-trigger::after {
  content: '';
  width: 0;
  height: 0;
  border-left: 0.25rem solid transparent;
  border-right: 0.25rem solid transparent;
  border-top: 0.25rem solid var(--hb-text-secondary);
  margin-left: var(--hb-spacing-2);
  transition: transform var(--hb-transition-base);
}

.hb-select-trigger:hover:not(:disabled) {
  background-color: var(--hb-bg-secondary);
  border-color: var(--hb-border-dark);
  box-shadow: var(--hb-shadow-base);
}

.hb-select-trigger:focus {
  border-color: var(--hb-border-focus);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
  outline: none;
}

.hb-select-trigger:disabled {
  background-color: var(--hb-bg-tertiary);
  color: var(--hb-text-disabled);
  cursor: not-allowed;
  opacity: 0.6;
}

.hb-select-trigger.hb-open {
  border-color: var(--hb-border-focus);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.hb-select-trigger.hb-open::after {
  transform: rotate(180deg);
}

.hb-select-label {
  color: var(--hb-text-primary);
}

.hb-select-panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: var(--hb-z-index-dropdown);
  background-color: var(--hb-bg-primary);
  border: 1px solid var(--hb-border-light);
  border-radius: var(--hb-border-radius-md);
  box-shadow: var(--hb-shadow-lg);
  max-height: 200px;
  overflow-y: auto;
  margin-top: var(--hb-spacing-1);
}

.hb-select-items-wrapper {
  padding: var(--hb-spacing-2) 0;
}

.hb-select-item {
  padding: var(--hb-spacing-2) var(--hb-spacing-4);
  cursor: pointer;
  transition: background-color var(--hb-transition-base);
  color: var(--hb-text-primary);
  font-family: var(--hb-font-family-primary);
  font-size: var(--hb-font-size-base);
}

.hb-select-item:hover {
  background-color: var(--hb-bg-secondary);
}

.hb-select-item.hb-selected {
  background-color: var(--hb-primary-50);
  color: var(--hb-primary);
  font-weight: var(--hb-font-weight-medium);
}

.hb-select-item.hb-disabled {
  color: var(--hb-text-disabled);
  cursor: not-allowed;
  background: none;
}

.hb-select-item.hb-disabled:hover {
  background: none;
}

.hb-select-item-label {
  color: inherit;
}

.hb-select-item-icon {
  margin-right: var(--hb-spacing-2);
}

.hb-select-item-group {
  /* Group styles */
}

.hb-select-item-group-label {
  padding: var(--hb-spacing-2) var(--hb-spacing-4);
  font-weight: var(--hb-font-weight-semibold);
  color: var(--hb-text-secondary);
  background-color: var(--hb-bg-secondary);
  border-bottom: 1px solid var(--hb-border-light);
}

.hb-select-header {
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  border-bottom: 1px solid var(--hb-border-light);
  background-color: var(--hb-bg-secondary);
}

.hb-select-filter-container {
  margin-bottom: var(--hb-spacing-2);
}

.hb-select-filter-input {
  width: 100%;
  padding: var(--hb-spacing-2) var(--hb-spacing-3);
  border: 1px solid var(--hb-border-medium);
  border-radius: var(--hb-border-radius-sm);
  font-size: var(--hb-font-size-sm);
}

.hb-select-filter-icon {
  position: absolute;
  right: var(--hb-spacing-3);
  top: 50%;
  transform: translateY(-50%);
  color: var(--hb-text-muted);
}

.hb-select-close-button {
  position: absolute;
  top: var(--hb-spacing-2);
  right: var(--hb-spacing-2);
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--hb-spacing-1);
  border-radius: var(--hb-border-radius-sm);
}

.hb-select-close-button:hover {
  background-color: var(--hb-bg-secondary);
}

.hb-select-close-icon {
  color: var(--hb-text-secondary);
  font-size: var(--hb-font-size-sm);
}

/* =============================================================================
   PAGINATOR COMPONENT OVERRIDES
   ============================================================================= */

.hb-paginator {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--hb-spacing-4) var(--hb-spacing-6);
  background-color: var(--hb-bg-secondary);
  border-top: 1px solid var(--hb-border-light);
  font-family: var(--hb-font-family-primary);
  font-size: var(--hb-font-size-sm);
  color: var(--hb-text-secondary);
}

.hb-paginator-first,
.hb-paginator-prev,
.hb-paginator-next,
.hb-paginator-last,
.hb-paginator-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: 0 var(--hb-spacing-1);
  border: 1px solid var(--hb-border-medium);
  border-radius: var(--hb-border-radius-md);
  background-color: var(--hb-bg-primary);
  color: var(--hb-text-primary);
  cursor: pointer;
  transition: all var(--hb-transition-base);
  font-size: var(--hb-font-size-sm);
}

.hb-paginator-first:hover:not(.hb-disabled),
.hb-paginator-prev:hover:not(.hb-disabled),
.hb-paginator-next:hover:not(.hb-disabled),
.hb-paginator-last:hover:not(.hb-disabled),
.hb-paginator-page:hover:not(.hb-disabled) {
  background-color: var(--hb-bg-secondary);
  border-color: var(--hb-border-dark);
}

.hb-paginator-first.hb-active,
.hb-paginator-prev.hb-active,
.hb-paginator-next.hb-active,
.hb-paginator-last.hb-active,
.hb-paginator-page.hb-active {
  background-color: var(--hb-primary);
  color: var(--hb-text-inverse);
  border-color: var(--hb-primary);
}

.hb-paginator-first.hb-disabled,
.hb-paginator-prev.hb-disabled,
.hb-paginator-next.hb-disabled,
.hb-paginator-last.hb-disabled,
.hb-paginator-page.hb-disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.hb-paginator-pages {
  display: flex;
  align-items: center;
  gap: var(--hb-spacing-1);
}

.hb-paginator-page-links {
  display: flex;
  align-items: center;
  gap: var(--hb-spacing-1);
}

.hb-paginator-rows-per-page-dropdown {
  margin-left: var(--hb-spacing-4);
}

.hb-paginator-current {
  margin-left: var(--hb-spacing-4);
  color: var(--hb-text-primary);
  font-weight: var(--hb-font-weight-medium);
}

.hb-paginator-rpp-options {
  /* Rows per page options styles */
}

.hb-paginator-rpp-option {
  /* Rows per page option styles */
}

.hb-paginator-start,
.hb-paginator-end,
.hb-paginator-total-records {
  color: var(--hb-text-secondary);
  font-size: var(--hb-font-size-sm);
}

.hb-paginator-jump-to-page-dropdown {
  margin-left: var(--hb-spacing-4);
}

.hb-paginator-jump-to-page-input {
  width: 3rem;
  padding: var(--hb-spacing-1) var(--hb-spacing-2);
  border: 1px solid var(--hb-border-medium);
  border-radius: var(--hb-border-radius-sm);
  text-align: center;
  font-size: var(--hb-font-size-sm);
}

/* =============================================================================
   MESSAGE COMPONENT OVERRIDES
   ============================================================================= */

.hb-message {
  padding: var(--hb-spacing-3) var(--hb-spacing-4);
  border-radius: var(--hb-border-radius-md);
  border: 1px solid;
  margin-bottom: var(--hb-spacing-4);
}

.hb-message-wrapper {
  display: flex;
  align-items: center;
  gap: var(--hb-spacing-3);
}

.hb-message-text {
  flex: 1;
  font-family: var(--hb-font-family-primary);
  font-size: var(--hb-font-size-base);
  line-height: var(--hb-line-height-normal);
}

.hb-message-icon {
  flex-shrink: 0;
  font-size: var(--hb-font-size-lg);
}

.hb-message-close-button {
  flex-shrink: 0;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--hb-spacing-1);
  border-radius: var(--hb-border-radius-sm);
  margin-left: var(--hb-spacing-2);
}

.hb-message-close-button:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

.hb-message-close-icon {
  font-size: var(--hb-font-size-sm);
  color: inherit;
}

.hb-message.hb-info {
  background-color: var(--hb-info-50);
  color: var(--hb-info-700);
  border-color: var(--hb-info-200);
}

.hb-message.hb-success {
  background-color: var(--hb-success-50);
  color: var(--hb-success-700);
  border-color: var(--hb-success-200);
}

.hb-message.hb-warning {
  background-color: var(--hb-warning-50);
  color: var(--hb-warning-700);
  border-color: var(--hb-warning-200);
}

.hb-message.hb-error {
  background-color: var(--hb-danger-50);
  color: var(--hb-danger-700);
  border-color: var(--hb-danger-200);
}

/* =============================================================================
   LOADING STATES
   ============================================================================= */

.hb-loading {
  position: relative;
}

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

.hb-loading::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 32px;
  height: 32px;
  border: 3px solid var(--hb-border-light);
  border-top: 3px solid var(--hb-primary);
  border-radius: 50%;
  animation: hb-spin 1s linear infinite;
  z-index: calc(var(--hb-z-index-fixed) + 1);
}

/* Loading animation */
@keyframes hb-spin {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}

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

/* Disabled state */
.hb-disabled {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

/* Hidden state */
.hb-hidden {
  display: none !important;
}

/* Invisible state */
.hb-invisible {
  visibility: hidden !important;
}

/* Focus visible */
.hb-focus-visible {
  outline: 2px solid var(--hb-border-focus);
  outline-offset: 2px;
}

