/* Theme Management System with CSS Variables */
:root {
  /* Light theme colors */
  --color-background: 255 255 255;
  --color-background-secondary: 249 250 251;
  --color-surface: 255 255 255;
  --color-surface-secondary: 243 244 246;
  --color-text-primary: 17 24 39;
  --color-text-secondary: 75 85 99;
  --color-text-tertiary: 107 114 128;
  --color-border: 229 231 235;
  --color-border-secondary: 209 213 219;
  --color-accent: 59 130 246;
  --color-accent-hover: 37 99 235;
  --color-success: 34 197 94;
  --color-warning: 245 158 11;
  --color-error: 239 68 68;
  --color-info: 59 130 246;
  --color-shadow: 0 0 0;
  --color-shadow-opacity: 0.1;
}

/* Dark theme colors */
[data-theme="dark"] {
  --color-background: 17 24 39;
  --color-background-secondary: 31 41 55;
  --color-surface: 31 41 55;
  --color-surface-secondary: 55 65 81;
  --color-text-primary: 243 244 246;
  --color-text-secondary: 156 163 175;
  --color-text-tertiary: 107 114 128;
  --color-border: 55 65 81;
  --color-border-secondary: 75 85 99;
  --color-accent: 96 165 250;
  --color-accent-hover: 147 197 253;
  --color-success: 34 197 94;
  --color-warning: 245 158 11;
  --color-error: 239 68 68;
  --color-info: 59 130 246;
  --color-shadow: 0 0 0;
  --color-shadow-opacity: 0.3;
}

/* System preference detection */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --color-background: 17 24 39;
    --color-background-secondary: 31 41 55;
    --color-surface: 31 41 55;
    --color-surface-secondary: 55 65 81;
    --color-text-primary: 243 244 246;
    --color-text-secondary: 156 163 175;
    --color-text-tertiary: 107 114 128;
    --color-border: 55 65 81;
    --color-border-secondary: 75 85 99;
    --color-accent: 96 165 250;
    --color-accent-hover: 147 197 253;
    --color-success: 34 197 94;
    --color-warning: 245 158 11;
    --color-error: 239 68 68;
    --color-info: 59 130 246;
    --color-shadow: 0 0 0;
    --color-shadow-opacity: 0.3;
  }
}

/* Theme transition utilities */
.theme-transition {
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* Dark mode toggle component */
.theme-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(var(--color-border));
  background: rgb(var(--color-surface));
  color: rgb(var(--color-text-secondary));
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}

.theme-toggle:hover {
  background: rgb(var(--color-surface-secondary));
  color: rgb(var(--color-text-primary));
  border-color: rgb(var(--color-border-secondary));
}

.theme-toggle:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--color-accent), 0.5);
}

.theme-toggle-icon {
  width: 1.25rem;
  height: 1.25rem;
  transition: transform 0.3s ease;
}

.theme-toggle[data-theme="dark"] .theme-toggle-icon {
  transform: rotate(180deg);
}

/* Theme-aware component styles */
.theme-aware-bg {
  background-color: rgb(var(--color-background));
}

.theme-aware-surface {
  background-color: rgb(var(--color-surface));
  border-color: rgb(var(--color-border));
}

.theme-aware-text {
  color: rgb(var(--color-text-primary));
}

.theme-aware-text-secondary {
  color: rgb(var(--color-text-secondary));
}

.theme-aware-border {
  border-color: rgb(var(--color-border));
}

/* Update existing components for theme support */
.toast-notification {
  background: rgb(var(--color-surface));
  border-color: rgb(var(--color-border));
  color: rgb(var(--color-text-primary));
}

.toast-title {
  color: rgb(var(--color-text-primary));
}

.toast-message {
  color: rgb(var(--color-text-secondary));
}

.notification-center {
  background: rgb(var(--color-surface));
  border-color: rgb(var(--color-border));
}

.notification-center-header {
  border-color: rgb(var(--color-border));
}

.notification-center-title {
  color: rgb(var(--color-text-primary));
}

.notification-center-item {
  border-color: rgb(var(--color-border));
}

.notification-center-item:hover {
  background: rgb(var(--color-surface-secondary));
}

.notification-center-title {
  color: rgb(var(--color-text-primary));
}

.notification-center-message {
  color: rgb(var(--color-text-secondary));
}

.notification-center-time {
  color: rgb(var(--color-text-tertiary));
}

/* Skeleton loader theme support */
.skeleton-card,
.skeleton-dashboard-widget,
.skeleton-profile {
  background: rgb(var(--color-surface));
  border-color: rgb(var(--color-border));
}

.skeleton-table-row {
  border-color: rgb(var(--color-border));
}
/* Skeleton Loader Styles */
.skeleton {
  background: rgb(243 244 246);
  border-radius: 0.25rem;
  position: relative;
  overflow: hidden;
}

.skeleton-circle {
  border-radius: 50%;
}

.skeleton-rectangle {
  border-radius: 0.25rem;
}

.skeleton-animated {
  background: linear-gradient(90deg, rgb(243 244 246) 25%, rgb(229 231 235) 50%, rgb(243 244 246) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite;
}

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

/* Card Skeleton */
.skeleton-card {
  background: white;
  border: 1px solid rgb(229 231 235);
  border-radius: 0.5rem;
  padding: 1.5rem;
}

.skeleton-card-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.skeleton-card-header-text {
  flex: 1;
}

.skeleton-card-content {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Table Row Skeleton */
.skeleton-table-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgb(243 244 246);
}

.skeleton-table-row:last-child {
  border-bottom: none;
}

/* Dashboard Widget Skeleton */
.skeleton-dashboard-widget {
  background: white;
  border: 1px solid rgb(229 231 235);
  border-radius: 0.5rem;
  padding: 1.5rem;
}

.skeleton-widget-header {
  margin-bottom: 1.5rem;
}

.skeleton-widget-chart {
  height: 120px;
}

.skeleton-widget-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.skeleton-list-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.skeleton-list-item-text {
  flex: 1;
}

.skeleton-widget-table {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.skeleton-widget-metric {
  text-align: center;
}

/* Profile Skeleton */
.skeleton-profile {
  background: white;
  border: 1px solid rgb(229 231 235);
  border-radius: 0.5rem;
  padding: 1.5rem;
}

.skeleton-profile-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

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

.skeleton-profile-bio {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Navigation Skeleton */
.skeleton-navigation {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.skeleton-nav-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0;
}

/* Text Skeleton */
.skeleton-text {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Responsive adjustments */
@media (max-width: 640px) {
  .skeleton-card {
    padding: 1rem;
  }

  .skeleton-dashboard-widget {
    padding: 1rem;
  }

  .skeleton-profile {
    padding: 1rem;
  }

  .skeleton-card-header,
  .skeleton-profile-header {
    flex-direction: column;
    text-align: center;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .skeleton-animated {
    animation: none;
    background: rgb(243 244 246);
  }
}

/* Dark mode support for skeletons */
@media (prefers-color-scheme: dark) {
  .skeleton {
    background: rgb(55 65 81);
  }

  .skeleton-animated {
    background: linear-gradient(90deg, rgb(55 65 81) 25%, rgb(75 85 99) 50%, rgb(55 65 81) 75%);
    background-size: 200% 100%;
  }

  .skeleton-card,
  .skeleton-dashboard-widget,
  .skeleton-profile {
    background: rgb(31 41 55);
    border-color: rgb(55 65 81);
  }

  .skeleton-table-row {
    border-color: rgb(55 65 81);
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .skeleton {
    background: rgb(255 255 255);
    border: 1px solid rgb(0 0 0);
  }

  .skeleton-animated {
    background: linear-gradient(90deg, rgb(255 255 255) 25%, rgb(0 0 0) 50%, rgb(255 255 255) 75%);
    background-size: 200% 100%;
  }
}
/* Toast Notification Styles */
.toast-container {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.toast-top-left {
  top: 1rem;
  left: 1rem;
  align-items: flex-start;
}

.toast-top-right {
  top: 1rem;
  right: 1rem;
  align-items: flex-end;
}

.toast-bottom-left {
  bottom: 1rem;
  left: 1rem;
  align-items: flex-start;
}

.toast-bottom-right {
  bottom: 1rem;
  right: 1rem;
  align-items: flex-end;
}

.toast-top-center {
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  align-items: center;
}

.toast-bottom-center {
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  align-items: center;
}

.toast-notification {
  min-width: 320px;
  max-width: 480px;
  background: white;
  border-radius: 0.5rem;
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  border: 1px solid rgb(229 231 235);
  opacity: 0;
  transform: translateY(-100%);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: auto;
}

.toast-notification.toast-visible {
  opacity: 1;
  transform: translateY(0);
}

.toast-notification.toast-dismissing {
  opacity: 0;
  transform: translateY(-100%);
}

.toast-notification.toast-success {
  border-color: rgb(34 197 94);
  background: rgb(240 253 244);
}

.toast-notification.toast-error {
  border-color: rgb(239 68 68);
  background: rgb(254 242 242);
}

.toast-notification.toast-warning {
  border-color: rgb(245 158 11);
  background: rgb(255 251 235);
}

.toast-notification.toast-info {
  border-color: rgb(59 130 246);
  background: rgb(239 246 255);
}

.toast-notification.toast-loading {
  border-color: rgb(107 114 128);
  background: rgb(249 250 251);
}

.toast-content {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
}

.toast-icon {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.125rem;
}

.toast-text {
  flex: 1;
  min-width: 0;
}

.toast-title {
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgb(17 24 39);
  margin-bottom: 0.25rem;
}

.toast-message {
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgb(75 85 99);
}

.toast-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}

.toast-action-btn,
.toast-undo-btn {
  padding: 0.25rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 0.375rem;
  border: 1px solid;
  cursor: pointer;
  transition: all 0.15s ease;
}

.toast-action-btn {
  background: rgb(59 130 246);
  color: white;
  border-color: rgb(59 130 246);
}

.toast-action-btn:hover {
  background: rgb(37 99 235);
  border-color: rgb(37 99 235);
}

.toast-undo-btn {
  background: rgb(156 163 175);
  color: rgb(17 24 39);
  border-color: rgb(156 163 175);
}

.toast-undo-btn:hover {
  background: rgb(107 114 128);
  border-color: rgb(107 114 128);
}

.toast-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 0.25rem;
  color: rgb(107 114 128);
  cursor: pointer;
  transition: all 0.15s ease;
  border: none;
  background: transparent;
}

.toast-close-btn:hover {
  background: rgb(243 244 246);
  color: rgb(75 85 99);
}

.toast-progress {
  height: 3px;
  background: rgb(229 231 235);
  border-radius: 0 0 0.5rem 0.5rem;
  overflow: hidden;
}

.toast-progress-bar {
  height: 100%;
  background: rgb(59 130 246);
  width: 100%;
  border-radius: inherit;
  transition: width linear;
}

/* Notification Center Styles */
.notification-center {
  position: fixed;
  top: 1rem;
  right: 1rem;
  width: 380px;
  max-height: 600px;
  background: white;
  border-radius: 0.5rem;
  box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  border: 1px solid rgb(229 231 235);
  z-index: 9998;
  overflow: hidden;
}

.notification-center-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid rgb(229 231 235);
}

.notification-center-title {
  font-weight: 600;
  font-size: 1rem;
  color: rgb(17 24 39);
}

.notification-center-clear {
  font-size: 0.875rem;
  color: rgb(107 114 128);
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  transition: color 0.15s ease;
  border: none;
  background: transparent;
}

.notification-center-clear:hover {
  color: rgb(75 85 99);
}

.notification-center-list {
  max-height: 500px;
  overflow-y: auto;
}

.notification-center-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  border-bottom: 1px solid rgb(243 244 246);
  transition: background-color 0.15s ease;
}

.notification-center-item:hover {
  background: rgb(249 250 251);
}

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

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

.notification-center-title {
  font-weight: 500;
  font-size: 0.875rem;
  color: rgb(17 24 39);
  margin-bottom: 0.25rem;
}

.notification-center-message {
  font-size: 0.875rem;
  color: rgb(75 85 99);
  margin-bottom: 0.5rem;
}

.notification-center-time {
  font-size: 0.75rem;
  color: rgb(107 114 128);
}

.notification-center-action {
  padding: 0.25rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  background: rgb(59 130 246);
  color: white;
  border: 1px solid rgb(59 130 246);
  border-radius: 0.25rem;
  cursor: pointer;
  transition: all 0.15s ease;
}

.notification-center-action:hover {
  background: rgb(37 99 235);
  border-color: rgb(37 99 235);
}

.notification-center-dismiss {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 0.25rem;
  color: rgb(107 114 128);
  cursor: pointer;
  transition: all 0.15s ease;
  border: none;
  background: transparent;
}

.notification-center-dismiss:hover {
  background: rgb(243 244 246);
  color: rgb(75 85 99);
}

/* Responsive adjustments */
@media (max-width: 640px) {
  .toast-container {
    left: 1rem;
    right: 1rem;
    top: 1rem;
  }

  .toast-notification {
    min-width: auto;
    max-width: none;
  }

  .notification-center {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-height: none;
    border-radius: 0;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .toast-notification {
    transition: none;
  }

  .toast-notification.toast-visible {
    opacity: 1;
    transform: none;
  }

  .toast-notification.toast-dismissing {
    opacity: 0;
    transform: none;
  }

  .toast-progress-bar {
    transition: none;
  }
}
/* Enhanced Animation System */
@keyframes fade-in-up {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in-down {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in-left {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fade-in-right {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fade-in-scale {
  0% {
    opacity: 0;
    transform: scale(0.95);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes slide-in-up {
  0% {
    opacity: 0;
    transform: translateY(var(--slide-distance, 20px));
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slide-in-down {
  0% {
    opacity: 0;
    transform: translateY(calc(-1 * var(--slide-distance, 20px)));
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slide-in-left {
  0% {
    opacity: 0;
    transform: translateX(calc(-1 * var(--slide-distance, 20px)));
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slide-in-right {
  0% {
    opacity: 0;
    transform: translateX(var(--slide-distance, 20px));
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes bounce-gentle {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-5px);
  }
  60% {
    transform: translateY(-3px);
  }
}

@keyframes bounce-medium {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}

@keyframes bounce-strong {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-15px);
  }
  60% {
    transform: translateY(-8px);
  }
}

@keyframes pulse-subtle {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}

@keyframes pulse-normal {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

@keyframes pulse-strong {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@keyframes shimmer-slow {
  0% {
    background-position: -200px 0;
  }
  100% {
    background-position: calc(200px + 100%) 0;
  }
}

@keyframes shimmer-normal {
  0% {
    background-position: -200px 0;
  }
  100% {
    background-position: calc(200px + 100%) 0;
  }
}

@keyframes shimmer-fast {
  0% {
    background-position: -200px 0;
  }
  100% {
    background-position: calc(200px + 100%) 0;
  }
}

@keyframes morph-circle-to-square {
  0% {
    border-radius: 50%;
  }
  100% {
    border-radius: 0;
  }
}

@keyframes morph-square-to-circle {
  0% {
    border-radius: 0;
  }
  100% {
    border-radius: 50%;
  }
}

@keyframes morph-circle-to-rectangle {
  0% {
    border-radius: 50%;
  }
  50% {
    border-radius: 25%;
  }
  100% {
    border-radius: 0;
  }
}

@keyframes morph-rectangle-to-circle {
  0% {
    border-radius: 0;
  }
  50% {
    border-radius: 25%;
  }
  100% {
    border-radius: 50%;
  }
}

/* Animation Classes */
.animate-fade-in {
  animation-fill-mode: both;
}

.fade-in-up {
  animation-name: fade-in-up;
}

.fade-in-down {
  animation-name: fade-in-down;
}

.fade-in-left {
  animation-name: fade-in-left;
}

.fade-in-right {
  animation-name: fade-in-right;
}

.fade-in-scale {
  animation-name: fade-in-scale;
}

.animate-slide-in-up {
  animation-name: slide-in-up;
  animation-fill-mode: both;
}

.animate-slide-in-down {
  animation-name: slide-in-down;
  animation-fill-mode: both;
}

.animate-slide-in-left {
  animation-name: slide-in-left;
  animation-fill-mode: both;
}

.animate-slide-in-right {
  animation-name: slide-in-right;
  animation-fill-mode: both;
}

.animate-bounce-gentle {
  animation-name: bounce-gentle;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}

.animate-bounce-medium {
  animation-name: bounce-medium;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}

.animate-bounce-strong {
  animation-name: bounce-strong;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}

.pulse-subtle {
  animation-name: pulse-subtle;
  animation-duration: 2s;
  animation-iteration-count: infinite;
}

.pulse-normal {
  animation-name: pulse-normal;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
}

.pulse-strong {
  animation-name: pulse-strong;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}

.shimmer {
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.4),
    transparent
  );
  background-size: 200px 100%;
  background-repeat: no-repeat;
}

.shimmer-slow {
  animation: shimmer-slow 2s infinite;
}

.shimmer-normal {
  animation: shimmer-normal 1.5s infinite;
}

.shimmer-fast {
  animation: shimmer-fast 1s infinite;
}

.morph-circle-to-square {
  animation-name: morph-circle-to-square;
  animation-fill-mode: both;
}

.morph-square-to-circle {
  animation-name: morph-square-to-circle;
  animation-fill-mode: both;
}

.morph-circle-to-rectangle {
  animation-name: morph-circle-to-rectangle;
  animation-fill-mode: both;
}

.morph-rectangle-to-circle {
  animation-name: morph-rectangle-to-circle;
  animation-fill-mode: both;
}

/* Enhanced Transitions */
.transition-smooth {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.transition-bounce {
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.transition-spring {
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Micro-interactions */
.hover-lift {
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}

.hover-lift:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.hover-glow {
  transition: box-shadow 0.2s ease-out;
}

.hover-glow:hover {
  box-shadow: 0 0 20px rgba(59, 130, 246, 0.3);
}

.hover-scale {
  transition: transform 0.2s ease-out;
}

.hover-scale:hover {
  transform: scale(1.02);
}

.active-press {
  transition: transform 0.1s ease-out;
}

.active-press:active {
  transform: scale(0.98);
}

/* Focus states for accessibility */
.focus-ring-enhanced:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
  border-radius: 0.375rem;
}

/* Loading states */
.loading-skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: loading-shimmer 1.5s infinite;
}

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

/* Stagger animation support */
.stagger-item {
  opacity: 0;
  animation-fill-mode: both;
}

.stagger-item.animate-in {
  opacity: 1;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .animate-fade-in,
  .animate-slide-in-up,
  .animate-slide-in-down,
  .animate-slide-in-left,
  .animate-slide-in-right,
  .animate-bounce-gentle,
  .animate-bounce-medium,
  .animate-bounce-strong,
  .pulse-subtle,
  .pulse-normal,
  .pulse-strong,
  .shimmer,
  .morph-animation,
  .transition-smooth,
  .transition-bounce,
  .transition-spring,
  .hover-lift,
  .hover-glow,
  .hover-scale,
  .active-press {
    animation: none !important;
    transition: none !important;
  }

  .stagger-item {
    opacity: 1 !important;
  }
}
/*! tailwindcss v3.4.0 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#6b7280;border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=checkbox]:indeterminate,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.left-0{left:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.-m-2{margin:-.5rem}.-m-2\.5{margin:-.625rem}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-16{margin-left:4rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.mr-1{margin-right:.25rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-3{height:.75rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[85vh\]{height:85vh}.h-full{height:100%}.h-screen{height:100vh}.max-h-48{max-height:12rem}.max-h-\[900px\]{max-height:900px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-1{--tw-translate-x:0.25rem}.translate-x-1,.translate-x-7{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-7{--tw-translate-x:1.75rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-indigo-600{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity))}.bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:#eff6ff var(--tw-gradient-from-position);--tw-gradient-to:#eff6ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from:#4f46e5 var(--tw-gradient-from-position);--tw-gradient-to:#4f46e500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.p-0{padding:0}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pt-0{padding-top:0}.pt-20{padding-top:5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity))}.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity))}.text-indigo-100{--tw-text-opacity:1;color:rgb(224 231 255/var(--tw-text-opacity))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity))}.text-indigo-800{--tw-text-opacity:1;color:rgb(55 48 163/var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity))}.text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity))}.text-pink-800{--tw-text-opacity:1;color:rgb(157 23 77/var(--tw-text-opacity))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-teal-800{--tw-text-opacity:1;color:rgb(17 94 89/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.phx-no-feedback .invalid-feedback,.phx-no-feedback.invalid-feedback{display:none}.phx-click-loading{opacity:.5;transition:opacity 1s ease-out}.phx-loading{cursor:wait}.phx-modal{background-color:#000;background-color:#0006;height:100%;left:0;opacity:1!important;overflow:auto;position:fixed;top:0;width:100%;z-index:1}.phx-modal-content{background-color:#fefefe;border:1px solid #888;margin:15vh auto;padding:20px;width:80%}.phx-modal-close{color:#aaa;float:right;font-size:28px;font-weight:700}.phx-modal-close:focus,.phx-modal-close:hover{color:#000;cursor:pointer;text-decoration:none}.fade-in-scale{animation:fade-in-scale-keys .2s ease-in 0s 1 normal forwards}.fade-out-scale{animation:fade-out-scale-keys .2s ease-out 0s 1 normal forwards}.fade-in{animation:fade-in-keys .2s ease-out 0s 1 normal forwards}.fade-out{animation:fade-out-keys .2s ease-out 0s 1 normal forwards}@keyframes fade-in-scale-keys{0%{opacity:0;scale:.95}to{opacity:1;scale:1}}@keyframes fade-out-scale-keys{0%{opacity:1;scale:1}to{opacity:0;scale:.95}}@keyframes fade-in-keys{0%{opacity:0}to{opacity:1}}@keyframes fade-out-keys{0%{opacity:1}to{opacity:0}}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:bg-opacity-20:hover{--tw-bg-opacity:0.2}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:text-indigo-900:hover{--tw-text-opacity:1;color:rgb(49 46 129/var(--tw-text-opacity))}.hover\:text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.focus\:border-blue-400:focus{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity))}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.focus\:border-red-400:focus{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.focus\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity))}.focus\:ring-white:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:my-8{margin-bottom:2rem;margin-top:2rem}.sm\:ml-3{margin-left:.75rem}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:h-screen{height:100vh}.sm\:w-full{width:100%}.sm\:max-w-7xl{max-width:80rem}.sm\:max-w-md{max-width:28rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:justify-center{justify-content:center}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.sm\:divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity))}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:rounded-lg{border-radius:.5rem}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-20{padding-bottom:5rem;padding-top:5rem}.sm\:py-5{padding-bottom:1.25rem;padding-top:1.25rem}.sm\:pb-20{padding-bottom:5rem}.sm\:pt-24{padding-top:6rem}.sm\:align-middle{vertical-align:middle}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}}@media (min-width:768px){.md\:ml-4{margin-left:1rem}.md\:mt-0{margin-top:0}.md\:mt-5{margin-top:1.25rem}.md\:mt-8{margin-top:2rem}.md\:flex{display:flex}.md\:grid{display:grid}.md\:max-w-3xl{max-width:48rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.md\:gap-y-10{row-gap:2.5rem}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:py-4{padding-bottom:1rem;padding-top:1rem}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:hidden{display:none}.lg\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:p-8{padding:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pl-64{padding-left:16rem}.lg\:text-center{text-align:center}}
/* Command Palette Styles */
.command-palette {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 2rem 1rem;
}

.command-palette-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.command-palette-container {
  width: 100%;
  max-width: 600px;
  background: rgb(var(--color-surface));
  border-radius: 0.75rem;
  box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  border: 1px solid rgb(var(--color-border));
  overflow: hidden;
  animation: command-palette-enter 0.2s ease-out;
}

@keyframes command-palette-enter {
  0% {
    opacity: 0;
    transform: scale(0.95) translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.command-palette-input-container {
  padding: 1rem;
  border-bottom: 1px solid rgb(var(--color-border));
}

.command-palette-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: none;
  background: transparent;
  color: rgb(var(--color-text-primary));
  font-size: 1rem;
  outline: none;
}

.command-palette-input::placeholder {
  color: rgb(var(--color-text-tertiary));
}

.command-palette-results {
  max-height: 400px;
  overflow-y: auto;
}

.command-palette-result {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  cursor: pointer;
  transition: background-color 0.15s ease;
  border-bottom: 1px solid rgb(var(--color-border-secondary));
}

.command-palette-result:last-child {
  border-bottom: none;
}

.command-palette-result:hover,
.command-palette-result.active {
  background: rgb(var(--color-surface-secondary));
}

.command-palette-result-icon {
  width: 1.25rem;
  height: 1.25rem;
  color: rgb(var(--color-text-secondary));
  flex-shrink: 0;
}

.command-palette-result-content {
  flex: 1;
  min-width: 0;
}

.command-palette-result-title {
  font-weight: 500;
  color: rgb(var(--color-text-primary));
  font-size: 0.875rem;
}

.command-palette-result-description {
  color: rgb(var(--color-text-secondary));
  font-size: 0.75rem;
  margin-top: 0.125rem;
}

.command-palette-result-shortcut {
  font-size: 0.75rem;
  color: rgb(var(--color-text-tertiary));
  font-family: monospace;
  background: rgb(var(--color-surface-secondary));
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  border: 1px solid rgb(var(--color-border));
}

.command-palette-empty {
  padding: 2rem 1rem;
  text-align: center;
  color: rgb(var(--color-text-secondary));
}

.command-palette-empty-title {
  font-weight: 500;
  margin-bottom: 0.5rem;
}

.command-palette-empty-description {
  font-size: 0.875rem;
}

/* Virtualization Styles */
.virtualized-list {
  position: relative;
  overflow: auto;
}

.virtualized-item {
  position: absolute;
  left: 0;
  right: 0;
  transition: transform 0.2s ease;
}

.virtualized-item.moving {
  transition: none;
}

/* Accessibility Enhancements */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.focus-visible {
  outline: 2px solid rgb(var(--color-accent));
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: rgb(var(--color-accent));
  color: white;
  padding: 8px;
  text-decoration: none;
  border-radius: 4px;
  z-index: 1000;
  transition: top 0.3s;
}

.skip-link:focus {
  top: 6px;
}

/* Micro-interactions */
.interactive-element {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
}

.interactive-element:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.interactive-element:active {
  transform: translateY(0);
  transition-duration: 0.1s;
}

/* Smart Error Messages */
.error-message {
  background: rgb(254 242 242);
  border: 1px solid rgb(239 68 68);
  border-radius: 0.5rem;
  padding: 1rem;
  margin: 1rem 0;
}

.error-message-title {
  font-weight: 600;
  color: rgb(185 28 28);
  margin-bottom: 0.5rem;
}

.error-message-content {
  color: rgb(153 27 27);
  margin-bottom: 1rem;
}

.error-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.error-action {
  padding: 0.5rem 1rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s ease;
  border: 1px solid;
}

.error-action-primary {
  background: rgb(239 68 68);
  color: white;
  border-color: rgb(239 68 68);
}

.error-action-primary:hover {
  background: rgb(220 38 38);
  border-color: rgb(220 38 38);
}

.error-action-secondary {
  background: rgb(243 244 246);
  color: rgb(31 41 55);
  border-color: rgb(209 213 219);
}

.error-action-secondary:hover {
  background: rgb(229 231 235);
  border-color: rgb(156 163 175);
}

/* Real-time Status Updates */
.status-indicator {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 500;
}

.status-indicator.idle {
  background: rgb(243 244 246);
  color: rgb(75 85 99);
}

.status-indicator.processing {
  background: rgb(239 246 255);
  color: rgb(59 130 246);
  animation: status-pulse 2s infinite;
}

.status-indicator.success {
  background: rgb(240 253 244);
  color: rgb(34 197 94);
}

.status-indicator.error {
  background: rgb(254 242 242);
  color: rgb(239 68 68);
}

@keyframes status-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

.status-indicator-icon {
  width: 0.75rem;
  height: 0.75rem;
}

.status-indicator.processing .status-indicator-icon {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Customizable Dashboard Widgets */
.dashboard-widget {
  background: rgb(var(--color-surface));
  border: 1px solid rgb(var(--color-border));
  border-radius: 0.5rem;
  padding: 1.5rem;
  transition: all 0.2s ease;
}

.dashboard-widget:hover {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.dashboard-widget-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.dashboard-widget-title {
  font-weight: 600;
  color: rgb(var(--color-text-primary));
}

.dashboard-widget-actions {
  display: flex;
  gap: 0.5rem;
}

.dashboard-widget-action {
  padding: 0.25rem;
  border-radius: 0.25rem;
  color: rgb(var(--color-text-secondary));
  cursor: pointer;
  transition: all 0.15s ease;
  border: none;
  background: transparent;
}

.dashboard-widget-action:hover {
  background: rgb(var(--color-surface-secondary));
  color: rgb(var(--color-text-primary));
}

.dashboard-widget-content {
  min-height: 120px;
}

.dashboard-widget-footer {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgb(var(--color-border));
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.dashboard-widget-resize-handle {
  width: 1rem;
  height: 1rem;
  cursor: nw-resize;
  position: absolute;
  bottom: 0;
  right: 0;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.dashboard-widget:hover .dashboard-widget-resize-handle {
  opacity: 1;
}

/* Data Visualization Enhancements */
.chart-tooltip {
  background: rgb(var(--color-surface));
  border: 1px solid rgb(var(--color-border));
  border-radius: 0.375rem;
  padding: 0.75rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  font-size: 0.875rem;
  pointer-events: none;
  z-index: 1000;
}

.chart-tooltip-title {
  font-weight: 600;
  color: rgb(var(--color-text-primary));
  margin-bottom: 0.5rem;
}

.chart-tooltip-content {
  color: rgb(var(--color-text-secondary));
}

.progress-indicator {
  position: relative;
  width: 100%;
  height: 0.5rem;
  background: rgb(var(--color-surface-secondary));
  border-radius: 9999px;
  overflow: hidden;
}

.progress-indicator-bar {
  height: 100%;
  background: rgb(var(--color-accent));
  border-radius: inherit;
  transition: width 0.3s ease;
}

.progress-indicator-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 0.75rem;
  font-weight: 500;
  color: rgb(var(--color-text-primary));
}

/* Offline Indicators */
.offline-indicator {
  position: fixed;
  top: 1rem;
  right: 1rem;
  background: rgb(239 68 68);
  color: white;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  animation: slide-in-right 0.3s ease;
}

.offline-indicator-icon {
  width: 1rem;
  height: 1rem;
}

.offline-indicator-message {
  font-weight: 500;
}

.offline-indicator-retry {
  padding: 0.25rem 0.5rem;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.offline-indicator-retry:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* Image Lazy Loading */
.lazy-image {
  opacity: 0;
  transition: opacity 0.3s ease;
  background: rgb(var(--color-surface-secondary));
}

.lazy-image.loaded {
  opacity: 1;
}

.lazy-image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgb(var(--color-surface-secondary));
  color: rgb(var(--color-text-tertiary));
  font-size: 0.875rem;
}

/* Focus Management */
.focus-trap {
  outline: none;
}

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.modal-content {
  background: rgb(var(--color-surface));
  border-radius: 0.5rem;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
  border: 1px solid rgb(var(--color-border));
  max-width: 90vw;
  max-height: 90vh;
  overflow: auto;
  animation: modal-enter 0.2s ease-out;
}

@keyframes modal-enter {
  0% {
    opacity: 0;
    transform: scale(0.95);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

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

.modal-title {
  font-weight: 600;
  font-size: 1.125rem;
  color: rgb(var(--color-text-primary));
}

.modal-close {
  padding: 0.5rem;
  border-radius: 0.375rem;
  color: rgb(var(--color-text-secondary));
  cursor: pointer;
  transition: all 0.15s ease;
  border: none;
  background: transparent;
}

.modal-close:hover {
  background: rgb(var(--color-surface-secondary));
  color: rgb(var(--color-text-primary));
}

.modal-body {
  padding: 1.5rem;
}

.modal-footer {
  padding: 1.5rem;
  border-top: 1px solid rgb(var(--color-border));
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
}

/* Smart Caching */
.cache-indicator {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: rgb(34 197 94);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.cache-indicator.cached {
  opacity: 1;
}

/* Export Functionality */
.export-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: rgb(var(--color-accent));
  color: white;
  border: 1px solid rgb(var(--color-accent));
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s ease;
}

.export-button:hover {
  background: rgb(var(--color-accent-hover));
  border-color: rgb(var(--color-accent-hover));
}

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

.export-button-icon {
  width: 1rem;
  height: 1rem;
}

.export-menu {
  position: absolute;
  background: rgb(var(--color-surface));
  border: 1px solid rgb(var(--color-border));
  border-radius: 0.375rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  padding: 0.5rem;
  z-index: 1000;
  min-width: 160px;
}

.export-menu-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: background-color 0.15s ease;
  font-size: 0.875rem;
  color: rgb(var(--color-text-primary));
}

.export-menu-item:hover {
  background: rgb(var(--color-surface-secondary));
}

.export-menu-item-icon {
  width: 1rem;
  height: 1rem;
  color: rgb(var(--color-text-secondary));
}

/* Responsive Design Enhancements */
@media (max-width: 640px) {
  .command-palette-container {
    margin: 1rem;
    max-width: none;
  }

  .command-palette-results {
    max-height: 300px;
  }

  .dashboard-widget {
    padding: 1rem;
  }

  .modal-content {
    margin: 1rem;
    max-width: none;
    max-height: none;
  }

  .export-menu {
    position: static;
    box-shadow: none;
    border: none;
    padding: 0;
  }
}

/* High Contrast Mode */
@media (prefers-contrast: high) {
  .interactive-element {
    border: 2px solid rgb(var(--color-text-primary));
  }

  .error-message {
    border-width: 2px;
  }

  .status-indicator {
    border: 1px solid rgb(var(--color-text-primary));
  }
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
  .command-palette-container,
  .modal-content,
  .offline-indicator,
  .interactive-element,
  .lazy-image,
  .progress-indicator-bar,
  .status-indicator.processing .status-indicator-icon {
    animation: none !important;
    transition: none !important;
  }
}

/* Print Styles */
@media print {
  .command-palette,
  .modal-overlay,
  .offline-indicator,
  .theme-toggle,
  .export-button {
    display: none !important;
  }

  .dashboard-widget {
    break-inside: avoid;
    box-shadow: none;
    border: 1px solid #000;
  }
}