/* Theme-only overrides for the immutable Astro bundle. The illustrated paper
   collage keeps its original palette; controls and private results do not. */
html[data-theme="dark"] {
  color-scheme: dark;
  --int-bg: #141b26;
  --int-surface: #1c2635;
  --int-raised: #27354a;
  --int-border: #485a72;
  --int-track: #52647d;
  --int-button-ink: #14233b;
  --blue: #9cbfff;
  --coral: #ffa491;
  --yellow: #f2d580;
  --paper: var(--int-surface);
  --ink: #edf2f8;
  --muted: #b4c0d2;
  color: var(--ink);
  background: var(--int-bg);
}

html[data-theme="dark"] body {
  color: var(--ink);
  background: var(--int-bg);
}

html[data-theme="dark"] :is(.site-header, .site-footer, .bottom-note,
  .question-footnote, .answer-panel fieldset, .selection-heading,
  .selected-scene + .selected-scene, .insight-evidence, .insight-method,
  .result-downloads, .ai-reflection) {
  border-color: var(--int-border);
}

html[data-theme="dark"] :is(.how article, .context-paper, .question-paper,
  .option span, .metric, .highlight, .map-section, .insight-card,
  .contrast-scenes .selected-scene, .collection-card, .noscript, dialog) {
  color: var(--ink);
  background: var(--int-surface);
  border-color: var(--int-border);
  box-shadow: none;
}

html[data-theme="dark"] :is(.context-pills span, .coverage span,
  .archive-filters button, .matrix-filters button, .matrix-switch,
  .back-button, .icon-button, .modal-bar button, .journey-grid button,
  .score-badges > span) {
  color: var(--ink);
  background-color: var(--int-raised);
  border-color: var(--int-border);
}

html[data-theme="dark"] :is(.blue, .option input:checked + span,
  .matrix-switch button[aria-pressed="true"],
  .archive-filters [aria-pressed="true"], .journey-grid .answered) {
  color: var(--int-button-ink);
  background: var(--blue);
  border-color: var(--blue);
}

html[data-theme="dark"] :is(.options.g input:checked + span,
  .journey-grid .flagged) {
  color: #32221e;
  background: var(--coral);
  border-color: var(--coral);
}

html[data-theme="dark"] .options.p input:checked + span {
  color: #302918;
  background: var(--yellow);
  border-color: var(--yellow);
}

html[data-theme="dark"] .button:hover:not(:disabled) {
  box-shadow: 0 5px 0 #080e1880;
}

html[data-theme="dark"] :is(button, .button, .feeling-stepper button):disabled[disabled] {
  color: #b4c0d2;
  background-color: #303d50;
  border-color: var(--int-border);
  opacity: 1;
}

html[data-theme="dark"] :is(a, button, input, select, summary):focus-visible {
  outline-color: var(--blue);
}

html[data-theme="dark"] .skip-link {
  color: var(--int-button-ink);
  background: var(--blue);
}

html[data-theme="dark"] .ticker {
  color: #eaf1ff;
  background: #254798;
}

html[data-theme="dark"] :is(.hero-collage, .result-ticket) {
  --blue: #2054e8;
  --coral: #ff725e;
  --yellow: #f8df67;
  --paper: #fffdf5;
  --ink: #24272d;
  --muted: #63665f;
  color: #24272d;
}

html[data-theme="dark"] :is(.hero-collage .demo-card, .result-ticket) {
  box-shadow: 6px 10px 0 #080e1840;
}

html[data-theme="dark"] .progress-track {
  background: var(--int-track);
}

/* All seven valence states preserve red / neutral / green meaning. */
html[data-theme="dark"] .answer-panel .feeling-control {
  --accent: #9cbfff;
  --wash: #243654;
  color: var(--ink);
  background: var(--int-surface);
  border-color: var(--int-border);
  box-shadow: none;
}

html[data-theme="dark"] .answer-panel .feeling-G {
  --accent: #cdcac0;
  --wash: #333638;
}

html[data-theme="dark"] .answer-panel .feeling-G[data-enjoyment="-3"] {
  --accent: #ffaca6;
  --wash: #422a31;
}

html[data-theme="dark"] .answer-panel .feeling-G[data-enjoyment="-2"] {
  --accent: #f4b29f;
  --wash: #3e2e30;
}

html[data-theme="dark"] .answer-panel .feeling-G[data-enjoyment="-1"] {
  --accent: #dcbbad;
  --wash: #373137;
}

html[data-theme="dark"] .answer-panel .feeling-G[data-enjoyment="0"] {
  --accent: #cdcac0;
  --wash: #333638;
}

html[data-theme="dark"] .answer-panel .feeling-G[data-enjoyment="1"] {
  --accent: #b8d2a5;
  --wash: #2b382e;
}

html[data-theme="dark"] .answer-panel .feeling-G[data-enjoyment="2"] {
  --accent: #a0d6ab;
  --wash: #25392f;
}

html[data-theme="dark"] .answer-panel .feeling-G[data-enjoyment="3"] {
  --accent: #88dcb0;
  --wash: #1e3930;
}

html[data-theme="dark"] .answer-panel .feeling-P {
  --accent: #f2d580;
  --wash: #3a3425;
}

html[data-theme="dark"] .feeling-stepper button {
  color: var(--ink);
  background: var(--int-surface);
  border-color: var(--int-border);
}

html[data-theme="dark"] .feeling-stepper button:hover:not(:disabled) {
  background: var(--int-raised);
}

html[data-theme="dark"] .feeling-range::-webkit-slider-runnable-track {
  background: linear-gradient(to right, var(--accent) var(--position), var(--int-track) var(--position));
}

html[data-theme="dark"] .feeling-range::-moz-range-track {
  background: linear-gradient(to right, var(--accent) var(--position), var(--int-track) var(--position));
}

html[data-theme="dark"] .feeling-range::-webkit-slider-thumb {
  background: var(--int-surface);
  box-shadow: 0 2px 5px #080e1880;
}

html[data-theme="dark"] .feeling-range::-moz-range-thumb {
  background: var(--int-surface);
  box-shadow: 0 2px 5px #080e1880;
}

html[data-theme="dark"] [data-empty="true"] .feeling-range { opacity: .8; }
html[data-theme="dark"] [data-empty="true"] .feeling-readout output { color: var(--muted); }
html[data-theme="dark"] .ruler-ticks i { background: var(--int-track); }
html[data-theme="dark"] .ruler-ticks :is(i:first-child, i:last-child) { background: var(--accent); }
html[data-theme="dark"] .feeling-G .feeling-anchors button:first-child b { color: #ffaca6; }
html[data-theme="dark"] .feeling-G .feeling-anchors button:nth-child(2) b { color: #cdcac0; }
html[data-theme="dark"] .feeling-G .feeling-anchors button:last-child b { color: #88dcb0; }

/* Reading, AI, coverage, archive and per-scene details. */
html[data-theme="dark"] .insight-card:first-child {
  background: #23334d;
  border-color: #526f98;
}

html[data-theme="dark"] :is(.insight-card > p, .ai-section .ai-footnote,
  .plot-label, .zone, .map-zone, .matrix-x-ticks, .matrix-x-extremes) {
  color: var(--muted);
}

html[data-theme="dark"] .insight-contrast {
  color: var(--ink);
  background: #392c2e;
  border-color: #91665e;
}

html[data-theme="dark"] .contrast-intro .eyebrow { color: var(--coral); }

html[data-theme="dark"] .ai-section {
  color: var(--ink);
  background: linear-gradient(125deg, #202f48, #303124);
  border-color: #526581;
}

html[data-theme="dark"] .partial-banner {
  color: #f9e6ac;
  background: #3a3425;
  border: 1px solid #867448;
}

html[data-theme="dark"] :is(.detail-scores, .insight-comparison) meter { color-scheme: dark; }
html[data-theme="dark"] :is(.detail-scores, .insight-comparison) meter::-webkit-meter-bar {
  background: var(--int-track);
}
html[data-theme="dark"] :is(.detail-scores, .insight-comparison) meter::-webkit-meter-optimum-value {
  background: var(--blue);
}
html[data-theme="dark"] :is(.detail-scores, .insight-comparison) meter::-moz-meter-bar {
  background: var(--blue);
}
html[data-theme="dark"] .valence-bar { background: var(--int-track); }

html[data-theme="dark"] .archive-sort select {
  color: var(--ink);
  background: var(--int-raised);
  border-color: var(--int-border);
}

html[data-theme="dark"] #answer-list details { border-color: var(--int-border); }
html[data-theme="dark"] #answer-list details[open] { background: var(--int-surface); }

/* Matrix axes and grid stay legible; published pressure rings keep their hues. */
html[data-theme="dark"] :is(.matrix-y-heading, .matrix-y-ticks > span) { color: var(--ink); }
html[data-theme="dark"] .matrix-y-ticks .neutral-tick { color: var(--blue); }
html[data-theme="dark"] #results .matrix-x-ticks { color: var(--muted); }

html[data-theme="dark"] #results #scatter {
  background: linear-gradient(#213448 0 50%, #382d2c 50% 100%);
  border-color: var(--int-border);
}

html[data-theme="dark"] .plot-grid {
  background-image: linear-gradient(90deg, #8b9eb340 1px, transparent 1px), linear-gradient(#8b9eb340 1px, transparent 1px);
  border-color: #8b9eb340;
}

html[data-theme="dark"] #results .matrix-chart #scatter::after { background: #9cbfff99; }
html[data-theme="dark"] .matrix-detail { color: var(--ink); background: #202b3a; border-color: var(--int-border); }
html[data-theme="dark"] .matrix-filters [aria-pressed="true"] { color: var(--blue); background: #293e60; border-color: var(--blue); }
html[data-theme="dark"] .matrix-point span { color: var(--ink); background: #172131; box-shadow: 0 1px 4px #080e1880; }
html[data-theme="dark"] .matrix-point:hover span { box-shadow: 0 0 0 5px #9cbfff30; }
html[data-theme="dark"] .map-point::before { box-shadow: 0 0 0 2px var(--int-surface); }
html[data-theme="dark"] .map-point:hover { background: #9cbfff30; }
html[data-theme="dark"] .pressure-key i { background: #172131; }

html[data-theme="dark"] dialog::backdrop { background: #080e18c4; }
html[data-theme="dark"] .journey-grid .skipped { color: var(--muted); background: #344054; }
html[data-theme="dark"] .toast { color: var(--ink); background: #27374e; border: 1px solid #6a82a5; box-shadow: 0 6px 22px #080e1880; }

/* The shared native selector needs space in this nonstandard header in every
   mode. Gate layout adjustments on its presence; do not restyle other tools. */
.site-header:has(label.tools-theme-control) nav {
  flex-wrap: wrap;
  gap: 10px 18px;
  min-width: 0;
}

.site-header nav label.tools-theme-control { flex: 0 1 auto; min-width: 0; }
.site-header nav label.tools-theme-control select#tools-theme { min-height: 44px; max-width: 100%; font: 13px DM, sans-serif; }
.site-header:has(label.tools-theme-control) nav > button { min-height: 44px; }

@media (max-width: 720px) {
  .site-header:has(label.tools-theme-control) nav {
    justify-content: space-between;
    width: 100%;
    margin-left: 0;
    gap: 8px;
  }
  .site-header nav label.tools-theme-control { margin-left: auto; }
}

@media (max-width: 360px) {
  .site-header:has(label.tools-theme-control) { column-gap: 10px; }
  .site-header nav label.tools-theme-control select#tools-theme { font-size: 12px; }
}
