/* Same color tokens as the public site; no external fonts or dependencies. */
:root {
  color-scheme: light;
  --bg: #f8fafc;
  --panel: #ffffff;
  --text: #475569;
  --heading: #0f172a;
  --muted: #64748b;
  --rule: #e2e8f0;
  --link: #0077b5;
  --strong: #334155;
}

@media (prefers-color-scheme: dark) {
  :root:not(.light) {
    color-scheme: dark;
    --bg: #0b0f19;
    --panel: #111827;
    --text: #d1d5db;
    --heading: #ffffff;
    --muted: #9ca3af;
    --rule: #1f2937;
    --link: #7dd3fc;
    --strong: #e5e7eb;
  }
}

:root.dark {
  color-scheme: dark;
  --bg: #0b0f19;
  --panel: #111827;
  --text: #d1d5db;
  --heading: #ffffff;
  --muted: #9ca3af;
  --rule: #1f2937;
  --link: #7dd3fc;
  --strong: #e5e7eb;
}

strong, .emphatic { color: var(--strong); }
a { overflow-wrap: anywhere; }
a:focus-visible, .theme-toggle:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: 4px;
  border-radius: .25rem;
}
.page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.page-header .home { margin-bottom: 0; }
.theme-toggle {
  min-height: 44px;
  padding: .5rem .85rem;
  border: 1px solid var(--rule);
  border-radius: .75rem;
  background: var(--panel);
  color: var(--heading);
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
}
.theme-toggle:hover { border-color: var(--link); }
.theme-toggle[hidden] { display: none; }
