/* Persistent light/dark palette shared by the index, information page and graph modules. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0b1220;
  --surface: #111c2d;
  --surface2: #172438;
  --line: #2b3b52;
  --text: #e5edf8;
  --muted: #9aacc3;
  --navy: #c7dcfb;
  --navy2: #e2edff;
  --blue: #69a5ff;
  --blue2: #84b6ff;
  --blue-soft: #192f4d;
  --cyan-soft: #102b3a;
  --control: #18263a;
  --green-bg: #112e25;
  --amber-bg: #372b10;
  --shadow: 0 10px 30px rgba(0,0,0,.24);
}
html[data-theme="dark"],
html[data-theme="dark"] body {
  background: var(--bg) !important;
  color: var(--text) !important;
}
html[data-theme="dark"] body {
  background-image: none !important;
}
html[data-theme="dark"] :is(.app-header,.sidebar,.main,.stat-card,.grade-block,.guide-card,.chapter-hero,.graph-card,.chapter-summary,.graph-chip,.quick-guide,.search-wrap input,.tree-grade,.tree-grade-btn,.tree-chapter-btn,.tree-graph,.home-btn,.guide-card,.section-card,.info-card) {
  color: var(--text);
  border-color: var(--line);
}
html[data-theme="dark"] :is(.app-header,.sidebar,.stat-card,.grade-block,.guide-card,.chapter-hero,.graph-card,.chapter-summary,.graph-chip,.section-card,.info-card) {
  background: var(--surface) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
html[data-theme="dark"] .app-header {
  background: rgba(12,20,34,.96) !important;
  border-bottom-color: var(--line);
}
html[data-theme="dark"] .home-hero {
  background: linear-gradient(125deg,#12376a,#12508b 55%,#087d9b) !important;
  color: #f8fbff !important;
}
html[data-theme="dark"] .home-hero :is(h2,p,span,strong) { color: #f8fbff; }
html[data-theme="dark"] .home-hero .hero-btn {
  background: #eaf3ff !important;
  color: #123b68 !important;
}
html[data-theme="dark"] :is(.brand h1,.tree-grade-btn,.tree-chapter-btn,.home-btn,.tree-label,.header-count,.stat-value,.chapter-hero h2,.search-results-title,.graph-card h3,.st,.subbox-title,.top h1,.back,.note,.hint,.legend,.field label,.current,.formula,.brand,.info-card h2) {
  color: var(--text) !important;
}
html[data-theme="dark"] :is(.brand small,.brand-site,.muted,.stat-label,.stat-note,.chapter-meta,.tree-graph,.note,.hint,.legend,.current,.footer,.text-muted) {
  color: var(--muted) !important;
}
html[data-theme="dark"] :is(.search-wrap input,.field input,.field select,.field textarea,input,select,textarea) {
  background: #0e1929 !important;
  color: var(--text) !important;
  border-color: #3a4d66 !important;
}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color: #8498b2 !important; }
html[data-theme="dark"] :is(.tree-grade-btn:hover,.tree-chapter-btn:hover,.tree-chapter-btn.active,.tree-graph:hover,.home-btn:hover,.home-btn.active,.search-result:hover) {
  background: #1b3454 !important;
  color: #cfe3ff !important;
}
html[data-theme="dark"] :is(.formula,.current,.subbox,.toolbar,.mobile-toggle,.secondary,.sample-box,.table-wrap,.table-container) {
  background: #172438 !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] :is(button:not(.hero-btn):not(.open-btn):not(.primary):not(.dark),.info-link,.theme-toggle) {
  border-color: var(--line);
}
html[data-theme="dark"] :is(button.secondary,.mobile-toggle,.tree-grade-btn,.tree-chapter-btn,.home-btn) {
  background: #1a2b42;
  color: #d9e8fb;
}
html[data-theme="dark"] :is(hr,.rule) { border-color: var(--line) !important; }
html[data-theme="dark"] :is(table,th,td) { border-color: var(--line) !important; }
html[data-theme="dark"] th { background: #1a2a40 !important; color: var(--text) !important; }
html[data-theme="dark"] td { color: var(--text); }
html[data-theme="dark"] .bad { background: #351b22 !important; border-color: #f87171 !important; }
html[data-theme="dark"] :is(.contact-row,.bank-box) { background: #172438 !important; border-color: var(--line) !important; }
html[data-theme="dark"] :is(.developer,.coffee-copy,.qr-note,.info-footer,.contact-row a,.bank-value) { color: var(--text) !important; }
html[data-theme="dark"] :is(.bank-label,.info-header .brand-site) { color: var(--muted) !important; }
html[data-theme="dark"] .contact-icon { background: #1b3658 !important; color: #b9d5fb !important; }
html[data-theme="dark"] :is(.body-card,.segment-row,.summary-card,.interval-box) { background: #111c2d !important; border-color: var(--line) !important; color: var(--text) !important; }
html[data-theme="dark"] .chart-summary-card { background: #111c2d !important; border-color: var(--line) !important; color: var(--text) !important; }
html[data-theme="dark"] .segment-row { background: #172438 !important; }
html[data-theme="dark"] :is(.segment-head,.summary-name,.chart-caption strong) { color: var(--text) !important; }
html[data-theme="dark"] .subnote { background: #142b45 !important; color: #d5e6fb !important; }
html[data-theme="dark"] .error-box { color: #fca5a5 !important; }
html[data-theme="dark"] .btn:not(.btn-primary):not(.btn-dark) { background: #1a2b42 !important; color: #d9e8fb !important; border-color: var(--line) !important; }
html[data-theme="dark"] :is(.top,.header) {
  background: #101a2a !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
}
html[data-theme="dark"] :is(.panel,.chart,.wrap,.card,.table-wrap,.table-container,.section,.control-panel) {
  background: var(--surface) !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
}
/* Keep graph canvases on a clean plotting surface in either theme. */
html[data-theme="dark"] canvas { background: #fff !important; }

.theme-toggle,
.info-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 36px;
  min-height: 36px;
  padding: 6px 10px;
  border: 1px solid #d5e0ec;
  border-radius: 10px;
  background: #fff;
  color: #183b63;
  text-decoration: none;
  font: 700 13px/1 system-ui, sans-serif;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, transform .16s ease;
}
.hvl-header-actions {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  margin-left: auto;
}
.theme-toggle:hover,.info-link:hover { background: #edf4ff; border-color: #9bbbe3; transform: translateY(-1px); }
.theme-toggle { font-size: 18px; }
html[data-theme="dark"] .theme-toggle,
html[data-theme="dark"] .info-link {
  background: #172438;
  color: #d9e8fb;
  border-color: #3a4d66;
}
html[data-theme="dark"] .header-count {
  background: #172438 !important;
  color: #d9e8fb !important;
  border-color: #3a4d66 !important;
}
html[data-theme="dark"] .info-header .back-link,
html[data-theme="dark"] .coffee-title {
  color: #9cc5ff !important;
}
@media (max-width: 780px) {
  .theme-toggle,.info-link { min-width: 34px; min-height: 34px; padding: 5px 8px; }
  .hvl-header-actions { gap: 5px; }
  .header-count,.header-actions .theme-toggle,.header-actions .info-link { height:34px; min-height:34px; }
}
@media (max-width: 520px) {
  .header-actions .info-link .info-text,
  .hvl-header-actions .info-link .info-text { display: none !important; }
  .header-actions .info-link,
  .hvl-header-actions .info-link { width: 36px; min-width: 36px; padding-inline: 5px; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .theme-toggle,.info-link { transition: none !important; }
}
