/* Annual report preview (staff only): templates/annual_report/report.html.

   Ported from the annual report design preview of 2026-11-04 (a standalone Block theme page,
   not committed) and owned here from now on.

   * The page sits inside the site's own navbar and footer, so the preview's header, footer,
     skip link and font files are not carried over: Public Sans 400/600/800 come from
     pages/base.html.
   * Every selector is scoped under #annual-report. The site's link and dark-mode rules are
     long :not() chains in pages/base.html (specificity 0,9,1 and up), which outrank any class
     selector, so without the ID the report's buttons and links came out underlined and
     recoloured. The ID raises every rule by the same amount, so the order among the report's
     own rules is unchanged.
   * The report follows the site's theme. Every colour that changes between themes is a
     --report-* token below; the dark values are set under html[data-bs-theme="dark"], which
     color-modes.js sets from the reader's choice or prefers-color-scheme. A rule that needs a
     colour reads a token, never a literal, unless the colour is the same in both themes (white
     text on the red or slate bands, the chart's category colours). Print is always light: the
     @media print blocks keep their literals.
   * Three places stay light in the dark theme because they sit on a light image or are drawn
     as one: the example city map panel, the publication cover and the network schematic. They
     reset the tokens to their light values (see "Dark theme" below). */
#annual-report {
   color-scheme: light;
}
#annual-report strong,
#annual-report b {
   color: inherit;
}
#annual-report {
   --report-ink: #20272d;
   --report-red: #d43234;
   --report-muted: #5d6872;
   --report-line: #dce3e6;
   --report-mist: #f0f5f6;
   --report-green: #22634b;
   --report-page: #fff;
   --report-wash: #f7f9fa;
   --report-hover: #edf2f4;
   --report-track: #e8edef;
   --report-body: #3c464e;
   --report-field-line: #bac6cd;
   --report-slab: #20272d;
   --report-red-text: #d43234;
   --report-green-text: #22634b;
   --report-nav-bg: rgba(255, 255, 255, 0.97);
   --report-land: #dfe7e8;
   --report-land-edge: #f8fafb;
   --report-amber-text: #8a5a14;
   --report-blue-text: #2458b8;
   --report-violet-text: #6b3fa0;
   font-family:
      "Public Sans",
      Arial,
      sans-serif;
   color: var(--report-ink);
   background: var(--report-page);
   font-size: 16px;
   line-height: 1.6;
   margin: 0;
}
#annual-report * {
   box-sizing: border-box;
}
#annual-report h1,
#annual-report h2,
#annual-report h3,
#annual-report h4 {
   font-family: inherit;
   color: inherit;
   font-weight: 800;
   letter-spacing: -0.035em;
}
#annual-report h1 {
   font-size: clamp(56px, 5.7vw, 82px);
   line-height: 0.99;
   text-transform: uppercase;
   margin: 22px 0 26px;
   letter-spacing: -0.055em;
}
#annual-report h2 {
   font-size: clamp(31px, 3.3vw, 46px);
   line-height: 1.12;
   margin: 0;
}
#annual-report h3 {
   font-size: 22px;
   line-height: 1.25;
   margin: 0;
}
:where(#annual-report) p {
   margin-top: 0;
}
#annual-report a {
   color: inherit;
   text-decoration: none;
}
#annual-report button,
#annual-report input,
#annual-report select {
   font: inherit;
}
#annual-report button,
#annual-report select {
   cursor: pointer;
}
#annual-report button {
   color: inherit;
}
#annual-report svg:not(.world-map svg) {
   stroke: currentColor;
   fill: none;
   stroke-width: 1.7;
   stroke-linecap: round;
   stroke-linejoin: round;
}
#annual-report a:focus-visible,
#annual-report button:focus-visible,
#annual-report select:focus-visible,
#annual-report input:focus-visible,
#annual-report summary:focus-visible {
   outline: 3px solid var(--report-blue-text);
   outline-offset: 4px;
}
#annual-report [hidden] {
   display: none !important;
}
#annual-report [id] {
   scroll-margin-top: 82px;
}
#annual-report .report-container {
   width: min(1216px, calc(100% - 96px));
   margin-inline: auto;
}
#annual-report .report-button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 16px;
   border: 1px solid transparent;
   border-radius: 7px;
   padding: 15px 20px;
   font-weight: 600;
   font-size: 14px;
   line-height: 1.35;
   transition: background 0.15s;
}
#annual-report .report-button svg {
   width: 20px;
   height: 20px;
   flex: none;
}
#annual-report .button-small {
   font-size: 12px;
   padding: 12px 15px;
}
#annual-report .button-red {
   background: var(--report-red);
   color: #fff !important;
}
#annual-report .button-red:hover {
   background: #b9282a;
}
#annual-report .button-outline {
   background: transparent;
   border-color: var(--report-field-line);
}
#annual-report .button-outline:hover {
   background: var(--report-hover);
}
#annual-report .button-ink {
   background: var(--report-slab);
   color: white !important;
}
#annual-report .button-ink:hover {
   background: #394650;
}
#annual-report .report-hero {
   display: grid;
   grid-template-columns: 0.9fr 1.35fr;
   gap: 48px;
   align-items: center;
   padding-top: 66px;
   padding-bottom: 68px;
}
#annual-report .hero-copy {
   padding: 0 0 4px;
}
#annual-report .edition-status {
   display: flex;
   align-items: center;
   gap: 9px;
   font-size: 12px;
   color: var(--report-muted);
   font-weight: 600;
}
#annual-report .status-dot {
   display: inline-block;
   width: 7px;
   height: 7px;
   border-radius: 50%;
   background: #b87b25;
   flex-shrink: 0;
}
#annual-report .publication-title {
   font-size: 14px;
   margin: 26px 0 0;
   font-weight: 600;
}
#annual-report .hero-intro {
   font-size: 16px;
   line-height: 1.7;
   color: var(--report-muted);
   max-width: 400px;
   margin-bottom: 26px;
}
#annual-report .hero-caption {
   margin: 22px 0 0;
   font-size: 12px;
   line-height: 1.6;
   color: var(--report-muted);
}
#annual-report .hero-atlas {
   border: 1px solid var(--report-line);
   border-radius: 14px;
   overflow: hidden;
   background: var(--report-mist);
   box-shadow: 0 16px 50px -35px #344b5c70;
}
#annual-report .atlas-top {
   padding: 22px 24px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   background: var(--report-page);
   gap: 12px;
}
#annual-report .atlas-top > div {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 16px;
}
#annual-report .atlas-symbol {
   font-size: 25px;
   line-height: 1;
   color: var(--report-red-text);
}
#annual-report .outline-label {
   font-size: 11px;
   padding: 4px 9px;
   border: 1px solid var(--report-line);
   border-radius: 20px;
   white-space: nowrap;
   color: var(--report-muted);
}
#annual-report .atlas-body {
   position: relative;
   padding-top: 21px;
}
#annual-report .atlas-controls {
   display: flex;
   align-items: center;
   justify-content: space-between;
   margin: 0 24px;
   font-size: 10px;
   color: var(--report-muted);
   gap: 12px;
}
#annual-report .atlas-controls select {
   border: 1px solid var(--report-field-line);
   background: var(--report-page);
   border-radius: 5px;
   max-width: 54%;
   padding: 7px 24px 7px 10px;
   font-size: 11px;
   color: var(--report-ink);
}
#annual-report .atlas-controls > span {
   display: flex;
   align-items: center;
   gap: 6px;
   white-space: nowrap;
}
#annual-report .map-dot {
   width: 5px;
   height: 5px;
   border-radius: 50%;
   display: inline-block;
   background: var(--report-red);
}
#annual-report .world-map {
   position: relative;
   width: 100%;
   min-height: 255px;
   margin-top: 28px;
   padding-inline: 12px;
}
#annual-report .world-map svg {
   display: block;
   width: 100%;
   height: auto;
   overflow: visible;
}
#annual-report .world-map .city-dot {
   cursor: pointer;
   transition:
      opacity 0.15s,
      fill 0.15s;
   stroke: var(--report-page);
   stroke-width: calc(0.65px * var(--dot-k, 1));
   r: calc(2.2px * var(--dot-k, 1));
}
#annual-report .world-map .city-dot:hover {
   fill: var(--report-ink);
   stroke-width: calc(1.5px * var(--dot-k, 1));
   r: calc(4.2px * var(--dot-k, 1));
}
/* report.js sets --dot-k and --land-k as it zooms to a region (see zoomMap). */
#annual-report .world-map .map-land {
   fill: var(--report-land);
   stroke: var(--report-land-edge);
   stroke-width: calc(0.6px * var(--land-k, 1));
}
#annual-report .world-map svg.is-zoomed {
   overflow: hidden;
}
#annual-report .world-map .city-dot.is-muted {
   opacity: 0.09;
   pointer-events: none;
}
#annual-report .map-loading {
   padding: 90px 20px;
   text-align: center;
   font-size: 12px;
   color: var(--report-muted);
}
#annual-report .map-tooltip {
   position: absolute;
   z-index: 4;
   pointer-events: none;
   max-width: 220px;
   background: var(--report-slab);
   color: #fff;
   font-size: 11px;
   padding: 7px 10px;
   border-radius: 5px;
   box-shadow: 0 4px 12px #0002;
}
#annual-report .atlas-bottom {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 10px;
   margin: 20px 24px 0;
   padding: 14px 0;
   border-top: 1px solid var(--report-line);
   font-size: 10px;
}
#annual-report .atlas-bottom p {
   margin: 0;
   font-weight: 600;
}
#annual-report .atlas-bottom > span {
   color: var(--report-muted);
}
#annual-report .atlas-foot {
   padding: 20px 24px;
   display: flex;
   gap: 16px;
   align-items: center;
   background: var(--report-page);
}
#annual-report .source-mark {
   color: var(--report-red-text);
   font-weight: 800;
   font-size: 14px;
   letter-spacing: -0.04em;
}
#annual-report .atlas-foot p {
   font-size: 11px;
   line-height: 1.6;
   margin: 0;
   color: var(--report-muted);
}
#annual-report .atlas-foot a {
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .atlas-note {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 10px;
   color: var(--report-muted);
   padding: 12px 24px;
   border-top: 1px solid var(--report-line);
   background: var(--report-page);
}
#annual-report .atlas-note svg {
   width: 15px;
   height: 15px;
   flex: none;
}
#annual-report .facts-band {
   background: var(--report-page);
   border-top: 1px solid var(--report-line);
   border-bottom: 1px solid var(--report-line);
}
#annual-report .cohort-facts {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   padding: 29px 0;
   gap: 20px;
}
#annual-report .cohort-facts > div {
   display: flex;
   align-items: center;
   gap: 14px;
}
#annual-report .cohort-facts > div + div {
   border-left: 1px solid var(--report-line);
   padding-left: 28px;
}
#annual-report .cohort-facts strong {
   font-weight: 800;
   font-size: 34px;
   line-height: 1;
   letter-spacing: -0.06em;
}
#annual-report .cohort-facts span {
   font-size: 11px;
   max-width: 130px;
   line-height: 1.5;
   color: var(--report-muted);
}
#annual-report .section-nav {
   background: var(--report-nav-bg);
   backdrop-filter: blur(14px);
   position: sticky;
   top: 0;
   z-index: 20;
   border-bottom: 1px solid var(--report-line);
}
#annual-report .section-nav > div {
   display: flex;
   gap: 34px;
   overflow-x: auto;
   scrollbar-width: none;
}
#annual-report .section-nav a {
   font-size: 12px;
   font-weight: 600;
   white-space: nowrap;
   display: block;
   padding: 19px 0 16px;
   border-bottom: 3px solid transparent;
   color: var(--report-muted);
}
#annual-report .section-nav a:hover,
#annual-report .section-nav a.active {
   color: var(--report-red-text);
   border-color: var(--report-red);
}
#annual-report .section-space {
   padding-top: 88px;
   padding-bottom: 88px;
}
#annual-report .section-heading {
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
   gap: 48px;
   margin-bottom: 40px;
}
#annual-report .section-heading > p {
   max-width: 410px;
   font-size: 14px;
   color: var(--report-muted);
   line-height: 1.8;
   margin: 0 0 3px;
}
#annual-report .section-context {
   font-size: 12px;
   font-weight: 600;
   color: var(--report-muted);
   margin: 0 0 14px;
}
#annual-report .coverage-layout {
   display: grid;
   grid-template-columns: 0.72fr 1.5fr;
   gap: 62px;
   margin-top: 50px;
}
#annual-report .coverage-story {
   padding: 26px 0;
}
#annual-report .large-fraction {
   display: block;
   font-size: 68px;
   font-weight: 800;
   color: var(--report-red-text);
   letter-spacing: -0.06em;
   line-height: 1.1;
   margin-bottom: 17px;
}
#annual-report .coverage-story h3 {
   font-size: 20px;
   line-height: 1.4;
   letter-spacing: -0.025em;
}
#annual-report .coverage-story p {
   font-size: 13px;
   line-height: 1.8;
   color: var(--report-muted);
   max-width: 290px;
   margin: 17px 0 21px;
}
#annual-report .text-link {
   font-size: 13px;
   font-weight: 600;
   display: inline-flex;
   align-items: center;
   gap: 12px;
}
#annual-report .text-link:hover {
   color: var(--report-red-text);
}
#annual-report .text-link svg {
   width: 18px;
   height: 18px;
}
#annual-report .region-grid-heading {
   display: flex;
   align-items: center;
   justify-content: space-between;
   margin: 0 0 13px;
   padding-bottom: 14px;
   border-bottom: 1px solid var(--report-line);
}
#annual-report .region-grid-heading h3 {
   font-size: 16px;
   letter-spacing: -0.02em;
}
#annual-report .region-grid-heading > span {
   font-size: 11px;
   color: var(--report-muted);
}
#annual-report .region-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 16px 22px;
}
#annual-report .region-option {
   background: transparent;
   border: 0;
   text-align: left;
   padding: 11px 0 13px;
   position: relative;
   display: flex;
   flex-wrap: wrap;
   align-items: flex-start;
   justify-content: space-between;
   gap: 9px;
   width: 100%;
   border-radius: 4px;
}
#annual-report .region-option > span:first-child {
   font-size: 11px;
   line-height: 1.5;
   min-height: 34px;
   max-width: 75%;
   color: var(--report-muted);
}
#annual-report .region-option strong {
   font-size: 16px;
   font-weight: 800;
}
#annual-report .region-option:hover > span:first-child {
   color: var(--report-red-text);
}
#annual-report .region-track {
   height: 4px;
   background: var(--report-track);
   display: block;
   flex-basis: 100%;
   width: 100%;
   border-radius: 2px;
   overflow: hidden;
}
#annual-report .region-track i {
   background: var(--report-red);
   display: block;
   height: 100%;
   border-radius: 2px;
}
#annual-report .source-note {
   font-size: 11px;
   line-height: 1.8;
   color: var(--report-muted);
   margin: 26px 0 0;
   max-width: 1000px;
}
#annual-report .explorer-section {
   background: var(--report-mist);
}
#annual-report .explorer-panel {
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   overflow: hidden;
}
#annual-report .explorer-toolbar {
   display: grid;
   grid-template-columns: 1.8fr 1.15fr 1fr 1.15fr;
   gap: 16px;
   padding: 25px 26px 22px;
   align-items: end;
   border-bottom: 1px solid var(--report-line);
}
#annual-report .search-field {
   position: relative;
}
#annual-report .search-field > svg {
   position: absolute;
   left: 13px;
   top: 14px;
   width: 18px;
   height: 18px;
   color: var(--report-muted);
}
#annual-report .search-field input {
   height: 46px;
   padding: 12px 12px 12px 39px;
   min-width: 0;
   width: 100%;
   border: 1px solid var(--report-field-line);
   background: var(--report-page);
   border-radius: 6px;
   font-size: 12px;
   color: var(--report-ink);
}
#annual-report .filter-field {
   font-size: 10px;
   color: var(--report-muted);
   font-weight: 600;
   display: block;
}
#annual-report .filter-field select {
   display: block;
   margin-top: 6px;
   height: 46px;
   width: 100%;
   font-size: 11px;
   border: 1px solid var(--report-field-line);
   border-radius: 6px;
   padding: 10px 24px 10px 10px;
   color: var(--report-ink);
   background: var(--report-page);
}
#annual-report .results-meta {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 18px 26px 8px;
   font-size: 11px;
}
#annual-report .results-meta p {
   margin: 0;
   color: var(--report-muted);
}
#annual-report .quiet-button {
   padding: 6px 0;
   background: none;
   border: 0;
   color: var(--report-muted) !important;
   font-size: 11px !important;
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .city-table {
   width: 100%;
   border-collapse: collapse;
   text-align: left;
   font-size: 12px;
}
#annual-report .city-table th {
   font-size: 10px;
   font-weight: 600;
   color: var(--report-muted);
   padding: 16px 26px;
   background: var(--report-page);
   white-space: nowrap;
}
#annual-report .city-table th.numeric,
#annual-report .city-table td.numeric {
   text-align: right;
   font-variant-numeric: tabular-nums;
}
#annual-report .city-table td {
   border-top: 1px solid var(--report-line);
   padding: 15px 26px;
   color: var(--report-muted);
   vertical-align: middle;
}
#annual-report .city-table th:first-child {
   width: 34%;
}
#annual-report .city-table tr:hover td {
   background: var(--report-hover);
}
#annual-report .city-table .city-name {
   padding: 0;
   border: 0;
   background: transparent;
   color: var(--report-ink);
   font-size: 13px;
   font-weight: 600;
   text-align: left;
}
#annual-report .city-table .city-name:hover {
   color: var(--report-red-text);
   text-decoration: underline;
   text-underline-offset: 4px;
}
#annual-report .city-table td:nth-child(3) {
   color: var(--report-ink);
}
#annual-report .city-table td:last-child {
   font-size: 16px;
   color: var(--report-muted);
}
#annual-report .table-pagination {
   border-top: 1px solid var(--report-line);
   padding: 17px 26px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   font-size: 11px;
   color: var(--report-muted);
}
#annual-report .table-pagination > div {
   display: flex;
   gap: 7px;
}
#annual-report .pagination-button {
   width: 34px;
   height: 34px;
   border: 1px solid var(--report-line);
   border-radius: 5px;
   background: var(--report-page);
   display: inline-grid;
   place-items: center;
}
#annual-report .pagination-button svg {
   width: 17px;
   height: 17px;
}
#annual-report .pagination-button:disabled {
   opacity: 0.35;
   cursor: not-allowed;
}
#annual-report .pagination-button:not(:disabled):hover {
   background: var(--report-mist);
}
#annual-report .load-error {
   background: #fff0ef;
   color: #8c2425;
   margin: 16px 26px;
   padding: 15px;
   border-radius: 5px;
   font-size: 13px;
}
#annual-report .city-feature {
   display: grid;
   grid-template-columns: 1fr 1.13fr;
   border: 1px solid var(--report-line);
   border-radius: 14px;
   overflow: hidden;
}
#annual-report .city-map-panel {
   position: relative;
   min-height: 520px;
   background: #e8eeee;
   isolation: isolate;
}
#annual-report .sydney-map {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: 50% 63%;
   opacity: 0.8;
   z-index: -2;
}
#annual-report .city-map-panel:after {
   position: absolute;
   inset: 0;
   content: "";
   z-index: -1;
   background: linear-gradient(180deg, #f1f5f5 0%, #f1f5f5d9 29%, #f1f5f500 65%, #eef4f0bf 100%);
}
#annual-report .city-map-title {
   padding: 36px;
}
#annual-report .example-label {
   font-size: 10px;
   font-weight: 600;
   color: #52636e;
   display: inline-block;
   background: #ffffffdd;
   padding: 5px 9px;
   border-radius: 20px;
   border: 1px solid #cbd7dc;
}
#annual-report .city-map-title h3 {
   font-size: 44px;
   text-transform: uppercase;
   line-height: 1.08;
   margin: 22px 0 12px;
   letter-spacing: -0.04em;
}
#annual-report .city-map-title p {
   font-size: 12px;
   color: #52636e;
}
#annual-report .map-credit {
   position: absolute;
   bottom: 15px;
   left: 20px;
   font-size: 9px;
   line-height: 1.5;
   color: #33454e;
   background: #ffffffe0;
   padding: 5px 8px;
   border-radius: 4px;
   max-width: calc(100% - 40px);
}
#annual-report .city-evidence {
   padding: 38px;
}
#annual-report .score-heading {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 15px;
}
#annual-report .score-heading .section-context {
   font-size: 11px;
   margin: 0 0 14px;
}
#annual-report .score-heading h3 {
   font-size: 27px;
   line-height: 1.2;
}
#annual-report .score-ring {
   width: 138px;
   height: 138px;
   flex: none;
   border-radius: 50%;
   background: conic-gradient(var(--report-green) 0deg 306deg, var(--report-track) 306deg 360deg);
   padding: 7px;
   transform: rotate(-90deg);
}
#annual-report .score-ring > div {
   height: 100%;
   display: flex;
   align-items: baseline;
   justify-content: center;
   flex-wrap: wrap;
   align-content: center;
   border-radius: 50%;
   background: var(--report-page);
   transform: rotate(90deg);
   gap: 4px;
}
#annual-report .score-ring strong {
   font-size: 49px;
   line-height: 1.1;
   letter-spacing: -0.06em;
   font-weight: 800;
}
#annual-report .score-ring span {
   font-size: 12px;
   color: var(--report-muted);
}
#annual-report .score-labels {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin: 27px 0 24px;
}
#annual-report .positive-label {
   font-size: 10px;
   font-weight: 600;
   border-radius: 20px;
   padding: 5px 11px;
   color: #215c45;
   background: #e8f3ed;
}
#annual-report .confidence-label {
   font-size: 10px;
   font-weight: 600;
   border-radius: 20px;
   padding: 5px 11px;
   color: var(--report-muted);
   background: var(--report-wash);
}
#annual-report .city-metrics {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   padding: 23px 0;
   border-top: 1px solid var(--report-line);
   border-bottom: 1px solid var(--report-line);
   gap: 19px;
   margin-bottom: 26px;
}
#annual-report .city-metrics strong {
   font-size: 29px;
   line-height: 1;
   font-weight: 800;
   letter-spacing: -0.04em;
}
#annual-report .city-metrics strong span {
   font-size: 15px;
   letter-spacing: -0.02em;
}
#annual-report .city-metrics p {
   font-size: 10px;
   line-height: 1.6;
   color: var(--report-muted);
   margin: 9px 0 0;
}
#annual-report .city-evidence .report-button {
   font-size: 12px;
   gap: 18px;
   padding: 13px 17px;
}
#annual-report .example-disclosure {
   font-size: 10px;
   line-height: 1.7;
   color: var(--report-muted);
   margin: 18px 0 0;
}
#annual-report .dimension-explainer {
   margin-top: 22px;
   border: 1px solid var(--report-line);
   border-radius: 10px;
   padding: 23px 28px;
}
#annual-report .dimension-tabs {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 15px;
}
#annual-report .dimension-tabs button {
   background: transparent;
   border: 0;
   border-bottom: 2px solid var(--report-line);
   display: flex;
   align-items: center;
   justify-content: space-between;
   font-size: 12px;
   padding: 4px 0 13px;
   color: var(--report-muted);
}
#annual-report .dimension-tabs button span {
   font-size: 15px;
   font-weight: 800;
}
#annual-report .dimension-tabs button[aria-pressed="true"] {
   border-color: var(--report-red);
   color: var(--report-red-text);
}
#annual-report .dimension-content {
   display: flex;
   gap: 45px;
   justify-content: space-between;
   padding-top: 25px;
   align-items: center;
}
#annual-report .dimension-content h3 {
   font-size: 19px;
   margin-bottom: 8px;
}
#annual-report .dimension-content p {
   font-size: 12px;
   color: var(--report-muted);
   max-width: 680px;
   margin: 0;
   line-height: 1.8;
}
#annual-report #dimension-value {
   font-size: 35px;
   font-weight: 800;
   white-space: nowrap;
   letter-spacing: -0.04em;
}
#annual-report #dimension-value > span {
   font-size: 12px;
   color: var(--report-muted);
   font-weight: 400;
   letter-spacing: 0;
}
#annual-report .dimension-explainer .source-note {
   font-size: 10px;
   margin: 16px 0 0;
   max-width: 900px;
}
#annual-report .method-section {
   background: var(--report-wash);
   border-top: 1px solid var(--report-line);
   border-bottom: 1px solid var(--report-line);
}
#annual-report .method-steps {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 33px;
   margin: 44px 0 34px;
}
#annual-report .step-number {
   display: grid;
   place-items: center;
   border-radius: 50%;
   width: 32px;
   height: 32px;
   background: var(--report-page);
   color: var(--report-red-text);
   border: 1px solid var(--report-line);
   font-size: 13px;
   font-weight: 600;
   margin-bottom: 20px;
}
#annual-report .method-steps h3 {
   font-size: 18px;
   margin-bottom: 12px;
   letter-spacing: -0.025em;
}
#annual-report .method-steps p {
   font-size: 12px;
   line-height: 1.8;
   color: var(--report-muted);
   max-width: 255px;
}
#annual-report .method-details {
   margin: 0 0 29px;
   border-top: 1px solid var(--report-line);
}
#annual-report .method-details details {
   border-bottom: 1px solid var(--report-line);
}
#annual-report .method-details summary {
   font-weight: 600;
   font-size: 14px;
   padding: 20px 30px 20px 0;
   list-style: none;
   cursor: pointer;
   position: relative;
}
#annual-report .method-details summary::-webkit-details-marker {
   display: none;
}
#annual-report .method-details summary:after {
   content: "+";
   position: absolute;
   right: 3px;
   top: 16px;
   font-size: 22px;
   font-weight: 400;
   color: var(--report-muted);
}
#annual-report .method-details details[open] summary:after {
   content: "−";
}
#annual-report .method-details details p {
   font-size: 12px;
   color: var(--report-muted);
   line-height: 1.9;
   max-width: 850px;
   margin: 0 0 24px;
}
#annual-report .report-plan-layout {
   display: grid;
   grid-template-columns: 1fr 1.15fr;
   gap: 75px;
   margin-top: 45px;
}
#annual-report .publication-cover {
   position: relative;
   overflow: hidden;
   background: #c72e32;
   color: white;
   min-height: 530px;
   padding: 34px;
   box-shadow: 14px 16px 0 #f1f3f4;
   border-radius: 2px;
   isolation: isolate;
   display: flex;
   flex-direction: column;
}
#annual-report .cover-top {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 15px;
   font-size: 10px;
}
#annual-report .cover-top img {
   width: 160px;
   height: auto;
}
#annual-report .publication-cover h3 {
   font-size: clamp(34px, 3.7vw, 49px);
   text-transform: uppercase;
   line-height: 1.09;
   letter-spacing: -0.045em;
   margin-top: 55px;
   color: #fff;
   position: relative;
   z-index: 2;
}
#annual-report .cover-bottom {
   display: flex;
   justify-content: space-between;
   gap: 15px;
   font-size: 10px;
   margin-top: auto;
   padding-top: 44px;
   border-top: 1px solid #ffffff4d;
   line-height: 1.6;
}
#annual-report .cover-wheels {
   position: absolute;
   right: -110px;
   top: 50px;
   width: 440px;
   height: 440px;
   z-index: -1;
   transform: rotate(-26deg);
   opacity: 0.2;
}
#annual-report .cover-wheels i {
   display: block;
   position: absolute;
   border: 1px solid #fff;
   border-radius: 50%;
   width: 330px;
   height: 330px;
   top: 0;
   left: 0;
}
#annual-report .cover-wheels i:nth-child(2) {
   top: 85px;
   left: 70px;
}
#annual-report .cover-wheels i:nth-child(3) {
   top: 170px;
   left: 140px;
}
#annual-report .chapter-list {
   display: flex;
   flex-direction: column;
   justify-content: space-between;
}
#annual-report .chapter-list > div {
   padding: 19px 0;
   border-bottom: 1px solid var(--report-line);
}
#annual-report .chapter-list > div:first-child {
   padding-top: 0;
}
#annual-report .chapter-list > div:last-child {
   border-bottom: 0;
}
#annual-report .chapter-list > div > span {
   font-size: 10px;
   color: var(--report-red-text);
   font-weight: 600;
}
#annual-report .chapter-list h3 {
   font-size: 20px;
   margin: 9px 0 8px;
}
#annual-report .chapter-list p {
   font-size: 12px;
   color: var(--report-muted);
   line-height: 1.7;
   margin: 0;
   max-width: 410px;
}
#annual-report .edition-notice {
   display: flex;
   justify-content: space-between;
   gap: 40px;
   align-items: center;
   margin-top: 55px;
   background: var(--report-mist);
   padding: 25px 28px;
   border-radius: 8px;
}
#annual-report .edition-notice strong {
   font-size: 13px;
}
#annual-report .edition-notice p {
   font-size: 12px;
   color: var(--report-muted);
   line-height: 1.7;
   max-width: 670px;
   margin: 6px 0 0;
}
#annual-report .edition-notice .report-button {
   white-space: nowrap;
   font-size: 12px;
}
#annual-report #city-dialog {
   width: min(540px, calc(100% - 32px));
   border: 1px solid var(--report-line);
   padding: 37px;
   border-radius: 14px;
   box-shadow: 0 24px 100px #10272c30;
   color: var(--report-ink);
   background: var(--report-page);
}
#annual-report #city-dialog::backdrop {
   background: #0d253a60;
   backdrop-filter: blur(3px);
}
#annual-report .dialog-close {
   position: absolute;
   right: 18px;
   top: 12px;
   background: none;
   border: 0;
   font-size: 30px;
   line-height: 1;
   padding: 8px;
   color: var(--report-muted);
}
#annual-report #dialog-title {
   font-size: 32px;
   line-height: 1.15;
   margin-bottom: 10px;
}
#annual-report #dialog-country {
   color: var(--report-muted);
   font-size: 14px;
}
#annual-report .city-detail-list {
   margin: 25px 0;
}
#annual-report .city-detail-list > div {
   display: flex;
   justify-content: space-between;
   gap: 25px;
   border-top: 1px solid var(--report-line);
   padding: 13px 0;
   font-size: 12px;
}
#annual-report .city-detail-list dt {
   font-weight: 400;
   color: var(--report-muted);
   max-width: 55%;
}
#annual-report .city-detail-list dd {
   font-weight: 600;
   margin: 0;
   text-align: right;
}
#annual-report .dialog-status {
   display: flex;
   gap: 8px;
   align-items: center;
   background: #faf4e9;
   padding: 12px 14px;
   border-radius: 6px;
   font-size: 11px;
   line-height: 1.6;
}
#annual-report #dialog-note {
   font-size: 11px;
   color: var(--report-muted);
   line-height: 1.8;
   margin: 18px 0 22px;
}
@media (min-width: 1450px) {
   #annual-report .report-container {
      width: min(1280px, calc(100% - 112px));
   }
   #annual-report .report-hero {
      gap: 70px;
      padding-top: 85px;
      padding-bottom: 85px;
   }
   #annual-report h1 {
      font-size: 88px;
   }
   #annual-report .world-map {
      min-height: 295px;
   }
}
@media (max-width: 1100px) {
   #annual-report .report-container {
      width: calc(100% - 64px);
   }
   #annual-report .report-hero {
      gap: 30px;
      grid-template-columns: 0.9fr 1.1fr;
      padding-top: 50px;
   }
   #annual-report h1 {
      font-size: 66px;
   }
   #annual-report .atlas-controls {
      margin-inline: 16px;
   }
   #annual-report .atlas-controls > span {
      font-size: 9px;
   }
   #annual-report .atlas-top,
   #annual-report .atlas-foot {
      padding-inline: 18px;
   }
   #annual-report .atlas-note {
      padding-inline: 18px;
      font-size: 9px;
   }
   #annual-report .outline-label {
      display: none;
   }
   #annual-report .world-map {
      min-height: 210px;
   }
   #annual-report .cohort-facts {
      gap: 15px;
   }
   #annual-report .cohort-facts > div {
      gap: 10px;
   }
   #annual-report .cohort-facts > div + div {
      padding-left: 20px;
   }
   #annual-report .cohort-facts strong {
      font-size: 29px;
   }
   #annual-report .cohort-facts span {
      font-size: 10px;
   }
   #annual-report .coverage-layout {
      gap: 40px;
   }
   #annual-report .city-evidence {
      padding: 28px;
   }
   #annual-report .score-ring {
      width: 112px;
      height: 112px;
      padding: 6px;
   }
   #annual-report .score-ring strong {
      font-size: 42px;
   }
   #annual-report .score-heading h3 {
      font-size: 24px;
   }
   #annual-report .city-metrics {
      gap: 12px;
   }
   #annual-report .report-plan-layout {
      gap: 50px;
   }
   #annual-report .explorer-toolbar {
      grid-template-columns: 1.5fr 1.15fr 1fr;
   }
   #annual-report .filter-field:last-child {
      grid-column: 1/-1;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 10px;
   }
   #annual-report .filter-field:last-child select {
      width: auto;
      height: 34px;
      margin: 0;
   }
   #annual-report .section-heading > p {
      max-width: 360px;
   }
   #annual-report .method-steps {
      gap: 23px;
   }
}
@media (max-width: 800px) {
   #annual-report .report-container {
      width: calc(100% - 40px);
   }
   #annual-report .report-hero {
      grid-template-columns: 1fr;
      gap: 30px;
      padding: 42px 0;
   }
   #annual-report .hero-copy {
      display: grid;
      grid-template-columns: 1fr 1fr;
      column-gap: 30px;
      align-items: start;
   }
   #annual-report .edition-status,
   #annual-report .publication-title {
      grid-column: 1/-1;
   }
   #annual-report h1 {
      font-size: clamp(48px, 8.8vw, 66px);
      grid-row: 3/6;
      grid-column: 1;
      margin: 20px 0 0;
   }
   #annual-report .hero-intro {
      grid-column: 2;
      grid-row: 3;
      font-size: 14px;
      margin-top: 24px;
   }
   #annual-report .hero-copy > .report-button {
      grid-column: 2;
      justify-self: start;
      padding: 13px 17px;
      font-size: 12px;
   }
   #annual-report .hero-caption {
      grid-column: 2;
      font-size: 11px;
   }
   #annual-report .publication-title {
      margin-top: 20px;
   }
   #annual-report .world-map {
      min-height: 0;
      padding-inline: 20px;
      margin-top: 25px;
   }
   #annual-report .hero-atlas {
      max-width: 700px;
   }
   #annual-report .outline-label {
      display: block;
   }
   #annual-report .atlas-controls > span {
      font-size: 10px;
   }
   #annual-report .atlas-top {
      padding: 20px;
   }
   #annual-report .atlas-controls {
      margin-inline: 20px;
   }
   #annual-report .atlas-controls select {
      font-size: 12px;
   }
   #annual-report .atlas-bottom {
      margin-inline: 20px;
   }
   #annual-report .atlas-note {
      font-size: 10px;
      padding: 12px 20px;
   }
   #annual-report .cohort-facts {
      grid-template-columns: repeat(2, 1fr);
      gap: 24px 30px;
      padding: 27px 0;
   }
   #annual-report .cohort-facts > div {
      gap: 14px;
   }
   #annual-report .cohort-facts > div + div {
      padding: 0;
      border: 0;
   }
   #annual-report .cohort-facts strong {
      font-size: 32px;
      min-width: 64px;
   }
   #annual-report .cohort-facts span {
      font-size: 11px;
      max-width: 135px;
   }
   #annual-report .section-nav > div {
      gap: 27px;
   }
   #annual-report .section-nav a {
      font-size: 11px;
      padding: 16px 0 13px;
   }
   #annual-report .section-space {
      padding-top: 60px;
      padding-bottom: 60px;
   }
   #annual-report .section-heading {
      gap: 25px;
      display: block;
      margin-bottom: 30px;
   }
   #annual-report .section-heading > p {
      margin-top: 22px;
      max-width: 560px;
      font-size: 13px;
   }
   #annual-report .section-heading > .report-button {
      margin-top: 25px;
   }
   #annual-report .coverage-layout {
      grid-template-columns: 1fr;
      gap: 25px;
      margin-top: 30px;
   }
   #annual-report .coverage-story {
      padding: 0 0 25px;
      display: grid;
      grid-template-columns: 1fr 1.4fr;
      gap: 8px 20px;
   }
   #annual-report .large-fraction {
      grid-column: 1;
      grid-row: 1/3;
      font-size: 62px;
   }
   #annual-report .coverage-story h3 {
      font-size: 19px;
   }
   #annual-report .coverage-story p {
      margin: 8px 0;
      max-width: 400px;
   }
   #annual-report .coverage-story .text-link {
      grid-column: 2;
   }
   #annual-report .region-grid {
      gap: 15px 25px;
   }
   #annual-report .region-option > span:first-child {
      font-size: 12px;
   }
   #annual-report .source-note {
      font-size: 10px;
   }
   #annual-report .explorer-toolbar {
      padding: 20px;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
   }
   #annual-report .search-field {
      grid-column: 1/-1;
   }
   #annual-report .filter-field:last-child {
      grid-column: 1/-1;
   }
   #annual-report .city-table th,
   #annual-report .city-table td {
      padding: 14px 20px;
   }
   #annual-report .city-table th {
      font-size: 9px;
   }
   #annual-report .city-table td {
      font-size: 11px;
   }
   #annual-report .city-table .city-name {
      font-size: 12px;
   }
   #annual-report .results-meta,
   #annual-report .table-pagination {
      padding-inline: 20px;
   }
   #annual-report .city-feature {
      grid-template-columns: 1fr;
   }
   #annual-report .city-map-panel {
      min-height: 340px;
   }
   #annual-report .city-map-title {
      padding: 28px;
   }
   #annual-report .sydney-map {
      object-position: 50% 65%;
   }
   #annual-report .city-map-title h3 {
      font-size: 39px;
   }
   #annual-report .city-map-panel:after {
      background: linear-gradient(90deg, #f1f5f5 0%, #f1f5f5d9 30%, #f1f5f500 74%);
   }
   #annual-report .score-heading {
      justify-content: space-between;
   }
   #annual-report .score-heading h3 {
      font-size: 30px;
   }
   #annual-report .score-ring {
      width: 135px;
      height: 135px;
   }
   #annual-report .score-ring strong {
      font-size: 48px;
   }
   #annual-report .city-evidence {
      padding: 28px;
   }
   #annual-report .city-metrics {
      gap: 24px;
      padding: 24px 0;
   }
   #annual-report .city-metrics strong {
      font-size: 33px;
   }
   #annual-report .city-metrics p {
      font-size: 11px;
      max-width: 150px;
   }
   #annual-report .dimension-explainer {
      padding: 22px;
   }
   #annual-report .dimension-tabs {
      gap: 20px;
   }
   #annual-report .dimension-tabs button {
      font-size: 11px;
      display: block;
      text-align: left;
   }
   #annual-report .dimension-tabs button span {
      display: block;
      margin-top: 7px;
   }
   #annual-report .dimension-content {
      gap: 25px;
   }
   #annual-report .dimension-content p {
      font-size: 11px;
   }
   #annual-report .method-steps {
      grid-template-columns: repeat(2, 1fr);
      gap: 22px 30px;
      margin: 35px 0 15px;
   }
   #annual-report .step-number {
      margin-bottom: 15px;
   }
   #annual-report .method-steps p {
      max-width: 330px;
   }
   #annual-report .report-plan-layout {
      grid-template-columns: 0.9fr 1.1fr;
      gap: 32px;
   }
   #annual-report .publication-cover {
      min-height: 450px;
      padding: 23px;
   }
   #annual-report .cover-top {
      display: block;
   }
   #annual-report .cover-top img {
      width: 140px;
   }
   #annual-report .cover-top span {
      display: block;
      margin-top: 15px;
   }
   #annual-report .publication-cover h3 {
      font-size: 31px;
      margin-top: 43px;
   }
   #annual-report .cover-bottom {
      display: block;
      font-size: 9px;
   }
   #annual-report .cover-bottom > span {
      display: block;
      margin-top: 12px;
   }
   #annual-report .chapter-list h3 {
      font-size: 17px;
   }
   #annual-report .chapter-list p {
      font-size: 11px;
   }
   #annual-report .chapter-list > div {
      padding: 13px 0;
   }
   #annual-report .edition-notice {
      gap: 20px;
      padding: 24px;
      align-items: flex-start;
      flex-direction: column;
   }
}
@media (max-width: 480px) {
   #annual-report .hero-copy {
      display: block;
   }
   #annual-report h1 {
      font-size: 61px;
      margin: 22px 0;
   }
   #annual-report .hero-intro {
      margin: 0 0 24px;
      font-size: 14px;
      max-width: 330px;
   }
   #annual-report .hero-caption {
      display: none;
   }
   #annual-report .publication-title {
      font-size: 12px;
   }
   #annual-report .report-hero {
      padding-top: 32px;
      gap: 30px;
   }
   #annual-report .atlas-top {
      padding: 17px;
   }
   #annual-report .atlas-top > div {
      font-size: 14px;
   }
   #annual-report .outline-label {
      font-size: 9px;
   }
   #annual-report .atlas-controls {
      margin-inline: 17px;
   }
   #annual-report .atlas-controls > span {
      font-size: 8px;
      gap: 4px;
   }
   #annual-report .atlas-controls select {
      font-size: 10px;
      max-width: 54%;
   }
   #annual-report .world-map {
      padding-inline: 6px;
      margin-top: 26px;
   }
   #annual-report .atlas-bottom {
      font-size: 9px;
      margin: 18px 17px 0;
   }
   #annual-report .atlas-foot {
      padding: 17px;
      gap: 12px;
   }
   #annual-report .atlas-foot p {
      font-size: 9px;
   }
   #annual-report .source-mark {
      font-size: 12px;
   }
   #annual-report .atlas-note {
      font-size: 9px;
      padding: 11px 17px;
      align-items: flex-start;
   }
   #annual-report .atlas-note svg {
      width: 13px;
      height: 13px;
   }
   #annual-report .cohort-facts {
      gap: 23px 20px;
   }
   #annual-report .cohort-facts strong {
      font-size: 29px;
      min-width: 58px;
   }
   #annual-report .cohort-facts span {
      font-size: 10px;
   }
   #annual-report .cohort-facts > div {
      gap: 8px;
   }
   #annual-report .section-space {
      padding-top: 47px;
      padding-bottom: 47px;
   }
   #annual-report .coverage-story {
      display: block;
   }
   #annual-report .large-fraction {
      font-size: 59px;
   }
   #annual-report .coverage-story h3 {
      font-size: 22px;
   }
   #annual-report .coverage-story p {
      margin: 16px 0 20px;
   }
   #annual-report .region-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px 22px;
   }
   #annual-report .region-option > span:first-child {
      font-size: 11px;
   }
   #annual-report .explorer-toolbar {
      padding: 17px;
      gap: 12px;
   }
   #annual-report .filter-field select {
      font-size: 10px;
      padding-left: 8px;
   }
   #annual-report .results-meta {
      padding: 14px 16px 7px;
      font-size: 10px;
   }
   #annual-report .quiet-button {
      font-size: 10px !important;
   }
   #annual-report .city-table th,
   #annual-report .city-table td {
      padding: 13px 12px;
   }
   #annual-report .city-table th:first-child,
   #annual-report .city-table td:first-child {
      padding-left: 16px;
   }
   #annual-report .city-table th:last-child,
   #annual-report .city-table td:last-child {
      padding-right: 16px;
   }
   #annual-report .city-table th {
      font-size: 8px;
      white-space: normal;
      line-height: 1.5;
   }
   #annual-report .city-table td {
      font-size: 9px;
   }
   #annual-report .city-table .city-name {
      font-size: 11px;
   }
   #annual-report .city-table th:first-child {
      width: 31%;
   }
   #annual-report .city-table th:nth-child(2) {
      width: 25%;
   }
   #annual-report .city-table td:nth-child(2) {
      overflow-wrap: anywhere;
   }
   #annual-report .city-table td:nth-child(3) {
      white-space: nowrap;
   }
   #annual-report .table-pagination {
      padding: 14px 17px;
   }
   #annual-report .city-map-panel {
      min-height: 305px;
   }
   #annual-report .city-map-title h3 {
      font-size: 36px;
   }
   #annual-report .city-evidence {
      padding: 24px;
   }
   #annual-report .score-heading h3 {
      font-size: 25px;
   }
   #annual-report .score-ring {
      width: 105px;
      height: 105px;
      padding: 5px;
   }
   #annual-report .score-ring strong {
      font-size: 39px;
   }
   #annual-report .score-ring span {
      font-size: 10px;
   }
   #annual-report .score-heading .section-context {
      font-size: 10px;
      max-width: 130px;
   }
   #annual-report .city-metrics {
      gap: 14px;
   }
   #annual-report .city-metrics strong {
      font-size: 27px;
   }
   #annual-report .city-metrics p {
      font-size: 9px;
   }
   #annual-report .score-labels {
      margin: 23px 0 20px;
   }
   #annual-report .positive-label,
   #annual-report .confidence-label {
      font-size: 9px;
   }
   #annual-report .example-disclosure {
      font-size: 9px;
   }
   #annual-report .dimension-explainer {
      padding: 17px;
   }
   #annual-report .dimension-tabs {
      gap: 12px;
      grid-template-columns: repeat(2, 1fr);
   }
   #annual-report .dimension-tabs button {
      display: flex;
      font-size: 11px;
   }
   #annual-report .dimension-tabs button span {
      margin: 0;
   }
   #annual-report .dimension-content {
      align-items: flex-start;
      gap: 15px;
   }
   #annual-report .dimension-content h3 {
      font-size: 17px;
   }
   #annual-report #dimension-value {
      font-size: 29px;
      line-height: 1.1;
   }
   #annual-report #dimension-value > span {
      font-size: 10px;
      display: block;
      margin-top: 5px;
   }
   #annual-report .method-steps {
      gap: 18px 22px;
   }
   #annual-report .method-steps h3 {
      font-size: 16px;
   }
   #annual-report .method-steps p {
      font-size: 11px;
   }
   #annual-report .method-details summary {
      font-size: 12px;
   }
   #annual-report .method-details details p {
      font-size: 11px;
   }
   #annual-report .report-plan-layout {
      grid-template-columns: 1fr;
      gap: 39px;
   }
   #annual-report .publication-cover {
      max-width: 360px;
      width: calc(100% - 14px);
      min-height: 470px;
      padding: 27px;
   }
   #annual-report .cover-top {
      display: flex;
      align-items: center;
   }
   #annual-report .cover-top span {
      margin: 0;
      font-size: 8px;
   }
   #annual-report .cover-top img {
      width: 140px;
   }
   #annual-report .publication-cover h3 {
      font-size: 36px;
   }
   #annual-report .cover-bottom {
      display: flex;
      gap: 15px;
   }
   #annual-report .chapter-list h3 {
      font-size: 20px;
   }
   #annual-report .chapter-list p {
      font-size: 12px;
   }
   #annual-report .chapter-list > div {
      padding: 20px 0;
   }
   #annual-report .edition-notice {
      margin-top: 30px;
   }
   #annual-report #city-dialog {
      padding: 29px 24px;
   }
   #annual-report #dialog-title {
      font-size: 28px;
   }
   #annual-report .city-detail-list > div {
      font-size: 11px;
   }
   #annual-report .dialog-status {
      font-size: 10px;
   }
}
@media (prefers-reduced-motion: reduce) {
   #annual-report * {
      scroll-behavior: auto !important;
      transition: none !important;
   }
}
@media print {
   #annual-report {
      font-size: 10pt;
      background: #fff;
      color: #000;
   }
   #annual-report .report-container {
      width: 100%;
   }
   #annual-report .section-nav,
   #annual-report .report-button,
   #annual-report .explorer-toolbar,
   #annual-report .results-meta,
   #annual-report .table-pagination,
   #annual-report .dimension-tabs,
   #annual-report #city-dialog {
      display: none !important;
   }
   #annual-report .section-space {
      padding: 24px 0;
      break-inside: avoid;
   }
   #annual-report .report-hero {
      padding: 0 0 20px;
      gap: 25px;
   }
   #annual-report h1 {
      font-size: 44pt;
   }
   #annual-report h2 {
      font-size: 25pt;
   }
   #annual-report .hero-atlas {
      box-shadow: none;
   }
   #annual-report .cohort-facts strong {
      font-size: 22pt;
   }
   #annual-report .city-feature {
      break-inside: avoid;
   }
   #annual-report .city-map-panel {
      min-height: 320px;
   }
   #annual-report .city-evidence {
      padding: 20px;
   }
   #annual-report .publication-cover {
      min-height: 380px;
      box-shadow: none;
      print-color-adjust: exact;
      -webkit-print-color-adjust: exact;
   }
   #annual-report .publication-cover h3 {
      font-size: 29pt;
   }
   #annual-report .world-map {
      print-color-adjust: exact;
      -webkit-print-color-adjust: exact;
   }
   #annual-report .city-table td {
      padding: 8px;
   }
   #annual-report .edition-notice {
      border: 1px solid #bbb;
   }
   #annual-report .report-plan-layout {
      gap: 30px;
   }
   #annual-report .hero-caption {
      display: none;
   }
   #annual-report .source-note {
      font-size: 8pt;
   }
   #annual-report .method-details details:not([open]) {
      display: none;
   }
}
#annual-report .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;
}
#annual-report .city-table .city-population,
#annual-report .city-table .city-score {
   text-align: right;
   font-variant-numeric: tabular-nums;
}
#annual-report .city-table .name-review {
   display: block;
   font-size: 9px;
   color: #8c4b16;
   margin-top: 5px;
   line-height: 1.4;
}
#annual-report .city-table .empty-results {
   padding: 35px 26px;
   text-align: center;
   font-size: 12px;
   color: var(--report-muted);
}
#annual-report .region-option[aria-pressed="true"] .region-name {
   color: var(--report-red-text);
   font-weight: 600;
}
#annual-report .world-map .city-dot:hover {
   r: calc(4.2px * var(--dot-k, 1));
}
#annual-report .print-register-note {
   display: none;
}
@media print {
   #annual-report .results-meta,
   #annual-report .table-pagination {
      display: flex !important;
   }
   #annual-report .results-meta .quiet-button,
   #annual-report .table-pagination > div {
      display: none !important;
   }
   #annual-report .print-register-note {
      display: block;
      font-size: 9pt;
      margin: 12px 0;
      color: #333;
   }
}
@media (max-width: 480px) {
   #annual-report .city-table th,
   #annual-report .city-table td {
      padding-left: 8px;
      padding-right: 8px;
   }
   #annual-report .city-table th {
      font-size: 10px;
   }
   #annual-report .city-table td {
      font-size: 11px;
   }
   #annual-report .city-table .city-name {
      font-size: 12px;
   }
   #annual-report .city-table th:nth-child(3) {
      width: 27%;
   }
}

/* Printing the report prints the report, not the site around it. */
@media print {
   body:has(#annual-report) > header,
   body:has(#annual-report) > footer,
   #annual-report .staff-preview-banner {
      display: none !important;
   }
}
#annual-report .staff-preview-banner {
   background: #fff6e5;
   border-bottom: 1px solid #ecd3a4;
   color: #5c4310;
   font-size: 13px;
   line-height: 1.5;
   padding: 10px 0;
}
#annual-report .staff-preview-banner strong {
   font-weight: 800;
}

/* The site's dark theme recolours every link with !important
   ([data-bs-theme="dark"] a:not(...) in pages/base.html), which no specificity can beat. These
   repeat the report's own link colours as !important so the report keeps its own in both themes.
   Among !important rules specificity decides again: the buttons' white (1,1,0) and the section
   nav's colours (1,1,1 and 1,2,1) still win over the plain-link rule (1,0,1). */
#annual-report a {
   color: inherit !important;
}
#annual-report .section-nav a {
   color: var(--report-muted) !important;
}
#annual-report .section-nav a:hover,
#annual-report .section-nav a.active {
   color: var(--report-red-text) !important;
}

/* Headings carry no forced line breaks: a break placed for English lands mid-phrase in German or
   Japanese. Balanced wrapping keeps the design's short, stacked lines in every language, and
   hyphenation (which follows <html lang>) keeps a long compound word inside its column. */
#annual-report h1,
#annual-report h2,
#annual-report h3 {
   text-wrap: balance;
   hyphens: auto;
   overflow-wrap: break-word;
}
#annual-report .hero-copy h1 {
   /* A big uppercase line breaks between words, never inside one ("RADFAH-REN"). */
   hyphens: manual;
   max-width: 9em;
}
#annual-report .section-heading h2 {
   max-width: 15em;
}
#annual-report .publication-cover h3 {
   max-width: 9em;
}

/* The notice at the top: a reviewer's work-in-progress line, or staff's banner and link. */
#annual-report .staff-preview-banner p {
   margin: 0;
}
#annual-report .staff-preview-banner a {
   text-decoration: underline;
   text-underline-offset: 2px;
}
#annual-report .review-link {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 8px 12px;
   margin-top: 8px;
}
#annual-report .review-link label {
   font-weight: 600;
}
#annual-report .review-link input {
   flex: 1 1 320px;
   min-width: 0;
   border: 1px solid #ecd3a4;
   border-radius: 6px;
   background: var(--report-page);
   color: var(--report-ink);
   padding: 6px 10px;
   font-size: 12px;
}
#annual-report .review-link .quiet-button {
   border: 1px solid #c9a35b;
   border-radius: 6px;
   background: var(--report-page);
   padding: 6px 12px;
   font-weight: 600;
}
#annual-report .review-link-note {
   margin-top: 6px !important;
   font-size: 12px;
}

/* ==========================================================================================
   Editorial sections (2026-11-05): introduction, the five questions, the cohort charts, the
   boundary example, the transport-team table, editorial standards, the glossary, the analysis
   plan, integrity and citation. Logical properties throughout, so the Arabic page mirrors.
   ========================================================================================== */
#annual-report .hero-promise {
   font-size: 17px;
   line-height: 1.65;
   color: var(--report-ink);
   max-width: 460px;
   margin-bottom: 28px;
}
#annual-report .hero-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 12px;
}
#annual-report h2,
#annual-report h3 {
   text-wrap: balance;
}

/* Introduction */
#annual-report .intro-layout {
   display: grid;
   grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
   gap: 80px;
   align-items: start;
}
#annual-report .intro-essay {
   max-width: 680px;
}
#annual-report .intro-essay h2 {
   margin-bottom: 30px;
}
#annual-report .intro-essay p {
   font-size: 17px;
   line-height: 1.75;
   margin-bottom: 20px;
   color: var(--report-body);
}
#annual-report .intro-essay .intro-lede {
   font-size: 21px;
   line-height: 1.6;
   color: var(--report-ink);
   font-weight: 600;
   letter-spacing: -0.01em;
}
#annual-report .intro-signature {
   display: flex;
   flex-direction: column;
   gap: 2px;
   margin-top: 34px;
   padding-top: 18px;
   border-top: 2px solid var(--report-red);
   width: max-content;
   max-width: 100%;
}
#annual-report .intro-signature strong {
   font-size: 16px;
}
#annual-report .intro-signature span {
   font-size: 13px;
   color: var(--report-muted);
}
#annual-report .reading-paths {
   position: sticky;
   top: 90px;
   background: var(--report-mist);
   border-radius: 12px;
   padding: 28px;
}
#annual-report .reading-paths h3 {
   font-size: 17px;
   margin-bottom: 16px;
}
#annual-report .reading-paths ol {
   list-style: none;
   margin: 0;
   padding: 0;
}
#annual-report .reading-paths li + li {
   border-top: 1px solid var(--report-line);
}
#annual-report .reading-paths a {
   display: grid;
   gap: 3px;
   padding: 16px 0;
}
#annual-report .reading-paths a:hover strong {
   color: var(--report-red-text);
}
#annual-report .reading-paths .reading-time {
   font-size: 11px;
   font-weight: 600;
   color: var(--report-red-text);
}
#annual-report .reading-paths strong {
   font-size: 15px;
}
#annual-report .reading-paths a > span:last-child {
   font-size: 13px;
   line-height: 1.55;
   color: var(--report-muted);
}

/* The five questions */
#annual-report .questions-section {
   background: var(--report-slab);
   color: #fff;
}
#annual-report .questions-section .section-context,
#annual-report .questions-section .section-heading > p {
   color: #b9c4cb;
}
#annual-report .question-list {
   list-style: none;
   margin: 0;
   padding: 0;
   display: grid;
   gap: 14px;
}
#annual-report .question-card {
   display: grid;
   grid-template-columns: 72px minmax(0, 1fr);
   gap: 24px;
   padding: 30px 32px;
   background: #2a333a;
   border-radius: 12px;
}
#annual-report .question-number {
   font-size: 54px;
   font-weight: 800;
   line-height: 0.9;
   color: var(--report-red-text);
   letter-spacing: -0.06em;
}
#annual-report .question-theme {
   font-size: 11px;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.08em;
   color: #ff8c8d;
   margin-bottom: 8px;
}
#annual-report .question-card h3 {
   font-size: 25px;
   margin-bottom: 10px;
}
#annual-report .question-why {
   font-size: 15px;
   line-height: 1.65;
   color: #d6dde1;
   max-width: 760px;
   margin-bottom: 20px;
}
#annual-report .question-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 24px;
   margin: 0;
   padding-top: 18px;
   border-top: 1px solid #414c54;
}
#annual-report .question-grid dt {
   font-size: 11px;
   font-weight: 600;
   color: #9fb0ba;
   margin-bottom: 6px;
}
#annual-report .question-grid dd {
   margin: 0;
   font-size: 13px;
   line-height: 1.65;
   color: #eef2f4;
}
#annual-report .question-status {
   display: flex;
   align-items: center;
   gap: 10px;
   margin-top: 22px;
   font-size: 12px;
   color: #b9c4cb;
}
#annual-report .questions-after {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
   gap: 24px;
   margin-top: 48px;
}
#annual-report .own-data-question,
#annual-report .not-answered {
   border: 1px solid #414c54;
   border-radius: 12px;
   padding: 28px 30px;
}
#annual-report .own-data-question .section-context {
   color: #ff8c8d;
}
#annual-report .own-data-question h3,
#annual-report .not-answered h3 {
   font-size: 21px;
   margin-bottom: 12px;
}
#annual-report .own-data-question p,
#annual-report .not-answered li {
   font-size: 14px;
   line-height: 1.7;
   color: #d6dde1;
}
#annual-report .not-answered ul {
   margin: 0;
   padding-inline-start: 18px;
}
#annual-report .not-answered li + li {
   margin-top: 10px;
}
#annual-report .not-answered strong {
   color: #fff;
}
#annual-report .network-schematic {
   display: grid;
   grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
   gap: 40px;
   align-items: center;
   margin: 56px 0 0;
   padding: 32px;
   background: var(--report-page);
   color: var(--report-ink);
   border-radius: 14px;
}
#annual-report .schematic-drawing svg {
   display: block;
   width: 100%;
   height: auto;
}
#annual-report .network-schematic svg .schematic-ground {
   fill: #f3f6f7;
   stroke: none;
}
#annual-report .network-schematic svg .schematic-streets path {
   stroke: #dde4e7;
   stroke-width: 10;
}
#annual-report .network-schematic svg .schematic-catchment {
   stroke: #f6c9ca;
   stroke-width: 70;
   stroke-linecap: round;
   opacity: 0.55;
}
#annual-report .network-schematic svg .schematic-network {
   stroke: var(--report-ink);
   stroke-width: 9;
}
#annual-report .network-schematic svg .schematic-fragment {
   stroke: var(--report-red);
   stroke-width: 9;
}
#annual-report .network-schematic svg .schematic-gap {
   stroke: #b87b25;
   stroke-width: 5;
   stroke-dasharray: 2 9;
}
#annual-report .network-schematic svg .schematic-homes rect {
   fill: #fff;
   stroke: var(--report-ink);
   stroke-width: 2;
}
#annual-report .network-schematic svg .schematic-markers circle {
   fill: #fff;
   stroke: var(--report-ink);
   stroke-width: 2;
}
#annual-report .network-schematic svg .schematic-markers text {
   fill: var(--report-ink);
   stroke: none;
   font: 800 15px "Public Sans", Arial, sans-serif;
   text-anchor: middle;
}
#annual-report .network-schematic h3 {
   font-size: 26px;
   margin-bottom: 18px;
}
#annual-report .schematic-legend {
   margin: 0 0 14px;
   padding-inline-start: 20px;
   font-size: 14px;
   line-height: 1.6;
}
#annual-report .schematic-legend li + li {
   margin-top: 10px;
}
#annual-report .legend-swatch {
   display: inline-block;
   width: 22px;
   height: 6px;
   border-radius: 3px;
   margin-inline-end: 10px;
   vertical-align: middle;
}
#annual-report .legend-swatch.network {
   background: var(--report-ink);
}
#annual-report .legend-swatch.fragment {
   background: var(--report-red);
}
#annual-report .legend-swatch.gap {
   background: repeating-linear-gradient(90deg, #b87b25 0 3px, transparent 3px 7px);
}
#annual-report .legend-swatch.home {
   width: 12px;
   height: 12px;
   border: 2px solid var(--report-ink);
   border-radius: 2px;
   background: #f6c9ca;
}

/* Cohort charts */
#annual-report .report-chart {
   margin: 64px 0 0;
   padding-top: 36px;
   border-top: 1px solid var(--report-line);
}
#annual-report .report-chart figcaption h3 {
   font-size: 26px;
   margin-bottom: 8px;
}
#annual-report .report-chart figcaption p {
   font-size: 14px;
   color: var(--report-muted);
   max-width: 760px;
   margin-bottom: 26px;
}
#annual-report .distribution-row {
   display: grid;
   grid-template-columns: 230px minmax(0, 1fr);
   gap: 18px;
   align-items: center;
}
#annual-report .distribution-label {
   font-size: 12px;
   font-weight: 600;
   text-align: end;
}
#annual-report .distribution-label em {
   font-style: normal;
   color: var(--report-muted);
   font-weight: 400;
   margin-inline-start: 4px;
}
#annual-report .distribution-track {
   position: relative;
   height: 34px;
   border-bottom: 1px solid var(--report-line);
}
#annual-report .distribution-track i {
   position: absolute;
   width: 6px;
   height: 6px;
   margin: -3px 0 0 -3px;
   border-radius: 50%;
   background: var(--report-red);
   opacity: 0.55;
}
#annual-report .distribution-median {
   position: absolute;
   top: 2px;
   bottom: 2px;
   width: 3px;
   margin-left: -1.5px;
   background: var(--report-ink);
   border-radius: 2px;
}
#annual-report .distribution-threshold {
   position: absolute;
   top: 0;
   bottom: 0;
   border-left: 1px dashed #8b979f;
}
#annual-report .distribution-axis {
   position: relative;
   height: 28px;
}
#annual-report .distribution-axis span {
   position: absolute;
   top: 6px;
   transform: translateX(-50%);
   font-size: 11px;
   color: var(--report-muted);
   font-variant-numeric: tabular-nums;
   white-space: nowrap;
}
#annual-report .distribution-axis span:first-child {
   transform: none;
}
#annual-report .distribution-axis span:last-child {
   transform: translateX(-100%);
}
#annual-report .chart-table {
   margin-top: 18px;
}
#annual-report .chart-table summary {
   font-size: 13px;
   font-weight: 600;
   cursor: pointer;
}
#annual-report .chart-table table {
   width: 100%;
   border-collapse: collapse;
   margin-top: 12px;
   font-size: 12px;
}
#annual-report .chart-table th,
#annual-report .chart-table td {
   padding: 9px 12px;
   border-top: 1px solid var(--report-line);
   text-align: start;
}
#annual-report .chart-table .numeric {
   text-align: end;
   font-variant-numeric: tabular-nums;
}
#annual-report .chart-source {
   font-size: 11px;
   line-height: 1.6;
   color: var(--report-muted);
   margin: 16px 0 0;
   max-width: 860px;
}
#annual-report .income-bar {
   display: flex;
   height: 34px;
   border-radius: 6px;
   overflow: hidden;
   gap: 2px;
}
#annual-report .income-bar span,
#annual-report .income-swatch {
   background: var(--report-ink);
}
#annual-report .income-upper-middle {
   background: #b4383a !important;
}
#annual-report .income-lower-middle {
   background: var(--report-red) !important;
}
#annual-report .income-low-income {
   background: #ef8f90 !important;
}
#annual-report .income-unclassified {
   background: #c7d0d4 !important;
}
#annual-report .income-legend {
   display: flex;
   flex-wrap: wrap;
   gap: 10px 28px;
   list-style: none;
   margin: 16px 0 0;
   padding: 0;
   font-size: 13px;
}
#annual-report .income-legend strong {
   font-variant-numeric: tabular-nums;
   margin-inline-end: 4px;
}
#annual-report .income-swatch {
   display: inline-block;
   width: 12px;
   height: 12px;
   border-radius: 3px;
   margin-inline-end: 8px;
   vertical-align: -1px;
}

/* Boundaries */
#annual-report .boundary-section {
   background: var(--report-mist);
   border-top: 1px solid var(--report-line);
   border-bottom: 1px solid var(--report-line);
}
#annual-report .boundary-compare {
   display: grid;
   grid-template-columns: 320px minmax(0, 1fr);
   gap: 56px;
   align-items: center;
}
#annual-report .boundary-squares {
   display: flex;
   justify-content: center;
}
#annual-report .boundary-large {
   position: relative;
   width: 300px;
   height: 300px;
   background: var(--report-page);
   border: 2px solid var(--report-ink);
   border-radius: 4px;
}
#annual-report .boundary-small {
   position: absolute;
   width: 42px;
   height: 42px;
   left: 50%;
   top: 50%;
   transform: translate(-50%, -50%);
   background: var(--report-red);
   border-radius: 2px;
}
#annual-report .boundary-cards {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
   gap: 20px;
}
#annual-report .boundary-card {
   background: var(--report-page);
   border-radius: 12px;
   padding: 26px;
   border: 1px solid var(--report-line);
}
#annual-report .boundary-key {
   display: block;
   width: 18px;
   height: 18px;
   border-radius: 3px;
   margin-bottom: 14px;
}
#annual-report .boundary-card-small .boundary-key {
   background: var(--report-red);
}
#annual-report .boundary-card-large .boundary-key {
   background: var(--report-page);
   border: 2px solid var(--report-ink);
}
#annual-report .boundary-card h3 {
   font-size: 22px;
   margin: 4px 0 14px;
}
#annual-report .boundary-card dl {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 12px;
   margin: 0 0 14px;
}
#annual-report .boundary-card dt {
   font-size: 11px;
   color: var(--report-muted);
}
#annual-report .boundary-card dd {
   margin: 0;
   font-size: 22px;
   font-weight: 800;
   letter-spacing: -0.03em;
   font-variant-numeric: tabular-nums;
}
#annual-report .boundary-card > p:last-child {
   font-size: 13px;
   line-height: 1.65;
   color: var(--report-muted);
   margin: 0;
}
#annual-report .boundary-takeaway {
   font-size: 20px;
   line-height: 1.55;
   font-weight: 600;
   max-width: 900px;
   margin: 42px 0 18px;
   padding-inline-start: 22px;
   border-inline-start: 4px solid var(--report-red);
}

/* Reading a result */
#annual-report .raw-measures {
   font-size: 13px;
   line-height: 1.65;
   color: var(--report-muted);
   background: var(--report-mist);
   border-radius: 8px;
   padding: 14px 16px;
   margin: 4px 0 22px;
}
#annual-report .raw-measures strong {
   display: block;
   color: var(--report-ink);
   margin-bottom: 2px;
}
#annual-report .brief-anatomy {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr);
   gap: 56px;
   margin-top: 64px;
   padding-top: 40px;
   border-top: 1px solid var(--report-line);
}
#annual-report .brief-anatomy-heading h3 {
   font-size: 26px;
   margin-bottom: 12px;
}
#annual-report .brief-anatomy-heading p:last-child {
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-muted);
}
#annual-report .brief-parts {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 14px;
   margin: 0;
   padding: 0;
   list-style: none;
   counter-reset: brief;
}
#annual-report .brief-parts li {
   counter-increment: brief;
   display: grid;
   gap: 4px;
   padding-block: 18px;
   padding-inline: 56px 20px;
   position: relative;
   border: 1px solid var(--report-line);
   border-radius: 10px;
}
#annual-report .brief-parts li::before {
   content: counter(brief);
   position: absolute;
   inset-inline-start: 18px;
   top: 16px;
   width: 26px;
   height: 26px;
   border-radius: 50%;
   display: grid;
   place-items: center;
   font-size: 12px;
   font-weight: 800;
   color: #fff;
   background: var(--report-red);
}
#annual-report .brief-parts strong {
   font-size: 14px;
}
#annual-report .brief-parts span {
   font-size: 13px;
   line-height: 1.6;
   color: var(--report-muted);
}

/* For transport teams */
#annual-report .action-section {
   background: var(--report-wash);
   border-top: 1px solid var(--report-line);
   border-bottom: 1px solid var(--report-line);
}
/* overflow: hidden, not overflow-x: auto. The table never needs to scroll (its cells wrap, and
   below 800px it becomes stacked blocks), and overflow-x: auto turns overflow-y to auto too, so a
   sub-pixel row height drew a 1px vertical scrollbar beside the table. Hidden still clips the
   corners to the radius. */
#annual-report .pattern-table-wrap {
   overflow: hidden;
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
}
#annual-report .pattern-table {
   width: 100%;
   border-collapse: collapse;
   font-size: 14px;
   line-height: 1.6;
}
#annual-report .pattern-table th,
#annual-report .pattern-table td {
   text-align: start;
   vertical-align: top;
   padding: 18px 22px;
   border-top: 1px solid var(--report-line);
}
#annual-report .pattern-table thead th {
   border-top: 0;
   font-size: 11px;
   font-weight: 600;
   color: var(--report-muted);
}
#annual-report .pattern-table tbody th {
   width: 30%;
   font-weight: 800;
}
#annual-report .pattern-table td {
   color: var(--report-body);
}
#annual-report .pattern-table td:last-child {
   color: var(--report-ink);
   font-weight: 600;
}
#annual-report .action-after {
   display: grid;
   grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
   gap: 24px;
   margin-top: 24px;
}
#annual-report .meeting-questions,
#annual-report .provisional-note {
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   padding: 26px 28px;
}
#annual-report .meeting-questions h3,
#annual-report .provisional-note h3 {
   font-size: 19px;
   margin-bottom: 14px;
}
#annual-report .meeting-questions ul {
   margin: 0;
   padding-inline-start: 18px;
   font-size: 14px;
   line-height: 1.6;
}
#annual-report .meeting-questions li + li {
   margin-top: 8px;
}
#annual-report .provisional-note {
   border-inline-start: 4px solid #b87b25;
}
#annual-report .provisional-note p {
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
   margin: 0;
}

/* Editorial standards */
#annual-report .commentary-steps {
   display: grid;
   grid-template-columns: repeat(5, minmax(0, 1fr));
   gap: 0;
   list-style: none;
   margin: 0;
   padding: 0;
   counter-reset: step;
   border-top: 4px solid var(--report-ink);
}
#annual-report .commentary-steps li {
   counter-increment: step;
   display: grid;
   align-content: start;
   gap: 6px;
   padding-block: 20px 0;
   padding-inline: 0 20px;
}
#annual-report .commentary-steps li::before {
   content: counter(step);
   font-size: 12px;
   font-weight: 800;
   color: var(--report-red-text);
}
#annual-report .commentary-steps strong {
   font-size: 16px;
   line-height: 1.3;
}
#annual-report .commentary-steps span {
   font-size: 13px;
   line-height: 1.6;
   color: var(--report-muted);
}
#annual-report .standards-layout {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
   gap: 56px;
   margin-top: 56px;
}
#annual-report .evidence-labels h3,
#annual-report .story-plan h3 {
   font-size: 21px;
   margin-bottom: 18px;
}
#annual-report .evidence-labels dl {
   margin: 0;
   display: grid;
   gap: 14px;
}
#annual-report .evidence-labels dl > div {
   display: grid;
   grid-template-columns: 150px minmax(0, 1fr);
   gap: 14px;
   align-items: baseline;
}
#annual-report .evidence-labels dd {
   margin: 0;
   font-size: 14px;
   line-height: 1.6;
   color: var(--report-body);
}
#annual-report .evidence-tag {
   display: inline-block;
   font-size: 11px;
   font-weight: 800;
   padding: 4px 10px;
   border-radius: 999px;
   border: 1.5px solid currentColor;
}
#annual-report .evidence-tag.measured {
   color: var(--report-green-text);
}
#annual-report .evidence-tag.interpretation {
   color: var(--report-amber-text);
}
#annual-report .evidence-tag.external {
   color: var(--report-blue-text);
}
#annual-report .standards-rules {
   margin: 0;
   padding: 0;
   list-style: none;
   display: grid;
   gap: 0;
}
#annual-report .standards-rules li {
   font-size: 14px;
   line-height: 1.6;
   padding-block: 13px;
   padding-inline: 28px 0;
   position: relative;
   border-bottom: 1px solid var(--report-line);
}
#annual-report .standards-rules li::before {
   content: "";
   position: absolute;
   inset-inline-start: 2px;
   top: 21px;
   width: 12px;
   height: 6px;
   border-left: 2px solid var(--report-red);
   border-bottom: 2px solid var(--report-red);
   transform: rotate(-45deg);
}
#annual-report .story-plan {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
   gap: 56px;
   margin-top: 56px;
   padding: 34px;
   background: var(--report-mist);
   border-radius: 14px;
}
#annual-report .story-plan p:last-child {
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
   margin: 0;
}
#annual-report .story-steps {
   margin: 0;
   padding: 0;
   list-style: none;
   counter-reset: story;
   display: grid;
   gap: 8px;
}
#annual-report .story-steps li {
   counter-increment: story;
   display: flex;
   align-items: center;
   gap: 14px;
   background: var(--report-page);
   border-radius: 8px;
   padding: 11px 16px;
   font-size: 14px;
   font-weight: 600;
}
#annual-report .story-steps li::before {
   content: counter(story);
   flex: none;
   width: 24px;
   height: 24px;
   border-radius: 50%;
   display: grid;
   place-items: center;
   font-size: 11px;
   color: var(--report-red-text);
   border: 1.5px solid var(--report-red);
}

/* Glossary and method cards */
#annual-report .glossary {
   margin: 10px 0 44px;
}
#annual-report .glossary-heading {
   display: flex;
   justify-content: space-between;
   gap: 48px;
   align-items: flex-end;
   margin-bottom: 22px;
}
#annual-report .glossary-heading h3 {
   font-size: 24px;
}
#annual-report .glossary-heading p {
   max-width: 560px;
   font-size: 13px;
   line-height: 1.7;
   color: var(--report-muted);
   margin: 0;
}
#annual-report .glossary-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 14px;
}
#annual-report .glossary-grid article {
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   padding: 20px;
}
#annual-report .glossary-grid svg {
   display: block;
   width: 100%;
   height: auto;
   margin-bottom: 14px;
   stroke: none;
}
#annual-report .glossary-grid svg rect,
#annual-report .glossary-grid svg circle {
   stroke: none;
}
#annual-report .glossary-grid .gx-road {
   fill: #8e9aa2;
}
#annual-report .glossary-grid .gx-foot {
   fill: #e1e7ea;
}
#annual-report .glossary-grid .gx-verge {
   fill: #cfe3d6;
}
#annual-report .glossary-grid .gx-kerb {
   fill: var(--report-ink);
}
#annual-report .glossary-grid .gx-bike {
   fill: var(--report-red);
}
#annual-report .glossary-grid .gx-shared {
   fill: #e9c3c4;
}
#annual-report .glossary-grid .gx-person {
   fill: var(--report-ink);
}
#annual-report .glossary-grid .gx-car {
   fill: #3c464e;
}
#annual-report .glossary-grid .gx-unknown {
   fill: #e6eaec;
}
#annual-report .glossary-grid .gx-line {
   fill: none;
   stroke: #fff;
   stroke-width: 3;
}
#annual-report .glossary-grid svg .gx-line:last-child {
   stroke: var(--report-muted);
}
#annual-report .glossary-grid .gx-crossing {
   fill: none;
   stroke: #fff;
   stroke-width: 6;
}
#annual-report .glossary-grid h4 {
   font-size: 16px;
   font-weight: 800;
   margin: 0 0 6px;
}
#annual-report .glossary-grid p {
   font-size: 13px;
   line-height: 1.6;
   color: var(--report-muted);
   margin-bottom: 10px;
}
#annual-report .glossary-weight {
   font-size: 11px;
   font-weight: 600;
   color: var(--report-ink);
}
#annual-report .method-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 14px;
   margin-bottom: 14px;
}
#annual-report .method-card,
#annual-report .change-reasons {
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   padding: 24px;
}
#annual-report .method-card h3,
#annual-report .change-reasons h3 {
   font-size: 18px;
   margin-bottom: 14px;
}
#annual-report .method-card p,
#annual-report .change-reasons p {
   font-size: 13px;
   line-height: 1.7;
   color: var(--report-muted);
}
#annual-report .evidence-states {
   margin: 0;
   display: grid;
   gap: 12px;
}
#annual-report .evidence-states dt {
   font-size: 13px;
   font-weight: 800;
}
#annual-report .evidence-states dd {
   margin: 2px 0 0;
   font-size: 12px;
   line-height: 1.6;
   color: var(--report-muted);
}
#annual-report .confidence-drivers {
   margin: 0;
   padding-inline-start: 18px;
   font-size: 13px;
   line-height: 1.6;
}
#annual-report .confidence-drivers li + li {
   margin-top: 6px;
}
#annual-report .change-reasons {
   margin-bottom: 34px;
}
#annual-report .change-reasons ol {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 18px;
   margin: 0 0 14px;
   padding-inline-start: 18px;
   font-size: 14px;
   line-height: 1.6;
}

/* Analysis plan */
#annual-report .analysis-plan {
   border: 2px solid var(--report-ink);
   border-radius: 14px;
   padding: 34px 38px;
}
#annual-report .plan-stamp {
   display: inline-flex;
   flex-wrap: wrap;
   gap: 6px 12px;
   align-items: baseline;
   font-size: 13px;
   color: var(--report-muted);
   padding-bottom: 18px;
   margin-bottom: 8px;
}
#annual-report .plan-stamp strong {
   color: #fff;
   background: var(--report-slab);
   border-radius: 999px;
   padding: 3px 12px;
   font-size: 12px;
}
#annual-report .plan-list {
   margin: 0;
}
#annual-report .plan-list > div {
   display: grid;
   grid-template-columns: 220px minmax(0, 1fr);
   gap: 28px;
   padding: 18px 0;
   border-top: 1px solid var(--report-line);
}
#annual-report .plan-list dt {
   font-weight: 800;
   font-size: 14px;
}
#annual-report .plan-list dd {
   margin: 0;
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
   max-width: 820px;
}
#annual-report .plan-list ul {
   margin: 0;
   padding-inline-start: 18px;
}
#annual-report .plan-list li + li {
   margin-top: 8px;
}

/* Integrity and about */
#annual-report .integrity-section {
   background: var(--report-slab);
   color: #fff;
}
#annual-report .integrity-section .section-context,
#annual-report .integrity-section .section-heading > p {
   color: #b9c4cb;
}
#annual-report .integrity-section .section-heading a {
   color: #fff;
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .integrity-grid,
#annual-report .about-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 18px;
}
#annual-report .integrity-grid article {
   border-top: 3px solid var(--report-red);
   padding-top: 22px;
}
#annual-report .integrity-grid h3,
#annual-report .about-grid h3 {
   font-size: 20px;
   margin-bottom: 12px;
}
#annual-report .integrity-grid p {
   font-size: 14px;
   line-height: 1.75;
   color: #d6dde1;
}
#annual-report .about-grid article {
   padding: 26px;
   border: 1px solid var(--report-line);
   border-radius: 12px;
}
#annual-report .about-grid p,
#annual-report .about-grid li {
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
}
#annual-report .about-grid ul {
   margin: 0 0 14px;
   padding-inline-start: 18px;
}
#annual-report .feedback-layout {
   display: grid;
   grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
   gap: 18px;
   align-items: start;
}
#annual-report .feedback-form {
   padding: 28px;
   border: 1px solid var(--report-line);
   border-radius: 12px;
}
/* The shared contact form brings Bootstrap's field classes; the report's own resets would
   otherwise give its fields the muted body colour. Its button takes the report's own classes
   (contact_form_button_class), because the site forces .btn-primary to blue with !important. */
#annual-report .feedback-form .form-control {
   color: var(--report-ink);
}
/* pages/base.html recolours .text-body-secondary and .form-text under the site's dark theme with
   !important; the report's muted help text keeps the report's own token, which has a dark value. */
#annual-report .feedback-form .form-text,
#annual-report .feedback-form .text-body-secondary,
#annual-report .feedback-form .text-muted {
   color: var(--report-muted) !important;
}
#annual-report .feedback-form button[type="submit"] {
   justify-content: center;
}
#annual-report .feedback-email {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   gap: 12px;
   padding: 28px;
   background: var(--report-mist);
   border-radius: 12px;
}
#annual-report .feedback-email h3 {
   font-size: 20px;
   margin: 0;
}
#annual-report .feedback-email p {
   margin: 0;
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
}
#annual-report .citation-block {
   display: grid;
   grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
   gap: 40px;
   margin-top: 24px;
   padding: 30px;
   background: var(--report-mist);
   border-radius: 12px;
}
#annual-report .citation-block h3 {
   font-size: 20px;
   margin-bottom: 10px;
}
#annual-report .citation-block p {
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
}
#annual-report .citation {
   font-family: Georgia, "Times New Roman", serif;
   font-size: 15px !important;
   color: var(--report-ink) !important;
   background: var(--report-page);
   border-inline-start: 3px solid var(--report-red);
   padding: 14px 18px;
   margin: 0;
   direction: ltr;
   text-align: left;
}
#annual-report .reuse-terms {
   align-self: end;
   font-size: 12px !important;
   color: var(--report-muted) !important;
   margin: 0;
}
#annual-report .edition-wrap {
   padding-bottom: 88px;
}
#annual-report .edition-wrap .edition-notice {
   margin-top: 0;
}

@media (max-width: 1100px) {
   #annual-report .intro-layout {
      gap: 48px;
   }
   #annual-report .question-grid,
   #annual-report .glossary-grid,
   #annual-report .method-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
   #annual-report .question-grid > div:last-child {
      grid-column: 1 / -1;
   }
   #annual-report .commentary-steps {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      row-gap: 24px;
   }
   #annual-report .boundary-compare {
      grid-template-columns: 220px minmax(0, 1fr);
      gap: 32px;
   }
   #annual-report .boundary-large {
      width: 210px;
      height: 210px;
   }
   #annual-report .boundary-small {
      width: 29px;
      height: 29px;
   }
   #annual-report .distribution-row {
      grid-template-columns: 170px minmax(0, 1fr);
   }
}
@media (max-width: 800px) {
   #annual-report .intro-layout,
   #annual-report .questions-after,
   #annual-report .network-schematic,
   #annual-report .boundary-compare,
   #annual-report .boundary-cards,
   #annual-report .brief-anatomy,
   #annual-report .brief-parts,
   #annual-report .action-after,
   #annual-report .standards-layout,
   #annual-report .story-plan,
   #annual-report .integrity-grid,
   #annual-report .about-grid,
   #annual-report .feedback-layout,
   #annual-report .citation-block,
   #annual-report .question-grid,
   #annual-report .glossary-grid,
   #annual-report .method-grid,
   #annual-report .change-reasons ol {
      grid-template-columns: minmax(0, 1fr);
   }
   #annual-report .question-grid > div:last-child {
      grid-column: auto;
   }
   #annual-report .commentary-steps {
      grid-template-columns: minmax(0, 1fr);
   }
   #annual-report .reading-paths {
      position: static;
   }
   #annual-report .question-card {
      grid-template-columns: minmax(0, 1fr);
      gap: 10px;
      padding: 24px 22px;
   }
   #annual-report .question-number {
      font-size: 40px;
   }
   #annual-report .network-schematic {
      padding: 20px;
   }
   #annual-report .distribution-row {
      grid-template-columns: minmax(0, 1fr);
      gap: 2px;
   }
   #annual-report .distribution-label {
      text-align: start;
   }
   #annual-report .distribution-axis-row .distribution-label {
      display: none;
   }
   #annual-report .boundary-squares {
      justify-content: flex-start;
   }
   #annual-report .glossary-heading {
      flex-direction: column;
      align-items: flex-start;
      gap: 10px;
   }
   #annual-report .evidence-labels dl > div,
   #annual-report .plan-list > div {
      grid-template-columns: minmax(0, 1fr);
      gap: 6px;
   }
   #annual-report .analysis-plan {
      padding: 24px 20px;
   }
   #annual-report .intro-essay .intro-lede {
      font-size: 19px;
   }
}
@media print {
   #annual-report .questions-section,
   #annual-report .integrity-section {
      background: #fff;
      color: #000;
   }
   #annual-report .question-card {
      background: #fff;
      border: 1px solid #999;
      break-inside: avoid;
   }
   #annual-report .question-card h3,
   #annual-report .question-why,
   #annual-report .question-grid dd,
   #annual-report .own-data-question p,
   #annual-report .not-answered li,
   #annual-report .not-answered strong,
   #annual-report .integrity-grid p {
      color: #000;
   }
   #annual-report .reading-paths {
      position: static;
   }
   #annual-report .chart-table[open] summary,
   #annual-report .chart-table summary {
      display: none;
   }
}
#annual-report .self-check {
   margin-top: 22px;
   padding: 20px 24px;
   border-radius: 10px;
   background: var(--report-mist);
   border-inline-start: 4px solid var(--report-green);
   max-width: 900px;
}
#annual-report .self-check h4 {
   font-size: 16px;
   font-weight: 800;
   margin: 10px 0 6px;
}
#annual-report .self-check p {
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
   margin: 0;
}
/* Nine section links: each keeps its own width and the bar scrolls sideways. */
#annual-report .section-nav a {
   flex: none;
}
@media (max-width: 800px) {
   #annual-report .pattern-table thead {
      display: none;
   }
   #annual-report .pattern-table,
   #annual-report .pattern-table tbody,
   #annual-report .pattern-table tr,
   #annual-report .pattern-table th,
   #annual-report .pattern-table td {
      display: block;
      width: auto !important;
   }
   #annual-report .pattern-table tr {
      padding: 18px 20px;
      border-top: 1px solid var(--report-line);
   }
   #annual-report .pattern-table tbody tr:first-child {
      border-top: 0;
   }
   #annual-report .pattern-table th,
   #annual-report .pattern-table td {
      border: 0;
      padding: 0;
   }
   #annual-report .pattern-table td {
      margin-top: 12px;
   }
   #annual-report .pattern-table td::before {
      content: attr(data-label);
      display: block;
      font-size: 11px;
      font-weight: 600;
      color: var(--report-muted);
      margin-bottom: 2px;
   }
}
@media (max-width: 800px) {
   /* Six labels do not fit a phone's axis: keep 100,000, 1,000,000 and 10,000,000. */
   #annual-report .distribution-axis span:nth-child(1),
   #annual-report .distribution-axis span:nth-child(3),
   #annual-report .distribution-axis span:nth-child(6) {
      display: none;
   }
   #annual-report .distribution-axis span:nth-child(2),
   #annual-report .distribution-axis span:nth-child(5) {
      transform: translateX(-50%);
   }
}

/* Supplementary context: parking, shared bikes, rail, evidence to action, other measures.
   Documentary photographs are shown uncropped at their own 16:9 proportions. */
#annual-report .arrival-section {
   border-top: 1px solid var(--report-line);
}
#annual-report .report-photo {
   margin: 0;
}
#annual-report .report-photo img {
   display: block;
   width: 100%;
   height: auto;
   border-radius: 12px;
   background: var(--report-mist);
}
#annual-report .report-photo figcaption {
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   gap: 4px 18px;
   margin-top: 10px;
   font-size: 13px;
   line-height: 1.6;
   color: var(--report-body);
}
#annual-report .photo-credit {
   font-size: 11px;
   color: var(--report-muted);
}
#annual-report .photo-lead {
   margin-bottom: 48px;
}
#annual-report .arrival-prose {
   max-width: 680px;
}
#annual-report .arrival-prose p,
#annual-report .shared-bikes-prose p,
#annual-report .train-inset p {
   font-size: 17px;
   line-height: 1.75;
   color: var(--report-body);
   margin: 0 0 20px;
}
#annual-report .arrival-prose .arrival-lede,
#annual-report .shared-bikes-prose .arrival-lede {
   font-size: 21px;
   line-height: 1.6;
   font-weight: 600;
   color: var(--report-ink);
   letter-spacing: -0.01em;
}
#annual-report .arrival-prose .source-note {
   font-size: 12px;
   color: var(--report-muted);
   margin-top: 6px;
}
#annual-report .arrival-pair {
   display: grid;
   grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
   gap: 56px;
   align-items: start;
   margin: 12px 0 72px;
}
#annual-report .shared-bikes {
   background: var(--report-mist);
   border-radius: 16px;
   padding: 52px 56px 48px;
}
#annual-report .shared-bikes > h3 {
   font-size: 34px;
   line-height: 1.15;
   letter-spacing: -0.03em;
   margin: 0 0 28px;
}
#annual-report .shared-bikes-prose {
   max-width: 720px;
}
#annual-report .photo-pair {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 24px;
   margin: 16px 0 18px;
}
#annual-report .photo-note {
   max-width: 760px;
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
   margin: 0 0 40px;
}
#annual-report .city-approaches h4 {
   font-size: 20px;
   margin: 0 0 16px;
}
#annual-report .approach-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 14px;
}
#annual-report .approach-grid article {
   display: flex;
   flex-direction: column;
   gap: 10px;
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   padding: 22px 24px;
}
#annual-report .approach-grid h5 {
   font-size: 17px;
   font-weight: 800;
   margin: 0;
}
#annual-report .approach-date {
   font-size: 12px;
   font-weight: 600;
   color: var(--report-muted);
   margin: 0;
}
#annual-report .approach-grid p:not(.approach-date) {
   flex: 1;
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
   margin: 0;
}
#annual-report .source-link {
   font-size: 12px;
   font-weight: 600;
   color: var(--report-ink);
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .source-link:hover {
   color: var(--report-red-text);
}
#annual-report .train-inset {
   display: grid;
   grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
   gap: 32px;
   align-items: start;
   max-width: 900px;
   margin: 40px 0 0;
   padding: 24px;
   border: 1px solid var(--report-line);
   border-radius: 12px;
}
#annual-report .train-inset h3 {
   font-size: 19px;
   margin: 0 0 12px;
}
#annual-report .train-inset p {
   font-size: 14px;
   line-height: 1.7;
   margin-bottom: 12px;
}
#annual-report .evidence-action-layout {
   display: grid;
   grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
   gap: 56px;
   align-items: start;
}
#annual-report .evidence-action-side {
   display: grid;
   gap: 18px;
}
#annual-report .process-flow {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   list-style: none;
   margin: 0;
   padding: 0;
   border-top: 4px solid var(--report-ink);
}
#annual-report .process-flow li {
   position: relative;
   display: flex;
   flex-direction: column;
   gap: 10px;
   padding-block: 16px 4px;
   padding-inline: 0 34px;
   font-size: 14px;
   line-height: 1.4;
}
#annual-report .process-flow li:not(:last-child)::after {
   content: "→";
   position: absolute;
   inset-inline-end: 12px;
   top: 20px;
   color: var(--report-red-text);
   font-weight: 800;
}
[dir="rtl"] #annual-report .process-flow li:not(:last-child)::after {
   content: "←";
}
#annual-report .case-structure,
#annual-report .editorial-log {
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   padding: 24px 26px;
}
#annual-report .case-structure h3,
#annual-report .editorial-log h3 {
   font-size: 18px;
   margin: 0 0 12px;
}
#annual-report .case-structure ol {
   margin: 0;
   padding-inline-start: 20px;
   font-size: 14px;
   line-height: 1.6;
}
#annual-report .case-structure li + li {
   margin-top: 6px;
}
#annual-report .measures-inset {
   display: grid;
   grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.5fr);
   gap: 40px;
   align-items: start;
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   padding: 32px;
   margin-bottom: 34px;
}
#annual-report .measures-intro h3 {
   font-size: 22px;
   margin: 0 0 14px;
}
#annual-report .measures-intro p:not(.section-context) {
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
   margin: 0 0 12px;
}
#annual-report .measures-table {
   width: 100%;
   border-collapse: collapse;
   font-size: 13px;
   line-height: 1.6;
}
#annual-report .measures-table th,
#annual-report .measures-table td {
   text-align: start;
   vertical-align: top;
   padding: 12px 12px 12px 0;
   border-top: 1px solid var(--report-line);
}
#annual-report .measures-table thead th {
   border-top: 0;
   font-size: 11px;
   font-weight: 600;
   color: var(--report-muted);
}
#annual-report .measures-table tbody th {
   width: 22%;
   font-weight: 800;
}
#annual-report .measures-table tbody th a {
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .measures-table td {
   color: var(--report-body);
}
#annual-report .editorial-log {
   margin-top: 24px;
}
#annual-report .editorial-log > p {
   font-size: 13px;
   color: var(--report-muted);
   margin: 0 0 14px;
}
#annual-report .editorial-log ol {
   list-style: none;
   margin: 0;
   padding: 0;
}
#annual-report .editorial-log li {
   display: grid;
   grid-template-columns: 150px minmax(0, 1fr);
   gap: 20px;
   padding-top: 12px;
   border-top: 1px solid var(--report-line);
   font-size: 14px;
   line-height: 1.6;
}
#annual-report .editorial-log time {
   font-weight: 800;
}
@media (max-width: 1100px) {
   #annual-report .approach-grid {
      grid-template-columns: minmax(0, 1fr);
   }
   #annual-report .measures-inset,
   #annual-report .evidence-action-layout {
      grid-template-columns: minmax(0, 1fr);
   }
}
@media (max-width: 800px) {
   #annual-report .arrival-pair,
   #annual-report .photo-pair,
   #annual-report .train-inset {
      grid-template-columns: minmax(0, 1fr);
      gap: 24px;
   }
   #annual-report .shared-bikes {
      padding: 28px 20px;
      margin-inline: -8px;
   }
   #annual-report .shared-bikes > h3 {
      font-size: 26px;
   }
   #annual-report .arrival-prose p,
   #annual-report .shared-bikes-prose p {
      font-size: 16px;
   }
   #annual-report .arrival-prose .arrival-lede,
   #annual-report .shared-bikes-prose .arrival-lede {
      font-size: 19px;
   }
   #annual-report .process-flow {
      grid-template-columns: minmax(0, 1fr);
   }
   #annual-report .process-flow li {
      flex-direction: row;
      align-items: center;
      padding: 12px 0;
      border-bottom: 1px solid var(--report-line);
   }
   #annual-report .process-flow li:not(:last-child)::after,
   [dir="rtl"] #annual-report .process-flow li:not(:last-child)::after {
      content: "↓";
      inset-inline-end: 4px;
      top: 12px;
   }
   #annual-report .measures-inset {
      padding: 22px 18px;
   }
   #annual-report .measures-table thead {
      display: none;
   }
   #annual-report .measures-table,
   #annual-report .measures-table tbody,
   #annual-report .measures-table tr,
   #annual-report .measures-table th,
   #annual-report .measures-table tbody th,
   #annual-report .measures-table td {
      display: block;
      width: auto;
   }
   #annual-report .measures-table tr {
      padding: 12px 0;
      border-top: 1px solid var(--report-line);
   }
   #annual-report .measures-table th,
   #annual-report .measures-table td {
      border-top: 0;
      padding: 4px 0;
   }
   #annual-report .measures-table td::before {
      content: attr(data-label);
      display: block;
      font-size: 11px;
      font-weight: 600;
      color: var(--report-muted);
   }
   #annual-report .editorial-log li {
      grid-template-columns: minmax(0, 1fr);
      gap: 4px;
   }
}
@media print {
   #annual-report .shared-bikes {
      background: #fff;
      border: 1px solid #999;
      padding: 18px;
   }
   #annual-report .report-photo,
   #annual-report .approach-grid article,
   #annual-report .train-inset,
   #annual-report .case-structure,
   #annual-report .measures-table tr {
      break-inside: avoid;
   }
   #annual-report .photo-lead img {
      max-height: 11cm;
      object-fit: contain;
   }
   #annual-report .source-link::after,
   #annual-report .measures-table tbody th a::after {
      content: " (" attr(href) ")";
      font-weight: 400;
      word-break: break-all;
   }
   #annual-report .arrival-prose p,
   #annual-report .shared-bikes-prose p,
   #annual-report .photo-note,
   #annual-report .report-photo figcaption {
      color: #000;
   }
}

/* ------------------------------------------------------------------ 6 November 2026 additions
   Supplementary context on public investment, editorial clarifications and the places that
   will hold findings once they are validated. Everything below reuses the report's existing
   type scale, colours and card treatment; nothing here is scored or computed. */
#annual-report .question-clarification {
   margin: 14px 0 0;
   padding-inline-start: 12px;
   border-inline-start: 3px solid var(--report-line);
   font-size: 13px;
   line-height: 1.6;
   color: var(--report-body);
}
#annual-report .change-reasons ol {
   grid-template-columns: repeat(4, minmax(0, 1fr));
}
#annual-report .evidence-tag.reported {
   color: var(--report-violet-text);
}
#annual-report .evidence-tag.modelled {
   color: var(--report-muted);
}
#annual-report .approach-grid .evidence-tag {
   align-self: flex-start;
}
#annual-report .evidence-tag + .evidence-tag {
   margin-inline-start: 6px;
}

/* Public investment */
#annual-report .investment-section .arrival-prose {
   max-width: 760px;
}
#annual-report .funding-flow {
   grid-template-columns: repeat(6, minmax(0, 1fr));
   margin: 32px 0 12px;
}
#annual-report .funding-flow li strong {
   font-size: 14px;
}
#annual-report .funding-flow li span:not(.step-number) {
   font-size: 12px;
   line-height: 1.5;
   color: var(--report-muted);
}
#annual-report .investment-block {
   margin-top: 48px;
}
#annual-report .investment-block > h3 {
   font-size: 24px;
   margin: 0 0 8px;
}
#annual-report .investment-block > p:not(.source-note) {
   max-width: 760px;
   font-size: 15px;
   line-height: 1.75;
   color: var(--report-body);
}
#annual-report .investment-table-wrap {
   margin-top: 18px;
   padding: 6px 22px 10px;
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
}
#annual-report .investment-table-wrap .measures-table tbody th {
   width: 20%;
}
#annual-report .investment-table-wrap .source-link {
   display: inline-block;
   margin-top: 4px;
}
#annual-report .reported-delivery {
   display: grid;
   justify-items: start;
   gap: 8px;
   max-width: 900px;
   margin-top: 18px;
   padding: 18px 22px;
   background: var(--report-mist);
   border-radius: 12px;
}
#annual-report .reported-delivery p {
   margin: 0;
   font-size: 14px;
   line-height: 1.7;
   color: var(--report-body);
}
#annual-report .source-links {
   display: flex;
   flex-wrap: wrap;
   gap: 6px 18px;
   margin: 8px 0 18px;
}
#annual-report .evidence-ladder {
   display: grid;
   grid-template-columns: repeat(5, minmax(0, 1fr));
   gap: 12px;
   margin: 18px 0 0;
   padding: 0;
   list-style: none;
}
#annual-report .evidence-ladder li {
   display: flex;
   flex-direction: column;
   gap: 8px;
   padding: 18px;
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
   font-size: 13px;
   line-height: 1.6;
   color: var(--report-body);
}
#annual-report .evidence-ladder strong {
   font-size: 14px;
   color: var(--report-ink);
}
#annual-report .project-grid {
   grid-template-columns: repeat(2, minmax(0, 1fr));
}
#annual-report .project-facts {
   display: grid;
   gap: 8px;
   margin: 0;
   font-size: 13px;
   line-height: 1.55;
}
#annual-report .project-facts div {
   display: grid;
   grid-template-columns: 150px minmax(0, 1fr);
   gap: 12px;
   padding-top: 8px;
   border-top: 1px solid var(--report-line);
}
#annual-report .project-facts dt {
   font-weight: 800;
}
#annual-report .project-facts dd {
   margin: 0;
   color: var(--report-body);
}
#annual-report .project-facts .unverified {
   color: var(--report-amber-text);
}
#annual-report .future-register {
   margin-top: 32px;
}
/* The integrity section gained a fourth card (validation findings). */
#annual-report .integrity-grid {
   grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Places for findings, and their honest status */
#annual-report .coverage-status {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 12px;
   margin: 28px 0 0;
}
#annual-report .coverage-status div {
   padding: 16px 18px;
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-radius: 12px;
}
#annual-report .coverage-status dt {
   font-size: 12px;
   font-weight: 600;
   color: var(--report-muted);
}
#annual-report .coverage-status dd {
   margin: 4px 0 0;
   font-size: 14px;
   line-height: 1.5;
}
#annual-report .coverage-status dd strong {
   display: block;
   font-size: 26px;
   font-weight: 800;
}
#annual-report .local-limits {
   margin: 12px 0 0;
   padding-inline-start: 18px;
   font-size: 14px;
   line-height: 1.7;
}
#annual-report .method-notes {
   margin-block: 28px;
}
#annual-report .method-notes .open-questions {
   grid-column: 1 / -1;
   padding-top: 20px;
   border-top: 1px solid var(--report-line);
}
#annual-report .method-notes .open-questions h4 {
   font-size: 17px;
   margin: 0 0 4px;
}
#annual-report .method-notes table td,
#annual-report .method-notes table th {
   font-size: 13px;
}
#annual-report .open-items {
   margin: 10px 0 0;
   padding-inline-start: 18px;
   font-size: 14px;
   line-height: 1.7;
}
#annual-report .open-items li + li {
   margin-top: 8px;
}
@media (max-width: 1100px) {
   #annual-report .funding-flow {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      row-gap: 8px;
   }
   #annual-report .evidence-ladder {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
   #annual-report .project-grid,
   #annual-report .change-reasons ol,
   #annual-report .integrity-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
   #annual-report .coverage-status {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}
@media (max-width: 800px) {
   #annual-report .funding-flow,
   #annual-report .evidence-ladder,
   #annual-report .project-grid,
   #annual-report .change-reasons ol,
   #annual-report .integrity-grid {
      grid-template-columns: minmax(0, 1fr);
   }
   #annual-report .investment-table-wrap {
      padding: 4px 16px 8px;
   }
   #annual-report .investment-table-wrap .measures-table tbody th {
      width: auto;
   }
   #annual-report .project-facts div {
      grid-template-columns: minmax(0, 1fr);
      gap: 2px;
   }
}
@media print {
   #annual-report .evidence-ladder li,
   #annual-report .coverage-status div,
   #annual-report .funding-flow li {
      break-inside: avoid;
   }
   #annual-report .evidence-tag {
      color: #000;
   }
}

/* ------------------------------------------------------------------ 6 November 2026 review corrections */
/* accessibility.css sets hyphens: auto on every p, li, dd and dt site-wide. In the report's
   long-form prose that broke ordinary words across lines on desktop. Wider screens wrap whole
   words; phones keep hyphenation, where a long compound word would otherwise overflow. */
@media (min-width: 801px) {
   #annual-report p,
   #annual-report li,
   #annual-report dd,
   #annual-report dt {
      hyphens: manual;
   }
}
#annual-report .funding-table tbody th {
   width: 18%;
}
#annual-report .ref-link {
   font-size: 11px;
   font-weight: 700;
   color: var(--report-muted) !important;
   text-decoration: none;
   white-space: nowrap;
}
#annual-report .ref-link:hover {
   color: var(--report-red-text) !important;
}
#annual-report .reference-list {
   margin: 14px 0 6px;
   padding-inline-start: 22px;
   font-size: 12px;
   line-height: 1.6;
   color: var(--report-muted);
}
#annual-report .reference-list li + li {
   margin-top: 2px;
}
#annual-report .reference-list li:target {
   background: var(--report-mist);
}
#annual-report .plan-amendments {
   margin-top: 24px;
   padding: 24px 26px;
   background: var(--report-page);
   border: 1px solid var(--report-line);
   border-inline-start: 4px solid var(--report-ink);
   border-radius: 12px;
}
#annual-report .plan-amendments h3 {
   font-size: 18px;
   margin: 0 0 6px;
}
#annual-report .plan-amendments > p {
   font-size: 13px;
   color: var(--report-muted);
   margin: 0 0 14px;
}
#annual-report .plan-amendments ol {
   list-style: none;
   margin: 0;
   padding: 0;
}
#annual-report .plan-amendments li {
   display: grid;
   grid-template-columns: 150px minmax(0, 1fr);
   gap: 20px;
   padding-top: 12px;
   border-top: 1px solid var(--report-line);
   font-size: 14px;
   line-height: 1.65;
}
#annual-report .plan-amendments li + li {
   margin-top: 12px;
}
#annual-report .plan-amendments time {
   font-weight: 800;
}
#annual-report .plan-amendments li p {
   margin: 6px 0 0;
   color: var(--report-body);
}
@media (max-width: 800px) {
   #annual-report .plan-amendments li {
      grid-template-columns: minmax(0, 1fr);
      gap: 4px;
   }
   #annual-report .funding-table tbody th {
      width: auto;
   }
}
@media print {
   #annual-report .plan-amendments li {
      break-inside: avoid;
   }
}
#annual-report .reference-list .source-link {
   display: inline;
   margin-top: 0;
}

/* The funding register (6 November 2026). Reuses the city explorer's panel, filters and
   pagination; the rules below only fit a six-column table with longer English cells. */
#annual-report .funding-register-heading {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 24px;
   margin-bottom: 18px;
}
#annual-report .funding-register-heading p {
   max-width: 760px;
   font-size: 15px;
   line-height: 1.75;
   color: var(--report-body);
   margin: 0;
}
#annual-report .funding-register-heading .report-button {
   flex-shrink: 0;
}
#annual-report .funding-register-table th:first-child {
   width: 24%;
}
#annual-report .funding-register-table td {
   vertical-align: top;
   line-height: 1.5;
}
#annual-report .funding-register-table td:last-child {
   font-size: 12px;
}
#annual-report .funding-register-table td:nth-child(3) {
   color: var(--report-muted);
}
#annual-report .funding-register-table strong,
#annual-report .funding-register-table .funding-category {
   display: block;
   color: var(--report-ink);
   font-weight: 700;
}
#annual-report .funding-register-table small,
#annual-report .funding-register-table .funding-country {
   display: block;
   margin-top: 4px;
   font-size: 11px;
   color: var(--report-muted);
}
#annual-report .funding-register-table .funding-amount span {
   color: var(--report-ink);
   font-weight: 600;
   white-space: nowrap;
}
#annual-report .funding-register-table .funding-sources .source-link {
   display: block;
}
#annual-report .funding-register-table .funding-sources .source-link + .source-link {
   margin-top: 6px;
}
@media (max-width: 800px) {
   #annual-report .funding-register-heading {
      flex-direction: column;
      align-items: flex-start;
   }
   #annual-report .funding-register-table thead {
      display: none;
   }
   #annual-report .funding-register-table,
   #annual-report .funding-register-table tbody,
   #annual-report .funding-register-table tr,
   #annual-report .funding-register-table td {
      display: block;
      width: auto;
   }
   #annual-report .funding-register-table tr {
      padding: 10px 0;
      border-top: 1px solid var(--report-line);
   }
   #annual-report .funding-register-table td {
      border-top: 0;
      padding: 4px 16px;
      text-align: start;
   }
   #annual-report .funding-register-table td::before {
      content: attr(data-label);
      display: block;
      font-size: 10px;
      font-weight: 600;
      color: var(--report-muted);
   }
   #annual-report .funding-register-table td.empty-results::before {
      content: none;
   }
   /* The city explorer keeps its third column on one line at this width; a funding status
      carries its application dates and must wrap inside the card instead. */
   #annual-report .funding-register-table td:nth-child(3) {
      white-space: normal;
   }
}
@media print {
   #annual-report .funding-register-table tr {
      break-inside: avoid;
   }
}
#annual-report .funding-register-table .funding-sources .source-link {
   white-space: nowrap;
}
#annual-report .funding-download {
   margin-top: 16px;
}

/* Dark theme. The tokens above take their dark values; everything that reads a token follows.
   Literal-coloured callouts (the staff banner, load errors, the positive label) are restated here
   because their light tints have no meaning on a dark page. The world map's land is an inline
   SVG whose fill and stroke are presentation attributes, which any CSS declaration outranks. */
html[data-bs-theme="dark"] #annual-report {
   color-scheme: dark;
   --report-ink: #e6ecef;
   --report-muted: #a3afb8;
   --report-line: #34404a;
   --report-mist: #1f272e;
   --report-green: #4fb486;
   --report-page: #161c21;
   --report-wash: #1c2329;
   --report-hover: #252e35;
   --report-track: #2d3740;
   --report-body: #c7d0d6;
   --report-field-line: #4d5b67;
   --report-slab: #0d1114;
   --report-red-text: #ff8587;
   --report-green-text: #7fd2a9;
   --report-nav-bg: rgba(22, 28, 33, 0.97);
   --report-land: #34414b;
   --report-land-edge: #161c21;
   --report-amber-text: #e9b866;
   --report-blue-text: #8fb4ff;
   --report-violet-text: #c9a8f2;
}
/* Light islands: these sit on a light map image or are drawn as light diagrams. */
html[data-bs-theme="dark"] #annual-report .city-map-panel,
html[data-bs-theme="dark"] #annual-report .publication-cover,
html[data-bs-theme="dark"] #annual-report .network-schematic svg {
   color-scheme: light;
   --report-ink: #20272d;
   --report-muted: #5d6872;
   --report-line: #dce3e6;
   --report-page: #fff;
   --report-body: #3c464e;
   --report-red-text: #d43234;
}
html[data-bs-theme="dark"] #annual-report .city-map-panel {
   color: var(--report-ink);
}
html[data-bs-theme="dark"] #annual-report .publication-cover {
   box-shadow: 14px 16px 0 var(--report-wash);
}
html[data-bs-theme="dark"] #annual-report .network-schematic svg {
   border-radius: 8px;
}
html[data-bs-theme="dark"] #annual-report .load-error {
   background: #3a1c1d;
   color: #ffb4b4;
}
html[data-bs-theme="dark"] #annual-report .positive-label {
   background: #173327;
   color: #8fdcb5;
}
html[data-bs-theme="dark"] #annual-report .staff-preview-banner,
html[data-bs-theme="dark"] #annual-report .dialog-status {
   background: #2b2416;
   border-color: #5c4b26;
   color: #f1dba8;
}
html[data-bs-theme="dark"] #annual-report .review-link input,
html[data-bs-theme="dark"] #annual-report .review-link .quiet-button {
   border-color: #6d5a30;
   color: var(--report-ink);
}
html[data-bs-theme="dark"] #annual-report .city-table .name-review {
   color: #f2ab6c;
}
html[data-bs-theme="dark"] #annual-report .button-ink:hover {
   background: #2a333a;
}
/* The schematic is drawn light, so its legend's network key keeps the drawing's dark line. */
html[data-bs-theme="dark"] #annual-report .network-schematic .legend-swatch.network {
   background: #20272d;
   box-shadow: 0 0 0 1px var(--report-muted);
}
html[data-bs-theme="dark"] #annual-report .boundary-card .example-label {
   background: var(--report-wash);
   border-color: var(--report-line);
   color: var(--report-muted);
}

/* Comments, attached to the section they discuss (templates/annual_report/_section_comments.html,
   _comment_dialog.html, static/annual_report/comments.js). Colours come from the report tokens,
   or from currentColor inside the slate bands (the questions and integrity sections), so the bar
   reads on a light page, a dark page and a slate band alike. */
#annual-report .section-comments {
   margin-top: 48px;
   border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
   padding-top: 16px;
   font-size: 14px;
}
#annual-report .section-comments-bar {
   display: flex;
   flex-wrap: wrap;
   align-items: flex-start;
   justify-content: space-between;
   gap: 12px 24px;
}
#annual-report .section-comments-thread {
   flex: 1 1 420px;
   min-width: 0;
}
#annual-report .section-comments-thread summary {
   cursor: pointer;
   font-weight: 600;
   width: fit-content;
}
/* currentColor, not a fixed blue: inside the slate bands a blue ring fell to about 2.3:1. */
#annual-report .section-comments-thread summary:focus-visible,
#annual-report .comment-add:focus-visible {
   outline: 3px solid currentColor;
   outline-offset: 3px;
}
#annual-report .comment-on-selection:focus-visible {
   outline: 3px solid var(--report-blue-text);
   outline-offset: 3px;
}
#annual-report .section-comments-empty {
   margin: 0;
   color: color-mix(in srgb, currentColor 65%, transparent);
}
#annual-report .comment-add {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 7px 14px;
   border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
   border-radius: 999px;
   background: none;
   color: inherit;
   font-size: 13px;
   font-weight: 600;
   white-space: nowrap;
}
#annual-report .comment-add:hover {
   border-color: currentColor;
}
#annual-report .comment-add svg,
#annual-report .comment-on-selection svg {
   width: 16px;
   height: 16px;
   fill: none;
   stroke: currentColor;
   stroke-width: 1.8;
   stroke-linejoin: round;
}
#annual-report .comment-list {
   list-style: none;
   margin: 16px 0 0;
   padding: 0;
   display: grid;
   gap: 12px;
   max-width: 760px;
}
#annual-report .comment {
   padding: 14px 16px;
   border-radius: 10px;
   background: color-mix(in srgb, currentColor 6%, transparent);
}
#annual-report .comment-meta {
   display: flex;
   flex-wrap: wrap;
   gap: 4px 10px;
   margin: 0 0 6px;
   font-size: 13px;
}
#annual-report .comment-meta time {
   color: color-mix(in srgb, currentColor 65%, transparent);
}
#annual-report .comment-quote {
   margin: 0 0 8px;
   padding-inline-start: 10px;
   border-inline-start: 3px solid var(--report-red);
   font-style: italic;
   color: color-mix(in srgb, currentColor 80%, transparent);
}
#annual-report .comment-body {
   margin: 0;
   overflow-wrap: anywhere;
}

/* Replies: one level, under the comment that starts the thread. */
#annual-report .comment-replies {
   list-style: none;
   margin: 12px 0 0;
   padding-block: 0;
   padding-inline: 16px 0;
   border-inline-start: 2px solid color-mix(in srgb, currentColor 18%, transparent);
   display: grid;
   gap: 10px;
}
#annual-report .comment-reply {
   padding: 10px 14px;
   background: color-mix(in srgb, currentColor 4%, transparent);
}
#annual-report .comment-reply-to {
   margin: 0 0 4px;
   font-size: 13px;
   font-weight: 600;
   color: color-mix(in srgb, currentColor 70%, transparent);
}
#annual-report .comment-team {
   display: inline-block;
   padding: 1px 8px;
   border-radius: 999px;
   background: var(--report-red);
   color: #fff;
   font-size: 11px;
   font-weight: 600;
}
#annual-report .comment-reply-button {
   margin-top: 8px;
   padding: 2px 0;
   border: 0;
   background: none;
   color: inherit;
   font-size: 13px;
   font-weight: 600;
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .comment-reply-button:focus-visible {
   outline: 3px solid currentColor;
   outline-offset: 3px;
}

/* The shared form dialog: the city dialog's frame, with room for a form. */
#annual-report #comment-dialog {
   width: min(620px, calc(100% - 32px));
   max-height: calc(100dvh - 32px);
   overflow-y: auto;
   border: 1px solid var(--report-line);
   padding: 37px;
   border-radius: 14px;
   box-shadow: 0 24px 100px #10272c30;
   color: var(--report-ink);
   background: var(--report-page);
}
#annual-report #comment-dialog::backdrop {
   background: #0d253a60;
   backdrop-filter: blur(3px);
}
#annual-report #comment-dialog-title {
   font-size: 24px;
   line-height: 1.2;
   margin-bottom: 20px;
}
#annual-report #comment-form {
   display: grid;
   gap: 16px;
}
#annual-report .comment-field {
   display: grid;
   gap: 6px;
   min-width: 0;
}
#annual-report .comment-field-row {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 16px;
}
#annual-report .comment-field label {
   font-size: 13px;
   font-weight: 600;
}
/* The muted token, not the field-line one: a field's border is its only edge, and needs 3:1. */
#annual-report #comment-form .form-control {
   color: var(--report-ink);
   background: var(--report-page);
   border-color: var(--report-muted);
}
#annual-report #comment-form .form-control[aria-invalid="true"] {
   border-color: var(--report-red);
}
#annual-report .comment-field-help,
#annual-report .comment-as,
#annual-report .comment-privacy {
   margin: 0;
   font-size: 12px;
   color: var(--report-muted);
}
#annual-report .comment-privacy a {
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .comment-field-error {
   margin: 0;
   font-size: 12px;
   font-weight: 600;
   color: var(--report-red-text);
}
#annual-report .comment-quote-preview {
   margin: 0;
   padding: 12px 14px;
   border-radius: 10px;
   background: var(--report-wash);
   border-inline-start: 3px solid var(--report-red);
}
#annual-report .comment-quote-preview figcaption {
   font-size: 12px;
   color: var(--report-muted);
}
#annual-report .comment-quote-preview blockquote {
   margin: 4px 0 0;
   font-style: italic;
   overflow-wrap: anywhere;
}
#annual-report .comment-form-status {
   margin: 0;
   font-size: 13px;
}
#annual-report .comment-form-status:empty {
   display: none;
}
#annual-report .comment-form-status:focus {
   outline: none;
}
#annual-report .comment-form-status.is-success {
   color: var(--report-green-text);
   font-weight: 600;
}
#annual-report .comment-form-status.is-error {
   color: var(--report-red-text);
   font-weight: 600;
}
#annual-report .comment-form-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
}

/* "Comment on this passage", placed under a selection by comments.js. */
#annual-report .comment-on-selection {
   position: absolute;
   z-index: 30;
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 8px 14px;
   border: 0;
   border-radius: 999px;
   background: var(--report-slab);
   color: #fff;
   font-size: 13px;
   font-weight: 600;
   box-shadow: 0 8px 24px #10272c40;
}
#annual-report .comment-on-selection[hidden] {
   display: none;
}

/* Editions: the list beside the citation, and the note on a past edition. */
#annual-report .edition-list {
   margin-top: 28px;
}
#annual-report .edition-list h3 {
   font-size: 20px;
   margin: 0 0 8px;
}
#annual-report .edition-list ul {
   list-style: none;
   margin: 0;
   padding: 0;
   display: flex;
   flex-wrap: wrap;
   gap: 8px 20px;
}
#annual-report .edition-list a {
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .edition-list [aria-current="page"] {
   font-weight: 700;
}
#annual-report .edition-draft {
   margin-inline-start: 6px;
   padding: 1px 8px;
   border-radius: 999px;
   border: 1px solid var(--report-line);
   color: var(--report-muted);
   font-size: 12px;
}
#annual-report .edition-banner {
   margin: 0;
   padding: 12px 24px;
   text-align: center;
   background: var(--report-wash);
   border-bottom: 1px solid var(--report-line);
   font-size: 14px;
}
#annual-report .edition-banner a {
   font-weight: 600;
   text-decoration: underline;
   text-underline-offset: 3px;
}

/* The index in the feedback section. */
#annual-report .comment-index {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
   gap: 18px 40px;
   margin-top: 40px;
   padding-top: 32px;
   border-top: 1px solid var(--report-line);
}
#annual-report .comment-index h3 {
   font-size: 20px;
   margin: 0 0 8px;
}
#annual-report .comment-index p {
   color: var(--report-muted);
   font-size: 14px;
   margin: 0;
}
#annual-report .comment-index ol {
   list-style: none;
   margin: 0;
   padding: 0;
   columns: 2 280px;
   column-gap: 32px;
}
#annual-report .comment-index li {
   display: flex;
   justify-content: space-between;
   gap: 12px;
   padding: 8px 0;
   border-bottom: 1px solid var(--report-line);
   break-inside: avoid;
   font-size: 14px;
}
#annual-report .comment-index a {
   text-decoration: underline;
   text-underline-offset: 3px;
}
#annual-report .comment-count {
   color: var(--report-muted);
   white-space: nowrap;
}
@media (max-width: 800px) {
   #annual-report .comment-field-row,
   #annual-report .comment-index {
      grid-template-columns: minmax(0, 1fr);
   }
   #annual-report #comment-dialog {
      padding: 28px 20px;
   }
}
@media print {
   #annual-report .comment-reply-button,
   #annual-report .comment-add,
   #annual-report .comment-on-selection,
   #annual-report #comment-dialog {
      display: none !important;
   }
}

/* The investment register (templates/annual_report/report.html, static/annual_report/investment.js). */
#annual-report .investment-figures {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 12px;
   margin: 20px 0;
}
#annual-report .investment-figures > div {
   padding: 16px;
   border-radius: 10px;
   background: var(--report-wash);
}
#annual-report .investment-figures dt {
   font-size: 13px;
   font-weight: 400;
   color: var(--report-muted);
}
#annual-report .investment-figures dd {
   margin: 4px 0 0;
   font-size: 28px;
   font-weight: 800;
   letter-spacing: -0.02em;
}
#annual-report .investment-opening {
   white-space: nowrap;
}
#annual-report .investment-register-table .funding-programme small {
   display: block;
   color: var(--report-muted);
}

/* The study map's country layers: shading by the number of records found, never by spending. */
#annual-report .world-map svg.has-country-layer .city-dot {
   display: none;
}
#annual-report .world-map path.layer-bin-1,
#annual-report .map-layer-legend i.layer-bin-1 {
   fill: color-mix(in srgb, var(--report-red) 22%, var(--report-land));
   background: color-mix(in srgb, var(--report-red) 22%, var(--report-land));
}
#annual-report .world-map path.layer-bin-2,
#annual-report .map-layer-legend i.layer-bin-2 {
   fill: color-mix(in srgb, var(--report-red) 45%, var(--report-land));
   background: color-mix(in srgb, var(--report-red) 45%, var(--report-land));
}
#annual-report .world-map path.layer-bin-3,
#annual-report .map-layer-legend i.layer-bin-3 {
   fill: color-mix(in srgb, var(--report-red) 70%, var(--report-land));
   background: color-mix(in srgb, var(--report-red) 70%, var(--report-land));
}
#annual-report .world-map path.layer-bin-4,
#annual-report .map-layer-legend i.layer-bin-4 {
   fill: var(--report-red);
   background: var(--report-red);
}
#annual-report .map-layer-legend {
   padding: 8px 24px 0;
   font-size: 11px;
   color: var(--report-muted);
}
#annual-report .map-layer-legend ul {
   list-style: none;
   margin: 0 0 4px;
   padding: 0;
   display: flex;
   flex-wrap: wrap;
   gap: 4px 14px;
}
#annual-report .map-layer-legend li {
   display: inline-flex;
   align-items: center;
   gap: 6px;
}
#annual-report .map-layer-legend i {
   display: inline-block;
   width: 12px;
   height: 12px;
   border-radius: 3px;
}
#annual-report .map-layer-legend p {
   margin: 0;
}
@media (max-width: 800px) {
   #annual-report .investment-figures {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}
