/* Encyclopedia skin: modelled on the classic wiki reading layout. */
:root {
  --bg: #ffffff;
  --bg-subtle: #f8f9fa;
  --bg-muted: #eaecf0;
  --text: #202122;
  --text-subtle: #54595d;
  --text-faint: #72777d;
  --border: #a2a9b1;
  --border-light: #c8ccd1;
  --border-faint: #eaecf0;
  --link: #3366cc;
  --link-visited: #795cb2;
  --link-new: #d73333;
  --progressive: #3366cc;
  --destructive: #d73333;
  --notice: #3366cc;
  --warning: #f28500;
  --error: #b32424;
  --error-bg: #fee7e6;
  --success: #00af89;
  --infobox-header: #d8dfea;
  --mp-left-bg: #f5fffa; --mp-left-head: #cef2e0; --mp-left-line: #a3bfb1;
  --mp-right-bg: #f5faff; --mp-right-head: #cedff2; --mp-right-line: #a3b0bf;
  --diff-del: #ffe49c;
  --diff-add: #a3d3ff;
  --up: #14866d;
  --down: #d73333;
  --serif: 'Linux Libertine', 'Georgia', 'Times', 'Source Serif Pro', serif;
  --sans: -apple-system, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Lato', 'Helvetica', 'Arial', sans-serif;
  --mono: 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #101418;
    --bg-subtle: #202122;
    --bg-muted: #27292d;
    --text: #eaecf0;
    --text-subtle: #a2a9b1;
    --text-faint: #a2a9b1;
    --border: #72777d;
    --border-light: #54595d;
    --border-faint: #27292d;
    --link: #88a3e8;
    --link-visited: #a799cd;
    --link-new: #fd7865;
    --progressive: #6485d1;
    --destructive: #e45d5d;
    --notice: #6485d1;
    --error: #fd7865;
    --error-bg: #3c1a19;
    --infobox-header: #2e3440;
    --mp-left-bg: #10201a; --mp-left-head: #1c3a2e; --mp-left-line: #2f5244;
    --mp-right-bg: #101a26; --mp-right-head: #1c2c42; --mp-right-line: #2f4058;
    --diff-del: #9a7a1f;
    --diff-add: #2f6db3;
    --up: #3fc59e;
    --down: #fd7865;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); }
a { color: var(--link); text-decoration: none; }
a:visited { color: var(--link-visited); }
a:hover { text-decoration: underline; }
a.new, a.new:visited { color: var(--link-new); }
[hidden] { display: none !important; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 8px; top: 8px; background: var(--bg); padding: 4px 8px; z-index: 99; }

a.external { padding-right: 13px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%2372777d' d='M6 1h5v5L8.86 3.85 4.7 8 4 7.3l4.15-4.16zM2 3h2v1H2v6h6V8h1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1'/%3E%3C/svg%3E") no-repeat right center; }

/* ---- header ---- */
.vector-header {
  display: flex; align-items: center; gap: 16px;
  max-width: 1596px; margin: 0 auto; padding: 8px 24px; min-height: 66px;
}
.header-start { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.main-menu { position: relative; }
.main-menu summary { list-style: none; width: 32px; height: 32px; display: grid; place-items: center; cursor: pointer; border-radius: 2px; }
.main-menu summary::-webkit-details-marker { display: none; }
.main-menu summary:hover { background: var(--bg-muted); }
.hamburger, .hamburger::before, .hamburger::after { display: block; width: 18px; height: 2px; background: var(--text); position: relative; }
.hamburger::before, .hamburger::after { content: ''; position: absolute; }
.hamburger::before { top: -6px; }
.hamburger::after { top: 6px; }
.menu-panel {
  position: absolute; top: 40px; left: 0; z-index: 30; width: 220px;
  background: var(--bg); border: 1px solid var(--border-light); box-shadow: 0 2px 8px rgb(0 0 0 / .15);
  padding: 10px 12px 12px; display: flex; flex-direction: column; font-size: .875rem;
}
.menu-heading { font-weight: bold; padding-bottom: 6px; border-bottom: 1px solid var(--border-light); margin-bottom: 4px; }
.menu-group { color: var(--text-subtle); font-size: .8125rem; margin: 10px 0 2px; }
.menu-panel a { padding: 4px 0; }
.mw-logo { display: flex; align-items: center; gap: 10px; color: var(--text) !important; }
.mw-logo:hover { text-decoration: none; }
.mw-logo-icon { width: 50px; height: 50px; }
.mw-logo-container { display: flex; flex-direction: column; font-family: var(--serif); line-height: 1.1; }
.mw-logo-wordmark { font-size: 1.32rem; font-variant: small-caps; letter-spacing: .06em; text-transform: lowercase; }
.mw-logo-wordmark::first-letter { text-transform: uppercase; font-size: 1.15em; }
.mw-logo-tagline { font-size: .8rem; letter-spacing: .02em; }

.search { display: flex; flex: 1; max-width: 560px; margin-left: 12px; }
.search-box { position: relative; flex: 1; }
.search-box input {
  width: 100%; height: 32px; padding: 5px 8px 5px 32px;
  border: 1px solid var(--border); border-radius: 2px 0 0 2px; border-right: none;
  background: var(--bg); color: var(--text); font: inherit; font-size: .875rem;
}
.search-box input:focus { outline: none; border-color: var(--progressive); box-shadow: inset 0 0 0 1px var(--progressive); }
.search-icon { position: absolute; left: 9px; top: 8px; width: 14px; height: 14px; border: 2px solid var(--text-subtle); border-radius: 50%; }
.search-icon::after { content: ''; position: absolute; width: 2px; height: 6px; background: var(--text-subtle); right: -4px; bottom: -5px; transform: rotate(-45deg); }
.search .cdx-button { border-radius: 0 2px 2px 0; }
.sug {
  position: absolute; left: 0; right: 0; top: 32px; z-index: 30;
  list-style: none; margin: 0; padding: 0;
  background: var(--bg); border: 1px solid var(--border-light); box-shadow: 0 2px 4px rgb(0 0 0 / .2);
}
.sug li a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; color: var(--text); font-size: .875rem; }
.sug li a:hover, .sug li.on a { background: var(--bg-muted); text-decoration: none; }
.sug .sug-type { color: var(--text-faint); font-size: .8125rem; }
.user-links { margin-left: auto; display: flex; gap: 14px; align-items: center; font-size: .875rem; white-space: nowrap; }
.user-links .user { color: var(--text-subtle); }
.badge { background: var(--warning); color: #fff; border-radius: 9px; padding: 0 6px; font-size: .75rem; font-weight: bold; }

/* ---- buttons ---- */
.cdx-button {
  min-height: 32px; padding: 4px 12px;
  border: 1px solid var(--border); border-radius: 2px;
  background: var(--bg-subtle); color: var(--text);
  font: bold .875rem var(--sans); cursor: pointer;
}
.cdx-button:hover { background: var(--bg); }
.cdx-button.primary { background: var(--progressive); border-color: var(--progressive); color: #fff; }
.cdx-button.primary:hover { filter: brightness(1.1); }
.cdx-button.destructive { background: var(--destructive); border-color: var(--destructive); color: #fff; }
.cdx-button.wide { width: 100%; }

/* ---- page ---- */
.mw-page-container { max-width: 1596px; margin: 0 auto; padding: 0 24px; }
.vector-columns { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: 0 24px; }
.vector-toc { position: sticky; top: 12px; align-self: start; max-height: calc(100vh - 24px); overflow-y: auto; padding: 20px 0 0; font-size: .875rem; }
.toc-title { font-weight: bold; padding-bottom: 6px; margin-bottom: 4px; border-bottom: 1px solid var(--border-light); }
.vector-toc ul { list-style: none; margin: 0; padding: 0; }
.vector-toc li { padding: 4px 0; }
.vector-toc li.active > a { color: var(--text); font-weight: bold; }
.mw-body { min-width: 0; padding: 0 0 24px; }
.mw-body.solo { max-width: 1100px; margin: 0 auto; }
@media (max-width: 1000px) {
  .vector-columns { grid-template-columns: minmax(0, 1fr); }
  .vector-toc { display: none; }
}

.title-row { padding-top: 16px; }
.firstHeading {
  font-family: var(--serif); font-weight: normal; font-size: 1.8em; line-height: 1.375;
  margin: 0 0 4px; overflow-wrap: anywhere;
}
.vector-tabs { display: flex; justify-content: space-between; border-bottom: 1px solid var(--border); font-size: .875rem; margin-bottom: 0; }
.vector-tabs > div { display: flex; gap: 0; }
.vector-tabs a { padding: 8px 8px 6px; margin-bottom: -1px; border-bottom: 2px solid transparent; }
.vector-tabs a:visited { color: var(--link); }
.vector-tabs a.selected { color: var(--text); border-bottom-color: var(--text); }
.vector-tabs a.selected.new { color: var(--link-new); border-bottom-color: var(--link-new); }
.vector-tabs a:hover { text-decoration: none; border-bottom-color: var(--border); }
.vector-tabs a.selected:hover { border-bottom-color: var(--text); }
#siteSub { font-size: .8rem; color: var(--text-subtle); margin: 8px 0 12px; }

/* ---- article text ---- */
#bodyContent, .mw-body.solo { font-size: 1rem; line-height: 1.6; }
.mw-parser-output p { margin: .5em 0 1em; }
.mw-parser-output ul, .mw-parser-output ol { margin: .3em 0 0 1.6em; padding: 0; }
.mw-parser-output li { margin-bottom: .1em; }
.mw-parser-output blockquote { margin: 1em 2em; padding: 0 1em; border-left: 4px solid var(--border-light); }
.mw-parser-output code { font-family: var(--mono); background: var(--bg-subtle); border: 1px solid var(--border-faint); border-radius: 2px; padding: 1px 4px; font-size: .875em; }
.mw-body h2, .mw-parser-output h2 {
  font-family: var(--serif); font-weight: normal; font-size: 1.5em; line-height: 1.375;
  margin: 1em 0 .25em; padding: 0; border-bottom: 1px solid var(--border); overflow: hidden;
}
.mw-body h3, .mw-parser-output h3 { font-size: 1.2em; font-weight: bold; line-height: 1.6; margin: .3em 0 0; padding-top: .5em; }
.mw-body h4 { font-size: 1em; font-weight: bold; margin: .3em 0 0; padding-top: .5em; }
.mw-editsection { font-family: var(--sans); font-size: .875rem; margin-left: 1em; white-space: nowrap; user-select: none; }
.mw-editsection .b { color: var(--text-subtle); }
sup.reference { font-size: .75em; line-height: 1; white-space: nowrap; unicode-bidi: isolate; }
sup.reference a { padding: 0 1px; }
ol.references { font-size: 90%; margin-left: 2.2em; }
ol.references li { margin-bottom: .15em; }
ol.references li:target, sup.reference:target { background: var(--bg-muted); }
.mw-cite-backlink a { font-weight: bold; }
.mw-parser-output a.addr, .addr a { font-family: var(--mono); font-size: .875em; }

/* ---- infobox ---- */
.infobox {
  float: right; clear: right; width: 22em;
  margin: .5em 0 .5em 1em; padding: .2em;
  border: 1px solid var(--border); border-spacing: 3px;
  background: var(--bg-subtle); color: var(--text);
  font-size: 88%; line-height: 1.5em;
}
.infobox-above { font-size: 125%; font-weight: bold; text-align: center; padding: .2em; }
.infobox-image { text-align: center; padding: .4em 0; }
.infobox-image img { width: 120px; height: 120px; object-fit: cover; border-radius: 50%; }
.infobox-header { background: var(--infobox-header); text-align: center; padding: .2em .4em; }
.infobox-label { text-align: left; vertical-align: top; padding: .1em .6em .1em .2em; font-weight: bold; white-space: nowrap; }
.infobox-data { vertical-align: top; padding: .1em .2em; overflow-wrap: anywhere; }
.infobox-full { padding: .2em; }
.infobox-below { text-align: center; padding: .4em .2em .2em; border-top: 1px solid var(--border-light); }
.live-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--up); vertical-align: middle; margin-left: 4px; animation: pulse 2s infinite; }
@keyframes pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .live-dot { animation: none; } }
.up { color: var(--up); }
.down { color: var(--down); }
.wl-live { font-size: .92em; color: var(--text-subtle); }
.addr-label { color: var(--text-subtle); }
.copy { border: none; background: none; color: var(--link); cursor: pointer; font-size: .85em; padding: 0; }
.copy:hover { text-decoration: underline; }
.copy.ok { color: var(--up); }

.auto-src, .wl-tools { font-size: .85em; color: var(--text-faint); }
.wl-tools a { font-size: inherit; }

/* ---- visual / source editing ---- */
.editor-modes { display: flex; gap: 0; border-bottom: 1px solid var(--border-light); background: var(--bg); }
.editor-modes button { padding: 7px 14px; border: none; border-bottom: 2px solid transparent; background: none; color: var(--link); font: .875rem var(--sans); cursor: pointer; margin-bottom: -1px; }
.editor-modes button[aria-selected="true"] { color: var(--text); border-bottom-color: var(--text); font-weight: bold; }
.ve-surface { min-height: 420px; padding: 8px 14px; outline: none; font-size: 1rem; line-height: 1.6; background: var(--bg); }
.ve-surface:focus { box-shadow: inset 0 0 0 1px var(--progressive); }
.ve-surface h2:empty::before, .ve-surface p:empty::before { content: '\200b'; }

/* ---- page type chooser ---- */
.type-choices { list-style: none; margin: 16px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; max-width: 900px; }
.type-choice { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 14px 16px; border: 1px solid var(--border); background: var(--bg-subtle); color: var(--text) !important; }
.type-choice:hover { border-color: var(--progressive); text-decoration: none; }
.type-choice b { color: var(--link); font-size: 1.05rem; }
.type-choice span { font-size: .875rem; color: var(--text-subtle); }

/* ---- editor contract preview ---- */
.ca-preview { border: 1px solid var(--border-light); background: var(--bg-subtle); padding: 8px 10px; margin: -4px 0 12px; font-size: .875rem; }
.ca-head { display: flex; gap: 10px; align-items: flex-start; }
.ca-head img { border-radius: 50%; object-fit: cover; flex: 0 0 40px; }
.ca-chart { height: 300px; margin-top: 8px; border: 1px solid var(--border-light); }
.ca-chart iframe { width: 100%; height: 100%; border: 0; }
.edit-form .autofilled { background: color-mix(in srgb, var(--progressive) 8%, var(--bg)); }

/* ---- chart figure ---- */
.mw-chart { display: flow-root; margin: .5em 0 1.3em; padding: 3px; border: 1px solid var(--border-light); background: var(--bg-subtle); }
.chart { height: 400px; background: var(--bg); display: grid; place-items: center; color: var(--text-faint); font-size: .875rem; border: 1px solid var(--border-light); }
.chart iframe { width: 100%; height: 100%; border: 0; }
.mw-chart figcaption { font-size: 88%; line-height: 1.4em; padding: 4px 3px 2px; }

/* ---- message boxes ---- */
.ambox {
  display: flex; align-items: center; gap: 12px;
  margin: 0 10% 12px; padding: 6px 10px;
  border: 1px solid var(--border); border-left: 10px solid var(--notice);
  background: var(--bg-subtle); font-size: .875rem; line-height: 1.5;
}
.ambox-content { border-left-color: var(--warning); }
.ambox-speedy { border-left-color: var(--error); background: var(--error-bg); }
.ambox-good { border-left-color: var(--success); }
.ambox-image { flex: 0 0 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: bold 20px var(--serif); color: #fff; background: var(--notice); }
.ambox-content .ambox-image { background: var(--warning); }
.ambox-speedy .ambox-image { background: var(--error); }
.ambox-good .ambox-image { background: var(--success); }
.ambox-text ul { margin: .2em 0 0 1.4em; padding: 0; }
.ambox-text { flex: 1; }
.flags li.sev-high { font-weight: bold; }
@media (max-width: 720px) { .ambox { margin: 0 0 12px; } }

.noarticletext { border: 1px solid var(--border); background: var(--bg-subtle); padding: .5em 1em; margin: 0 0 1em; overflow: hidden; }
.noarticletext ul { margin: .3em 0 .5em 1.6em; padding: 0; }
.pending-note { color: var(--text-subtle); font-style: italic; }

.stub-notice { clear: both; display: flex; align-items: center; gap: 8px; margin-top: 1.5em; font-size: .875rem; }
.stub-icon { width: 28px; height: 28px; flex: 0 0 28px; background: url("/static/icon.svg") center / contain no-repeat; opacity: .8; }

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

/* ---- main page ---- */
.mp-topbanner {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px;
  margin-top: 16px; padding: 10px 16px;
  border: 1px solid var(--border); background: var(--bg-subtle);
}
.mp-welcome { text-align: center; flex: 1; min-width: 260px; }
.mp-welcome h1 { font-family: var(--serif); font-weight: normal; font-size: 1.8em; margin: 0; border: none; }
.mp-welcome p { margin: 0; font-size: .95rem; }
.mp-count { font-size: .85rem !important; margin-top: 4px !important; }
.mp-portals { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, auto); gap: 2px 24px; font-size: .9rem; font-weight: bold; }
.mp-portals li::before { content: '•'; color: var(--text-faint); margin-right: 6px; font-weight: normal; }
.mp-upper { display: grid; grid-template-columns: 55% 1fr; gap: 12px; margin-top: 12px; }
@media (max-width: 860px) { .mp-upper { grid-template-columns: 1fr; } }
.mp-box { padding: 2px 0 8px; }
.mp-left { border: 1px solid var(--mp-left-head); background: var(--mp-left-bg); }
.mp-right { border: 1px solid var(--mp-right-head); background: var(--mp-right-bg); }
.mp-box .mp-h2 {
  margin: 3px; padding: .2em .4em; font-size: 1.2em; font-weight: bold; font-family: var(--serif);
  border: 1px solid var(--mp-left-line); background: var(--mp-left-head);
}
.mp-right .mp-h2 { border-color: var(--mp-right-line); background: var(--mp-right-head); }
.mp-inner { padding: .1em .6em; font-size: .9375rem; }
.mp-inner ul { margin: .3em 0 .5em 1.4em; padding: 0; }
.mp-ago { color: var(--text-faint); font-size: .875em; }
.mp-more { text-align: right; font-size: .875rem; font-weight: bold; }

.otd-date { margin: .3em 0 .2em !important; }

/* ---- timeline ---- */
ul.events { list-style: none; margin: .3em 0 .8em; padding: 0; }
ul.events li { padding: .2em 0 .2em 1em; text-indent: -1em; }
.ev-date { display: inline-block; min-width: 7.5em; color: var(--text-subtle); text-indent: 0; }
a.ev-date { color: var(--link); }
.day-nav { display: flex; justify-content: space-between; gap: 12px; font-size: .875rem; margin: 12px 0; padding: 6px 0; border-bottom: 1px solid var(--border-faint); }

/* ---- search ---- */
.search-inline { display: flex; gap: 8px; max-width: 600px; margin: 16px 0; }
.search-inline input { flex: 1; height: 32px; padding: 4px 8px; border: 1px solid var(--border); border-radius: 2px; background: var(--bg); color: var(--text); font: inherit; }
.mw-search-createlink { margin: 0 0 1em; }
.mw-search-results-info { color: var(--text-subtle); font-size: .875rem; border-bottom: 1px solid var(--border-faint); padding-bottom: 4px; margin-bottom: 8px; }
.mw-search-results { list-style: none; margin: 0 0 1em; padding: 0; max-width: 46em; }
.mw-search-results li { padding: 0 0 1em; }
.mw-search-result-heading { font-size: 1.1em; }
.searchresult { font-size: .875rem; }
.searchmatch { font-weight: bold; }
.mw-search-result-data { color: var(--text-faint); font-size: .8125rem; }

/* ---- editor ---- */
.edit-form { margin-top: 12px; }
.infobox-fields { border: 1px solid var(--border-light); padding: 6px 12px 10px; margin: 0 0 12px; }
.infobox-fields legend { font-weight: bold; padding: 0 4px; font-size: .875rem; }
.infobox-fields table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.infobox-fields th { text-align: left; font-weight: normal; padding: 4px 12px 4px 0; width: 170px; vertical-align: top; }
.infobox-fields td { padding: 3px 0; }
.reviewed { color: var(--text-faint); font-size: .75rem; }
.edit-form input, .edit-form select, .edit-form textarea, .login-form input, .review-form input {
  width: 100%; padding: 5px 8px; border: 1px solid var(--border); border-radius: 2px;
  background: var(--bg); color: var(--text); font: inherit; font-size: .875rem;
}
.edit-form input:focus, .edit-form select:focus, .edit-form textarea:focus, .login-form input:focus, .review-form input:focus { outline: none; border-color: var(--progressive); box-shadow: inset 0 0 0 1px var(--progressive); }
.infobox-fields textarea { font-family: var(--mono); font-size: .8125rem; }
.wikiEditor { border: 1px solid var(--border-light); }
.wikiEditor-toolbar { display: flex; align-items: center; gap: 2px; padding: 4px; background: var(--bg-subtle); border-bottom: 1px solid var(--border-light); flex-wrap: wrap; }
.wikiEditor-toolbar button { min-width: 28px; height: 26px; border: 1px solid transparent; background: none; color: var(--text); cursor: pointer; border-radius: 2px; font: .875rem var(--sans); }
.wikiEditor-toolbar button:hover { border-color: var(--border-light); background: var(--bg); }
.wikiEditor-help { margin-left: auto; color: var(--text-faint); font-size: .75rem; padding-right: 4px; }
#wpTextbox1 { border: none !important; border-radius: 0 !important; font-family: var(--mono) !important; font-size: .8125rem !important; line-height: 1.5; min-height: 420px; resize: vertical; display: block; }
.editOptions { background: var(--bg-subtle); border: 1px solid var(--border-light); border-top: none; padding: 10px 12px; font-size: .875rem; }
.summary-label { font-weight: bold; display: block; margin-bottom: 4px; }
.edit-name { margin: 8px 0; display: flex; align-items: center; gap: 8px; }
.edit-name input { max-width: 220px; }
.editButtons { display: flex; align-items: center; gap: 10px; margin: 10px 0 6px; }
.copywarn { color: var(--text-subtle); font-size: .8125rem; }
.preview-box { border: 1px solid var(--border-light); padding: 0 12px 8px; margin: 12px 0; }
.preview-note { background: var(--bg-subtle); margin: 0 -12px 8px; padding: 6px 12px; border-bottom: 1px solid var(--border-light); font-weight: bold; color: var(--error); font-size: .875rem; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---- history, diffs, lists ---- */
.history-legend { font-size: .875rem; color: var(--text-subtle); margin: 12px 0; }
.pagehistory, .special { list-style: none; margin: 0; padding: 0; font-size: .875rem; }
.pagehistory li, .special li { padding: 3px 0; }
.pagehistory li:nth-child(odd) { }
.sep { color: var(--text-faint); }
.comment { font-style: italic; color: var(--text-subtle); }
.cur-tag { font-size: .75rem; border: 1px solid var(--border-light); padding: 0 4px; border-radius: 2px; }
.reviewer { color: var(--text-faint); }
.rev-status { font-size: .75rem; font-weight: bold; text-transform: uppercase; letter-spacing: .02em; }
.rev-pending { color: var(--warning); }
.rev-approved { color: var(--up); }
.rev-rejected { color: var(--down); }
.rev-deleted { color: var(--destructive); }
.vector-tabs a.tab-delete { color: var(--destructive); }
.rc-day { font-size: 1rem !important; margin-top: 1em !important; }
.rc-title { font-weight: bold; }
.newpage { font-weight: bold; text-decoration: none; }

table.diff { width: 100%; border-spacing: 4px; table-layout: fixed; font-size: .8125rem; margin-bottom: 12px; }
table.diff col.diff-marker { width: 2%; }
table.diff col.diff-content { width: 48%; }
.diff-otitle, .diff-ntitle { text-align: center; vertical-align: top; padding-bottom: 8px; font-size: .875rem; }
.diff-size { font-size: .8125rem; }
.mw-plusminus-pos { color: var(--up); font-weight: bold; }
.mw-plusminus-neg { color: var(--down); font-weight: bold; }
.diff-marker { text-align: right; font-weight: bold; color: var(--text-subtle); vertical-align: top; padding-top: 2px; }
.diff-deletedline, .diff-addedline, .diff-context {
  font-family: var(--mono); vertical-align: top; white-space: pre-wrap; overflow-wrap: anywhere;
  border: 1px solid var(--border-faint); border-left-width: 4px; border-radius: .33em; padding: 2px 6px;
}
.diff-deletedline { border-color: var(--diff-del); }
.diff-addedline { border-color: var(--diff-add); }
.diff-context { background: var(--bg-subtle); color: var(--text-subtle); }
.diff-lineno { text-align: center; color: var(--text-faint); }
.diff-notice { text-align: center; color: var(--text-subtle); padding: 12px; }
table.diff.fields th { text-align: left; width: 140px; font-weight: bold; vertical-align: top; padding: 2px 6px; }
table.diff.fields tr.hot th { color: var(--down); }
.reviewed-by { color: var(--text-subtle); }
.review-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px; margin: 12px 0; border: 1px solid var(--border-light); background: var(--bg-subtle); font-size: .875rem; }
.review-form input { flex: 1; min-width: 180px; width: auto; }
.mod-hint { font-size: .875rem; color: var(--text-subtle); }
.mod-tag { font-size: .75rem; font-weight: bold; text-transform: uppercase; color: var(--text-subtle); }
.vote-panel { margin: 12px 0; padding: 10px 12px; border: 1px solid var(--border-light); border-left: 4px solid var(--progressive); background: var(--bg-subtle); font-size: .875rem; }
.vote-buttons { display: flex; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.cdx-button.progressive { color: var(--progressive); }
.cdx-button.destructive-quiet { color: var(--destructive); }
.cdx-button.voted { box-shadow: inset 0 0 0 2px currentColor; }
.vote-mine, .vote-own { color: var(--text-subtle); font-size: .8125rem; }
.vote-own { margin-top: 6px; }
progress.vote-meter { display: block; width: 100%; max-width: 320px; height: 8px; margin-top: 6px; accent-color: var(--progressive); }
.oldid-nav { margin: 4px 0; font-size: .8125rem; }
.oldid-nav span { color: var(--text-faint); }
.small { font-size: .8125rem; color: var(--text-subtle); }

/* ---- talk ---- */
.talk-thread { max-width: 900px; }
.talk-post { padding: 8px 0 10px; border-bottom: 1px solid var(--border-faint); }
.talk-post .mw-parser-output p { margin: .2em 0 .4em; }
.talk-post.removed { color: var(--text-faint); font-size: .875rem; }
.talk-sig { font-size: .875rem; color: var(--text-subtle); }
.talk-form { max-width: 900px; }
.talk-form textarea { min-height: 120px; }
form.inline { display: inline; }
.linkish { background: none; border: none; padding: 0; color: var(--link); cursor: pointer; font: inherit; }
.linkish:hover { text-decoration: underline; }
.diff-preview-heading { margin-top: 1.5em !important; }

.wikitable { border: 1px solid var(--border); border-collapse: collapse; background: var(--bg-subtle); color: var(--text); font-size: .875rem; margin: 1em 0; width: 100%; }
.wikitable th, .wikitable td { border: 1px solid var(--border); padding: .3em .5em; vertical-align: top; text-align: left; }
.wikitable th { background: var(--bg-muted); }
.wikitable .small { color: var(--text-faint); font-size: .8125rem; }
.nowrap { white-space: nowrap; }
.flag { font-size: .8125rem; }
.flag.sev-high { color: var(--error); font-weight: bold; }
.flag.sev-med { color: var(--warning); }
@media (max-width: 720px) { .wikitable { display: block; overflow-x: auto; } }

.mw-category { columns: 3 220px; margin-top: .5em; }
.mw-category-group { break-inside: avoid; }
.mw-category-group h3 { margin: 0 !important; padding: 0 !important; font-size: 1em !important; }
.mw-category-group ul { margin: 0 0 .5em 1.4em; padding: 0; }
.cat-list { margin: 1em 0 0 1.4em; padding: 0; }

.login-form { display: flex; flex-direction: column; gap: 6px; max-width: 290px; font-size: .875rem; }
.login-form label { font-weight: bold; margin-top: 8px; }
.login-form button { margin-top: 14px; }

/* ---- footer ---- */
.mw-footer { max-width: 1596px; margin: 0 auto; padding: 16px 24px 32px; border-top: 1px solid var(--border-light); font-size: .75rem; }
.mw-footer ul { list-style: none; margin: 0; padding: 0; }
.footer-info li { padding: .5em 0; }
.footer-places { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 8px !important; }

/* ---- small screens ---- */
@media (max-width: 720px) {
  .vector-header { flex-wrap: wrap; padding: 8px 16px; gap: 8px; }
  .search { order: 3; flex-basis: 100%; max-width: none; margin-left: 0; }
  .user-links { gap: 10px; }
  .mw-logo-icon { width: 36px; height: 36px; }
  .mw-page-container { padding: 0 16px; }
  .infobox { float: none; width: 100%; margin: .5em 0 1em; }
  .chart { height: 320px; }
  .vector-tabs a { padding: 8px 6px 6px; }
  .infobox-fields th { width: 110px; }
  .mw-footer { padding: 16px; }
}
