/* W2D Register Wizard — isolated styles for /register/ */
#w2d-register-wizard {
  max-width: 520px;
  margin: 5vh auto;
  padding: 2rem;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* top logo/heading (optional) */
#w2d-register-wizard .w2d-auth-logo { text-align: center; margin-bottom: .5rem; }
#w2d-register-wizard .w2d-logo-text { font-size: 1.25rem; font-weight: 700; color: #111; }

/* progress dots */
#w2d-register-wizard .w2d-steps {
  display: flex; justify-content: center; gap: 8px; margin: .25rem 0 1.25rem;
}
#w2d-register-wizard .w2d-steps .step {
  width: 10px; height: 10px; border-radius: 50%;
  background: #d1d5db; transition: background .25s, transform .15s;
}
#w2d-register-wizard .w2d-steps .step.active { background: #0a66ff; transform: scale(1.2); }

/* steps */
#w2d-register-wizard .w2d-step { display: none; animation: w2dFade .25s ease; }
#w2d-register-wizard .w2d-step.active { display: block; }
@keyframes w2dFade { from { opacity:0; transform: translateY(6px); } to { opacity:1; transform:none; } }

#w2d-register-wizard h2 {
  text-align: center; margin: 0 0 1rem;
  font-size: 1.2rem; font-weight: 600; color: #111827;
}

/* form controls */
#w2d-register-wizard label {
  display:block; font-weight: 600; font-size: .95rem; color:#111827; margin:.25rem 0 .35rem;
}
#w2d-register-wizard input[type="text"],
#w2d-register-wizard input[type="email"],
#w2d-register-wizard input[type="password"]{
  width: 100%; padding: .75rem 1rem;
  border: 1px solid #e5e7eb; border-radius: 10px; background:#fff;
  transition: border-color .2s, box-shadow .2s;
}
#w2d-register-wizard input:focus {
  border-color:#0a66ff; box-shadow: 0 0 0 3px rgba(10,102,255,.15); outline: none;
}
#w2d-register-wizard .is-invalid{
  border-color:#dc2626 !important; box-shadow: 0 0 0 3px rgba(220,38,38,.12) !important;
}

/* error box */
#w2d-register-wizard .w2d-register-errors{
  display:none; margin-bottom:1rem; padding:.75rem 1rem;
  background:#fee2e2; border:1px solid #fecaca; color:#991b1b; border-radius:10px;
}

/* password helpers */
#w2d-register-wizard .w2d-pass-field { position: relative; }
#w2d-register-wizard .w2d-pass-field input { padding-right: 3.25rem; }
#w2d-register-wizard .w2d-pass-toggle {
  position:absolute; right:.35rem; top:50%; transform:translateY(-50%);
  border:1px solid #e5e7eb; background:#fff; border-radius:8px;
  padding:.3rem .55rem; font-size:.85rem; cursor:pointer;
}
#w2d-register-wizard .w2d-pass-toggle:hover { background:#f3f4f6; }

#w2d-register-wizard .w2d-pass-meter { margin:.5rem 0 .25rem; background:#f3f4f6; border-radius:6px; height:6px; }
#w2d-register-wizard .w2d-pass-meter .bar { height:100%; width:0%; background:#ccc; border-radius:6px; transition: width .25s, background .25s; }
#w2d-register-wizard .w2d-pass-meter .label { display:block; font-size:.85rem; color:#6b7280; margin-top:.25rem; }

/* dance styles (optional chips) */
#w2d-register-wizard .w2d-dance-styles { display:flex; flex-wrap:wrap; gap:.5rem; margin:.25rem 0 1rem; }
#w2d-register-wizard .w2d-style-chip { position:relative; cursor:pointer; }
#w2d-register-wizard .w2d-style-chip input { position:absolute; inset:0; opacity:0; pointer-events:none; }
#w2d-register-wizard .w2d-style-chip > span {
  display:inline-block; padding:.55rem .9rem; border:1px solid #e5e7eb; border-radius:999px;
  background:#fff; color:#111827; font-weight:600; font-size:.95rem; line-height:1;
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .02s;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
#w2d-register-wizard .w2d-style-chip:hover > span { border-color:#cbd5e1; }
#w2d-register-wizard .w2d-style-chip input:checked + span {
  color:#fff; border-color:transparent; background:linear-gradient(90deg, var(--c1), var(--c2));
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}

/* nav row */
#w2d-register-wizard .w2d-nav{
  margin-top: 1rem; display:flex; justify-content:space-between; gap:.75rem;
}
#w2d-register-wizard .w2d-nav button{
  border:none; border-radius:10px; padding:.7rem 1.2rem; font-weight:700; cursor:pointer;
  transition: transform .05s, background .2s;
}
#w2d-register-wizard .w2d-prev{ background:#f3f4f6; color:#111827; }
#w2d-register-wizard .w2d-prev:hover{ background:#e5e7eb; }
#w2d-register-wizard .w2d-next,
#w2d-register-wizard .finish { background:#0a66ff; color:#fff; }
#w2d-register-wizard .w2d-next:hover,
#w2d-register-wizard .finish:hover { background:#0753d4; }
#w2d-register-wizard .w2d-nav button:active{ transform: scale(.985); }

@media (max-width:480px){
  #w2d-register-wizard{ margin: 2vh auto; padding: 1.25rem; }
}

/* Accessibility-friendly hidden file input */
.w2d-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap;
}

