:root {
  --background-default: rgb(250, 250, 250); /** Page canvas — the base background behind all content. */
  --background-subtle: rgb(245, 245, 245); /** Subtly differentiated background for alternating or grouped sections. */
  --surface-default: rgb(255, 255, 255); /** Default container surface — cards, panels, and inputs on the page. */
  --surface-raised: rgb(255, 255, 255); /** Raised surface for higher-elevation layers (menus, popovers, dialogs). Higher elevation reads lighter in dark mode. */
  --surface-sunken: rgb(245, 245, 245); /** Recessed surface for wells and inset regions. */
  --text-default: rgb(14, 17, 19); /** Primary body and heading text. */
  --text-muted: rgb(73, 80, 84); /** Secondary text — supporting copy, captions, metadata. */
  --text-subtle: rgb(136, 143, 146); /** Tertiary text — placeholders and disabled labels. The mid-grey reads in both modes. */
  --text-inverse: rgb(255, 255, 255); /** Text and icons rendered on an action or solid fill. */
  --text-link: rgb(0, 38, 100); /** Inline hyperlink text. */
  --border-default: rgb(220, 223, 224); /** Default border for inputs, cards, and dividers. */
  --border-subtle: rgb(235, 235, 235); /** Low-emphasis border for subtle separation. */
  --border-strong: rgb(136, 143, 146); /** High-emphasis border for focus and selected states. */
  --action-default: rgb(0, 38, 100); /** Primary interactive colour — buttons, links, key accents. NSW navy in light, brightened for contrast in dark. */
  --action-hover: rgb(0, 16, 55); /** Hover and active state for primary actions. */
  --action-subtle: rgb(240, 251, 255); /** Tinted background for low-emphasis (ghost) actions. */
  --success-surface: rgb(239, 249, 237); /** Success (positive outcomes and confirmations) — tinted background. */
  --success-text: rgb(0, 90, 2); /** Success (positive outcomes and confirmations) — readable text on the tint. */
  --success-border: rgb(143, 199, 138); /** Success (positive outcomes and confirmations) — border and divider. */
  --success-solid: rgb(0, 138, 7); /** Success (positive outcomes and confirmations) — solid fill for badges and icons. */
  --warning-surface: rgb(255, 243, 237); /** Warning (caution and pending states) — tinted background. */
  --warning-text: rgb(136, 47, 3); /** Warning (caution and pending states) — readable text on the tint. */
  --warning-border: rgb(238, 168, 138); /** Warning (caution and pending states) — border and divider. */
  --warning-solid: rgb(201, 80, 0); /** Warning (caution and pending states) — solid fill for badges and icons. */
  --danger-surface: rgb(255, 240, 239); /** Danger (errors and destructive actions) — tinted background. */
  --danger-text: rgb(124, 6, 31); /** Danger (errors and destructive actions) — readable text on the tint. */
  --danger-border: rgb(234, 146, 148); /** Danger (errors and destructive actions) — border and divider. */
  --danger-solid: rgb(184, 18, 55); /** Danger (errors and destructive actions) — solid fill for badges and icons. */
  --info-surface: rgb(233, 238, 247); /** Info (neutral information) — tinted background. */
  --info-text: rgb(25, 51, 102); /** Info (neutral information) — readable text on the tint. */
  --info-border: rgb(128, 152, 194); /** Info (neutral information) — border and divider. */
  --info-solid: rgb(46, 82, 153); /** Info (neutral information) — solid fill for badges and icons. */
}
