:root {
  color-scheme: dark;
  --ink: #f3f6fa;
  --muted: #c0cad6;
  --paper: #070b12;
  --line: #303c50;
  --accent: #8edac4;
  --coral: #efa88e;
  --white: #101824;
  --green: #93dcb5;
  --red: #f1aaa0;
  --surface: #101824;
  --surface-raised: #182334;
  --button-ink: #102820;
}

body { background: var(--paper); color: var(--ink); }
::selection { background: #38675d; color: #fff; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.sidebar { background: #0b111c; box-shadow: 10px 0 40px #00000018; }
.brandmark span, .branddot { color: var(--accent); }
.dot { background: var(--accent); }
.topbar { background: var(--paper); color: var(--muted); }
nav a { color: #dae2ed; }
nav a:hover { background: #21343e; }
nav a.active { background: #294b43; color: #e0f7ef; }
nav b, nav i { background: #29414a; color: #d4e9e7; }
.eyebrow, .question-label { color: #9fd4c4; }
.side-label, .card-code, .topbar, .source, footer { color: var(--muted); }
.circle { border-color: var(--line); }

.button {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--button-ink);
}
.button:hover { background: #a7e5d4; border-color: #a7e5d4; }
.button.light { background: #172a33; color: var(--ink); border-color: #425c68; }
.button.light:hover { background: #233d46; border-color: #6c9295; }
.button.lime { background: var(--accent); color: var(--button-ink); }
.button.coral { background: var(--coral); color: #35221d; }
.section-head .text-button { border-color: #5a8b7e; }
.delete { color: #efb0a5; }

.stats, .feature, .topic-card, .question-card, .review-card,
.empty, .history, .bank-list details, .location-card, .order-card, .order-step {
  background: var(--surface);
  border-color: var(--line);
}
.topic-card:hover { border-color: #679e91; }
.topic-icon { background: #294139; color: #b8e8d5; }
.card-bottom button { background: #29433e; color: #c9f1e2; }
.order-card .card-bottom button { background: var(--accent); color: var(--button-ink); }
.order-card .card-bottom button:hover { background: #a7e5d4; }
.track { background: #2b4049; }
.track > span { background: var(--accent); }
.empty { border-color: #526975; }
.empty .empty-icon { color: var(--accent); }
.feature.revision, .result-hero { background: #1c3a32; color: #edf7f2; border-color: #35594b; }
.feature.revision p, .result-hero p { color: #c1d9ce; }
.result-score { border-color: #436754; border-top-color: var(--accent); border-right-color: var(--accent); }
.result-score span { color: #d0e6da; }
.hero h1 em { color: var(--accent); }
.flight-card { background: #24392f; border-color: #47624e; }
.flight-card:after { opacity: .12; }
.flight-card-bottom { border-color: #4f6756; }

.search, select, .mode-option {
  background: #101a29;
  color: var(--ink);
  border-color: #3d535f;
}
.search::placeholder, input::placeholder { color: #b7c4d4; opacity: 1; }
.mode-option.selected { background: #203b35; border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.answer { background: #121e2e; color: var(--ink); border-color: #3b535f; }
.answer:hover:not(:disabled) { background: #24414a; border-color: #78b6ad; }
.letter { border-color: #48616c; background: #203741; color: #e0edf1; }
.answer.selected { border-color: #9bddc8; background: #234b40; }
.answer.correct { background: #1c402e; border-color: #7bc49c; color: #e7f7ed; }
.answer.wrong { background: #492e32; border-color: #d4968c; color: #ffece7; }
.feedback { background: #233d30; color: #e0f1e7; }
.feedback.wrong { background: #422e31; color: #f8e8e3; }
.feedback .source { color: #c1d4cc; }
.save-btn { color: #c4d5dd; border-color: #415864; }
.save-btn:hover { background: #263d46; }
.question-nav button { background: #1d303a; color: var(--ink); border-color: #405762; }
.question-nav button.done { background: #30454c; }
.question-nav button.good { background: #2b513b; }
.question-nav button.bad { background: #57373a; }
.question-nav button.current { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.pill { background: #2d4936; color: #d4f0dc; }
.pill.red { background: #54363a; color: #f6c3ba; }
.notice, .resume { background: #263b30; border-color: #47634e; color: #d0e3d4; }

dialog { background: #1a2a33; color: var(--ink); box-shadow: 0 20px 80px #00000085; }
dialog::backdrop { background: #030a10bd; }
dialog p, dialog li { color: #b8c8d1; }
#toast { background: var(--accent); color: var(--button-ink); box-shadow: 0 8px 30px #00000050; }

.order-context { background: #203a42; color: #c3dce0; }
.drag-grip { color: #adc3cd; }
.step-moves button { background: #263d47; color: #e6f1f5; border-color: #496370; }
.step-moves button:hover:not(:disabled) { background: #37535d; }
.step-right, .order-correct { background: #1e3b2d; border-color: #56896a; }
.step-wrong, .order-incorrect { background: #422c30; border-color: #9f6d69; }
.order-feedback .source { color: #bbcdd0; }

.map-panel, .bank-list .map-panel { background: #142831; border-color: #3b525d; }
.map-images a { color: #b1efdc; }
.map-images img { background: #fff; border-color: #71818a; }
.map-images figcaption, .map-help, .map-note { color: #cbd5e1; }
