:root {
  --planora-sage-50:#F4F7F5;
  --planora-sage-100:#E5EEE9;
  --planora-sage-200:#CDDCD4;
  --planora-sage-300:#AAC2B7;
  --planora-sage-400:#7FA294;
  --planora-sage-500:#638779;
  --planora-sage-600:#4D7265;
  --planora-sage-700:#3E5E53;
  --planora-sage-800:#324C44;
  --planora-sage-900:#263B35;

  --planora-neutral-50:#F7F8F7;
  --planora-neutral-100:#F1F3F2;
  --planora-neutral-200:#E2E6E4;
  --planora-neutral-300:#CBD1CE;
  --planora-neutral-400:#A7B0AC;
  --planora-neutral-500:#7A8681;
  --planora-neutral-550:#69756F;
  --planora-neutral-600:#5C6863;
  --planora-neutral-700:#414C47;
  --planora-neutral-800:#2D3733;
  --planora-neutral-900:#202925;

  --planora-success-600:#3E7D60;
  --planora-success-100:#EAF5EF;
  --planora-success-800:#285B43;
  --planora-warning-50:#FBF3E7;
  --planora-warning-100:#FFF4E3;
  --planora-warning-300:#D7B784;
  --planora-warning-700:#8A5A20;
  --planora-warning-800:#714515;
  --planora-warning-900:#3B3328;
  --planora-danger-600:#B84F52;
  --planora-danger-100:#FBEDEE;
  --planora-danger-800:#8E363A;
  --planora-info-600:#4F7494;
  --planora-info-100:#EDF3F8;
  --planora-info-800:#385B78;
  --planora-focus-600:#547DA0;
  --planora-plum-600:#745C6B;

  /* Clinical visualization palette. These tokens describe clinical meaning,
     not generic UI success/warning/danger semantics. Identity is reinforced
     by marks, labels, stroke/fill treatment and lightness rather than hue alone. */
  --planora-clinical-slate-600:#64748B;
  --planora-clinical-ochre-600:#9A7B25;
  --planora-clinical-rose-600:#9C4F63;
  --planora-clinical-plum-600:#745C6B;
  --planora-clinical-amber-600:#A06A26;
  --planora-clinical-teal-600:#4F7D72;
  --planora-clinical-indigo-600:#60739C;
  --planora-clinical-cyan-600:#557C8F;
  --planora-clinical-vermillion-600:#B84F52;
  --planora-clinical-neutral-600:#7A8681;

  --color-clinical-missing-mark:var(--planora-clinical-slate-600);
  --color-clinical-caries-mark:var(--planora-clinical-ochre-600);
  --color-clinical-fracture-mark:var(--planora-clinical-rose-600);
  --color-clinical-pulp-apical-mark:var(--planora-clinical-plum-600);
  --color-clinical-periodontal-mark:var(--planora-clinical-amber-600);
  --color-clinical-implant-mark:var(--planora-clinical-teal-600);
  --color-clinical-restorative-mark:var(--planora-clinical-indigo-600);
  --color-clinical-position-mark:var(--planora-clinical-cyan-600);
  --color-clinical-hopeless-mark:var(--planora-clinical-vermillion-600);
  --color-clinical-observe-mark:var(--planora-clinical-neutral-600);

  --color-clinical-missing-surface:color-mix(in srgb,var(--color-clinical-missing-mark) 8%,#FFFFFF);
  --color-clinical-caries-surface:color-mix(in srgb,var(--color-clinical-caries-mark) 9%,#FFFFFF);
  --color-clinical-fracture-surface:color-mix(in srgb,var(--color-clinical-fracture-mark) 8%,#FFFFFF);
  --color-clinical-pulp-apical-surface:color-mix(in srgb,var(--color-clinical-pulp-apical-mark) 8%,#FFFFFF);
  --color-clinical-periodontal-surface:color-mix(in srgb,var(--color-clinical-periodontal-mark) 9%,#FFFFFF);
  --color-clinical-restorative-surface:color-mix(in srgb,var(--color-clinical-restorative-mark) 8%,#FFFFFF);
  --color-clinical-hopeless-surface:color-mix(in srgb,var(--color-clinical-hopeless-mark) 8%,#FFFFFF);

  --color-clinical-planned-mark:var(--planora-clinical-indigo-600);
  --color-clinical-surgical-mark:var(--planora-clinical-vermillion-600);
  --color-clinical-regenerative-mark:var(--planora-clinical-teal-600);
  --color-clinical-current-reference:var(--planora-clinical-slate-600);

  /* Planning membership is distinct from generic planned-treatment marks. */
  --color-planning-target-teeth:var(--color-clinical-planned-mark);
  --color-planning-target-teeth-subtle:color-mix(in srgb,var(--color-planning-target-teeth) 7%,var(--color-surface-card));

  /* Interaction is deliberately separate from clinical meaning. */
  --color-interaction-tooth-selection:var(--planora-sage-600);
  --color-interaction-tooth-selection-subtle:var(--planora-sage-100);
  --color-interaction-tooth-hover:var(--planora-sage-700);
  --color-interaction-tooth-focus:var(--planora-focus-600);

  --color-surface-page:var(--planora-neutral-50);
  --color-surface-card:#FFFFFF;
  --color-surface-subtle:var(--planora-neutral-100);
  --color-border-default:var(--planora-neutral-200);
  --color-border-strong:var(--planora-neutral-300);
  --color-text-primary:var(--planora-neutral-900);
  --color-text-secondary:var(--planora-neutral-600);
  --color-text-muted:var(--planora-neutral-550);
  --color-text-disabled:var(--planora-neutral-500);
  --color-text-on-action:#FFFFFF;

  --color-action-primary:var(--planora-sage-600);
  --color-action-primary-hover:var(--planora-sage-700);
  --color-action-primary-active:var(--planora-sage-800);
  --color-action-primary-subtle:var(--planora-sage-100);
  --color-status-success:var(--planora-success-600);
  --color-status-success-subtle:var(--planora-success-100);
  --color-status-success-text:var(--planora-success-800);
  --color-status-warning:var(--planora-warning-700);
  --color-status-warning-subtle:var(--planora-warning-100);
  --color-status-warning-text:var(--planora-warning-800);
  --color-status-danger:var(--planora-danger-600);
  --color-status-danger-subtle:var(--planora-danger-100);
  --color-status-danger-text:var(--planora-danger-800);
  --color-status-information:var(--planora-info-600);
  --color-status-information-subtle:var(--planora-info-100);
  --color-status-information-text:var(--planora-info-800);
  --color-focus-ring:var(--planora-focus-600);

  --color-attention-background:var(--planora-warning-50);
  --color-attention-border:var(--planora-warning-300);
  --color-attention-text:var(--planora-warning-900);
  --color-attention-emphasis:var(--planora-warning-800);

  --button-primary-background:var(--color-action-primary);
  --button-primary-background-hover:var(--color-action-primary-hover);
  --button-primary-background-active:var(--color-action-primary-active);
  --button-primary-text:var(--color-text-on-action);
  --input-border:var(--color-border-strong);
  --input-focus-border:var(--color-focus-ring);
  --card-background:var(--color-surface-card);
  --card-border:var(--color-border-default);
  --selection-background:var(--color-action-primary-subtle);
  --selection-border:var(--color-action-primary);
}
