/* BEGIN generated from docs/design/system/tokens.json — run build-tokens.mjs */
/* Every value below comes from tokens.json. Editing this region by hand is lost on the next
   run and fails `npm run check:design`. Change the value at its source instead.

   **Paper & pen is the adopted binding**, chosen on 20 September 2026 and recorded in
   docs/decisions/. It keeps everything Brand & Positioning owns — the warm paper ground, the
   near-black ink, and the amber, sage and wine status family from src/app/globals.css — and
   changes exactly one role: action becomes a deep pen blue, so 'you can act on this' is a
   colour rather than a weight (DS-F02). The other three candidates stay in `palettes` below so
   the choice can be re-examined rather than re-derived. Interface & Channels
   (docs/authority/09-interface-and-channels.md) still owns the palette; this file records the
   consequence of that page's decision, and the founder's choice is what this records.
*/

:root {
  /* Faces. */
  --ui:
    -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Geist", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
  --serif: ui-serif, "New York", "Source Serif 4", Georgia, serif;

  /* Type. A fixed scale, not a fluid one. */
  --t-large-title: 34px;
  --t-title1: 28px;
  --t-title2: 22px;
  --t-title3: 20px;
  --t-headline: 17px;
  --t-body: 17px;
  --t-callout: 16px;
  --t-subhead: 15px;
  --t-footnote: 13px;
  --t-caption: 12px;
  --t-caption2: 11px;

  /* Colour — light appearance. Semantic roles, not a palette. */
  --bg-grouped: #fbfaf7;
  --bg-card: #ffffff;
  --bg-raised: #ffffff;
  --bg-sunken: #f4f2ec;
  --label: #1a1d21;
  --label-2: #5b6472;
  --label-3: #7e8794;
  --separator: #ebe8e1;
  --separator-opaque: #dedbd3;
  --fill-1: rgb(26 29 33 / 14%);
  --fill-2: rgb(26 29 33 / 11%);
  --fill-3: rgb(26 29 33 / 8%);
  --fill-4: rgb(26 29 33 / 5%);
  --material: rgb(251 250 247 / 92%);
  --scrim: rgb(26 29 33 / 28%);
  --tint: #26418f;
  --tint-wash: rgb(38 65 143 / 10%);
  --tint-edge: rgb(38 65 143 / 28%);
  --on-tint: #ffffff;
  --needs: #8a5a12;
  --needs-wash: rgb(232 163 61 / 16%);
  --needs-fill: #e8a33d;
  --needs-edge: rgb(232 163 61 / 45%);
  --needs-tint: rgb(232 163 61 / 8%);
  --done: #506a5e;
  --done-wash: rgb(110 131 120 / 14%);
  --done-fill: #6e8378;
  --missed: #7a2e3c;
  --missed-wash: rgb(122 46 60 / 10%);
  --on-fill: #ffffff;
  --fill-done: #506a5e;
  --fill-badge: #7a2e3c;
  --fill-later: #5b6472;

  /* Shape. */
  --r-card: 10px;
  --r-control: 10px;
  --r-sheet: 12px;
  --r-capsule: 999px;

  /* Depth. One shadow, and it belongs to the only thing that floats. */
  --lift: 0 -1px 24px rgb(0 0 0 / 12%), 0 -8px 60px rgb(0 0 0 / 10%);

  /* Motion. */
  --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --fast: 0.18s;
  --sheet-curve: cubic-bezier(0.32, 0.72, 0, 1);
  --sheet-time: 0.42s;

  /* Chrome and the touch floor. */
  --touch: 44px;
  --gutter: 16px;
  --measure: 44rem;
  --nav-h: 44px;
  --tab-h: 49px;
  --rail-w: 268px;
  --split-at: 1120px;
  --rail-at: 768px;
  --safe-top: 54px;
  --safe-bottom: 34px;
  --harness-h: 52px;

  color-scheme: light;
}

:root[data-theme="dark"] {
  /* Faces. */
  --ui:
    -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Geist", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
  --serif: ui-serif, "New York", "Source Serif 4", Georgia, serif;

  /* Type. A fixed scale, not a fluid one. */
  --t-large-title: 34px;
  --t-title1: 28px;
  --t-title2: 22px;
  --t-title3: 20px;
  --t-headline: 17px;
  --t-body: 17px;
  --t-callout: 16px;
  --t-subhead: 15px;
  --t-footnote: 13px;
  --t-caption: 12px;
  --t-caption2: 11px;

  /* Colour — dark appearance. Semantic roles, not a palette. */
  --bg-grouped: #131518;
  --bg-card: #1b1e22;
  --bg-raised: #242930;
  --bg-sunken: #0d0f11;
  --label: #f2f0ea;
  --label-2: #99a2ac;
  --label-3: #79828d;
  --separator: #262b30;
  --separator-opaque: #2e3339;
  --fill-1: rgb(242 240 234 / 14%);
  --fill-2: rgb(242 240 234 / 11%);
  --fill-3: rgb(242 240 234 / 8%);
  --fill-4: rgb(242 240 234 / 5%);
  --material: rgb(19 21 24 / 92%);
  --scrim: rgb(0 0 0 / 48%);
  --tint: #9db4ef;
  --tint-wash: rgb(157 180 239 / 10%);
  --tint-edge: rgb(157 180 239 / 32%);
  --on-tint: #101a33;
  --needs: #f0b45c;
  --needs-wash: rgb(240 180 92 / 16%);
  --needs-fill: #f0b45c;
  --needs-edge: rgb(240 180 92 / 40%);
  --needs-tint: rgb(240 180 92 / 8%);
  --done: #9cb5a8;
  --done-wash: rgb(156 181 168 / 14%);
  --done-fill: #9cb5a8;
  --missed: #d98b9c;
  --missed-wash: rgb(217 139 156 / 14%);
  --on-fill: #ffffff;
  --fill-done: #3f5c4e;
  --fill-badge: #8f3446;
  --fill-later: #59626d;

  /* Shape. */
  --r-card: 10px;
  --r-control: 10px;
  --r-sheet: 12px;
  --r-capsule: 999px;

  /* Depth. One shadow, and it belongs to the only thing that floats. */
  --lift: 0 -1px 24px rgb(0 0 0 / 50%), 0 -8px 60px rgb(0 0 0 / 40%);

  /* Motion. */
  --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --fast: 0.18s;
  --sheet-curve: cubic-bezier(0.32, 0.72, 0, 1);
  --sheet-time: 0.42s;

  /* Chrome and the touch floor. */
  --touch: 44px;
  --gutter: 16px;
  --measure: 44rem;
  --nav-h: 44px;
  --tab-h: 49px;
  --rail-w: 268px;
  --split-at: 1120px;
  --rail-at: 768px;
  --safe-top: 54px;
  --safe-bottom: 34px;
  --harness-h: 52px;

  color-scheme: dark;
}

/* Follow the device until somebody chooses otherwise. Same values as the block above, in the
   form a browser applies before any script runs, so opening this at eleven at night never
   flashes a white screen first. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    /* Faces. */
    --ui:
      -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Geist", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
    --serif: ui-serif, "New York", "Source Serif 4", Georgia, serif;

    /* Type. A fixed scale, not a fluid one. */
    --t-large-title: 34px;
    --t-title1: 28px;
    --t-title2: 22px;
    --t-title3: 20px;
    --t-headline: 17px;
    --t-body: 17px;
    --t-callout: 16px;
    --t-subhead: 15px;
    --t-footnote: 13px;
    --t-caption: 12px;
    --t-caption2: 11px;

    /* Colour — dark appearance. Semantic roles, not a palette. */
    --bg-grouped: #131518;
    --bg-card: #1b1e22;
    --bg-raised: #242930;
    --bg-sunken: #0d0f11;
    --label: #f2f0ea;
    --label-2: #99a2ac;
    --label-3: #79828d;
    --separator: #262b30;
    --separator-opaque: #2e3339;
    --fill-1: rgb(242 240 234 / 14%);
    --fill-2: rgb(242 240 234 / 11%);
    --fill-3: rgb(242 240 234 / 8%);
    --fill-4: rgb(242 240 234 / 5%);
    --material: rgb(19 21 24 / 92%);
    --scrim: rgb(0 0 0 / 48%);
    --tint: #9db4ef;
    --tint-wash: rgb(157 180 239 / 10%);
    --tint-edge: rgb(157 180 239 / 32%);
    --on-tint: #101a33;
    --needs: #f0b45c;
    --needs-wash: rgb(240 180 92 / 16%);
    --needs-fill: #f0b45c;
    --needs-edge: rgb(240 180 92 / 40%);
    --needs-tint: rgb(240 180 92 / 8%);
    --done: #9cb5a8;
    --done-wash: rgb(156 181 168 / 14%);
    --done-fill: #9cb5a8;
    --missed: #d98b9c;
    --missed-wash: rgb(217 139 156 / 14%);
    --on-fill: #ffffff;
    --fill-done: #3f5c4e;
    --fill-badge: #8f3446;
    --fill-later: #59626d;

    /* Shape. */
    --r-card: 10px;
    --r-control: 10px;
    --r-sheet: 12px;
    --r-capsule: 999px;

    /* Depth. One shadow, and it belongs to the only thing that floats. */
    --lift: 0 -1px 24px rgb(0 0 0 / 50%), 0 -8px 60px rgb(0 0 0 / 40%);

    /* Motion. */
    --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
    --fast: 0.18s;
    --sheet-curve: cubic-bezier(0.32, 0.72, 0, 1);
    --sheet-time: 0.42s;

    /* Chrome and the touch floor. */
    --touch: 44px;
    --gutter: 16px;
    --measure: 44rem;
    --nav-h: 44px;
    --tab-h: 49px;
    --rail-w: 268px;
    --split-at: 1120px;
    --rail-at: 768px;
    --safe-top: 54px;
    --safe-bottom: 34px;
    --harness-h: 52px;

    color-scheme: dark;
  }
}

/* --label-2: iOS's own secondaryLabel is rgb(60 60 67 / 60%), which measures 3.3:1 on white and 3.4:1 on the grouped ground — below WCAG AA for text at this size. Apple ships it; PRODUCT.md commits to WCAG 2.1 AA on the core flows, and a recorded product commitment outranks fidelity to a platform's value. This is the darkest neutral that clears 4.5:1 on BOTH grounds. */

/* --tint: The shipping palette's accent (signal, #e8a33d) is warm amber and is used BOTH for action and for attention. Splitting those is a system decision: one tint for action, a separate status family for attention. Which hue carries the tint is Interface & Channels' call (docs/authority/09-interface-and-channels.md). */
/* END generated */