/* Stars */
.stars{display:flex;flex-direction:row-reverse;gap:6px;font-size:26px}
.stars input{display:none}
.stars label{cursor:pointer;filter:drop-shadow(0 0 6px rgba(255,255,255,.08))}
.stars input:checked ~ label,
.stars label:hover, .stars label:hover ~ label{color:#ffd166}

/* Wizard */
.wizard{margin-top:16px}
.progress{height:8px;background:rgba(255,255,255,.06);border-radius:10px;margin:0 0 14px;overflow:hidden}
.progress .bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--violet));width:10%;transition:width .25s ease}

.step{border:1px solid var(--border);border-radius:16px;margin:14px 0;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
  box-shadow:0 14px 50px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.02)}
.step-head{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015))}
.step-head h3{margin:0;font-size:16px}
.step-head .summary{margin-left:auto;opacity:.85;font-size:13px;color:#cbd5e1}
.dot{width:26px;height:26px;border-radius:50%;background:linear-gradient(90deg,var(--accent),var(--violet));
  display:grid;place-items:center;font-weight:800;box-shadow:0 6px 20px rgba(124,58,237,.35)}
.step-body{display:none;padding:16px}
.step.open .step-body{display:block;animation:fadeIn .18s ease}
.step.done .step-head{border-left:3px solid rgba(124,58,237,.6)}
@keyframes fadeIn{from{opacity:.3;transform:translateY(-2px)}to{opacity:1;transform:none}}

.step-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}

/* Invalid flash */
.input.invalid, textarea.invalid, select.invalid{
  box-shadow:0 0 0 4px rgba(225,29,72,.18),0 0 0 1px rgba(225,29,72,.28) inset;border-color:rgba(225,29,72,.55)
}

/* Recap */
.recap{display:grid;grid-template-columns:1fr;gap:8px;background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.01));
  border:1px dashed rgba(255,255,255,.08);border-radius:14px;padding:14px}
.r-line{display:flex;gap:10px;justify-content:space-between;border-bottom:1px dashed rgba(255,255,255,.06);padding:8px 0}
.r-line:last-child{border-bottom:none}
.r-line span{opacity:.75}
.r-line b{font-weight:700}
