/* Color mode is independent of the administrator-selected visual theme. */
html[data-color-mode="auto"],
html[data-color-mode="light"] {
  --ink: #17202a;
  --muted: #526277;
  --paper: #f8fafc;
  --card: #fff;
  --panel: #fff;
  --surface: #fff;
  --line: #dce3ea;
  --border: #dce3ea;
  --accent: #a71d14;
  --notice-bg: #edf7ed;
  --notice-ink: #173d28;
  --notice-line: #357a38;
  --notice-error-bg: #fff0f0;
  --notice-error-ink: #80212a;
  --notice-error-line: #a52323;
  color-scheme: light;
}
html[data-color-mode="dark"] {
  --ink: #edf3fc;
  --muted: #b5c2d3;
  --paper: #0d1424;
  --card: #172238;
  --panel: #172238;
  --surface: #172238;
  --line: #34435d;
  --border: #34435d;
  --accent: #ff9688;
  --notice-bg: #173426;
  --notice-ink: #d6f7e3;
  --notice-line: #65b687;
  --notice-error-bg: #3b2029;
  --notice-error-ink: #ffe0e4;
  --notice-error-line: #de7182;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  html[data-color-mode="auto"] {
    --ink: #edf3fc;
    --muted: #b5c2d3;
    --paper: #0d1424;
    --card: #172238;
    --panel: #172238;
    --surface: #172238;
    --line: #34435d;
    --border: #34435d;
    --accent: #ff9688;
    --notice-bg: #173426;
    --notice-ink: #d6f7e3;
    --notice-line: #65b687;
    --notice-error-bg: #3b2029;
    --notice-error-ink: #ffe0e4;
    --notice-error-line: #de7182;
    color-scheme: dark;
  }
}
html[data-color-mode="light"] body.theme-midnight { --accent: #2459a5; }
html[data-color-mode="dark"] body.theme-midnight { --accent: #78a9ff; }
@media (prefers-color-scheme: dark) {
  html[data-color-mode="auto"] body.theme-midnight { --accent: #78a9ff; }
}
.public-site { color: var(--ink); }
.public-site .color-mode-control { display: inline-flex; white-space: nowrap; }
.public-site .color-mode-control select { width: 135px; min-height: 38px; padding: .35rem .5rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font: 650 .8rem/1 ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
.public-site .color-mode-control select:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.public-site .source-list article, .public-site .empty, .public-site .error-page { background: var(--surface); }
.public-site .card p { color: var(--muted); }
.public-site .media-card { background: var(--surface); border-color: var(--line); }
.public-site .media-player { background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
.public-site .media-badge { background: var(--paper); color: var(--accent); }
.public-site .media-player button[data-media-stop] { color: var(--accent); }
.public-site .article-share-links a, .public-site .article-share-links button { border-color: var(--line); background: var(--surface); color: var(--ink); }
.public-site .article-share-links a:hover, .public-site .article-share-links button:hover { background: var(--paper); }
.public-site .article-tags li { background: var(--line); color: var(--ink); }
.public-site .admin-form button, .public-site .site-prompt__action { color: var(--paper); }
.public-site .notice { background: var(--notice-bg); color: var(--notice-ink); border-color: var(--notice-line); }
.public-site .notice--error { background: var(--notice-error-bg); color: var(--notice-error-ink); border-color: var(--notice-error-line); }
.public-site .local-info__card { border-color: var(--line); background: var(--surface); box-shadow: none; }
.public-site .local-info select, .public-site .local-info__forecast li { border-color: var(--line); background: var(--paper); color: var(--ink); }
.public-site .local-info button { border-color: var(--line); background: var(--paper); color: var(--ink); }
.public-site .local-info [role=status], .public-site .local-info__forecast strong, .public-site .local-info__rates td:last-child { color: var(--ink); }
.public-site .local-info__forecast time, .public-site .local-info__forecast small, .public-site .local-info__note, .public-site .local-info__source, .public-site .local-info__rates caption { color: var(--muted); }
.public-site .local-info__forecast li, .public-site .local-info__rates th, .public-site .local-info__rates td { border-color: var(--line); }
