/* tokens.css - design tokens, reset, and theme switching
 *
 * Lifted verbatim from Views/blogPost.cshtml (whose CSS was the superset of
 * Views/Home.cshtml's) during task group 4 of .kiro/specs/site-standardization.
 * Rule order is preserved deliberately: the article carries six separate
 * @media (max-width:760px) blocks and the trailing "mobile pass" overrides the
 * earlier ones, so merging or tidying duplicate media blocks is a regression.
 *
 * Load order matters and is tokens.css then site.css.
 */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

:root {
  color-scheme: light dark;
  --paper:#fbfaf8; --surface:#ffffff; --surface-2:#f2f1ee;
  --ink:#14161a; --ink-2:#3d424c; --ink-3:#6b7280;
  --rule:#e0dedb; --rule-strong:#c6c3bf;
  --accent:#1f5fa8; --hot:#b0451c; --cool:#0d6b4f;
  --degraded:#b0451c; --healthy:#0d6b4f;
  /* Off. Narrows running text without affecting .wrap's 65rem - see site.css. */
  --measure: none;
  --serif: "Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans: ui-sans-serif,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono: ui-monospace,"SFMono-Regular","Cascadia Mono","Consolas","Liberation Mono",monospace;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper:#101216; --surface:#171a1f; --surface-2:#1e2228;
    --ink:#eceef1; --ink-2:#bcc2cb; --ink-3:#8b929c;
    --rule:#282d34; --rule-strong:#3a4048;
    --accent:#6aa8f0; --hot:#e8794a; --cool:#48c39a;
  --degraded:#e8794a; --healthy:#48c39a;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper:#101216; --surface:#171a1f; --surface-2:#1e2228;
  --ink:#eceef1; --ink-2:#bcc2cb; --ink-3:#8b929c;
  --rule:#282d34; --rule-strong:#3a4048;
  --accent:#6aa8f0; --hot:#e8794a; --cool:#48c39a;
  --degraded:#e8794a; --healthy:#48c39a;
}
:root[data-theme="light"] {
  color-scheme: light;
  --paper:#fbfaf8; --surface:#ffffff; --surface-2:#f2f1ee;
  --ink:#14161a; --ink-2:#3d424c; --ink-3:#6b7280;
  --rule:#e0dedb; --rule-strong:#c6c3bf;
  --accent:#1f5fa8; --hot:#b0451c; --cool:#0d6b4f;
  --degraded:#b0451c; --healthy:#0d6b4f;
}

/* --- C# tokens + line-level diff -------------------------------------------
   Diff status is carried by the row tint and the gutter glyph; syntax is carried
   by token colour. Separate channels mean a deleted line still reads as C#. --- */
:root {
  --c-key:#0d5bb5; --c-type:#0a6e63; --c-fn:#8a4b12; --c-str:#a3352a;
  --c-num:#7a3ba8; --c-com:#5c6370; --c-op:#4b5563;
}
@media (prefers-color-scheme: dark) {
  :root {
    --c-key:#7ab7ff; --c-type:#5fd0bb; --c-fn:#e5b567; --c-str:#f0836a;
    --c-num:#c99bf5; --c-com:#8b929c; --c-op:#a7b0bb;
  }
}
:root[data-theme="dark"] {
  --c-key:#7ab7ff; --c-type:#5fd0bb; --c-fn:#e5b567; --c-str:#f0836a;
  --c-num:#c99bf5; --c-com:#8b929c; --c-op:#a7b0bb;
}
:root[data-theme="light"] {
  --c-key:#0d5bb5; --c-type:#0a6e63; --c-fn:#8a4b12; --c-str:#a3352a;
  --c-num:#7a3ba8; --c-com:#5c6370; --c-op:#4b5563;
}
