MediaWiki:Common.css: Difference between revisions
Jump to navigation
Jump to search
m adding new definitions for future changes to the wiki design. |
m Toolbar highlight: add --d-hover (#33333a dark grey) token; use it for dropdown/index/glyph hover instead of near-black --d-panel |
||
| (28 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
.tf-mainpage { | .tf-mainpage { | ||
--tf-black: #0B0B0D; | --tf-black: #0B0B0D; | ||
| Line 319: | Line 9: | ||
--tf-muted: #9A9792; | --tf-muted: #9A9792; | ||
--tf-border: #2A2A2C; | --tf-border: #2A2A2C; | ||
background: var(--tf-black); | background: var(--tf-black); | ||
color: var(--tf-text); | color: var(--tf-text); | ||
| Line 326: | Line 16: | ||
overflow: hidden; | overflow: hidden; | ||
} | } | ||
/* Corner flash — the single deliberate red accent */ | /* Corner flash — the single deliberate red accent */ | ||
.tf-mainpage .tf-flash { | .tf-mainpage .tf-flash { | ||
| Line 336: | Line 26: | ||
background: var(--tf-red); | background: var(--tf-red); | ||
} | } | ||
/* Hero: crest, wordmark, motto */ | /* Hero: crest, wordmark, motto */ | ||
.tf-mainpage .tf-hero { | .tf-mainpage .tf-hero { | ||
| Line 363: | Line 53: | ||
background: var(--tf-gold); | background: var(--tf-gold); | ||
} | } | ||
/* Four-section navigation grid */ | /* Four-section navigation grid */ | ||
.tf-mainpage .tf-navgrid { | .tf-mainpage .tf-navgrid { | ||
| Line 394: | Line 84: | ||
line-height: 1.5; | line-height: 1.5; | ||
} | } | ||
/* Featured article / news / roster columns */ | /* Featured article / news / roster columns */ | ||
.tf-mainpage .tf-content { | .tf-mainpage .tf-content { | ||
| Line 414: | Line 104: | ||
margin-bottom: 10px; | margin-bottom: 10px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
margin-top: 0; | |||
font-weight: normal; | |||
} | |||
.tf-mainpage .tf-rowhead { | |||
padding: 18px 40px 4px; | |||
font-size: 12px; | |||
letter-spacing: 0.09em; | |||
text-transform: uppercase; | |||
font-weight: 600; | |||
color: var(--tf-gold); | |||
} | |||
@media (max-width: 700px) { | |||
.tf-mainpage .tf-rowhead { padding-left: 20px; padding-right: 20px; } | |||
} | |||
.tf-hatnote { | |||
font-style: italic; | |||
padding-left: 1.6em; | |||
margin: 0.15em 0 0.6em 0; | |||
} | } | ||
.tf-mainpage .tf-featured { | .tf-mainpage .tf-featured { | ||
| Line 419: | Line 127: | ||
line-height: 1.65; | line-height: 1.65; | ||
color: var(--tf-text); | color: var(--tf-text); | ||
} | |||
/* Neutralize the FeaturedArticle template's own table styling | |||
(text-align: right; font-variant: small-caps) so it matches | |||
the rest of the page instead of the legacy layout. */ | |||
.tf-mainpage .tf-featured table { | |||
width: 100%; | |||
background: transparent; | |||
border: none; | |||
} | |||
.tf-mainpage .tf-featured td { | |||
text-align: left !important; | |||
font-variant: normal !important; | |||
padding: 0; | |||
} | |||
.tf-mainpage .tf-featured img { | |||
border-radius: 4px; | |||
margin: 0 14px 8px 0; | |||
} | |||
/* Override the sitewide h1-h6 olive accent for just this box, | |||
since the template renders its title as a real <h1>. */ | |||
.tf-mainpage .tf-featured h1 { | |||
font-size: 18px !important; | |||
text-align: left !important; | |||
color: var(--tf-gold) !important; | |||
border-bottom: none !important; | |||
margin: 0 0 8px 0 !important; | |||
} | } | ||
.tf-mainpage .tf-newsitem { | .tf-mainpage .tf-newsitem { | ||
| Line 457: | Line 191: | ||
color: var(--tf-gold); | color: var(--tf-gold); | ||
} | } | ||
/* Footer motto repeat */ | /* Footer motto repeat */ | ||
.tf-mainpage .tf-footer { | .tf-mainpage .tf-footer { | ||
| Line 468: | Line 202: | ||
color: var(--tf-muted); | color: var(--tf-muted); | ||
} | } | ||
/* Mobile: stack everything to one column below 700px */ | /* Mobile: stack everything to one column below 700px */ | ||
@media (max-width: 700px) { | @media (max-width: 700px) { | ||
| Line 487: | Line 221: | ||
flex: 1 1 100%; | flex: 1 1 100%; | ||
} | } | ||
} | |||
/* ============================================================ | |||
SITEWIDE DARK THEME (Vector legacy) — v1 | |||
Palette matches the Main Page card (black / gold / red). | |||
============================================================ */ | |||
:root { | |||
--d-bg:#0B0B0D; --d-panel:#141416; --d-panel2:#1c1c20; | |||
--d-text:#E9E6E0; --d-muted:#9A9792; | |||
--d-gold:#F5BD3F; --d-gold2:#F4A345; --d-red:#BE2F24; | |||
--d-border:#2A2A2C; --d-link:#E7B84B; --d-ext:#7FB2D6; --d-hover:#33333a; | |||
} | |||
html, body { background: var(--d-bg); color: var(--d-text); } | |||
/* Vector legacy light-gradient layers */ | |||
#mw-page-base { background: var(--d-bg) !important; background-image: none !important; } | |||
#mw-head-base { background: var(--d-bg) !important; } | |||
/* Content area */ | |||
.mw-body, #content, #bodyContent, #mw-content-text { background: var(--d-panel); color: var(--d-text); } | |||
.mw-body { border: 1px solid var(--d-border); } | |||
.mw-body-content { color: var(--d-text); } | |||
/* Links */ | |||
.mw-body a, #mw-panel a, #p-personal a, .mw-body a:visited, #footer a { color: var(--d-link); } | |||
.mw-body a.new, a.new { color: var(--d-red) !important; } | |||
.mw-body a.external, a.external { color: var(--d-ext); } | |||
/* Headings */ | |||
.mw-body h1, .mw-body h2, .mw-body h3, .mw-body h4, .mw-body h5, .mw-body h6, | |||
#firstHeading, .firstHeading { color: var(--d-gold); font-variant: small-caps; letter-spacing: 0.03em; } | |||
.mw-body h1, .mw-body h2, #firstHeading, .firstHeading { border-bottom: 1px solid var(--d-border); } | |||
/* Header / tabs / personal tools (Vector legacy) */ | |||
#mw-head, #mw-head-base { color: var(--d-text); } | |||
.vectorTabs li, .vectorMenu .menu { background: var(--d-panel2); } | |||
.vectorTabs li a, .vectorTabs li a span, .vectorMenu h3 span { color: var(--d-muted) !important; } | |||
.vectorTabs li.selected { background: var(--d-panel); } | |||
.vectorTabs li.selected a, .vectorTabs li.selected a span { color: var(--d-gold) !important; } | |||
#p-personal ul li a { color: var(--d-link); } | |||
/* Sidebar */ | |||
#mw-panel .portal h3 { color: var(--d-muted); } | |||
#mw-panel .portal .body ul li a { color: var(--d-link); } | |||
/* Search */ | |||
#simpleSearch, #searchInput { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); } | |||
/* Tables */ | |||
.wikitable { background: var(--d-panel); color: var(--d-text); border-color: var(--d-border); } | |||
.wikitable > * > tr > th, .wikitable > tr > th { background: var(--d-panel2); color: var(--d-gold); border-color: var(--d-border); } | |||
.wikitable > * > tr > td, .wikitable > tr > td { border-color: var(--d-border); } | |||
/* List bullets/numbers: default marker color is too dark on the dark theme, so lighten it */ | |||
#mw-content-text ul > li::marker, | |||
#mw-content-text ol > li::marker, | |||
#mw-content-text dl dd::marker { color: var(--d-muted); } | |||
/* Reference lists, footnotes, and "Record notes" (pii group): the skin default | |||
leaves these on a light background, which is invisible against the dark theme. | |||
Force a transparent panel and readable text/links. */ | |||
#mw-content-text .mw-references-wrap, | |||
#mw-content-text ol.references, | |||
#mw-content-text .references, | |||
#mw-content-text .reference-text, | |||
#mw-content-text ol.references li { | |||
background: transparent; | |||
color: var(--d-text); | |||
} | |||
#mw-content-text .reference-text a, | |||
#mw-content-text .mw-cite-backlink a { color: var(--d-link); } | |||
#mw-content-text .references { border-color: var(--d-border); } | |||
/* TOC, thumbs, code, catlinks, messageboxes */ | |||
.toc, #toc, .thumbinner, .catlinks, pre, code, .mw-code, | |||
.mw-message-box, .warningbox, .errorbox, .successbox { | |||
background: var(--d-panel2); color: var(--d-text); border-color: var(--d-border); | |||
} | |||
.toc a, #toc a, .catlinks a { color: var(--d-link); } | |||
.thumbcaption, .catlinks { color: var(--d-muted); } | |||
/* Edit form */ | |||
textarea, .mw-editfont-monospace { background:#101012 !important; color:var(--d-text) !important; border-color:var(--d-border) !important; } | |||
input[type=text], input[type=search], input[type=password], select { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); } | |||
.mw-ui-button, input[type=submit], button { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); } | |||
/* Footer */ | |||
#footer { background: var(--d-bg); color: var(--d-muted); } | |||
hr { border: 0; border-top: 1px solid var(--d-border); } | |||
/* ===== Fleet News article pages ===== */ | |||
body:has(.tf-newspage) h1#firstHeading, body:has(.tf-newspage) h1.firstHeading { display: none; } | |||
.tf-newspage { | |||
background:#0B0B0D; color:#E9E6E0; border:1px solid var(--d-border); | |||
border-radius:12px; overflow:hidden; position:relative; max-width:860px; margin:8px auto; | |||
} | |||
.tf-newspage a, .tf-newspage a:visited { color:var(--d-gold); } | |||
.tf-newspage .tf-np-flash { position:absolute; top:0; right:0; width:70px; height:40px; background:var(--d-red); } | |||
.tf-newspage .tf-np-head { padding:34px 42px 22px; border-bottom:3px solid var(--d-gold); } | |||
.tf-newspage .tf-np-kicker { font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--d-red); margin-bottom:12px; } | |||
.tf-newspage .tf-np-title { font-size:28px; font-weight:600; color:var(--d-gold); line-height:1.22; } | |||
.tf-newspage .tf-np-meta { font-size:13px; color:var(--d-muted); margin-top:12px; } | |||
.tf-newspage .tf-np-body { padding:24px 42px 12px; font-size:15px; line-height:1.7; color:var(--d-text); } | |||
.tf-newspage .tf-np-body p { margin:0 0 14px; } | |||
.tf-newspage .tf-np-body b, .tf-newspage .tf-np-body strong { color:var(--d-gold2); } | |||
.tf-newspage .tf-np-foot { padding:16px 42px 22px; border-top:1px solid var(--d-border); } | |||
.tf-newspage .tf-np-foot a, .tf-newspage .tf-np-foot a:visited { color:var(--d-muted); font-size:11px; letter-spacing:0.05em; text-transform:uppercase; } | |||
@media (max-width:700px){ .tf-newspage .tf-np-head,.tf-newspage .tf-np-body,.tf-newspage .tf-np-foot{padding-left:22px;padding-right:22px;} .tf-newspage .tf-np-title{font-size:22px;} } | |||
/* ============================================================ | |||
DARK THEME part 2 — editing, diffs, changes lists, special pages | |||
============================================================ */ | |||
/* --- Diffs (the light green/red cells are unreadable on dark) --- */ | |||
td.diff-otitle, td.diff-ntitle, td.diff-marker { color: var(--d-text); } | |||
td.diff-context { background: var(--d-panel2); color: var(--d-muted); border-color: var(--d-border); } | |||
td.diff-addedline { background: #13261b; border-color: #2c5a3a; } | |||
td.diff-deletedline { background: #2b1618; border-color: #5a2c30; } | |||
td.diff-addedline .diffchange { background: #1f5133; color: #c7f0d5; } | |||
td.diff-deletedline .diffchange { background: #5a2330; color: #f2c9d0; } | |||
.diff-lineno { color: var(--d-gold); } | |||
table.diff, table.diff td, div.mw-diff-inline-changes { border-color: var(--d-border); color: var(--d-text); } | |||
/* --- Changes lists: Recent Changes, Watchlist, History --- */ | |||
.mw-changeslist, .mw-changeslist a, .mw-history-histlinks a, | |||
.special li, .special li a, .mw-contributions-list a { color: var(--d-text); } | |||
.mw-changeslist a, .mw-changeslist-links a, .mw-history-histlinks a { color: var(--d-link); } | |||
.mw-plusminus-pos { color: #6fbf7f; } | |||
.mw-plusminus-neg { color: #d98a8a; } | |||
.mw-plusminus-null { color: var(--d-muted); } | |||
abbr.newpage, abbr.minoredit, abbr.botedit, abbr.unpatrolled { color: var(--d-gold); } | |||
.mw-changeslist-date { color: var(--d-muted); } | |||
/* --- Data tables / pagers (most special pages use these) --- */ | |||
.mw-datatable, table.mw-datatable, .TablePager, .wikitable.sortable { | |||
background: var(--d-panel); color: var(--d-text); border-color: var(--d-border); | |||
} | |||
.mw-datatable th, .TablePager th { background: var(--d-panel2); color: var(--d-gold); border-color: var(--d-border); } | |||
.mw-datatable td, .TablePager td { border-color: var(--d-border); } | |||
.mw-datatable tr:hover td, .TablePager tr:hover td { background: var(--d-panel2); } | |||
.oo-ui-tag-item, .cloud a { color: var(--d-link); } | |||
/* --- Edit view extras: summary, options, toolbar, checkboxes --- */ | |||
fieldset { border-color: var(--d-border); } | |||
legend { color: var(--d-gold); } | |||
label, .mw-label { color: var(--d-text); } | |||
#wpSummary, input#wpSummary { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); } | |||
.editOptions { background: var(--d-panel2); border-color: var(--d-border); color: var(--d-text); } | |||
.templatesUsed, .hiddencats, .mw-editTools, .editCheckboxes, .editHelp { color: var(--d-muted); } | |||
.wikiEditor-ui, .wikiEditor-ui-toolbar, .wikiEditor-ui-toolbar .tabs, | |||
.wikiEditor-ui-toolbar .sections { background: var(--d-panel2); border-color: var(--d-border); } | |||
.mw-editform .cancelLink a { color: var(--d-link); } | |||
/* Toolbar icon buttons are monochrome dark glyphs (inline background-image) that vanish on the dark toolbar; invert to white. */ | |||
.wikiEditor-ui-toolbar [style*="url("], | |||
.wikiEditor-ui-toolbar .tool-button, | |||
.wikiEditor-ui-toolbar .oo-ui-iconElement-icon { filter: invert(1); } | |||
/* Toolbar text controls (dropdowns, group labels, section booklets) hardcode light-theme colors with higher specificity; override with matched specificity + !important. */ | |||
/* Heading dropdown: handle, label, menu, options */ | |||
.wikiEditor-ui-toolbar .group .tool-select, | |||
.wikiEditor-ui-toolbar .group .tool-select .menu .options, | |||
.wikiEditor-ui-toolbar .group .tool-select .options { background-color: var(--d-panel2) !important; border-color: var(--d-border) !important; } | |||
.wikiEditor-ui-toolbar .group .tool-select .label, | |||
.wikiEditor-ui-toolbar .group .tool-select .options .option { color: var(--d-text) !important; } | |||
.wikiEditor-ui-toolbar .group .tool-select .options .option:hover { background-color: var(--d-hover) !important; color: var(--d-text) !important; } | |||
.wikiEditor-ui-toolbar .group .tool-select .label.skin-invert { filter: none !important; } | |||
.wikiEditor-ui-toolbar .group .tool-select .label::after { filter: invert(1); } | |||
/* Group labels (Format, Insert, ...) */ | |||
.wikiEditor-ui-toolbar .group .label { color: var(--d-text) !important; } | |||
/* Section tabs (Advanced / Special characters / Help) */ | |||
.wikiEditor-ui-toolbar .tabs .tab a { color: var(--d-link) !important; } | |||
/* Special-characters & Help booklets: index list + hover/current highlight */ | |||
.wikiEditor-ui-toolbar .booklet > .index > div { color: var(--d-text); } | |||
.wikiEditor-ui-toolbar .booklet > .index > div:hover, | |||
.wikiEditor-ui-toolbar .booklet > .index > .current, | |||
.wikiEditor-ui-toolbar .booklet > .index .wikiEditor-character-highlighted { background-color: var(--d-hover) !important; color: var(--d-text) !important; } | |||
/* Help tables + special-character glyph tiles */ | |||
.wikiEditor-ui-toolbar .booklet table th, | |||
.wikiEditor-ui-toolbar .booklet table td, | |||
.wikiEditor-ui-toolbar .booklet .cell span { color: var(--d-text); border-color: var(--d-border); } | |||
.wikiEditor-ui-toolbar .page-characters div span { color: var(--d-text) !important; border-color: var(--d-border); } | |||
.wikiEditor-ui-toolbar .page-characters div span:hover { background-color: var(--d-hover) !important; border-color: var(--d-gold); } | |||
/* --- OOUI widgets (used across modern special pages / dialogs) --- */ | |||
.oo-ui-textInputWidget input, .oo-ui-textInputWidget textarea, | |||
.oo-ui-dropdownWidget-handle, .oo-ui-comboBoxInputWidget input, | |||
.oo-ui-selectFileInputWidget-dropTarget { | |||
background: var(--d-panel2) !important; color: var(--d-text) !important; border-color: var(--d-border) !important; | |||
} | |||
.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button { | |||
background: var(--d-panel2); color: var(--d-text); border-color: var(--d-border); | |||
} | |||
.oo-ui-panelLayout-framed, .oo-ui-window-body, .oo-ui-messageDialog-message { | |||
background: var(--d-panel); color: var(--d-text); | |||
} | |||
.oo-ui-labelElement-label, .oo-ui-fieldLayout-header label, .oo-ui-inline-help { color: var(--d-text); } | |||
/* --- Search results --- */ | |||
.searchresults, .mw-search-result-heading a, .mw-search-results li { color: var(--d-text); } | |||
.mw-search-result-data { color: var(--d-muted); } | |||
.searchmatch { color: var(--d-gold); font-weight: bold; } | |||
.mw-search-profile-tabs, .search-types .current a { background: var(--d-panel2); border-color: var(--d-border); } | |||
/* --- Misc content elements --- */ | |||
blockquote { border-left: 3px solid var(--d-border); color: var(--d-text); } | |||
dl dt { color: var(--d-gold); } | |||
.mw-editsection a, .mw-indicators a, .redirectText a { color: var(--d-link); } | |||
#siteNotice, #localNotice, .mw-headline { color: var(--d-text); } | |||
.navbox, .mw-parser-output .navbox { background: var(--d-panel2); border-color: var(--d-border); color: var(--d-text); } | |||
.mw-message-box-warning, .mw-message-box-error, .mw-message-box-success { color: var(--d-text); } | |||
/* ============================================================ | |||
DARK THEME part 3 — correct modern Vector-legacy class names | |||
(this wiki uses .vector-menu-* / .vector-legacy-sidebar / .mw-footer) | |||
============================================================ */ | |||
/* Sidebar */ | |||
#mw-panel, .vector-legacy-sidebar { color: var(--d-muted); } | |||
.vector-menu-portal .vector-menu-heading, .vector-menu-portal .vector-menu-heading-label { color: var(--d-muted); } | |||
.vector-menu-portal .mw-list-item a, #mw-panel .mw-list-item a { color: var(--d-link); } | |||
/* Tabs + dropdown menus at top of content */ | |||
.vector-menu-tabs .mw-list-item { background: var(--d-panel2); } | |||
.vector-menu-tabs .mw-list-item a { color: var(--d-muted); } | |||
.vector-menu-tabs .mw-list-item.selected { background: var(--d-panel); } | |||
.vector-menu-tabs .mw-list-item.selected a { color: var(--d-gold); } | |||
.vector-menu-heading, .vector-menu-heading-label { color: var(--d-muted); } | |||
.vector-menu-dropdown .vector-menu-content, .vector-menu-dropdown-noicon .vector-menu-content { | |||
background: var(--d-panel2); border-color: var(--d-border); | |||
} | |||
.vector-menu-dropdown .mw-list-item a { color: var(--d-link); } | |||
/* Personal tools (top-right user links) */ | |||
.mw-portlet-personal .mw-list-item a, #p-personal .mw-list-item a { color: var(--d-link); } | |||
/* Body wrappers inherit the dark panel */ | |||
.vector-body, .mw-body-content { background: transparent; color: var(--d-text); } | |||
/* Footer (modern class) */ | |||
.mw-footer { background: var(--d-bg); color: var(--d-muted); } | |||
.mw-footer a, .mw-footer a:visited { color: var(--d-link); } | |||
.mw-footer li, .mw-footer #footer-info li { color: var(--d-muted); } | |||
/* History: core highlights compared revisions with a LIGHT bg (#f8f9fa) — darken it */ | |||
#pagehistory li.selected { background-color: var(--d-panel2) !important; color: var(--d-text) !important; outline-color: var(--d-gold) !important; } | |||
#pagehistory li.selected a, #pagehistory li.selected a:visited { color: var(--d-link) !important; } | |||
/* --- Recent Changes: RCFilters header + legend (light-on-light by default) --- */ | |||
.mw-changeslist-legend { | |||
background: var(--d-panel2) !important; color: var(--d-text) !important; border-color: var(--d-border) !important; | |||
} | |||
.mw-changeslist-legend dt, .mw-changeslist-legend dd, .mw-changeslist-legend p, | |||
.mw-changeslist-legend .mw-legend-item { color: var(--d-text) !important; } | |||
.mw-changeslist-legend a, .mw-changeslist-legend-heading { color: var(--d-gold) !important; } | |||
.mw-rcfilters-head, .mw-rcfilters-ui-filterWrapperWidget { color: var(--d-text); } | |||
.mw-rcfilters-ui-filterTagMultiselectWidget-header, | |||
.mw-rcfilters-ui-filterWrapperWidget-showNewChanges a { color: var(--d-gold) !important; } | |||
.mw-rcfilters-ui-filterTagMultiselectWidget .oo-ui-tagMultiselectWidget-handle, | |||
.mw-rcfilters-ui-filterTagMultiselectWidget-multiselectWrapper, | |||
.mw-rcfilters-ui-filterWrapperWidget-filters, | |||
.mw-rcfilters-ui-menuSelectWidget, | |||
.mw-rcfilters-ui-filterMenuOptionWidget, | |||
.mw-rcfilters-ui-savedLinksListWidget { | |||
background: var(--d-panel2) !important; border-color: var(--d-border) !important; color: var(--d-text) !important; | |||
} | |||
.mw-rcfilters-ui-filterMenuOptionWidget-label, .mw-rcfilters-ui-itemMenuOptionWidget, | |||
.mw-rcfilters-ui-tableWidget, .oo-ui-tagItemWidget-label { color: var(--d-text) !important; } | |||
.mw-rcfilters-ui-highlights, .mw-rcfilters-ui-changesLimitAndDateButtonWidget { color: var(--d-text) !important; } | |||
/* News feed: date label above headline */ | |||
.tf-mainpage .tf-newsitem { flex-direction: column-reverse; } | |||
/* Order index tables (DPL-built): tint superseded/rescinded/amended rows */ | |||
/* {{Order info}} status span: metadata for the DPL index only — hide it on the article page, show it inside the index table */ | |||
.ostat { display: none; } | |||
.orderindex .ostat { display: inline; } | |||
.orderindex tr:has(.ostat-superseded), .orderindex tr:has(.ostat-rescinded) { background: rgba(190,47,36,0.30) !important; } | |||
.orderindex tr:has(.ostat-amended) { background: rgba(0,80,80,0.35) !important; } | |||
.orderindex .ostat-superseded, .orderindex .ostat-rescinded { color:#ff6b6b; font-weight:bold; } | |||
.orderindex .ostat-amended { color:#5fc9c9; font-weight:bold; } | |||
.orderindex .ostat-active { color: var(--d-muted); } | |||
/* Policy Documents index (Portal:Policy Documents) */ | |||
.tf-pd-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:16px; margin:16px 0; } | |||
.tf-pd-panel { background:var(--d-panel2); border:1px solid var(--d-border); border-top:3px solid var(--d-gold); border-radius:7px; padding:14px 16px 16px; } | |||
.tf-pd-panel h3 { margin:0 0 2px; padding:0; border:0; color:var(--d-gold); font-size:1.08em; } | |||
.tf-pd-sub { color:var(--d-muted); font-size:.78em; margin-bottom:10px; text-transform:uppercase; letter-spacing:.04em; } | |||
.tf-pd-item { display:block; padding:5px 0; border-top:1px solid rgba(255,255,255,.06); line-height:1.3; } | |||
.tf-pd-item:first-of-type { border-top:0; } | |||
.tf-pd-item .n { display:inline-block; margin-right:0.9em; color:var(--d-gold2); font-weight:bold; font-size:.8em; } | |||
.tf-pd-hist { border-top-color:var(--d-red); } | |||
.tf-pd-hist h3 { color:#e08a8a; } | |||
.tf-pd-hist .tf-pd-item a { color:var(--d-muted); } | |||
.tf-pd-note { background:var(--d-panel); border-left:4px solid var(--d-gold); border-radius:0 5px 5px 0; padding:11px 15px; margin:16px 0; } | |||
.tf-pd-note b { color:var(--d-gold); } | |||
/* advanced-search + OOUI menu contrast (namespace dropdown/checkbox menu) */ | |||
#mw-searchoptions, #powersearch, .mw-search-availablenamespaces, .mw-search-profile-form { | |||
background: var(--d-panel); color: var(--d-text); border-color: var(--d-border); | |||
} | |||
#mw-searchoptions label, #mw-searchoptions legend, .mw-search-availablenamespaces label, .mw-search-profile-form label { color: var(--d-text); } | |||
.oo-ui-menuSelectWidget, .oo-ui-popupWidget-body, .oo-ui-menuOptionWidget, | |||
.oo-ui-checkboxMultiselectWidget, .oo-ui-checkboxMultioptionWidget, .oo-ui-dropdownWidget-handle { | |||
background-color: var(--d-panel2); color: var(--d-text); border-color: var(--d-border); | |||
} | |||
.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted, .oo-ui-menuOptionWidget.oo-ui-optionWidget-selected { | |||
background-color: var(--d-panel); color: var(--d-gold); | |||
} | |||
/* Fit the full-resolution Tenth Fleet crest into the legacy-Vector logo box | |||
(the source image is 1400x1400; without this it renders zoomed/cropped). */ | |||
.mw-wiki-logo, | |||
#p-logo a { | |||
background-size: contain !important; | |||
background-position: center center !important; | |||
background-repeat: no-repeat !important; | |||
} | |||
/* ============================================================ | |||
DARK THEME part 4 — special-page catch-all (2026-07) | |||
Some special pages (lists, pagers, forms) render core components | |||
that ship their own light background, leaving light theme-text on | |||
white → unreadable. Force the whole special-page content dark. | |||
Scoped to body.ns-special so normal article pages are untouched. | |||
============================================================ */ | |||
body.ns-special #content, | |||
body.ns-special .mw-body, | |||
body.ns-special #bodyContent, | |||
body.ns-special #mw-content-text, | |||
body.ns-special .mw-body-content, | |||
body.ns-special .mw-spcontent { | |||
background-color: var(--d-panel) !important; | |||
color: var(--d-text) !important; | |||
} | |||
body.ns-special #mw-content-text table, | |||
body.ns-special #mw-content-text td, | |||
body.ns-special #mw-content-text tr, | |||
body.ns-special #mw-content-text fieldset, | |||
body.ns-special #mw-content-text .oo-ui-panelLayout, | |||
body.ns-special #mw-content-text .mw-htmlform, | |||
body.ns-special #mw-content-text .cdx-table__table { | |||
background-color: var(--d-panel) !important; | |||
border-color: var(--d-border) !important; | |||
} | |||
body.ns-special #mw-content-text th { | |||
background-color: var(--d-panel2) !important; | |||
color: var(--d-gold) !important; | |||
border-color: var(--d-border) !important; | |||
} | |||
body.ns-special #mw-content-text li, | |||
body.ns-special #mw-content-text dd, | |||
body.ns-special #mw-content-text dt, | |||
body.ns-special #mw-content-text p { color: var(--d-text) !important; } | |||
body.ns-special #mw-content-text a, | |||
body.ns-special #mw-content-text a:visited { color: var(--d-link) !important; } | |||
body.ns-special #mw-content-text a.new, | |||
body.ns-special #mw-content-text a.new:visited { color: var(--d-red) !important; } | |||
/* Special-page hover highlight — the part-4 catch-all fixes cell bg with | |||
!important, which flattened the row hover. Restore a clearly visible, | |||
gold-tinted highlight (higher specificity via :hover so it wins). */ | |||
body.ns-special #mw-content-text tr:hover td, | |||
body.ns-special #mw-content-text tr:hover th, | |||
body.ns-special #mw-content-text table.mw-datatable tr:hover td, | |||
body.ns-special #mw-content-text .TablePager tr:hover td, | |||
body.ns-special #mw-content-text li:hover, | |||
body.ns-special #mw-content-text .mw-specialpages-list li:hover, | |||
body.ns-special #mw-content-text .mw-changeslist li:hover { | |||
background-color: #3a3421 !important; /* warm gold-tinted, ~3x brighter than #141416 */ | |||
color: var(--d-text) !important; | |||
} | |||
/* ============================================================ | |||
Awards namespace (ns 6002) — page beautification | |||
============================================================ */ | |||
body.ns-6002 #mw-content-text > p:first-of-type { | |||
font-size: 108%; line-height: 1.6; color: #EFEAE6; | |||
border-left: 3px solid #8A6D1E; padding: 2px 0 2px 14px; margin-bottom: 1.1em; | |||
} | |||
body.ns-6002 #mw-content-text h2 { | |||
color: var(--d-gold); font-variant: small-caps; letter-spacing: 0.04em; | |||
border-bottom: 2px solid #8A6D1E; padding-bottom: 4px; margin-top: 1.4em; | |||
} | |||
body.ns-6002 #mw-content-text h3 { | |||
color: #F4A345; border-bottom: 1px solid #2A2A2C; padding-bottom: 2px; | |||
} | |||
body.ns-6002 #mw-content-text .wikitable { | |||
border: 1px solid #2A2A2C; background: #141416; box-shadow: 0 1px 3px rgba(0,0,0,0.4); | |||
} | |||
body.ns-6002 #mw-content-text .wikitable > * > tr > th { | |||
background: #232326; color: var(--d-gold); border: 1px solid #2A2A2C; | |||
font-variant: small-caps; letter-spacing: 0.03em; | |||
} | |||
body.ns-6002 #mw-content-text .wikitable > * > tr > td { border: 1px solid #262628; } | |||
/* zebra striping — skip rows carrying an inline style so {{new award}} orange survives */ | |||
body.ns-6002 #mw-content-text .wikitable > tbody > tr:nth-child(even):not([style]) > td { background: #18181b; } | |||
body.ns-6002 #mw-content-text .wikitable > tbody > tr:hover:not([style]) > td { background: #26210f; } | |||
/* ============================================================ | |||
Special-namespace Codex/OOUI form widgets -> dark theme | |||
(UserLogin, CreateAccount, PasswordReset, Preferences, Upload, Block, ...) | |||
These are painted by ResourceLoader modules the content rule can't reach. | |||
============================================================ */ | |||
body.ns-special #mw-content-text .cdx-text-input__input, | |||
body.ns-special #mw-content-text .cdx-text-input__input:enabled, | |||
body.ns-special #mw-content-text .cdx-text-area__textarea, | |||
body.ns-special #mw-content-text .cdx-select__handle, | |||
body.ns-special #mw-content-text .oo-ui-inputWidget-input { | |||
background-color: #1c1c20 !important; | |||
color: var(--d-text) !important; | |||
border-color: var(--d-border) !important; | |||
} | |||
body.ns-special #mw-content-text .cdx-text-input__input:enabled:read-only { | |||
background-color: #141416 !important; | |||
color: var(--d-muted) !important; | |||
} | |||
body.ns-special #mw-content-text .cdx-label__label, | |||
body.ns-special #mw-content-text .cdx-label__label__text, | |||
body.ns-special #mw-content-text .cdx-label__description, | |||
body.ns-special #mw-content-text .cdx-checkbox__label, | |||
body.ns-special #mw-content-text .cdx-field__help-text, | |||
body.ns-special #mw-content-text .oo-ui-labelElement-label, | |||
body.ns-special #mw-content-text .oo-ui-fieldLayout-header label { | |||
color: var(--d-text) !important; | |||
} | |||
/* CAPTCHA box on CreateAccount */ | |||
body.ns-special #mw-content-text .fancycaptcha-captcha-container, | |||
body.ns-special #mw-content-text .fancycaptcha-captcha-and-reload { | |||
background-color: #1c1c20 !important; | |||
border-color: var(--d-border) !important; | |||
} | |||
/* ============================================================ | |||
Documentation callout boxes (tip / note / warning / example / steps) | |||
============================================================ */ | |||
.tf-tip, .tf-note, .tf-warn, .tf-example { | |||
margin: 12px 0; padding: 10px 14px; border-radius: 6px; | |||
border-left: 4px solid #2A2A2C; background: #17171a; color: var(--d-text); | |||
} | |||
.tf-tip { border-left-color: #1E7A3E; } | |||
.tf-note { border-left-color: #2E4A6A; } | |||
.tf-warn { border-left-color: #BE2F24; } | |||
.tf-example { border-left-color: #8A6D1E; background:#141416; } | |||
.tf-tip .tf-lbl { color:#63c187; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; } | |||
.tf-note .tf-lbl { color:#7fa8d8; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; } | |||
.tf-warn .tf-lbl { color:#e79b9b; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; } | |||
.tf-example .tf-lbl { color:#F5BD3F; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; } | |||
.tf-lead { font-size:106%; line-height:1.6; border-left:3px solid #8A6D1E; padding:2px 0 2px 14px; margin-bottom:1em; color:#EFEAE6; } | |||
.tf-steps { counter-reset: tfstep; } | |||
.tf-steps > li { margin:8px 0; } | |||
/* ===== Mobile readability for article content (added 2026-07-18) ===== | |||
Scoped to narrow viewports; desktop layout unchanged. Complements the | |||
existing tf-mainpage @media rules above. */ | |||
@media (max-width: 700px) { | |||
/* Infoboxes span full width instead of squeezing body text into a sliver */ | |||
.mw-parser-output .infobox, | |||
.mw-parser-output .sidebar, | |||
.mw-parser-output .tf-cbox, | |||
.mw-parser-output .tf-abox, | |||
.mw-parser-output .tf-pbox, | |||
.mw-parser-output .tf-ebox { | |||
float: none !important; | |||
width: auto !important; | |||
max-width: 100% !important; | |||
margin: 0.6em auto !important; | |||
box-sizing: border-box; | |||
} | |||
/* Wide data tables scroll within their own box, not the whole page */ | |||
.mw-parser-output .wikitable, | |||
.mw-parser-output .tf-navbox { | |||
display: block; | |||
overflow-x: auto; | |||
-webkit-overflow-scrolling: touch; | |||
max-width: 100%; | |||
} | |||
/* Images never force horizontal overflow */ | |||
.mw-parser-output img { | |||
max-width: 100%; | |||
height: auto; | |||
} | |||
} | } | ||
Latest revision as of 00:25, 29 July 2026
.tf-mainpage {
--tf-black: #0B0B0D;
--tf-panel: #141416;
--tf-gold-hi: #F4D736;
--tf-gold: #F5BD3F;
--tf-gold-shadow: #F4A345;
--tf-red: #BE2F24;
--tf-text: #E9E6E0;
--tf-muted: #9A9792;
--tf-border: #2A2A2C;
background: var(--tf-black);
color: var(--tf-text);
border-radius: 12px;
position: relative;
overflow: hidden;
}
/* Corner flash — the single deliberate red accent */
.tf-mainpage .tf-flash {
position: absolute;
top: 0;
right: 0;
width: 80px;
height: 44px;
background: var(--tf-red);
}
/* Hero: crest, wordmark, motto */
.tf-mainpage .tf-hero {
display: flex;
align-items: center;
gap: 28px;
padding: 36px 40px 30px;
}
.tf-mainpage .tf-hero img {
border: 0;
flex-shrink: 0;
}
.tf-mainpage .tf-word {
font-size: 32px;
font-weight: 600;
color: var(--tf-gold);
letter-spacing: 0.01em;
}
.tf-mainpage .tf-motto {
font-size: 16px;
color: var(--tf-muted);
margin-top: 6px;
}
.tf-mainpage .tf-trim {
height: 3px;
background: var(--tf-gold);
}
/* Four-section navigation grid */
.tf-mainpage .tf-navgrid {
display: flex;
gap: 14px;
padding: 26px 40px;
flex-wrap: wrap;
}
.tf-mainpage .tf-navcard {
flex: 1 1 180px;
border: 1px solid var(--tf-gold-shadow);
border-radius: 8px;
padding: 16px 14px;
background: var(--tf-panel);
}
.tf-mainpage .tf-navcard-title {
font-size: 11px;
letter-spacing: 0.06em;
color: var(--tf-gold);
margin-bottom: 8px;
text-transform: uppercase;
}
.tf-mainpage .tf-navcard-title a,
.tf-mainpage .tf-navcard-title a:visited {
color: var(--tf-gold) !important;
}
.tf-mainpage .tf-navcard-desc {
font-size: 12px;
color: var(--tf-muted);
line-height: 1.5;
}
/* Featured article / news / roster columns */
.tf-mainpage .tf-content {
display: flex;
gap: 24px;
padding: 8px 40px 30px;
border-top: 1px solid var(--tf-border);
margin-top: 10px;
flex-wrap: wrap;
}
.tf-mainpage .tf-col {
flex: 1 1 320px;
padding-top: 24px;
}
.tf-mainpage .tf-section-label {
font-size: 11px;
letter-spacing: 0.05em;
color: var(--tf-gold-shadow);
margin-bottom: 10px;
text-transform: uppercase;
margin-top: 0;
font-weight: normal;
}
.tf-mainpage .tf-rowhead {
padding: 18px 40px 4px;
font-size: 12px;
letter-spacing: 0.09em;
text-transform: uppercase;
font-weight: 600;
color: var(--tf-gold);
}
@media (max-width: 700px) {
.tf-mainpage .tf-rowhead { padding-left: 20px; padding-right: 20px; }
}
.tf-hatnote {
font-style: italic;
padding-left: 1.6em;
margin: 0.15em 0 0.6em 0;
}
.tf-mainpage .tf-featured {
font-size: 13px;
line-height: 1.65;
color: var(--tf-text);
}
/* Neutralize the FeaturedArticle template's own table styling
(text-align: right; font-variant: small-caps) so it matches
the rest of the page instead of the legacy layout. */
.tf-mainpage .tf-featured table {
width: 100%;
background: transparent;
border: none;
}
.tf-mainpage .tf-featured td {
text-align: left !important;
font-variant: normal !important;
padding: 0;
}
.tf-mainpage .tf-featured img {
border-radius: 4px;
margin: 0 14px 8px 0;
}
/* Override the sitewide h1-h6 olive accent for just this box,
since the template renders its title as a real <h1>. */
.tf-mainpage .tf-featured h1 {
font-size: 18px !important;
text-align: left !important;
color: var(--tf-gold) !important;
border-bottom: none !important;
margin: 0 0 8px 0 !important;
}
.tf-mainpage .tf-newsitem {
display: flex;
flex-direction: column;
gap: 2px;
border-left: 3px solid var(--tf-red);
padding: 6px 0 10px 12px;
font-size: 12px;
color: #cccccc;
margin-bottom: 6px;
}
.tf-mainpage .tf-cat {
color: var(--tf-red);
font-size: 10px;
letter-spacing: 0.04em;
display: block;
}
.tf-mainpage .tf-roster {
display: flex;
flex-direction: column;
gap: 8px;
}
.tf-mainpage .tf-ship {
display: flex;
justify-content: space-between;
border: 1px solid var(--tf-border);
border-radius: 6px;
padding: 8px 12px;
font-size: 12px;
color: var(--tf-text);
}
.tf-mainpage .tf-ship a,
.tf-mainpage .tf-ship a:visited {
color: var(--tf-text) !important;
}
.tf-mainpage .tf-hull {
color: var(--tf-gold);
}
/* Footer motto repeat */
.tf-mainpage .tf-footer {
text-align: center;
padding: 20px;
border-top: 1px solid var(--tf-border);
}
.tf-mainpage .tf-motto2 {
font-size: 12px;
color: var(--tf-muted);
}
/* Mobile: stack everything to one column below 700px */
@media (max-width: 700px) {
.tf-mainpage .tf-hero {
flex-direction: column;
text-align: center;
padding: 28px 20px 24px;
}
.tf-mainpage .tf-navgrid,
.tf-mainpage .tf-content {
padding-left: 20px;
padding-right: 20px;
}
.tf-mainpage .tf-navcard {
flex: 1 1 100%;
}
.tf-mainpage .tf-col {
flex: 1 1 100%;
}
}
/* ============================================================
SITEWIDE DARK THEME (Vector legacy) — v1
Palette matches the Main Page card (black / gold / red).
============================================================ */
:root {
--d-bg:#0B0B0D; --d-panel:#141416; --d-panel2:#1c1c20;
--d-text:#E9E6E0; --d-muted:#9A9792;
--d-gold:#F5BD3F; --d-gold2:#F4A345; --d-red:#BE2F24;
--d-border:#2A2A2C; --d-link:#E7B84B; --d-ext:#7FB2D6; --d-hover:#33333a;
}
html, body { background: var(--d-bg); color: var(--d-text); }
/* Vector legacy light-gradient layers */
#mw-page-base { background: var(--d-bg) !important; background-image: none !important; }
#mw-head-base { background: var(--d-bg) !important; }
/* Content area */
.mw-body, #content, #bodyContent, #mw-content-text { background: var(--d-panel); color: var(--d-text); }
.mw-body { border: 1px solid var(--d-border); }
.mw-body-content { color: var(--d-text); }
/* Links */
.mw-body a, #mw-panel a, #p-personal a, .mw-body a:visited, #footer a { color: var(--d-link); }
.mw-body a.new, a.new { color: var(--d-red) !important; }
.mw-body a.external, a.external { color: var(--d-ext); }
/* Headings */
.mw-body h1, .mw-body h2, .mw-body h3, .mw-body h4, .mw-body h5, .mw-body h6,
#firstHeading, .firstHeading { color: var(--d-gold); font-variant: small-caps; letter-spacing: 0.03em; }
.mw-body h1, .mw-body h2, #firstHeading, .firstHeading { border-bottom: 1px solid var(--d-border); }
/* Header / tabs / personal tools (Vector legacy) */
#mw-head, #mw-head-base { color: var(--d-text); }
.vectorTabs li, .vectorMenu .menu { background: var(--d-panel2); }
.vectorTabs li a, .vectorTabs li a span, .vectorMenu h3 span { color: var(--d-muted) !important; }
.vectorTabs li.selected { background: var(--d-panel); }
.vectorTabs li.selected a, .vectorTabs li.selected a span { color: var(--d-gold) !important; }
#p-personal ul li a { color: var(--d-link); }
/* Sidebar */
#mw-panel .portal h3 { color: var(--d-muted); }
#mw-panel .portal .body ul li a { color: var(--d-link); }
/* Search */
#simpleSearch, #searchInput { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); }
/* Tables */
.wikitable { background: var(--d-panel); color: var(--d-text); border-color: var(--d-border); }
.wikitable > * > tr > th, .wikitable > tr > th { background: var(--d-panel2); color: var(--d-gold); border-color: var(--d-border); }
.wikitable > * > tr > td, .wikitable > tr > td { border-color: var(--d-border); }
/* List bullets/numbers: default marker color is too dark on the dark theme, so lighten it */
#mw-content-text ul > li::marker,
#mw-content-text ol > li::marker,
#mw-content-text dl dd::marker { color: var(--d-muted); }
/* Reference lists, footnotes, and "Record notes" (pii group): the skin default
leaves these on a light background, which is invisible against the dark theme.
Force a transparent panel and readable text/links. */
#mw-content-text .mw-references-wrap,
#mw-content-text ol.references,
#mw-content-text .references,
#mw-content-text .reference-text,
#mw-content-text ol.references li {
background: transparent;
color: var(--d-text);
}
#mw-content-text .reference-text a,
#mw-content-text .mw-cite-backlink a { color: var(--d-link); }
#mw-content-text .references { border-color: var(--d-border); }
/* TOC, thumbs, code, catlinks, messageboxes */
.toc, #toc, .thumbinner, .catlinks, pre, code, .mw-code,
.mw-message-box, .warningbox, .errorbox, .successbox {
background: var(--d-panel2); color: var(--d-text); border-color: var(--d-border);
}
.toc a, #toc a, .catlinks a { color: var(--d-link); }
.thumbcaption, .catlinks { color: var(--d-muted); }
/* Edit form */
textarea, .mw-editfont-monospace { background:#101012 !important; color:var(--d-text) !important; border-color:var(--d-border) !important; }
input[type=text], input[type=search], input[type=password], select { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); }
.mw-ui-button, input[type=submit], button { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); }
/* Footer */
#footer { background: var(--d-bg); color: var(--d-muted); }
hr { border: 0; border-top: 1px solid var(--d-border); }
/* ===== Fleet News article pages ===== */
body:has(.tf-newspage) h1#firstHeading, body:has(.tf-newspage) h1.firstHeading { display: none; }
.tf-newspage {
background:#0B0B0D; color:#E9E6E0; border:1px solid var(--d-border);
border-radius:12px; overflow:hidden; position:relative; max-width:860px; margin:8px auto;
}
.tf-newspage a, .tf-newspage a:visited { color:var(--d-gold); }
.tf-newspage .tf-np-flash { position:absolute; top:0; right:0; width:70px; height:40px; background:var(--d-red); }
.tf-newspage .tf-np-head { padding:34px 42px 22px; border-bottom:3px solid var(--d-gold); }
.tf-newspage .tf-np-kicker { font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--d-red); margin-bottom:12px; }
.tf-newspage .tf-np-title { font-size:28px; font-weight:600; color:var(--d-gold); line-height:1.22; }
.tf-newspage .tf-np-meta { font-size:13px; color:var(--d-muted); margin-top:12px; }
.tf-newspage .tf-np-body { padding:24px 42px 12px; font-size:15px; line-height:1.7; color:var(--d-text); }
.tf-newspage .tf-np-body p { margin:0 0 14px; }
.tf-newspage .tf-np-body b, .tf-newspage .tf-np-body strong { color:var(--d-gold2); }
.tf-newspage .tf-np-foot { padding:16px 42px 22px; border-top:1px solid var(--d-border); }
.tf-newspage .tf-np-foot a, .tf-newspage .tf-np-foot a:visited { color:var(--d-muted); font-size:11px; letter-spacing:0.05em; text-transform:uppercase; }
@media (max-width:700px){ .tf-newspage .tf-np-head,.tf-newspage .tf-np-body,.tf-newspage .tf-np-foot{padding-left:22px;padding-right:22px;} .tf-newspage .tf-np-title{font-size:22px;} }
/* ============================================================
DARK THEME part 2 — editing, diffs, changes lists, special pages
============================================================ */
/* --- Diffs (the light green/red cells are unreadable on dark) --- */
td.diff-otitle, td.diff-ntitle, td.diff-marker { color: var(--d-text); }
td.diff-context { background: var(--d-panel2); color: var(--d-muted); border-color: var(--d-border); }
td.diff-addedline { background: #13261b; border-color: #2c5a3a; }
td.diff-deletedline { background: #2b1618; border-color: #5a2c30; }
td.diff-addedline .diffchange { background: #1f5133; color: #c7f0d5; }
td.diff-deletedline .diffchange { background: #5a2330; color: #f2c9d0; }
.diff-lineno { color: var(--d-gold); }
table.diff, table.diff td, div.mw-diff-inline-changes { border-color: var(--d-border); color: var(--d-text); }
/* --- Changes lists: Recent Changes, Watchlist, History --- */
.mw-changeslist, .mw-changeslist a, .mw-history-histlinks a,
.special li, .special li a, .mw-contributions-list a { color: var(--d-text); }
.mw-changeslist a, .mw-changeslist-links a, .mw-history-histlinks a { color: var(--d-link); }
.mw-plusminus-pos { color: #6fbf7f; }
.mw-plusminus-neg { color: #d98a8a; }
.mw-plusminus-null { color: var(--d-muted); }
abbr.newpage, abbr.minoredit, abbr.botedit, abbr.unpatrolled { color: var(--d-gold); }
.mw-changeslist-date { color: var(--d-muted); }
/* --- Data tables / pagers (most special pages use these) --- */
.mw-datatable, table.mw-datatable, .TablePager, .wikitable.sortable {
background: var(--d-panel); color: var(--d-text); border-color: var(--d-border);
}
.mw-datatable th, .TablePager th { background: var(--d-panel2); color: var(--d-gold); border-color: var(--d-border); }
.mw-datatable td, .TablePager td { border-color: var(--d-border); }
.mw-datatable tr:hover td, .TablePager tr:hover td { background: var(--d-panel2); }
.oo-ui-tag-item, .cloud a { color: var(--d-link); }
/* --- Edit view extras: summary, options, toolbar, checkboxes --- */
fieldset { border-color: var(--d-border); }
legend { color: var(--d-gold); }
label, .mw-label { color: var(--d-text); }
#wpSummary, input#wpSummary { background: var(--d-panel2); color: var(--d-text); border: 1px solid var(--d-border); }
.editOptions { background: var(--d-panel2); border-color: var(--d-border); color: var(--d-text); }
.templatesUsed, .hiddencats, .mw-editTools, .editCheckboxes, .editHelp { color: var(--d-muted); }
.wikiEditor-ui, .wikiEditor-ui-toolbar, .wikiEditor-ui-toolbar .tabs,
.wikiEditor-ui-toolbar .sections { background: var(--d-panel2); border-color: var(--d-border); }
.mw-editform .cancelLink a { color: var(--d-link); }
/* Toolbar icon buttons are monochrome dark glyphs (inline background-image) that vanish on the dark toolbar; invert to white. */
.wikiEditor-ui-toolbar [style*="url("],
.wikiEditor-ui-toolbar .tool-button,
.wikiEditor-ui-toolbar .oo-ui-iconElement-icon { filter: invert(1); }
/* Toolbar text controls (dropdowns, group labels, section booklets) hardcode light-theme colors with higher specificity; override with matched specificity + !important. */
/* Heading dropdown: handle, label, menu, options */
.wikiEditor-ui-toolbar .group .tool-select,
.wikiEditor-ui-toolbar .group .tool-select .menu .options,
.wikiEditor-ui-toolbar .group .tool-select .options { background-color: var(--d-panel2) !important; border-color: var(--d-border) !important; }
.wikiEditor-ui-toolbar .group .tool-select .label,
.wikiEditor-ui-toolbar .group .tool-select .options .option { color: var(--d-text) !important; }
.wikiEditor-ui-toolbar .group .tool-select .options .option:hover { background-color: var(--d-hover) !important; color: var(--d-text) !important; }
.wikiEditor-ui-toolbar .group .tool-select .label.skin-invert { filter: none !important; }
.wikiEditor-ui-toolbar .group .tool-select .label::after { filter: invert(1); }
/* Group labels (Format, Insert, ...) */
.wikiEditor-ui-toolbar .group .label { color: var(--d-text) !important; }
/* Section tabs (Advanced / Special characters / Help) */
.wikiEditor-ui-toolbar .tabs .tab a { color: var(--d-link) !important; }
/* Special-characters & Help booklets: index list + hover/current highlight */
.wikiEditor-ui-toolbar .booklet > .index > div { color: var(--d-text); }
.wikiEditor-ui-toolbar .booklet > .index > div:hover,
.wikiEditor-ui-toolbar .booklet > .index > .current,
.wikiEditor-ui-toolbar .booklet > .index .wikiEditor-character-highlighted { background-color: var(--d-hover) !important; color: var(--d-text) !important; }
/* Help tables + special-character glyph tiles */
.wikiEditor-ui-toolbar .booklet table th,
.wikiEditor-ui-toolbar .booklet table td,
.wikiEditor-ui-toolbar .booklet .cell span { color: var(--d-text); border-color: var(--d-border); }
.wikiEditor-ui-toolbar .page-characters div span { color: var(--d-text) !important; border-color: var(--d-border); }
.wikiEditor-ui-toolbar .page-characters div span:hover { background-color: var(--d-hover) !important; border-color: var(--d-gold); }
/* --- OOUI widgets (used across modern special pages / dialogs) --- */
.oo-ui-textInputWidget input, .oo-ui-textInputWidget textarea,
.oo-ui-dropdownWidget-handle, .oo-ui-comboBoxInputWidget input,
.oo-ui-selectFileInputWidget-dropTarget {
background: var(--d-panel2) !important; color: var(--d-text) !important; border-color: var(--d-border) !important;
}
.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
background: var(--d-panel2); color: var(--d-text); border-color: var(--d-border);
}
.oo-ui-panelLayout-framed, .oo-ui-window-body, .oo-ui-messageDialog-message {
background: var(--d-panel); color: var(--d-text);
}
.oo-ui-labelElement-label, .oo-ui-fieldLayout-header label, .oo-ui-inline-help { color: var(--d-text); }
/* --- Search results --- */
.searchresults, .mw-search-result-heading a, .mw-search-results li { color: var(--d-text); }
.mw-search-result-data { color: var(--d-muted); }
.searchmatch { color: var(--d-gold); font-weight: bold; }
.mw-search-profile-tabs, .search-types .current a { background: var(--d-panel2); border-color: var(--d-border); }
/* --- Misc content elements --- */
blockquote { border-left: 3px solid var(--d-border); color: var(--d-text); }
dl dt { color: var(--d-gold); }
.mw-editsection a, .mw-indicators a, .redirectText a { color: var(--d-link); }
#siteNotice, #localNotice, .mw-headline { color: var(--d-text); }
.navbox, .mw-parser-output .navbox { background: var(--d-panel2); border-color: var(--d-border); color: var(--d-text); }
.mw-message-box-warning, .mw-message-box-error, .mw-message-box-success { color: var(--d-text); }
/* ============================================================
DARK THEME part 3 — correct modern Vector-legacy class names
(this wiki uses .vector-menu-* / .vector-legacy-sidebar / .mw-footer)
============================================================ */
/* Sidebar */
#mw-panel, .vector-legacy-sidebar { color: var(--d-muted); }
.vector-menu-portal .vector-menu-heading, .vector-menu-portal .vector-menu-heading-label { color: var(--d-muted); }
.vector-menu-portal .mw-list-item a, #mw-panel .mw-list-item a { color: var(--d-link); }
/* Tabs + dropdown menus at top of content */
.vector-menu-tabs .mw-list-item { background: var(--d-panel2); }
.vector-menu-tabs .mw-list-item a { color: var(--d-muted); }
.vector-menu-tabs .mw-list-item.selected { background: var(--d-panel); }
.vector-menu-tabs .mw-list-item.selected a { color: var(--d-gold); }
.vector-menu-heading, .vector-menu-heading-label { color: var(--d-muted); }
.vector-menu-dropdown .vector-menu-content, .vector-menu-dropdown-noicon .vector-menu-content {
background: var(--d-panel2); border-color: var(--d-border);
}
.vector-menu-dropdown .mw-list-item a { color: var(--d-link); }
/* Personal tools (top-right user links) */
.mw-portlet-personal .mw-list-item a, #p-personal .mw-list-item a { color: var(--d-link); }
/* Body wrappers inherit the dark panel */
.vector-body, .mw-body-content { background: transparent; color: var(--d-text); }
/* Footer (modern class) */
.mw-footer { background: var(--d-bg); color: var(--d-muted); }
.mw-footer a, .mw-footer a:visited { color: var(--d-link); }
.mw-footer li, .mw-footer #footer-info li { color: var(--d-muted); }
/* History: core highlights compared revisions with a LIGHT bg (#f8f9fa) — darken it */
#pagehistory li.selected { background-color: var(--d-panel2) !important; color: var(--d-text) !important; outline-color: var(--d-gold) !important; }
#pagehistory li.selected a, #pagehistory li.selected a:visited { color: var(--d-link) !important; }
/* --- Recent Changes: RCFilters header + legend (light-on-light by default) --- */
.mw-changeslist-legend {
background: var(--d-panel2) !important; color: var(--d-text) !important; border-color: var(--d-border) !important;
}
.mw-changeslist-legend dt, .mw-changeslist-legend dd, .mw-changeslist-legend p,
.mw-changeslist-legend .mw-legend-item { color: var(--d-text) !important; }
.mw-changeslist-legend a, .mw-changeslist-legend-heading { color: var(--d-gold) !important; }
.mw-rcfilters-head, .mw-rcfilters-ui-filterWrapperWidget { color: var(--d-text); }
.mw-rcfilters-ui-filterTagMultiselectWidget-header,
.mw-rcfilters-ui-filterWrapperWidget-showNewChanges a { color: var(--d-gold) !important; }
.mw-rcfilters-ui-filterTagMultiselectWidget .oo-ui-tagMultiselectWidget-handle,
.mw-rcfilters-ui-filterTagMultiselectWidget-multiselectWrapper,
.mw-rcfilters-ui-filterWrapperWidget-filters,
.mw-rcfilters-ui-menuSelectWidget,
.mw-rcfilters-ui-filterMenuOptionWidget,
.mw-rcfilters-ui-savedLinksListWidget {
background: var(--d-panel2) !important; border-color: var(--d-border) !important; color: var(--d-text) !important;
}
.mw-rcfilters-ui-filterMenuOptionWidget-label, .mw-rcfilters-ui-itemMenuOptionWidget,
.mw-rcfilters-ui-tableWidget, .oo-ui-tagItemWidget-label { color: var(--d-text) !important; }
.mw-rcfilters-ui-highlights, .mw-rcfilters-ui-changesLimitAndDateButtonWidget { color: var(--d-text) !important; }
/* News feed: date label above headline */
.tf-mainpage .tf-newsitem { flex-direction: column-reverse; }
/* Order index tables (DPL-built): tint superseded/rescinded/amended rows */
/* {{Order info}} status span: metadata for the DPL index only — hide it on the article page, show it inside the index table */
.ostat { display: none; }
.orderindex .ostat { display: inline; }
.orderindex tr:has(.ostat-superseded), .orderindex tr:has(.ostat-rescinded) { background: rgba(190,47,36,0.30) !important; }
.orderindex tr:has(.ostat-amended) { background: rgba(0,80,80,0.35) !important; }
.orderindex .ostat-superseded, .orderindex .ostat-rescinded { color:#ff6b6b; font-weight:bold; }
.orderindex .ostat-amended { color:#5fc9c9; font-weight:bold; }
.orderindex .ostat-active { color: var(--d-muted); }
/* Policy Documents index (Portal:Policy Documents) */
.tf-pd-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:16px; margin:16px 0; }
.tf-pd-panel { background:var(--d-panel2); border:1px solid var(--d-border); border-top:3px solid var(--d-gold); border-radius:7px; padding:14px 16px 16px; }
.tf-pd-panel h3 { margin:0 0 2px; padding:0; border:0; color:var(--d-gold); font-size:1.08em; }
.tf-pd-sub { color:var(--d-muted); font-size:.78em; margin-bottom:10px; text-transform:uppercase; letter-spacing:.04em; }
.tf-pd-item { display:block; padding:5px 0; border-top:1px solid rgba(255,255,255,.06); line-height:1.3; }
.tf-pd-item:first-of-type { border-top:0; }
.tf-pd-item .n { display:inline-block; margin-right:0.9em; color:var(--d-gold2); font-weight:bold; font-size:.8em; }
.tf-pd-hist { border-top-color:var(--d-red); }
.tf-pd-hist h3 { color:#e08a8a; }
.tf-pd-hist .tf-pd-item a { color:var(--d-muted); }
.tf-pd-note { background:var(--d-panel); border-left:4px solid var(--d-gold); border-radius:0 5px 5px 0; padding:11px 15px; margin:16px 0; }
.tf-pd-note b { color:var(--d-gold); }
/* advanced-search + OOUI menu contrast (namespace dropdown/checkbox menu) */
#mw-searchoptions, #powersearch, .mw-search-availablenamespaces, .mw-search-profile-form {
background: var(--d-panel); color: var(--d-text); border-color: var(--d-border);
}
#mw-searchoptions label, #mw-searchoptions legend, .mw-search-availablenamespaces label, .mw-search-profile-form label { color: var(--d-text); }
.oo-ui-menuSelectWidget, .oo-ui-popupWidget-body, .oo-ui-menuOptionWidget,
.oo-ui-checkboxMultiselectWidget, .oo-ui-checkboxMultioptionWidget, .oo-ui-dropdownWidget-handle {
background-color: var(--d-panel2); color: var(--d-text); border-color: var(--d-border);
}
.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted, .oo-ui-menuOptionWidget.oo-ui-optionWidget-selected {
background-color: var(--d-panel); color: var(--d-gold);
}
/* Fit the full-resolution Tenth Fleet crest into the legacy-Vector logo box
(the source image is 1400x1400; without this it renders zoomed/cropped). */
.mw-wiki-logo,
#p-logo a {
background-size: contain !important;
background-position: center center !important;
background-repeat: no-repeat !important;
}
/* ============================================================
DARK THEME part 4 — special-page catch-all (2026-07)
Some special pages (lists, pagers, forms) render core components
that ship their own light background, leaving light theme-text on
white → unreadable. Force the whole special-page content dark.
Scoped to body.ns-special so normal article pages are untouched.
============================================================ */
body.ns-special #content,
body.ns-special .mw-body,
body.ns-special #bodyContent,
body.ns-special #mw-content-text,
body.ns-special .mw-body-content,
body.ns-special .mw-spcontent {
background-color: var(--d-panel) !important;
color: var(--d-text) !important;
}
body.ns-special #mw-content-text table,
body.ns-special #mw-content-text td,
body.ns-special #mw-content-text tr,
body.ns-special #mw-content-text fieldset,
body.ns-special #mw-content-text .oo-ui-panelLayout,
body.ns-special #mw-content-text .mw-htmlform,
body.ns-special #mw-content-text .cdx-table__table {
background-color: var(--d-panel) !important;
border-color: var(--d-border) !important;
}
body.ns-special #mw-content-text th {
background-color: var(--d-panel2) !important;
color: var(--d-gold) !important;
border-color: var(--d-border) !important;
}
body.ns-special #mw-content-text li,
body.ns-special #mw-content-text dd,
body.ns-special #mw-content-text dt,
body.ns-special #mw-content-text p { color: var(--d-text) !important; }
body.ns-special #mw-content-text a,
body.ns-special #mw-content-text a:visited { color: var(--d-link) !important; }
body.ns-special #mw-content-text a.new,
body.ns-special #mw-content-text a.new:visited { color: var(--d-red) !important; }
/* Special-page hover highlight — the part-4 catch-all fixes cell bg with
!important, which flattened the row hover. Restore a clearly visible,
gold-tinted highlight (higher specificity via :hover so it wins). */
body.ns-special #mw-content-text tr:hover td,
body.ns-special #mw-content-text tr:hover th,
body.ns-special #mw-content-text table.mw-datatable tr:hover td,
body.ns-special #mw-content-text .TablePager tr:hover td,
body.ns-special #mw-content-text li:hover,
body.ns-special #mw-content-text .mw-specialpages-list li:hover,
body.ns-special #mw-content-text .mw-changeslist li:hover {
background-color: #3a3421 !important; /* warm gold-tinted, ~3x brighter than #141416 */
color: var(--d-text) !important;
}
/* ============================================================
Awards namespace (ns 6002) — page beautification
============================================================ */
body.ns-6002 #mw-content-text > p:first-of-type {
font-size: 108%; line-height: 1.6; color: #EFEAE6;
border-left: 3px solid #8A6D1E; padding: 2px 0 2px 14px; margin-bottom: 1.1em;
}
body.ns-6002 #mw-content-text h2 {
color: var(--d-gold); font-variant: small-caps; letter-spacing: 0.04em;
border-bottom: 2px solid #8A6D1E; padding-bottom: 4px; margin-top: 1.4em;
}
body.ns-6002 #mw-content-text h3 {
color: #F4A345; border-bottom: 1px solid #2A2A2C; padding-bottom: 2px;
}
body.ns-6002 #mw-content-text .wikitable {
border: 1px solid #2A2A2C; background: #141416; box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
body.ns-6002 #mw-content-text .wikitable > * > tr > th {
background: #232326; color: var(--d-gold); border: 1px solid #2A2A2C;
font-variant: small-caps; letter-spacing: 0.03em;
}
body.ns-6002 #mw-content-text .wikitable > * > tr > td { border: 1px solid #262628; }
/* zebra striping — skip rows carrying an inline style so {{new award}} orange survives */
body.ns-6002 #mw-content-text .wikitable > tbody > tr:nth-child(even):not([style]) > td { background: #18181b; }
body.ns-6002 #mw-content-text .wikitable > tbody > tr:hover:not([style]) > td { background: #26210f; }
/* ============================================================
Special-namespace Codex/OOUI form widgets -> dark theme
(UserLogin, CreateAccount, PasswordReset, Preferences, Upload, Block, ...)
These are painted by ResourceLoader modules the content rule can't reach.
============================================================ */
body.ns-special #mw-content-text .cdx-text-input__input,
body.ns-special #mw-content-text .cdx-text-input__input:enabled,
body.ns-special #mw-content-text .cdx-text-area__textarea,
body.ns-special #mw-content-text .cdx-select__handle,
body.ns-special #mw-content-text .oo-ui-inputWidget-input {
background-color: #1c1c20 !important;
color: var(--d-text) !important;
border-color: var(--d-border) !important;
}
body.ns-special #mw-content-text .cdx-text-input__input:enabled:read-only {
background-color: #141416 !important;
color: var(--d-muted) !important;
}
body.ns-special #mw-content-text .cdx-label__label,
body.ns-special #mw-content-text .cdx-label__label__text,
body.ns-special #mw-content-text .cdx-label__description,
body.ns-special #mw-content-text .cdx-checkbox__label,
body.ns-special #mw-content-text .cdx-field__help-text,
body.ns-special #mw-content-text .oo-ui-labelElement-label,
body.ns-special #mw-content-text .oo-ui-fieldLayout-header label {
color: var(--d-text) !important;
}
/* CAPTCHA box on CreateAccount */
body.ns-special #mw-content-text .fancycaptcha-captcha-container,
body.ns-special #mw-content-text .fancycaptcha-captcha-and-reload {
background-color: #1c1c20 !important;
border-color: var(--d-border) !important;
}
/* ============================================================
Documentation callout boxes (tip / note / warning / example / steps)
============================================================ */
.tf-tip, .tf-note, .tf-warn, .tf-example {
margin: 12px 0; padding: 10px 14px; border-radius: 6px;
border-left: 4px solid #2A2A2C; background: #17171a; color: var(--d-text);
}
.tf-tip { border-left-color: #1E7A3E; }
.tf-note { border-left-color: #2E4A6A; }
.tf-warn { border-left-color: #BE2F24; }
.tf-example { border-left-color: #8A6D1E; background:#141416; }
.tf-tip .tf-lbl { color:#63c187; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; }
.tf-note .tf-lbl { color:#7fa8d8; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; }
.tf-warn .tf-lbl { color:#e79b9b; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; }
.tf-example .tf-lbl { color:#F5BD3F; font-weight:bold; font-variant:small-caps; letter-spacing:.04em; }
.tf-lead { font-size:106%; line-height:1.6; border-left:3px solid #8A6D1E; padding:2px 0 2px 14px; margin-bottom:1em; color:#EFEAE6; }
.tf-steps { counter-reset: tfstep; }
.tf-steps > li { margin:8px 0; }
/* ===== Mobile readability for article content (added 2026-07-18) =====
Scoped to narrow viewports; desktop layout unchanged. Complements the
existing tf-mainpage @media rules above. */
@media (max-width: 700px) {
/* Infoboxes span full width instead of squeezing body text into a sliver */
.mw-parser-output .infobox,
.mw-parser-output .sidebar,
.mw-parser-output .tf-cbox,
.mw-parser-output .tf-abox,
.mw-parser-output .tf-pbox,
.mw-parser-output .tf-ebox {
float: none !important;
width: auto !important;
max-width: 100% !important;
margin: 0.6em auto !important;
box-sizing: border-box;
}
/* Wide data tables scroll within their own box, not the whole page */
.mw-parser-output .wikitable,
.mw-parser-output .tf-navbox {
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
max-width: 100%;
}
/* Images never force horizontal overflow */
.mw-parser-output img {
max-width: 100%;
height: auto;
}
}