/* ctv/assets/css/pages/register.css — biểu mẫu đăng ký CTV (làm lại 18/09/2026): ba phần đánh số, ngày sinh ba ô chọn,
   mã CTV có tiền tố link, hộp đợt tuyển trong thẻ + thông tin đợt trên dải teal. Chỉ layout-glue, chỉ token portal. */

.rg-form { gap: var(--pt-s-6); }

/* Ba phần: số tròn + tiêu đề + đường tóc kéo dài. 🚨 KHÔNG kẻ viền trên cho fieldset: <legend> nằm vắt ngang viền đó nên
   trình duyệt vẽ đường cắt sau chữ và dồn thêm khoảng trống dưới tiêu đề — kẻ đường bằng ::after của legend thay vào.
   <legend> không phải phần tử flex của fieldset ⇒ tự đệm dưới. */
.rg-sec { margin: 0; padding: 0; border: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--pt-s-5); }
.rg-sec__t { display: flex; align-items: center; gap: 10px; width: 100%; padding: 0; margin-bottom: var(--pt-s-5);
  font-size: var(--pt-fs-16); font-weight: 700; letter-spacing: -.01em; color: var(--pt-ink); }
.rg-sec__t::after { content: ""; flex: 1; height: 1px; margin-left: var(--pt-s-2); background: var(--pt-hair); }
.rg-sec__n { width: 26px; height: 26px; flex: none; border-radius: var(--pt-r-pill); display: inline-grid; place-items: center;
  font-size: var(--pt-fs-13); font-weight: 700; color: var(--pt-brand-deep); background: var(--pt-wash); }

/* Ngày sinh: ba ô chọn cạnh nhau — mỗi ô một bánh xe riêng trên điện thoại, khỏi lật lịch ngược vài chục năm. */
.rg-dob { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--pt-s-2); }
.pt-field.is-invalid .rg-dob select { border-color: var(--color-warning); }

/* Mã CTV: tiền tố "navsenglish.com/?ref=" dính liền ô nhập — CTV thấy ngay mã nằm ở đâu trong link. */
.rg-code { display: flex; align-items: stretch; min-width: 0; height: var(--pt-h-md);
  border: 1px solid var(--pt-border); border-radius: var(--pt-r-md); background: var(--pt-surface); overflow: hidden; }
.rg-code:focus-within { border-color: var(--color-primary); box-shadow: var(--pt-focus); }
.pt-field.is-invalid .rg-code { border-color: var(--color-warning); }
.rg-code__p { display: flex; align-items: center; flex: none; max-width: 55%; padding: 0 var(--pt-s-3);
  font-size: var(--pt-fs-13); color: var(--pt-muted); background: var(--pt-sunken); border-right: 1px solid var(--pt-border);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rg-code .rg-code__i { height: 100%; border: 0; border-radius: 0; background: transparent; font-weight: 600; }
.rg-code .rg-code__i:focus { box-shadow: none; }
.rg-code__st { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.rg-code__st.is-ok { color: var(--pt-brand-deep); font-weight: 500; }
.rg-code__st.is-bad { color: var(--pt-warn-deep); font-weight: 500; }
.rg-code__st svg { flex: none; }
.rg-code__alt { padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--pt-brand-deep);
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Hộp đợt tuyển đầu thẻ (hiện cả trên điện thoại, nơi dải teal thu gọn) */
.rg-round { display: flex; align-items: center; gap: var(--pt-s-3); margin-bottom: var(--pt-s-6); padding: var(--pt-s-3) var(--pt-s-4);
  border-radius: var(--pt-r-md); background: var(--pt-wash); border: 1px solid color-mix(in srgb, var(--color-primary) 22%, transparent); }
.rg-round > div { display: flex; flex-direction: column; min-width: 0; }
.rg-round strong { font-size: var(--pt-fs-14); font-weight: 700; color: var(--pt-ink); }
.rg-round span { font-size: var(--pt-fs-13); color: var(--pt-brand-deep); }
/* Lời chào + hạn/số chỗ: trên máy tính đã nằm ở dải teal, chỉ hiện trong hộp khi dải thu gọn (điện thoại). */
.rg-round__more { display: none; }
.rg-round p { margin: 6px 0 0; font-size: var(--pt-fs-13); line-height: 1.5; color: var(--pt-text); }
.rg-round .rg-round__meta { color: var(--pt-muted); }

.rg-note { display: flex; align-items: flex-start; justify-content: center; gap: 6px; margin: calc(var(--pt-s-2) * -1) 0 0;
  font-size: var(--pt-fs-13); color: var(--pt-muted); line-height: 1.5; text-align: center; }
.rg-note svg { flex: none; margin-top: 2px; }
.rg-alt { margin-top: var(--pt-s-4); font-size: var(--pt-fs-14); color: var(--pt-muted); }

/* Dải teal khi đăng ký qua link đợt */
.rg-side__eyebrow { display: inline-flex; align-items: center; gap: 6px; margin-bottom: var(--pt-s-3);
  font-size: var(--pt-fs-12); font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--pt-on-3); }
.rg-side__facts { margin: 0; padding: var(--pt-s-2) var(--pt-s-5); display: flex; flex-direction: column; }
.rg-side__facts > div { display: flex; align-items: center; justify-content: space-between; gap: var(--pt-s-4); padding: var(--pt-s-3) 0; }
.rg-side__facts > div + div { border-top: 1px solid var(--pt-line-d); }
.rg-side__facts dt { font-size: var(--pt-fs-13); color: var(--pt-on-3); }
.rg-side__facts dd { margin: 0; text-align: right; font-size: var(--pt-fs-14); color: var(--pt-on); }
.rg-side__facts strong { font-weight: 600; }
.rg-lead { display: inline-flex; align-items: center; gap: var(--pt-s-2); text-align: left; }
.rg-lead > span { display: flex; flex-direction: column; line-height: 1.3; }
.rg-lead small { font-size: var(--pt-fs-12); color: var(--pt-on-3); }

/* Tuyển CTV đợt 2 (24/10/2026): trang chọn người hướng dẫn · nút đổi nhóm khi nhóm vừa đủ · màn cuối vào nhóm Zalo */
.rg-pick { display: grid; gap: var(--pt-s-3); }
.rg-pick__card { display: flex; flex-direction: column; gap: var(--pt-s-3); padding: var(--pt-s-4); border: 1px solid var(--pt-border);
  border-radius: var(--pt-r-lg); background: var(--pt-surface); }
.rg-pick__card.is-full { background: var(--pt-sunken); }
.rg-pick__card.is-full .rg-pick__who, .rg-pick__card.is-full .pt-prog { opacity: .6; }
.rg-pick__who { display: flex; align-items: center; gap: var(--pt-s-3); min-width: 0; }
.rg-pick__who > span { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.rg-pick__who strong { font-size: var(--pt-fs-16); font-weight: 700; color: var(--pt-ink); }
.rg-pick__who small { font-size: var(--pt-fs-13); color: var(--pt-muted); }
.rg-pick__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--pt-s-3); flex-wrap: wrap;
  font-size: var(--pt-fs-14); font-weight: 600; color: var(--pt-text); }
.rg-pick + .rg-note { margin-top: var(--pt-s-4); }
.rg-round__swap { display: inline-block; margin-top: 6px; font-size: var(--pt-fs-13); font-weight: 600; }
.rg-swap { display: flex; flex-direction: column; gap: var(--pt-s-2); margin-top: var(--pt-s-4); }
.rg-code-box { display: flex; flex-direction: column; gap: var(--pt-s-2); margin-bottom: var(--pt-s-5); padding: var(--pt-s-4);
  border-radius: var(--pt-r-lg); background: var(--pt-wash); border: 1px solid color-mix(in srgb, var(--color-primary) 22%, transparent); }
.rg-code-box__l { font-size: var(--pt-fs-13); font-weight: 600; color: var(--pt-brand-deep); }
.rg-code-box .pt-copy { flex-wrap: wrap; }
.rg-code-box .pt-copy__v { flex: 1 1 100%; justify-content: center; height: auto; padding: var(--pt-s-3); background: var(--pt-surface);
  font-size: var(--pt-fs-18); font-weight: 800; letter-spacing: .04em; color: var(--pt-ink); white-space: normal; overflow-wrap: anywhere; text-align: center; }
.rg-code-box .pt-copy .pt-btn { flex: 1 1 100%; }
.rg-code-box small { font-size: var(--pt-fs-13); color: var(--pt-text); line-height: 1.5; }
.rg-steps { list-style: none; margin: 0 0 var(--pt-s-5); padding: 0; display: flex; flex-direction: column; gap: var(--pt-s-3); }
.rg-steps li { display: flex; align-items: flex-start; gap: var(--pt-s-3); color: var(--pt-muted); }
.rg-steps li > span:last-child { display: flex; flex-direction: column; line-height: 1.4; min-width: 0; }
.rg-steps strong { font-size: var(--pt-fs-14); font-weight: 600; color: var(--pt-ink); }
.rg-steps small { font-size: var(--pt-fs-13); color: var(--pt-muted); overflow-wrap: anywhere; }
.rg-steps li.is-done svg { flex: none; color: var(--color-primary); margin-top: 1px; }
.rg-steps__dot { flex: none; width: 18px; height: 18px; margin-top: 1px; border-radius: var(--pt-r-pill); border: 2px solid var(--pt-border); }
.rg-steps li.is-now .rg-steps__dot { border-color: var(--color-primary); box-shadow: 0 0 0 4px var(--pt-wash); }
.rg-steps li.is-now strong { color: var(--pt-brand-deep); }
.rg-steps + .pt-btn + .rg-note { margin-top: var(--pt-s-3); overflow-wrap: anywhere; }

@media (max-width: 880px) {
  .rg-side__facts, .rg-side__eyebrow { display: none; }
  .rg-round { align-items: flex-start; }
  .rg-round__more { display: block; }
}
@media (max-width: 520px) {
  .rg-sec__t { font-size: var(--pt-fs-15); }
  .rg-code__host { display: none; }   /* chỉ còn "?ref=" — tên miền dài cắt mất chữ trên điện thoại */
}
