/* join.css */
body {
  background: #f4f7f9;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  margin: 0;
  color: #333;
}

* { box-sizing: border-box; }

.join-wrapper {
  max-width: 520px;
  margin: 3rem auto;
  padding: 0 1rem;
}

.join-card {
  background: #fff;
  border-radius: 16px;
  padding: 2.5rem;
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
}

@media (max-width: 540px) {
  body { background: #fff; }
  .join-wrapper { margin: 0; padding: 0; }
  .join-card { border-radius: 0; box-shadow: none; padding: 2.5rem 1.5rem; min-height: 100vh; }
}

.join-wrapper h1 { font-size:24px; font-weight:700; text-align:center; margin:0 0 10px; }
.join-wrapper .desc { font-size:14px; color:#666; text-align:center; margin:0 auto 2.5rem; }

/* Progress Bar - Stylish */
.progress-bar { display:flex; justify-content:space-between; margin: 0 auto 3rem; counter-reset:step; max-width: 400px; }
.progress-bar .step { position:relative; flex:1; text-align:center; font-size:12px; color:#888; font-weight:500; }
.progress-bar .step:not(:last-child):after { content:""; position:absolute; top:15px; right:-50%; width:100%; height:3px; background:#e9ecef; z-index:1; transition: background .4s; }
.progress-bar .circle { position:relative; z-index:2; width:30px; height:30px; margin:0 auto 8px; background:#fff; border: 3px solid #e9ecef; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#888; transition: all .4s ease; }
.progress-bar .step.active .circle {
  border-color: #20c997;
  box-shadow: 0 0 12px rgba(32, 201, 151, 0.7);
}
.progress-bar .step.completed .circle {
  border-color: #20c997;
  background: #20c997;
  color: #fff;
}
.progress-bar .step.active { color:#087f5b; font-weight:700; }
.progress-bar .step.completed { color:#222; }
.progress-bar .step.completed:not(:last-child):after { background: #20c997; }
@media (max-width: 400px){ .progress-bar .step span.label { display:none; } }

.wizard-step { display: none; }
.wizard-step.active { display: block; animation: fadeStep 0.4s; }
@keyframes fadeStep { from { opacity: 0; } to { opacity: 1; } }

.form-row { margin-bottom: 1.5rem; }
.form-row:last-of-type { margin-bottom: 0; }
.form-row label { display:block; font-size:13px; font-weight:600; margin-bottom:8px; }
.form-row input[type=text], .form-row input[type=password] { width:100%; border:1px solid #ced4da; border-radius:8px; padding:12px 14px; font-size:14px; }
.form-row input:focus { outline:none; border-color:#20c997; box-shadow: 0 0 0 3px rgba(32, 201, 151, 0.2); }
.inline-fields { display:flex; gap:8px; }
.inline-fields > input { flex: 1; }
.inline-fields > button { white-space:nowrap; }

.actions { margin-top:3rem; display:flex; gap:12px; }
.actions button { width:100%; border:0; cursor:pointer; padding:15px; font-size:15px; font-weight:600; border-radius:8px; flex: 1; }
.btn-primary { background:#20c997; color:#fff; }
.btn-primary:hover { background: #12b886; }
.btn-secondary { background:#e9ecef; color:#333; }
.btn-secondary:hover { background: #dee2e6; }

/* Custom style for buttons next to input fields */
.inline-fields > button.btn-secondary {
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 600;
  border: none;
  border-radius: 8px;
}

.terms-box { border:1px solid #e0e0e0; background:#f9f9f9; padding:14px; height:150px; overflow:auto; font-size:12px; line-height:1.6; border-radius: 8px; margin-bottom: 1rem; }
.term-item { display:flex; align-items:center; gap:8px; margin-top:10px; }
.term-item label { font-size:13px; cursor:pointer; }
.check-all { margin-top:1rem; font-size:13px; }
.small-link-btn { font-size:11px; color:#555; text-decoration:underline; cursor:pointer; background:none; border:0; padding:0; margin-left:auto; }

/* Toast Message - Stylish Yellow */
#toastStack { position:fixed; top:20px; right:20px; z-index:100000; display:flex; flex-direction:column; gap:10px; }
.toast-msg {
  background: #fff9db;
  color: #4d3b05;
  padding: 12px 18px;
  font-size: 14px;
  font-weight: 500;
  border: 1px solid #ffe066;
  border-radius: 8px;
  box-shadow: 0 5px 15px rgba(0,0,0,.1);
  animation:fadeSlide .4s ease-out;
  max-width:320px;
}
@keyframes fadeSlide { from { opacity:0; transform:translateY(-10px);} to { opacity:1; transform:translateY(0);} }
.validate-highlight { border-color: #fab005 !important; background:#fff9db !important; }