/* Semantic foreground roles are separate from the federation's brand fills. */
:root { --heading:var(--dark); --link:var(--brand); color-scheme:light; }
.theme-control { display:inline-flex; flex:none; }
.theme-control select { min-height:32px; max-width:126px; padding:5px 8px; border:1px solid #ffffff65; border-radius:5px; font:600 12px var(--font); background:#203366; color:#fff; color-scheme:dark; cursor:pointer; }
.theme-control select:focus-visible { outline:2px solid #fff; outline-offset:3px; }
html[data-theme="dark"] {
  color-scheme:dark;
  --ink:#e7edf8; --heading:#f0f4fc; --muted:#a9b6cc; --link:#a9bcff;
  --bg:#0d1424; --card:#152138; --line:#34425b;
  --brand-50:#1c2a46; --brand-100:#293b5f; --accent-50:#3b202b;
  --sh-1:0 2px 8px #0002; --sh-2:0 12px 32px #0004;
}
html[data-theme="dark"] body { background:var(--bg); }
html[data-theme="dark"] .mainbar { background:var(--card); }

html[data-theme="dark"] .label { color:var(--ink); background:color-mix(in srgb,var(--c,#273d8d) 25%,var(--card)); }
html[data-theme="dark"] .label::before { background:color-mix(in srgb,var(--c,#273d8d) 70%,#fff); }
html[data-theme="dark"] :focus-visible { outline-color:#b6c6ff; }
html[data-theme="dark"] input,html[data-theme="dark"] textarea,html[data-theme="dark"] select { color-scheme:dark; }
html[data-theme="dark"] .portal-pdf { background:var(--card); color:var(--ink); }
html[data-theme="dark"] .content .c-logos li { background:#fff; }
html[data-theme="dark"] .c-hero__label,html[data-theme="dark"] .c-tile::after { color:#fff; }
@media(max-width:640px) {
 .topbar__inner { height:auto; min-height:44px; padding-block:6px; }
 .topbar__right { flex-wrap:wrap; justify-content:flex-end; gap:6px 10px; }
 .theme-control select { min-height:36px; }
}
html[data-theme="dark"] .gitem__date,html[data-theme="dark"] .gitem__count { background:var(--card); }
html[data-theme="dark"] .subpage--v3 { background:#173329; }
html[data-theme="dark"] .fed-others small { color:#ffabb5; }
html[data-theme="dark"] .docs__icon { background:var(--accent-50); color:#ffabb5; }
html[data-theme="dark"] .burger span,html[data-theme="dark"] .burger::before,html[data-theme="dark"] .burger::after { background:var(--heading); }
html[data-theme="dark"] .form-alert { background:var(--accent-50); color:#ffbbc3; }
html[data-theme="dark"] .form-success { background:#173329; color:#b9f3d1; }

.logo__img--dark { display:none; }
html[data-theme="dark"] .logo__img--light { display:none; }
html[data-theme="dark"] .logo__img--dark { display:block; }

.footer__logo--wordmark img { background:transparent; padding:0; border-radius:0; }

/* Partner marks retain their original colours on a neutral, opaque surface. */
html[data-theme="dark"] .sponsor__logo:has(img),
html[data-theme="dark"] .logos__item:has(img),
html[data-theme="dark"] .supplier__logo:has(img) {
  background: #fff;
  border-radius: var(--r-sm);
  filter: none;
  opacity: 1;
}
html[data-theme="dark"] .sponsor__logo:has(img) { padding: 12px 16px; }
html[data-theme="dark"] .sponsor__logo img { max-height: 100%; object-fit: contain; }
