:root{
--ink:#312E2B;
--deep-sage:#404B39;
--sage:#7E9274;
--mushroom:#B8B3AB;
--cream:#F7F1E7;
--ivory:#FDFBF7;
--dusty-rose:#C18A98;
--blush:#E9D3D6;
--white:#FFFFFF;
--deep-sage-70:oklch(from var(--deep-sage) l c h / 0.7);
--deep-sage-35:oklch(from var(--deep-sage) l c h / 0.35);
--deep-sage-15:oklch(from var(--deep-sage) l c h / 0.15);
--sage-30:oklch(from var(--sage) l c h / 0.3);
--sage-12:oklch(from var(--sage) l c h / 0.12);
--dusty-rose-40:oklch(from var(--dusty-rose) l c h / 0.4);
--mushroom-40:oklch(from var(--mushroom) l c h / 0.4);
--ink-75:oklch(from var(--ink) l c h / 0.75);
--ink-60:oklch(from var(--ink) l c h / 0.6);
--cream-25:oklch(from var(--cream) l c h / 0.25);

/* Text — only Ink and Deep Sage are text-safe on Cream (12.2:1 / 8.3:1).
   Mushroom is 1.9:1 and Sage 3.0:1 — never body copy. */
--text-primary:var(--ink);
--text-secondary:var(--ink-75);
--text-muted:var(--ink-60);
--text-on-dark:var(--cream);

/* Surfaces — two-step warm paper system. True white is clinical-only. */
--surface-page:var(--cream);
--surface-card:var(--cream);
--surface-panel:var(--mushroom-40);
--surface-sunken:oklch(from var(--cream) calc(l - 0.02) c h);
--surface-raised:var(--ivory);
--surface-inverse:var(--deep-sage);
--surface-clinical:var(--white);
--surface-accent-tint:var(--blush);
--surface-accent-tint-sage:var(--sage-12);

--border-subtle:var(--mushroom-40);
--border-strong:var(--deep-sage);
--border-accent:var(--dusty-rose);
--border-on-inverse:var(--cream-25);

/* One functional accent. Rose and Sage are decorative — not links, buttons or labels. */
--accent-primary:var(--deep-sage);
--accent-hover:oklch(from var(--deep-sage) calc(l - 0.05) c h);
--accent-pressed:oklch(from var(--deep-sage) calc(l - 0.09) c h);
--accent-disabled:var(--deep-sage-35);
--decor-rose:var(--dusty-rose);
--decor-sage:var(--sage);

--link:var(--deep-sage);
--link-hover:oklch(from var(--deep-sage) calc(l - 0.06) c h);

--focus-ring:var(--deep-sage);

/* Reversed mode — on Deep Sage. Cream 8.3:1, Blush 6.5:1 both text-safe;
   Dusty Rose 3.2:1 large/UI only; Sage 2.7:1 fails — decorative only. */
--text-on-inverse:var(--cream);
--text-on-inverse-secondary:var(--blush);
--decor-on-inverse:var(--dusty-rose);

/* Semantic — warm-shifted to sit inside the palette. All pass AA on Cream. */
--error:#9E3B2E;
--error-tint:oklch(from #9E3B2E l c h / 0.12);
--success:#3F6B4A;
--success-tint:oklch(from #3F6B4A l c h / 0.12);
--warning:#8A5A18;
--warning-tint:oklch(from #8A5A18 l c h / 0.12);
}
