.GetAppBanner_banner__0HiXI{margin:var(--space-page-y) var(--space-page-x) 0}.GetAppBanner_link__7aY9X{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-6);height:var(--control-h-md);padding:0 var(--space-12);border:1px solid var(--border-control);border-radius:var(--radius-control);background:var(--bg-surface);color:var(--text-primary);text-decoration:none;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out-quart),transform var(--dur-press) var(--ease-out-quart)}.GetAppBanner_link__7aY9X:active{transform:scale(0.97)}@media(hover: hover)and (pointer: fine){.GetAppBanner_link__7aY9X:hover{background:var(--bg-hover)}}.GetAppBanner_link__7aY9X:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;transition:none}@media(prefers-reduced-motion: reduce){.GetAppBanner_link__7aY9X{transition-duration:.01ms}.GetAppBanner_link__7aY9X:active{transform:none}}
/* Candidate portal — the two rules the portal still needs outside the cascade layers.
   The token block that used to live here died with the legacy candidate screens in P6;
   every screen under /candidates now reads the redesign tokens from app/globals.css. */

body {
  /* The app-wide stack, not the literal family name: next/font hashes the @font-face
     family and exposes it only through --font-inter, so a bare 'Inter' here matched
     nothing and dropped every candidate screen onto the system font. This rule is
     unlayered, so it beats the layered `html` rule in app/globals.css either way. */
  font-family: var(--font-sans);
  font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
  margin: 0;
  padding: 0;
  /* The portal's designed ground, so the candidate shell sits on the same colour every
     other portal does — this sheet was painting #f8fafc under it. */
  background-color: var(--bg-page);
  color: var(--text-primary);
  line-height: 1.5;
}

/* preflight resets every control to `border: 0 solid`, so this width is what draws the
   edge, in currentColor. It is a type selector, so any control whose module sets its own
   border still wins — this only reaches the ones that would otherwise have no boundary
   at all when the user has asked for more contrast. */
@media (prefers-contrast: high) {
  input,
  button {
    border-width: 3px;
  }
}

