form .required:after{color:#f35958;content:"*";font-size:15px;left:3px;position:relative}.form-switch-md .form-check-input{width:4rem!important}.form-switch-lg .form-check-input{width:6rem!important}.form-switch-xl .form-check-input{width:8rem!important}.feather-16{height:16px;width:16px}.feather-20{height:20px;width:20px}.feather-24{height:24px;width:24px}.feather-32{height:32px;width:32px}

/* ===== Rainbow theme overrides ===== */
:root {
  --rb-gradient: linear-gradient(90deg, #ff0040, #ff7a00, #ffd400, #22c55e, #06b6d4, #3b82f6, #a855f7, #ec4899);
  --rb-gradient-diag: linear-gradient(135deg, #ff0040, #ff7a00, #ffd400, #22c55e, #06b6d4, #3b82f6, #a855f7);
  --rb-gradient-soft: linear-gradient(180deg, rgba(255,0,64,.08), rgba(168,85,247,.08));
  --bs-primary: #7c3aed;
  --bs-primary-rgb: 124, 58, 237;
}

@keyframes rainbow-shift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Navbar / header */
.header-navbar.bg-primary,
.header-navbar.bg-info,
.header-navbar.bg-success,
.header-navbar.bg-warning,
.header-navbar.bg-danger,
.header-navbar.bg-dark,
.header-navbar.floating-nav.bg-primary,
nav.header-navbar {
  background-image: var(--rb-gradient) !important;
  background-size: 200% 100% !important;
  animation: rainbow-shift 8s ease infinite;
  border: none !important;
}

.header-navbar .navbar-container,
.header-navbar .nav-link,
.header-navbar .dropdown-user .user-name {
  color: #fff !important;
}

/* Sidebar brand / logo area */
.main-menu .navbar-header,
.main-menu.menu-light .navbar-header,
.main-menu.menu-dark .navbar-header {
  background-image: var(--rb-gradient-diag) !important;
  background-size: 200% 200% !important;
  animation: rainbow-shift 10s ease infinite;
}

.main-menu .navbar-header .brand-logo img,
.brand-logo img {
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.35));
  max-height: 40px;
  width: auto;
}

/* Active menu items */
.main-menu.menu-light .navigation > li.active > a,
.main-menu.menu-dark .navigation > li.active > a,
.navigation-main .nav-item.active > a,
.horizontal-menu .header-navbar.navbar-horizontal .dropdown-menu .active > a,
.horizontal-menu .navbar-nav .nav-item.active > a {
  background: var(--rb-gradient) !important;
  background-size: 200% 100% !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(124, 58, 237, .35) !important;
  border-radius: 6px;
}

/* Primary buttons */
.btn-primary,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle,
.btn-gradient-primary {
  background-image: var(--rb-gradient) !important;
  background-size: 200% 100% !important;
  animation: rainbow-shift 6s ease infinite;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(236, 72, 153, .35);
}

.btn-primary:hover {
  filter: brightness(1.05);
  color: #fff !important;
}

/* Badges & solid primary surfaces (not navbar already covered) */
.badge.bg-primary,
.bg-primary:not(.header-navbar):not(.btn) {
  background-image: var(--rb-gradient) !important;
  background-size: 200% 100% !important;
  border: none !important;
}

/* Pagination / switches / progress */
.page-item.active .page-link,
.pagination .page-item.active .page-link {
  background-image: var(--rb-gradient) !important;
  border: none !important;
}

.progress-bar,
.progress-bar-primary {
  background-image: var(--rb-gradient) !important;
  background-size: 200% 100% !important;
}

.form-check-input:checked {
  background-color: #7c3aed !important;
  border-color: #7c3aed !important;
}

/* Links / accents */
a.text-primary,
.text-primary {
  background: var(--rb-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}

/* Cards subtle rainbow top edge */
.card {
  position: relative;
  overflow: hidden;
}
.card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background-image: var(--rb-gradient);
  background-size: 200% 100%;
  animation: rainbow-shift 8s ease infinite;
  z-index: 2;
}

/* Auth / login pages */
.auth-wrapper.auth-cover {
  background: var(--rb-gradient-soft);
}
.auth-wrapper .brand-logo {
  padding: 0.5rem 0.75rem;
  border-radius: 10px;
  background-image: var(--rb-gradient-diag);
  background-size: 200% 200%;
  animation: rainbow-shift 10s ease infinite;
}
.auth-wrapper .brand-logo img {
  max-height: 42px;
  filter: brightness(1.05) drop-shadow(0 1px 2px rgba(0,0,0,.4));
}
.auth-wrapper .btn-primary {
  background-image: var(--rb-gradient) !important;
}
.auth-wrapper .card-title,
.auth-wrapper h2.card-title {
  background: var(--rb-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}

/* Footer strip */
.footer {
  border-top: 3px solid transparent;
  border-image: var(--rb-gradient) 1;
}
