:root {
  color: #182230;
  background: #f4f6f8;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html, body { width: 100%; min-width: 320px; min-height: 100%; margin: 0; }
button, input { font: inherit; }
button { cursor: pointer; }

.shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 32px 20px;
  background: #f4f6f8;
}

.panel {
  width: min(100%, 460px);
  padding: 32px;
  background: #fff;
  border: 1px solid #e3e7ec;
  border-radius: 8px;
  box-shadow: 0 12px 36px rgba(24, 34, 48, 0.08);
}

.brand { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 6px;
  color: #fff;
  background: #2167d5;
  font-size: 20px;
  font-weight: 700;
}
.brand h1 { margin: 0; font-size: 22px; line-height: 1.3; letter-spacing: 0; }
.brand p { margin: 2px 0 0; color: #7b8491; font-size: 12px; letter-spacing: 0; }

.tabs { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid #e3e7ec; margin-bottom: 24px; }
.tab {
  height: 44px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: #667080;
  background: transparent;
}
.tab.active { border-bottom-color: #2167d5; color: #2167d5; font-weight: 600; }

.field { margin: 0 0 18px; padding: 0; border: 0; }
.field label, .field legend { display: block; margin-bottom: 8px; color: #344054; font-size: 14px; }
.field input[type="text"], .field > input {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  border: 1px solid #cfd5dd;
  border-radius: 6px;
  outline: none;
  color: #182230;
  background: #fff;
}
.field > input:focus { border-color: #2167d5; box-shadow: 0 0 0 3px rgba(33, 103, 213, 0.12); }
.field > input::placeholder { color: #9aa3af; }

.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.segmented label { margin: 0; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span {
  display: grid;
  place-items: center;
  height: 42px;
  border: 1px solid #cfd5dd;
  border-radius: 6px;
  color: #525d6d;
}
.segmented input:checked + span { border-color: #2167d5; color: #2167d5; background: #eef5ff; font-weight: 600; }

.error { min-height: 20px; margin: -2px 0 10px; color: #c43838; font-size: 13px; }
.primary {
  width: 100%;
  height: 44px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  background: #2167d5;
  font-weight: 600;
}
.primary:hover { background: #1959bd; }
.primary:disabled { cursor: wait; opacity: 0.65; }
.hidden { display: none !important; }
.classroom { position: fixed; inset: 0; width: 100vw; height: 100vh; background: #111827; }

@media (max-width: 520px) {
  .shell { align-items: start; padding: 16px; }
  .panel { margin-top: 5vh; padding: 24px 20px; }
}
