/* ══════════════════════════════════════════════════════════════════════
   APOLLYON WIKI · Vector 2022
   A reproduction of Wikipedia's Vector 2022 skin on the Codex design
   tokens, with light and night themes, three text sizes and two widths
   (the Appearance menu), and Wikipedia's own templates for the article
   furniture: infobox, thumbnails, wikitable, message boxes, Cquote,
   navbox, succession box, gallery, categories.

   The shell markup is written by scripts/site_shell.py; behaviour lives
   in js/wiki.js. Diagram SVGs are drawn light and inverted for night mode,
   as Wikipedia does with its skin-invert class.
   ══════════════════════════════════════════════════════════════════════ */

/* ── Design tokens (Codex) ──────────────────────────────────────────── */
:root {
  --color-base: #202122;
  --color-emphasized: #101418;
  --color-subtle: #54595d;
  --color-placeholder: #72777d;
  --color-disabled: #a2a9b1;
  --color-inverted: #fff;
  --color-progressive: #36c;
  --color-progressive--hover: #3056a9;
  --color-progressive--active: #233566;
  --color-link: #36c;
  --color-link--visited: #6a60b0;
  --color-link--active: #233566;
  --color-link-red: #bf3c2c;
  --color-link-red--visited: #a55858;
  --color-destructive: #bf3c2c;
  --color-success: #14866d;
  --color-warning: #886425;

  --background-color-base: #fff;
  --background-color-neutral-subtle: #f8f9fa;
  --background-color-neutral: #eaecf0;
  --background-color-interactive: #eaecf0;
  --background-color-interactive-subtle: #f8f9fa;
  --background-color-interactive-subtle--hover: #eaecf0;
  --background-color-progressive-subtle: #f1f4fd;
  --background-color-progressive: #36c;
  --background-color-error-subtle: #ffe9e5;
  --background-color-warning-subtle: #fdf2d5;
  --background-color-success-subtle: #dff2eb;
  --background-color-notice-subtle: #eaecf0;
  --background-color-backdrop-dark: rgba(0, 0, 0, .65);

  --border-color-base: #a2a9b1;
  --border-color-subtle: #c8ccd1;
  --border-color-muted: #dadde3;
  --border-color-progressive: #36c;
  --border-color-destructive: #d73333;
  --border-color-divider: #a2a9b1;

  --box-shadow-drop-medium: 0 2px 6px -1px rgba(0, 0, 0, .2);
  --box-shadow-drop-xx-large: 0 30px 90px -20px rgba(0, 0, 0, .3), 0 0 1px 1px rgba(0, 0, 0, .05);

  /* Template colours — the fixed tints enwiki templates use */
  --tpl-infobox-header: #b0c4de;         /* Infobox weapon */
  --tpl-navbox-title: #ccf;
  --tpl-navbox-group: #ddf;
  --tpl-navbox-even: #f7f7f7;
  --tpl-navbox-border: #fdfdfd;
  --tpl-mp-blue-bg: #f5faff;
  --tpl-mp-blue-head: #cedff2;
  --tpl-mp-blue-border: #a3b0bf;
  --tpl-quote-mark: #b2b7f2;
  --tpl-yes: #9eff9e;
  --tpl-partial: #ffffbb;
  --tpl-no: #ffc7c7;
  --tpl-na: #ececec;
  --tpl-orange: #ffe3c7;
  --tpl-ambox-notice: #36c;
  --tpl-ambox-content: #f28500;
  --tpl-ambox-bg: #fbfbfb;
  --tpl-chart-bar: #36c;
  --tpl-accent: #d73333;
  --tpl-accent-text: #b32424;
  --tpl-accent-wash: #fee7e6;
  --tpl-plusminus-pos: #006400;
  --tpl-plusminus-neg: #8b0000;
  --tpl-highlight: #fef6e7;

  --font-family-sans: sans-serif;
  --font-family-serif: 'Linux Libertine', 'Georgia', 'Times', 'Source Serif Pro', serif;
  --font-family-mono: 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace, monospace;
  --font-family-math: 'Latin Modern Math', 'STIX Two Math', 'Cambria Math', 'Times New Roman', serif;

  --font-size-small: .875rem;
  --font-size-medium: 1rem;
  --line-height-medium: 1.6;

  --width-page: 99.75rem;
  --width-column-start: 12.25rem;
  --width-column-end: 15.5rem;
  --height-header: 3.125rem;
  --sticky-offset: 0px;

  /* The old dark design's names, kept so inline styles in pages still theme */
  --bg: var(--background-color-base);
  --bg-1: var(--background-color-neutral-subtle);
  --bg-2: var(--background-color-neutral-subtle);
  --bg-3: var(--background-color-neutral);
  --ink: var(--color-emphasized);
  --ink-2: var(--color-base);
  --ink-3: var(--color-subtle);
  --ink-4: var(--color-placeholder);
  --text-bright: var(--color-emphasized);
  --line: var(--border-color-muted);
  --line-2: var(--border-color-subtle);
  --line-3: var(--border-color-base);
  --red: var(--tpl-accent);
  --red-2: var(--tpl-accent-text);
  --red-wash: var(--tpl-accent-wash);
  --sans: var(--font-family-sans);
  --mono: var(--font-family-sans);     /* the old mono labels become plain text */
  --serif: var(--font-family-serif);
}

/* Night — Codex dark tokens, enwiki's template overrides */
html.skin-theme-clientpref-night {
  color-scheme: dark;
  --color-base: #eaecf0;
  --color-emphasized: #f8f9fa;
  --color-subtle: #a2a9b1;
  --color-placeholder: #8c9399;
  --color-disabled: #54595d;
  --color-inverted: #101418;
  --color-progressive: #88a3e8;
  --color-progressive--hover: #b0c1f0;
  --color-progressive--active: #dbe3f7;
  --color-link: #88a3e8;
  --color-link--visited: #a799cd;
  --color-link--active: #dbe3f7;
  --color-link-red: #fd7865;
  --color-link-red--visited: #e59588;
  --color-destructive: #fd7865;
  --color-success: #4ab690;
  --color-warning: #d4a23a;
  --background-color-base: #101418;
  --background-color-neutral-subtle: #1b1d20;
  --background-color-neutral: #27292d;
  --background-color-interactive: #27292d;
  --background-color-interactive-subtle: #1b1d20;
  --background-color-interactive-subtle--hover: #27292d;
  --background-color-progressive-subtle: #1b223d;
  --background-color-progressive: #88a3e8;
  --background-color-error-subtle: #3c1a19;
  --background-color-warning-subtle: #3a2e14;
  --background-color-success-subtle: #12302a;
  --background-color-notice-subtle: #27292d;
  --border-color-base: #72777d;
  --border-color-subtle: #54595d;
  --border-color-muted: #404244;
  --border-color-progressive: #6485d1;
  --border-color-divider: #72777d;
  --box-shadow-drop-medium: 0 2px 6px -1px rgba(0, 0, 0, .6);
  --box-shadow-drop-xx-large: 0 30px 90px -20px rgba(0, 0, 0, .8), 0 0 1px 1px rgba(255, 255, 255, .1);
  --tpl-infobox-header: #2b3a4d;
  --tpl-navbox-title: #2d2d58;
  --tpl-navbox-group: #22223d;
  --tpl-navbox-even: #17191c;
  --tpl-navbox-border: #101418;
  --tpl-mp-blue-bg: #141c26;
  --tpl-mp-blue-head: #1f3148;
  --tpl-mp-blue-border: #36506e;
  --tpl-quote-mark: #5a61a8;
  --tpl-yes: #1f4d23;
  --tpl-partial: #4a4a1c;
  --tpl-no: #5c2626;
  --tpl-na: #2a2c30;
  --tpl-orange: #4d3419;
  --tpl-ambox-notice: #6485d1;
  --tpl-ambox-content: #d38a2b;
  --tpl-ambox-bg: #17191c;
  --tpl-chart-bar: #6485d1;
  --tpl-accent: #fd7865;
  --tpl-accent-text: #fd7865;
  --tpl-accent-wash: #3c1a19;
  --tpl-plusminus-pos: #4ab690;
  --tpl-plusminus-neg: #fd7865;
  --tpl-highlight: #3a2e14;
}
@media screen and (prefers-color-scheme: dark) {
  html.skin-theme-clientpref-os {
    color-scheme: dark;
    --color-base: #eaecf0;
    --color-emphasized: #f8f9fa;
    --color-subtle: #a2a9b1;
    --color-placeholder: #8c9399;
    --color-disabled: #54595d;
    --color-inverted: #101418;
    --color-progressive: #88a3e8;
    --color-progressive--hover: #b0c1f0;
    --color-progressive--active: #dbe3f7;
    --color-link: #88a3e8;
    --color-link--visited: #a799cd;
    --color-link--active: #dbe3f7;
    --color-link-red: #fd7865;
    --color-link-red--visited: #e59588;
    --color-destructive: #fd7865;
    --color-success: #4ab690;
    --color-warning: #d4a23a;
    --background-color-base: #101418;
    --background-color-neutral-subtle: #1b1d20;
    --background-color-neutral: #27292d;
    --background-color-interactive: #27292d;
    --background-color-interactive-subtle: #1b1d20;
    --background-color-interactive-subtle--hover: #27292d;
    --background-color-progressive-subtle: #1b223d;
    --background-color-progressive: #88a3e8;
    --background-color-error-subtle: #3c1a19;
    --background-color-warning-subtle: #3a2e14;
    --background-color-success-subtle: #12302a;
    --background-color-notice-subtle: #27292d;
    --border-color-base: #72777d;
    --border-color-subtle: #54595d;
    --border-color-muted: #404244;
    --border-color-progressive: #6485d1;
    --border-color-divider: #72777d;
    --box-shadow-drop-medium: 0 2px 6px -1px rgba(0, 0, 0, .6);
    --box-shadow-drop-xx-large: 0 30px 90px -20px rgba(0, 0, 0, .8), 0 0 1px 1px rgba(255, 255, 255, .1);
    --tpl-infobox-header: #2b3a4d;
    --tpl-navbox-title: #2d2d58;
    --tpl-navbox-group: #22223d;
    --tpl-navbox-even: #17191c;
    --tpl-navbox-border: #101418;
    --tpl-mp-blue-bg: #141c26;
    --tpl-mp-blue-head: #1f3148;
    --tpl-mp-blue-border: #36506e;
    --tpl-quote-mark: #5a61a8;
    --tpl-yes: #1f4d23;
    --tpl-partial: #4a4a1c;
    --tpl-no: #5c2626;
    --tpl-na: #2a2c30;
    --tpl-orange: #4d3419;
    --tpl-ambox-notice: #6485d1;
    --tpl-ambox-content: #d38a2b;
    --tpl-ambox-bg: #17191c;
    --tpl-chart-bar: #6485d1;
    --tpl-accent: #fd7865;
    --tpl-accent-text: #fd7865;
    --tpl-accent-wash: #3c1a19;
    --tpl-plusminus-pos: #4ab690;
    --tpl-plusminus-neg: #fd7865;
    --tpl-highlight: #3a2e14;
  }
}

/* Appearance: text size (Small / Standard / Large) */
html.vector-feature-custom-font-size-clientpref-0 { --font-size-medium: .875rem; --line-height-medium: 1.5714; }
html.vector-feature-custom-font-size-clientpref-1 { --font-size-medium: 1rem; --line-height-medium: 1.625; }
html.vector-feature-custom-font-size-clientpref-2 { --font-size-medium: 1.25rem; --line-height-medium: 1.6; }

/* ── Base ───────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html {
  font-size: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
  background-color: var(--background-color-base);
  scroll-padding-top: 8px;
}
@media (min-width: 720px) { html { scroll-padding-top: calc(var(--height-header) + 8px); } }
body {
  margin: 0;
  min-height: 100%;
  font-family: var(--font-family-sans);
  color: var(--color-base);
  background-color: var(--background-color-base);
  overflow-wrap: break-word;
}
img, svg, video { max-width: 100%; }
img { border: 0; vertical-align: middle; }
button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }
abbr[title] { cursor: help; text-decoration: underline dotted; }
::selection { background: #c7d2ee; color: #101418; }
html.skin-theme-clientpref-night ::selection { background: #354aa1; color: #fff; }

a { color: var(--color-link); text-decoration: none; }
a:hover { text-decoration: underline; }
a:active { color: var(--color-link--active); }
a:focus-visible { outline: 2px solid var(--border-color-progressive); outline-offset: 1px; border-radius: 2px; }
a.new, .new > a { color: var(--color-link-red); }
a.new:visited, .new > a:visited { color: var(--color-link-red--visited); }
.mw-parser-output a:not([role="button"]):not(.cdx-button):visited { color: var(--color-link--visited); }
.mw-parser-output a.mw-selflink { color: inherit; font-weight: bold; text-decoration: none; cursor: default; }

.mw-jump-link:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.mw-jump-link:focus { position: absolute; top: 4px; left: 4px; z-index: 1000; padding: 6px 12px; background: var(--background-color-base); border: 1px solid var(--border-color-progressive); }

.nowrap { white-space: nowrap; }
.printfooter { display: none; }

/* ── Icons (Codex, masked so they take currentColor) ────────────────── */
.vector-icon {
  display: inline-block;
  flex-shrink: 0;
  width: 20px; min-width: 20px; height: 20px; min-height: 20px;
  vertical-align: text-bottom;
  background-color: currentColor;
  -webkit-mask-size: 20px 20px; mask-size: 20px 20px;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
}
:root {
  --icon-menu: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M1 3v2h18V3zm0 8h18V9H1zm0 6h18v-2H1z%22/%3E%3C/svg%3E");
  --icon-search: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M12.2 13.6a7 7 0 1 1 1.4-1.4l5.4 5.4-1.4 1.4zM3 8a5 5 0 1 0 10 0A5 5 0 0 0 3 8%22/%3E%3C/svg%3E");
  --icon-close: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z%22/%3E%3Cpath d=%22M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z%22/%3E%3C/svg%3E");
  --icon-expand: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z%22/%3E%3C/svg%3E");
  --icon-collapse: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22m2.5 15.25 7.5-7.5 7.5 7.5 1.5-1.5-9-9-9 9z%22/%3E%3C/svg%3E");
  --icon-next: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M7 1 5.6 2.5 13 10l-7.4 7.5L7 19l9-9z%22/%3E%3C/svg%3E");
  --icon-previous: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22m13 1 1.4 1.5L7 10l7.4 7.5L13 19l-9-9z%22/%3E%3C/svg%3E");
  --icon-listBullet: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M7 15h12v2H7zm0-6h12v2H7zm0-6h12v2H7z%22/%3E%3Ccircle cx=%223%22 cy=%224%22 r=%222%22/%3E%3Ccircle cx=%223%22 cy=%2210%22 r=%222%22/%3E%3Ccircle cx=%223%22 cy=%2216%22 r=%222%22/%3E%3C/svg%3E");
  --icon-history: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z%22/%3E%3Cpath d=%22M10 1a9 9 0 0 0-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1 1 10 17v2a9 9 0 0 0 0-18%22/%3E%3C/svg%3E");
  --icon-wikiText: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M6 3 0 10l6 7h3l-6-7 6-7zm8 0h-3l6 7-6 7h3l6-7z%22/%3E%3C/svg%3E");
  --icon-speechBubbles: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M18 0H2a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2m-4 9a1.5 1.5 0 1 1 1.5-1.5A1.5 1.5 0 0 1 14 9M6 9a1.5 1.5 0 1 1 1.5-1.5A1.5 1.5 0 0 1 6 9m4 0a1.5 1.5 0 1 1 1.5-1.5A1.5 1.5 0 0 1 10 9%22/%3E%3C/svg%3E");
  --icon-appearance: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M10 1a9 9 0 1 0 0 18 9 9 0 0 0 0-18m0 2v14a7 7 0 0 1 0-14%22/%3E%3C/svg%3E");
  --icon-article: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M5 1a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2zm0 3h5v1H5zm0 2h5v1H5zm0 2h5v1H5zm10 7H5v-1h10zm0-2H5v-1h10zm0-2H5v-1h10zm0-2h-4V4h4z%22/%3E%3C/svg%3E");
  --icon-lock: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M16.07 8H15V5s0-5-5-5-5 5-5 5v3H3.93A1.93 1.93 0 0 0 2 9.93v8.15A1.93 1.93 0 0 0 3.93 20h12.14A1.93 1.93 0 0 0 18 18.07V9.93A1.93 1.93 0 0 0 16.07 8M10 16a2 2 0 1 1 2-2 2 2 0 0 1-2 2m3-8H7V5.5C7 4 7 2 10 2s3 2 3 3.5z%22/%3E%3C/svg%3E");
  --icon-linkExternal: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M17 17H3V3h5V1H3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5h-2z%22/%3E%3Cpath d=%22m11 1 3.29 3.29-5.73 5.73 1.42 1.42 5.73-5.73L19 9V1z%22/%3E%3C/svg%3E");
  --icon-info: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M4 10a6 6 0 1 0 12 0 6 6 0 0 0-12 0m6-8a8 8 0 1 1 0 16 8 8 0 0 1 0-16m1 7v5H9V9zm0-1V6H9v2z%22/%3E%3C/svg%3E");
  --icon-fullScreen: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M1 1v6h2V3h4V1zm2 12H1v6h6v-2H3zm14 4h-4v2h6v-6h-2zm0-16h-4v2h4v4h2V1z%22/%3E%3C/svg%3E");
  --icon-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M19 3H1v14h18zM3 14l3.5-4.5 2.5 3L12.5 8l4.5 6z%22/%3E%3C/svg%3E");
  --icon-settings: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M20 11.4V8.6l-2.8-.5a7 7 0 0 0-.7-1.6l1.7-2.3-2-2-2.3 1.7a7 7 0 0 0-1.6-.7L11.4 0H8.6l-.5 2.8a7 7 0 0 0-1.6.7L4.2 1.8l-2 2 1.7 2.3a7 7 0 0 0-.7 1.6L0 8.6v2.8l2.8.5a7 7 0 0 0 .7 1.6l-1.7 2.3 2 2 2.3-1.7a7 7 0 0 0 1.6.7l.5 2.8h2.8l.5-2.8a7 7 0 0 0 1.6-.7l2.3 1.7 2-2-1.7-2.3a7 7 0 0 0 .7-1.6zM10 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6%22/%3E%3C/svg%3E");
  --icon-quotes: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M7 6l1-2H6C3.79 4 2 6.79 2 9v7h7V9H5c0-2 1-3 2-3m7 3c0-2 1-3 2-3l1-2h-2c-2.21 0-4 2.79-4 5v7h7V9z%22/%3E%3C/svg%3E");
  --icon-printer: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M5 1h10v4H5zM3 6h14a2 2 0 0 1 2 2v7h-3v4H4v-4H1V8a2 2 0 0 1 2-2m3 6v5h8v-5zm9-4a1 1 0 1 0 0 2 1 1 0 0 0 0-2%22/%3E%3C/svg%3E");
  --icon-link: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M4.83 15h2.91a4.9 4.9 0 0 1-1.55-2H5a3 3 0 1 1 0-6h3a3 3 0 0 1 2.82 4h2.08a5 5 0 0 0 .1-.94 5 5 0 0 0-5-5H5a5 5 0 0 0-.17 10z%22/%3E%3Cpath d=%22M16.83 5h-2.91a4.9 4.9 0 0 1 1.55 2H17a3 3 0 1 1 0 6h-3a3 3 0 0 1-2.82-4H9.1a5 5 0 0 0-.1.94 5 5 0 0 0 5 5h2.83a5 5 0 0 0 0-10z%22/%3E%3C/svg%3E");
  --icon-download: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M17 12v5H3v-5H1v5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5z%22/%3E%3Cpath d=%22M10 15l5-6h-4V1H9v8H5z%22/%3E%3C/svg%3E");
  --icon-ellipsis: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Ccircle cx=%2210%22 cy=%2210%22 r=%222%22/%3E%3Ccircle cx=%223%22 cy=%2210%22 r=%222%22/%3E%3Ccircle cx=%2217%22 cy=%2210%22 r=%222%22/%3E%3C/svg%3E");
  --img-lock-full: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M6 9V6a4 4 0 0 1 8 0v3%22 fill=%22none%22 stroke=%22%23727272%22 stroke-width=%222.2%22/%3E%3Crect x=%223%22 y=%228.5%22 width=%2214%22 height=%2210.5%22 rx=%221.8%22 fill=%22%23d4a017%22 stroke=%22%23a67c00%22/%3E%3Crect x=%223.8%22 y=%229.3%22 width=%2212.4%22 height=%223%22 rx=%221%22 fill=%22%23f2c94c%22/%3E%3Ccircle cx=%2210%22 cy=%2213.6%22 r=%221.6%22 fill=%22%235a4300%22/%3E%3Cpath d=%22M9.3 14h1.4l.4 3H8.9z%22 fill=%22%235a4300%22/%3E%3C/svg%3E");
}
.mw-ui-icon-menu { -webkit-mask-image: var(--icon-menu); mask-image: var(--icon-menu); }
.mw-ui-icon-search { -webkit-mask-image: var(--icon-search); mask-image: var(--icon-search); }
.mw-ui-icon-close { -webkit-mask-image: var(--icon-close); mask-image: var(--icon-close); }
.mw-ui-icon-expand { -webkit-mask-image: var(--icon-expand); mask-image: var(--icon-expand); }
.mw-ui-icon-collapse { -webkit-mask-image: var(--icon-collapse); mask-image: var(--icon-collapse); }
.mw-ui-icon-next { -webkit-mask-image: var(--icon-next); mask-image: var(--icon-next); }
.mw-ui-icon-previous { -webkit-mask-image: var(--icon-previous); mask-image: var(--icon-previous); }
.mw-ui-icon-listBullet { -webkit-mask-image: var(--icon-listBullet); mask-image: var(--icon-listBullet); }
.mw-ui-icon-history { -webkit-mask-image: var(--icon-history); mask-image: var(--icon-history); }
.mw-ui-icon-wikiText { -webkit-mask-image: var(--icon-wikiText); mask-image: var(--icon-wikiText); }
.mw-ui-icon-speechBubbles { -webkit-mask-image: var(--icon-speechBubbles); mask-image: var(--icon-speechBubbles); }
.mw-ui-icon-appearance { -webkit-mask-image: var(--icon-appearance); mask-image: var(--icon-appearance); }
.mw-ui-icon-article { -webkit-mask-image: var(--icon-article); mask-image: var(--icon-article); }
.mw-ui-icon-lock { -webkit-mask-image: var(--icon-lock); mask-image: var(--icon-lock); }
.mw-ui-icon-linkExternal { -webkit-mask-image: var(--icon-linkExternal); mask-image: var(--icon-linkExternal); }
.mw-ui-icon-info { -webkit-mask-image: var(--icon-info); mask-image: var(--icon-info); }
.mw-ui-icon-fullScreen { -webkit-mask-image: var(--icon-fullScreen); mask-image: var(--icon-fullScreen); }
.mw-ui-icon-image { -webkit-mask-image: var(--icon-image); mask-image: var(--icon-image); }
.mw-ui-icon-settings { -webkit-mask-image: var(--icon-settings); mask-image: var(--icon-settings); }
.mw-ui-icon-quotes { -webkit-mask-image: var(--icon-quotes); mask-image: var(--icon-quotes); }
.mw-ui-icon-printer { -webkit-mask-image: var(--icon-printer); mask-image: var(--icon-printer); }
.mw-ui-icon-link { -webkit-mask-image: var(--icon-link); mask-image: var(--icon-link); }
.mw-ui-icon-download { -webkit-mask-image: var(--icon-download); mask-image: var(--icon-download); }
.mw-ui-icon-ellipsis { -webkit-mask-image: var(--icon-ellipsis); mask-image: var(--icon-ellipsis); }

/* ── Codex buttons, inputs, radios ──────────────────────────────────── */
.cdx-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  box-sizing: border-box; min-width: 32px; min-height: 32px; max-width: 28rem;
  margin: 0; padding: 0 11px;
  border: 1px solid var(--border-color-base); border-radius: 2px;
  background-color: var(--background-color-interactive-subtle);
  color: var(--color-base); font-size: .875rem; font-weight: bold; line-height: 1.4;
  text-decoration: none; cursor: pointer; user-select: none;
  transition: background-color .1s, color .1s, border-color .1s, box-shadow .1s;
}
.cdx-button:hover { background-color: var(--background-color-interactive-subtle--hover); text-decoration: none; }
.cdx-button:focus-visible { outline: 1px solid transparent; border-color: var(--border-color-progressive); box-shadow: inset 0 0 0 1px var(--border-color-progressive); }
.cdx-button--weight-quiet { background-color: transparent; border-color: transparent; }
.cdx-button--weight-quiet:hover { background-color: rgba(0, 24, 73, .027); mix-blend-mode: multiply; }
html.skin-theme-clientpref-night .cdx-button--weight-quiet:hover { background-color: rgba(255, 255, 255, .08); mix-blend-mode: normal; }
.cdx-button--weight-quiet:active { background-color: rgba(0, 24, 73, .082); }
.cdx-button--icon-only { width: 32px; padding: 5px; }
.cdx-button--icon-only > span:not(.vector-icon) {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.cdx-button--action-progressive.cdx-button--weight-primary {
  background-color: var(--background-color-progressive); border-color: var(--background-color-progressive); color: var(--color-inverted);
}
.cdx-button--action-progressive.cdx-button--weight-primary:hover { background-color: var(--color-progressive--hover); border-color: var(--color-progressive--hover); }

.cdx-text-input { position: relative; }
.cdx-text-input__input {
  display: block; width: 100%; min-width: 0; min-height: 32px; margin: 0;
  padding: 4px 8px;
  border: 1px solid var(--border-color-base); border-radius: 2px;
  background-color: var(--background-color-base); color: var(--color-base);
  font-size: .875rem; line-height: 1.4;
  box-shadow: inset 0 0 0 1px transparent;
  transition: border-color .25s, box-shadow .25s;
  -webkit-appearance: none; appearance: none;
}
.cdx-text-input__input::placeholder { color: var(--color-placeholder); opacity: 1; }
.cdx-text-input__input:hover { border-color: var(--border-color-base); }
.cdx-text-input__input:focus { outline: 1px solid transparent; border-color: var(--border-color-progressive); box-shadow: inset 0 0 0 1px var(--border-color-progressive); }
.cdx-text-input__input::-webkit-search-decoration, .cdx-text-input__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.cdx-text-input--has-start-icon .cdx-text-input__input { padding-left: 35px; }
.cdx-text-input__start-icon {
  position: absolute; top: 50%; left: 9px; width: 20px; height: 20px; margin-top: -10px;
  color: var(--color-placeholder); pointer-events: none;
  background-color: currentColor;
  -webkit-mask: var(--icon-search) center / 20px no-repeat; mask: var(--icon-search) center / 20px no-repeat;
}

.cdx-radio { position: relative; display: flex; align-items: flex-start; gap: 8px; margin: 0 0 6px; line-height: 1.4; }
.cdx-radio__input { position: absolute; left: 0; top: 0; width: 20px; height: 20px; margin: 0; opacity: 0; z-index: 1; cursor: pointer; }
.cdx-radio__icon {
  flex: 0 0 auto; width: 20px; height: 20px; border: 1px solid var(--border-color-base); border-radius: 50%;
  background-color: var(--background-color-base); transition: border-color .1s, border-width .1s;
}
.cdx-radio__input:hover + .cdx-radio__icon { border-color: var(--border-color-progressive); }
.cdx-radio__input:checked + .cdx-radio__icon { border-width: 6px; border-color: var(--border-color-progressive); }
.cdx-radio__input:focus-visible + .cdx-radio__icon { box-shadow: 0 0 0 1px var(--background-color-base), 0 0 0 3px var(--border-color-progressive); }
.cdx-radio__label { font-size: .875rem; cursor: pointer; }

/* ── Header ─────────────────────────────────────────────────────────── */
.vector-header-container, .mw-page-container {
  max-width: var(--width-page);
  margin: 0 auto;
  padding: 0 1.5rem;
}
html.vector-feature-limited-width-clientpref-0 .vector-header-container,
html.vector-feature-limited-width-clientpref-0 .mw-page-container { max-width: none; }
.vector-header {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: nowrap;
  min-height: var(--height-header); padding: .5rem 0;
}
.vector-header-start, .vector-header-end { display: flex; align-items: center; }
.vector-header-start { flex: 0 1 auto; min-width: 0; }
.vector-header-end { flex: 1 1 auto; justify-content: flex-end; gap: 12px; margin-left: 12px; }

.mw-logo { display: flex; align-items: center; min-width: 0; margin: 0 .5rem 0 6px; color: var(--color-emphasized); text-decoration: none !important; }
.mw-logo-icon { width: 50px; height: auto; margin-right: 10px; }
.mw-logo-container { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.mw-logo-wordmark {
  font-family: var(--font-family-serif); font-weight: normal; font-variant: small-caps;
  font-size: 1.4rem; line-height: 1; letter-spacing: .03em; color: var(--color-emphasized); white-space: nowrap;
}

/* Search */
.vector-search-box { position: relative; flex: 1 1 auto; max-width: 32.75rem; }
.vector-search-box .search-toggle { display: none; }
.vector-typeahead-search-container { width: 100%; }
.cdx-typeahead-search { position: relative; }
.cdx-search-input { display: flex; }
.cdx-search-input__input-wrapper { flex: 1 1 auto; min-width: 0; }
.cdx-search-input--has-end-button .cdx-text-input__input { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.cdx-search-input__end-button { flex: 0 0 auto; margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.cdx-search-input__end-button:hover { z-index: 1; }

/* User links */
.vector-user-links { display: flex; align-items: center; flex: 0 0 auto; }
.vector-user-links-main { display: flex; align-items: center; gap: 4px; }
.vector-user-links .vector-menu-content-list { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.vector-user-links .mw-list-item { margin: 0; }
.vector-user-links .vector-menu-content-list .mw-list-item a { display: block; padding: 6px 8px; font-size: .875rem; white-space: nowrap; }
#pt-website a::after {
  content: ""; display: inline-block; width: 12px; height: 12px; margin-left: 3px; vertical-align: -1px;
  background-color: currentColor; -webkit-mask: var(--icon-linkExternal) center / 12px no-repeat; mask: var(--icon-linkExternal) center / 12px no-repeat;
}
#vector-appearance-dropdown { display: none; }
html.vector-feature-appearance-pinned-clientpref-0 #vector-appearance-dropdown { display: block; }

/* ── Dropdowns & menus ──────────────────────────────────────────────── */
.vector-dropdown { position: relative; }
.vector-dropdown-checkbox {
  position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%;
  margin: 0; padding: 0; opacity: 0; cursor: pointer;
}
.vector-dropdown-label { display: inline-flex; align-items: center; gap: 4px; color: var(--color-base); font-weight: normal; }
.vector-dropdown-checkbox:hover + .vector-dropdown-label { background-color: rgba(0, 24, 73, .027); }
html.skin-theme-clientpref-night .vector-dropdown-checkbox:hover + .vector-dropdown-label { background-color: rgba(255, 255, 255, .08); }
.vector-dropdown-checkbox:focus-visible + .vector-dropdown-label { border-color: var(--border-color-progressive); box-shadow: inset 0 0 0 1px var(--border-color-progressive); }
.cdx-button--icon-only .vector-dropdown-label-text,
.vector-dropdown-label.cdx-button--icon-only .vector-dropdown-label-text {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.vector-dropdown-content {
  display: none; position: absolute; z-index: 50; top: 100%; left: -1px;
  width: max-content; min-width: 200px; max-width: 320px; max-height: 75vh; overflow: auto;
  padding: 12px 16px 16px;
  background-color: var(--background-color-base); color: var(--color-base);
  border: 1px solid var(--border-color-base); border-radius: 2px;
  box-shadow: var(--box-shadow-drop-medium);
  font-size: .875rem;
}
.vector-dropdown-checkbox:checked ~ .vector-dropdown-content { display: block; }
.vector-dropdown-checkbox:checked + .vector-dropdown-label { background-color: rgba(0, 24, 73, .082); }
html.skin-theme-clientpref-night .vector-dropdown-checkbox:checked + .vector-dropdown-label { background-color: rgba(255, 255, 255, .12); }
.vector-page-tools-dropdown .vector-dropdown-content,
.vector-appearance-dropdown .vector-dropdown-content,
.vector-user-links .vector-dropdown-content { left: auto; right: -1px; }

.vector-menu-heading {
  display: block; margin: 10px 0 0; padding: 4px 0;
  color: var(--color-subtle); font-size: .75rem; font-weight: bold; line-height: 1.4;
  border-bottom: 1px solid var(--border-color-muted);
}
.vector-menu-heading-hidden { display: none; }
.vector-menu-content-list { margin: 0; padding: 0; list-style: none; }
.vector-menu-content-list .mw-list-item { margin: 0; }
.vector-menu-content-list .mw-list-item a { display: block; padding: 6px 0; line-height: 1.3; }
.vector-main-menu .mw-list-item-current a { color: var(--color-base); font-weight: bold; }
.vector-main-menu .mw-list-item-current a:hover { text-decoration: none; cursor: default; }

/* Pinnable header: "move to sidebar" / "hide" */
.vector-pinnable-header {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  margin: 0 0 6px; padding: 5px 0 6px;
  border-bottom: 1px solid var(--border-color-muted);
}
.vector-pinnable-header-label { font-size: .875rem; font-weight: bold; color: var(--color-base); }
.vector-pinnable-header-toggle-button {
  display: none; padding: 1px 6px; margin: 0 -6px 0 0;
  background: transparent; border: 0; border-radius: 2px;
  color: var(--color-progressive); font-size: .75rem; line-height: 1.6; cursor: pointer;
}
.vector-pinnable-header-toggle-button:hover { background-color: var(--background-color-progressive-subtle); }
.vector-pinnable-header-toggle-button:focus-visible { outline: 2px solid var(--border-color-progressive); }
@media (min-width: 1120px) {
  .vector-pinnable-header-pinned .vector-pinnable-header-unpin-button,
  .vector-pinnable-header:not(.vector-pinnable-header-pinned) .vector-pinnable-header-pin-button { display: inline-block; }
}

/* ── Page layout ────────────────────────────────────────────────────── */
.mw-page-container-inner {
  display: grid;
  grid-template: min-content 1fr min-content / minmax(0, 1fr);
  grid-template-areas: 'siteNotice' 'pageContent' 'footer';
  column-gap: 24px;
}
.vector-sitenotice-container { grid-area: siteNotice; }
.vector-column-start { grid-area: columnStart; display: none; }
.mw-content-container { grid-area: pageContent; min-width: 0; }
.mw-footer-container { grid-area: footer; }

@media (min-width: 1120px) {
  html.vector-toc-available.vector-feature-toc-pinned-clientpref-1 .mw-page-container-inner,
  html.vector-feature-main-menu-pinned-clientpref-1 .mw-page-container-inner {
    grid-template: min-content 1fr min-content / var(--width-column-start) minmax(0, 1fr);
    grid-template-areas: 'siteNotice siteNotice' 'columnStart pageContent' 'columnStart footer';
  }
  html.vector-toc-available.vector-feature-toc-pinned-clientpref-1 .vector-column-start,
  html.vector-feature-main-menu-pinned-clientpref-1 .vector-column-start { display: block; }
  html.vector-feature-toc-pinned-clientpref-0 .vector-sticky-pinned-container:has(#mw-panel-toc) { display: none; }
}

.vector-main-menu-container { padding-top: 12px; }
html:not(.vector-feature-main-menu-pinned-clientpref-1) .vector-main-menu-container { display: none; }
.vector-main-menu-container .vector-main-menu { padding: 0 0 24px; font-size: .875rem; }
.vector-main-menu-container .vector-main-menu .vector-menu-heading { color: var(--color-subtle); }

.vector-sticky-pinned-container {
  position: sticky; top: var(--sticky-offset);
  max-height: calc(100vh - var(--sticky-offset));
  overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: var(--border-color-subtle) transparent;
  transition: top .25s;
}
.vector-column-start .vector-sticky-pinned-container { margin-left: -24px; padding-left: 24px; }
.vector-column-start .vector-sticky-pinned-container::after {
  content: ""; display: block; position: sticky; bottom: 0; height: 24px; margin-top: -24px;
  background: linear-gradient(rgba(255, 255, 255, 0), var(--background-color-base));
  pointer-events: none;
}

.mw-body {
  display: grid;
  grid-template: min-content min-content min-content 1fr / minmax(0, 1fr) min-content;
  grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' 'content columnEnd';
  column-gap: 24px;
  padding-top: 0;
}
.vector-page-titlebar { grid-area: titlebar; }
.vector-page-toolbar { grid-area: toolbar; }
.vector-body { grid-area: content; min-width: 0; }
.vector-column-end { grid-area: columnEnd; display: none; }
@media (min-width: 1120px) {
  html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end,
  html.vector-feature-page-tools-pinned-clientpref-1 .vector-column-end { display: block; width: var(--width-column-end); }
}
.vector-column-end .vector-sticky-pinned-container { padding-top: 12px; }
.vector-column-end .vector-pinned-container:empty { display: none; }
.vector-column-end .vector-page-tools, .vector-column-end .vector-appearance { padding: 0 0 20px; font-size: .875rem; }
.vector-column-end .vector-pinned-container + nav .vector-pinned-container { margin-top: 4px; }

/* ── Contents (TOC) ─────────────────────────────────────────────────── */
.vector-toc { font-size: .875rem; }
.vector-column-start .vector-toc { padding: 12px 0 24px; }
.vector-toc-contents, .vector-toc-list { margin: 0; padding: 0; list-style: none; }
.vector-toc-list-item { position: relative; margin: 0; list-style: none; }
.vector-toc-level-2 { padding-left: .75rem; }
.vector-toc-link { display: block; padding: 6px 0; color: var(--color-link); line-height: 1.3; }
.vector-toc-link:hover { text-decoration: underline; }
.vector-toc-text { display: block; }
.vector-toc-numb { display: none; }
.vector-toc-list-item-active > .vector-toc-link,
.vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link { color: var(--color-base); font-weight: bold; }
.vector-toc-list-item-active > .vector-toc-link:hover { text-decoration: none; }
.vector-toc-toggle {
  display: flex; position: absolute; top: 4px; left: -24px;
  width: 22px; min-width: 22px; height: 22px; min-height: 22px; padding: 0; color: var(--color-base);
}
.vector-toc-toggle .vector-icon { width: 12px; min-width: 12px; height: 12px; min-height: 12px; -webkit-mask-size: 12px; mask-size: 12px; transform: rotate(-90deg); transition: transform .2s; }
.vector-toc-list-item-expanded > .vector-toc-toggle .vector-icon { transform: rotate(0); }
.vector-toc-list-item:not(.vector-toc-list-item-expanded) > .vector-toc-list { display: none; }
.client-nojs .vector-toc-list-item > .vector-toc-list { display: block; }
.client-nojs .vector-toc-toggle { display: none; }
.vector-dropdown .vector-toc { width: 280px; max-width: calc(100vw - 32px); padding-left: 24px; margin-left: -8px; }
.vector-dropdown .vector-toc .vector-pinnable-header { margin-left: -24px; padding-left: 24px; }

/* ── Title bar and page toolbar ─────────────────────────────────────── */
.vector-page-titlebar {
  display: flex; align-items: center; gap: 8px;
  box-shadow: 0 1px var(--border-color-divider);
}
.vector-page-titlebar .vector-toc-landmark { display: none; }
html.vector-toc-available.vector-feature-toc-pinned-clientpref-0 .vector-page-titlebar .vector-toc-landmark { display: block; }
@media (max-width: 1119px) {
  html.vector-toc-available .vector-page-titlebar .vector-toc-landmark { display: block; }
}
.mw-first-heading {
  flex: 1 1 auto; min-width: 0; margin: 0; padding: 12px 0 4px;
  font-family: var(--font-family-serif); font-size: 1.8rem; font-weight: normal; line-height: 1.375;
  color: var(--color-emphasized); overflow-wrap: break-word;
}
.mw-first-heading .sub { font: inherit; color: inherit; }
.vector-page-toolbar-container {
  display: flex; justify-content: space-between; align-items: stretch;
  font-size: .875rem; margin-bottom: 1px;
}
#left-navigation { margin-left: -8px; }
#right-navigation { display: flex; margin-right: -8px; }
.vector-menu-tabs .vector-menu-content-list { display: flex; }
.vector-menu-tabs .mw-list-item a {
  display: block; min-height: 40px; padding: 18px 8px 7px;
  color: var(--color-link); white-space: nowrap; text-decoration: none;
}
.vector-menu-tabs .mw-list-item a:hover { color: var(--color-link); box-shadow: inset 0 -2px 0 0 var(--border-color-base); }
.vector-menu-tabs .mw-list-item.selected a,
.vector-menu-tabs .mw-list-item.selected a:visited { color: var(--color-base); box-shadow: inset 0 -2px 0 0 var(--color-base); }
.vector-menu-tabs .mw-list-item.new a { color: var(--color-link-red); }
.vector-page-tools-dropdown > .vector-dropdown-label {
  min-height: 40px; padding: 18px 8px 7px; border: 0; border-radius: 0; background: transparent;
  font-weight: normal; font-size: .875rem; color: var(--color-base);
}
.vector-page-tools-dropdown > .vector-dropdown-label::after {
  content: ""; width: 12px; height: 12px; margin-left: 2px; background-color: currentColor;
  -webkit-mask: var(--icon-expand) center / 12px no-repeat; mask: var(--icon-expand) center / 12px no-repeat;
}
.vector-page-tools-dropdown > .vector-dropdown-checkbox:hover + .vector-dropdown-label { background: transparent; box-shadow: inset 0 -2px 0 0 var(--border-color-base); }
.vector-page-tools-dropdown > .vector-dropdown-checkbox:checked + .vector-dropdown-label { background: transparent; box-shadow: inset 0 -2px 0 0 var(--color-base); }
html.vector-feature-page-tools-pinned-clientpref-1 .vector-page-tools-dropdown { display: none; }
@media (max-width: 1119px) {
  html.vector-feature-page-tools-pinned-clientpref-1 .vector-page-tools-dropdown { display: block; }
}
.vector-page-tools .vector-menu-heading:first-of-type { margin-top: 0; }
.vector-page-tools .mw-list-item.selected a { color: var(--color-base); font-weight: bold; }

/* ── Body ───────────────────────────────────────────────────────────── */
.vector-body {
  position: relative; z-index: 0;
  font-size: var(--font-size-medium); line-height: var(--line-height-medium);
  color: var(--color-base);
}
.vector-body-before-content { overflow: hidden; margin-top: 8px; }
.vector-body-before-content .mw-indicators { float: right; line-height: 1.6; font-size: .875rem; position: relative; z-index: 1; }
.mw-indicator { display: inline-block; }
.mw-indicator a { display: flex; align-items: center; gap: 4px; color: var(--color-subtle); }
.mw-indicator-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.mw-protection-lock { display: inline-block; width: 20px; height: 20px; background: var(--img-lock-full) center / 20px no-repeat; }
#siteSub { display: block; font-size: .8125rem; line-height: 1.6; color: var(--color-subtle); }
#contentSub { margin: 0 0 1.4em 1em; font-size: 84%; line-height: 1.2em; color: var(--color-subtle); }
#contentSub:empty, #mw-content-subtitle:empty { display: none; }
#contentSub a { color: var(--color-link); }
.mw-body-content { margin-top: 0; }
.mw-parser-output { display: flow-root; }

/* Headings */
.mw-body-content h1, .mw-body-content h2, .mw-body-content h3, .mw-body-content h4, .mw-body-content h5, .mw-body-content h6 {
  margin: 0; padding-top: .5em; padding-bottom: .17em;
  color: var(--color-emphasized); background: none; font-weight: normal; overflow: hidden;
}
.mw-body-content h2 {
  margin-top: 1em; margin-bottom: .25em; padding: 0;
  font-family: var(--font-family-serif); font-size: 1.5em; line-height: 1.375;
  border-bottom: 1px solid var(--border-color-divider);
}
.mw-body-content h3 { margin: .3em 0 0; padding-top: .5em; font-size: 1.2em; font-weight: bold; line-height: 1.6; }
.mw-body-content h4 { margin: .3em 0 0; padding-top: .5em; font-size: 100%; font-weight: bold; line-height: 1.6; }
.mw-body-content h2 + h3, .mw-body-content h3 + h4 { margin-top: 0; }
.mw-editsection {
  display: inline-block; margin-left: 1em; vertical-align: baseline;
  font-family: var(--font-family-sans); font-size: .875rem; font-weight: normal; line-height: 1;
  white-space: nowrap; user-select: none; unicode-bidi: isolate;
}
.mw-body-content h3 .mw-editsection, .mw-body-content h4 .mw-editsection { font-size: .75em; }
.mw-editsection-bracket { color: var(--color-subtle); margin: 0 .25em; }
.mw-editsection-bracket:first-child { margin-left: 0; }
.mw-editsection-bracket:last-child { margin-right: 0; }
h3 .hno { font-weight: normal; margin-right: .35em; }
h3 .hno::after { content: "."; }

/* Text */
.mw-body-content p { margin: .5em 0 1em; }
.mw-body-content p:empty { display: none; }
.mw-body-content ul { margin: .3em 0 0 1.6em; padding: 0; list-style-type: disc; }
.mw-body-content ol { margin: .3em 0 0 3.2em; padding: 0; list-style-image: none; }
.mw-body-content li { margin-bottom: .1em; }
.mw-body-content ul + p, .mw-body-content ol + p { margin-top: .75em; }
.mw-body-content dl { margin: .2em 0 .5em; }
.mw-body-content dt { font-weight: bold; }
.mw-body-content dd { margin: 0 0 .1em 1.6em; }
.mw-body-content hr { height: 1px; margin: .2em 0; border: 0; background-color: var(--border-color-base); }
.mw-body-content strong, .mw-body-content b { font-weight: bold; }
.mw-body-content code, .mw-body-content kbd, .mw-body-content samp {
  padding: 1px 4px; border: 1px solid var(--border-color-muted); border-radius: 2px;
  background: var(--background-color-neutral-subtle); color: var(--color-emphasized);
  font-family: var(--font-family-mono); font-size: .875em;
}
.mw-body-content pre {
  padding: 14px; border: 1px solid var(--border-color-muted); background: var(--background-color-neutral-subtle);
  color: var(--color-emphasized); font-family: var(--font-family-mono); font-size: .875em;
  line-height: 1.3; white-space: pre-wrap; overflow-x: auto;
}
.mw-body-content small, .mw-body-content .small { font-size: 85%; }
.mw-body-content sup, .mw-body-content sub { line-height: 1; }
.mw-body-content section { display: block; }

/* External links carry the arrow-out-of-box icon */
.mw-parser-output a[href^="http://"]::after, .mw-parser-output a[href^="https://"]::after,
.vector-body .external::after {
  content: ""; display: inline-block; width: .857em; height: .857em; margin-left: .143em; vertical-align: -.05em;
  background-color: currentColor;
  -webkit-mask: var(--icon-linkExternal) center / contain no-repeat; mask: var(--icon-linkExternal) center / contain no-repeat;
}

/* The old design's kickers and lead styles: gone, the way Wikipedia has none */
.sec-tag { display: none; }
.standfirst, p.lede { font-size: inherit; line-height: inherit; color: inherit; }
.accent { color: inherit; }
.muted, .dim { color: var(--color-subtle); }
.red { color: var(--tpl-accent-text); }
/* The highlighted row of a comparison table, as enwiki marks the subject's own row */
.mw-parser-output td.red, .mw-parser-output .red-cell { color: inherit; font-weight: bold; background-color: var(--tpl-highlight); }
.mono { font-family: var(--font-family-mono); }
.serif { font-family: var(--font-family-serif); }
.mt0 { margin-top: 0 !important; }
.mb0 { margin-bottom: 0 !important; }
.rule { height: 1px; margin: 1em 0; border: 0; background: var(--border-color-muted); }
.up { font-size: .875em; }
.strip-label { margin: 1em 0 .25em; font-weight: bold; }
.mast-brand-lockup, .brand-sep { display: none; }

/* Blockquote — Vector 2022 */
.mw-body-content blockquote {
  overflow: hidden; margin: 1em 0; padding: 8px 32px;
  border-left: 4px solid var(--border-color-muted);
}
.mw-body-content blockquote cite {
  display: block; margin-top: .5em; padding-left: 1.6em;
  font-style: normal; font-size: .95em; line-height: 1.5em;
}
.mw-body-content blockquote cite::before { content: "\2014\00a0"; }

/* ── Infobox (the hero plate) ───────────────────────────────────────── */
.hero-plate {
  float: right; clear: right; width: 22em; max-width: 100%;
  margin: .5em 0 1em 1em; padding: .2em;
  border: 1px solid var(--border-color-base); background-color: var(--background-color-neutral-subtle);
  color: var(--color-base); font-size: 88%; line-height: 1.5em;
}
.hero-plate .infobox-above {
  padding: .2em; margin-bottom: .2em;
  background-color: var(--tpl-infobox-header); color: var(--color-emphasized);
  font-size: 125%; font-weight: bold; line-height: 1.4; text-align: center;
}
.hero-plate > img { display: block; width: 100%; height: auto; cursor: pointer; }
.hero-plate .infobox-caption { padding: .2em .4em .4em; text-align: center; line-height: 1.4; }
.hero-strip { display: block; }
.hero-strip::before {
  content: "Specifications"; display: block; margin: .2em 0; padding: .1em;
  background-color: var(--tpl-infobox-header); font-weight: bold; text-align: center;
}
.hero-strip .hs { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: .6em; padding: .15em .3em; }
.hero-strip .k { flex: 0 0 42%; font-weight: bold; text-align: left; }
.hero-strip .v { flex: 1 1 auto; }
.hero-strip .v .u { margin-left: .2em; }

/* ── Specification sheet (spec-card) — an infobox laid wide ─────────── */
.spec-card {
  clear: both; margin: 1em 0; padding: .2em;
  border: 1px solid var(--border-color-base); background-color: var(--background-color-neutral-subtle);
  font-size: 88%; line-height: 1.5em;
}
.spec-topbar {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 0 .8em;
  padding: .25em .4em; background-color: var(--tpl-infobox-header); color: var(--color-emphasized);
  font-size: 114%; font-weight: bold; text-align: center;
}
.spec-topbar .right { font-size: 88%; font-weight: normal; }
.spec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(212px, 1fr)); gap: .2em; margin-top: .2em; }
.spec-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .spec-grid.cols-2 { grid-template-columns: minmax(0, 1fr); } }
.spec-col { padding: 0; }
.spec-col-title { padding: .1em .4em; background-color: var(--background-color-neutral); font-weight: bold; text-align: center; }
.spec-col .row { display: flex; justify-content: space-between; gap: .8em; padding: .15em .4em; border-bottom: 1px solid var(--border-color-muted); }
.spec-col .row:last-child { border-bottom: 0; }
.spec-col .lbl { font-weight: bold; }
.spec-col .val { text-align: right; }
.spec-col .val.accent { font-weight: bold; color: var(--color-emphasized); }

/* Partnership header inside a spec card */
.partnership-topbar {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .4em 1em;
  padding: .3em .5em; background-color: var(--tpl-infobox-header);
}
.partnership-lockup { display: flex; flex-wrap: wrap; align-items: center; gap: .5em; font-weight: bold; font-size: 114%; }
.partner-entity { display: inline-flex; align-items: center; gap: .4em; }
.partner-logo-ad { height: 12px; width: auto; }
.partner-logo-tonbo { height: 20px; width: auto; }
.partner-x, .partner-dot { color: var(--color-subtle); font-weight: normal; }
.partner-sub { font-weight: normal; font-size: 88%; }
.partnership-topbar .right { font-size: 88%; }

/* ── Thumbnails: figures and diagram plates ─────────────────────────── */
.mw-parser-output figure, .blueprint-plate, .plate-paper {
  display: table; clear: both;
  margin: .6em 0 1.3em; padding: 3px;
  border: 1px solid var(--border-color-subtle); background-color: var(--background-color-neutral-subtle);
  line-height: 1.4;
}
/* Full-width plates are blocks, not tables, so a wide chart inside scrolls instead of widening the page */
.blueprint-plate, .plate-paper { display: block; width: 100%; }
.mw-parser-output figure > img {
  display: block; width: 100%; height: auto;
  border: 1px solid var(--border-color-muted); background-color: var(--background-color-base);
}
/* Photographs float right, as thumbnails do */
.mw-parser-output section > figure:has(> img), .mw-parser-output > figure:has(> img) {
  float: right; clear: right; width: 24em; max-width: 50%; margin: .5em 0 1.3em 1.4em;
}
.mw-parser-output figure figcaption, .blueprint-cap, .plate-paper .pp-cap {
  display: block; padding: 6px 3px 3px; font-size: 88%; line-height: 1.4em; color: var(--color-base); text-align: left;
}
.mw-parser-output figure figcaption b:first-child, .blueprint-cap b:first-child { font-weight: bold; margin-right: .25em; }
.blueprint-head, .plate-paper .pp-head {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 1em;
  padding: 2px 3px 5px; font-size: 88%; line-height: 1.4;
}
.blueprint-head .title { font-weight: bold; color: var(--color-emphasized); }
.blueprint-head .title .glyph { display: none; }
.blueprint-head .scale, .plate-paper .pp-head .scale { color: var(--color-subtle); }
.blueprint-body { border: 1px solid var(--border-color-muted); background: #fff; }
.blueprint-body svg, .blueprint-body img { display: block; width: 100%; height: auto; }
.blueprint-body.pad { padding: 16px; }
.plate-paper .pp-head { font-weight: bold; }
.plate-paper .pp-body { padding: 12px; border: 1px solid var(--border-color-muted); background: var(--background-color-base); }
.mw-file-clickable { cursor: pointer; }

/* Split layouts: text beside a figure */
.split { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1.4em; align-items: start; margin: 1em 0; clear: both; }
.split.even { grid-template-columns: 1fr 1fr; }
.split > figure, .split > .blueprint-plate, .split > .tw { margin: 0 !important; float: none !important; width: auto !important; max-width: none !important; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; margin: 1em 0; clear: both; }
.grid-2 > figure, .grid-2 > .blueprint-plate { margin: 0 !important; float: none !important; width: auto !important; max-width: none !important; }
@media (max-width: 860px) { .grid-2 { grid-template-columns: 1fr; } }

.legend { display: flex; flex-wrap: wrap; gap: .4em 1.4em; margin: .5em 0 0; font-size: 88%; color: var(--color-subtle); }
.legend span { display: inline-flex; align-items: center; gap: .4em; }
.legend i { display: inline-block; width: 22px; height: 0; border-top: 2px solid var(--color-base); }
.legend i.dash { border-top-style: dashed; border-color: var(--color-placeholder); }
.legend i.red { border-color: var(--tpl-accent); }
.legend i.grey { border-color: var(--border-color-base); }
.legend i.swatch { height: 10px; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); }

/* ── Wikitable ──────────────────────────────────────────────────────── */
.tw { clear: both; max-width: 100%; overflow-x: auto; margin: 1em 0; }
.mw-parser-output table {
  margin: 1em 0; border: 1px solid var(--border-color-base); border-collapse: collapse;
  background-color: var(--background-color-neutral-subtle); color: var(--color-base);
  font-size: inherit; line-height: 1.4;
}
.tw > table { margin: 0; }
.mw-parser-output table > caption { padding: .2em .4em; font-weight: bold; text-align: center; caption-side: top; }
.mw-parser-output table th, .mw-parser-output table td { padding: .2em .4em; border: 1px solid var(--border-color-base); vertical-align: top; }
.mw-parser-output table th { background-color: var(--background-color-neutral); text-align: center; font-weight: bold; vertical-align: middle; }
.mw-parser-output table .num, .mw-parser-output table th.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mw-parser-output table.succession-box, .mw-parser-output .navbox table { margin: 0; }

/* Provenance markers — inline, like [citation needed] */
.prov {
  font-size: 80%; font-style: italic; font-weight: normal; line-height: 1; white-space: nowrap;
  vertical-align: super; color: var(--color-base); text-transform: lowercase;
}
.prov::before { content: "["; font-style: normal; }
.prov::after { content: "]"; font-style: normal; }
caption .prov, p.small .prov { vertical-align: baseline; font-size: 88%; }

/* Status pills — the {{Yes}} / {{Partial}} / {{N/A}} table templates */
.pill {
  display: inline-block; padding: 0 .4em; line-height: 1.5;
  border: 1px solid var(--border-color-subtle); border-radius: 2px;
  background-color: var(--tpl-na); color: var(--color-base); font-size: .85em; white-space: nowrap;
}
.pill.fielded { background-color: var(--tpl-yes); }
.pill.dev { background-color: var(--tpl-partial); }
.pill.core { background-color: var(--tpl-mp-blue-head); }
.pill.future { background-color: var(--tpl-na); border-style: dashed; }
.pch-specs .pill { max-width: 100%; white-space: normal; }

/* ── Message boxes (amboxes) ────────────────────────────────────────── */
.note, .callout {
  clear: both; position: relative; margin: 1em 0; padding: .5em .8em .5em 3em;
  border: 1px solid var(--border-color-base); border-left: 10px solid var(--border-color-base);
  background-color: var(--tpl-ambox-bg); font-size: .9375em; line-height: 1.5;
}
.note::before, .callout:not(.eq)::before {
  content: ""; position: absolute; left: .7em; top: .65em; width: 22px; height: 22px;
  background-color: var(--color-subtle);
  -webkit-mask: var(--icon-info) center / 22px no-repeat; mask: var(--icon-info) center / 22px no-repeat;
}
.note.key, .callout { border-left-color: var(--tpl-ambox-notice); }
.note.key::before, .callout::before { background-color: var(--tpl-ambox-notice); }
.note .t { font-weight: bold; }
.note p, .callout p { margin: .3em 0 0; }
.note p:first-child { margin-top: 0; }
.callout .k { font-weight: bold; }
.callout .t { margin: .2em 0; font-family: var(--font-family-serif); font-size: 1.3em; line-height: 1.3; }
.callout p { font-size: 1em; }
/* Equations: display maths, indented */
.callout.eq { padding-left: 1em; border-left-width: 1px; border-color: var(--border-color-subtle); background-color: var(--background-color-neutral-subtle); }
.callout.eq .formula {
  margin: .4em 0 .4em 1.6em; font-family: var(--font-family-math); font-style: italic;
  font-size: 1.15em; line-height: 1.5; color: var(--color-emphasized);
}
.callout.eq .formula b { font-style: normal; font-weight: normal; padding: 0 .15em; }

/* ── Cquote (pull quotes) and quote boxes ───────────────────────────── */
.quotebar { position: relative; clear: both; margin: 1em 0; padding: .2em 3.2em; border: 0; }
.quotebar::before, .quotebar::after {
  position: absolute; font-family: 'Times New Roman', serif; font-size: 3.6em; font-weight: bold; line-height: 1;
  color: var(--tpl-quote-mark);
}
.quotebar::before { content: "\201C"; left: .1em; top: .02em; }
.quotebar::after { content: "\201D"; right: .1em; bottom: -.36em; }
.quotebar p { margin: 0; font-size: 1.1em; line-height: 1.5; color: var(--color-base); }
.quotebar .src { margin-top: .4em; text-align: right; font-size: .9em; }
.quotebar .src::before { content: "\2014\00a0"; }

/* ── Cross references: "See also" ───────────────────────────────────── */
.xref { clear: both; margin: .5em 0 1em; }
.xref .t { font-weight: bold; margin-bottom: .2em; }
.xref .items { margin-left: 1.6em; }
.xref .items a { display: list-item; list-style-type: disc; margin-bottom: .1em; }
.xref .items a span { display: none; }

/* ── Portal boxes: cards ────────────────────────────────────────────── */
.cards { clear: both; display: grid; grid-template-columns: repeat(auto-fit, minmax(15em, 1fr)); gap: .75em; margin: 1em 0; }
.card {
  display: flex; flex-direction: column;
  border: 1px solid var(--tpl-mp-blue-border); background-color: var(--tpl-mp-blue-bg);
  font-size: .9375em; line-height: 1.5;
}
.card .kicker { order: 1; margin: 0 .6em; font-size: .85em; color: var(--color-subtle); }
.card h3 {
  order: 0; margin: 0 0 .3em; padding: .15em .5em;
  background-color: var(--tpl-mp-blue-head); border-bottom: 1px solid var(--tpl-mp-blue-border);
  font-family: var(--font-family-serif); font-size: 1.1em; font-weight: bold; line-height: 1.4;
}
.card h3 a { color: var(--color-emphasized); }
.card p { order: 2; flex-grow: 1; margin: .3em .6em .5em; }
.card .foot {
  order: 3; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2em .8em;
  margin: 0 .6em .5em; font-size: .85em; color: var(--color-subtle);
}
.card .foot a { white-space: nowrap; }
.card > *:not(h3):not(.kicker):not(p):not(.foot) { order: 2; margin-left: .6em; margin-right: .6em; }

/* Stat strips: a one-row statistics table */
/* Flex, not grid: cells on a short last row grow to fill it, so a wrapped strip never shows an empty cell */
.stats {
  clear: both; display: flex; flex-wrap: wrap;
  gap: 1px; margin: 1em 0; border: 1px solid var(--border-color-base); background-color: var(--border-color-base);
}
.stat { flex: 1 1 10.5em; padding: .4em .6em; background-color: var(--background-color-neutral-subtle); text-align: center; line-height: 1.4; }
.stat .n { font-family: var(--font-family-serif); font-size: 1.5em; font-weight: bold; color: var(--color-emphasized); line-height: 1.3; }
.stat .d { font-size: .875em; }
.stat .d .muted, .stat .d span { display: block; margin-top: .1em; font-weight: normal; color: var(--color-subtle); }

/* Fact box on the main page: four statistics */
.factbox { clear: both; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 1em 0; border: 1px solid var(--border-color-base); background: var(--border-color-base); }
.factbox .fb { padding: .4em .6em; background: var(--background-color-neutral-subtle); font-size: .9em; line-height: 1.4; }
.factbox .fb .k { font-weight: bold; }
.factbox .fb .v small { display: block; color: var(--color-subtle); }
@media (max-width: 900px) { .factbox { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .factbox { grid-template-columns: 1fr; } }

/* Product line: a list of wikitable-like rows */
.product-stack { clear: both; margin: 1em 0; display: flex; flex-direction: column; gap: .75em; }
.product-class-box { border: 1px solid var(--border-color-base); background: var(--background-color-neutral-subtle); }
.product-class-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2em 1em; padding: .2em .5em; background: var(--background-color-neutral); font-weight: bold; }
.product-class-head .tag { margin-right: .4em; }
.product-class-head .tag::after { content: ":"; }
.product-class-head .meta { font-weight: normal; color: var(--color-subtle); }
.product-card-horizontal { display: grid; grid-template-columns: 15em 1fr; gap: 1em; padding: .5em; line-height: 1.5; }
.product-card-horizontal + .product-card-horizontal { border-top: 1px solid var(--border-color-muted); }
.pch-kicker { font-size: .85em; color: var(--color-subtle); }
.pch-title { margin: 0 !important; padding: 0 !important; font-family: var(--font-family-serif); font-size: 1.15em !important; font-weight: bold; }
.pch-specs { display: flex; flex-direction: column; gap: .2em; margin-top: .2em; font-size: .9em; }
.pch-desc { font-size: .95em; }
.pch-desc p { margin: 0 0 .4em; }
@media (max-width: 700px) { .product-card-horizontal { grid-template-columns: 1fr; gap: .3em; } }

/* Timelines: a dated list */
.timeline { position: relative; margin: 1em 0; padding-left: 1.4em; border-left: 2px solid var(--border-color-base); }
.tl-item { position: relative; margin-bottom: .8em; line-height: 1.5; }
.tl-item::before {
  content: ""; position: absolute; left: calc(-1.4em - 6px); top: .45em; width: 10px; height: 10px;
  border: 2px solid var(--background-color-base); border-radius: 50%; background: var(--color-progressive);
}
.timeline.planned { border-left-style: dashed; }
.timeline.planned .tl-item::before { background: var(--background-color-base); border-color: var(--color-progressive); }
.tl-when { font-weight: bold; }
.tl-what { font-weight: bold; color: var(--color-emphasized); }
.tl-when + .tl-what { font-weight: normal; }
.tl-note { font-size: .9em; color: var(--color-subtle); }

/* Tag strip: an hlist */
.tags { clear: both; margin: .5em 0 1em; line-height: 1.8; }
.tags span { display: inline; }
.tags span:not(:last-child)::after { content: "\00a0\00b7\0020"; font-weight: bold; }

/* Engineering-loop leaves: a small grid table */
.leaves { clear: both; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: .5em 0 1em; border: 1px solid var(--border-color-base); background: var(--border-color-base); }
.leaves .lv { padding: .3em .5em; background: var(--background-color-neutral-subtle); line-height: 1.4; }
.leaves .k { font-weight: bold; }
.leaves .v { font-size: .9em; color: var(--color-subtle); }
@media (max-width: 860px) { .leaves { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .leaves { grid-template-columns: 1fr; } }

.progline { clear: both; display: flex; flex-wrap: wrap; align-items: baseline; gap: .3em .5em; margin: .5em 0 1em; padding: .4em .6em; border: 1px solid var(--border-color-subtle); background: var(--background-color-neutral-subtle); line-height: 1.5; }
.progline i { font-style: normal; color: var(--color-subtle); }
.progline .dur { margin-left: auto; font-weight: bold; }

/* Industrial stack */
.stack { clear: both; margin: 1em 0; border: 1px solid var(--border-color-base); background: var(--background-color-neutral-subtle); line-height: 1.5; }
.stack-owned { padding: .5em .7em; background: var(--tpl-mp-blue-bg); border-bottom: 1px solid var(--border-color-base); }
.stack-t { font-weight: bold; }
.stack-items { font-size: .95em; }
.stack-join { padding: .2em .7em; background: var(--background-color-neutral); text-align: center; font-size: .85em; font-weight: bold; border-bottom: 1px solid var(--border-color-base); }
.stack-partners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border-color-base); border-bottom: 1px solid var(--border-color-base); }
.sp { padding: .4em .6em; background: var(--background-color-neutral-subtle); }
.sp-t { font-size: .85em; color: var(--color-subtle); }
.sp-n { font-weight: bold; }
.sp-d { font-size: .9em; }
.stack-base { padding: .5em .7em; }
@media (max-width: 860px) { .stack-partners { grid-template-columns: 1fr; } }

.chain { clear: both; display: grid; justify-items: start; gap: .2em; margin: 1em 0; padding: .5em .8em; border: 1px solid var(--border-color-subtle); background: var(--background-color-neutral-subtle); }
.chain i { font-style: normal; color: var(--color-subtle); }

.drawer { clear: both; margin: 0 0 1em; border: 1px solid var(--border-color-base); background: var(--background-color-neutral-subtle); }
.drawer summary { cursor: pointer; padding: .3em .6em; font-weight: bold; background: var(--background-color-neutral); }
.drawer ul { margin: .5em .6em .5em 2.2em; }

/* Cash-flow diagram */
.flow { clear: both; display: grid; grid-template-columns: 1.15fr 40px 1fr; margin: 1em 0; border: 1px solid var(--border-color-base); background: var(--background-color-neutral-subtle); line-height: 1.45; }
.flow .fl-src { display: grid; grid-template-rows: repeat(3, 1fr); gap: 1px; background: var(--border-color-base); }
.flow .fl-box { padding: .5em .7em; background: var(--background-color-neutral-subtle); }
.flow .fl-box b { display: block; }
.flow .fl-box span { display: block; font-size: .85em; color: var(--color-subtle); }
.flow .fl-box p { margin: .3em 0 0; font-size: .9em; }
.flow .fl-join { display: flex; align-items: center; justify-content: center; border-left: 1px solid var(--border-color-base); border-right: 1px solid var(--border-color-base); background: var(--background-color-neutral); font-size: 1.2em; }
.flow .fl-dest { display: flex; flex-direction: column; justify-content: center; padding: .7em .9em; background: var(--tpl-mp-blue-bg); }
.flow .fl-dest b { font-family: var(--font-family-serif); font-size: 1.3em; }
.flow .fl-dest span { font-size: .85em; color: var(--color-subtle); }
.flow .fl-dest .funded { margin-top: .4em; font-weight: bold; color: var(--color-success); }
.flow .fl-dest p { margin: .5em 0 0; font-size: .9em; }
@media (max-width: 680px) {
  .flow { grid-template-columns: 1fr; }
  .flow .fl-join { border: 0; border-top: 1px solid var(--border-color-base); border-bottom: 1px solid var(--border-color-base); padding: .2em 0; }
  .flow .fl-join span { transform: rotate(90deg); }
}

/* Exchange rows and capital bars: horizontal bar charts */
.exch, .capbars { clear: both; margin: 1em 0; border: 1px solid var(--border-color-base); background: var(--background-color-neutral-subtle); line-height: 1.4; }
.exch .ex-head { padding: .25em .6em; background: var(--background-color-neutral); font-weight: bold; text-align: center; }
.exch .ex-row { display: grid; grid-template-columns: 15em 1fr 7em; gap: .8em; align-items: center; padding: .3em .6em; border-top: 1px solid var(--border-color-muted); }
.exch .ex-k b { color: var(--color-emphasized); }
.exch .ex-bar, .capbars .cb-t { height: 12px; background: var(--background-color-base); border: 1px solid var(--border-color-subtle); }
.exch .ex-bar i, .capbars .cb-t i { display: block; height: 100%; background: var(--border-color-base); }
.exch .ex-row.sam .ex-bar i, .capbars .cb-row.self .cb-t i { background: var(--tpl-accent); }
.exch .ex-v, .capbars .cb-v { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.exch .ex-note { padding: .4em .6em; border-top: 1px solid var(--border-color-muted); font-size: .9em; color: var(--color-subtle); }
.capbars .cb-row { display: grid; grid-template-columns: 10em 1fr 6em; gap: .8em; align-items: center; padding: .3em .6em; }
.capbars .cb-row + .cb-row { border-top: 1px solid var(--border-color-muted); }
.capbars .cb-row.self .cb-n, .capbars .cb-row.self .cb-v { font-weight: bold; color: var(--color-emphasized); }
@media (max-width: 640px) { .exch .ex-row { grid-template-columns: 1fr 6em; } .exch .ex-bar { display: none; } }

/* Roadmap (Gantt) on the paper plate */
.gantt { overflow-x: auto; }
.gantt-inner { min-width: 620px; }
.g-head, .g-line { display: grid; grid-template-columns: 128px repeat(5, 1fr); gap: 1px; }
.g-head { padding-bottom: .3em; font-size: .85em; font-weight: bold; color: var(--color-subtle); }
.g-line { padding: .3em 0; border-top: 1px solid var(--border-color-muted); align-items: center; }
.g-name { font-weight: bold; font-size: .9em; padding-right: .5em; }
.g-name small { display: block; font-weight: normal; color: var(--color-subtle); }
.g-track { grid-column: span 5; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
.g-bar { display: flex; align-items: center; min-height: 24px; padding: 1px 7px; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); font-size: .8em; line-height: 1.3; }
.g-bar.on { background: var(--tpl-chart-bar); border-color: var(--tpl-chart-bar); color: #fff; }
.g-bar.red { background: var(--tpl-accent); border-color: var(--tpl-accent); color: #fff; }
.g-bar.plan { background: transparent; border-style: dashed; color: var(--color-subtle); }
html.skin-theme-clientpref-night .g-bar.on, html.skin-theme-clientpref-night .g-bar.red { color: #101418; }
.g-legend { display: flex; flex-wrap: wrap; gap: .4em 1.2em; margin-top: .6em; font-size: .85em; color: var(--color-subtle); }
.g-legend i { display: inline-block; width: 20px; height: 10px; margin-right: 5px; vertical-align: -1px; }
.g-legend i.dark { background: var(--tpl-chart-bar); }
.g-legend i.red { background: var(--tpl-accent); }
.g-legend i.plan { border: 1px dashed var(--color-subtle); }

/* Export pipeline and channels */
.export-pipeline-rail { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--border-color-base); border-bottom: 1px solid var(--border-color-base); }
.export-pipeline-node { padding: .5em .6em; background: var(--background-color-neutral-subtle); line-height: 1.4; }
.export-pipeline-node.accent { background: var(--tpl-mp-blue-bg); }
.export-pipeline-step { display: flex; justify-content: space-between; font-size: .8em; color: var(--color-subtle); }
.export-pipeline-title { font-weight: bold; }
.export-pipeline-desc { margin: .2em 0 0; font-size: .9em; }
.export-channels-section { padding: .6em; border-bottom: 1px solid var(--border-color-base); }
.export-channels-header { margin-bottom: .4em; font-weight: bold; }
.export-channels-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5em; }
.export-channel-card { padding: .5em .6em; border: 1px solid var(--tpl-mp-blue-border); background: var(--tpl-mp-blue-bg); line-height: 1.45; }
.export-channel-card.highlight { border-color: var(--border-color-progressive); }
.export-channel-pill { font-size: .8em; color: var(--color-subtle); }
.export-channel-name { font-weight: bold; }
.export-channel-body { margin: .2em 0 0; font-size: .9em; }
.export-flywheel-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border-color-base); }
.export-flywheel-block { padding: .5em .6em; background: var(--background-color-neutral-subtle); line-height: 1.45; }
.export-flywheel-tag { font-weight: bold; font-size: .85em; }
.export-flywheel-val { font-size: .95em; }
@media (max-width: 860px) {
  .export-pipeline-rail, .export-channels-grid, .export-flywheel-footer { grid-template-columns: 1fr; }
}

/* Brand badges and seals: logos drawn white for the old dark ground */
.registry-brand-badge { display: flex; align-items: center; gap: .8em; margin: 0 0 1em; padding: .4em .6em; border: 1px solid var(--border-color-subtle); background: var(--background-color-neutral-subtle); }
.registry-brand-badge .reg-mark { height: 20px; width: auto; }
.registry-brand-badge .reg-text { height: 16px; width: auto; }
.registry-brand-badge .brand-sep { display: block; width: 1px; height: 18px; background: var(--border-color-base); }
.manifesto-seal { display: flex; align-items: center; gap: .6em; clear: both; margin: 1.5em 0 1em; padding-top: .8em; border-top: 1px solid var(--border-color-muted); }
.manifesto-seal img { height: 14px; width: auto; }
.manifesto-seal span { font-size: .85em; font-style: italic; color: var(--color-subtle); }
/* Brand logos: white source files, black in light mode via filter, white in night mode */
.mw-parser-output img[src*="-white.png"],
.mw-logo-icon,
#footer-copyrightico img,
.partner-logo-ad { filter: brightness(0); }
html.skin-theme-clientpref-night .mw-parser-output img[src*="-white.png"],
html.skin-theme-clientpref-night .mw-logo-icon,
html.skin-theme-clientpref-night #footer-copyrightico img,
html.skin-theme-clientpref-night .partner-logo-ad { filter: none; }
@media screen and (prefers-color-scheme: dark) {
  html.skin-theme-clientpref-os .mw-parser-output img[src*="-white.png"],
  html.skin-theme-clientpref-os .mw-logo-icon,
  html.skin-theme-clientpref-os #footer-copyrightico img,
  html.skin-theme-clientpref-os .partner-logo-ad { filter: none; }
}

/* Testimonials: quote boxes */
.testimonial-grid { clear: both; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1em; margin: 1em 0; }
.testimonial-card { display: flex; flex-direction: column; padding: .6em .8em; border: 1px solid var(--border-color-base); background: var(--background-color-neutral-subtle); font-size: 88%; line-height: 1.5; }
.testimonial-header { display: flex; align-items: flex-start; gap: .7em; margin-bottom: .5em; }
.testimonial-avatar { width: 56px; height: 56px; object-fit: cover; border: 1px solid var(--border-color-subtle); flex-shrink: 0; }
.testimonial-meta { display: flex; flex-direction: column; min-width: 0; }
.testimonial-author { font-weight: bold; color: var(--color-emphasized); }
.testimonial-role { color: var(--color-subtle); }
.testimonial-tag { font-size: .9em; font-style: italic; color: var(--color-subtle); }
.mw-body-content .testimonial-quote { flex-grow: 1; margin: 0 0 .6em; padding: 0; border: 0; font-size: 1.05em; }
.testimonial-foot { display: flex; justify-content: space-between; gap: 1em; padding-top: .3em; border-top: 1px solid var(--border-color-muted); color: var(--color-subtle); }
@media (max-width: 760px) { .testimonial-grid { grid-template-columns: 1fr; } }

/* Team: a gallery */
.team-grid { clear: both; display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: .5em; margin: 1em 0; }
.team-grid:has(> .founder) { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.person { padding: .5em; border: 1px solid var(--border-color-muted); background: var(--background-color-neutral-subtle); text-align: center; font-size: 88%; line-height: 1.4; }
.person img { display: block; width: 150px; max-width: 100%; height: auto; aspect-ratio: 1 / 1; margin: 0 auto .4em; object-fit: cover; object-position: 50% 18%; border: 1px solid var(--border-color-subtle); background: var(--background-color-neutral); }
.person .pn { font-weight: bold; color: var(--color-emphasized); }
.person .pr { color: var(--color-subtle); font-style: italic; }
.person .pd { margin-top: .2em; }
.person.founder img { width: 170px; }
.person.open { display: flex; flex-direction: column; justify-content: center; }
.person.open .pn { font-size: 1.6em; color: var(--color-subtle); }

/* ── The war timeline and hanging case files (landing page) ─────────── */
.war-timeline { clear: both; margin: 1em 0 0; padding: 30px 26px 14px; border: 1px solid var(--border-color-base); background: var(--background-color-neutral-subtle); }
.war-rail { position: relative; height: 72px; margin: 0 6px; }
.war-spine { position: absolute; left: 0; right: 0; top: 34px; height: 1px; background: var(--border-color-base); }
.war-dot { position: absolute; top: 34px; transform: translate(-50%, -50%); background: none; border: none; cursor: pointer; padding: 12px; }
.war-dot .pip { display: block; width: 11px; height: 11px; margin: 0 auto; border: 1px solid var(--color-subtle); border-radius: 50%; background: var(--background-color-base); transition: transform .15s ease; }
.war-dot:hover .pip { border-color: var(--color-emphasized); transform: scale(1.25); }
.war-dot.active .pip { background: var(--tpl-accent); border-color: var(--tpl-accent); transform: scale(1.35); }
.war-dot .yr { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); font-size: 11px; color: var(--color-subtle); white-space: nowrap; }
.war-dot.active .yr { color: var(--color-emphasized); font-weight: bold; }
.war-dot .nm { position: absolute; top: 22px; left: 50%; transform: translateX(-50%); font-size: 10px; letter-spacing: .02em; color: var(--color-subtle); white-space: nowrap; }
.war-dot.active .nm { color: var(--tpl-accent-text); font-weight: bold; }
.war-dot.flip .yr { display: none; }
.war-dot.flip .nm { top: auto; bottom: 62px; }
.war-dot:focus-visible { outline: 2px solid var(--border-color-progressive); border-radius: 2px; }
.war-scale { display: flex; justify-content: space-between; font-size: 11px; color: var(--color-subtle); margin-top: 2px; }
.war-panel { padding: .6em .9em .8em; border: 1px solid var(--border-color-base); border-top: 3px solid var(--tpl-accent); background: var(--background-color-base); line-height: 1.55; }
.war-panel .wk { font-size: .85em; color: var(--color-subtle); }
.war-panel h3 { margin: 0 0 .2em !important; padding: 0 !important; font-family: var(--font-family-serif); font-size: 1.35em !important; font-weight: normal !important; }
.war-panel p { margin: .3em 0; }
.war-chips { display: flex; flex-wrap: wrap; gap: .3em; margin-top: .5em; }
.war-chips a { display: inline-block; padding: .1em .5em; border: 1px solid var(--border-color-base); border-radius: 2px; background: var(--background-color-neutral-subtle); font-size: .875em; }
.war-chips a:hover { background: var(--background-color-progressive-subtle); text-decoration: none; }
.war-files { position: relative; height: 152px; margin-top: 4px; border-bottom: 3px solid var(--tpl-accent); }
.war-threads { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.war-threads line { stroke: var(--border-color-subtle); stroke-width: 1; vector-effect: non-scaling-stroke; }
.war-threads line.active { stroke: var(--tpl-accent); }
.war-file {
  position: absolute; bottom: 0; width: 12%; height: 118px; z-index: 1;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 8px 7px 7px; text-align: left; cursor: pointer;
  border: 1px solid var(--border-color-base); border-bottom: none; border-radius: 2px 2px 0 0;
  background: var(--background-color-base); color: var(--color-base); font-family: var(--font-family-sans);
  transition: border-color .15s ease, background-color .15s ease;
}
.war-file:hover { border-color: var(--color-subtle); background: var(--background-color-interactive-subtle); }
.war-file.active { border-color: var(--tpl-accent); background: var(--tpl-accent-wash); }
.war-file .fy { font-size: 11px; color: var(--color-subtle); }
.war-file.active .fy { color: var(--color-emphasized); }
.war-file .fn { font-size: 11px; font-weight: bold; line-height: 1.35; color: var(--color-emphasized); }
.war-file .fc { font-size: 10px; color: var(--tpl-accent-text); }
@media (max-width: 680px) {
  .war-files { height: auto; display: flex; gap: 8px; overflow-x: auto; padding-bottom: 12px; }
  .war-threads { display: none; }
  .war-file { position: static; width: auto; min-width: 108px; flex: 0 0 auto; border-bottom: 1px solid var(--border-color-base); }
  .war-file.active { border-bottom-color: var(--tpl-accent); }
  .war-dot .nm { display: none; }
}

/* ── The full record: list entries, severity cells ──────────────────── */
.dep-ep { clear: both; margin: .8em 0; padding: 0 0 .8em; border-bottom: 1px solid var(--border-color-muted); line-height: 1.55; }
.dep-ep-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .3em 1em; font-size: .875em; color: var(--color-subtle); }
.dep-ep h4 { margin: .2em 0 .1em !important; padding: 0 !important; font-size: 1.05em; }
.dep-ep-meta { margin-bottom: .3em; font-size: .9em; color: var(--color-subtle); }
.dep-ep-meta strong { color: var(--color-base); }
.dep-ep-meta .rb { color: var(--tpl-accent-text); }
.dep-ep p { margin: .3em 0; }
.dep-ep p.conseq { font-style: italic; }
.dep-src { margin-top: .3em; font-size: .85em; color: var(--color-subtle); word-break: break-word; }
.dep-badge { display: inline-block; padding: 0 .4em; border: 1px solid var(--border-color-subtle); border-radius: 2px; background: var(--tpl-na); color: var(--color-base); font-size: .85em; white-space: nowrap; }
.dep-badge.sev-5 { background: var(--tpl-no); }
.dep-badge.sev-4 { background: var(--tpl-orange); }
.dep-badge.sev-3 { background: var(--tpl-partial); }

.trap-rail-container { position: relative; padding: .8em .6em .6em; background: var(--background-color-neutral-subtle); border-bottom: 1px solid var(--border-color-base); }
.trap-rail-nodes { display: flex; justify-content: space-between; position: relative; width: 100%; }
.trap-node { flex: 1; position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.trap-node:not(:last-child)::after { content: ""; position: absolute; top: 4px; left: 50%; width: 100%; height: 1px; background: var(--border-color-base); z-index: 0; }
.trap-node-pip { position: relative; z-index: 1; width: 9px; height: 9px; margin-bottom: 6px; border: 1px solid var(--color-subtle); border-radius: 50%; background: var(--background-color-base); }
.trap-node-pip.active { background: var(--tpl-accent); border-color: var(--tpl-accent); }
.trap-node-yr { font-size: .85em; font-weight: bold; }
.trap-node-yr.active, .trap-node-lbl.active { color: var(--tpl-accent-text); }
.trap-node-lbl { font-size: .75em; color: var(--color-subtle); }
.trap-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border-color-base); }
@media (max-width: 560px) { .trap-grid { grid-template-columns: minmax(0, 1fr); } }
.trap-cell { display: flex; flex-direction: column; padding: .6em .8em; background: var(--background-color-neutral-subtle); line-height: 1.5; }
.trap-cell-tag { font-size: .8em; color: var(--color-subtle); }
.trap-cell h4 { margin: .1em 0 .2em !important; padding: 0 !important; }
.trap-cell-meta { font-size: .85em; color: var(--color-subtle); margin-bottom: .3em; }
.trap-cell p { flex-grow: 1; margin: 0 0 .5em; font-size: .95em; }
.trap-cell-conseq { padding: .3em .5em; border-left: 3px solid var(--border-color-base); background: var(--background-color-base); font-size: .9em; }
.trap-resolution { padding: .6em .9em; border-top: 1px solid var(--border-color-base); background: var(--tpl-mp-blue-bg); }
.trap-res-badge { font-weight: bold; }
@media (max-width: 720px) { .trap-grid { grid-template-columns: 1fr; } .trap-rail-container { overflow-x: auto; } .trap-rail-nodes { min-width: 520px; } }

/* Notes and sources */
.src-note { clear: both; margin-top: 1.5em; padding-top: .4em; border-top: 1px solid var(--border-color-muted); font-size: 90%; line-height: 1.5; color: var(--color-base); }

/* ── Succession box, navbox, categories ─────────────────────────────── */
.mw-parser-output .succession-box {
  clear: both; width: 100%; max-width: 46em; margin: 1.5em auto 0 !important;
  font-size: 95%; line-height: 1.5; text-align: center;
}
.succession-box td, .succession-box th { text-align: center; vertical-align: middle !important; }
.succession-box .succession-header { background-color: var(--tpl-mp-blue-head); }
.succession-box .succession-before, .succession-box .succession-after { width: 30%; }
.succession-box .succession-title { width: 40%; background-color: var(--background-color-neutral); }
.succession-box small { color: var(--color-subtle); }

.navbox {
  clear: both; box-sizing: border-box; width: 100%; margin: 1em auto 0; padding: 1px;
  border: 1px solid var(--border-color-base); background-color: var(--tpl-navbox-border);
  font-size: 88%; text-align: center; line-height: 1.5;
}
.mw-parser-output .navbox table.navbox-inner { width: 100%; border: 0; border-spacing: 0; border-collapse: separate; background: transparent; color: inherit; }
.mw-parser-output .navbox th, .mw-parser-output .navbox td { border: 0; }
.mw-parser-output .navbox .navbox-title { padding: .25em 1em; background-color: var(--tpl-navbox-title); font-size: 114%; font-weight: bold; }
.navbox-title > div:last-child { font-size: 114%; margin: 0 4em; }
.mw-parser-output .navbox .navbox-group {
  width: 1%; padding: .25em 1em; background-color: var(--tpl-navbox-group);
  text-align: right; white-space: nowrap; font-weight: bold;
}
.mw-parser-output .navbox .navbox-list { width: 100%; padding: 0; text-align: left; border-left: 2px solid var(--tpl-navbox-border); }
.navbox-list > div { padding: 0 .5em; }
.mw-parser-output .navbox tr + tr > .navbox-group, .mw-parser-output .navbox tr + tr > .navbox-list,
.mw-parser-output .navbox tr + tr > .navbox-abovebelow { border-top: 2px solid var(--tpl-navbox-border); }
.navbox-odd { background: transparent; }
.navbox-even { background-color: var(--tpl-navbox-even); }
.mw-parser-output .navbox .navbox-abovebelow { padding: .25em 1em; background-color: var(--tpl-navbox-group); text-align: center; }
.navbox-abovebelow .vector-icon { width: 14px; min-width: 14px; height: 14px; min-height: 14px; -webkit-mask-size: 14px; mask-size: 14px; vertical-align: -2px; }
.navbar { float: left; margin-right: .5em; font-size: 88%; font-weight: normal; text-align: left; }
.navbar-mini abbr { font-variant: small-caps; text-decoration: none; cursor: inherit; }
.hlist ul, .hlist ol { display: inline; margin: 0; padding: 0; }
.hlist li { display: inline; margin: 0; }
.hlist li:not(:last-child)::after { content: "\00a0\00b7\0020"; font-weight: bold; }
.mw-collapsible-toggle { float: right; margin-left: .5em; font-size: 88%; font-weight: normal; text-align: right; user-select: none; }
.mw-collapsible-toggle::before { content: "["; }
.mw-collapsible-toggle::after { content: "]"; }
.mw-collapsible-toggle button { padding: 0; border: 0; background: none; color: var(--color-link); font: inherit; cursor: pointer; }
.mw-collapsible-toggle button:hover { text-decoration: underline; }
.navbox.mw-collapsed tr:not(:first-child) { display: none; }

.catlinks {
  clear: both; margin-top: 1em; padding: 5px;
  border: 1px solid var(--border-color-base); background-color: var(--background-color-neutral-subtle);
  font-size: .875rem; line-height: 1.6;
}
.catlinks ul { display: inline; margin: 0; padding: 0; list-style: none; }
.catlinks li { display: inline-block; margin: .125em 0; padding: 0 .5em; line-height: 1.25em; border-left: 1px solid var(--border-color-base); }
.catlinks li:first-child { padding-left: .25em; border-left: 0; }

/* ── Footer ─────────────────────────────────────────────────────────── */
.mw-footer { padding: 1.25rem 0 2rem; border-top: 1px solid var(--border-color-base); margin-top: 1.5rem; font-size: .75rem; line-height: 1.4; }
.mw-footer ul { margin: 0; padding: 0; list-style: none; }
#footer-info li { padding: .5em 0; color: var(--color-base); }
#footer-info-lastmod:empty { display: none; }
#footer-places { display: flex; flex-wrap: wrap; gap: .5em 1em; padding: .5em 0; }
#footer-icons { float: right; display: flex; gap: .5em; margin-top: .5em; }
#footer-icons .cdx-button { min-height: 31px; min-width: 88px; padding: 2px 6px; gap: 4px; font-size: .6875rem; font-weight: normal; line-height: 1.1; color: var(--color-base); }
#footer-icons img { width: 32px; height: auto; }
.mw-powered { text-align: left; }
.mw-powered b { font-family: var(--font-family-mono); font-size: 1.05em; }
.mw-footer::after { content: ""; display: block; clear: both; }

/* ── Sticky header ──────────────────────────────────────────────────── */
.vector-sticky-header-container {
  position: fixed; z-index: 100; top: 0; left: 0; right: 0;
  max-width: none; padding: 0;
  background-color: var(--background-color-base);
  box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
  transform: translateY(-100%); visibility: hidden; transition: transform .25s linear, visibility .25s;
}
html.skin-theme-clientpref-night .vector-sticky-header-container { box-shadow: 0 1px 0 0 var(--border-color-muted); }
.vector-sticky-header-container.vector-sticky-header-visible { transform: none; visibility: visible; }
.vector-sticky-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  max-width: var(--width-page); height: var(--height-header); margin: 0 auto; padding: 0 1.5rem;
}
html.vector-feature-limited-width-clientpref-0 .vector-sticky-header { max-width: none; }
.vector-sticky-header-start { display: flex; align-items: center; flex: 1 1 auto; min-width: 0; gap: 8px; }
.vector-sticky-header-end { display: flex; align-items: center; flex: 0 0 auto; }
.vector-sticky-header-icons { display: flex; align-items: center; }
.vector-sticky-header-icons .cdx-button { color: var(--color-base); }
.vector-sticky-header-context-bar {
  display: flex; align-items: center; gap: 4px; min-width: 0;
  padding-left: 12px; border-left: 1px solid var(--border-color-subtle);
}
.vector-sticky-header-context-bar .vector-toc-landmark { display: none; }
html.vector-toc-available .vector-sticky-header-context-bar .vector-toc-landmark { display: block; }
.vector-sticky-header-context-bar-primary {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-family: var(--font-family-serif); font-size: 1.125rem; line-height: 1.4; color: var(--color-emphasized);
}
.vector-sticky-header-context-bar-primary .sub { font: inherit; }
.vector-sticky-header-search { display: none; flex: 1 1 auto; max-width: 32.75rem; }
.vector-sticky-header-search-active .vector-sticky-header-search { display: block; }
.vector-sticky-header-search-active .vector-sticky-header-context-bar,
.vector-sticky-header-search-active .vector-sticky-header-icon-start { display: none; }
.vector-sticky-header .vector-dropdown-content { top: calc(100% + 9px); }

/* Floating "toggle limited content width" button (wide screens) */
.vector-limited-width-toggle {
  position: fixed; z-index: 10; right: 16px; bottom: 16px; width: 40px; height: 40px;
  background-color: var(--background-color-base); color: var(--color-base);
  box-shadow: var(--box-shadow-drop-medium);
}
.vector-limited-width-toggle[hidden] { display: none; }
@media print { .vector-limited-width-toggle { display: none; } }
.skin-client-pref-note { display: none; }
.skin-beta { font-weight: normal; }
@media (min-width: 1120px) {
  html.vector-feature-toc-pinned-clientpref-1 .vector-sticky-header-context-bar .vector-toc-landmark { display: none; }
}
.mw-page-title-namespace, .mw-page-title-separator { font: inherit; }

/* ── Typeahead search menu ──────────────────────────────────────────── */
.cdx-menu {
  position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% - 1px);
  background-color: var(--background-color-base); color: var(--color-base);
  border: 1px solid var(--border-color-base); border-radius: 0 0 2px 2px;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .2);
  font-size: .875rem;
}
.cdx-menu[hidden] { display: none; }
.cdx-menu__listbox { margin: 0; padding: 0; list-style: none; }
.cdx-menu-item {
  display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px;
  color: var(--color-base); cursor: pointer; line-height: 1.4; text-decoration: none !important;
}
.cdx-menu-item--highlighted { background-color: var(--background-color-interactive); }
.cdx-menu-item:active { background-color: var(--background-color-progressive-subtle); }
.cdx-thumbnail {
  flex: 0 0 auto; width: 40px; height: 40px; border: 1px solid var(--border-color-muted); border-radius: 2px;
  background: var(--background-color-neutral-subtle) center / cover no-repeat;
  display: flex; align-items: center; justify-content: center; color: var(--color-placeholder);
}
.cdx-thumbnail--placeholder::before {
  content: ""; width: 20px; height: 20px; background-color: currentColor;
  -webkit-mask: var(--icon-image) center / 20px no-repeat; mask: var(--icon-image) center / 20px no-repeat;
}
.cdx-thumbnail--search::before { -webkit-mask-image: var(--icon-search); mask-image: var(--icon-search); }
.cdx-menu-item__text { min-width: 0; }
.cdx-menu-item__text__label { display: block; color: var(--color-base); }
.cdx-search-result-title__match { font-weight: bold; }
.cdx-menu-item__text__description { display: block; font-size: .8125rem; color: var(--color-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdx-typeahead-search__search-footer { border-top: 1px solid var(--border-color-muted); }
.cdx-typeahead-search__search-footer__text strong { font-weight: bold; }

/* ── Page previews (hovercards) ─────────────────────────────────────── */
.mwe-popups {
  position: absolute; z-index: 110; width: 320px;
  background-color: var(--background-color-base); color: var(--color-base);
  border-radius: 2px; box-shadow: var(--box-shadow-drop-xx-large);
  font-size: 14px; line-height: 1.4; text-align: left;
  animation: mwe-popups-fade-in .1s ease-out;
}
@keyframes mwe-popups-fade-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.mwe-popups.flipped { animation-name: mwe-popups-fade-in-up; }
@keyframes mwe-popups-fade-in-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.mwe-popups::before {
  content: ""; position: absolute; left: var(--arrow, 12px); top: -8px;
  border: 8px solid transparent; border-top: 0; border-bottom-color: var(--background-color-base);
  filter: drop-shadow(0 -1px 0 rgba(0, 0, 0, .08));
}
.mwe-popups.flipped::before { top: auto; bottom: -8px; border: 8px solid transparent; border-bottom: 0; border-top-color: var(--background-color-base); }
.mwe-popups.has-thumb::before { border-bottom-color: var(--background-color-base); }
.mwe-popups-container { display: block; color: inherit; text-decoration: none !important; }
.mwe-popups-thumbnail { display: block; width: 100%; height: 190px; object-fit: cover; border-radius: 2px 2px 0 0; background: var(--background-color-neutral-subtle); }
.mwe-popups-extract { position: relative; max-height: 9.8em; margin: 16px 16px 0; overflow: hidden; color: var(--color-base); }
.mwe-popups-extract::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.4em;
  background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--background-color-base) 60%);
  width: 50%; left: auto;
}
.mwe-popups-extract b { font-weight: bold; color: var(--color-emphasized); }
.mwe-popups-extract .mwe-popups-description { display: block; margin-bottom: 4px; font-size: .875em; color: var(--color-subtle); }
.mwe-popups-footer { display: flex; justify-content: space-between; align-items: center; padding: 6px 8px 8px 16px; }
.mwe-popups-footer small { color: var(--color-subtle); font-size: 12px; }
.mwe-popups-settings-button { color: var(--color-subtle); }
.mwe-popups-settings-button .vector-icon { width: 16px; min-width: 16px; height: 16px; min-height: 16px; -webkit-mask-size: 16px; mask-size: 16px; }

/* ── Dialogs & notifications ────────────────────────────────────────── */
.cdx-dialog-backdrop { position: fixed; inset: 0; z-index: 400; display: flex; align-items: center; justify-content: center; background: var(--background-color-backdrop-dark); }
.cdx-dialog { width: 400px; max-width: calc(100vw - 32px); padding: 16px 24px 20px; border: 1px solid var(--border-color-base); border-radius: 2px; background: var(--background-color-base); color: var(--color-base); box-shadow: var(--box-shadow-drop-xx-large); font-size: .875rem; line-height: 1.5; }
.cdx-dialog h2 { margin: 0 0 8px; font-size: 1.125rem; font-weight: bold; }
.cdx-dialog-footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.mw-notification-area { position: fixed; z-index: 300; top: 60px; right: 16px; display: flex; flex-direction: column; gap: 8px; }
.mw-notification {
  width: 20em; max-width: calc(100vw - 32px); padding: 12px 16px;
  background: var(--background-color-base); color: var(--color-base);
  border: 1px solid var(--border-color-base); border-radius: 2px; box-shadow: var(--box-shadow-drop-medium);
  font-size: .875rem; line-height: 1.4; cursor: pointer; animation: mwe-popups-fade-in .15s ease-out;
}

/* ── Media viewer ───────────────────────────────────────────────────── */
.mw-mmv-wrapper { position: fixed; inset: 0; z-index: 1000; display: flex; flex-direction: column; background: #000; color: #fff; }
.mw-mmv-wrapper[hidden] { display: none; }
body.mw-mmv-lightbox-open { overflow: hidden; }
.mw-mmv-image-wrapper { position: relative; flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 48px 72px 24px; }
.mw-mmv-image { max-width: 100%; max-height: 100%; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.mw-mmv-image img, .mw-mmv-image svg { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.mw-mmv-image svg { width: 100%; height: 100%; background: #fff; }
.mw-mmv-controls { position: absolute; top: 8px; right: 12px; display: flex; gap: 4px; }
.mw-mmv-controls .cdx-button, .mw-mmv-nav { color: #fff; }
.mw-mmv-controls .cdx-button:hover, .mw-mmv-nav:hover { background-color: rgba(255, 255, 255, .15); mix-blend-mode: normal; }
.mw-mmv-nav { position: absolute; top: 50%; width: 48px; height: 48px; margin-top: -24px; opacity: .7; }
.mw-mmv-nav:hover { opacity: 1; }
.mw-mmv-nav .vector-icon { width: 28px; height: 28px; -webkit-mask-size: 28px; mask-size: 28px; }
.mw-mmv-prev { left: 12px; }
.mw-mmv-next { right: 12px; }
.mw-mmv-post-image {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 24px;
  padding: 14px 24px 16px; background: var(--background-color-base); color: var(--color-base);
  border-top: 1px solid var(--border-color-subtle); font-size: .875rem; line-height: 1.45;
}
.mw-mmv-title { margin: 0 0 4px; font-size: 1.1rem; font-weight: bold; color: var(--color-emphasized); word-break: break-word; }
.mw-mmv-caption { color: var(--color-base); max-width: 70em; }
.mw-mmv-caption b { font-weight: bold; }
.mw-mmv-meta { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.mw-mmv-position { color: var(--color-subtle); font-size: .8125rem; }

/* ── Special pages and page actions ─────────────────────────────────── */
.mw-special-loading { color: var(--color-subtle); }
.mw-search-form { display: flex; max-width: 36em; margin: .5em 0 1em; }
.mw-search-form .cdx-text-input { flex: 1 1 auto; }
.mw-search-form .cdx-text-input__input { font-size: 1rem; min-height: 36px; border-radius: 2px 0 0 2px; }
.mw-search-form .cdx-button { border-radius: 0 2px 2px 0; margin-left: -1px; min-height: 36px; background: var(--background-color-progressive); border-color: var(--background-color-progressive); color: var(--color-inverted); }
.mw-search-form .cdx-button:hover { background: var(--color-progressive--hover); }
.results-info { margin: 0 0 1em; padding: .3em .6em; border-bottom: 1px solid var(--border-color-muted); font-size: .875em; color: var(--color-subtle); }
.mw-search-exists { margin: .5em 0 1em; }
ul.mw-search-results { margin: 0 !important; padding: 0; list-style: none !important; max-width: 38em; }
.mw-search-result { margin: 0 0 1.2em !important; line-height: 1.45; }
.mw-search-result-heading { font-size: 1.05em; }
.mw-search-result-heading .mw-search-result-section { color: var(--color-subtle); font-size: .9em; }
.searchresult { font-size: .9375em; }
.searchmatch { font-weight: bold; }
.mw-search-result-data { font-size: .8125em; color: var(--color-success); }
.mw-search-nonefound { font-style: italic; }

#pagehistory { margin: .5em 0 0 !important; padding: 0; list-style: none !important; }
#pagehistory li { margin: 0; padding: .3em .2em; border-bottom: 1px solid var(--border-color-muted); line-height: 1.6; }
#pagehistory li.selected { background: var(--background-color-progressive-subtle); }
.mw-history-histlinks, .mw-changeslist-links { color: var(--color-subtle); }
.mw-changeslist-links::before { content: "("; }
.mw-changeslist-links::after { content: ")"; }
.mw-changeslist-links > span:not(:last-child)::after { content: " | "; }
.mw-changeslist-date { font-variant-numeric: tabular-nums; }
.mw-changeslist-separator::before { content: ". . "; color: var(--color-subtle); }
.history-user a { font-weight: normal; }
.mw-plusminus-pos { color: var(--tpl-plusminus-pos); }
.mw-plusminus-neg { color: var(--tpl-plusminus-neg); }
.mw-plusminus-null { color: var(--color-placeholder); }
.mw-plusminus-pos.big, .mw-plusminus-neg.big { font-weight: bold; }
.history-size { color: var(--color-subtle); }
.comment { font-style: italic; }
.comment::before { content: "("; font-style: normal; }
.comment::after { content: ")"; font-style: normal; }
.mw-changeslist-day { margin: 1em 0 .2em !important; padding: 0 !important; font-size: 1em !important; font-weight: bold; }
.special { margin: 0 0 0 1.6em !important; }
.special li { line-height: 1.6; }
.mw-helplink { float: right; font-size: .875rem; }

table.mw-page-info { width: 100%; max-width: 50em; margin: .5em 0 1.5em; }
table.mw-page-info th { width: 30%; background: var(--background-color-neutral-subtle); text-align: left; font-weight: normal; vertical-align: top; }
table.mw-page-info td { background: var(--background-color-base); }

.mw-message-box {
  margin: 0 0 1em; padding: 12px 12px 12px 44px; position: relative;
  border: 1px solid var(--border-color-base); border-radius: 2px;
  background: var(--background-color-notice-subtle); color: var(--color-base); line-height: 1.5;
}
.mw-message-box::before {
  content: ""; position: absolute; left: 12px; top: 12px; width: 20px; height: 20px; background-color: var(--color-base);
  -webkit-mask: var(--icon-info) center / 20px no-repeat; mask: var(--icon-info) center / 20px no-repeat;
}
.mw-message-box-warning { background: var(--background-color-warning-subtle); border-color: #a66200; }
.mw-message-box-warning::before { -webkit-mask-image: var(--icon-lock); mask-image: var(--icon-lock); background-color: var(--color-warning); }
.mw-source-textarea {
  display: block; width: 100%; min-height: 28em; margin: .5em 0 1em; padding: .2em .3em;
  border: 1px solid var(--border-color-base); border-radius: 2px;
  background: var(--background-color-neutral-subtle); color: var(--color-base);
  font-family: var(--font-family-mono); font-size: .8125rem; line-height: 1.5; resize: vertical;
}
.mw-cite-styles h2 { margin-top: 1.2em; }
.mw-cite-styles pre { margin: .3em 0 1em; }
.mw-contents-filter { max-width: 26em; margin: .5em 0 1em; }
.mw-contents-group { margin-bottom: 1.2em; }
.mw-contents-page { margin: .6em 0 !important; list-style: none; }
.mw-contents-list { margin: .3em 0 0 !important; padding: 0; list-style: none !important; }
.mw-contents-page > a { font-weight: bold; }
.mw-contents-page .mw-contents-desc { color: var(--color-subtle); }
.mw-contents-page .hlist { font-size: .9em; margin-top: .1em; }
.mw-contents-count { color: var(--color-subtle); font-size: .875em; }

/* Diagrams are drawn light; night mode inverts them, like skin-invert */
html.skin-theme-clientpref-night .mw-parser-output svg[role="img"],
html.skin-theme-clientpref-night .blueprint-body,
html.skin-theme-clientpref-night .mw-mmv-image svg { filter: invert(1) hue-rotate(180deg); }
html.skin-theme-clientpref-night .blueprint-body svg[role="img"] { filter: none; }
html.skin-theme-clientpref-night .mw-mmv-image svg { background: #fff; }
@media screen and (prefers-color-scheme: dark) {
  html.skin-theme-clientpref-os .mw-parser-output svg[role="img"],
  html.skin-theme-clientpref-os .blueprint-body,
  html.skin-theme-clientpref-os .mw-mmv-image svg { filter: invert(1) hue-rotate(180deg); }
  html.skin-theme-clientpref-os .blueprint-body svg[role="img"] { filter: none; }
}
html.skin-theme-clientpref-night .mw-parser-output figure > img,
html.skin-theme-clientpref-night .hero-plate > img { background: #fff; }

/* ── Narrow screens ─────────────────────────────────────────────────── */
@media (max-width: 1119px) {
  .vector-column-start, .vector-column-end { display: none !important; }
  #pt-website { display: none; }
  #vector-appearance-dropdown { display: block; }
}
@media (max-width: 999px) {
  .vector-user-links .vector-menu-content-list { display: none; }
}
@media (max-width: 719px) {
  .vector-header-container, .mw-page-container, .vector-sticky-header { padding: 0 .75rem; }
  .mw-logo-icon { display: none; }
  .vector-header-end { flex: 0 0 auto; }
  .vector-search-box { flex: 0 0 auto; }
  .vector-search-box .search-toggle { display: inline-flex; }
  .vector-search-box .vector-typeahead-search-container { display: none; }
  .vector-search-box.vector-search-box-expanded { position: absolute; left: .75rem; right: .75rem; z-index: 60; max-width: none; background: var(--background-color-base); }
  .vector-search-box.vector-search-box-expanded .search-toggle { display: none; }
  .vector-search-box.vector-search-box-expanded .vector-typeahead-search-container { display: block; }
  #p-views { display: none; }
  .mw-first-heading { font-size: 1.6rem; }
  .hero-plate, .mw-parser-output section > figure:has(> img), .mw-parser-output > figure:has(> img) {
    float: none; width: 100%; max-width: 100%; margin: .5em 0 1em;
  }
  .vector-sticky-header-icons { display: none; }
}
@media (max-width: 559px) {
  .mw-logo-wordmark { font-size: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ── Print (Wikipedia's print stylesheet, abridged) ─────────────────── */
@media print {
  :root { --color-link: #202122; }
  html, body { background: #fff !important; color: #000 !important; }
  .vector-header-container, .vector-column-start, .vector-column-end, .vector-page-toolbar,
  .vector-sticky-header-container, .mw-editsection, .noprint, .navbox, .catlinks,
  #siteSub, #contentSub, .mw-indicators, .mw-footer-container, .mwe-popups, .mw-notification-area,
  .vector-page-titlebar .vector-toc-landmark { display: none !important; }
  .mw-page-container { max-width: none; padding: 0; }
  .mw-page-container-inner, .mw-body { display: block; }
  .vector-body { font-family: var(--font-family-serif); font-size: 10pt; line-height: 1.4; }
  .mw-first-heading { font-size: 25pt; padding-top: 0; }
  .mw-body-content h2 { font-size: 16pt; }
  .mw-body-content h3 { font-size: 13pt; }
  a { color: #000 !important; text-decoration: none; }
  .mw-parser-output a[href^="http"]::after { content: " (" attr(href) ")"; background: none; width: auto; height: auto; -webkit-mask: none; mask: none; font-size: 80%; }
  .printfooter { display: block; margin-top: 1em; padding-top: .5em; border-top: 1px solid #a2a9b1; font-size: 9pt; }
  figure, .blueprint-plate, table, .hero-plate, .spec-card { break-inside: avoid; }
}
