Jump to content

MediaWiki:Common.css: Difference between revisions

From λ LUMENWARD
Created page with "CSS placed here will be applied to all skins: ========================= Lumenward visual overrides =========================: 1. Hide left sidebar: #mw-panel { display: none !important; } 2. Center content and limit width: #content, .mw-page-container, .mw-body { margin-left: 0 !important; max-width: 1100px; } 3. Hide page tabs (Article / Talk / Edit / History): #p-namespaces, #p-views { display: none !important; } /* 4. Simplif..."
 
No edit summary
 
(106 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* CSS placed here will be applied to all skins */
/* =========================================================
/* =========================
   Vector 2022: Center header search WITHOUT moving user tools
   Lumenward visual overrides
   ========================================================= */
   ========================= */


/* 1. Hide left sidebar */
/* Use Vector's real header row as the layout context */
#mw-panel {
.vector-header {
   display: none !important;
  position: relative !important;
   display: flex !important;
  align-items: center !important;
}
}


/* 2. Center content and limit width */
/* Force the right-side tools to remain FAR RIGHT */
#content,
.vector-header-end {
.mw-page-container,
   margin-left: auto !important;
.mw-body {
   display: flex !important;
   margin-left: 0 !important;
  align-items: center !important;
   max-width: 1100px;
  justify-content: flex-end !important;
}
}


/* 3. Hide page tabs (Article / Talk / Edit / History) */
/* Center ONLY the actual search box (do NOT touch wrappers like [role="search"]) */
#p-namespaces,
.vector-header .vector-search-box,
#p-views {
.vector-header .vector-search-box-vue,
   display: none !important;
.vector-header #p-search {
  position: absolute !important;
  left: 38.7% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  z-index: 1 !important;
 
  width: min(620px, calc(100vw - 760px)) !important;
}
 
/* Keep user tools clickable above any overlap */
.vector-header-end,
.vector-user-links,
.vector-user-menu,
#p-personal {
  position: relative !important;
  z-index: 2 !important;
}
 
/* Mobile: revert to normal flow */
@media (max-width: 900px) {
  .vector-header .vector-search-box,
  .vector-header .vector-search-box-vue,
  .vector-header #p-search {
    position: static !important;
    transform: none !important;
    width: 100% !important;
    margin-top: 8px !important;
  }
}
 
/* =========================================================
  Lumenward visual policy (grayscale-only)
  ========================================================= */
 
/* Logo text always black */
.mw-logo a,
.mw-logo a:visited,
.mw-logo a:hover,
.mw-logo a:active {
  color: #000 !important;
  text-decoration: none !important;
}
 
/* Links: grayscale only */
a { color: #111 !important; }
a:visited { color: #333 !important; }
 
a:hover,
a:focus {
   color: #111 !important;
  text-decoration: underline !important;
}
}


/* 4. Simplify footer */
/* TOC links specifically */
.vector-toc a,
.vector-toc a:visited,
#toc a,
#toc a:visited {
  color: #111 !important;
}
 
/* Footer centered on every page */
#footer { text-align: center !important; }
 
#footer ul,
#footer-info,
#footer-info,
#footer-places,
#footer-places,
#footer-icons {
#footer-icons {
   display: none !important;
  float: none !important;
   display: inline-block !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
 
#footer li {
  float: none !important;
  display: inline !important;
  margin: 0 8px !important;
}
 
/* =========================================================
  Lumenward – Person Infobox (clean card style)
  ========================================================= */
 
/* Main infobox card */
.infobox {
  float: right;
  clear: right;
  width: 270px;
  margin: 4.5em 4.5em 1.5em 1.5em;  /* aligns with first paragraph */
  background: #fafafa;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.04);
  font-size: 0.92em;
}
 
/* Title header */
.infobox th[colspan] {
  background: #f2f2f2;
  font-weight: 600;
  text-align: center;
  padding: 10px 8px;
  border-bottom: 1px solid #e0e0e0;
  border-radius: 10px 10px 0 0;
}
 
/* Image row container */
.infobox .infobox-image,
.infobox td[colspan]:has(img) {
  padding: 12px;
  background: #f8f8f8;
  border-bottom: 1px solid #e6e6e6;
}
 
/* Image itself */
.infobox img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}
 
/* Data rows */
.infobox th {
  text-align: left;
  font-weight: 600;          /* titles bold */
  padding: 6px 10px;
  vertical-align: top;
  width: 40%;
  white-space: nowrap;
}
 
.infobox td {
  padding: 6px 10px;
  vertical-align: top;
}
 
/* Remove ugly borders */
.infobox tr {
  border: none;
}
 
/* Subtle row separators */
.infobox tr:not(:last-child) td,
.infobox tr:not(:last-child) th {
  border-bottom: 1px solid #ededed;
}
 
.mw-parser-output .infobox {
  margin-top: 28px !important; /* increase to move it down */
}
 
/* Hide category links at bottom of pages */
.catlinks {
  display: none;
}
}


/* 5. Typography */
/* Lumenward: soften category appearance */
body {
#mw-normal-catlinks {
   background: #ffffff;
   font-size: 0.9em;
   color: #0a0a0a;
   color: #555;
   font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
   border-top: 1px solid #e5e5e5;
   line-height: 1.6;
  margin-top: 2em;
   padding-top: 0.5em;
}
}


.mw-parser-output {
#mw-normal-catlinks a {
   font-size: 15px;
   color: #555;
}
}


/* 6. Headings */
/* Lumenward: Wikipedia-like category styling */
h1, h2, h3, h4 {
#mw-normal-catlinks {
   font-weight: 700;
   margin-top: 2.5em;
   letter-spacing: 0.04em;
  padding-top: 0.6em;
  border-top: 1px solid #ddd;
   font-size: 0.85em;
  color: #666;
}
}


h2 {
#mw-normal-catlinks::before {
   text-transform: uppercase;
   content: "Categories: ";
   font-size: 13px;
   font-weight: 600;
   color: #444;
   color: #444;
}
}


/* 7. De-emphasize references */
#mw-normal-catlinks a {
ol.references,
  color: #555;
.references {
  text-decoration: none;
   font-size: 12px;
}
   color: #666;
 
#mw-normal-catlinks a:hover {
  text-decoration: underline;
}
 
#lumenward-header-links a {
  color: #000 !important;
}
 
/* =========================================
  Lumenward header links — match logo hue
  Logo color: #32302f
  ========================================= */
 
#lumenward-header-links a,
#lumenward-header-links a:link,
#lumenward-header-links a:visited,
#lumenward-header-links a:hover,
#lumenward-header-links a:active {
  color: #32302f !important;
  text-decoration: none;
  font-weight: 600;
}
 
/* Optional: subtle hover affordance without color shift */
#lumenward-header-links a:hover {
  text-decoration: underline;
}
 
/* =========================================================
  Lumenward: Special pages + OOUI/Codex token overrides
  Put ONLY in MediaWiki:Common.css
  ========================================================= */
 
:root {
  --lw-text: #32302f;
  --lw-muted: #6f6a66;
  --lw-bg: #ffffff;
  --lw-border: #e6e1dc;
  --lw-input-border: #cfc7c0;
  --lw-focus: rgba(50,48,47,.22);
 
  /* Codex-ish tokens (safe if some are unused) */
  --color-base: var(--lw-text);
  --color-subtle: var(--lw-muted);
  --border-color-base: var(--lw-input-border);
  --border-color-subtle: var(--lw-border);
  --background-color-base: var(--lw-bg);
  --background-color-interactive: #fff;
  --background-color-interactive-subtle: #fff;
  --color-progressive: var(--lw-text);
}
 
/* Base on ALL pages (helps backend containers too) */
html, body,
.mw-page-container, .mw-body, .mw-body-content, #content {
  background: var(--lw-bg) !important;
  color: var(--lw-text) !important;
}
 
/* Special pages explicitly */
body.mw-specialpage,
body.mw-specialpage .mw-page-container,
body.mw-specialpage .mw-body,
body.mw-specialpage #content {
  background: var(--lw-bg) !important;
  color: var(--lw-text) !important;
}
 
/* Links on special pages */
body.mw-specialpage a,
body.mw-specialpage a:visited {
  color: var(--lw-text) !important;
}
 
/* Nuke “standard” form look on special pages: target everything form-like */
body.mw-specialpage input,
body.mw-specialpage select,
body.mw-specialpage textarea,
body.mw-specialpage button {
   font: inherit;
}
 
/* Native form elements */
body.mw-specialpage input[type="text"],
body.mw-specialpage input[type="password"],
body.mw-specialpage input[type="email"],
body.mw-specialpage input[type="search"],
body.mw-specialpage textarea,
body.mw-specialpage select {
  background: #fff !important;
   color: var(--lw-text) !important;
  border: 1px solid var(--lw-input-border) !important;
  border-radius: 6px !important;
}
 
body.mw-specialpage input:focus,
body.mw-specialpage textarea:focus,
body.mw-specialpage select:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px var(--lw-focus) !important;
  border-color: var(--lw-text) !important;
}
 
/* OOUI widgets */
body.mw-specialpage .oo-ui-inputWidget-input,
body.mw-specialpage .oo-ui-textInputWidget input,
body.mw-specialpage .oo-ui-textInputWidget textarea,
body.mw-specialpage .oo-ui-dropdownWidget .oo-ui-dropdownWidget-handle {
  background: #fff !important;
  color: var(--lw-text) !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}
 
/* Codex widgets (newer MW screens use these) */
body.mw-specialpage .cdx-text-input__input,
body.mw-specialpage .cdx-select__handle,
body.mw-specialpage .cdx-text-area__textarea {
  background: #fff !important;
  color: var(--lw-text) !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}
 
/* Labels + help text */
body.mw-specialpage label,
body.mw-specialpage .oo-ui-labelElement-label,
body.mw-specialpage .cdx-label__label {
  color: var(--lw-text) !important;
}
body.mw-specialpage .mw-htmlform-help,
body.mw-specialpage .oo-ui-fieldLayout-helpText,
body.mw-specialpage .cdx-label__description {
  color: var(--lw-muted) !important;
}
 
/* Buttons */
body.mw-specialpage .mw-ui-button,
body.mw-specialpage .oo-ui-buttonElement-button,
body.mw-specialpage .cdx-button {
  border-radius: 6px !important;
  border-color: var(--lw-input-border) !important;
}
 
/* Progressive buttons */
body.mw-specialpage .mw-ui-button.mw-ui-progressive,
body.mw-specialpage .mw-ui-button.mw-ui-primary,
body.mw-specialpage .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive .oo-ui-buttonElement-button,
body.mw-specialpage .cdx-button--action-progressive {
  background: var(--lw-text) !important;
  border-color: var(--lw-text) !important;
  color: #fff !important;
}
 
/* =========================================================
  Lumenward — Vector 2022 Special Pages Theme (Codex + OOUI)
  Put at END of MediaWiki:Common.css
  ========================================================= */
 
/* Vector 2022 root scope */
body.skin-vector-2022.mw-specialpage {
  /* Lumenward palette */
  --lw-text: #32302f;
  --lw-muted: #6f6a66;
  --lw-bg: #ffffff;
  --lw-surface: #ffffff;
  --lw-border: #e6e1dc;
  --lw-input-border: #cfc7c0;
  --lw-focus: rgba(50,48,47,.22);
 
  /* Codex tokens (these are what most “standard” special-page UI uses) */
  --color-base: var(--lw-text);
  --color-subtle: var(--lw-muted);
  --color-emphasized: var(--lw-text);
  --color-progressive: var(--lw-text);
 
  --background-color-base: var(--lw-bg);
  --background-color-interactive: #fff;
  --background-color-interactive-subtle: #fff;
  --background-color-neutral: #fff;
 
  --border-color-base: var(--lw-input-border);
  --border-color-subtle: var(--lw-border);
 
  --box-shadow-color-progressive--focus: var(--lw-focus);
}
 
/* Base page surfaces (Vector 2022 containers) */
body.skin-vector-2022.mw-specialpage,
body.skin-vector-2022.mw-specialpage .mw-page-container,
body.skin-vector-2022.mw-specialpage .mw-body,
body.skin-vector-2022.mw-specialpage #content {
  background: var(--lw-bg) !important;
  color: var(--lw-text) !important;
}
 
/* Headings */
body.skin-vector-2022.mw-specialpage h1,
body.skin-vector-2022.mw-specialpage h2,
body.skin-vector-2022.mw-specialpage h3,
body.skin-vector-2022.mw-specialpage .mw-first-heading {
  color: var(--lw-text) !important;
}
 
/* Links (Special pages often keep “standard blue” unless forced) */
body.skin-vector-2022.mw-specialpage a,
body.skin-vector-2022.mw-specialpage a:visited,
body.skin-vector-2022.mw-specialpage #content a,
body.skin-vector-2022.mw-specialpage #content a:visited {
  color: var(--lw-text) !important;
}
 
/* =========================================================
  Codex widgets (newer MW UI, commonly used on Special pages)
  ========================================================= */
body.skin-vector-2022.mw-specialpage .cdx-text-input__input,
body.skin-vector-2022.mw-specialpage .cdx-text-area__textarea,
body.skin-vector-2022.mw-specialpage .cdx-select__handle,
body.skin-vector-2022.mw-specialpage .cdx-checkbox__input,
body.skin-vector-2022.mw-specialpage .cdx-radio__input {
  color: var(--lw-text) !important;
}
 
body.skin-vector-2022.mw-specialpage .cdx-text-input__input,
body.skin-vector-2022.mw-specialpage .cdx-text-area__textarea,
body.skin-vector-2022.mw-specialpage .cdx-select__handle {
  background: #fff !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}
 
body.skin-vector-2022.mw-specialpage .cdx-text-input__input:focus,
body.skin-vector-2022.mw-specialpage .cdx-text-area__textarea:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px var(--lw-focus) !important;
  border-color: var(--lw-text) !important;
}
 
/* Codex labels/help */
body.skin-vector-2022.mw-specialpage .cdx-label__label {
  color: var(--lw-text) !important;
}
body.skin-vector-2022.mw-specialpage .cdx-label__description {
  color: var(--lw-muted) !important;
}
 
/* Codex buttons */
body.skin-vector-2022.mw-specialpage .cdx-button {
  border-radius: 6px !important;
  border-color: var(--lw-input-border) !important;
}
body.skin-vector-2022.mw-specialpage .cdx-button--action-progressive {
  background: var(--lw-text) !important;
  border-color: var(--lw-text) !important;
  color: #fff !important;
}
 
/* =========================================================
  OOUI widgets (still used in places like Preferences)
  ========================================================= */
body.skin-vector-2022.mw-specialpage .oo-ui-inputWidget-input,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget input,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget textarea,
body.skin-vector-2022.mw-specialpage .oo-ui-dropdownWidget .oo-ui-dropdownWidget-handle {
  background: #fff !important;
  color: var(--lw-text) !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}
 
body.skin-vector-2022.mw-specialpage .oo-ui-inputWidget-input:focus,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget input:focus,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget textarea:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px var(--lw-focus) !important;
  border-color: var(--lw-text) !important;
}
 
body.skin-vector-2022.mw-specialpage .oo-ui-labelElement-label {
  color: var(--lw-text) !important;
}
body.skin-vector-2022.mw-specialpage .oo-ui-fieldLayout-helpText {
  color: var(--lw-muted) !important;
}
 
body.skin-vector-2022.mw-specialpage .oo-ui-buttonElement-button,
body.skin-vector-2022.mw-specialpage .mw-ui-button {
  border-radius: 6px !important;
  border-color: var(--lw-input-border) !important;
}
}


sup.reference {
body.skin-vector-2022.mw-specialpage
   display: none;
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive
.oo-ui-buttonElement-button {
   background: var(--lw-text) !important;
  border-color: var(--lw-text) !important;
  color: #fff !important;
}
}

Latest revision as of 09:23, 25 December 2025

/* =========================================================
   Vector 2022: Center header search WITHOUT moving user tools
   ========================================================= */

/* Use Vector's real header row as the layout context */
.vector-header {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
}

/* Force the right-side tools to remain FAR RIGHT */
.vector-header-end {
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

/* Center ONLY the actual search box (do NOT touch wrappers like [role="search"]) */
.vector-header .vector-search-box,
.vector-header .vector-search-box-vue,
.vector-header #p-search {
  position: absolute !important;
  left: 38.7% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  z-index: 1 !important;

  width: min(620px, calc(100vw - 760px)) !important;
}

/* Keep user tools clickable above any overlap */
.vector-header-end,
.vector-user-links,
.vector-user-menu,
#p-personal {
  position: relative !important;
  z-index: 2 !important;
}

/* Mobile: revert to normal flow */
@media (max-width: 900px) {
  .vector-header .vector-search-box,
  .vector-header .vector-search-box-vue,
  .vector-header #p-search {
    position: static !important;
    transform: none !important;
    width: 100% !important;
    margin-top: 8px !important;
  }
}

/* =========================================================
   Lumenward visual policy (grayscale-only)
   ========================================================= */

/* Logo text always black */
.mw-logo a,
.mw-logo a:visited,
.mw-logo a:hover,
.mw-logo a:active {
  color: #000 !important;
  text-decoration: none !important;
}

/* Links: grayscale only */
a { color: #111 !important; }
a:visited { color: #333 !important; }

a:hover,
a:focus {
  color: #111 !important;
  text-decoration: underline !important;
}

/* TOC links specifically */
.vector-toc a,
.vector-toc a:visited,
#toc a,
#toc a:visited {
  color: #111 !important;
}

/* Footer centered on every page */
#footer { text-align: center !important; }

#footer ul,
#footer-info,
#footer-places,
#footer-icons {
  float: none !important;
  display: inline-block !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#footer li {
  float: none !important;
  display: inline !important;
  margin: 0 8px !important;
}

/* =========================================================
   Lumenward – Person Infobox (clean card style)
   ========================================================= */

/* Main infobox card */
.infobox {
  float: right;
  clear: right;
  width: 270px;
  margin: 4.5em 4.5em 1.5em 1.5em;   /* aligns with first paragraph */
  background: #fafafa;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.04);
  font-size: 0.92em;
}

/* Title header */
.infobox th[colspan] {
  background: #f2f2f2;
  font-weight: 600;
  text-align: center;
  padding: 10px 8px;
  border-bottom: 1px solid #e0e0e0;
  border-radius: 10px 10px 0 0;
}

/* Image row container */
.infobox .infobox-image,
.infobox td[colspan]:has(img) {
  padding: 12px;
  background: #f8f8f8;
  border-bottom: 1px solid #e6e6e6;
}

/* Image itself */
.infobox img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

/* Data rows */
.infobox th {
  text-align: left;
  font-weight: 600;          /* titles bold */
  padding: 6px 10px;
  vertical-align: top;
  width: 40%;
  white-space: nowrap;
}

.infobox td {
  padding: 6px 10px;
  vertical-align: top;
}

/* Remove ugly borders */
.infobox tr {
  border: none;
}

/* Subtle row separators */
.infobox tr:not(:last-child) td,
.infobox tr:not(:last-child) th {
  border-bottom: 1px solid #ededed;
}

.mw-parser-output .infobox {
  margin-top: 28px !important; /* increase to move it down */
}

/* Hide category links at bottom of pages */
.catlinks {
  display: none;
}

/* Lumenward: soften category appearance */
#mw-normal-catlinks {
  font-size: 0.9em;
  color: #555;
  border-top: 1px solid #e5e5e5;
  margin-top: 2em;
  padding-top: 0.5em;
}

#mw-normal-catlinks a {
  color: #555;
}

/* Lumenward: Wikipedia-like category styling */
#mw-normal-catlinks {
  margin-top: 2.5em;
  padding-top: 0.6em;
  border-top: 1px solid #ddd;
  font-size: 0.85em;
  color: #666;
}

#mw-normal-catlinks::before {
  content: "Categories: ";
  font-weight: 600;
  color: #444;
}

#mw-normal-catlinks a {
  color: #555;
  text-decoration: none;
}

#mw-normal-catlinks a:hover {
  text-decoration: underline;
}

#lumenward-header-links a {
  color: #000 !important;
}

/* =========================================
   Lumenward header links — match logo hue
   Logo color: #32302f
   ========================================= */

#lumenward-header-links a,
#lumenward-header-links a:link,
#lumenward-header-links a:visited,
#lumenward-header-links a:hover,
#lumenward-header-links a:active {
  color: #32302f !important;
  text-decoration: none;
  font-weight: 600;
}

/* Optional: subtle hover affordance without color shift */
#lumenward-header-links a:hover {
  text-decoration: underline;
}

/* =========================================================
   Lumenward: Special pages + OOUI/Codex token overrides
   Put ONLY in MediaWiki:Common.css
   ========================================================= */

:root {
  --lw-text: #32302f;
  --lw-muted: #6f6a66;
  --lw-bg: #ffffff;
  --lw-border: #e6e1dc;
  --lw-input-border: #cfc7c0;
  --lw-focus: rgba(50,48,47,.22);

  /* Codex-ish tokens (safe if some are unused) */
  --color-base: var(--lw-text);
  --color-subtle: var(--lw-muted);
  --border-color-base: var(--lw-input-border);
  --border-color-subtle: var(--lw-border);
  --background-color-base: var(--lw-bg);
  --background-color-interactive: #fff;
  --background-color-interactive-subtle: #fff;
  --color-progressive: var(--lw-text);
}

/* Base on ALL pages (helps backend containers too) */
html, body,
.mw-page-container, .mw-body, .mw-body-content, #content {
  background: var(--lw-bg) !important;
  color: var(--lw-text) !important;
}

/* Special pages explicitly */
body.mw-specialpage,
body.mw-specialpage .mw-page-container,
body.mw-specialpage .mw-body,
body.mw-specialpage #content {
  background: var(--lw-bg) !important;
  color: var(--lw-text) !important;
}

/* Links on special pages */
body.mw-specialpage a,
body.mw-specialpage a:visited {
  color: var(--lw-text) !important;
}

/* Nuke “standard” form look on special pages: target everything form-like */
body.mw-specialpage input,
body.mw-specialpage select,
body.mw-specialpage textarea,
body.mw-specialpage button {
  font: inherit;
}

/* Native form elements */
body.mw-specialpage input[type="text"],
body.mw-specialpage input[type="password"],
body.mw-specialpage input[type="email"],
body.mw-specialpage input[type="search"],
body.mw-specialpage textarea,
body.mw-specialpage select {
  background: #fff !important;
  color: var(--lw-text) !important;
  border: 1px solid var(--lw-input-border) !important;
  border-radius: 6px !important;
}

body.mw-specialpage input:focus,
body.mw-specialpage textarea:focus,
body.mw-specialpage select:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px var(--lw-focus) !important;
  border-color: var(--lw-text) !important;
}

/* OOUI widgets */
body.mw-specialpage .oo-ui-inputWidget-input,
body.mw-specialpage .oo-ui-textInputWidget input,
body.mw-specialpage .oo-ui-textInputWidget textarea,
body.mw-specialpage .oo-ui-dropdownWidget .oo-ui-dropdownWidget-handle {
  background: #fff !important;
  color: var(--lw-text) !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}

/* Codex widgets (newer MW screens use these) */
body.mw-specialpage .cdx-text-input__input,
body.mw-specialpage .cdx-select__handle,
body.mw-specialpage .cdx-text-area__textarea {
  background: #fff !important;
  color: var(--lw-text) !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}

/* Labels + help text */
body.mw-specialpage label,
body.mw-specialpage .oo-ui-labelElement-label,
body.mw-specialpage .cdx-label__label {
  color: var(--lw-text) !important;
}
body.mw-specialpage .mw-htmlform-help,
body.mw-specialpage .oo-ui-fieldLayout-helpText,
body.mw-specialpage .cdx-label__description {
  color: var(--lw-muted) !important;
}

/* Buttons */
body.mw-specialpage .mw-ui-button,
body.mw-specialpage .oo-ui-buttonElement-button,
body.mw-specialpage .cdx-button {
  border-radius: 6px !important;
  border-color: var(--lw-input-border) !important;
}

/* Progressive buttons */
body.mw-specialpage .mw-ui-button.mw-ui-progressive,
body.mw-specialpage .mw-ui-button.mw-ui-primary,
body.mw-specialpage .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive .oo-ui-buttonElement-button,
body.mw-specialpage .cdx-button--action-progressive {
  background: var(--lw-text) !important;
  border-color: var(--lw-text) !important;
  color: #fff !important;
}

/* =========================================================
   Lumenward — Vector 2022 Special Pages Theme (Codex + OOUI)
   Put at END of MediaWiki:Common.css
   ========================================================= */

/* Vector 2022 root scope */
body.skin-vector-2022.mw-specialpage {
  /* Lumenward palette */
  --lw-text: #32302f;
  --lw-muted: #6f6a66;
  --lw-bg: #ffffff;
  --lw-surface: #ffffff;
  --lw-border: #e6e1dc;
  --lw-input-border: #cfc7c0;
  --lw-focus: rgba(50,48,47,.22);

  /* Codex tokens (these are what most “standard” special-page UI uses) */
  --color-base: var(--lw-text);
  --color-subtle: var(--lw-muted);
  --color-emphasized: var(--lw-text);
  --color-progressive: var(--lw-text);

  --background-color-base: var(--lw-bg);
  --background-color-interactive: #fff;
  --background-color-interactive-subtle: #fff;
  --background-color-neutral: #fff;

  --border-color-base: var(--lw-input-border);
  --border-color-subtle: var(--lw-border);

  --box-shadow-color-progressive--focus: var(--lw-focus);
}

/* Base page surfaces (Vector 2022 containers) */
body.skin-vector-2022.mw-specialpage,
body.skin-vector-2022.mw-specialpage .mw-page-container,
body.skin-vector-2022.mw-specialpage .mw-body,
body.skin-vector-2022.mw-specialpage #content {
  background: var(--lw-bg) !important;
  color: var(--lw-text) !important;
}

/* Headings */
body.skin-vector-2022.mw-specialpage h1,
body.skin-vector-2022.mw-specialpage h2,
body.skin-vector-2022.mw-specialpage h3,
body.skin-vector-2022.mw-specialpage .mw-first-heading {
  color: var(--lw-text) !important;
}

/* Links (Special pages often keep “standard blue” unless forced) */
body.skin-vector-2022.mw-specialpage a,
body.skin-vector-2022.mw-specialpage a:visited,
body.skin-vector-2022.mw-specialpage #content a,
body.skin-vector-2022.mw-specialpage #content a:visited {
  color: var(--lw-text) !important;
}

/* =========================================================
   Codex widgets (newer MW UI, commonly used on Special pages)
   ========================================================= */
body.skin-vector-2022.mw-specialpage .cdx-text-input__input,
body.skin-vector-2022.mw-specialpage .cdx-text-area__textarea,
body.skin-vector-2022.mw-specialpage .cdx-select__handle,
body.skin-vector-2022.mw-specialpage .cdx-checkbox__input,
body.skin-vector-2022.mw-specialpage .cdx-radio__input {
  color: var(--lw-text) !important;
}

body.skin-vector-2022.mw-specialpage .cdx-text-input__input,
body.skin-vector-2022.mw-specialpage .cdx-text-area__textarea,
body.skin-vector-2022.mw-specialpage .cdx-select__handle {
  background: #fff !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}

body.skin-vector-2022.mw-specialpage .cdx-text-input__input:focus,
body.skin-vector-2022.mw-specialpage .cdx-text-area__textarea:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px var(--lw-focus) !important;
  border-color: var(--lw-text) !important;
}

/* Codex labels/help */
body.skin-vector-2022.mw-specialpage .cdx-label__label {
  color: var(--lw-text) !important;
}
body.skin-vector-2022.mw-specialpage .cdx-label__description {
  color: var(--lw-muted) !important;
}

/* Codex buttons */
body.skin-vector-2022.mw-specialpage .cdx-button {
  border-radius: 6px !important;
  border-color: var(--lw-input-border) !important;
}
body.skin-vector-2022.mw-specialpage .cdx-button--action-progressive {
  background: var(--lw-text) !important;
  border-color: var(--lw-text) !important;
  color: #fff !important;
}

/* =========================================================
   OOUI widgets (still used in places like Preferences)
   ========================================================= */
body.skin-vector-2022.mw-specialpage .oo-ui-inputWidget-input,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget input,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget textarea,
body.skin-vector-2022.mw-specialpage .oo-ui-dropdownWidget .oo-ui-dropdownWidget-handle {
  background: #fff !important;
  color: var(--lw-text) !important;
  border-color: var(--lw-input-border) !important;
  border-radius: 6px !important;
}

body.skin-vector-2022.mw-specialpage .oo-ui-inputWidget-input:focus,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget input:focus,
body.skin-vector-2022.mw-specialpage .oo-ui-textInputWidget textarea:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px var(--lw-focus) !important;
  border-color: var(--lw-text) !important;
}

body.skin-vector-2022.mw-specialpage .oo-ui-labelElement-label {
  color: var(--lw-text) !important;
}
body.skin-vector-2022.mw-specialpage .oo-ui-fieldLayout-helpText {
  color: var(--lw-muted) !important;
}

body.skin-vector-2022.mw-specialpage .oo-ui-buttonElement-button,
body.skin-vector-2022.mw-specialpage .mw-ui-button {
  border-radius: 6px !important;
  border-color: var(--lw-input-border) !important;
}

body.skin-vector-2022.mw-specialpage
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive
.oo-ui-buttonElement-button {
  background: var(--lw-text) !important;
  border-color: var(--lw-text) !important;
  color: #fff !important;
}