/* Shared mobile layout for the free test, preparation battery, full battery,
   results and invitation form. Answer values and scoring stay untouched. */
html { -webkit-text-size-adjust:100%; scroll-padding-bottom:24px }
body { padding-bottom:env(safe-area-inset-bottom, 0px) }
input:not([type=checkbox]):not([type=radio]), textarea, select { font-size:16px!important; min-height:48px; min-width:0; max-width:100% }
input, textarea, button, a { touch-action:manipulation }
input, textarea { scroll-margin-block:90px 24px }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible {
  outline:2px solid var(--gold, #c9a96e); outline-offset:3px;
}
.btn { min-height:48px; max-width:100%; white-space:normal; overflow-wrap:anywhere; text-align:center }
.wrap, .card, .qitem, .registration, .gate { min-width:0 }
.hero h1, .rhero h1, .resHead h2, .qtext, .qt, .notice, .foot, .registrationNote { overflow-wrap:anywhere }
.runHead .back, a.back, .slotbtn { display:inline-flex; align-items:center; min-height:48px }
.topbar > a.homelink, .topbar > a.emblem { display:inline-flex; align-items:center; justify-content:center; min-width:48px; min-height:48px }
.mburger { width:48px; height:48px }
.mnav a, .consent, label.agree, .registrationConsent, label.mode, .videostub summary { min-height:48px }
.likert button, .opts button { min-height:48px }
.restable td, .restable th { overflow-wrap:anywhere }
@media(max-width:640px) {
  .wrap { padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right)) }
  .topbar { flex-wrap:wrap; gap:8px; padding:12px max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left)) }
  .topbar .brand { flex:1; min-width:130px; font-size:17px }
  .topbar .spacer { display:none }
  .card, .registration, .gate, .leadbox, .cta, .sessionCta { padding:20px }
  .qitem { padding:16px 14px }
  .likert { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px }
  .likert:has(button:nth-child(6):last-child) { grid-template-columns:repeat(3,minmax(0,1fr)) }
  .likert button { min-width:0; padding:12px 6px; font-size:16px }
  .likert .lbl { font-size:12px; line-height:1.4; opacity:1 }
  .navrow { flex-wrap:wrap }
  .navrow .btn { flex:1; padding-inline:16px }
  .mptop, .arow, .slotrow { flex-wrap:wrap }
  .restable { table-layout:fixed; font-size:13px }
  .restable th, .restable td { padding:10px 6px }
  .restable .badge { white-space:normal }
  .slotbtn { width:100%; margin-left:0 }
  .foot { padding:24px 16px 36px }
}
/* Six 48px choices need two rows on the narrowest phones. */
@media(max-width:399px) {
  .opts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px }
  .likert:has(button:nth-child(6):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:359px) {
  .opts { gap:5px }
  .opts button { min-width:0 }
  .registration .btn, .gate .btn { padding-inline:12px }
}
