/* ============================================================================
   StridorRT · ui/student.css — student surface skin (Step 2)
   ----------------------------------------------------------------------------
   Loaded LAST on index.html only. Two mechanisms, zero selector renames:

   1) VARIABLE RE-POINT, scoped to body[data-role="student"]: pulse.css rules
      read var(--accent), var(--surface)… — re-pointing those names to --s-*
      tokens repaints the whole surface onto the sim palette without touching
      pulse.css (which instructor/projector still read at its :root values
      until their steps).
   2) TARGETED OVERRIDES for the handful of rules that hardcode drift colors
      (#3df0b4 glows, #0b0f14/#10151c fills, rgba(36,201,160,…) rings) —
      same selectors, later cascade, token values.

   DOM contract: no ids/classes added, removed, or renamed anywhere.
   ========================================================================== */

body[data-role="student"]{
  /* neutrals */
  --canvas:var(--s-bg-0);   --bg-2:var(--s-bg-1);
  --surface:var(--s-bg-2);  --surface-2:var(--s-bg-3);  --raise:var(--s-bg-4);
  /* ink + hairlines */
  --ink:var(--s-ink);   --sub:var(--s-ink-2);  --mute:var(--s-ink-3);
  --faint:var(--s-ink-4);  --hair:var(--s-line);  --hair-2:var(--s-line-2);
  /* accent: THE drift fix — pulse's #24c9a0 → sim #22e0b0 (--teal aliases --accent) */
  --accent:var(--s-teal);  --accent-d:var(--s-teal-2);  --accent-ink:var(--s-on-teal);
  /* semantics */
  --good:var(--s-ok);  --mid:var(--s-warn);  --warn:var(--s-warn);  --risk:var(--s-danger);
  /* geometry + depth */
  --r:var(--s-r-lg);  --sh:var(--s-elev-1);  --sh-lg:var(--s-elev-2);

  background:var(--s-page-glow);
  background-attachment:fixed;
}

/* ---- gate: instrument panel over the live canvas (keeps the blur) -------- */
body[data-role="student"] .stu-gate{
  background:linear-gradient(180deg,rgba(15,22,33,.78),rgba(10,16,23,.82));
  border:1px solid var(--s-panel-line);
  border-radius:var(--s-r-xl);
  box-shadow:var(--s-elev-3,0 36px 90px rgba(0,0,0,.55));
}
/* wordmark glow: #3df0b4 → sim teal, same alphas */
body[data-role="student"] .stu-wm{
  color:var(--s-teal);
  text-shadow:0 0 24px rgba(var(--s-teal-rgb),.45),0 0 60px rgba(var(--s-teal-rgb),.25);
}
body[data-role="student"] .stu-beta{
  color:var(--s-teal);text-shadow:0 0 10px rgba(var(--s-teal-rgb),.6);
}
body[data-role="student"] .stu-input{
  background:var(--s-bg-1);border:1.5px solid var(--s-line-2);border-radius:var(--s-r-md);
}
body[data-role="student"] .stu-input:focus{
  border-color:var(--s-teal);box-shadow:0 0 0 3px rgba(var(--s-teal-rgb),.15);
}

/* ---- waiting wordmark ----------------------------------------------------- */
body[data-role="student"] .wait-title{
  text-shadow:0 0 28px rgba(var(--s-teal-rgb),.45),0 0 68px rgba(var(--s-teal-rgb),.26);
}
body[data-role="student"] .wait-beta{
  color:var(--s-teal);text-shadow:0 0 10px rgba(var(--s-teal-rgb),.6);
}

/* ---- student poll card ----------------------------------------------------
   Vars (--accent/--good/--risk) already re-pointed; these override only the
   hardcoded fills so states mix over the token base instead of #0b0f14.     */
body[data-role="student"] .poll-stu-card{
  background:linear-gradient(180deg,var(--s-panel-hi),var(--s-panel-lo));
  border:1px solid var(--s-line-2);border-radius:var(--s-r-xl);
}
body[data-role="student"] .poll-stu-stem,
body[data-role="student"] .poll-stu-waith{color:var(--s-ink)}
body[data-role="student"] .poll-stu-opt{
  background:var(--s-bg-1);border-color:var(--s-line-2);
  min-height:var(--s-tap);border-radius:var(--s-r-md);
}
body[data-role="student"] .poll-stu-opt.picked{
  border-color:var(--s-teal);
  background:color-mix(in srgb,var(--s-teal) 10%,var(--s-bg-1));
  box-shadow:var(--s-onring-teal);
}
body[data-role="student"] .poll-stu-opt.correct{
  border-color:var(--s-ok);
  background:color-mix(in srgb,var(--s-ok) 12%,var(--s-bg-1));
}
body[data-role="student"] .poll-stu-opt.wrong{
  border-color:var(--s-danger);
  background:color-mix(in srgb,var(--s-danger) 10%,var(--s-bg-1));
}
body[data-role="student"] .poll-stu-rat{background:var(--s-bg-1);color:var(--s-ink-2)}
body[data-role="student"] .poll-stu-clin-row{
  background:rgba(var(--s-teal-rgb),.06);border:1px solid rgba(var(--s-teal-rgb),.16);
  border-radius:var(--s-r-md);
}
/* the confirm action gets the sim's solid-teal treatment + phone tap height */
body[data-role="student"] .poll-go{
  background:var(--s-teal);color:var(--s-on-teal);border-radius:var(--s-r-md);
  min-height:48px;box-shadow:var(--s-glow-teal);touch-action:manipulation;
}
body[data-role="student"] .poll-go:hover{background:var(--s-teal-2);filter:none}

/* ---- keyboard focus + reduced motion (surface-wide, additive) ------------ */
body[data-role="student"] :is(button,input,select,a,[tabindex]):focus-visible{
  outline:none;box-shadow:var(--s-ring);
}
@media (prefers-reduced-motion:reduce){
  body[data-role="student"] *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ============ Stridor 2.0 — student gate additions ============ */
.stu-logo{display:block;width:132px;height:auto;margin:0 auto 2px;border-radius:14px;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.stu-acct{margin-top:18px;width:100%;max-width:340px}
.stu-linklike{appearance:none;background:none;border:0;color:#7fd6c0;font:600 12.5px/1.3 "Plus Jakarta Sans",system-ui,sans-serif;letter-spacing:.02em;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px}
.stu-acct-form{margin-top:10px;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(10,18,26,.55);display:flex;flex-direction:column;gap:9px}
.stu-acct-tabs{display:flex;gap:6px;margin-bottom:2px}
.stu-acct-tabs button{flex:1;appearance:none;border:1px solid rgba(255,255,255,.14);background:#121b26;color:#9db2c4;font:600 12px/1 "Plus Jakarta Sans";padding:8px 6px;border-radius:9px;cursor:pointer}
.stu-acct-tabs button.on{color:#0b1118;background:#3df0b4;border-color:#3df0b4}
.stu-btn-sec{background:#16324a;color:#bfe9ff}
.stu-acct-hint{font:500 11.5px/1.45 "Plus Jakarta Sans";color:#8aa0b2}
.stu-acct-badge{margin-top:10px;font:600 12.5px/1.5 "Plus Jakarta Sans";color:#bfeee0;background:rgba(61,240,180,.08);border:1px solid rgba(61,240,180,.3);border-radius:11px;padding:9px 12px}
.stu-acct-badge .stu-acct-check{color:#3df0b4;font-weight:800}
.stu-acct-link{color:#7fd6c0}
.hide{display:none!important}
