/* Shared semantic status palette. Brand accents and neutral states stay unchanged.
   Chroma increased by 70% in OKLCH, then mapped to sRGB. Saturated colors
   stop at the display gamut; text/control lightness is adjusted for AA contrast.
   The final layer deliberately wins over historical page-level token overrides. */
html:root:has([data-status-colors]) {
  --success:#007D06!important; --success-text:#007D06!important;
  --success-soft:#DEF8E7!important; --success-bg:var(--success-soft)!important;
  --success-border:#3ED58A!important;
  --warning:#A95400!important; --warning-text:#954800!important;
  --warning-soft:#FFF2AB!important; --warning-bg:var(--warning-soft)!important;
  --warning-border:#E6A100!important;
  --orange:#AC5000!important; --orange-soft:#FFF0E1!important;
  --danger:#D00000!important; --danger-text:#D00000!important;
  --danger-soft:#FFE3EA!important; --danger-bg:var(--danger-soft)!important;
  --danger-border:#FF698A!important; --on-danger:#FFFFFF!important;
  --status-pending-signal:var(--warning)!important; --status-pending-text:var(--warning-text)!important; --status-pending-tone:var(--warning-soft)!important;
  --status-replied-signal:var(--success)!important; --status-replied-text:var(--success-text)!important; --status-replied-tone:var(--success-soft)!important;
  --status-rdv-signal:var(--success)!important; --status-rdv-text:var(--success-text)!important; --status-rdv-tone:var(--success-soft)!important;
  --status-signed-signal:var(--success)!important; --status-signed-text:var(--success-text)!important; --status-signed-tone:var(--success-soft)!important;
  --status-standby-signal:var(--orange)!important; --status-standby-text:var(--orange)!important; --status-standby-tone:var(--orange-soft)!important;
  --status-lost-signal:var(--danger)!important; --status-lost-text:var(--danger-text)!important; --status-lost-tone:var(--danger-soft)!important;
  --dv-ok:var(--success-text)!important; --dv-ok-bg:var(--success-soft)!important;
  --dv-warn:var(--warning-text)!important; --dv-warn-bg:var(--warning-soft)!important;
  --dv-bad:var(--danger-text)!important; --dv-bad-bg:var(--danger-soft)!important;
}
/* Stage keys are authoritative even in legacy badges without a modifier class. */
html:has([data-status-colors]) body .status-badge[data-stage="pending"] {
  --status-signal:var(--status-pending-signal)!important; --status-tone:var(--status-pending-tone)!important; --status-text:var(--status-pending-text)!important;
}
html:has([data-status-colors]) body .status-badge:is([data-stage="replied"],[data-stage="in_progress"],[data-stage="rdv"],[data-stage="signed"]) {
  --status-signal:var(--status-signed-signal)!important; --status-tone:var(--status-signed-tone)!important; --status-text:var(--status-signed-text)!important;
}
html:has([data-status-colors]) body .status-badge[data-stage="standby"] {
  --status-signal:var(--status-standby-signal)!important; --status-tone:var(--status-standby-tone)!important; --status-text:var(--status-standby-text)!important;
}
html:has([data-status-colors]) body .status-badge[data-stage="lost"] {
  --status-signal:var(--status-lost-signal)!important; --status-tone:var(--status-lost-tone)!important; --status-text:var(--status-lost-text)!important;
}
html:root[data-theme="dark"]:has([data-status-colors]) {
  --success:#00E945!important; --success-text:#00F76D!important;
  --success-soft:#00391E!important; --success-border:#00A34B!important;
  --warning:#FFC100!important; --warning-text:#FFD000!important;
  --warning-soft:#422E00!important; --warning-border:#C28100!important;
  --orange:#FFA449!important; --orange-soft:#3D2815!important;
  --danger:#FF5B7E!important; --danger-text:#FF5B7E!important;
  --danger-soft:#4F1124!important; --danger-border:#F2004C!important;
  --on-danger:#231014!important;
}
/* Public/auth forms share the same semantic red, not a separate pastel error. */
html:has([data-status-colors]) .entry-page { --err:var(--danger-text); }
html:has([data-status-colors]) .index-auth-badge {
  color:var(--success-text); background:var(--success-soft);
}
/* Finder owns node geometry, not another semantic color vocabulary. */
html:root:has([data-status-colors]) #finderCampaignApp {
  --fc-status-success:var(--success-text);
  --fc-status-warning:var(--orange);
  --fc-status-danger:var(--danger-text);
  --fc-status-waiting:var(--warning-text);
}
