.fast-count-trainer-view,
.fast-count-foundation-specimen {
  /* GO Judge Hub UI Foundation — Fast Count pilot */
  --ui-space-1: 4px; --ui-space-2: 8px; --ui-space-3: 12px; --ui-space-4: 16px; --ui-space-5: 24px; --ui-space-6: 32px;
  --ui-radius-sm: 6px; --ui-radius-md: 10px; --ui-radius-lg: 14px; --ui-radius-round: 999px;
  --ui-control-sm: 32px; --ui-control-md: 40px; --ui-control-lg: 48px;
  --ui-font-xs: 12px; --ui-font-sm: 14px; --ui-font-md: 16px; --ui-font-lg: 18px; --ui-font-xl: 22px; --ui-font-title: 30px; --ui-font-display: 36px;
  --ui-line-tight: 1.2; --ui-line-body: 1.5;
  --ui-weight-regular: 400; --ui-weight-medium: 600; --ui-weight-semibold: 700; --ui-weight-bold: 800;
  --ui-border-width: 1px; --ui-border-strong-width: 2px; --ui-border-color: #c9d3df; --ui-border-strong: #8ea2b7;
  --ui-surface: var(--panel, #fffdf8); --ui-surface-muted: var(--soft, #f4f7fa); --ui-surface-raised: #fff; --ui-surface-emphasis: #e7f1ff;
  --ui-text: var(--ink, #17212f); --ui-text-muted: #526176; --ui-text-subtle: #6c788a;
  --ui-accent: #1677e8; --ui-accent-strong: #0758b8; --ui-accent-soft: #e7f1ff;
  --ui-success: #078348; --ui-success-soft: #dcf5e7; --ui-danger: #c9254c; --ui-danger-soft: #fde3e9; --ui-warning: #9a6800; --ui-warning-soft: #fff0b3;
  --ui-focus-ring: 0 0 0 3px rgba(22,119,232,.32); --ui-shadow-sm: 0 2px 6px rgba(23,33,47,.12); --ui-shadow-md: 0 12px 28px rgba(23,33,47,.18);
  --ui-icon-sm: 16px; --ui-icon-md: 20px; --ui-icon-lg: 24px;
  --ui-card-padding: var(--ui-space-4); --ui-sheet-padding: var(--ui-space-4);
  --ui-type-strong: var(--move-color, #66788c); --ui-type-normal: color-mix(in srgb, var(--ui-type-strong) 88%, #17212f); --ui-type-soft: color-mix(in srgb, var(--ui-type-strong) 24%, var(--ui-surface));
  --ui-progress-track: #d7e0e9; --ui-progress-fill: var(--ui-success);
  --fc-blue: var(--ui-accent); --fc-blue-dark: var(--ui-accent-strong); --fc-green: var(--ui-success); --fc-red: var(--ui-danger); --fc-gold: #e0a817; --fc-paper: var(--ui-surface-raised);
  color: var(--ui-text);
}
body[data-theme="dark"] .fast-count-trainer-view, body[data-theme="neo"] .fast-count-trainer-view, .fast-count-foundation-specimen[data-theme="dark"] {
  --ui-border-color: #405168; --ui-border-strong: #667b94; --ui-surface: #182231; --ui-surface-muted: #202c3b; --ui-surface-raised: #111a28; --ui-surface-emphasis: #153352;
  --ui-text: #edf3f8; --ui-text-muted: #bdc7d4; --ui-text-subtle: #9cabc0; --ui-accent: #39a3ff; --ui-accent-strong: #86c8ff; --ui-accent-soft: #153b5f;
  --ui-success: #26c977; --ui-success-soft: #123d2a; --ui-danger: #ff5279; --ui-danger-soft: #4a1e2c; --ui-warning: #ffc93d; --ui-warning-soft: #4b3b0d;
  --ui-progress-track: #34455a; --ui-focus-ring: 0 0 0 3px rgba(57,163,255,.38); --ui-shadow-sm: 0 2px 8px rgba(0,0,0,.28); --ui-shadow-md: 0 14px 32px rgba(0,0,0,.4);
}
.fast-count-trainer-view, .fast-count-trainer-view *, .fast-count-foundation-specimen, .fast-count-foundation-specimen * { box-sizing: border-box; }
.fast-count-trainer-view { width: min(100%, 1120px); margin: 0 auto; }
.fast-count-trainer-view section { width: 100%; max-width: none; }

/* Shared buttons, controls and surfaces. */
.fast-count-trainer-view .ui-button, .fast-count-foundation-specimen .ui-button { min-width: 0; display: inline-flex; align-items: center; justify-content: center; gap: var(--ui-space-2); padding-inline: var(--ui-space-3); border: var(--ui-border-width) solid transparent; border-radius: var(--ui-radius-md); font-size: var(--ui-font-sm); font-weight: var(--ui-weight-bold); line-height: var(--ui-line-tight); box-shadow: none; }
.fast-count-trainer-view .ui-button--sm, .fast-count-foundation-specimen .ui-button--sm { min-height: var(--ui-control-sm); padding-inline: var(--ui-space-2); font-size: var(--ui-font-xs); }
.fast-count-trainer-view .ui-button--md, .fast-count-foundation-specimen .ui-button--md { min-height: var(--ui-control-md); }
.fast-count-trainer-view .ui-button--lg, .fast-count-foundation-specimen .ui-button--lg { min-height: var(--ui-control-lg); padding-inline: var(--ui-space-4); font-size: var(--ui-font-lg); }
.fast-count-trainer-view .ui-button--primary, .fast-count-foundation-specimen .ui-button--primary { border-color: var(--ui-accent-strong); background: var(--ui-accent); color: #fff; }
.fast-count-trainer-view .ui-button--secondary, .fast-count-foundation-specimen .ui-button--secondary { border-color: var(--ui-border-color); background: var(--ui-surface); color: var(--ui-text); }
.fast-count-trainer-view .ui-button--ghost, .fast-count-foundation-specimen .ui-button--ghost { background: transparent; color: var(--ui-accent-strong); }
.fast-count-trainer-view .ui-button--danger, .fast-count-foundation-specimen .ui-button--danger { border-color: var(--ui-danger); background: var(--ui-danger); color: #fff; }
.fast-count-trainer-view .ui-button:hover, .fast-count-foundation-specimen .ui-button:hover, .fast-count-foundation-specimen .ui-button.is-hover { filter: brightness(.94); transform: none; }
.fast-count-trainer-view .ui-button:active, .fast-count-foundation-specimen .ui-button:active, .fast-count-foundation-specimen .ui-button.is-pressed { filter: brightness(.88); transform: translateY(1px); }
.fast-count-trainer-view .ui-button:disabled, .fast-count-foundation-specimen .ui-button:disabled { cursor: not-allowed; opacity: .5; filter: none; }
.fast-count-trainer-view :is(button,input,select,summary,[tabindex]):focus-visible, .fast-count-foundation-specimen :is(button,input,select,summary,[tabindex]):focus-visible, .fast-count-foundation-specimen .is-focused { outline: none; box-shadow: var(--ui-focus-ring); }
.fast-count-trainer-view :is(input,select), .fast-count-foundation-specimen :is(input,select,.ui-control) { min-height: var(--ui-control-md); padding-inline: var(--ui-space-3); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface-raised); color: var(--ui-text); font-size: var(--ui-font-md); font-weight: var(--ui-weight-semibold); line-height: var(--ui-line-tight); }
.fast-count-trainer-view :is(input,select):disabled, .fast-count-foundation-specimen :is(input,select):disabled { opacity: .5; cursor: not-allowed; }
.fast-count-trainer-view :is(.fast-count-context,.fast-count-challenge,.fast-count-learn,.fast-count-summary,.fast-count-side,.fast-count-rail), .fast-count-foundation-specimen .ui-surface { border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-lg); background: var(--ui-surface); }
.fast-count-trainer-view :is(.fast-count-context,.fast-count-challenge,.fast-count-learn,.fast-count-summary,.fast-count-side,.fast-count-rail), .fast-count-foundation-specimen .ui-surface--card { padding: var(--ui-card-padding); box-shadow: var(--ui-shadow-sm); }
.fast-count-foundation-specimen .ui-surface--flat { border-radius: var(--ui-radius-md); background: var(--ui-surface-muted); }
.fast-count-foundation-specimen .ui-surface--emphasis { border-color: var(--ui-accent); background: var(--ui-accent-soft); }

/* Trainer composition. */
.fast-count-shell { min-width: 0; display: grid; gap: var(--ui-space-3); color: var(--ui-text); }
.fast-count-head { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(210px,.55fr); align-items: center; gap: var(--ui-space-3); padding: var(--ui-space-1); }
.fast-count-title { min-width: 0; }
.fast-count-eyebrow, .fast-count-rank { display: block; color: var(--ui-accent); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-bold); letter-spacing: .06em; text-transform: uppercase; }
.fast-count-head h1 { margin: 0; font-size: var(--ui-font-title); line-height: var(--ui-line-tight); }
.fast-count-mode-trigger { min-height: var(--ui-control-md); border-color: var(--ui-warning); background: var(--ui-warning-soft); color: #15244a; }
.fast-count-mode-trigger > .fast-count-mode-trigger-icon { color: var(--ui-accent-strong); font-size: var(--ui-icon-md); }
.fast-count-mode-trigger-copy { color: inherit; font-size: var(--ui-font-sm); white-space: nowrap; }
.fast-count-mode-trigger-copy small { color: inherit; font-size: inherit; font-weight: var(--ui-weight-semibold); opacity: .72; }
.fast-count-mode-trigger i { font-style: normal; }
.fast-count-session-status { min-width: 0; display: grid; grid-template-columns: auto minmax(70px,1fr) auto; align-items: center; gap: var(--ui-space-2); }
.fast-count-session-status > span { color: var(--ui-text-muted); font-size: var(--ui-font-sm); font-weight: var(--ui-weight-semibold); white-space: nowrap; }
.fast-count-session-status > span strong { color: var(--ui-text); font-size: var(--ui-font-xl); }
.fast-count-session-status [role="progressbar"], .ui-progress { height: var(--ui-space-2); overflow: hidden; border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-round); background: var(--ui-progress-track); }
.fast-count-session-status [role="progressbar"] i, .ui-progress i { display: block; height: 100%; border-radius: inherit; background: var(--ui-progress-fill); }
.fast-count-session-status .fast-count-streak, .ui-streak { min-width: var(--ui-control-md); padding: var(--ui-space-1) var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-danger); border-radius: var(--ui-radius-round); color: var(--ui-danger); font-weight: var(--ui-weight-bold); text-align: center; }
.fast-count-mode-bar { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: var(--ui-space-1); padding: var(--ui-space-1); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface-muted); }
.fast-count-mode-bar button { min-width: 0; min-height: var(--ui-control-md); padding: var(--ui-space-2); border: var(--ui-border-width) solid transparent; border-radius: var(--ui-radius-sm); background: transparent; color: var(--ui-text-muted); box-shadow: none; font-size: var(--ui-font-sm); font-weight: var(--ui-weight-semibold); white-space: nowrap; }
.fast-count-mode-bar button:hover { background: var(--ui-surface); color: var(--ui-text); transform: none; }
.fast-count-mode-bar button[aria-selected="true"] { border-color: var(--ui-warning); background: var(--ui-warning-soft); color: #15244a; }
.fast-count-workspace { min-width: 0; display: grid; grid-template-columns: minmax(470px, 1.7fr) minmax(245px, .72fr); gap: var(--ui-space-3); align-items: start; }
.fast-count-main { min-width: 0; display: grid; gap: var(--ui-space-2); }
.fast-count-context { display: grid; grid-template-columns: minmax(210px,.85fr) minmax(250px,1.15fr); align-items: center; gap: var(--ui-space-3); }
.fast-count-pokemon-head { min-width: 0; display: grid; grid-template-columns: 68px minmax(0,1fr); align-items: center; gap: var(--ui-space-2); }
.fast-count-pokemon-head img { width: 68px; height: 68px; object-fit: contain; filter: drop-shadow(0 2px 3px rgba(23,33,47,.16)); }
.fast-count-pokemon-head h2 { margin: 0 0 var(--ui-space-1); overflow-wrap: anywhere; font-size: var(--ui-font-xl); line-height: var(--ui-line-tight); }
.fast-count-types { display: none; }
.fast-count-moves { min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ui-space-2); }
.fast-count-move-chip, .fast-count-throw[style*="--move-color"], .fast-count-learn-grid article, .ui-move-row, .ui-chip--type { --ui-type-strong: var(--move-color, #66788c); --ui-type-normal: color-mix(in srgb, var(--ui-type-strong) 88%, #17212f); --ui-type-soft: color-mix(in srgb, var(--ui-type-strong) 24%, var(--ui-surface)); }
.fast-count-move-chip, .ui-move-row { min-width: 0; min-height: var(--ui-control-md); display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: var(--ui-space-2); padding: var(--ui-space-2) var(--ui-space-3); border: var(--ui-border-strong-width) solid var(--ui-type-normal); border-left-width: 6px; border-radius: var(--ui-radius-md); background: linear-gradient(135deg, var(--ui-type-strong), color-mix(in srgb, var(--ui-type-strong) 78%, #fff)); color: #fff; box-shadow: var(--ui-shadow-sm); }
.fast-count-move-chip > span, .ui-move-row > span { min-width: 0; display: grid; gap: 2px; overflow-wrap: anywhere; font-size: var(--ui-font-sm); font-weight: var(--ui-weight-bold); line-height: var(--ui-line-tight); }
.fast-count-move-chip > strong, .ui-move-row > strong { color: #fff; font-size: var(--ui-font-md); font-weight: var(--ui-weight-bold); }
.fast-count-move-chip small { display: none; }
.fast-count-move-chip .fast-count-move-kind { display: block; color: rgba(255,255,255,.82); font-size: 10px; font-weight: var(--ui-weight-bold); letter-spacing: .08em; text-transform: uppercase; }
.fast-count-pokemon-head .fast-count-move-chip { min-height: var(--ui-control-md); }
.fast-count-challenge { display: grid; gap: var(--ui-space-3); text-align: center; }
.fast-count-throw-context { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ui-space-2); }
.fast-count-throw { min-width: 0; min-height: calc(var(--ui-control-lg) + var(--ui-space-2)); display: grid; align-content: center; gap: var(--ui-space-1); padding: var(--ui-space-2) var(--ui-space-3); border: var(--ui-border-width) solid var(--ui-type-normal); border-left: var(--ui-space-1) solid var(--ui-type-strong); border-radius: var(--ui-radius-md); background: var(--ui-type-soft); text-align: left; }
.fast-count-throw span, .fast-count-challenge-top { color: var(--ui-text-muted); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-semibold); text-transform: uppercase; }
.fast-count-throw strong { min-width: 0; overflow-wrap: anywhere; font-size: var(--ui-font-lg); line-height: var(--ui-line-tight); }
.fast-count-throw small { color: var(--ui-type-strong); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-bold); }
.fast-count-challenge > h2 { display: grid; gap: var(--ui-space-1); margin: 0; font-size: var(--ui-font-xl); line-height: var(--ui-line-tight); }
.fast-count-challenge > h2 span { font-weight: var(--ui-weight-semibold); }
.fast-count-challenge > h2 strong { color: var(--fast-move-color, var(--ui-success)); font-size: var(--ui-font-title); }
.fast-count-clue { margin: 0; color: var(--ui-text-muted); font-size: var(--ui-font-sm); }
.fast-count-clue strong { color: var(--ui-text); }
.fast-count-answers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ui-space-2); }
.fast-count-answers button, .ui-answer { min-width: 0; min-height: 64px; display: grid; place-content: center; gap: var(--ui-space-1); padding: var(--ui-space-2); border: var(--ui-border-strong-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface-raised); color: var(--ui-text); box-shadow: var(--ui-shadow-sm); }
.fast-count-answers button:hover, .ui-answer:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); transform: none; }
.fast-count-answers button span, .ui-answer strong { font-size: var(--ui-font-title); font-weight: var(--ui-weight-bold); }
.fast-count-answers button small, .ui-answer small { color: var(--ui-text-subtle); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-semibold); }
.fast-count-answers button.is-answer { border-color: var(--ui-success); background: var(--ui-success-soft); color: var(--ui-success); }
.fast-count-answers button.is-answer::before { content: "✓"; }
.fast-count-answers button.is-wrong { border-color: var(--ui-danger); background: var(--ui-danger-soft); color: var(--ui-danger); }
.fast-count-answers button.is-wrong::before { content: "×"; }
.fast-count-challenge.is-feedback { border-color: var(--ui-success); background: var(--ui-success-soft); }
.fast-count-challenge.is-feedback.is-incorrect { border-color: var(--ui-danger); background: var(--ui-danger-soft); }
.fast-count-feedback { display: grid; gap: var(--ui-space-3); padding: var(--ui-space-2); border: 0; background: transparent; text-align: left; }
.fast-count-feedback-result { display: flex; align-items: center; justify-content: center; gap: var(--ui-space-3); padding: var(--ui-space-1); text-align: left; }
.fast-count-feedback-result > span, .ui-feedback-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--ui-success); color: #fff; font-size: var(--ui-font-display); font-weight: var(--ui-weight-bold); }
.fast-count-feedback-result strong { color: var(--ui-success); font-size: var(--ui-font-title); line-height: var(--ui-line-tight); }
.fast-count-feedback-result p { margin: var(--ui-space-1) 0 0; color: var(--ui-success); font-size: var(--ui-font-lg); font-weight: var(--ui-weight-bold); }
.fast-count-feedback.is-incorrect .fast-count-feedback-result > span { background: var(--ui-danger); }
.fast-count-feedback.is-incorrect .fast-count-feedback-result strong, .fast-count-feedback.is-incorrect .fast-count-feedback-result p { color: var(--ui-danger); }
.ui-feedback { display: flex; align-items: center; gap: var(--ui-space-3); padding: var(--ui-space-3); border: var(--ui-border-width) solid currentColor; border-radius: var(--ui-radius-lg); font-weight: var(--ui-weight-semibold); }
.ui-feedback--success { background: var(--ui-success-soft); color: var(--ui-success); } .ui-feedback--error { background: var(--ui-danger-soft); color: var(--ui-danger); } .ui-feedback--warning { background: var(--ui-warning-soft); color: var(--ui-warning); }
.fast-count-math { overflow: hidden; border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface); }
.fast-count-math p { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--ui-space-3); margin: 0; padding: var(--ui-space-2) var(--ui-space-3); font-size: var(--ui-font-sm); }
.fast-count-math p + p { border-top: var(--ui-border-width) solid var(--ui-border-color); }
.fast-count-math p:last-child, .fast-count-math strong { font-weight: var(--ui-weight-bold); }
.fast-count-math .is-positive { color: var(--ui-success); } .fast-count-math .is-negative { color: var(--ui-danger); }
.fast-count-equation { margin: 0; padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-success); border-radius: var(--ui-radius-md); background: var(--ui-success-soft); color: var(--ui-success); font-size: var(--ui-font-lg); font-weight: var(--ui-weight-bold); text-align: center; }
.fast-count-next { width: 100%; } .fast-count-next span, .fast-count-details-trigger span { font-size: var(--ui-icon-md); }
.fast-count-rail { display: grid; gap: var(--ui-space-2); }
.fast-count-rail > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ui-space-2); }
.fast-count-rail > div:first-child strong { color: var(--ui-success); font-size: var(--ui-font-md); } .fast-count-rail > div:first-child strong b { font-size: var(--ui-font-xl); } .fast-count-rail > div:first-child span { color: var(--ui-text-muted); font-size: var(--ui-font-xs); }
.fast-count-rail-track, .ui-bank-cells { min-width: 0; display: grid; grid-template-columns: repeat(var(--rail-count,6),minmax(0,1fr)); gap: var(--ui-space-1); }
.fast-count-rail-track span, .ui-bank-cells span { min-width: 0; height: 28px; display: grid; place-items: center; border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-sm); background: var(--ui-accent-soft); color: var(--ui-text-muted); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-semibold); }
.fast-count-rail-track span.is-active, .ui-bank-cells span.is-active { border-color: var(--ui-success); background: var(--ui-success); color: #fff; }
.fast-count-details-trigger { width: 100%; }
.fast-count-side { display: grid; gap: var(--ui-space-3); }
.fast-count-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--ui-space-2); }
.fast-count-stats > span { min-width: 0; display: grid; gap: var(--ui-space-1); padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface-muted); text-align: center; }
.fast-count-stats small { color: var(--ui-text-muted); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-semibold); text-transform: uppercase; } .fast-count-stats strong { font-size: var(--ui-font-lg); }
.fast-count-history { display: grid; gap: var(--ui-space-2); } .fast-count-history h2, .fast-count-method-key h3 { margin: 0; font-size: var(--ui-font-md); }
.fast-count-history > div { min-width: 0; display: grid; grid-template-columns: var(--ui-icon-lg) minmax(0,1fr) auto; align-items: center; gap: var(--ui-space-2); padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-sm); }
.fast-count-history > div > span { width: var(--ui-icon-lg); height: var(--ui-icon-lg); display: grid; place-items: center; border-radius: 50%; background: var(--ui-success); color: #fff; font-weight: var(--ui-weight-bold); } .fast-count-history > div.is-incorrect > span { background: var(--ui-danger); }
.fast-count-history p { min-width: 0; margin: 0; } .fast-count-history p strong, .fast-count-history p small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fast-count-history p strong, .fast-count-history b { font-size: var(--ui-font-xs); } .fast-count-history p small, .fast-count-how p { color: var(--ui-text-muted); font-size: var(--ui-font-xs); }
.fast-count-empty { margin: 0; padding: var(--ui-space-3); color: var(--ui-text-muted); font-size: var(--ui-font-xs); text-align: center; }
.fast-count-how { border-top: var(--ui-border-width) solid var(--ui-border-color); } .fast-count-how summary { padding: var(--ui-space-2) 0; color: var(--ui-accent-strong); font-size: var(--ui-font-sm); font-weight: var(--ui-weight-bold); cursor: pointer; }
.fast-count-how div { display: grid; gap: var(--ui-space-1); } .fast-count-how p { margin: 0; line-height: var(--ui-line-body); } .fast-count-how strong { color: var(--ui-text); }
.fast-count-picker { position: relative; display: grid; gap: var(--ui-space-1); min-width: 0; }
.fast-count-picker > label, .fast-count-details-controls .fast-count-difficulty { color: var(--ui-text-muted); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-bold); text-transform: uppercase; }
.fast-count-picker-control { position: relative; } .fast-count-picker input { width: 100%; max-width: none; }
.fast-count-picker-options { position: absolute; inset: calc(100% + var(--ui-space-1)) 0 auto; z-index: 6; max-height: min(54vh,380px); display: grid; gap: var(--ui-space-1); overflow-y: auto; overscroll-behavior: contain; padding: var(--ui-space-1); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface); box-shadow: var(--ui-shadow-md); }
.fast-count-picker-options button { min-width: 0; min-height: var(--ui-control-lg); display: grid; grid-template-columns: var(--ui-control-md) minmax(0,1fr); align-items: center; gap: var(--ui-space-2); padding: var(--ui-space-1) var(--ui-space-2); border: var(--ui-border-width) solid transparent; border-radius: var(--ui-radius-sm); background: transparent; color: var(--ui-text); text-align: left; box-shadow: none; }
.fast-count-picker-options button:hover, .fast-count-picker-options button.is-active { border-color: var(--ui-accent); background: var(--ui-accent-soft); transform: none; } .fast-count-picker-options button[aria-selected="true"] { border-left: var(--ui-space-1) solid var(--ui-success); }
.fast-count-picker-options img { width: var(--ui-control-md); height: var(--ui-control-md); object-fit: contain; } .fast-count-picker-options span { min-width: 0; }
.fast-count-picker-options strong, .fast-count-picker-options small { display: block; min-width: 0; overflow-wrap: anywhere; } .fast-count-picker-options strong { font-size: var(--ui-font-sm); } .fast-count-picker-options small { margin-top: var(--ui-space-1); color: var(--ui-text-muted); font-size: var(--ui-font-xs); }
.fast-count-picker-empty { margin: 0; padding: var(--ui-space-3); color: var(--ui-text-muted); font-size: var(--ui-font-xs); text-align: center; }
.fast-count-learn { display: grid; gap: var(--ui-space-3); } .fast-count-learn-intro { display: grid; gap: var(--ui-space-1); text-align: center; }
.fast-count-learn-intro > span { color: var(--ui-success); font-size: var(--ui-font-sm); font-weight: var(--ui-weight-bold); } .fast-count-learn-intro h2 { margin: 0; font-size: var(--ui-font-xl); }
.fast-count-learn-intro p, .fast-count-learn-grid article > p { margin: 0; color: var(--ui-text-muted); font-size: var(--ui-font-xs); line-height: var(--ui-line-body); }
.fast-count-learn-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ui-space-2); }
.fast-count-learn-grid article { display: grid; gap: var(--ui-space-2); padding: var(--ui-space-3); border: var(--ui-border-width) solid var(--ui-type-normal); border-top: var(--ui-space-1) solid var(--ui-type-strong); border-radius: var(--ui-radius-md); background: var(--ui-type-soft); }
.fast-count-learn-grid header { display: flex; justify-content: space-between; gap: var(--ui-space-2); padding: 0; border: 0; background: transparent; color: var(--ui-text); box-shadow: none; } .fast-count-learn-grid header span { font-size: var(--ui-font-sm); font-weight: var(--ui-weight-bold); } .fast-count-learn-grid header strong { color: var(--ui-text); font-size: var(--ui-font-lg); } .fast-count-learn-grid header small { display: block; color: var(--ui-text-muted); font-size: var(--ui-font-xs); text-align: right; }
.fast-count-derivation { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--ui-space-1); } .fast-count-derivation span { display: grid; gap: var(--ui-space-1); padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-sm); background: var(--ui-surface); font-size: var(--ui-font-lg); font-weight: var(--ui-weight-bold); text-align: center; } .fast-count-derivation small { color: var(--ui-text-muted); font-size: var(--ui-font-xs); text-transform: uppercase; }
.fast-count-shortcut-challenge h2 { margin: 0; } .fast-count-challenge-top { display: flex; justify-content: space-between; }
.fast-count-shortcut-given { display: flex; justify-content: center; gap: var(--ui-space-3); margin: 0; padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface-muted); font-size: var(--ui-font-sm); }
.fast-count-shortcut-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--ui-space-2); } .fast-count-shortcut-form label { display: grid; gap: var(--ui-space-1); padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface-muted); text-align: center; }
.fast-count-shortcut-form label > span { font-size: var(--ui-font-sm); font-weight: var(--ui-weight-bold); } .fast-count-shortcut-form label > small { color: var(--ui-text-muted); font-size: var(--ui-font-xs); } .fast-count-shortcut-form input { width: 100%; min-height: var(--ui-control-lg); padding: var(--ui-space-1); font-size: var(--ui-font-xl); font-weight: var(--ui-weight-bold); text-align: center; } .fast-count-shortcut-form > button { grid-column: 1/-1; }
.fast-count-summary { display: grid; justify-items: center; gap: var(--ui-space-3); padding-block: var(--ui-space-6); text-align: center; } .fast-count-summary > span { color: var(--ui-accent); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-bold); text-transform: uppercase; } .fast-count-summary h2 { margin: 0; font-size: var(--ui-font-xl); }
.fast-count-summary > div:not(.fast-count-summary-actions) { display: flex; gap: var(--ui-space-2); } .fast-count-summary > div > strong { min-width: 100px; display: grid; gap: var(--ui-space-1); padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface-muted); font-size: var(--ui-font-xl); } .fast-count-summary > div > strong small { color: var(--ui-text-muted); font-size: var(--ui-font-xs); text-transform: uppercase; }
.fast-count-summary-actions { width: 100%; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--ui-space-2); }
.fast-count-sheet-layer { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: var(--ui-space-5); background: rgba(8,18,38,.68); } body:has(.fast-count-sheet-layer) { overflow: hidden; }
.fast-count-trainer-view .fast-count-sheet { width: min(100%,540px); max-height: min(86vh,720px); overflow-y: auto; overscroll-behavior: contain; padding: var(--ui-sheet-padding); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-lg); background: var(--ui-surface); color: var(--ui-text); box-shadow: var(--ui-shadow-md); }
.fast-count-sheet > header { position: sticky; top: calc(-1 * var(--ui-sheet-padding)); z-index: 4; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--ui-space-2); margin: 0 0 var(--ui-space-2); padding: var(--ui-space-1) 0 var(--ui-space-2); border-bottom: var(--ui-border-width) solid var(--ui-border-color); background: var(--ui-surface); }
.fast-count-sheet > header h2 { margin: 0; color: var(--ui-text); font-size: var(--ui-font-lg); } .fast-count-sheet > header button { width: var(--ui-control-md); height: var(--ui-control-md); padding: 0; border-radius: 50%; font-size: var(--ui-icon-lg); } .fast-count-sheet-handle { display: none; }
.fast-count-mode-list { display: grid; gap: var(--ui-space-1); } .fast-count-trainer-view .fast-count-mode-list > button { width: 100%; min-width: 0; min-height: calc(var(--ui-control-lg) + var(--ui-space-2)); display: grid; grid-template-columns: var(--ui-control-md) minmax(0,1fr) var(--ui-icon-md); align-items: center; justify-content: initial; gap: var(--ui-space-2); padding: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-md); background: var(--ui-surface); color: var(--ui-text); box-shadow: none; text-align: left; }
.fast-count-mode-list > button:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); transform: none; } .fast-count-mode-list > button.is-selected { border-color: var(--ui-warning); background: var(--ui-warning-soft); color: #15244a; }
.fast-count-mode-icon { width: var(--ui-control-md); height: var(--ui-control-md); display: grid; place-items: center; border-radius: var(--ui-radius-md); background: var(--ui-accent-soft); color: var(--ui-accent); font-size: var(--ui-icon-md); font-weight: var(--ui-weight-bold); }
.fast-count-mode-list button > span:nth-child(2) { min-width: 0; } .fast-count-mode-list strong, .fast-count-mode-list small { display: block; } .fast-count-mode-list strong { font-size: var(--ui-font-sm); } .fast-count-mode-list small { margin-top: var(--ui-space-1); color: var(--ui-text-muted); font-size: var(--ui-font-xs); }
.fast-count-mode-list i { width: var(--ui-icon-md); height: var(--ui-icon-md); border: var(--ui-border-strong-width) solid var(--ui-border-strong); border-radius: 50%; } .fast-count-mode-list .is-selected i { border: 6px solid var(--ui-accent); background: #fff; }
.fast-count-method-key { display: grid; gap: var(--ui-space-1); margin-top: var(--ui-space-3); padding-top: var(--ui-space-2); border-top: var(--ui-border-width) solid var(--ui-border-color); } .fast-count-method-key h3 { color: var(--ui-accent-strong); } .fast-count-method-key p { display: grid; grid-template-columns: 80px minmax(0,1fr); gap: var(--ui-space-2); margin: 0; padding: var(--ui-space-2); border-radius: var(--ui-radius-sm); background: var(--ui-surface-muted); font-size: var(--ui-font-xs); }
.fast-count-details-controls { display: grid; gap: var(--ui-space-2); margin-bottom: var(--ui-space-3); } .fast-count-details-controls .fast-count-difficulty { display: grid; gap: var(--ui-space-1); } .fast-count-details-controls select { width: 100%; max-width: none; } .fast-count-details-sheet > .fast-count-side { border: 0; padding: 0; box-shadow: none; }
body[data-theme="dark"] :is(.fast-count-mode-trigger,.fast-count-mode-bar button[aria-selected="true"],.fast-count-mode-list > button.is-selected), body[data-theme="neo"] :is(.fast-count-mode-trigger,.fast-count-mode-bar button[aria-selected="true"],.fast-count-mode-list > button.is-selected) { color: #ffe89a; }

/* Direct-URL specimen. */
.fast-count-foundation-specimen { min-height: 100vh; margin: 0; padding: var(--ui-space-5); background: var(--ui-surface-muted); font: var(--ui-weight-regular) var(--ui-font-md)/var(--ui-line-body) "Segoe UI",Arial,sans-serif; }
.ui-specimen-wrap { width: min(100%,1120px); margin: 0 auto; display: grid; gap: var(--ui-space-5); } .ui-specimen-header { display: flex; justify-content: space-between; align-items: center; gap: var(--ui-space-3); } .ui-specimen-header h1 { margin: 0; font-size: var(--ui-font-title); line-height: var(--ui-line-tight); } .ui-specimen-header p, .ui-specimen-note { margin: var(--ui-space-1) 0 0; color: var(--ui-text-muted); }
.ui-specimen-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ui-space-4); } .ui-specimen-section { display: grid; gap: var(--ui-space-3); padding: var(--ui-space-4); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-lg); background: var(--ui-surface); color: var(--ui-text); box-shadow: var(--ui-shadow-sm); } .ui-specimen-section h2 { margin: 0; font-size: var(--ui-font-xl); } .ui-specimen-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ui-space-2); } .ui-specimen-stack { display: grid; gap: var(--ui-space-2); } .ui-specimen-label { color: var(--ui-text-subtle); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-semibold); text-transform: uppercase; }
.ui-type-title { margin: 0; font-size: var(--ui-font-title); line-height: var(--ui-line-tight); } .ui-type-section { margin: 0; font-size: var(--ui-font-xl); } .ui-type-body { margin: 0; font-size: var(--ui-font-md); } .ui-type-secondary { margin: 0; color: var(--ui-text-muted); font-size: var(--ui-font-sm); } .ui-type-metadata { margin: 0; color: var(--ui-text-subtle); font-size: var(--ui-font-xs); text-transform: uppercase; }
.ui-control-group { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ui-space-2); } .ui-chip { display: inline-flex; align-items: center; min-height: var(--ui-control-sm); padding-inline: var(--ui-space-2); border: var(--ui-border-width) solid var(--ui-border-color); border-radius: var(--ui-radius-sm); background: var(--ui-surface-muted); color: var(--ui-text); font-size: var(--ui-font-xs); font-weight: var(--ui-weight-bold); } .ui-chip--selected { border-color: var(--ui-accent); background: var(--ui-accent); color: #fff; } .ui-chip--type { border-color: var(--ui-type-normal); background: var(--ui-type-soft); color: var(--ui-type-strong); }
.ui-surface-demo { display: grid; gap: var(--ui-space-1); padding: var(--ui-space-3); } .ui-surface-demo strong, .ui-surface-demo small { display: block; } .ui-surface-demo small { color: var(--ui-text-muted); }

@media (max-width: 900px) and (min-width: 761px) { .fast-count-workspace { grid-template-columns: minmax(440px,1.5fr) minmax(220px,.7fr); } .fast-count-context { grid-template-columns: minmax(190px,.8fr) minmax(230px,1.2fr); } }
@media (max-width: 760px) {
  .fast-count-trainer-view, .fast-count-foundation-specimen { --ui-font-xs: 10px; --ui-font-sm: 12px; --ui-font-md: 14px; --ui-font-lg: 16px; --ui-font-xl: 20px; --ui-font-title: 28px; --ui-font-display: 32px; --ui-card-padding: var(--ui-space-3); }
  body[data-view="fast-count-trainer"] > header { --ui-space-1: 4px; --ui-space-2: 8px; --ui-space-3: 12px; --ui-control-lg: 48px; --ui-font-sm: 12px; display: grid; grid-template-columns: minmax(0,1fr) auto; row-gap: var(--ui-space-2); padding: var(--ui-space-2); }
  body[data-view="fast-count-trainer"] > header .app-tabs { grid-column: 1/-1; width: 100%; max-width: 100%; margin: 0; display: flex; gap: var(--ui-space-1); overflow-x: auto; padding: var(--ui-space-1); scroll-snap-type: x proximity; scrollbar-width: none; }
  body[data-view="fast-count-trainer"] > header .app-tabs::-webkit-scrollbar { display: none; } body[data-view="fast-count-trainer"] > header .app-tabs button { flex: 0 0 auto; min-height: var(--ui-control-lg); padding-inline: var(--ui-space-3); font-size: var(--ui-font-sm); scroll-snap-align: start; }
  .fast-count-trainer-view { width: 100%; } .fast-count-shell { gap: var(--ui-space-2); } .fast-count-head { grid-template-columns: minmax(0,1fr) auto; gap: var(--ui-space-2); } .fast-count-eyebrow { display: none; } .fast-count-head h1 { font-size: var(--ui-font-xl); }
  .fast-count-session-status { grid-column: 1/-1; grid-template-columns: auto minmax(0,1fr) auto; } .fast-count-mode-bar { display: none; } .fast-count-workspace { grid-template-columns: minmax(0,1fr); } .fast-count-workspace > .fast-count-side { display: none; }
  .fast-count-context { grid-template-columns: minmax(0,1fr); gap: var(--ui-space-2); } .fast-count-pokemon-head { grid-template-columns: 62px minmax(0,1fr); } .fast-count-pokemon-head img { width: 62px; height: 62px; }
  .fast-count-sheet-layer { align-items: end; padding: 0; } .fast-count-trainer-view .fast-count-sheet { width: 100%; max-height: min(88dvh, 760px); border-radius: var(--ui-radius-lg) var(--ui-radius-lg) 0 0; animation: fast-count-sheet-in .16s ease-out; } .fast-count-sheet > header { padding-top: var(--ui-space-4); }
  .fast-count-sheet-handle { position: absolute; top: var(--ui-space-1); left: 50%; width: var(--ui-control-md); height: var(--ui-space-1); display: block; border-radius: var(--ui-radius-round); background: var(--ui-border-strong); transform: translateX(-50%); }
  .fast-count-picker-options { position: static; max-height: 48dvh; margin-top: var(--ui-space-1); box-shadow: none; } .ui-specimen-grid { grid-template-columns: 1fr; }
}
@media (max-width: 430px) { .fast-count-move-chip > span, .fast-count-throw strong { font-size: var(--ui-font-xs); } .fast-count-answers { gap: var(--ui-space-1); } .fast-count-rail-track, .ui-bank-cells { gap: 2px; } .fast-count-shortcut-given { align-items: center; flex-direction: column; gap: var(--ui-space-1); } .fast-count-shortcut-form { gap: var(--ui-space-1); } .fast-count-summary-actions { grid-template-columns: 1fr; } .fast-count-foundation-specimen { padding: var(--ui-space-3); } .ui-control-group { grid-template-columns: 1fr; } }
@media (max-width: 350px) { .fast-count-mode-trigger { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .fast-count-pokemon-head { grid-template-columns: 54px minmax(0,1fr); } .fast-count-pokemon-head img { width: 54px; height: 54px; } .fast-count-rail-track, .ui-bank-cells { gap: 1px; } }
@keyframes fast-count-sheet-in { from { transform: translateY(var(--ui-space-5)); opacity: .72; } to { transform: translateY(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .fast-count-trainer-view *, .fast-count-foundation-specimen * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
