@keyframes modal-fade-in {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes modal-fade-out {
  from { opacity: 1; transform: scale(1); }
  to { opacity: 0; transform: scale(0.95); }
}

.modal-enter {
  animation: modal-fade-in 0.3s ease-out forwards;
}

.modal-leave {
  animation: modal-fade-out 0.2s ease-in forwards;
}

@keyframes notification-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.7); }
  50% { box-shadow: 0 0 0 8px rgba(139, 92, 246, 0); }
}

.notification-pulse {
  animation: notification-pulse 2s ease-in-out 3;
}

html {
  color-scheme: light;
}

html.dark {
  color-scheme: dark;
}

.dark body {
  background-color: rgb(2 6 23);
  color: rgb(226 232 240);
}

.dark .theme-switch {
  background-color: rgb(15 23 42);
  border-color: rgb(51 65 85);
}

.dark .theme-switch__thumb {
  background-color: rgb(124 58 237);
  transform: translateX(34px);
}

.dark .theme-switch__sun {
  color: rgb(148 163 184);
}

.dark .theme-switch__moon {
  color: white;
}

.dark .bg-white { background-color: rgb(15 23 42); }
.dark .bg-gray-50 { background-color: rgb(15 23 42); }
.dark .bg-gray-100 { background-color: rgb(2 6 23); }
.dark .bg-slate-50 { background-color: rgb(30 41 59 / 0.70); }
.dark .bg-slate-50\/40 { background-color: rgb(30 41 59 / 0.40); }
.dark .bg-slate-50\/60 { background-color: rgb(30 41 59 / 0.60); }
.dark .bg-slate-100 { background-color: rgb(30 41 59); }
.dark .bg-slate-200 { background-color: rgb(51 65 85); }
.dark .bg-violet-50 { background-color: rgb(46 16 101 / 0.40); }
.dark .bg-violet-50\/40 { background-color: rgb(46 16 101 / 0.30); }
.dark .bg-violet-50\/50 { background-color: rgb(46 16 101 / 0.35); }
.dark .bg-violet-100 { background-color: rgb(76 29 149 / 0.45); }
.dark .bg-blue-50\/60, .dark .bg-blue-100 { background-color: rgb(8 47 73 / 0.40); }
.dark .bg-emerald-50, .dark .bg-green-50 { background-color: rgb(2 44 34 / 0.40); }
.dark .bg-emerald-50\/60 { background-color: rgb(2 44 34 / 0.35); }
.dark .bg-emerald-50\/70 { background-color: rgb(2 44 34 / 0.45); }
.dark .bg-emerald-100, .dark .bg-green-100 { background-color: rgb(6 78 59 / 0.45); }
.dark .bg-red-50 { background-color: rgb(69 10 10 / 0.40); }
.dark .bg-red-50\/60 { background-color: rgb(69 10 10 / 0.35); }
.dark .bg-red-50\/70 { background-color: rgb(69 10 10 / 0.45); }
.dark .bg-red-100 { background-color: rgb(127 29 29 / 0.45); }
.dark .bg-amber-50, .dark .bg-yellow-50 { background-color: rgb(69 26 3 / 0.40); }
.dark .bg-amber-50\/70 { background-color: rgb(69 26 3 / 0.45); }
.dark .bg-amber-100, .dark .bg-yellow-100 { background-color: rgb(120 53 15 / 0.45); }
.dark .bg-orange-50 { background-color: rgb(67 20 7 / 0.40); }
.dark .bg-orange-100 { background-color: rgb(124 45 18 / 0.45); }
.dark .bg-sky-50 { background-color: rgb(8 47 73 / 0.40); }
.dark .bg-sky-100 { background-color: rgb(12 74 110 / 0.45); }
.dark .bg-cyan-50 { background-color: rgb(8 51 68 / 0.40); }

.dark .text-gray-400 { color: rgb(148 163 184); }
.dark .text-gray-500 { color: rgb(148 163 184); }
.dark .text-gray-600 { color: rgb(203 213 225); }
.dark .text-gray-700 { color: rgb(226 232 240); }
.dark .text-gray-800 { color: rgb(241 245 249); }
.dark .text-gray-900 { color: rgb(248 250 252); }
.dark .text-slate-400 { color: rgb(148 163 184); }
.dark .text-slate-500 { color: rgb(148 163 184); }
.dark .text-slate-600 { color: rgb(203 213 225); }
.dark .text-slate-700 { color: rgb(226 232 240); }
.dark .text-slate-800 { color: rgb(241 245 249); }
.dark .text-slate-900 { color: rgb(248 250 252); }
.dark .text-violet-500, .dark .text-violet-600 { color: rgb(167 139 250); }
.dark .text-violet-700 { color: rgb(196 181 253); }
.dark .text-violet-800 { color: rgb(221 214 254); }
.dark .text-emerald-600, .dark .text-emerald-700, .dark .text-green-600, .dark .text-green-700 { color: rgb(110 231 183); }
.dark .text-emerald-800, .dark .text-emerald-900, .dark .text-green-800, .dark .text-green-900 { color: rgb(167 243 208); }
.dark .text-red-400, .dark .text-red-500, .dark .text-red-600, .dark .text-red-700 { color: rgb(252 165 165); }
.dark .text-red-800, .dark .text-red-900 { color: rgb(254 202 202); }
.dark .text-amber-500, .dark .text-amber-600, .dark .text-amber-700, .dark .text-yellow-500, .dark .text-yellow-600, .dark .text-yellow-700 { color: rgb(252 211 77); }
.dark .text-amber-800, .dark .text-amber-900, .dark .text-yellow-800, .dark .text-yellow-900 { color: rgb(253 230 138); }
.dark .text-orange-400, .dark .text-orange-500, .dark .text-orange-600, .dark .text-orange-700 { color: rgb(253 186 116); }
.dark .text-orange-800 { color: rgb(254 215 170); }
.dark .text-sky-500, .dark .text-sky-600, .dark .text-sky-700, .dark .text-cyan-700, .dark .text-blue-700 { color: rgb(125 211 252); }
.dark .text-sky-800, .dark .text-cyan-800, .dark .text-blue-800, .dark .text-blue-900 { color: rgb(186 230 253); }

.dark .border-gray-100, .dark .border-slate-100 { border-color: rgb(30 41 59); }
.dark .border-gray-200, .dark .border-slate-200, .dark .border-slate-300 { border-color: rgb(51 65 85); }
.dark .border-gray-300 { border-color: rgb(71 85 105); }
.dark .border-violet-100 { border-color: rgb(76 29 149 / 0.40); }
.dark .border-violet-200 { border-color: rgb(91 33 182 / 0.50); }
.dark .border-blue-100 { border-color: rgb(12 74 110 / 0.50); }
.dark .border-emerald-100, .dark .border-emerald-200, .dark .border-green-100, .dark .border-green-200 { border-color: rgb(6 78 59 / 0.50); }
.dark .border-red-100, .dark .border-red-200 { border-color: rgb(127 29 29 / 0.50); }
.dark .border-amber-100, .dark .border-amber-200, .dark .border-yellow-200 { border-color: rgb(120 53 15 / 0.50); }
.dark .border-orange-100 { border-color: rgb(124 45 18 / 0.50); }
.dark .border-sky-100 { border-color: rgb(12 74 110 / 0.50); }
.dark .border-cyan-100 { border-color: rgb(21 94 117 / 0.50); }
.dark .divide-slate-100 > :not([hidden]) ~ :not([hidden]) { border-color: rgb(30 41 59); }
.dark .divide-slate-200 > :not([hidden]) ~ :not([hidden]) { border-color: rgb(51 65 85); }
.dark .divide-gray-100 > :not([hidden]) ~ :not([hidden]) { border-color: rgb(30 41 59); }

.dark .shadow-sm, .dark .shadow, .dark .shadow-md, .dark .shadow-lg, .dark .shadow-xl {
  --tw-shadow-color: rgb(0 0 0 / 0.45);
  --tw-shadow: var(--tw-shadow-colored);
}

.dark .hover\:bg-slate-50:hover, .dark .hover\:bg-slate-50\/60:hover { background-color: rgb(30 41 59 / 0.60); }
.dark .hover\:bg-slate-100:hover { background-color: rgb(51 65 85); }
.dark .hover\:bg-slate-200:hover { background-color: rgb(71 85 105); }
.dark .hover\:bg-white:hover { background-color: rgb(30 41 59); }
.dark .hover\:bg-violet-50:hover { background-color: rgb(46 16 101 / 0.40); }
.dark .hover\:bg-violet-50\/40:hover { background-color: rgb(46 16 101 / 0.35); }
.dark .hover\:bg-violet-100:hover { background-color: rgb(76 29 149 / 0.45); }
.dark .hover\:bg-red-50:hover { background-color: rgb(69 10 10 / 0.45); }
.dark .hover\:bg-red-100:hover { background-color: rgb(127 29 29 / 0.50); }
.dark .hover\:bg-amber-50:hover { background-color: rgb(69 26 3 / 0.45); }
.dark .hover\:bg-emerald-50:hover { background-color: rgb(2 44 34 / 0.45); }
.dark .hover\:bg-emerald-100:hover { background-color: rgb(6 78 59 / 0.50); }
.dark .hover\:bg-green-100:hover { background-color: rgb(6 78 59 / 0.45); }
.dark .hover\:bg-orange-50:hover { background-color: rgb(67 20 7 / 0.45); }
.dark .hover\:bg-orange-100:hover { background-color: rgb(124 45 18 / 0.50); }
.dark .hover\:bg-sky-50:hover { background-color: rgb(8 47 73 / 0.45); }
.dark .hover\:bg-yellow-100:hover { background-color: rgb(113 63 18 / 0.45); }
.dark .hover\:text-slate-600:hover, .dark .hover\:text-slate-700:hover { color: rgb(226 232 240); }
.dark .hover\:text-violet-500:hover,
.dark .hover\:text-violet-600:hover { color: rgb(196 181 253); }
.dark .hover\:text-violet-700:hover { color: rgb(221 214 254); }
.dark .hover\:text-red-500:hover, .dark .hover\:text-red-600:hover, .dark .hover\:text-red-700:hover { color: rgb(252 165 165); }
.dark .hover\:text-green-700:hover { color: rgb(110 231 183); }
.dark .hover\:text-orange-500:hover, .dark .hover\:text-orange-600:hover { color: rgb(253 186 116); }
.dark .hover\:text-yellow-700:hover { color: rgb(252 211 77); }
.dark .hover\:border-slate-300:hover { border-color: rgb(71 85 105); }
.dark .hover\:border-violet-100:hover,
.dark .hover\:border-violet-200:hover,
.dark .hover\:border-violet-300:hover,
.dark .hover\:border-violet-400:hover { border-color: rgb(139 92 246 / 0.65); }
.dark .hover\:border-red-300:hover { border-color: rgb(248 113 113 / 0.65); }
.dark .hover\:border-amber-200:hover { border-color: rgb(251 191 36 / 0.60); }

.dark input:not([type='checkbox']):not([type='radio']):not([type='submit']):not([type='button']):not([type='color']),
.dark select,
.dark textarea {
  background-color: rgb(15 23 42);
  border-color: rgb(51 65 85);
  color: rgb(241 245 249);
}

.dark input::placeholder,
.dark textarea::placeholder {
  color: rgb(100 116 139);
}

.dark input:disabled,
.dark select:disabled,
.dark textarea:disabled,
.dark input[readonly],
.dark textarea[readonly] {
  background-color: rgb(30 41 59 / 0.80);
  color: rgb(148 163 184);
  border-color: rgb(51 65 85);
  opacity: 1;
}

.dark input[type='checkbox'],
.dark input[type='radio'] {
  background-color: rgb(15 23 42);
  border-color: rgb(71 85 105);
}

.dark input[type='checkbox']:checked,
.dark input[type='radio']:checked {
  background-color: rgb(124 58 237);
  border-color: rgb(124 58 237);
}

.dark input[type='color'] {
  background-color: rgb(15 23 42);
  border-color: rgb(51 65 85);
}

.dark .disabled\:bg-slate-300:disabled { background-color: rgb(51 65 85); }
.dark .disabled\:bg-gray-300:disabled,
.dark .disabled\:bg-slate-100:disabled,
.dark .disabled\:bg-slate-200:disabled { background-color: rgb(30 41 59); }
.dark .disabled\:border-slate-200:disabled { border-color: rgb(51 65 85); }
.dark .disabled\:text-gray-500:disabled,
.dark .disabled\:text-slate-400:disabled { color: rgb(100 116 139); }
.dark .disabled\:opacity-60:disabled { opacity: 0.55; }

.dark .ring-violet-100 { --tw-ring-color: rgb(76 29 149 / 0.45); }
.dark .ring-amber-100 { --tw-ring-color: rgb(120 53 15 / 0.45); }
.dark .focus\:ring-slate-300:focus { --tw-ring-color: rgb(71 85 105); }
.dark .focus\:ring-violet-300:focus { --tw-ring-color: rgb(167 139 250); }
.dark .focus\:ring-red-300:focus { --tw-ring-color: rgb(252 165 165); }
.dark .focus\:ring-amber-300:focus { --tw-ring-color: rgb(252 211 77); }
.dark .focus\:ring-emerald-300:focus { --tw-ring-color: rgb(110 231 183); }

.dark table { color: rgb(226 232 240); }
.dark svg circle[stroke='currentColor'], .dark svg path[fill='currentColor'] { color: currentColor; }

@media print {
  html,
  html.dark,
  body,
  .dark body {
    background: white !important;
    color: #111827 !important;
    color-scheme: light !important;
  }

  .dark .bg-white,
  .dark .bg-gray-50,
  .dark .bg-gray-100,
  .dark .bg-slate-50,
  .dark .bg-slate-100 {
    background-color: white !important;
  }

  .dark .text-slate-500,
  .dark .text-slate-600,
  .dark .text-slate-700,
  .dark .text-slate-800,
  .dark .text-gray-500,
  .dark .text-gray-600,
  .dark .text-gray-700,
  .dark .text-gray-800 {
    color: #111827 !important;
  }
}
