/* LLMPrice light/dark theme. Loaded last so generated Stage styles keep their layout. */
:root {
  color-scheme: light;
  --floating-bg: rgba(255, 255, 255, .96);
  --floating-shadow: 0 2px 8px rgba(16, 24, 40, .08);
  --surface-soft: #fbfcfd;
  --surface-head: #f8fafb;
  --surface-hover: #f8fbfb;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e7edf4;
  --muted: #a5b0bd;
  --subtle: #7f8b99;
  --line: #28333e;
  --line-strong: #3a4754;
  --paper: #161d25;
  --canvas: #0f141a;
  --accent: #36b5a8;
  --accent-dark: #65cfc3;
  --accent-soft: #12302d;
  --navy: #d5e1ed;
  --blue-soft: #17283b;
  --amber-soft: #2a2418;
  --negative: #ff7b72;
  --floating-bg: rgba(22, 29, 37, .96);
  --floating-shadow: 0 3px 12px rgba(0, 0, 0, .34);
  --surface-soft: #121920;
  --surface-head: #1b232c;
  --surface-hover: #1a242d;
}

:root[data-theme="dark"] body {
  background: var(--canvas);
  color: var(--ink);
}

/* Header + theme control */
.topbar-inner { position: relative; }
.theme-toggle {
  width: 36px;
  height: 36px;
  display: inline-grid;
  flex: 0 0 36px;
  place-items: center;
  margin-left: -18px;
  padding: 0;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  line-height: 1;
}
.theme-toggle:hover {
  color: var(--accent-dark);
  border-color: #5aa99f;
  background: var(--accent-soft);
}
.theme-toggle:focus-visible {
  outline: 3px solid rgba(54, 181, 168, .2);
  outline-offset: 2px;
}
.theme-toggle svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.theme-toggle .theme-icon-sun { display: none; }
:root[data-theme="dark"] .theme-toggle .theme-icon-moon { display: none; }
:root[data-theme="dark"] .theme-toggle .theme-icon-sun { display: block; }

:root[data-theme="dark"] .topbar {
  background: rgba(15, 20, 26, .94);
  border-color: var(--line);
}
:root[data-theme="dark"] .topbar nav a { color: #b8c2ce; }
:root[data-theme="dark"] .topbar nav a:hover,
:root[data-theme="dark"] .topbar nav a.is-active { color: var(--ink); }
:root[data-theme="dark"] .status-dot {
  background: #32c48d;
  box-shadow: 0 0 0 3px rgba(50, 196, 141, .14);
}

/* Core surfaces and controls */
:root[data-theme="dark"] .intro,
:root[data-theme="dark"] .page-intro,
:root[data-theme="dark"] .source-strip,
:root[data-theme="dark"] .footer,
:root[data-theme="dark"] .calculator-panel,
:root[data-theme="dark"] .market-panel,
:root[data-theme="dark"] .information-card,
:root[data-theme="dark"] .prose-card,
:root[data-theme="dark"] .reading-sidebar,
:root[data-theme="dark"] .rate-card,
:root[data-theme="dark"] .provider-card,
:root[data-theme="dark"] .stage2-meta-card,
:root[data-theme="dark"] .stage2-facts div,
:root[data-theme="dark"] .data-table {
  background: var(--paper);
}

:root[data-theme="dark"] .intro-metrics,
:root[data-theme="dark"] .compare-card,
:root[data-theme="dark"] .input-field input,
:root[data-theme="dark"] .search-box {
  background: var(--surface-soft);
}

:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] button {
  color: inherit;
}
:root[data-theme="dark"] select option {
  color: var(--ink);
  background: var(--paper);
}
:root[data-theme="dark"] .sort-select,
:root[data-theme="dark"] .preset,
:root[data-theme="dark"] .mode-button,
:root[data-theme="dark"] .filter-pill,
:root[data-theme="dark"] .capability-chip,
:root[data-theme="dark"] .scope-chip,
:root[data-theme="dark"] .share-button,
:root[data-theme="dark"] .text-button,
:root[data-theme="dark"] .icon-button {
  color: var(--muted);
  background: var(--paper);
  border-color: var(--line);
}
:root[data-theme="dark"] .sort-select { color: #bdc7d2; }
:root[data-theme="dark"] .preset.is-active,
:root[data-theme="dark"] .mode-button.is-active,
:root[data-theme="dark"] .filter-pill.is-active,
:root[data-theme="dark"] .capability-chip.is-active,
:root[data-theme="dark"] .scope-chip.is-active {
  color: var(--accent-dark);
  border-color: #376a64;
  background: var(--accent-soft);
}
:root[data-theme="dark"] .input-field input:focus,
:root[data-theme="dark"] .search-box:focus-within,
:root[data-theme="dark"] .sort-select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(54, 181, 168, .12);
}

/* Calculator */
:root[data-theme="dark"] .estimate-block {
  background: #112724;
  border-color: #28534d;
}
:root[data-theme="dark"] .estimate-meta { border-color: #28534d; }
:root[data-theme="dark"] .share-button,
:root[data-theme="dark"] .text-button {
  color: var(--accent-dark);
  border-color: #376a64;
}

/* Catalog + tables */
:root[data-theme="dark"] .catalog-structure-note {
  background: #112522;
}
:root[data-theme="dark"] .data-table th,
:root[data-theme="dark"] .price-table th:first-child,
:root[data-theme="dark"] .model-directory-table th:first-child {
  color: #aeb9c6;
  background: var(--surface-head);
}
:root[data-theme="dark"] .price-table td:first-child,
:root[data-theme="dark"] .model-directory-table td:first-child {
  background: var(--paper);
}
:root[data-theme="dark"] .data-table tbody tr:hover,
:root[data-theme="dark"] .price-table tbody tr:hover td:first-child {
  background: var(--surface-hover);
}
:root[data-theme="dark"] .quiet-link { color: #b9c4cf; }
:root[data-theme="dark"] .endpoint-link { color: var(--accent-dark); }
:root[data-theme="dark"] .endpoint-mark {
  color: #b8dbe3;
  border-color: #36505a;
  background: #18303a;
}
:root[data-theme="dark"] .source-direct {
  color: #8ce0bd;
  background: #153529;
}
:root[data-theme="dark"] .source-aggregated {
  color: #9dc5ff;
  background: #172c45;
}
:root[data-theme="dark"] .provider-icon {
  background: #fff;
  border-color: #46515d;
}

/* Cards, detail pages, methodology */
:root[data-theme="dark"] .detail-chip {
  color: var(--accent-dark);
  border-color: #376a64;
  background: var(--accent-soft);
}
:root[data-theme="dark"] .muted-chip {
  color: var(--muted);
  border-color: var(--line);
  background: var(--surface-head);
}
:root[data-theme="dark"] .notice {
  border-color: #5b5133;
  background: var(--amber-soft);
}
:root[data-theme="dark"] .formula {
  color: var(--accent-dark);
  background: var(--accent-soft);
}
:root[data-theme="dark"] .provider-card:hover {
  border-color: #477b75;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
}
:root[data-theme="dark"] .stage2-facts { background: var(--line); }
:root[data-theme="dark"] .stage2-link-list a { border-color: var(--line); }

/* Floating page-jump control inherits the active theme without changing its behavior. */
:root[data-theme="dark"] .page-jump-button:hover {
  color: var(--accent-dark);
  border-color: #477b75;
  background: var(--accent-soft);
}

@media (max-width: 900px) {
  .theme-toggle { margin-left: -6px; }
}

@media (max-width: 620px) {
  .theme-toggle {
    position: absolute;
    top: 7px;
    right: 0;
    width: 34px;
    height: 34px;
    margin: 0;
  }
  .theme-toggle svg { width: 16px; height: 16px; }
}

@media print {
  .theme-toggle { display: none !important; }
}
