/* ===== Design tokens =====
   The one set of paper/ink/accent custom properties, font tokens, radii, the fluid type-scale
   clamp() and the --dash-* dashboard tokens. Split out of base.css (PT5) so the standalone pages
   that wear the dashboard's left panel (site_nav_panel.css) read the same values without taking
   base.css's reset and html/body rules. Linked before base.css / site_nav_panel.css. */
:root {
  --paper: #fbf7ec;
  --paper-warm: #f3ecd6;
  --ink: #1d1a14;
  --ink-soft: #4a463d;
  --ink-mute: #8a8678;
  --accent-red: #d93a25;
  --accent-yellow: #f4c12a;
  --accent-blue: #6fb4db;
  --accent-pink: #e8417c;
  --accent-lime: #6fa13f;
  --marker: 'Permanent Marker', cursive;
  --arch: 'Architects Daughter', cursive;
  --hand: 'Caveat', cursive;
  --kalam: 'Kalam', cursive;
  --patrick: 'Patrick Hand', cursive;
  --mono: 'VT323', monospace;
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 16px;
  /* Universal fluid type scale: floor of 17px (a deliberate ~6.25% bump over the implicit 16px default) grows to a 20px ceiling
     by ~1600px viewport width. rem-based font-size declarations inherit this for
     free; raw px ones are converted to rem so they participate too (see
     font_scale_policy.test.js). */
  font-size: clamp(17px, 16.13px + 0.24vw, 20px);
}
/* Dashboard + admin theme tokens (PT3/PT4): the portal dashboard (portal-shell.css, the
   portal/*.css sections) and every standalone admin page (admin-theme.css) read their colors
   through these, built on the paper/ink tokens above. */
:root {
  --dash-bg: var(--paper);
  --dash-chrome: var(--paper-warm);
  --dash-surface: #fffdf7;
  --dash-surface-2: #f1ead6;
  --dash-hover: #f6efdc;
  --dash-input: #fff;
  --dash-control: #d6ccb2;
  --dash-border: rgba(29, 26, 20, 0.16);
  --dash-border-strong: rgba(29, 26, 20, 0.4);
  --dash-text: var(--ink);
  --dash-text-soft: var(--ink-soft);
  --dash-text-mute: #66625a;
  --dash-heading: var(--ink);
  --dash-accent-text: #2c7327;
  --dash-accent-bg: rgba(111, 161, 63, 0.16);
  --dash-accent-border: rgba(111, 161, 63, 0.55);
  --dash-info-text: #1d5d96;
  --dash-info-bg: rgba(111, 180, 219, 0.18);
  --dash-info-border: var(--accent-blue);
  --dash-danger-text: #b3261e;
  --dash-danger-bg: rgba(217, 58, 37, 0.1);
  --dash-danger-border: rgba(217, 58, 37, 0.5);
  --dash-warn-text: #765a00;
  --dash-warn-bg: rgba(244, 193, 42, 0.22);
  --dash-warn-border: #d9a514;
}
