:root {
  --indigo-50: #eef2ff;
  --indigo-100: #e0e7ff;
  --indigo-200: #c7d2fe;
  --indigo-300: #a5b4fc;
  --indigo-400: #818cf8;
  --indigo-500: #6366f1;
  --indigo-600: #4f46e5;
  --indigo-700: #4338ca;
  --indigo-800: #3730a3;
  --indigo-900: #312e81;
}

body {
  transition: background-color 0.6s ease, color 0.6s ease;
}

* {
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.btn-primary,
.btn-primary:not(:disabled):not(.disabled),
button.btn-primary {
  background: linear-gradient(135deg, var(--indigo-600) 0%, var(--indigo-500) 100%) !important;
  border-color: var(--indigo-600) !important;
  color: white !important;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
  transition: all 0.3s ease !important;
}

.btn-primary:hover,
.btn-primary:not(:disabled):not(.disabled):hover {
  background: linear-gradient(135deg, var(--indigo-700) 0%, var(--indigo-600) 100%) !important;
  border-color: var(--indigo-700) !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4);
  transform: translateY(-2px);
}

.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active {
  background: var(--indigo-800) !important;
  border-color: var(--indigo-800) !important;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
  transform: translateY(0);
}

a {
  color: var(--indigo-600);
  transition: color 0.3s ease;
}

a:hover {
  color: var(--indigo-700);
}

[data-theme="Light"] a {
  color: var(--indigo-600);
}

[data-theme="Light"] a:hover {
  color: var(--indigo-700);
}

[data-theme="Dark"] a,
[data-theme="Midnight"] a,
[data-theme="Slate"] a {
  color: var(--indigo-400);
}

[data-theme="Dark"] a:hover,
[data-theme="Midnight"] a:hover,
[data-theme="Slate"] a:hover {
  color: var(--indigo-300);
}

.badge-primary,
.badge.badge-primary {
  background: var(--indigo-600) !important;
  color: white !important;
}

.text-primary {
  color: var(--indigo-600) !important;
}

[data-theme="Dark"] .text-primary,
[data-theme="Midnight"] .text-primary,
[data-theme="Slate"] .text-primary {
  color: var(--indigo-400) !important;
}

.border-primary {
  border-color: var(--indigo-600) !important;
}

.bg-primary {
  background-color: var(--indigo-600) !important;
}

input:focus,
textarea:focus,
select:focus,
.form-control:focus {
  border-color: var(--indigo-500) !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15) !important;
}

.nav-tabs .nav-link.active {
  border-color: var(--indigo-600) !important;
  color: var(--indigo-600) !important;
}

.progress-bar {
  background-color: var(--indigo-600) !important;
}

.spinner-border {
  border-color: var(--indigo-600);
  border-right-color: transparent;
}

.form-check-input:checked {
  background-color: var(--indigo-600) !important;
  border-color: var(--indigo-600) !important;
}

.page-item.active .page-link {
  background-color: var(--indigo-600) !important;
  border-color: var(--indigo-600) !important;
}

.list-group-item.active {
  background-color: var(--indigo-600) !important;
  border-color: var(--indigo-600) !important;
}

.navbar-brand,
.navbar .navbar-brand {
  color: var(--indigo-600) !important;
}

[data-theme="Dark"] .navbar-brand,
[data-theme="Dark"] .navbar .navbar-brand {
  color: var(--indigo-400) !important;
}

.sidebar .nav-link.active,
.sidebar .nav-link:hover {
  background: rgba(99, 102, 241, 0.1) !important;
  color: var(--indigo-600) !important;
  border-left: 3px solid var(--indigo-600);
}

[data-theme="Dark"] .sidebar .nav-link.active,
[data-theme="Dark"] .sidebar .nav-link:hover {
  color: var(--indigo-400) !important;
  border-left-color: var(--indigo-400);
}

.card:hover {
  box-shadow: 0 8px 24px rgba(99, 102, 241, 0.15);
  border-color: rgba(99, 102, 241, 0.3);
  transition: all 0.3s ease;
}

.auth-btn,
.auth-btn-tg-square {
  background: linear-gradient(135deg, var(--indigo-600) 0%, var(--indigo-500) 100%) !important;
  border-color: var(--indigo-600) !important;
  color: white !important;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
  transition: all 0.3s ease !important;
}

.auth-btn:hover,
.auth-btn-tg-square:hover {
  background: linear-gradient(135deg, var(--indigo-700) 0%, var(--indigo-600) 100%) !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4);
  transform: translateY(-2px);
}

.auth-bg .auth-orb {
  background: radial-gradient(circle, var(--indigo-500) 0%, transparent 70%);
  opacity: 0.2;
}

[data-theme="Light"] .auth-bg .auth-orb {
  opacity: 0.15;
}

::selection {
  background: var(--indigo-200);
  color: var(--indigo-900);
}

[data-theme="Dark"] ::selection,
[data-theme="Midnight"] ::selection,
[data-theme="Slate"] ::selection {
  background: var(--indigo-700);
  color: var(--indigo-100);
}

.btn-outline-primary {
  color: var(--indigo-600) !important;
  border-color: var(--indigo-600) !important;
}

.btn-outline-primary:hover {
  background: var(--indigo-600) !important;
  border-color: var(--indigo-600) !important;
  color: white !important;
}

[data-theme="Dark"] .btn-outline-primary,
[data-theme="Midnight"] .btn-outline-primary,
[data-theme="Slate"] .btn-outline-primary {
  color: var(--indigo-400) !important;
  border-color: var(--indigo-400) !important;
}

[data-theme="Dark"] .btn-outline-primary:hover,
[data-theme="Midnight"] .btn-outline-primary:hover,
[data-theme="Slate"] .btn-outline-primary:hover {
  background: var(--indigo-600) !important;
  border-color: var(--indigo-600) !important;
}
