/*
 * Interface design tokens
 * Atlassian Design System foundations expressed as framework-agnostic CSS tokens.
 * Component CSS consumes semantic tokens only; page templates should not invent
 * colours, radii, shadows or spacing values.
 */
:root{
  color-scheme:light;

  /* ADS spacing scale: 8px base unit. */
  --ds-space-0:0;
  --ds-space-025:2px;
  --ds-space-050:4px;
  --ds-space-075:6px;
  --ds-space-100:8px;
  --ds-space-150:12px;
  --ds-space-200:16px;
  --ds-space-250:20px;
  --ds-space-300:24px;
  --ds-space-400:32px;
  --ds-space-500:40px;
  --ds-space-600:48px;
  --ds-space-800:64px;
  --ds-space-1000:80px;

  /* ADS app typography. Atlassian Sans is preferred when present; the documented
     system stack is the distributable fallback for this project. */
  --ds-font-family-body:"Atlassian Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;
  --ds-font-family-mono:"Atlassian Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  --ds-font-size-050:.75rem;      /* Body S: 12px */
  --ds-font-size-075:.875rem;     /* compatibility alias -> Body M */
  --ds-font-size-100:.875rem;     /* Body M: 14px */
  --ds-font-size-200:1rem;        /* Body L / Heading S: 16px */
  --ds-font-size-300:1.25rem;     /* Heading M: 20px */
  --ds-font-size-400:1.5rem;      /* Heading L: 24px */
  --ds-font-size-500:1.75rem;     /* Heading XL: 28px */
  --ds-font-size-600:2rem;        /* Heading XXL: 32px */
  --ds-line-height-050:1rem;      /* 16px */
  --ds-line-height-100:1.25rem;   /* 20px */
  --ds-line-height-200:1.5rem;    /* 24px */
  --ds-line-height-300:1.75rem;   /* 28px */
  --ds-line-height-400:2rem;      /* 32px */
  --ds-line-height-500:2.25rem;   /* 36px */
  --ds-font-weight-regular:400;
  --ds-font-weight-medium:500;
  --ds-font-weight-semibold:600;
  --ds-font-weight-bold:700;

  /* Named typography tokens mirror the ADS foundation names. */
  --ds-font-body-small:var(--ds-font-weight-regular) var(--ds-font-size-050)/var(--ds-line-height-050) var(--ds-font-family-body);
  --ds-font-body:var(--ds-font-weight-regular) var(--ds-font-size-100)/var(--ds-line-height-100) var(--ds-font-family-body);
  --ds-font-body-large:var(--ds-font-weight-regular) var(--ds-font-size-200)/var(--ds-line-height-200) var(--ds-font-family-body);
  --ds-font-heading-xxsmall:var(--ds-font-weight-bold) var(--ds-font-size-050)/var(--ds-line-height-050) var(--ds-font-family-body);
  --ds-font-heading-xsmall:var(--ds-font-weight-bold) var(--ds-font-size-100)/var(--ds-line-height-100) var(--ds-font-family-body);
  --ds-font-heading-small:var(--ds-font-weight-bold) var(--ds-font-size-200)/var(--ds-line-height-100) var(--ds-font-family-body);
  --ds-font-heading-medium:var(--ds-font-weight-bold) var(--ds-font-size-300)/var(--ds-line-height-200) var(--ds-font-family-body);
  --ds-font-heading-large:var(--ds-font-weight-bold) var(--ds-font-size-400)/var(--ds-line-height-300) var(--ds-font-family-body);
  --ds-font-heading-xlarge:var(--ds-font-weight-bold) var(--ds-font-size-500)/var(--ds-line-height-400) var(--ds-font-family-body);
  --ds-font-heading-xxlarge:var(--ds-font-weight-bold) var(--ds-font-size-600)/var(--ds-line-height-500) var(--ds-font-family-body);
  --ds-font-metric-small:var(--ds-font-weight-bold) var(--ds-font-size-200)/var(--ds-line-height-100) var(--ds-font-family-body);
  --ds-font-metric-medium:var(--ds-font-weight-bold) var(--ds-font-size-400)/var(--ds-line-height-300) var(--ds-font-family-body);
  --ds-font-metric-large:var(--ds-font-weight-bold) var(--ds-font-size-500)/var(--ds-line-height-400) var(--ds-font-family-body);

  /* Light theme semantic colour tokens. */
  --ds-text:#172b4d;
  --ds-text-subtle:#44546f;
  --ds-text-subtlest:#626f86;
  --ds-text-disabled:#091e424f;
  --ds-text-inverse:#ffffff;
  --ds-text-brand:#0c66e4;
  --ds-text-information:#0055cc;
  --ds-text-danger:#ae2e24;
  --ds-text-warning:#7f5f01;
  --ds-text-success:#216e4e;
  --ds-text-discovery:#5e4db2;
  --ds-text-accent-orange:#974f0c;
  --ds-text-inverse-static:#ffffff;
  --ds-icon-inverse:var(--ds-text-inverse);
  --map-marker-surface:#ffffff;
  --map-marker-text:#172b4d;

  --ds-background-default:#ffffff;
  --ds-background-subtle:#f7f8f9;
  --ds-background-neutral:#091e420f;
  --ds-background-neutral-hovered:#091e4224;
  --ds-background-neutral-pressed:#091e424f;
  --ds-background-selected:#e9f2ff;
  --ds-background-selected-hovered:#cce0ff;
  --ds-background-brand-bold:#0c66e4;
  --ds-background-brand-bold-hovered:#0055cc;
  --ds-background-brand-bold-pressed:#09326c;
  --ds-background-danger:#ffeceb;
  --ds-background-danger-bold:#c9372c;
  --ds-background-danger-bold-hovered:#ae2e24;
  --ds-background-danger-bold-pressed:#5d1f1a;
  --ds-background-information:#e9f2ff;
  --ds-background-warning:#fff7d6;
  --ds-background-warning-bold:#7f5f01;
  --ds-background-accent-orange-bolder:#974f0c;
  --ds-background-success:#dffcf0;
  --ds-background-discovery:#f3f0ff;
  --ds-background-input:#ffffff;
  --ds-background-input-hovered:#f7f8f9;
  --ds-background-disabled:#091e4208;
  --ds-background-neutral-subtle-hovered:#091e420f;
  --ds-background-neutral-subtle-pressed:#091e4224;

  --ds-border:#091e4224;
  --ds-border-bold:#8590a2;
  --ds-border-input:#8590a2;
  --ds-border-focused:#388bff;
  --ds-border-selected:#0c66e4;
  --ds-border-danger:#e2483d;
  --ds-border-warning:#cf9f02;
  --ds-border-success:#22a06b;

  --ds-icon:#44546f;
  --ds-icon-subtle:#626f86;
  --ds-icon-brand:#0c66e4;
  --ds-icon-information:#0c66e4;
  --ds-icon-disabled:#091e424f;
  --ds-icon-danger:#c9372c;
  --ds-icon-warning:#b38600;
  --ds-icon-success:#22a06b;

  --ds-blanket:#091e427d;
  --ds-surface:#ffffff;
  --ds-surface-raised:#ffffff;
  --ds-surface-overlay:#ffffff;
  --ds-shadow-raised:0 1px 1px #091e4240,0 0 1px #091e424f;
  --ds-shadow-overlay:0 8px 12px #091e4226,0 0 1px #091e424f;
  --ds-shadow-overflow:0 8px 8px -8px #091e4229;

  /* Map/data-visualization roles. MapLibre reads these values at runtime. */
  --map-canvas:#e8f0f5;
  --map-boundary-fill:#dbe8d9;
  --map-boundary-line:#506f62;
  --map-subdivision-fill:#dce6d9;
  --map-subdivision-line:#829989;
  --map-warning:#b38600;
  --map-report:#5e4db2;
  --map-shelter:#216e4e;
  --map-police:#0c66e4;
  --map-fire:#c9372c;
  --map-ambulance:#22a06b;
  --map-rescue:#7f5f01;
  --map-air:#5e4db2;
  --map-neutral:#626f86;
  --map-halo:#ffffff;
  --map-route:#0c66e4;
  --map-route-air:#5e4db2;
  --map-building:#dcdfe4;
  --map-terrain-shadow:#44546f;
  --map-terrain-highlight:#f7f8f9;

  --ds-border-radius-050:3px;
  --ds-border-radius-100:6px;
  --ds-border-radius-200:8px;
  --ds-border-radius-300:12px;
  --ds-border-radius-circle:9999px;

  /* Layout tokens. */
  --app-banner-height:32px;
  --app-topnav-height:56px;
  --app-sidenav-width:280px;
  --app-content-max:1600px;
  --app-page-gutter:var(--ds-space-300);


}

html[data-theme="dark"]{
  color-scheme:dark;
  --ds-text:#b6c2cf;
  --ds-text-subtle:#9fadbc;
  --ds-text-subtlest:#8c9bab;
  --ds-text-disabled:#bfdbf847;
  --ds-text-inverse:#1d2125;
  --ds-text-brand:#579dff;
  --ds-text-information:#85b8ff;
  --ds-text-danger:#fd9891;
  --ds-text-warning:#f5cd47;
  --ds-text-success:#7ee2b8;
  --ds-text-discovery:#b8acf6;
  --ds-text-accent-orange:#fca700;
  --ds-text-inverse-static:#ffffff;
  --ds-icon-inverse:var(--ds-text-inverse);
  --map-marker-surface:#ffffff;
  --map-marker-text:#172b4d;

  --ds-background-default:#1d2125;
  --ds-background-subtle:#161a1d;
  --ds-background-neutral:#a1bdd914;
  --ds-background-neutral-hovered:#a6c5e229;
  --ds-background-neutral-pressed:#bfdbf847;
  --ds-background-selected:#1c2b41;
  --ds-background-selected-hovered:#09326c;
  --ds-background-brand-bold:#579dff;
  --ds-background-brand-bold-hovered:#85b8ff;
  --ds-background-brand-bold-pressed:#b6d5ff;
  --ds-background-danger:#42221f;
  --ds-background-danger-bold:#f15b50;
  --ds-background-danger-bold-hovered:#fd9891;
  --ds-background-danger-bold-pressed:#ffd2cc;
  --ds-background-information:#1c2b41;
  --ds-background-warning:#332e1b;
  --ds-background-warning-bold:#f5cd47;
  --ds-background-accent-orange-bolder:#fca700;
  --ds-background-success:#1c3329;
  --ds-background-discovery:#2b273f;
  --ds-background-input:#22272b;
  --ds-background-input-hovered:#282e33;
  --ds-background-disabled:#bcd6f00a;
  --ds-background-neutral-subtle-hovered:#a1bdd914;
  --ds-background-neutral-subtle-pressed:#a6c5e229;

  --ds-border:#a6c5e229;
  --ds-border-bold:#738496;
  --ds-border-input:#738496;
  --ds-border-focused:#85b8ff;
  --ds-border-selected:#579dff;
  --ds-border-danger:#fd9891;
  --ds-border-warning:#e2b203;
  --ds-border-success:#4bce97;

  --ds-icon:#9fadbc;
  --ds-icon-subtle:#8c9bab;
  --ds-icon-brand:#579dff;
  --ds-icon-information:#579dff;
  --ds-icon-disabled:#bfdbf847;
  --ds-icon-danger:#fd9891;
  --ds-icon-warning:#f5cd47;
  --ds-icon-success:#7ee2b8;

  --ds-blanket:#0304048a;
  --ds-surface:#1d2125;
  --ds-surface-raised:#22272b;
  --ds-surface-overlay:#282e33;
  --ds-shadow-raised:0 1px 1px #03040480,0 0 1px #03040480;
  --ds-shadow-overlay:0 8px 12px #0304045c,0 0 1px #03040480;
  --ds-shadow-overflow:0 8px 8px -8px #03040480;

  --map-canvas:#192b35;
  --map-boundary-fill:#34433e;
  --map-boundary-line:#aec3bb;
  --map-subdivision-fill:#43504d;
  --map-subdivision-line:#819e9b;
  --map-warning:#f5cd47;
  --map-report:#b8acf6;
  --map-shelter:#7ee2b8;
  --map-police:#579dff;
  --map-fire:#fd9891;
  --map-ambulance:#7ee2b8;
  --map-rescue:#f5cd47;
  --map-air:#b8acf6;
  --map-neutral:#9fadbc;
  --map-halo:#1d2125;
  --map-route:#579dff;
  --map-route-air:#b8acf6;
  --map-building:#454f59;
  --map-terrain-shadow:#738496;
  --map-terrain-highlight:#b6c2cf;

  --bg:var(--ds-background-subtle);
  --surface:var(--ds-surface);
  --surface-2:var(--ds-surface-raised);
  --surface-3:var(--ds-background-neutral);
  --text:var(--ds-text);
  --muted:var(--ds-text-subtle);
  --border:var(--ds-border);
  --border-strong:var(--ds-border-bold);
  --blue:var(--ds-text-brand);
  --blue-hover:var(--ds-background-brand-bold-hovered);
  --blue-soft:var(--ds-background-selected);
  --red:var(--ds-text-danger);
  --red-soft:var(--ds-background-danger);
  --amber:var(--ds-text-warning);
  --amber-soft:var(--ds-background-warning);
  --green:var(--ds-text-success);
  --green-soft:var(--ds-background-success);
  --violet:var(--ds-text-discovery);
  --violet-soft:var(--ds-background-discovery);
  --shadow:var(--ds-shadow-overlay);
}

html[data-vision="contrast"]{
  --ds-border:color-mix(in srgb,var(--ds-text) 48%,transparent);
  --ds-border-bold:var(--ds-text-subtle);
  --ds-text-subtle:color-mix(in srgb,var(--ds-text) 82%,transparent);
}
html[data-vision="large"]{font-size:18px}
html[data-vision="low-vision"]{font-size:19px;--ds-border-bold:var(--ds-text-subtle)}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-size:16px;scroll-padding-top:calc(var(--app-banner-height) + var(--app-topnav-height) + var(--ds-space-300))}
body{margin:0;background:var(--ds-background-subtle);color:var(--ds-text);font:var(--ds-font-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body,button,input,select,textarea{font-family:var(--ds-font-family-body)}
h1,h2,h3,h4,p{margin-top:0}
h1{margin-bottom:var(--ds-space-100);font:var(--ds-font-heading-large)}
h2{margin-bottom:var(--ds-space-150);font:var(--ds-font-heading-medium)}
h3{margin-bottom:var(--ds-space-100);font:var(--ds-font-heading-small)}
h4{margin-bottom:var(--ds-space-100);font:var(--ds-font-heading-small)}
p{margin-bottom:var(--ds-space-200)}
a{color:var(--ds-text-brand);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
small,.source-note{font:var(--ds-font-body-small);color:var(--ds-text-subtle)}
button,input,select,textarea{font:inherit}
button{cursor:pointer;color:inherit}
button:disabled{cursor:not-allowed;background:var(--ds-background-disabled);color:var(--ds-text-disabled);border-color:transparent}
button:disabled .icon{color:var(--ds-icon-disabled)}
input,select,textarea{width:100%;max-width:100%;min-height:36px;padding:var(--ds-space-100) var(--ds-space-150);border:1px solid var(--ds-border-input);border-radius:var(--ds-border-radius-050);background:var(--ds-background-input);color:var(--ds-text);transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease}
input:hover,select:hover,textarea:hover{background:var(--ds-background-input-hovered)}
input:focus,select:focus,textarea:focus{border-color:var(--ds-border-focused);box-shadow:0 0 0 1px var(--ds-border-focused);outline:none}
textarea{resize:vertical;min-height:96px}
input::placeholder,textarea::placeholder{color:var(--ds-text-subtlest);opacity:1}
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;min-height:18px;padding:0;accent-color:var(--ds-background-brand-bold);flex:0 0 auto}
:focus-visible{outline:2px solid var(--ds-border-focused);outline-offset:2px}
form{margin:0}
fieldset{min-width:0;margin:0 0 var(--ds-space-150);padding:0;border:0}
legend{padding:var(--ds-space-050) 0;font:var(--ds-font-body-small);font-weight:var(--ds-font-weight-semibold);color:var(--ds-text-subtle)}
hr{border:0;border-top:1px solid var(--ds-border)}
.icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;flex:0 0 auto;vertical-align:middle}
.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}
.muted{color:var(--ds-text-subtle)}
.mono,time{font-family:var(--ds-font-family-mono);font-size:var(--ds-font-size-050);line-height:var(--ds-line-height-050)}
.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}
.skip-link{position:fixed;left:var(--ds-space-200);top:-100px;z-index:1000;padding:var(--ds-space-100) var(--ds-space-150);border-radius:var(--ds-border-radius-100);background:var(--ds-background-brand-bold);color:var(--ds-text-inverse);box-shadow:var(--ds-shadow-overlay)}
.skip-link:focus{top:var(--ds-space-150)}
.education-bar{position:sticky;top:0;z-index:300;min-height:var(--app-banner-height);padding:var(--ds-space-050) var(--ds-space-150);display:flex;align-items:center;justify-content:center;background:var(--ds-background-selected);color:var(--ds-text);border-bottom:1px solid var(--ds-border);font:var(--ds-font-body-small);text-align:center}
.education-bar a{font-weight:var(--ds-font-weight-semibold);color:var(--ds-text-brand);text-decoration:underline;text-underline-offset:2px}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
