/* FlowState.HealthCare v1.1. Flat colors, plain JSON tokens (no DTCG schema claim). */
:root {
  color-scheme:light;
  --fs-brand-aubergine:#38133D;
  --fs-brand-rose:#FF4388;
  --fs-brand-saffron:#FFC335;
  --fs-brand-ivory:#FCF9F6;
  --fs-brand-ink:#2A1730;
  --fs-neutral-paper:#FFFFFF;
  --fs-neutral-canvas:#FAF7FA;
  --fs-neutral-plum-tint:#F3EAF4;
  --fs-neutral-divider:#DDD1DF;
  --fs-neutral-neutral-text:#615064;
  --fs-light-bg:#FAF7FA;
  --fs-light-surface:#FFFFFF;
  --fs-light-text:#2A1730;
  --fs-light-text-muted:#615064;
  --fs-light-border:#DDD1DF;
  --fs-light-accent-text:#B71855;
  --fs-light-primary-fill:#38133D;
  --fs-light-primary-on-fill:#FFFFFF;
  --fs-light-focus:#38133D;
  --fs-light-success:#196A52;
  --fs-light-warning:#744E00;
  --fs-light-error:#A8203E;
  --fs-light-info:#285FB7;
  --fs-light-control-border:#836A87;
  --fs-dark-bg:#160A1D;
  --fs-dark-surface:#25132D;
  --fs-dark-elevated:#331A3B;
  --fs-dark-text:#FAF7FC;
  --fs-dark-text-muted:#D6C3D5;
  --fs-dark-border:#937596;
  --fs-dark-accent-text:#FF91B9;
  --fs-dark-primary-fill:#FF91B9;
  --fs-dark-primary-on-fill:#160A1D;
  --fs-dark-focus:#FFD77A;
  --fs-dark-success:#97E9BF;
  --fs-dark-warning:#FBE48C;
  --fs-dark-error:#FFA1AD;
  --fs-dark-info:#A9C9FF;
  --fs-dark-control-border:#937596;
  --fs-divider:var(--fs-neutral-divider);
  --fs-plum-tint:var(--fs-neutral-plum-tint);
  --fs-ink:var(--fs-brand-ink);
  --fs-bg:var(--fs-light-bg);
  --fs-surface:var(--fs-light-surface);
  --fs-elevated:var(--fs-light-surface);
  --fs-text:var(--fs-light-text);
  --fs-muted:var(--fs-light-text-muted);
  --fs-border:var(--fs-light-border);
  --fs-control-border:var(--fs-light-control-border);
  --fs-link:var(--fs-light-accent-text);
  --fs-primary:var(--fs-light-primary-fill);
  --fs-on-primary:var(--fs-light-primary-on-fill);
  --fs-focus:var(--fs-light-focus);
  --fs-success:var(--fs-light-success);
  --fs-warning:var(--fs-light-warning);
  --fs-error:var(--fs-light-error);
  --fs-info:var(--fs-light-info);
  --fs-font-display:'Inter Display','Inter',system-ui,sans-serif;
  --fs-font-body:'Inter',system-ui,sans-serif;
  --fs-radius-control:8px; --fs-radius-card:12px; --fs-radius-overlay:16px;
  --fs-spacing-unit:4px;
}
:root[data-theme='dark'], [data-theme='dark'] {
  color-scheme:dark;
  --fs-bg:var(--fs-dark-bg);
  --fs-surface:var(--fs-dark-surface);
  --fs-elevated:var(--fs-dark-elevated);
  --fs-text:var(--fs-dark-text);
  --fs-muted:var(--fs-dark-text-muted);
  --fs-border:var(--fs-dark-border);
  --fs-control-border:var(--fs-dark-control-border);
  --fs-link:var(--fs-dark-accent-text);
  --fs-primary:var(--fs-dark-primary-fill);
  --fs-on-primary:var(--fs-dark-primary-on-fill);
  --fs-focus:var(--fs-dark-focus);
  --fs-success:var(--fs-dark-success);
  --fs-warning:var(--fs-dark-warning);
  --fs-error:var(--fs-dark-error);
  --fs-info:var(--fs-dark-info);
}
/* Follow the system only if the app has no explicit theme. */
@media (prefers-color-scheme:dark) {
  :root:not([data-theme='light']):not([data-theme='dark']) {
    color-scheme:dark;
    --fs-bg:var(--fs-dark-bg);
    --fs-surface:var(--fs-dark-surface);
    --fs-elevated:var(--fs-dark-elevated);
    --fs-text:var(--fs-dark-text);
    --fs-muted:var(--fs-dark-text-muted);
    --fs-border:var(--fs-dark-border);
    --fs-control-border:var(--fs-dark-control-border);
    --fs-link:var(--fs-dark-accent-text);
    --fs-primary:var(--fs-dark-primary-fill);
    --fs-on-primary:var(--fs-dark-primary-on-fill);
    --fs-focus:var(--fs-dark-focus);
    --fs-success:var(--fs-dark-success);
    --fs-warning:var(--fs-dark-warning);
    --fs-error:var(--fs-dark-error);
    --fs-info:var(--fs-dark-info);
  }
}
:root[data-theme='light'], [data-theme='light'] {
  color-scheme:light;
  --fs-bg:var(--fs-light-bg);
  --fs-surface:var(--fs-light-surface);
  --fs-elevated:var(--fs-light-surface);
  --fs-text:var(--fs-light-text);
  --fs-muted:var(--fs-light-text-muted);
  --fs-border:var(--fs-light-border);
  --fs-control-border:var(--fs-light-control-border);
  --fs-link:var(--fs-light-accent-text);
  --fs-primary:var(--fs-light-primary-fill);
  --fs-on-primary:var(--fs-light-primary-on-fill);
  --fs-focus:var(--fs-light-focus);
  --fs-success:var(--fs-light-success);
  --fs-warning:var(--fs-light-warning);
  --fs-error:var(--fs-light-error);
  --fs-info:var(--fs-light-info);
}
/* Example: contrast-preserving focus ring with visible gap from a primary button of the same fill color. */
:where(button, input, select, textarea, a[href], [tabindex]):focus-visible {
  outline:3px solid var(--fs-focus);
  outline-offset:3px;
}
/* Decorative borders use --fs-divider or --fs-neutral-divider.
   Essential inputs and controls use --fs-control-border (>=3:1 on white). */
/* Status also needs text / icon meaning; do not communicate with color alone. */
