/* SAVVA semantic aliases. Components reference these, never the raw palette,
   so a dark section only has to redefine one layer. */
:root {
  /* Surfaces */
  --surface-page: var(--savva-canvas-ivory);
  --surface-raised: var(--savva-white);
  --surface-sunken: var(--savva-kalahari-gold-10);
  --surface-card: var(--savva-white);
  --surface-inverse: var(--savva-night-camp);
  --surface-inverse-deep: var(--savva-ebony-trail);
  --surface-accent: var(--savva-kalahari-gold);
  --surface-accent-quiet: var(--savva-kalahari-gold-20);

  /* Ink */
  --text-body: var(--savva-night-camp);
  --text-heading: var(--savva-night-camp);
  --text-muted: var(--savva-night-camp-70);
  --text-quiet: var(--savva-night-camp-60);
  --text-accent: #8A6C45;              /* Kalahari Gold darkened for legible small text on ivory */
  --text-on-inverse: var(--savva-canvas-ivory);
  --text-on-inverse-muted: rgba(244, 239, 230, 0.72);
  --text-on-accent: var(--savva-night-camp);

  /* Borders */
  --border-default: var(--savva-night-camp-20);
  --border-quiet: var(--savva-night-camp-10);
  --border-strong: var(--savva-night-camp);
  --border-accent: var(--savva-kalahari-gold);
  --border-on-inverse: rgba(244, 239, 230, 0.22);

  /* Interactive — hover deepens tone, press deepens further; nothing scales up */
  --interactive-primary: var(--savva-night-camp);
  --interactive-primary-hover: var(--savva-ebony-trail);
  --interactive-primary-active: #21231b;
  --interactive-accent: var(--savva-kalahari-gold);
  --interactive-accent-hover: #A8895F;
  --interactive-accent-active: #957749;
  --interactive-quiet-hover: var(--savva-kalahari-gold-20);
  --interactive-disabled-surface: var(--savva-night-camp-10);
  --interactive-disabled-text: var(--savva-night-camp-40);

  /* Status. Not in the printed guide — derived from the landscape palette so
     operational states stay inside the brand. See readme.md > Intentional additions. */
  --status-on-track: #4C6B4F;
  --status-attention: #B07C2F;
  --status-delayed: #8E4B3C;
  --status-neutral: var(--savva-night-camp-60);
  --status-on-track-quiet: #E4EAE2;
  --status-attention-quiet: #F3E7D3;
  --status-delayed-quiet: #F1E1DC;
}
[data-theme="inverse"] {
  --surface-page: var(--savva-night-camp);
  --surface-raised: #3A3B2E;
  --surface-sunken: var(--savva-ebony-trail);
  --surface-card: #3A3B2E;
  --text-body: var(--savva-canvas-ivory);
  --text-heading: var(--savva-canvas-ivory);
  --text-muted: rgba(244, 239, 230, 0.72);
  --text-quiet: rgba(244, 239, 230, 0.56);
  --text-accent: var(--savva-kalahari-gold);
  --border-default: rgba(244, 239, 230, 0.22);
  --border-quiet: rgba(244, 239, 230, 0.12);
  --border-strong: var(--savva-canvas-ivory);
  --interactive-primary: var(--savva-kalahari-gold);
  --interactive-primary-hover: #C9AE8C;
  --interactive-primary-active: #D5BD9F;
  --interactive-quiet-hover: rgba(244, 239, 230, 0.08);
  --focus-ring: 0 0 0 2px var(--savva-night-camp), 0 0 0 4px var(--savva-kalahari-gold);
}
