/* Generated from design/Marketing Site/_ds/tokens/ — do not edit. */

/* --- fonts --- */
/* Geist, licensed under the SIL Open Font License. See assets/fonts/OFL.txt.
   Two variable binaries cover the whole 100-900 range; the static cuts are not shipped. */
@font-face{font-family:'Geist';src:url("/fonts/Geist-VariableFont_wght.ttf") format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Geist';src:url("/fonts/Geist-Italic-VariableFont_wght.ttf") format("truetype-variations");font-weight:100 900;font-style:italic;font-display:swap}
:root{--font-sans:'Geist',system-ui,-apple-system,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800}

/* --- colors --- */
:root{
/* base — action */
--action:#47584F;--action-hover:#3A483F;--action-disabled:#A8BFB2;
--charcoal:#3B3935;--charcoal-hover:#2B2A27;
--nav-active:#51655A;
--chartreuse:#D4FF3D;--chartreuse-bright:#E8FF00;
/* base — ink scale */
--ink:#161819;--ink-body:#3D4A44;--ink-muted:#63726B;--ink-subtle:#8A978F;--ink-heading:#16211C;
/* base — greens */
--green-deep:#16412E;--green-support:#3F6B52;--green-support-light:#5C8570;--green-pale:#A8BFB2;
/* base — surfaces */
--white:#FFFFFF;--surface-raised:#FAFBFA;--surface-sunken:#F2F4F2;--surface-canvas:#F4F6F4;
--tint-selected:#EEF3F0;--tint-hover:#E4E9E6;--rule-light:#E9ECE9;--rule-mid:#C9D3CD;

/* semantic — text */
--text-strong:var(--ink);--text-heading:var(--ink-heading);--text-body:var(--ink-body);
--text-muted:var(--ink-muted);--text-subtle:var(--ink-subtle);--text-on-dark:#FFFFFF;
--text-link:var(--charcoal);--text-link-hover:var(--charcoal-hover);
/* semantic — surface */
--surface-page:var(--surface-canvas);--surface-card:var(--white);--surface-header:var(--surface-raised);
--surface-inset:var(--surface-raised);--surface-dark:var(--charcoal);--surface-selected:var(--tint-selected);
/* semantic — control */
--control-primary-bg:var(--action);--control-primary-bg-hover:var(--action-hover);
--control-primary-ring:var(--chartreuse);--control-primary-ring-hover:var(--chartreuse-bright);
--control-secondary-border:rgba(22,65,46,.2);--control-secondary-border-hover:rgba(22,65,46,.35);
--control-secondary-bg-hover:var(--tint-selected);--control-disabled-bg:var(--action-disabled);
--control-dark-bg:var(--charcoal);--control-dark-bg-hover:var(--charcoal-hover);
/* semantic — accent bars */
--accent-bar:var(--green-deep);--nav-item-active-bg:var(--nav-active);--nav-item-current-bg:var(--tint-selected);
/* semantic — wayfinding. Chartreuse marks where you are, and nothing else. */
--wayfinding:var(--chartreuse);--wayfinding-width:3px;
--nav-item-current-edge:var(--chartreuse);
--tab-current-underline:var(--chartreuse);--shell-underline:var(--chartreuse);--focus-ring-color:var(--chartreuse-bright);
}

/* --- typography --- */
:root{
/* Geist only. One family, no display face. Steps are literal, read off the screens. */
--text-page-title-size:30px;--text-page-title-weight:700;--text-page-title-lh:1.15;--text-page-title-tracking:-.02em;
--text-screen-title-size:22px;--text-screen-title-weight:700;--text-screen-title-tracking:-.015em;
--text-section-title-size:20px;--text-section-title-weight:700;--text-section-title-tracking:-.015em;
--text-panel-title-size:15px;--text-panel-title-weight:700;
--text-card-title-size:13.5px;--text-card-title-weight:700;
--text-row-title-size:12.5px;--text-row-title-weight:600;
--text-editorial-size:13px;--text-editorial-weight:400;
--text-body-size:12.5px;--text-body-weight:400;--text-body-lh:1.65;
--text-meta-size:11.5px;--text-meta-weight:400;
--text-note-size:11px;--text-note-weight:400;--text-note-lh:1.6;
--text-fine-size:10.5px;--text-fine-weight:400;--text-fine-lh:1.55;
--text-eyebrow-size:9px;--text-eyebrow-weight:600;--text-eyebrow-tracking:.11em;
--text-columnlabel-size:9.5px;--text-columnlabel-weight:600;--text-columnlabel-tracking:.06em;
--text-control-size:11.5px;--text-control-weight:600;
--text-chip-size:10px;--text-chip-weight:600;
}

/* --- spacing --- */
:root{
/* Not a strict 4/8 grid. These are the literal steps in use. */
--space-1:3px;--space-2:5px;--space-3:6px;--space-4:7px;--space-5:8px;--space-6:9px;--space-7:10px;
--space-8:12px;--space-9:14px;--space-10:16px;--space-11:18px;--space-12:20px;--space-13:22px;
--space-14:26px;--space-15:30px;--space-16:40px;--space-17:56px;--space-18:60px;
/* recurring geometry */
--frame-width:1400px;--rail-width:198px;--rail-width-collapsed:60px;--topbar-height:56px;
--tabbar-height:44px;--search-width:260px;--search-height:34px;--icon-button-size:34px;
--phone-width:316px;--phone-height:660px;
--card-padding-y:16px;--card-padding-x:18px;--panel-padding-y:20px;--panel-padding-x:22px;
--screen-gutter:22px;
}

/* --- radius --- */
:root{
--radius-chip:5px;--radius-tag:6px;--radius-inset:7px;--radius-button:8px;--radius-input:9px;
--radius-card:11px;--radius-frame:12px;--radius-brand:14px;--radius-phone-inner:19px;--radius-phone:26px;
--radius-pill:20px;--radius-round:50%;
}

/* --- border --- */
:root{
/* One border colour at varying opacity. Nothing in the build uses a neutral grey border. */
--border-hairline:rgba(22,65,46,.07);
--border-soft:rgba(22,65,46,.1);
--border-card:rgba(22,65,46,.12);
--border-frame:rgba(22,65,46,.14);
--border-input:rgba(22,65,46,.16);
--border-control:rgba(22,65,46,.2);
--border-emphasis:rgba(22,65,46,.34);
--border-dashed:rgba(22,65,46,.22);
/* on a status ground the border switches to the warm charcoal base */
--border-on-status:rgba(59,57,53,.14);
--border-on-status-strong:rgba(59,57,53,.25);
--accent-bar-width:3px;--ring-width:1.5px;
}

/* --- elevation --- */
:root{
--shadow-none:none;
--shadow-segment:0 1px 2px rgba(59,57,53,.1);
--shadow-frame:0 14px 40px rgba(59,57,53,.08);
--shadow-phone:0 12px 34px rgba(59,57,53,.18);
--shadow-modal:0 24px 60px rgba(22,33,28,.24);
--ring-primary:0 0 0 1.5px #D4FF3D;
--ring-primary-hover:0 0 0 1.5px #E8FF00;
--ring-focus:0 0 0 2px #FFFFFF,0 0 0 4px #E8FF00;
--scrim-modal:rgba(22,24,25,.42);
--dot-outline:0 0 0 1px rgba(59,57,53,.25);
}

/* --- motion --- */
:root{
--ease-out-expo:cubic-bezier(.23,1,.32,1); /* @kind other */
--duration-press:140ms; /* @kind other */--duration-hover:140ms; /* @kind other */--duration-rail:180ms; /* @kind other */--duration-section:150ms; /* @kind other */
--transition-control:transform 140ms cubic-bezier(.23,1,.32,1),background-color 140ms ease,border-color 140ms ease; /* @kind other */
--press-scale:.97; /* @kind other */
}

/* --- people --- */
:root{
/* Eight people colours. tint = calendar block, mid = bar + avatar, deep = text on the tint.
   None is green, yellow, burnt orange or red, so a person is never read as a status. */
--person-slate-tint:#EEF2F5;--person-slate-mid:#6B8199;--person-slate-deep:#3A5580;
--person-blue-tint:#EAF2FA;--person-blue-mid:#3D8FD6;--person-blue-deep:#2B6394;
--person-violet-tint:#F0EDFA;--person-violet-mid:#5A4BAB;--person-violet-deep:#453A8C;
--person-teal-tint:#E6F2F3;--person-teal-mid:#2F8F99;--person-teal-deep:#1D5F66;
--person-clay-tint:#F7ECE6;--person-clay-mid:#B46A45;--person-clay-deep:#8A4A2F;
--person-plum-tint:#F7E9F1;--person-plum-mid:#964D78;--person-plum-deep:#6B2F52;
--person-moss-tint:#EEF3E6;--person-moss-mid:#6B8F4A;--person-moss-deep:#3F5A2C;
--person-rust-tint:#F7EBE6;--person-rust-mid:#A85A3C;--person-rust-deep:#7A3B26;
}

/* --- status --- */
:root{
/* escalation order: done → attention → heightened → failed */
--status-done-ground:#F1F5E4;--status-done-bar:#5A6F16;--status-done-text:#3F4D10;--status-done-mid:#5A6F16;
--status-attention-ground:#FFFCE0;--status-attention-bar:#FFF200;--status-attention-text:#161819;
--status-heightened-ground:#FFF1E6;--status-heightened-bar:#C55200;--status-heightened-text:#8A3900;--status-heightened-mid:#C55200;
--status-failed-ground:#F5E0DD;--status-failed-bar:#8C2F26;--status-failed-text:#8C2F26;
--status-away-ground:repeating-linear-gradient(135deg,#F2F4F2 0 5px,#E9ECE9 5px 10px); /* @kind color */--status-away-bar:#C9D3CD;--status-away-text:#4A574F;
/* the seven-colour settled palette (b3) */
--palette-chartreuse:#D4FF3D;--palette-charcoal:#3B3935;--palette-ink:#161819;
--palette-success:#5A6F16;--palette-warning:#FFF200;--palette-heightened:#C55200;--palette-error:#B9310E;
/* treatment-category tints used by the calendar grid */
--treatment-rose-tint:#FBEAE6;--treatment-rose-bar:#C0532E;
--treatment-blue-tint:#EAF2FA;--treatment-blue-bar:#3D8FD6;
--treatment-slate-tint:#EEF2F5;--treatment-slate-bar:#6B8199;
--treatment-violet-tint:#F0E6F5;--treatment-violet-bar:#7C6BD0;
}

/* --- risk --- */
:root{
/* Aesthetic Risk Score. A clinical measure, 300 to 850, with its own scale.
   Deliberately separate from the status families: a score is not a state you can fix.
   Higher is worse. The ramp runs green at 300 to red at 850 and its stops sit on the
   band boundaries (450 / 580 / 700, ARS specification v2.1 §4), so the gauge and the four-band bar read the same
   direction. The supplied artwork had this ramp reversed; that version is not kept. */
--ars-min:300; /* @kind other */
--ars-max:850; /* @kind other */
--ars-band-moderate:450; /* @kind other */
--ars-band-high:580; /* @kind other */
--ars-band-extreme:700; /* @kind other */
--ars-accent:#EA580B;--ars-figure:#B5430E;--ars-frame:#FDBA74;
--ars-track:#EFF0EE;--ars-label:#606C66;
--ars-gauge:linear-gradient(90deg,#B5C599 0%,#C8CDA5 27.3%,#EDDBBD 50.9%,#EED1BF 72.7%,#EFC5C0 100%); /* @kind color */
--ars-marker:#B0E66E;--ars-numeral:#85A8B0;
}
