/* Shared by every page of Canada's Contract Ledger (contracts.publicly.ca). Colour and type tokens (light
   and dark), base elements, the skip link and the site navigation come from the Publicly family stylesheet
   (foreignaid.publicly.ca); the accent is this site's own violet. Shared components follow. */
:root{
  --bg:#eef1f5; --surface:#ffffff; --ink:#132030; --muted:#5a6779; --line:#d6dce5; --tint:#e5eaf1;
  --accent:#6a35b0; --accent-ink:#ffffff; --accent-soft:#ece4f7;
  --sel:#1d4f80; --sel-ink:#ffffff; --sel-soft:#dde8f4;
  --warn:#9a5b00; --warn-soft:#fbefd9;
  --bar:#6a35b0; --bar2:#c9b5e6;
  --f-display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --r:6px;
  /* Content width and side padding; the Publicly network bar and footer line up with these. */
  --page-max:1240px; --page-gutter:20px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0e131a; --surface:#151c26; --ink:#e4e9f0; --muted:#93a0b2; --line:#263142; --tint:#1b2431;
  --accent:#b79cf2; --accent-ink:#160d26; --accent-soft:#2a2140;
  --sel:#86b6e6; --sel-ink:#0e131a; --sel-soft:#1b2c40;
  --warn:#e6ad4f; --warn-soft:#33270f;
  --bar:#a98aec; --bar2:#4a3a6e;
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0e131a; --surface:#151c26; --ink:#e4e9f0; --muted:#93a0b2; --line:#263142; --tint:#1b2431;
  --accent:#b79cf2; --accent-ink:#160d26; --accent-soft:#2a2140;
  --sel:#86b6e6; --sel-ink:#0e131a; --sel-soft:#1b2c40;
  --warn:#e6ad4f; --warn-soft:#33270f;
  --bar:#a98aec; --bar2:#4a3a6e;
  color-scheme:dark;
}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}
html{scrollbar-color:var(--line) var(--bg)}
body{background:var(--bg);color:var(--ink);font:0.9375rem/1.5 var(--f-body);margin:0}
::selection{background:var(--accent-soft);color:var(--ink)}
button,select,input,textarea{font:inherit;color:inherit}
input,textarea{caret-color:var(--accent)}
:focus-visible{outline:2px solid var(--sel);outline-offset:2px}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0}
img{max-width:100%}
[hidden]{display:none!important}
main{display:block}
main:focus{outline:none}
a{color:var(--sel);text-underline-offset:2px}
/* Links in text and tables: padding enlarges the tap area to 24px+ without moving the text. */
main a:not([class]),footer a:not([class]){padding-block:5px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-60px;z-index:10;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:var(--r);font-weight:600;text-decoration:none}
.skip:focus{top:8px}

/* Site navigation, identical on every page. Links are at least 28px tall. */
.sitenav{display:flex;flex-wrap:wrap;gap:0 18px;align-items:baseline;padding-top:8px;font:500 0.8125rem/1.6 var(--f-body)}
.sitenav .links{display:flex;gap:0 18px}
.sitenav a{display:inline-block;color:var(--muted);text-decoration:none;padding-block:4px;white-space:nowrap}
.sitenav a:hover{color:var(--ink);text-decoration:underline}
.sitenav a[aria-current]{color:var(--ink);font-weight:600}
.sitenav .brand{font:800 1.0625rem/1.6 var(--f-display);font-stretch:85%;letter-spacing:-.01em;color:var(--ink);margin-right:auto}
.sitenav .brand:hover{color:var(--accent)}
@media (max-width:640px){
  .sitenav .brand{flex-basis:100%}
  .sitenav .links{overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px;max-width:calc(100% + 32px)}
  .sitenav .links::-webkit-scrollbar{display:none}
}

/* ---- layout */
.wrap{max-width:var(--page-max);margin:0 auto;padding-inline:var(--page-gutter);padding-block:0 48px}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.mast{padding-block:28px 22px;border-bottom:3px solid var(--ink)}
.mast h1{font-size:clamp(2rem,5.2vw,3.4rem);font-weight:800;font-stretch:72%;letter-spacing:-.01em;line-height:1;max-width:22ch}
.mast h1 em{font-style:normal;color:var(--accent)}
.mast p{margin:12px 0 0;max-width:72ch;color:var(--muted)}
.mast p.lead{color:var(--ink);font-size:1.0625rem}
.crumbs{font-size:.8125rem;color:var(--muted);margin:0 0 6px}
.crumbs a{color:var(--muted)}
section{margin-top:34px}
section > h2{font-size:1.375rem;font-weight:700;font-stretch:85%;margin-bottom:6px}
section > p{margin:0 0 12px;max-width:72ch}
.hint{font-size:.8125rem;color:var(--muted)}
p.hint{margin:4px 0 12px;max-width:80ch}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:0 36px}
.btn,.cta{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 16px;border-radius:var(--r);font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent}
.cta{background:var(--accent);color:var(--accent-ink)}
.cta:hover{filter:brightness(1.08)}
.btn{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn:hover{border-color:var(--muted)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}

/* statement: the page's main facts as one readable paragraph */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:18px 28px;margin-top:20px}
.fact b{display:block;font:700 clamp(1.5rem,2.6vw,2rem)/1.1 var(--f-display);font-stretch:85%;font-variant-numeric:tabular-nums}
.fact span{display:block;font-size:.875rem;color:var(--muted);margin-top:3px;max-width:30ch}
.fact b a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--muted)}

/* year bars */
.years{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.years li{display:grid;grid-template-columns:70px minmax(0,1fr) 92px 64px;gap:12px;align-items:center;font-size:.8125rem}
.years li.head{font-size:.75rem;color:var(--muted);padding-bottom:2px}
.years .y{font-family:var(--f-mono);color:var(--muted)}
.years .t{height:16px;background:var(--tint);border-radius:3px;overflow:hidden;display:flex}
.years .t i{display:block;height:100%;background:var(--bar)}
.years .t i.tn{background:var(--bar2)}
.years .a,.years .s{font:500 .8125rem var(--f-mono);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.years .s{color:var(--muted)}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.8125rem;color:var(--muted);margin:8px 0 10px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin-right:6px;background:var(--bar)}
.legend i.tn{background:var(--bar2)}

/* tables */
.tablebox{overflow-x:auto;margin-inline:-4px;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:.84375rem}
caption{text-align:left;font-size:.8125rem;color:var(--muted);padding:0 0 8px}
th{font:600 .75rem/1.25 var(--f-body);color:var(--muted);text-align:left;padding:8px;border-bottom:2px solid var(--ink);white-space:nowrap;vertical-align:bottom}
th.r,td.r{text-align:right}
td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
td.rk{font:.75rem var(--f-mono);color:var(--muted);width:2.6em}
td .t{font-weight:600;line-height:1.3;overflow-wrap:anywhere}
td .t a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--muted)}
td .t a:hover{color:var(--sel);border-color:var(--sel)}
td .sub{font-size:.78125rem;color:var(--muted);margin-top:3px;line-height:1.4;overflow-wrap:anywhere}
td .q{font-size:.78125rem;color:var(--ink);margin-top:4px;line-height:1.4;max-width:60ch;overflow-wrap:anywhere}
td .q::before{content:"\201C"}
td .q::after{content:"\201D"}
td.amt{font:500 .875rem var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
td.amt a{color:var(--ink);text-decoration-color:var(--muted)}
td.amt a:hover{color:var(--sel)}
td.amt .sub{font-family:var(--f-body)}
td.nw{white-space:nowrap}
.code{font:500 .75rem var(--f-mono);background:var(--tint);border-radius:3px;padding:1px 5px;white-space:nowrap}
tr.hl td{background:var(--accent-soft)}
.more{margin:12px 0 0;font-size:.875rem}

/* rank lists */
.rank{list-style:none;margin:0;padding:0}
.rank li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:7px 2px;border-bottom:1px solid var(--line)}
.rank .n{font-size:.875rem;line-height:1.35;overflow-wrap:anywhere}
.rank .n a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--muted)}
.rank .n a:hover{color:var(--sel);border-color:var(--sel)}
.rank .a{font:500 .8125rem var(--f-mono);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.rank .a small{color:var(--muted);font-weight:400;margin-left:6px}
.rank .b{grid-column:1/-1;height:5px;background:var(--tint);border-radius:3px;overflow:hidden}
.rank .b i{display:block;height:100%;background:var(--bar)}

/* tabs between ranking pages */
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.tabs a{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:.875rem;background:var(--surface)}
.tabs a:hover{border-color:var(--muted)}
.tabs a[aria-current]{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* notes and definitions */
.note{margin:14px 0 0;padding:12px 16px;border-radius:var(--r);background:var(--warn-soft);color:var(--ink);font-size:.875rem;max-width:90ch}
.note p{margin:0 0 6px}.note p:last-child{margin:0}
.def{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;margin:12px 0;max-width:90ch}
.def p{margin:0 0 8px}.def p:last-child{margin:0}
blockquote{margin:10px 0;padding:2px 0 2px 16px;border-left:1px solid var(--muted);color:var(--ink);max-width:80ch}
blockquote cite{display:block;font-style:normal;font-size:.8125rem;color:var(--muted);margin-top:4px}
dl.codes{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:8px 0;max-width:90ch;font-size:.875rem}
dl.codes dt{font:500 .8125rem var(--f-mono)}
dl.codes dd{margin:0}
.prose{max-width:76ch}
.prose h2{font-size:1.375rem;font-weight:700;font-stretch:85%;margin:34px 0 8px}
.prose h3{font-size:1.0625rem;font-weight:700;margin:22px 0 6px}
.prose p,.prose li{margin:0 0 10px}
.prose ul,.prose ol{padding-left:22px}
.variants{columns:2 260px;column-gap:28px;font-size:.84375rem;margin:6px 0;padding-left:18px}

footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem;display:grid;gap:8px;max-width:100ch}

@media (max-width:640px){
  .wrap{padding-inline:16px}
  .years li{grid-template-columns:58px minmax(0,1fr) 74px;gap:8px}
  .years .s{display:none}
  th,td{padding-inline:5px}
  td.amt{font-size:.8125rem}
  .hm{display:none}
}
