:root {
  /* ==========================================================================
     Tailwind CSS Color Palette (oklch)
     Source: tailwindcolor.com
     ========================================================================== */

  /* Slate */
  --slate-50: oklch(98.4% 0.003 247.9deg);
  --slate-100: oklch(96.8% 0.007 247.9deg);
  --slate-150: oklch(94.9% 0.01 251.7deg);
  --slate-200: oklch(92.9% 0.013 255.5deg);
  --slate-300: oklch(86.9% 0.02 252.9deg);
  --slate-400: oklch(71.1% 0.035 256.8deg);
  --slate-500: oklch(55.4% 0.041 257.4deg);
  --slate-600: oklch(44.6% 0.037 257.3deg);
  --slate-700: oklch(37.2% 0.039 257.3deg);
  --slate-800: oklch(27.9% 0.037 260.0deg);
  --slate-900: oklch(20.8% 0.04 265.8deg);
  --slate-950: oklch(12.9% 0.041 264.7deg);

  /* Gray */
  --gray-50: oklch(98.5% 0.002 247.8deg);
  --gray-100: oklch(96.7% 0.003 264.5deg);
  --gray-200: oklch(92.8% 0.006 264.5deg);
  --gray-300: oklch(87.2% 0.009 258.3deg);
  --gray-400: oklch(71.4% 0.019 261.3deg);
  --gray-500: oklch(55.1% 0.023 264.4deg);
  --gray-600: oklch(44.6% 0.026 256.8deg);
  --gray-700: oklch(37.3% 0.031 259.7deg);
  --gray-800: oklch(27.8% 0.03 256.8deg);
  --gray-900: oklch(21% 0.032 264.7deg);
  --gray-950: oklch(13% 0.027 261.7deg);

  /* Zinc */
  --zinc-50: oklch(98.5% 0.0 none);
  --zinc-100: oklch(96.7% 0.001 286.4deg);
  --zinc-200: oklch(92% 0.004 286.3deg);
  --zinc-300: oklch(87.1% 0.005 286.3deg);
  --zinc-400: oklch(71.2% 0.013 286.1deg);
  --zinc-500: oklch(55.2% 0.014 285.9deg);
  --zinc-600: oklch(44.2% 0.015 285.8deg);
  --zinc-700: oklch(37% 0.012 285.8deg);
  --zinc-800: oklch(27.4% 0.005 286.0deg);
  --zinc-900: oklch(21% 0.006 285.9deg);
  --zinc-950: oklch(14.1% 0.004 285.8deg);

  /* Neutral */
  --neutral-50: oklch(98.5% 0.0 none);
  --neutral-100: oklch(97% 0.0 none);
  --neutral-200: oklch(92.2% 0.0 none);
  --neutral-300: oklch(87% 0.0 none);
  --neutral-350: oklch(84.2% 0.0 none);
  --neutral-400: oklch(71.5% 0.0 none);
  --neutral-500: oklch(55.6% 0.0 none);
  --neutral-600: oklch(43.9% 0.0 none);
  --neutral-700: oklch(37.1% 0.0 none);
  --neutral-800: oklch(26.9% 0.0 none);
  --neutral-900: oklch(20.5% 0.0 none);
  --neutral-950: oklch(14.5% 0.0 none);

  /* Stone (warm gray) */
  --stone-25: oklch(99.6% 0 none);
  --stone-50: oklch(98.5% 0 none);
  --stone-75: oklch(97.5% 0 none);
  --stone-100: oklch(97% 0 none);
  --stone-125: oklch(95.4% 0 none);
  --stone-150: oklch(94.7% 0 none);
  --stone-175: oklch(93.9% 0 none);
  --stone-200: oklch(92.4% 0 none);
  --stone-215: oklch(91.6% 0 none);
  --stone-225: oklch(90.0% 0 none);
  --stone-250: oklch(88.5% 0 none);
  --stone-300: oklch(86.9% 0 none);
  --stone-350: oklch(83.5% 0 none);
  --stone-375: oklch(79.6% 0 none);
  --stone-400: oklch(71.6% 0 none);
  --stone-500: oklch(55.3% 0 none);
  --stone-600: oklch(44.4% 0 none);
  --stone-700: oklch(37.4% 0 none);
  --stone-800: oklch(26.8% 0 none);
  --stone-900: oklch(0% 0 none);

  /* Red */
  --red-50: oklch(97.1% 0.013 17.4deg);
  --red-100: oklch(93.6% 0.031 17.7deg);
  --red-150: oklch(91.1% 0.045 18.0deg);
  --red-200: oklch(88.5% 0.059 18.3deg);
  --red-300: oklch(80.8% 0.103 19.6deg);
  --red-400: oklch(71.1% 0.166 22.2deg);
  --red-500: oklch(63.7% 0.208 25.3deg);
  --red-600: oklch(57.7% 0.215 27.3deg);
  --red-700: oklch(50.5% 0.19 27.5deg);
  --red-800: oklch(44.4% 0.161 26.9deg);
  --red-900: oklch(39.6% 0.133 25.7deg);
  --red-950: oklch(25.8% 0.089 26.0deg);

  /* Orange */
  --orange-50: oklch(98% 0.016 73.7deg);
  --orange-100: oklch(95.4% 0.037 75.2deg);
  --orange-150: oklch(92.8% 0.055 73.0deg);
  --orange-200: oklch(90.1% 0.073 70.7deg);
  --orange-300: oklch(83.7% 0.117 66.3deg);
  --orange-400: oklch(75.8% 0.159 55.9deg);
  --orange-500: oklch(70.5% 0.187 47.6deg);
  --orange-600: oklch(64.6% 0.194 41.1deg);
  --orange-700: oklch(55.3% 0.174 38.4deg);
  --orange-800: oklch(47% 0.143 37.3deg);
  --orange-900: oklch(40.8% 0.116 38.2deg);
  --orange-950: oklch(26.6% 0.076 36.3deg);

  /* Amber */
  --amber-50: oklch(98.7% 0.021 95.3deg);
  --amber-100: oklch(96.2% 0.058 95.6deg);
  --amber-200: oklch(92.4% 0.115 95.7deg);
  --amber-300: oklch(87.9% 0.153 91.6deg);
  --amber-400: oklch(83.7% 0.164 84.4deg);
  --amber-500: oklch(76.9% 0.165 70.1deg);
  --amber-600: oklch(66.6% 0.157 58.3deg);
  --amber-700: oklch(55.5% 0.146 49.0deg);
  --amber-800: oklch(47.3% 0.125 46.2deg);
  --amber-900: oklch(41.4% 0.105 45.9deg);
  --amber-950: oklch(27.9% 0.074 45.6deg);

  /* Yellow */
  --yellow-50: oklch(98.7% 0.026 102.2deg);
  --yellow-100: oklch(97.3% 0.069 103.2deg);
  --yellow-150: oklch(95.9% 0.097 102.4deg);
  --yellow-200: oklch(94.5% 0.124 101.5deg);
  --yellow-300: oklch(90.5% 0.166 98.1deg);
  --yellow-400: oklch(86.1% 0.173 91.9deg);
  --yellow-500: oklch(79.5% 0.162 86.0deg);
  --yellow-600: oklch(68.1% 0.142 75.8deg);
  --yellow-700: oklch(55.4% 0.121 66.4deg);
  --yellow-800: oklch(47.6% 0.103 61.9deg);
  --yellow-900: oklch(42.1% 0.09 57.7deg);
  --yellow-950: oklch(28.6% 0.064 53.8deg);

  /* Lime */
  --lime-50: oklch(98.6% 0.031 120.8deg);
  --lime-100: oklch(96.7% 0.066 122.3deg);
  --lime-200: oklch(93.8% 0.122 124.3deg);
  --lime-300: oklch(89.7% 0.179 126.7deg);
  --lime-400: oklch(84.9% 0.207 128.8deg);
  --lime-500: oklch(76.8% 0.204 130.8deg);
  --lime-600: oklch(64.8% 0.175 131.7deg);
  --lime-700: oklch(53.2% 0.141 131.6deg);
  --lime-750: oklch(49.3% 0.127 131.3deg);
  --lime-800: oklch(45.3% 0.113 130.9deg);
  --lime-900: oklch(40.5% 0.096 131.1deg);
  --lime-950: oklch(27.4% 0.069 132.1deg);

  /* Green */
  --green-50: oklch(98.2% 0.018 155.8deg);
  --green-100: oklch(96.2% 0.043 156.7deg);
  --green-150: oklch(94.4% 0.062 156.4deg);
  --green-200: oklch(92.5% 0.081 156.0deg);
  --green-300: oklch(87.1% 0.136 154.4deg);
  --green-400: oklch(80% 0.182 151.7deg);
  --green-500: oklch(72.3% 0.192 149.6deg);
  --green-600: oklch(62.7% 0.17 149.2deg);
  --green-700: oklch(52.7% 0.137 150.1deg);
  --green-800: oklch(44.8% 0.108 151.3deg);
  --green-900: oklch(39.3% 0.09 152.5deg);
  --green-950: oklch(26.6% 0.063 152.9deg);

  /* Emerald */
  --emerald-50: oklch(97.9% 0.021 166.1deg);
  --emerald-100: oklch(95% 0.051 163.1deg);
  --emerald-200: oklch(90.5% 0.089 164.2deg);
  --emerald-300: oklch(84.5% 0.13 165.0deg);
  --emerald-400: oklch(77.3% 0.153 163.2deg);
  --emerald-500: oklch(69.6% 0.149 162.5deg);
  --emerald-600: oklch(59.6% 0.127 163.2deg);
  --emerald-700: oklch(50.8% 0.105 165.6deg);
  --emerald-800: oklch(43.2% 0.086 166.9deg);
  --emerald-900: oklch(37.8% 0.073 168.9deg);
  --emerald-950: oklch(26.2% 0.049 172.6deg);

  /* Teal */
  --teal-50: oklch(98.4% 0.014 180.7deg);
  --teal-100: oklch(95.3% 0.05 180.8deg);
  --teal-200: oklch(91% 0.093 180.4deg);
  --teal-300: oklch(85.5% 0.125 181.1deg);
  --teal-400: oklch(78.5% 0.133 181.9deg);
  --teal-500: oklch(70.4% 0.123 182.5deg);
  --teal-600: oklch(60% 0.104 184.7deg);
  --teal-700: oklch(51.1% 0.086 186.4deg);
  --teal-800: oklch(43.7% 0.071 188.2deg);
  --teal-900: oklch(38.6% 0.059 188.4deg);
  --teal-950: oklch(27.7% 0.045 192.5deg);

  /* Cyan */
  --cyan-50: oklch(98.4% 0.019 200.9deg);
  --cyan-100: oklch(95.6% 0.044 203.4deg);
  --cyan-200: oklch(91.7% 0.077 205.0deg);
  --cyan-300: oklch(86.5% 0.115 207.1deg);
  --cyan-400: oklch(79.7% 0.134 211.5deg);
  --cyan-500: oklch(71.5% 0.126 215.2deg);
  --cyan-600: oklch(60.9% 0.111 221.7deg);
  --cyan-700: oklch(52% 0.094 223.1deg);
  --cyan-800: oklch(45% 0.077 224.3deg);
  --cyan-900: oklch(39.8% 0.066 227.4deg);
  --cyan-950: oklch(30.2% 0.054 229.7deg);

  /* Sky */
  --sky-50: oklch(97.7% 0.012 236.6deg);
  --sky-100: oklch(95.1% 0.025 236.8deg);
  --sky-200: oklch(90.1% 0.055 230.9deg);
  --sky-300: oklch(82.8% 0.101 230.3deg);
  --sky-400: oklch(75.4% 0.139 232.7deg);
  --sky-500: oklch(68.5% 0.148 237.3deg);
  --sky-600: oklch(58.8% 0.139 242.0deg);
  --sky-700: oklch(50% 0.119 242.7deg);
  --sky-800: oklch(44.3% 0.1 240.8deg);
  --sky-900: oklch(39.1% 0.085 240.9deg);
  --sky-950: oklch(29.3% 0.063 243.2deg);

  /* Blue */
  --blue-50: oklch(97% 0.014 254.6deg);
  --blue-100: oklch(93.2% 0.032 255.6deg);
  --blue-150: oklch(90.7% 0.045 254.9deg);
  --blue-200: oklch(88.2% 0.057 254.1deg);
  --blue-300: oklch(80.9% 0.096 251.8deg);
  --blue-400: oklch(71.4% 0.143 254.6deg);
  --blue-500: oklch(62.3% 0.188 259.8deg);
  --blue-600: oklch(54.6% 0.215 262.9deg);
  --blue-700: oklch(48.8% 0.217 264.4deg);
  --blue-800: oklch(42.4% 0.181 265.6deg);
  --blue-900: oklch(37.9% 0.138 265.5deg);
  --blue-950: oklch(28.2% 0.087 267.9deg);

  /* Indigo */
  --indigo-50: oklch(96.2% 0.018 272.3deg);
  --indigo-100: oklch(93% 0.033 272.8deg);
  --indigo-200: oklch(87% 0.062 274.0deg);
  --indigo-300: oklch(78.5% 0.104 274.7deg);
  --indigo-400: oklch(68% 0.158 276.9deg);
  --indigo-500: oklch(58.5% 0.204 277.1deg);
  --indigo-600: oklch(51.1% 0.23 277.0deg);
  --indigo-700: oklch(45.7% 0.215 277.0deg);
  --indigo-800: oklch(39.8% 0.177 277.4deg);
  --indigo-900: oklch(35.9% 0.135 278.7deg);
  --indigo-950: oklch(25.7% 0.086 281.3deg);

  /* Violet */
  --violet-50: oklch(96.9% 0.016 293.8deg);
  --violet-75: oklch(95.6% 0.022 294.2deg);
  --violet-100: oklch(94.3% 0.028 294.6deg);
  --violet-150: oklch(91.9% 0.041 294.0deg);
  --violet-200: oklch(89.4% 0.055 293.3deg);
  --violet-300: oklch(81.1% 0.101 293.6deg);
  --violet-400: oklch(70.9% 0.159 293.5deg);
  --violet-500: oklch(60.6% 0.219 292.7deg);
  --violet-600: oklch(54.1% 0.247 293.0deg);
  --violet-700: oklch(49.1% 0.241 292.6deg);
  --violet-800: oklch(43.2% 0.211 292.8deg);
  --violet-900: oklch(38% 0.178 293.7deg);
  --violet-950: oklch(28.3% 0.135 291.1deg);

  /* Purple */
  --purple-50: oklch(97.7% 0.014 308.3deg);
  --purple-75: oklch(96.15% 0.0235 307.75deg);
  --purple-100: oklch(94.6% 0.033 307.2deg);
  --purple-200: oklch(90.2% 0.06 306.7deg);
  --purple-300: oklch(82.7% 0.108 306.4deg);
  --purple-400: oklch(72.2% 0.177 305.5deg);
  --purple-500: oklch(62.7% 0.233 303.9deg);
  --purple-600: oklch(55.8% 0.252 302.3deg);
  --purple-700: oklch(49.6% 0.237 301.9deg);
  --purple-800: oklch(43.8% 0.198 303.7deg);
  --purple-900: oklch(38.1% 0.166 305.0deg);
  --purple-950: oklch(29.1% 0.143 302.7deg);

  /* Fuchsia */
  --fuchsia-50: oklch(97.7% 0.017 320.1deg);
  --fuchsia-100: oklch(95.2% 0.036 318.9deg);
  --fuchsia-200: oklch(90.3% 0.073 319.6deg);
  --fuchsia-300: oklch(83.3% 0.132 321.4deg);
  --fuchsia-400: oklch(74.8% 0.207 322.2deg);
  --fuchsia-500: oklch(66.7% 0.259 322.1deg);
  --fuchsia-600: oklch(59.1% 0.257 322.9deg);
  --fuchsia-700: oklch(51.8% 0.226 323.9deg);
  --fuchsia-800: oklch(45.2% 0.192 324.6deg);
  --fuchsia-900: oklch(40.1% 0.16 325.6deg);
  --fuchsia-950: oklch(29.3% 0.131 325.7deg);

  /* Pink */
  --pink-50: oklch(97.1% 0.014 343.2deg);
  --pink-100: oklch(94.8% 0.028 342.3deg);
  --pink-200: oklch(89.9% 0.059 343.2deg);
  --pink-300: oklch(82.3% 0.11 346.0deg);
  --pink-400: oklch(72.5% 0.175 349.8deg);
  --pink-500: oklch(65.6% 0.212 354.3deg);
  --pink-600: oklch(59.2% 0.218 0.6deg);
  --pink-700: oklch(52.5% 0.199 4.0deg);
  --pink-800: oklch(45.9% 0.17 3.8deg);
  --pink-900: oklch(40.8% 0.144 2.4deg);
  --pink-950: oklch(28.4% 0.105 3.9deg);

  /* Rose */
  --rose-50: oklch(96.9% 0.015 12.4deg);
  --rose-100: oklch(94.1% 0.03 12.6deg);
  --rose-200: oklch(89.2% 0.056 10.0deg);
  --rose-300: oklch(81% 0.106 11.6deg);
  --rose-400: oklch(71.9% 0.169 13.4deg);
  --rose-500: oklch(64.5% 0.215 16.4deg);
  --rose-600: oklch(58.6% 0.222 17.6deg);
  --rose-700: oklch(51.4% 0.198 16.9deg);
  --rose-800: oklch(45.5% 0.171 13.7deg);
  --rose-900: oklch(41% 0.15 10.3deg);
  --rose-950: oklch(27.1% 0.101 12.1deg);

  /* Nord (https://www.nordtheme.com) — drives the "cosmic" dark theme.
     Canonical Nord hex; the *-soft / *-dim / *-bright shades are interpolated
     steps Nord doesn't ship, needed to fill the dark ramp's six levels. */
  --nord0: oklch(0.324 0.023 264);          /* Polar Night — deepest base */
  --nord0-soft: oklch(0.351 0.027 262);     /* between nord0/nord1 — soft surface step */
  --nord1: oklch(0.379 0.029 266);
  --nord2: oklch(0.416 0.032 264);
  --nord3: oklch(0.452 0.035 264);
  --nord3-bright: oklch(0.537 0.044 264);   /* Nord's lighter polar gray (comments) */
  --nord4: oklch(0.899 0.016 263);          /* Snow Storm — text */
  --nord4-dim: oklch(0.765 0.028 264);      /* dimmed snow for primary body text */
  --nord5: oklch(0.933 0.01 262);
  --nord6: oklch(0.951 0.007 261);          /* brightest text */
  --nord-gray: oklch(0.625 0.041 263);      /* muted text */
  --nord7: oklch(0.763 0.048 194);          /* Frost — teal */
  --nord8: oklch(0.775 0.062 217);          /* Frost — signature cyan accent */
  --nord9: oklch(0.697 0.059 249);          /* Frost — blue */
  --nord10: oklch(0.594 0.077 254);         /* Frost — deep blue */
  --nord11: oklch(0.606 0.121 15);         /* Aurora — red */
  --nord12: oklch(0.693 0.096 38);         /* Aurora — orange */
  --nord13: oklch(0.855 0.089 84);         /* Aurora — yellow */
  --nord14: oklch(0.768 0.075 131);         /* Aurora — green */
  --nord15: oklch(0.692 0.062 333);         /* Aurora — purple */

  /* Nord light extensions — Snow Storm only ships three steps (nord4-6), so
     the light theme's surface ladder needs interpolated steps around them,
     plus the frost cyan diluted to a selection wash. */
  --nord-snow-bright: oklch(0.975 0.005 258); /* above nord6 — inputs, lightest surfaces */
  --nord-snow-mid: oklch(0.964 0.007 269);    /* between bright and nord6 — raised surfaces */
  --nord-snow-dark: oklch(0.868 0.021 262);   /* below nord4 — active states, strong borders */
  --nord-frost-tint: oklch(0.894 0.026 225);  /* nord8 as a light selection wash */
  --nord10-deep: oklch(0.527 0.072 254);      /* below nord10 — link ink on snow */
  --nord4-mid: oklch(0.83 0.023 263);         /* between snow-dark and nord4-dim —
                                                 toolbar-button edges: nord4-dim reads
                                                 heavy on control chrome */
  --nord7-dim: oklch(0.8 0.044 194);         /* frost teal lifted toward snow —
                                                 selected-item borders */
  --nord8-ink: oklch(0.556 0.0846 222.5);        /* nord8 cyan at ink weight — accent icons */

  /* Aurora at ink weight — the warm semantic accents on snow (status text,
     Add, yellow icons). Canonical aurora is mid-tone, sized for dark
     grounds; these are the same hues pulled down to text contrast. */
  --nord11-ink: oklch(0.522 0.113 15);       /* red — urgent / errors */
  --nord12-ink: oklch(0.579 0.117 42);       /* orange — warnings */
  --nord13-ink: oklch(0.625 0.109 86);       /* yellow — accent icons */
  --nord14-ink: oklch(0.55 0.12 133);       /* green — Add / success; aurora hue with
                                  lime-level chroma restored (canonical
                                  nord14 desaturates to gray-green as ink) */
  --nord15-ink: oklch(0.523 0.204 337.7);       /* purple — sort/filter accent icons; aurora
                                  hue pushed to full magenta vividness
                                  (canonical nord15 fades into the
                                  gray-blues as ink) */

  /* Aurora (and frost) as light tints on snow — row highlights, label and
     button fills. The wash step is the palest, for past-due surfaces. */
  --nord9-tint: oklch(0.903 0.018 253);       /* frost blue */
  --nord11-tint: oklch(0.89 0.03 13);      /* red */
  --nord12-tint: oklch(0.912 0.027 47);      /* orange */
  --nord13-tint: oklch(0.929 0.049 91);      /* yellow */
  --nord13-wash: oklch(0.956 0.03 90);      /* pale yellow — past-due / due-soon */
  --nord14-tint: oklch(0.919 0.028 127);      /* green */
  --nord15-tint: oklch(0.904 0.018 334);      /* purple */

  /* LawPay (2017-era UI) — sampled from the reference screenshot
     (~/lawpay.png): deep navy chrome and primary actions, azure active
     states, steel-blue links, white ground, a paid-green success accent.
     Text inks are darkened from the sampled anti-aliased values to their
     design-true weights. */
  --oxford-navy: oklch(0.395 0.105 247);       /* primary button fill, link hover */
  --oxford-azure: oklch(0.58 0.1684 250.9);      /* accent icons, rails (3:1 graphics bar) */
  --oxford-azure-ink: oklch(0.555 0.159 250);  /* azure when it carries white text —
                                   fills for active tabs/pills (4.77:1) */
  --oxford-green-ink: oklch(0.5359 0.1321 155.1);  /* green when it carries text — money,
                                   Paid, the Confirm fill (4.83:1) */
  --oxford-azure-soft: oklch(0.7 0.1 244.3); /* muted accent */
  --oxford-azure-tint: oklch(0.937 0.024 238); /* selection wash */
  --oxford-steel: oklch(0.529 0.097 244);      /* link ink (steel column-header blue) */
  --oxford-chrome: oklch(0.437 0.043 249);     /* the dark window-chrome slate (top nav) */
  --oxford-slate: oklch(0.403 0.024 246);      /* body text (the logotype slate) */
  --oxford-slate-dark: oklch(0.327 0.023 246); /* headings */
  --oxford-gray: oklch(0.517 0.005 258);       /* muted text (sidebar labels) */
  --oxford-gray-soft: oklch(0.708 0.013 240);  /* fainter text */
  --oxford-paper: oklch(1 0 none);      /* content ground */
  --oxford-mist: oklch(0.984 0.002 197);       /* sidebar ground */
  --oxford-mist-dark: oklch(0.935 0.004 236);  /* chrome tier (toolbars, headers) — a
                                      true gray, per the sober revision */
  --oxford-gray-select: oklch(0.889 0.008 242); /* selection/active fill — darker gray */
  --oxford-line: oklch(0.915 0.01 239);       /* hairlines */
  --oxford-line-dark: oklch(0.852 0.014 234);  /* stronger borders */
  --oxford-green: oklch(0.6197 0.1543 154.62);      /* the 'Paid' green, raised to the azure's
                                   chroma band (sampled #3f9068 read dusty
                                   beside the vivid actives) */
  --oxford-green-tint: oklch(0.921 0.041 163); /* success fills, brightened to match */

  /* Everforest (https://github.com/sainnhe/everforest) — medium dark
     variant. Canonical values; the *-soft / *-dim / *-deep shades are
     interpolated steps the scheme doesn't ship, needed to fill the app's
     ladders. */
  --ef-bg-dim: oklch(0.28 0.012 233);       /* dark: dimmed base */
  --ef-bg0: oklch(0.324 0.015 240);          /* dark: main surface */
  --ef-bg1: oklch(0.36 0.017 227);
  --ef-bg2: oklch(0.394 0.017 227);
  --ef-bg3: oklch(0.431 0.017 232);
  --ef-grey0: oklch(0.601 0.021 140);        /* dark: faint gray */
  --ef-grey1: oklch(0.647 0.02 156);        /* dark: comment gray */
  --ef-fg: oklch(0.83 0.041 86);           /* dark: cream text */
  --ef-fg-soft: oklch(0.8 0.043 90);      /* interpolated — secondary text */
  --ef-fg-dim: oklch(0.75 0.041 88);       /* interpolated — primary body text */
  --ef-green: oklch(0.773 0.091 126);        /* dark: signature green */
  --ef-aqua: oklch(0.754 0.091 151.4);
  --ef-green-deep: oklch(0.6 0.078 131);   /* interpolated — solid green button fill */
  --ef-red: oklch(0.709 0.128 20);
  --ef-orange: oklch(0.75 0.106 45);
  --ef-purple: oklch(0.75 0.082 349);
  --ef-yellow: oklch(0.808 0.086 84);        /* dark: brand gradient's warm end */

  /* Letterhead (after a firm engagement letter) — one warm stone axis,
     hue 68–100, lightness the only real dial; fountain-pen blue as the
     sole working accent. Canonical cl values keep their exact oklch;
     the ladder steps are interpolated on the same axis to fill the
     app's surface and border ladders. The Kosmos --stone-* ramp is
     achromatic, so it cannot stand in for these. */
  --lh-bright: oklch(0.978 0.006 100);       /* above paper — lightest surfaces */
  --lh-mid: oklch(0.966 0.008 100);          /* raised light surfaces */
  --lh-paper: oklch(0.954 0.0094 100);       /* cl --paper — body ground, cells */
  --lh-paper-dim: oklch(0.938 0.013 99.5);   /* section tier / table headers */
  --lh-field: oklch(0.92 0.0162 99);         /* cl --field — chrome tier, inputs */
  --lh-field-dim: oklch(0.902 0.017 98);     /* hover step between field and chip */
  --lh-chip: oklch(0.885 0.0185 97);         /* cl --chip — "you are here" fills */
  --lh-chip-dim: oklch(0.84 0.022 96.3);     /* selection — two shades deeper than the chip */
  --lh-rule: oklch(0.822 0.0237 96);         /* cl --rule — THE hairline */
  --lh-rule-dark: oklch(0.74 0.026 92);      /* stronger border step */
  --lh-rule-strong: oklch(0.62 0.026 88);    /* darkest border step */
  --lh-ink-faint: oklch(0.58 0.021 84);      /* placeholders, faintest text */
  --lh-ink-soft: oklch(0.466 0.0189 82.7);   /* cl --ink-soft — secondary text */
  --lh-ink: oklch(0.374 0.0087 67.6);        /* cl --ink — primary text, button fill */
  --lh-press: oklch(0.291 0.0084 75.3);      /* cl --press — headings, button hover */
  --lh-on-ink: oklch(0.99 0.006 100);        /* cl --on-ink — text on ink buttons */

  /* Fountain-pen blue — calendar events, chart arc, blue highlights */
  --lh-blue: oklch(0.47 0.1 252);            /* cl --link */
  --lh-blue-bright: oklch(0.55 0.105 252);   /* hover lift */
  --lh-blue-dim: oklch(0.72 0.06 252);       /* selected-item borders */
  --lh-blue-tint: oklch(0.9 0.032 252);      /* selection wash */
  --lh-blue-wash: oklch(0.936 0.02 252);     /* hl-blue rows, calendar today */

  /* Functional inks — Kosmos's status/label semantics kept, chroma
     roughly halved vs Matcha and warm-shifted: quiet ink stamps on
     stone paper */
  --lh-red-ink: oklch(0.49 0.11 30);         /* sealing-wax red — urgent/error */
  --lh-amber-ink: oklch(0.52 0.1 55);        /* sienna — warnings */
  --lh-gold-ink: oklch(0.6 0.11 80);         /* old-gold — yellow icons */
  --lh-green-ink: oklch(0.5 0.08 135);       /* ledger green — success/Add */
  --lh-plum-ink: oklch(0.49 0.12 305);       /* plum — accent icons (sort/filter) */
  --lh-plum-soft: oklch(0.6 0.09 305);       /* muted plum */

  /* The same hues diluted to paper tints — labels, highlights, washes */
  --lh-red-tint: oklch(0.912 0.032 30);
  --lh-orange-tint: oklch(0.922 0.036 60);
  --lh-amber-tint: oklch(0.928 0.04 90);
  --lh-amber-wash: oklch(0.945 0.024 95);    /* past-due / due-soon — barely off paper */
  --lh-green-tint: oklch(0.918 0.03 133);
  --lh-green-line: oklch(0.82 0.06 135);     /* status-green chip line */
  --lh-green-hover: oklch(0.9 0.038 133);
  --lh-plum-tint: oklch(0.914 0.024 310);
  --lh-slate-tint: oklch(0.916 0.012 250);   /* cool gray — hl-slate, distinct from warm ground */
}
