:root {
  --background-default: hsl(0, 0%, 98.039216%); /** Page canvas — the base background behind all content. */
  --background-subtle: hsl(0, 0%, 96.078431%); /** Subtly differentiated background for alternating or grouped sections. */
  --surface-default: hsl(0, 0%, 100%); /** Default container surface — cards, panels, and inputs on the page. */
  --surface-raised: hsl(0, 0%, 100%); /** Raised surface for higher-elevation layers (menus, popovers, dialogs). Higher elevation reads lighter in dark mode. */
  --surface-sunken: hsl(0, 0%, 96.078431%); /** Recessed surface for wells and inset regions. */
  --text-default: hsl(204, 15.151515%, 6.470588%); /** Primary body and heading text. */
  --text-muted: hsl(201.818182, 7.006369%, 30.784314%); /** Secondary text — supporting copy, captions, metadata. */
  --text-subtle: hsl(198, 4.385965%, 55.294118%); /** Tertiary text — placeholders and disabled labels. The mid-grey reads in both modes. */
  --text-inverse: hsl(0, 0%, 100%); /** Text and icons rendered on an action or solid fill. */
  --text-link: hsl(217.2, 100%, 19.607843%); /** Inline hyperlink text. */
  --border-default: hsl(195, 6.060606%, 87.058824%); /** Default border for inputs, cards, and dividers. */
  --border-subtle: hsl(0, 0%, 92.156863%); /** Low-emphasis border for subtle separation. */
  --border-strong: hsl(198, 4.385965%, 55.294118%); /** High-emphasis border for focus and selected states. */
  --action-default: hsl(217.2, 100%, 19.607843%); /** Primary interactive colour — buttons, links, key accents. NSW navy in light, brightened for contrast in dark. */
  --action-hover: hsl(222.545455, 100%, 10.784314%); /** Hover and active state for primary actions. */
  --action-subtle: hsl(196, 100%, 97.058824%); /** Tinted background for low-emphasis (ghost) actions. */
  --success-surface: hsl(110, 50%, 95.294118%); /** Success (positive outcomes and confirmations) — tinted background. */
  --success-text: hsl(121.333333, 100%, 17.647059%); /** Success (positive outcomes and confirmations) — readable text on the tint. */
  --success-border: hsl(115.081967, 35.260116%, 66.078431%); /** Success (positive outcomes and confirmations) — border and divider. */
  --success-solid: hsl(123.043478, 100%, 27.058824%); /** Success (positive outcomes and confirmations) — solid fill for badges and icons. */
  --warning-surface: hsl(20, 100%, 96.470588%); /** Warning (caution and pending states) — tinted background. */
  --warning-text: hsl(19.849624, 95.683453%, 27.254902%); /** Warning (caution and pending states) — readable text on the tint. */
  --warning-border: hsl(18, 74.626866%, 73.72549%); /** Warning (caution and pending states) — border and divider. */
  --warning-solid: hsl(23.880597, 100%, 39.411765%); /** Warning (caution and pending states) — solid fill for badges and icons. */
  --danger-surface: hsl(3.75, 100%, 96.862745%); /** Danger (errors and destructive actions) — tinted background. */
  --danger-text: hsl(347.288136, 90.769231%, 25.490196%); /** Danger (errors and destructive actions) — readable text on the tint. */
  --danger-border: hsl(358.636364, 67.692308%, 74.509804%); /** Danger (errors and destructive actions) — border and divider. */
  --danger-solid: hsl(346.626506, 82.178218%, 39.607843%); /** Danger (errors and destructive actions) — solid fill for badges and icons. */
  --info-surface: hsl(218.571429, 46.666667%, 94.117647%); /** Info (neutral information) — tinted background. */
  --info-text: hsl(219.74026, 60.629921%, 24.901961%); /** Info (neutral information) — readable text on the tint. */
  --info-border: hsl(218.181818, 35.106383%, 63.137255%); /** Info (neutral information) — border and divider. */
  --info-solid: hsl(219.813084, 53.768844%, 39.019608%); /** Info (neutral information) — solid fill for badges and icons. */
}
