/* ============================================================
   k21-speed-distance（速率跑跑賽）— v2 風格覆寫（只覆寫，不改版面）
   年齡層：kids；科目：數學（資訊藍 --tp-info／--tp-subject-math-soft 兼作識別）
   對應簡表：--bg→--tp-bg；--bg-elev→--tp-surface；
   --ink→--tp-text；--ink-soft→--tp-text-soft；--line→--tp-line；
   --primary 系→--tp-accent 系（主按鈕、拖曳鈕）；--primary-ink→--tp-accent-on；
   --secondary 系→--tp-accent 系（次主色併入）；--accent 系→--tp-info／--tp-subject-math-soft；
   --sun→--tp-warning；--danger(-soft)→--tp-error(-soft)；
   圓角→--tp-radius-*；--shadow-sm／-md→--tp-shadow-1／-2；--font→--tp-font-sans。
   ============================================================ */

html[data-tp-theme="v2"]:root {
  --bg: var(--tp-bg);
  --bg-elev: var(--tp-surface);
  --ink: var(--tp-text);
  --ink-soft: var(--tp-text-soft);
  --line: var(--tp-line);
  --primary: var(--tp-accent-strong);
  --primary-deep: var(--tp-accent-strong);
  --primary-ink: var(--tp-accent-on);
  --secondary: var(--tp-accent-strong);
  --secondary-deep: var(--tp-accent-strong);
  --secondary-soft: var(--tp-accent-soft);
  --accent: var(--tp-info);
  --accent-soft: var(--tp-subject-math-soft);
  --sun: var(--tp-warning);
  --danger: var(--tp-error);
  --danger-soft: var(--tp-error-soft);
  --radius-sm: var(--tp-radius-ctl);
  --radius-md: var(--tp-radius-card);
  --radius-lg: var(--tp-radius-card);
  --shadow-sm: var(--tp-shadow-1);
  --shadow-md: var(--tp-shadow-2);
  --font: var(--tp-font-sans);
}

/* 背景圓點：換邊線色，深色自動對齊 */
html[data-tp-theme="v2"] body {
  background-image: radial-gradient(var(--tp-line) 1.1px, transparent 1.1px);
}

/* 標題換襯線 */
html[data-tp-theme="v2"] h1,
html[data-tp-theme="v2"] h2,
html[data-tp-theme="v2"] h3 {
  font-family: var(--tp-font-serif);
}

/* 答對回饋：回歸成功語意（原與選取態共用青色） */
html[data-tp-theme="v2"] .fb.ok {
  background: var(--tp-success-soft);
  border-color: var(--tp-success);
}

/* 拖放區文字：資訊藍對淺底對比不足，改主文字 */
html[data-tp-theme="v2"] .dropzone {
  color: var(--tp-text);
}

/* 寫死白的面：改白面權杖 */
html[data-tp-theme="v2"] .answer-input,
html[data-tp-theme="v2"] .text-input,
html[data-tp-theme="v2"] .choice,
html[data-tp-theme="v2"] .dropzone.filled,
html[data-tp-theme="v2"] .list article,
html[data-tp-theme="v2"] .runner .tag {
  background: var(--tp-surface);
}

/* 跑道與進度：寫死色改權杖 */
html[data-tp-theme="v2"] .progress-wrap,
html[data-tp-theme="v2"] .nline-bar,
html[data-tp-theme="v2"] .lane {
  background: var(--tp-bg-deep);
}
html[data-tp-theme="v2"] .nline-fill {
  background: var(--tp-accent-soft);
}
html[data-tp-theme="v2"] .track-outer {
  background: var(--tp-success-soft);
}
html[data-tp-theme="v2"] .nline-thumb {
  border-color: var(--tp-surface);
}

/* 幽靈鈕底陰影：原寫死米色 */
html[data-tp-theme="v2"] .btn-ghost {
  box-shadow: 0 4px 0 var(--tp-line-strong);
}

/* 焦點環跟 accent 系 */
html[data-tp-theme="v2"] :focus-visible {
  outline-color: var(--tp-focus-ring);
}
