/* =========================================================
   Premium Install / Update Wizard
   Matches the home-premium (emerald/teal) design language
   used across public & auth pages.
   ========================================================= */

/* ---------- Step indicator ---------- */

.premium-wizard-steps {
  width: 100%;
}

.premium-wizard-step {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--premium-surface);
  border: 1px solid var(--premium-border);
  color: var(--premium-muted);
  box-shadow: var(--premium-shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
}

.premium-wizard-step.is-done {
  background: var(--premium-grad-soft);
  border-color: rgba(0, 158, 105, .25);
  color: var(--premium-primary-dark);
}

.premium-wizard-step.is-active {
  background: var(--premium-grad);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 10px 24px -8px rgba(0, 158, 105, .55);
  transform: translateY(-2px);
}

html.dark .premium-wizard-step {
  background: rgba(255, 255, 255, .05);
  border-color: rgba(255, 255, 255, .12);
  color: #98a2b3;
}

html.dark .premium-wizard-step.is-done {
  background: rgba(32, 201, 151, .14);
  border-color: rgba(32, 201, 151, .28);
  color: var(--premium-accent);
}

html.dark .premium-wizard-step.is-active {
  background: var(--premium-grad);
  border-color: transparent;
  color: #fff;
}

.premium-wizard-line {
  width: 28px;
  height: 2px;
  border-radius: 2px;
  margin: 0 6px;
  background: var(--premium-border);
  flex-shrink: 0;
  transition: background .3s ease;
}

.premium-wizard-line.is-done {
  background: var(--premium-grad);
}

html.dark .premium-wizard-line {
  background: rgba(255, 255, 255, .15);
}

@media (max-width: 575.98px) {
  .premium-wizard-step {
    width: 34px;
    height: 34px;
    border-radius: 12px;
  }

  .premium-wizard-line {
    width: 14px;
    margin: 0 4px;
  }
}

/* ---------- Card ---------- */

.premium-wizard .card {
  animation: premiumWizardIn .45s cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes premiumWizardIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.premium-wizard .card-header {
  position: relative;
  background: var(--premium-grad-soft) !important;
  border-bottom: 1px solid var(--premium-border) !important;
  border-radius: calc(var(--premium-radius-lg) - 1px) calc(var(--premium-radius-lg) - 1px) 0 0 !important;
  padding: 1.25rem 2rem;
  overflow: hidden;
}

.premium-wizard .card-header::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 3px;
  background: var(--premium-grad);
  border-radius: 0 3px 3px 0;
}

[dir='rtl'] .premium-wizard .card-header::after {
  left: auto;
  right: 0;
  border-radius: 3px 0 0 3px;
}

.premium-wizard .card-header .font-weight-medium {
  font-weight: 700 !important;
  letter-spacing: -.2px;
}

html.dark .premium-wizard .card-header {
  background: rgba(32, 201, 151, .08) !important;
  border-color: rgba(255, 255, 255, .08) !important;
}

/* ---------- Check rows (requirements / permissions) ---------- */

.premium-wizard .list-group-item {
  background: transparent;
  transition: background-color .2s ease;
}

.premium-wizard .list-group-item:hover {
  background: rgba(0, 158, 105, .03);
}

html.dark .premium-wizard .list-group-item:hover {
  background: rgba(32, 201, 151, .05);
}

.premium-wizard .list-group-item .font-weight-medium {
  color: var(--premium-primary-dark);
  font-weight: 700 !important;
}

html.dark .premium-wizard .list-group-item .font-weight-medium {
  color: var(--premium-accent);
}

/* ---------- Hero (welcome / complete) ---------- */

.premium-wizard-hero-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 24px;
  background: var(--premium-grad-soft);
  border: 1px solid rgba(0, 158, 105, .18);
  color: var(--premium-primary-dark);
  box-shadow: inset 0 0 0 1px rgba(0, 158, 105, .08);
}

html.dark .premium-wizard-hero-icon {
  background: rgba(32, 201, 151, .12);
  border-color: rgba(32, 201, 151, .25);
  color: var(--premium-accent);
}

.premium-wizard-hero-badge {
  position: absolute;
  right: -6px;
  bottom: -6px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--premium-grad);
  color: #fff;
  border: 3px solid #fff;
  box-shadow: 0 6px 14px -4px rgba(0, 158, 105, .5);
}

.premium-wizard-hero-badge.is-success {
  background: linear-gradient(135deg, #10b981, #20c997);
}

.premium-wizard-hero-badge.is-neutral {
  background: linear-gradient(135deg, #64748b, #94a3b8);
  box-shadow: 0 6px 14px -4px rgba(71, 85, 105, .5);
}

html.dark .premium-wizard-hero-badge {
  border-color: #0e1515;
}

.premium-wizard-hero-title {
  font-family: var(--premium-font);
  font-size: 1.375rem;
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--premium-ink);
}

html.dark .premium-wizard-hero-title {
  color: #f5f7fa;
}

/* ---------- CTA button ---------- */

.premium-wizard .btn-primary {
  border-radius: .875rem !important;
  padding: .75rem 1rem !important;
  font-size: .9375rem;
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  .premium-wizard .card { animation: none; }
  .premium-wizard-step,
  .premium-wizard-line { transition: none; }
}
