.student-body{min-height:100vh;background:var(--surface-soft,#f5f4ef)}.student-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem clamp(1rem,4vw,3rem);background:color-mix(in srgb,var(--surface,#fff) 94%,transparent);border-bottom:1px solid var(--line,#ddd);backdrop-filter:blur(12px)}.student-topbar .brand-logo{width:118px;height:auto}.student-topbar-actions{display:flex;align-items:center;gap:.6rem}.student-main{width:min(1240px,calc(100% - 2rem));margin:0 auto;padding:clamp(1.5rem,4vw,3.5rem) 0}.student-auth-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(2rem,6vw,5rem);align-items:center;min-height:70vh}.student-auth-intro h1,.section-heading h1{font-size:clamp(2rem,5vw,4rem);max-width:14ch;margin:.35rem 0 1rem;line-height:1}.student-auth-intro>p{font-size:1.08rem;max-width:58ch}.student-auth-intro li{margin:.65rem 0}.student-auth-card,.student-profile-form,.next-class-card{background:var(--surface,#fff);border:1px solid var(--line,#ddd);box-shadow:0 18px 50px rgb(28 35 31/.08);padding:clamp(1.25rem,3vw,2rem)}.student-auth-card form{display:grid;gap:1rem}.student-auth-card label,.student-profile-form label{display:grid;gap:.35rem}.student-auth-card input,.student-profile-form input,.student-profile-form select{min-height:46px}.turnstile-slot{min-height:66px}.student-profile-setup{max-width:920px;margin:0 auto}.student-profile-form{display:grid;gap:1.4rem}.student-app{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem)}.student-sidebar{position:sticky;top:92px;align-self:start;display:grid;gap:1.5rem;padding:1.3rem;border-left:4px solid var(--accent,#b6522f)}.student-sidebar>div{display:grid;gap:.25rem}.student-sidebar nav{display:grid;gap:.3rem}.student-nav-button{text-align:left;border:0;background:transparent;padding:.75rem .8rem;border-radius:.35rem;color:inherit}.student-nav-button.is-active{background:var(--accent,#b6522f);color:#fff}.student-workspace{min-width:0}.section-heading{margin-bottom:1.5rem}.section-heading.compact{margin-top:2rem}.section-heading.compact h2{margin:0}.next-class-card{display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:center;border-top:4px solid var(--accent,#b6522f)}.analytics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0}.metric{padding:1rem;background:var(--surface,#fff);border:1px solid var(--line,#ddd)}.metric strong{display:block;font-size:1.75rem}.course-list{display:grid;gap:.75rem}.student-course-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.1rem;background:var(--surface,#fff);border:1px solid var(--line,#ddd)}.course-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.status-chip{display:inline-flex;padding:.2rem .55rem;border-radius:999px;background:var(--surface-soft,#eee);font-size:.82rem}.explore-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.explore-card{display:grid;gap:.5rem;padding:1.4rem;border:1px solid var(--line,#ddd);background:var(--surface,#fff);color:inherit;text-decoration:none}.explore-card:hover{border-color:var(--accent,#b6522f)}.session-list{display:grid;gap:.65rem;margin-top:1rem}.session-item{padding:1rem;border-left:3px solid var(--accent,#b6522f);background:var(--surface,#fff)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:var(--accent,#b6522f)}@media(max-width:800px){.student-auth-layout,.student-app{grid-template-columns:1fr}.student-sidebar{position:static;border-left:0;border-bottom:1px solid var(--line,#ddd);padding:.5rem 0}.student-sidebar nav{display:flex;overflow-x:auto}.student-nav-button{white-space:nowrap}.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.next-class-card,.student-course-card{grid-template-columns:1fr}.course-actions{justify-content:flex-start}.explore-grid{grid-template-columns:1fr}}@media(max-width:480px){.student-main{width:min(100% - 1rem,1240px)}.student-topbar{padding:.6rem}.student-topbar .secondary-action{display:none}.analytics-grid{grid-template-columns:1fr}}

/* Keep the sign-in surface aligned to the shared spacing scale. */
.student-body .skip-link {
  top: 8px;
  left: 8px;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 12px 16px;
}

.student-topbar {
  padding: 8px clamp(16px, 4vw, 48px);
}

.student-topbar-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-height: 44px;
}

.student-topbar-actions .client-support,
.student-topbar-actions .theme-toggle {
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
}

.student-topbar-actions .client-support {
  display: inline-flex;
}

.student-auth-intro h1 {
  margin: 8px 0 16px;
}

.student-auth-card label {
  gap: 8px;
}

.student-auth-card input {
  padding: 12px 16px;
}

.student-auth-card .theme-toggle,
.theme-toggle {
  padding: 0;
}

.student-main {
  padding: clamp(24px, 4vw, 48px) 0;
}

.student-auth-layout {
  gap: clamp(24px, 6vw, 64px);
}

.student-auth-card {
  padding: clamp(24px, 3vw, 32px);
}

.student-auth-card .primary-action {
  gap: 8px;
  padding: 0;
}

.student-checkout-note,
.student-field-feedback {
  margin: 0;
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.4;
}

.student-checkout-note {
  padding: 0.7rem 0.8rem;
  border-left: 3px solid var(--accent);
  background: var(--surface-soft);
}

.student-field-feedback {
  min-height: 1.2em;
}

.student-field-feedback.is-error {
  color: var(--red, #b42318);
}

.student-field-feedback.is-success {
  color: var(--green, #0f7a55);
}

.student-profile-form input.field-valid {
  border-color: var(--green, #0f7a55);
}

.student-profile-form input[readonly] {
  background: var(--surface-soft);
}

.student-additional-details {
  grid-column: 1 / -1;
  border-top: 1px solid var(--border);
  padding-top: 16px;
}

.student-additional-details summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  cursor: pointer;
  font-weight: 600;
}

.student-additional-details summary small {
  color: var(--muted);
  font-weight: 400;
}

.student-additional-details > .field-grid {
  margin-top: 16px;
}
