/* Theme surface tokens */
:root {
  --c-bg: 248 250 252;
  --c-card: 255 255 255;
  --c-border: 226 232 240;
  --c-text: 30 41 59;
  --c-heading: 15 23 42;
  --c-muted: 100 116 139;
  color-scheme: light;
}
:root.dark {
  --c-bg: 11 15 23;
  --c-card: 21 28 44;
  --c-border: 35 45 66;
  --c-text: 203 213 225;
  --c-heading: 255 255 255;
  --c-muted: 148 163 184;
  color-scheme: dark;
}
body { background: rgb(var(--c-bg)); color: rgb(var(--c-text)); }

/* Article typography */
.article h1 { font-size: 1.75rem; font-weight: 900; line-height: 1.35; color: rgb(var(--c-heading)); letter-spacing: -0.02em; }
.article h2 { font-size: 1.2rem; font-weight: 800; color: rgb(var(--c-heading)); margin-top: 2.25rem; margin-bottom: 0.75rem; }
.article h3 { font-size: 1rem; font-weight: 700; color: rgb(var(--c-heading)); margin-top: 1.5rem; margin-bottom: 0.5rem; }
.article p { font-size: 0.95rem; line-height: 1.85; margin-bottom: 1rem; }
.article ul, .article ol { padding-left: 1.25rem; margin-bottom: 1rem; font-size: 0.95rem; line-height: 1.85; }
.article ul { list-style: disc; }
.article ol { list-style: decimal; }
.article li { margin-bottom: 0.35rem; }
.article strong { color: rgb(var(--c-heading)); }
.article a { color: #10b981; text-decoration: underline; text-underline-offset: 3px; }
.article .note { background: rgb(var(--c-card)); border: 1px solid rgb(var(--c-border)); border-left: 4px solid #10b981; border-radius: 0.75rem; padding: 0.9rem 1rem; font-size: 0.875rem; margin: 1.25rem 0; }
.article table { width: 100%; border-collapse: collapse; font-size: 0.875rem; margin-bottom: 1rem; }
.article th, .article td { border: 1px solid rgb(var(--c-border)); padding: 0.5rem 0.75rem; text-align: left; }
.article th { background: rgb(var(--c-card)); color: rgb(var(--c-heading)); }
.muted { color: rgb(var(--c-muted)); }
.heading { color: rgb(var(--c-heading)); }
details > summary { cursor: pointer; list-style: none; }
details > summary::-webkit-details-marker { display: none; }
details[open] .chev { transform: rotate(180deg); }
