:root {
  --book-surface: #ffffff;
  --book-surface-soft: #f8fafc;
  --book-surface-tint: #eff6ff;
  --book-border: #cbd5e1;
  --book-border-strong: #93c5fd;
  --book-text: #0f172a;
  --book-text-soft: #475569;
  --book-accent: #2563eb;
  --book-accent-strong: #1d4ed8;
  --book-accent-soft: #dbeafe;
  --book-success-soft: #dcfce7;
  --book-success-text: #166534;
  --book-warning-soft: #fef3c7;
  --book-warning-text: #92400e;
  --book-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
  --book-focus: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

@media (prefers-color-scheme: dark) {
  :root {
    --book-surface: #0f172a;
    --book-surface-soft: #020617;
    --book-surface-tint: #172554;
    --book-border: #334155;
    --book-border-strong: #60a5fa;
    --book-text: #e2e8f0;
    --book-text-soft: #cbd5e1;
    --book-accent: #93c5fd;
    --book-accent-strong: #bfdbfe;
    --book-accent-soft: #1e3a8a;
    --book-success-soft: #14532d;
    --book-success-text: #dcfce7;
    --book-warning-soft: #78350f;
    --book-warning-text: #fef3c7;
    --book-shadow: none;
    --book-focus: 0 0 0 3px rgba(147, 197, 253, 0.22);
  }
}

body {
  color: var(--book-text);
  text-rendering: optimizeLegibility;
  font-family: "Segoe UI", "Aptos", "Helvetica Neue", Arial, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6,
.quarto-title-block .title {
  color: var(--book-text);
  letter-spacing: -0.018em;
  line-height: 1.18;
}

.quarto-title-block .title {
  font-weight: 800;
  letter-spacing: -0.028em;
}

p,
li,
dd,
dt,
small,
.table,
.table td,
.table th {
  line-height: 1.72;
}

main p,
main li,
main dd,
main dt,
main small,
main .table td,
main .table th {
  color: var(--book-text-soft);
}

strong,
b,
.glossar-label,
.rref-label,
.book-search-result h3,
.book-search-answer h3,
.dashboard-card h3,
.glossar-card h3,
.rref-card h3,
.mc-summary h3,
.kp-summary h3,
.fc-summary h3 {
  color: var(--book-text) !important;
}

blockquote {
  border-left: 4px solid var(--book-border-strong);
  background: var(--book-surface-soft);
  color: var(--book-text-soft);
  padding: 0.9rem 1rem;
  border-radius: 0 14px 14px 0;
}

@media (prefers-color-scheme: light) {
  body {
    background: #f6f8fc;
  }

  .content,
  main.content,
  .page-columns,
  .quarto-title-block,
  .column-page,
  .column-body {
    color: var(--book-text);
  }

  p,
  li,
  dd,
  dt,
  small {
    font-weight: 430;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .quarto-title-block .title {
    color: #0b1324;
  }

  .quarto-title-block .subtitle,
  .quarto-title-meta,
  .quarto-title-block .description,
  .sidebar-item-text,
  .sidebar nav a,
  .toc-actions,
  .toc-left {
    color: #415166;
  }

  .content a,
  main a {
    color: #1d4ed8;
  }

  .content a:hover,
  main a:hover {
    color: #1e40af;
  }
}

p,
li,
dd,
dt,
small {
  color: inherit;
}

a {
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

a:hover {
  text-decoration-thickness: 0.1em;
}

pre,
code,
kbd,
samp {
  font-variant-ligatures: none;
}

pre,
.sourceCode,
div.sourceCode,
.book-search-code,
.rref-card pre {
  background: var(--book-surface-soft) !important;
  color: var(--book-text) !important;
  border: 1px solid var(--book-border);
  box-shadow: none;
}

pre code,
div.sourceCode code,
.rref-card pre code,
.book-search-code code {
  color: inherit !important;
}

input,
textarea,
select,
button {
  color: var(--book-text);
}

input:focus,
textarea:focus,
select:focus,
button:focus-visible {
  outline: none;
  box-shadow: var(--book-focus);
}

.dashboard-lead,
.dashboard-card p,
.glossar-lead,
.rref-lead,
.book-search-hint,
.book-search-status,
.book-search-meta,
.ai-note,
.fc-progress-count,
.fc-score-item {
  color: var(--book-text-soft) !important;
}

.dashboard-kicker,
.book-search-pill,
.ai-note-badge,
.mc-badge,
.kp-badge {
  border: 1px solid transparent;
}

.dashboard-card,
.glossar-card,
.rref-card,
.book-search-answer,
.book-search-result,
.mc-card,
.mc-summary,
.kp-card,
.kp-summary,
.fc-summary,
.flashcard.single-card,
.flashcard-notes textarea,
.book-search-filter,
.kp-row,
.mc-option {
  background: var(--book-surface) !important;
  color: var(--book-text) !important;
  border-color: var(--book-border) !important;
  box-shadow: var(--book-shadow) !important;
}

.dashboard-card:hover,
.mc-option:hover,
.book-search-filter:hover {
  border-color: var(--book-border-strong) !important;
}

.dashboard-step,
.mc-feedback,
.kp-feedback,
.kp-choice,
.glossar-links a,
.dashboard-link-pill,
.glossar-jump a,
.rref-jump a,
.book-search-filter.is-active,
.book-search-answer,
.book-search-bar input,
.flashcard-notes textarea,
.fc-summary,
.book-search-filter,
.book-search-bar button,
.flashcard-controls button,
.mc-actions button,
.kp-actions button {
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.dashboard-step,
.book-search-bar input,
.book-search-filter,
.mc-feedback,
.kp-feedback,
.kp-choice,
.glossar-links a,
.rref-card pre,
.book-search-code,
.flashcard-notes textarea {
  background: var(--book-surface-soft) !important;
  color: var(--book-text) !important;
  border-color: var(--book-border) !important;
}

.dashboard-link-pill,
.glossar-jump a,
.rref-jump a,
.book-search-filter.is-active,
.book-search-answer,
#reveal-btn,
#next-batch-btn,
.book-search-bar button,
#mc-submit-btn,
#kp-submit-btn {
  background: var(--book-accent-soft) !important;
  color: var(--book-accent) !important;
  border-color: var(--book-border-strong) !important;
}

.dashboard-link-pill:hover,
.glossar-jump a:hover,
.rref-jump a:hover,
.book-search-filter.is-active:hover,
.book-search-bar button:hover,
#reveal-btn:hover,
#next-batch-btn:hover,
#mc-submit-btn:hover,
#kp-submit-btn:hover {
  background: var(--book-accent) !important;
  color: #ffffff !important;
}

@media (prefers-color-scheme: dark) {
  .dashboard-link-pill:hover,
  .glossar-jump a:hover,
  .rref-jump a:hover,
  .book-search-filter.is-active:hover,
  .book-search-bar button:hover,
  #reveal-btn:hover,
  #next-batch-btn:hover,
  #mc-submit-btn:hover,
  #kp-submit-btn:hover {
    color: #0f172a !important;
  }
}

.dashboard-kicker {
  background: var(--book-accent-soft) !important;
  color: var(--book-accent) !important;
}

.glossar-kicker {
  background: var(--book-success-soft) !important;
  color: var(--book-success-text) !important;
}

.rref-kicker {
  background: var(--book-warning-soft) !important;
  color: var(--book-warning-text) !important;
}

.ai-note-badge {
  background: var(--book-surface-soft) !important;
  color: var(--book-text-soft) !important;
  border-color: var(--book-border) !important;
}

.glossar-label,
.rref-label {
  color: var(--book-text) !important;
}

.glossar-links a {
  color: var(--book-accent) !important;
}

.glossar-links a:hover {
  background: var(--book-accent-soft) !important;
  color: var(--book-accent) !important;
}

.book-search-bar input {
  color: var(--book-text) !important;
}

.book-search-bar input::placeholder,
.flashcard-notes textarea::placeholder {
  color: var(--book-text-soft) !important;
  opacity: 0.9;
}

.book-search-meta,
.book-search-status,
.book-search-hint,
.book-search-pill,
.ai-note {
  color: var(--book-text-soft) !important;
}

.book-search-pill {
  background: var(--book-surface-soft) !important;
  border-color: var(--book-border) !important;
}

.book-search-result h3,
.book-search-answer h3,
.dashboard-card h3,
.glossar-card h3,
.rref-card h3,
.mc-summary h3,
.kp-summary h3,
.fc-summary h3 {
  color: var(--book-text) !important;
}

.mc-option.correct,
.kp-row.correct,
.mc-feedback.good,
.kp-feedback.good {
  background: rgba(22, 163, 74, 0.12) !important;
  border-color: rgba(22, 163, 74, 0.55) !important;
}

.mc-option.incorrect,
.kp-row.incorrect,
.mc-feedback.bad,
.kp-feedback.bad {
  background: rgba(220, 38, 38, 0.12) !important;
  border-color: rgba(220, 38, 38, 0.55) !important;
}

#mc-next-btn,
#mc-retry-btn,
#mc-reset-btn,
#mc-summary-reset-btn,
#kp-next-btn,
#kp-retry-btn,
#kp-reset-btn,
#kp-summary-reset-btn,
#reset-progress-btn {
  background: var(--book-surface-soft) !important;
  color: var(--book-text) !important;
  border: 1px solid var(--book-border) !important;
}

#mc-next-btn:hover,
#mc-retry-btn:hover,
#mc-reset-btn:hover,
#mc-summary-reset-btn:hover,
#kp-next-btn:hover,
#kp-retry-btn:hover,
#kp-reset-btn:hover,
#kp-summary-reset-btn:hover,
#reset-progress-btn:hover {
  background: var(--book-accent-soft) !important;
  color: var(--book-accent) !important;
  border-color: var(--book-border-strong) !important;
}

#known-btn {
  box-shadow: var(--book-shadow);
}

#unknown-btn {
  box-shadow: var(--book-shadow);
}

.sidebar-item-text,
.sidebar nav a {
  transition: background-color 0.15s ease, color 0.15s ease;
}
