[data-theme='dark'], .dark {
  --background-default: hsl(210, 28.571429%, 2.745098%); /** Page canvas — the base background behind all content. */
  --background-subtle: hsl(204, 15.151515%, 6.470588%); /** Subtly differentiated background for alternating or grouped sections. */
  --surface-default: hsl(204, 15.151515%, 6.470588%); /** Default container surface — cards, panels, and inputs on the page. */
  --surface-raised: hsl(206.666667, 11.688312%, 15.098039%); /** Raised surface for higher-elevation layers (menus, popovers, dialogs). Higher elevation reads lighter in dark mode. */
  --surface-sunken: hsl(210, 28.571429%, 2.745098%); /** Recessed surface for wells and inset regions. */
  --text-default: hsl(0, 0%, 96.078431%); /** Primary body and heading text. */
  --text-muted: hsl(200, 9.89011%, 82.156863%); /** 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(210, 28.571429%, 2.745098%); /** Text and icons rendered on an action or solid fill. */
  --text-link: hsl(196.173913, 100%, 77.45098%); /** Inline hyperlink text. */
  --border-default: hsl(204, 8.62069%, 22.745098%); /** Default border for inputs, cards, and dividers. */
  --border-subtle: hsl(206.666667, 11.688312%, 15.098039%); /** 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(202.396313, 100%, 57.45098%); /** Primary interactive colour — buttons, links, key accents. NSW navy in light, brightened for contrast in dark. */
  --action-hover: hsl(196.173913, 100%, 77.45098%); /** Hover and active state for primary actions. */
  --action-subtle: hsl(222.545455, 100%, 10.784314%); /** Tinted background for low-emphasis (ghost) actions. */
  --success-surface: hsl(120, 100%, 4.313725%); /** Success (positive outcomes and confirmations) — tinted background. */
  --success-text: hsl(115.081967, 35.260116%, 66.078431%); /** Success (positive outcomes and confirmations) — readable text on the tint. */
  --success-border: hsl(121.333333, 100%, 17.647059%); /** Success (positive outcomes and confirmations) — border and divider. */
  --success-solid: hsl(118.181818, 47.826087%, 40.588235%); /** Success (positive outcomes and confirmations) — solid fill for badges and icons. */
  --warning-surface: hsl(6.153846, 100%, 7.647059%); /** Warning (caution and pending states) — tinted background. */
  --warning-text: hsl(18, 74.626866%, 73.72549%); /** Warning (caution and pending states) — readable text on the tint. */
  --warning-border: hsl(19.849624, 95.683453%, 27.254902%); /** Warning (caution and pending states) — border and divider. */
  --warning-solid: hsl(19.245283, 64.37247%, 51.568627%); /** Warning (caution and pending states) — solid fill for badges and icons. */
  --danger-surface: hsl(356.571429, 100%, 6.862745%); /** Danger (errors and destructive actions) — tinted background. */
  --danger-text: hsl(358.636364, 67.692308%, 74.509804%); /** Danger (errors and destructive actions) — readable text on the tint. */
  --danger-border: hsl(347.288136, 90.769231%, 25.490196%); /** Danger (errors and destructive actions) — border and divider. */
  --danger-solid: hsl(353.333333, 54.216867%, 51.176471%); /** Danger (errors and destructive actions) — solid fill for badges and icons. */
  --info-surface: hsl(228.461538, 86.666667%, 5.882353%); /** Info (neutral information) — tinted background. */
  --info-text: hsl(218.181818, 35.106383%, 63.137255%); /** Info (neutral information) — readable text on the tint. */
  --info-border: hsl(219.74026, 60.629921%, 24.901961%); /** Info (neutral information) — border and divider. */
  --info-solid: hsl(219.183673, 42.608696%, 45.098039%); /** Info (neutral information) — solid fill for badges and icons. */
}
