Jump to content

MediaWiki:Common.css: Difference between revisions

From λ LUMENWARD
No edit summary
No edit summary
 
(73 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* =========================================================
/* =========================================================
   Lumenward — minimal, stable global adjustments
   Vector 2022: Center header search WITHOUT moving user tools
  Skin: Vector 2022
   ========================================================= */
   ========================================================= */


/* 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 */
  Text logo styling (λ LUMENWARD)
  --------------------------------------------------------- */
.mw-logo,
.mw-logo a,
.mw-logo a,
.mw-logo a:visited,
.mw-logo a:visited,
Line 17: Line 66:
}
}


/* 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 {
  Remove "Powered by MediaWiki" everywhere
   color: #000 !important;
  --------------------------------------------------------- */
#footer-poweredby,
#footer-poweredbyico,
.mw-poweredby {
   display: none !important;
}
}


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


/* ---------------------------------------------------------
#lumenward-header-links a,
   Header layout (Vector 2022)
#lumenward-header-links a:link,
   Keep: logo left · search middle · user tools right
#lumenward-header-links a:visited,
   --------------------------------------------------------- */
#lumenward-header-links a:hover,
.mw-header .vector-header-container {
#lumenward-header-links a:active {
   display: flex !important;
  color: #32302f !important;
   align-items: center !important;
  text-decoration: none;
   gap: 16px !important;
  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;
}
}


.mw-header .vector-header-start {
/* Codex labels/help */
   flex: 0 0 auto !important;
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;
}
}


.mw-header .vector-header-middle {
/* Codex buttons */
   flex: 1 1 auto !important;
body.skin-vector-2022.mw-specialpage .cdx-button {
   display: flex !important;
  border-radius: 6px !important;
   justify-content: center !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;
}
}


.mw-header .vector-header-end {
/* =========================================================
   flex: 0 0 auto !important;
  OOUI widgets (still used in places like Preferences)
   margin-left: auto !important;
  ========================================================= */
   display: flex !important;
body.skin-vector-2022.mw-specialpage .oo-ui-inputWidget-input,
   justify-content: flex-end !important;
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 {
  Move ONLY the search bar slightly right (Vector 2022)
  color: var(--lw-text) !important;
  --------------------------------------------------------- */
}
body.skin-vector-2022.mw-specialpage .oo-ui-fieldLayout-helpText {
  color: var(--lw-muted) !important;
}


/* Make sure the middle header zone centers its contents */
body.skin-vector-2022.mw-specialpage .oo-ui-buttonElement-button,
.mw-header .vector-header-middle {
body.skin-vector-2022.mw-specialpage .mw-ui-button {
   display: flex !important;
   border-radius: 6px !important;
   justify-content: center !important;
   border-color: var(--lw-input-border) !important;
}
}


/* Hit the real search wrapper in Vector 2022 (multiple safe selectors) */
body.skin-vector-2022.mw-specialpage
.mw-header .vector-header-middle .vector-search-box,
.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive
.mw-header .vector-header-middle .vector-search-box-vue,
.oo-ui-buttonElement-button {
.mw-header .vector-header-middle form.mw-search,
   background: var(--lw-text) !important;
.mw-header .vector-header-middle #p-search {
   border-color: var(--lw-text) !important;
   width: min(720px, 100%) !important;
   color: #fff !important;
   margin-left: 80px !important;   /* move right */
   margin-right: 0 !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;
}