@charset "utf-8";
@font-face {
  font-family: "Register Alimama ShuHeiTi";
  src: url("../fonts/login-alimama-shuheiti-700-subset.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Register Alibaba PuHuiTi";
  src: url("../fonts/login-alibaba-puhuiti-400-subset.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Register Alibaba PuHuiTi";
  src: url("../fonts/login-alibaba-puhuiti-700-subset.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --register-primary: #3f5aff;
  --register-soft: #e7e6ff;
  --register-border: #dcdaff;
  --register-surface: #f4f7fe;
  --register-button:
    radial-gradient(79.75% 84.17% at 22.09% 100%, #765efe 0%, rgba(118, 94, 254, 0) 100%),
    radial-gradient(54.12% 70% at 74.9% 100%, #2397fb 0%, rgba(35, 151, 251, 0) 100%),
    linear-gradient(124deg, #3450ff 0%, #2d7efd 100%);
  --register-headline: linear-gradient(90deg, #5b9aff 0%, #1568ec 55%, #866efa 100%);
  color: #333;
  background: #f2f3f5;
  font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  overflow-x: clip;
  background: #f2f3f5;
}

body.teacher-modal-open { overflow: hidden; }
button,
input,
select,
textarea { font: inherit; }
button { padding: 0; border: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; }
[hidden] { display: none !important; }
.mobile-only { display: none; }

.register-scale-shell {
  position: relative;
  width: 100vw;
  overflow: hidden;
}

.register-canvas,
.register-page {
  position: relative;
  width: 1920px;
  height: 1080px;
  overflow: hidden;
}

.register-canvas { transform-origin: top left; }
.register-page { background: linear-gradient(181deg, #cfe5fc 0%, #f0f4ff 100%); }

.register-page::after {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 960px;
  width: 960px;
  height: 1080px;
  background: #fff;
  content: "";
}

.register-art {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 960px;
  height: 1080px;
  overflow: hidden;
  -webkit-mask-image: url("../images/register-desktop-mask.svg");
  mask-image: url("../images/register-desktop-mask.svg");
  -webkit-mask-position: 0 0;
  mask-position: 0 0;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 1277px 1080px;
  mask-size: 1277px 1080px;
}

.register-art img {
  position: absolute;
  top: 195px;
  left: -269px;
  width: 1534px;
  max-width: none;
  height: 863px;
  user-select: none;
}

.register-brand {
  position: absolute;
  z-index: 3;
  top: 120px;
  left: 120px;
  width: 251px;
  height: 64px;
}

.register-brand-mark { position: absolute; inset: 0 auto auto 0; width: 64px; height: 64px; }

.register-brand-name {
  position: absolute;
  top: 0;
  left: 76px;
  font-size: 26.667px;
  font-weight: 600;
  letter-spacing: 1.6px;
  line-height: 37px;
  white-space: nowrap;
}

.register-brand-ai {
  position: absolute;
  top: 6.263px;
  left: 161.333px;
  width: 78.497px;
  height: 24.534px;
  color: transparent;
  background: linear-gradient(90deg, #674fff, #0a68fe);
  background-clip: text;
  -webkit-background-clip: text;
  font-family: "Register Alimama ShuHeiTi", sans-serif;
  font-size: 26.667px;
  font-weight: 700;
  line-height: 24.534px;
  transform: skewX(-4deg) scaleY(.997564);
  transform-origin: left top;
  white-space: nowrap;
}

.register-brand-caption {
  position: absolute;
  top: 37.33px;
  left: 76px;
  color: #666;
  font-size: 18.667px;
  letter-spacing: 1px;
  line-height: 26px;
  white-space: nowrap;
}

.register-nav {
  position: absolute;
  z-index: 4;
  top: 87.2px;
  left: 1475px;
  display: flex;
  width: 262px;
  height: 48px;
  align-items: center;
  justify-content: flex-end;
  gap: 36px;
}

.register-nav-link {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #333;
  background: transparent;
  font-size: 18px;
  font-weight: 500;
  white-space: nowrap;
}

.register-nav-teacher { font-weight: 600; }
.register-nav-link img { width: 22px; height: 22px; flex: 0 0 22px; object-fit: contain; }

.register-promo { position: absolute; z-index: 2; inset: 0 auto auto 0; }

.register-badge {
  position: absolute;
  top: 340px;
  left: 120px;
  display: flex;
  width: 286px;
  height: 60px;
  margin: 0;
  align-items: center;
  padding-left: 21px;
  border-radius: 30px 30px 30px 0;
  color: #fff;
  background: linear-gradient(124deg, #3450ff 0%, #2d7efd 100%);
  font-family: "Register Alibaba PuHuiTi", sans-serif;
  font-size: 26px;
  font-weight: 500;
  line-height: 36px;
  white-space: nowrap;
}

.register-headline {
  position: absolute;
  top: 416px;
  left: 120px;
  width: 592px;
  height: 236px;
  margin: 0;
  color: #221f34;
  font-family: "Register Alimama ShuHeiTi", sans-serif;
  font-size: 84.5px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 118px;
}

.register-headline span { display: block; white-space: nowrap; }
.register-headline-accent {
  color: transparent;
  background: var(--register-headline);
  background-clip: text;
  -webkit-background-clip: text;
}

.register-note {
  position: absolute;
  top: 676px;
  left: 120px;
  margin: 0;
  color: #000;
  font-family: "Register Alibaba PuHuiTi", sans-serif;
  font-size: 46px;
  line-height: 63px;
  white-space: nowrap;
}
.register-note span + span { margin-left: 24px; }

.register-title {
  position: absolute;
  z-index: 4;
  top: 164px;
  left: 1143px;
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 28px;
}

.student-login-entry {
  position: absolute;
  z-index: 4;
  top: 164px;
  right: 183px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #667085;
  font-family: "Register Alibaba PuHuiTi", "PingFang SC", sans-serif;
  font-size: 16px;
  line-height: 28px;
  white-space: nowrap;
}
.student-login-entry strong { color: var(--register-primary); font-weight: 600; }
.student-login-entry:focus-visible { outline: 2px solid rgba(52, 80, 255, .45); outline-offset: 3px; border-radius: 4px; }

.register-card {
  position: absolute;
  z-index: 3;
  top: 207.9px;
  left: 1143px;
  width: 594px;
  height: 709.2px;
  overflow: hidden;
  border: 1px solid #e7e6ff;
  border-radius: 16px;
  background: var(--register-surface);
}

.register-progress {
  position: absolute;
  z-index: 3;
  top: 38.4px;
  left: 35.2px;
  width: 523.6px;
  height: 22px;
  color: var(--register-primary);
  font-size: 16px;
  line-height: 22px;
}
.progress-track { position: absolute; top: 4px; left: 0; width: 476.3px; height: 14px; border-radius: 14.5px; background: #fff; }
.progress-fill { position: absolute; top: 3px; left: 3px; width: calc((469.7px * var(--progress)) / 100); height: 8px; border-radius: 7.5px; background: linear-gradient(90deg, #674fff, #0a68fe); }
.progress-number { position: absolute; top: 0; right: 0; }

.register-step { position: absolute; inset: 0; }
.field-block { position: absolute; margin: 0; padding: 0; border: 0; }
.field-label { display: block; height: 22px; margin: 0 0 8px; color: #333; font-size: 16px; font-weight: 600; line-height: 22px; }

.input-shell,
.select-shell,
.textarea-shell {
  width: 100%;
  border: 0;
  outline: 0;
  border-radius: 8px;
  color: #333;
  background: #fff;
  font-size: 20px;
}
.input-shell,
.select-shell { height: 53px; padding: 0 16px; line-height: 53px; }
.input-shell::placeholder,
.textarea-shell::placeholder { color: #999; opacity: 1; }
.input-shell[aria-invalid="true"],
.select-shell[aria-invalid="true"] { box-shadow: 0 0 0 2px rgba(255, 159, 50, .36); }
.select-wrap { position: relative; display: block; }
.select-shell { appearance: none; padding-right: 48px; color: #999; }
.select-shell:valid { color: #333; }
.select-wrap::after { position: absolute; top: 18px; right: 18px; width: 10px; height: 10px; border-right: 2px solid #333; border-bottom: 2px solid #333; content: ""; transform: rotate(45deg); pointer-events: none; }

.choice-row { display: flex; flex-wrap: wrap; gap: 8px; }
.choice { position: relative; display: block; height: 36px; margin: 0; }
.choice input,
.grade-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.choice span { display: grid; height: 36px; padding: 0 10px; place-items: center; border: 1px solid var(--register-border); border-radius: 6px; background: #fff; font-size: 20px; line-height: 28px; white-space: nowrap; }
.choice input:checked + span,
.grade-choice input:checked + span { border-color: transparent; color: var(--register-primary); background: var(--register-soft); font-weight: 500; }
.choice input:focus-visible + span,
.grade-choice input:focus-visible + span { outline: 2px solid #2d7efd; outline-offset: 2px; }
.subject-full,
.subject-short { font-weight: inherit; }
.subject-short { display: none; }

.step-basic .identity { top: 85.2px; left: 35.2px; width: 523.6px; }
.step-basic .year { top: 195px; left: 35.2px; width: 306.9px; }
.step-basic .nickname { top: 294.6px; left: 35.2px; width: 523.6px; }
.step-basic .gender { top: 413.4px; left: 35.2px; width: 96.8px; }
.step-basic .admission { top: 513px; left: 35.2px; width: 382.8px; }
.identity .choice:first-child span { min-width: 166px; }
.identity .choice:last-child span { min-width: 180px; }
.year .choice span { min-width: 87px; }

.register-actions { position: absolute; top: 616.8px; left: 43px; display: flex; width: 508px; height: 54px; gap: 8px; }
.flow-button { display: grid; height: 54px; flex: 1; place-items: center; border-radius: 8px; font-size: 20px; font-weight: 600; line-height: 28px; }
.flow-button.previous { color: var(--register-primary); background: #e2e6ff; }
.flow-button.primary { color: #fff; background: var(--register-button); box-shadow: inset 0 0 20px rgba(255,255,255,.4); }
.flow-button:focus-visible { outline: 2px solid #2d7efd; outline-offset: 3px; }

.grade-grid { position: absolute; top: 84px; left: 35.2px; display: grid; grid-template-columns: 218px 218px; grid-auto-rows: 62px; gap: 28.8px 87.6px; }
.grade-item { width: 218px; height: 62px; }
.grade-label { display: block; height: 22px; margin-bottom: 8px; font-size: 16px; font-weight: 600; line-height: 22px; }
.grade-choices { display: grid; height: 32px; grid-template-columns: 35px 34px 33px 35px 33px; gap: 12px; }
.grade-choice { position: relative; display: block; height: 32px; }
.grade-choice span { display: grid; width: 100%; height: 32px; place-items: center; border: 1px solid var(--register-border); border-radius: 6px; background: #fff; font-size: 20px; line-height: 24px; }

.step-skill .category { top: 84px; left: 35.2px; width: 523.6px; }
.step-skill .skill-pass { top: 228px; left: 35.2px; width: 385px; }
.step-skill .theory { top: 361.8px; left: 35.2px; width: 523.6px; }

.step-target .subjects { top: 84px; left: 35.2px; width: 523.6px; }
.subjects .choice span { min-width: 60px; }
.step-target .school { z-index: 7; top: 181.8px; left: 35.2px; width: 523.6px; }
.step-target .estimate { top: 298.2px; left: 35.2px; width: 523.6px; }
.step-target .tuition { top: 414.6px; left: 35.2px; width: 523.6px; }
.tuition .choice span { min-width: 132px; }
.step-target .priority { top: 512.4px; left: 35.2px; width: 523.6px; }
.priority .choice span { min-width: 60px; }

.school-suggestions { position: absolute; z-index: 8; top: 83px; left: 0; width: 100%; max-height: 220px; overflow-y: auto; padding: 8px; border: 1px solid var(--register-border); border-radius: 10px; background: #fff; box-shadow: 0 14px 30px rgba(44,59,94,.16); }
.school-option { display: flex; width: 100%; min-height: 42px; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 10px; border-radius: 7px; color: #333; background: transparent; font-size: 16px; line-height: 22px; text-align: left; }
.school-option:hover,
.school-option:focus-visible { color: var(--register-primary); background: #f2f3ff; outline: 0; }
.school-alias { flex: 0 0 auto; color: #999; font-size: 14px; }
.school-empty { padding: 10px; color: #999; font-size: 15px; line-height: 22px; }

.step-final { --group-x:35.2px; --field-width:523.6px; --group-gap:45px; --group-1-top:84px; --group-1-height:113px; --group-2-top:242px; --group-222-top:225px; --group-2-height:83px; --group-3-top:370px;--group-33-top:340px; --group-3-height:113px; --group-4-top:528px;--group-444-top:600px; --group-333-top:455px; }
.final-group { position: absolute; left: var(--group-x); width: var(--field-width); }
.final-group .field-block { position: static; width: 100%; }
.final-phone-group,
.final-password-group { display: grid; gap: 8px; }
.final-password-group2 { display: grid; gap: 8px; }
.final-phone-group { top: var(--group-1-top); }
.final-code-group { top: var(--group-222-top); }
.final-password-group { top: var(--group-33-top); }
.final-password-group2 { top: var(--group-333-top); }
.auto-register { margin: 0; color: #666; font-size: 16px; font-weight: 500; line-height: 22px; }
.phone-wrap,
.code-wrap { position: relative; display: block; }
.country-code,
.country-divider { display: none; }
.code-wrap .input-shell { padding-right: 144px; }
.send-code { position: absolute; top: 50%; right: 16px; height: 53px; transform: translateY(-50%); color: var(--register-primary); background: transparent; font-size: 20px; font-weight: 500; }
.send-code:disabled { color: #999; cursor: default; }
.agreement { display: flex; width: 100%; align-items: center; color: #4d4d4d; font-size: 16px; font-weight: 500; line-height: 22px; white-space: nowrap; }
.agreement input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0 8px 0 0; accent-color: var(--register-primary); }
.agreement a { color: var(--register-primary); }
.final-actions-group { top: var(--group-444-top); left: 43px; width: 508px; }

.notice-toast { position: absolute; z-index: 20; top: 540px; left: 960px; display: grid; width: 576px; min-height: 160px; grid-template-columns: 52px 1fr; align-items: center; gap: 20px; padding: 28px 32px; border: 1px solid #e2e1ff; border-radius: 16px; color: #221f34; background: rgba(255,255,255,.98); box-shadow: 0 0 0 9999px rgba(28,42,72,.16), 0 24px 64px rgba(44,59,94,.22); font-size: 16px; line-height: 24px; opacity: 0; pointer-events: none; transform: translate(-50%,-50%) scale(.96); transition: opacity .18s ease, transform .18s ease; }
.notice-toast.is-visible { opacity: 1; pointer-events: auto; transform: translate(-50%,-50%) scale(1); }
.notice-toast[data-tone="success"] { border-color: #bedcff; background: rgba(250,253,255,.98); }
.notice-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(135deg,#ffb24a,#ff8b2d); box-shadow: 0 8px 18px rgba(255,145,45,.22); font-size: 26px; font-weight: 700; }
.notice-toast[data-tone="success"] .notice-icon { background: linear-gradient(135deg,#674fff,#168cff); }
.notice-copy { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
.notice-title { font-size: 22px; line-height: 30px; }
[data-toast-message] { color: #666; }
.notice-close { position: absolute; top: 20px; right: 20px; display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #e2e7f4; border-radius: 50%; color: #667085; background: rgba(255,255,255,.92); }
.notice-close svg { width: 18px; height: 18px; }

.teacher-modal { position: absolute; z-index: 40; inset: 0; display: grid; place-items: center; background: rgba(25,35,61,.22); opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.teacher-modal.is-visible { opacity: 1; pointer-events: auto; }
.teacher-dialog { position: relative; width: 560px; padding: 48px 48px 44px; border: 1px solid #e0e5fb; border-radius: 20px; color: #221f34; background: rgba(255,255,255,.99); box-shadow: 0 30px 80px rgba(31,45,82,.24); }
.teacher-dialog-title { margin: 0; font-size: 30px; line-height: 42px; }
.teacher-dialog-subtitle { margin: 12px 0 0; color: #667085; font-size: 16px; line-height: 24px; }
.teacher-modal-close { position: absolute; top: 24px; right: 24px; display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; color: #333; background: transparent; }
.teacher-modal-close svg { width: 24px; height: 24px; }
.teacher-login-form { margin-top: 34px; }
.teacher-login-field { display: block; margin-top: 22px; }
.teacher-login-field:first-child { margin-top: 0; }
.teacher-login-label { display: block; margin-bottom: 10px; font-size: 16px; font-weight: 600; line-height: 22px; }
.teacher-phone-shell { display: flex; width: 100%; height: 56px; overflow: hidden; border: 1px solid #e1e6f4; border-radius: 8px; background: #f8faff; }
.teacher-phone-shell:focus-within { border-color: #2d7efd; box-shadow: 0 0 0 3px rgba(45,126,253,.12); }
.teacher-country { display: flex; flex: 0 0 108px; align-items: center; justify-content: center; gap: 8px; border-right: 1px solid #e1e6f4; font-size: 18px; font-weight: 500; }
.teacher-country svg { width: 16px; height: 16px; }
.teacher-login-input { width: 100%; height: 56px; padding: 0 18px; border: 1px solid #e1e6f4; border-radius: 8px; outline: 0; color: #333; background: #f8faff; font-size: 18px; line-height: 56px; }
.teacher-phone-shell .teacher-login-input { height: 54px; border: 0; border-radius: 0; background: transparent; }
.teacher-login-input:focus { border-color: #2d7efd; box-shadow: 0 0 0 3px rgba(45,126,253,.12); }
.teacher-phone-shell .teacher-login-input:focus { box-shadow: none; }
.teacher-login-input::placeholder { color: #a0a8b8; }
.teacher-login-help { margin: 24px 0 0; color: #667085; font-size: 15px; line-height: 24px; }
.teacher-login-help span { display: block; margin-top: 4px; color: #3450ff; }
.teacher-login-feedback { min-height: 22px; margin: 14px 0 0; color: #df7c38; font-size: 14px; line-height: 22px; }
.teacher-login-feedback[data-tone="success"] { color: #1e78d7; }
.teacher-login-button { width: 100%; height: 54px; margin-top: 10px; border-radius: 8px; color: #fff; background: var(--register-button); box-shadow: inset 0 0 20px rgba(255,255,255,.4); font-family: "Register Alibaba PuHuiTi", sans-serif; font-size: 18px; font-weight: 600; }
.step-target .subjects {
  top: 84px;
  left: 35.2px;
  width: 523.6px;
}
@media (min-width: 769px) {
  .step-target .school {
    top: 181.4px;
    left: 35.2px;
    width: 327.6px;
  }

  .step-target .estimate {
    top: 181.4px;
    left: 386.8px;
    width: 172px;
  }

  .step-target .school .input-shell,
  .step-target .estimate .input-shell {
    font-size: 20px;
  }

  .step-target .choice span { font-size: 18px; }
  .step-target .tuition { top: 295.8px; }
  .step-target .priority { top: 393.2px; }

  .step-target .supplement {
    top: 490.6px;
    left: 35.2px;
    width: 523.6px;
  }

  .step-target .supplement .textarea-shell {
    height: 53px;
    padding: 12px 16px;
    line-height: 26px;
    resize: none;
  }

  .step-target .register-actions { top: 605px; }
}
@media (hover:hover) and (pointer:fine) {
  .student-login-entry:hover strong { color: #3450ff; }
  .flow-button.primary:hover,
  .teacher-login-button:hover { filter: brightness(1.03); }
  .teacher-modal-close:hover,
  .notice-close:hover { color: #3450ff; background: #f2f4ff; }
}

@media (max-width:768px) {
  html,
  body { background: #f4f8fd; }
  .mobile-only { display: block; }
  .register-canvas,
  .register-page { width: 375px; height: 100%; }
  .register-page { background: #f4f8fd; }
  .register-page::after { display: none; }

  .register-art { top: -21px; left: 26px; width: 403px; height: 340.83px; -webkit-mask-image: url("../images/register-mobile-mask.svg"); mask-image: url("../images/register-mobile-mask.svg"); -webkit-mask-size: 403px 340.83px; mask-size: 403px 340.83px; }
  .register-art img { top: 61.538952px; left: -34.714378px; width: 484.140045px; height: 272.328796px; }

  .register-brand { top: 20px; left: 16px; width: 148px; height: 36px; }
  .register-brand-mark { width: 36px; height: 36px; }
  .register-brand-name { top: 0; left: 44.77px; font-family: "Register Alibaba PuHuiTi", sans-serif; font-size: 16px; letter-spacing: .96px; line-height: 22px; }
  .register-brand-ai { top: 3.542px; left: 99.17px; width: 48.063px; height: 14.953px; font-size: 16.333px; line-height: 14.953px; }
  .register-brand-caption { top: 20.58px; left: 44.77px; font-family: "Register Alibaba PuHuiTi", sans-serif; font-size: 11px; line-height: 15px; }

  .register-nav { top: 24px; left: 295px; width: 64px; height: 28px; justify-content: initial; gap: 8px; }
  .register-nav-link { display: grid; width: 28px; height: 28px; place-items: center; }
  .register-nav-link img { width: 24px; height: 24px; }
  .register-nav-link span { display: none; }

  .register-badge { display: none; }
  .register-headline { top: 132px; left: 16px; width: auto; height: auto; font-size: 32px; line-height: 45px; }
  .register-note { top: 230px; left: 16px; font-family: inherit; font-size: 10px; font-weight: 600; line-height: 14px; }
  .register-note span + span { margin-left: 4px; }
  .register-title { top: 280px; left: 16px; font-size: 14px; line-height: 20px; }
  .student-login-entry { top: 280px; right: 16px; font-size: 14px; line-height: 20px; }

  .register-card { top: 0; left: 0; width: 375px; height: 100%; overflow: visible; border: 0; border-radius: 0; background: transparent; }
  .register-progress { top: 305px; left: 16px; width: 343px; height: 20px; font-size: 14px; line-height: 20px; }
  .progress-track { top: 3px; width: 304px; }
  .progress-fill { width: calc((298px * var(--progress)) / 100); }
  .field-label { height: 20px; margin-bottom: 8px; font-size: 14px; line-height: 20px; }
  .input-shell,
  .select-shell { height: 46px; padding: 0 12px; font-size: 16px; line-height: 46px; background:#fff; color:#f4f5ff!important; }
  .select-wrap::after { top: 15px; }
  .choice { height: 30px; }
  .choice span { height: 30px; padding: 0 10px; font-size: 16px; line-height: 22px; }

  .step-basic .identity { top: 345px; left: 16px; width: 343px; }
  .step-basic .year { top: 423px; left: 16px; width: 260px; }
  .step-basic .nickname { top: 501px; left: 16px; width: 343px; }
  .step-basic .nickname .field-label { height: 22px; font-size: 16px; line-height: 22px; }
  .step-basic .gender { top: 597px; left: 16px; width: 100px; }
  .step-basic .admission { top: 675px; left: 16px; width: 343px; }
  .identity .choice:first-child span { width: 174px; min-width: 0; }
  .identity .choice:last-child span { width: 161px; min-width: 0; }
  .year .choice span { min-width: 74px; }

  .register-actions { left: 16px; width: 343px; height: 46px; gap: 12px; }
  .flow-button { height: 46px; font-size: 16px; line-height: 22px; }
  .step-basic .register-actions { top: 753px; }

  .grade-grid { top: 345px; left: 16px; width: 343px; grid-template-columns: 343px; grid-auto-rows: 28px; gap: 15px; }
  .grade-item { display: flex; width: 343px; height: 28px; align-items: center; justify-content: center; gap: 25px; }
  .grade-label { height: 22px; margin: 0; font-size: 16px; line-height: 22px; white-space: nowrap; }
  .grade-choices { width: 257px; height: 28px; grid-template-columns: repeat(5,45px); gap: 8px; }
  .grade-choice,
  .grade-choice span { height: 28px; font-size: 16px; line-height: 22px; }
  .step-grades .register-actions { top: 791px; }

  .step-skill .category { top: 345px; left: 16px; width: 343px; }
  .step-skill .skill-pass { top: 439px; left: 16px; width: 343px; }
  .step-skill .theory { top: 517px; left: 16px; width: 343px; }
  .step-skill .register-actions { top: 750px; }

  .step-target .subjects { top: 345px; left: 16px; width: 343px; }
  .step-target .subjects .choice-row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
  .step-target .subjects .choice span { width: 100%; min-width: 0; padding: 0 8px; white-space: nowrap; }
  .subject-full { display: none; }
  .subject-short { display: inline; }
  .step-target .school { top: 447px; left: 16px; width: 343px; }
  .step-target .school-suggestions { top: 76px; max-height: 196px; }
  .step-target .estimate { top: 543px; left: 16px; width: 343px; }
  .step-target .tuition { top: 639px; left: 16px; width: 343px; }
  .step-target .desktop-only { top: 717px; left: 16px; width: 343px; }
  
  .step-target .tuition .choice-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
  .step-target .tuition .choice span { width: 100%; min-width: 0; padding: 0 2px; font-size: 16px; white-space: nowrap; }
  .step-target .supplement { top: 797px; left: 16px; width: 343px; }
  .textarea-shell { height: 120px; padding: 12px; resize: none; font-size: 16px; line-height: 22px; }
  .step-target .register-actions { top: 977px; }
  .school-option { min-height: 40px; font-size: 14px; line-height: 20px; }
  .school-alias { font-size: 12px; }

  .step-final { --group-x:16px; --field-width:343px; --group-1-top:345px; --group-2-top:472px; --group-3-top:571px; --group-4-top:696px; --group-222-top:472px; --group-33-top:571px; --group-333-top:655px; --group-444-top:770px; }
  .phone-wrap { display: flex; width: 100%; height: 46px; align-items: center; overflow: hidden; border: 1px solid transparent; border-radius: 8px; background: #fff; }
  .phone-wrap:focus-within { border-color: #7c8fff; box-shadow: 0 0 0 3px rgba(63,90,255,.1); }
  .phone-wrap .input-shell { width: auto; min-width: 0; height: 100%; flex: 1; padding: 0 12px; border: 0; border-radius: 0; background: transparent; }
  .phone-wrap .input-shell[aria-invalid="true"] { box-shadow: none; }
  .country-code { display: flex; height: 100%; flex: 0 0 83px; align-items: center; justify-content: center; gap: 7px; font-size: 16px; white-space: nowrap; }
  .country-code-chevron { width: 14px; height: 14px; }
  .country-code-chevron path { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .country-divider { display: block; width: 1px; height: 16px; flex: 0 0 1px; background: #e7e8ea; }
  .auto-register { font-size: 12px; line-height: 20px; }
  .code-wrap .input-shell { padding-right: 116px; }
  .send-code { right: 12px; height: 46px; font-size: 16px; }
  .agreement { font-size: 12px; line-height: 18px; white-space: normal; }
  .agreement input { width: 12px; height: 12px; flex-basis: 12px; margin-right: 6px; }
  .final-actions-group { top: var(--group-444-top); left: 16px; width: 343px; }

  .notice-toast { top: 406px; left: 187.5px; width: 343px; min-height: 132px; grid-template-columns: 44px 1fr; gap: 14px; padding: 22px 20px; border-radius: 14px; font-size: 14px; line-height: 20px; }
  .notice-icon { width: 44px; height: 44px; font-size: 21px; }
  .notice-title { font-size: 18px; line-height: 25px; }
  .notice-close { top: 14px; right: 14px; width: 28px; height: 28px; }
  .notice-close svg { width: 14px; height: 14px; }

  .teacher-dialog { width: 343px; padding: 30px 24px 24px; border-radius: 16px; }
  .teacher-dialog-title { font-size: 22px; line-height: 31px; }
  .teacher-dialog-subtitle { margin-top: 8px; font-size: 14px; line-height: 20px; }
  .teacher-modal-close { top: 14px; right: 14px; width: 32px; height: 32px; }
  .teacher-modal-close svg { width: 20px; height: 20px; }
  .teacher-login-form { margin-top: 24px; }
  .teacher-login-field { margin-top: 16px; }
  .teacher-login-label { margin-bottom: 8px; font-size: 14px; line-height: 20px; }
  .teacher-phone-shell,
  .teacher-login-input { height: 46px; }
  .teacher-phone-shell .teacher-login-input { height: 44px; }
  .teacher-country { flex-basis: 86px; gap: 6px; font-size: 16px; }
  .teacher-country svg { width: 14px; height: 14px; }
  .teacher-login-input { padding: 0 12px; font-size: 16px; line-height: 46px; }
  .teacher-login-help { margin-top: 18px; font-size: 13px; line-height: 20px; }
  .teacher-login-feedback { min-height: 20px; margin-top: 10px; font-size: 12px; line-height: 20px; }
  .teacher-login-button { height: 46px; margin-top: 4px; font-size: 16px; }
}

/* 等待动画遮罩 */
.register-wait-overlay{position:fixed;z-index:9999;inset:0;display:flex;align-items:center;justify-content:center;}
.register-wait-overlay[hidden]{display:none!important;}
.register-wait-backdrop{position:absolute;inset:0;background:rgba(24,32,58,.36);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:register-wait-fade-in .2s ease;}
.register-wait-dialog{position:relative;display:grid;width:min(576px,90vw);min-height:160px;grid-template-columns:52px max-content;align-items:center;justify-content:center;gap:20px;padding:28px 32px;border:1px solid #e2e1ff;border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 24px 64px rgba(44,59,94,.18);animation:register-wait-scale-in .25s ease;}
.register-wait-icon{position:relative;display:grid;width:52px;height:52px;align-self:center;justify-self:center;place-items:center;border-radius:50%;color:#0a68fe;background:#f5f6ff;}
.register-wait-ring{position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(from 20deg,transparent 0 48%,#765efe 60%,#0a68fe 82%,transparent 94%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);animation:register-wait-spin 1.05s linear infinite;}
.register-wait-spark{font-size:25px;line-height:1;color:#0a68fe;}
.register-wait-status{min-width:0;align-self:center;margin:0;font-size:22px;font-weight:500;line-height:30px;white-space:pre-line;opacity:1;transition:opacity .14s ease,transform .14s ease;color:#221f34;}
.register-wait-status.is-changing{opacity:0;transform:translateY(3px);}
@keyframes register-wait-spin{to{transform:rotate(360deg);}}
@keyframes register-wait-fade-in{from{opacity:0;}to{opacity:1;}}
@keyframes register-wait-scale-in{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:scale(1);}}

/* 手机端等待动画 */
@media (max-width: 768px){
  .register-wait-dialog{width:min(343px,90vw);min-height:132px;grid-template-columns:44px max-content;gap:14px;padding:22px 20px;border-radius:14px;}
  .register-wait-icon{width:44px;height:44px;}
  .register-wait-spark{font-size:21px;}
  .register-wait-status{font-size:18px;line-height:25px;}
}

@media (prefers-reduced-motion: reduce){
  .register-wait-ring{animation:none;}
  .register-wait-backdrop,
  .register-wait-dialog,
  .register-wait-status{animation:none;transition:none;}
}
