/* Salua color tokens — extracted from the shipped app's porcelain theme (tone() in Salua App.dc.html).
   Canonical values are the oklch formulas the app computes at runtime; approx-hex fallbacks the
   export writes inline are: bg #F3F3F1, bg2 #FAFAF8, bg3 #E7E7E3, ink #161513, tx #55565A,
   tx2 #6E7075, tx3 #8E9095, txStrong #3A3B3F, pos #1E8A6A, posInk #146B52, posBright #8FE3C4,
   neg #C24A3A, negSoft #F6E2DE, accent #5B4BE8. */
:root{
/* Surfaces */
--bg:oklch(.965 .004 100);--bg2:oklch(.985 .0022 100);--bg3:oklch(.915 .0042 100);--st1:oklch(.875 .0042 100);--card:oklch(.995 .001 100);
/* Ink & text */
--ink:oklch(.185 .002 100);--ink2:oklch(.245 .002 100);--tx:oklch(.425 .0016 100);--tx2:oklch(.48 .0014 100);--tx3:oklch(.58 .0012 100);--txStrong:oklch(.33 .0018 100);
/* Hairlines (ink at alpha) */
--line1:oklch(.185 .002 100 / .09);--line2:oklch(.185 .002 100 / .14);--line3:oklch(.185 .002 100 / .20);
/* Green — brand + action ("pos") */
--pos:oklch(.52 .11 128);--posInk:oklch(.40 .095 128);--posSoft:oklch(.93 .045 128);--posBright:oklch(.85 .105 128);
/* Red — destructive / no-show ("neg") */
--neg:oklch(.55 .15 27);--negSoft:oklch(.945 .04 27);
/* Amber — pending/attention ("warn"): UNCONFIRMED status, live "now" line, behind-usual flags. */
--warn:oklch(.68 .13 70);--warnInk:oklch(.50 .115 70);--warnSoft:oklch(.95 .045 75);
/* Purple — ANALYTICS CHARTS ONLY (highlighted bars). Never status, never UI chrome. */
--accent:#5B4BE8;
/* Semantic aliases */
--surface-page:var(--bg2);--surface-app:var(--bg);--surface-card:var(--card);--surface-sunken:var(--bg3);
--text-body:var(--ink);--text-secondary:var(--tx2);--text-tertiary:var(--tx3);--text-strong:var(--txStrong);
--action-primary:var(--pos);--action-primary-ink:#fff;--action-on-dark:var(--posBright);--action-on-dark-ink:var(--posInk);
--status-confirmed:var(--pos);--status-unconfirmed:var(--warn);--status-noshow:var(--neg);--chart-highlight:var(--accent);
}
