MediaWiki:Mobile.css: Difference between revisions

From bg3.wiki
Jump to navigation Jump to search
(Remove useless parts of wikitable styling.)
(Add damage color classes.)
(65 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* All CSS here will be loaded for users of the mobile site */
/* All CSS here will be loaded for users of the mobile site */


/*****************************************************************************
*
* = START CLEANED UP SECTION =
*
* Everything here has to be documented properly, explaining what it does if
* not obvious, and especially, explaining where the CSS classes/ids/etc. are
* actually used. Things should be transitioned to use TemplateStyles as much
* as possible; otherwise list ALL templates / pages that rely on the CSS
* found in here.
*
* Also, the CSS here should be divided into sections and sub-sections just as
* you would do with headers in a regular page. Use the following format for
* these "headers" below:
*
*  /*
*  * == This is a section of cleaned-up CSS ==
*  * /
*
*  /*
*  * === This is a sub-section of the above ===
*  * /
*
*****************************************************************************/
/*
* == Modify Citizen's dark theme ==
*/
/* The Citizen skin defines some variables based on which the entire color
  palette is defined. It's blue by default for the dark theme. */
:root.skin-citizen-dark {
:root.skin-citizen-dark {
  --color-primary__h: 15;
/* This should give us a nice dark orange / brown. */
    --color-secondary__h: 255;
--color-primary__h: 15;
  --color-surface-0: hsl(var(--color-primary__h) 10% 10%);
 
  --color-surface-1: hsl(var(--color-primary__h) 10% 10%);
/* Make surfaces darker. */
  --color-surface-2: hsl(var(--color-primary__h) 5% 12%);
--color-surface-0: hsl(var(--color-primary__h) 10% 8%);
  --background-color-overlay: hsla(var(--color-primary__h) 20% 20% / 60%);
--color-surface-1: hsl(var(--color-primary__h) 10% 10%);
  --background-color-overlay--lighter: hsl(var(--color-primary__h)  20% 20% / 80%);
--color-surface-2: hsl(var(--color-primary__h) 10% 12%);
  --bg3wiki-relative-location-bg: var(--color-surface-0);
}
 
/*
* == Advertisement ==
*
* On Citizen, we show a fixed banner at the bottom. It's added through a hook
* in LocalSettings.php and uses the id bg3wiki-footer-ad.
*/
 
/*
* === Control visibility ===
*
* The ad only appears if the screen dimensions are at least 320x600, because:
*
* - Smallest ads are 320px in width, so no ads if the screen is narrower.
* - We shouldn't steal any vertical space if the screen isn't tall enough.
*
* Note that mobile browsers often use a height value for CSS media queries
* that's quite a bit smaller than the real height that will be available once
* UI elements of the browser are hidden, which usually happens as the user
* starts scrolling down on a page.
*
* At the time of this writing, this behavior doesn't seem standardized, and
* there's no way to query, in CSS, what the available height will be once the
* browser has hidden some of its UI elements. In JS, it's windnow.innerHeight,
* which gets dynamically updated as UI elements appear and disappear. But the
* height used for CSS media queries is static, and generally seems to be based
* on the initial value of window.innerHeight at first render.
*/
 
#bg3wiki-footer-ad {
display: none;
}
 
@media screen and (min-width: 320px) and (min-height: 600px) {
.mw-ads-enabled #bg3wiki-footer-ad {
display: block;
}
}
 
/*
* === Footer ad height config ===
*
* Height is conditional, to fit various standard ad sizes:
*
* 320x50, 468x60, 728x90, 970x90
*
* The sizes with height 90px are only used if the screen is very tall.
*/
 
:root {
/* Make sure to use 'px' here or else calc() can break. */
--footer-ad-h: 0px;
}
 
@media screen and (min-width: 320px) and (min-height: 600px) {
:root {
--footer-ad-h: 50px;
}
}
 
@media screen and (min-width: 468px) and (min-height: 600px) {
:root {
--footer-ad-h: 60px;
}
}
 
@media screen and (min-width: 728px) and (min-height: 800px) {
:root {
--footer-ad-h: 90px;
}
}
 
/*
* === Adjustments to Citizen skin elements ===
*
* Citizen switches its layout at the width limit of 1120px, and we have to
* apply different customizations to the layout based on that.
*/
 
/* Make sure we can scroll to the end, taking the ad into account. */
.mw-ads-enabled .citizen-page-container {
margin-bottom: var(--footer-ad-h);
}
 
/* The narrow layout where the Citizen "header" is at the bottom. We have to
  make sure that the "header" and everything tied to it is above the ad. */
@media screen and (max-width: 1119px) {
/* This one is visible even if the Citizen "header" is hidden. Make sure
  it's above the ad. Note that the weird .citizen-feature... class is on
  the <html> element so it's even before .mw-ads-enabled. */
.citizen-feature-autohide-navigation-clientpref-1
.mw-ads-enabled.citizen-scroll--down .citizen-toc {
bottom: calc(var(--footer-ad-h) + var(--space-xs));
}
/* The "header" is actually at the bottom; make sure it's above the ad. */
.mw-ads-enabled .citizen-header {
bottom: var(--footer-ad-h);
}
/* These float above the header. */
.mw-ads-enabled .page-actions,
.mw-ads-enabled .citizen-toc {
bottom: calc(var(--footer-ad-h) + var(--header-size) + var(--space-xs));
}
}
 
/* The wide layout where the Citizen "header" is on the left-side and the TOC
  floats on the right. */
@media screen and (min-width: 1120px) {
/* Make sure "header" (left-side panel) isn't covered by ad. */
.mw-ads-enabled .citizen-header {
bottom: var(--footer-ad-h);
}
/* Make sure TOC isn't too high. */
.mw-ads-enabled .citizen-toc {
max-height: calc(
100vh - var(--footer-ad-h) - var(--height-sticky-header)
);
}
}
 
/*
* === Rest of the footer ad configuration ===
*/
 
/* Container */
.mw-ads-enabled #bg3wiki-footer-ad {
position: fixed;
bottom: 0;
left: 0;
height: var(--footer-ad-h);
width: 100%;
background: var(--color-surface-3);
z-index: 999;
align-content: center;
overflow: hidden;
}
 
/* Placeholder text for when ad isn't shown yet / doesn't show up. */
#bg3wiki-footer-ad p {
text-align: center;
font-size: 0.9em;
font-style: italic;
color: var(--color-subtle);
}
 
/* The actual insertion point for the ad. */
#bg3wiki-footer-ad-fuse,
#bg3wiki-footer-ad-ramp {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
align-content: center;
/* So the two divs (fuse & ramp) don't block each other. */
/* Set pointer-events back on their child nodes. */
pointer-events: none;
}
 
/* See comment about pointer-events above. */
#bg3wiki-footer-ad-fuse div,
#bg3wiki-footer-ad-ramp div {
pointer-events: auto;
}
 
/* The "Ads served by: xyz" text at the bottom. */
#bg3wiki-ad-provider-notice {
margin: 0 var(--padding-page);
color: var(--color-subtle);
}
 
/*
* == PortableInfobox ==
*/
 
.portable-infobox {
margin-bottom: 2em;
}
 
/* Style the resistances part of the creature infobox. */
.pi-type-creature [data-item-name="resistances"] ul {
margin: 0;
list-style: none;
display: flex;
justify-content: center;
gap: 5px;
flex-wrap: wrap;
}
 
/*
* == Template-specific CSS ==
*
* These are things that can't be done via Extension:TemplateStyles, because
* they respond to dark/light theme settings.
*/
 
/*
* === Template:DamageColor ===
*/
 
.skin-citizen-dark .bg3wiki-damage-type-physical,
.skin-citizen-dark .bg3wiki-damage-type-weapon,
.skin-citizen-dark .bg3wiki-damage-type-piercing,
.skin-citizen-dark .bg3wiki-damage-type-bludgeoning,
.skin-citizen-dark .bg3wiki-damage-type-slashing {
color: #8c8c8c;
}
.skin-citizen-dark .bg3wiki-damage-type-acid {
color: #80b000;
}
.skin-citizen-dark .bg3wiki-damage-type-cold {
color: #3399cc;
}
.skin-citizen-dark .bg3wiki-damage-type-fire {
color: #ee5500;
}
.skin-citizen-dark .bg3wiki-damage-type-force {
color: #cc3333;
}
.skin-citizen-dark .bg3wiki-damage-type-healing {
color: #30bbbb;
}
.skin-citizen-dark .bg3wiki-damage-type-lightning {
color: #3366cc;
}
.skin-citizen-dark .bg3wiki-damage-type-necrotic {
color: #40b050;
}
.skin-citizen-dark .bg3wiki-damage-type-poison {
color: #44bb00;
}
.skin-citizen-dark .bg3wiki-damage-type-radiant {
color: #ccaa00;
}
.skin-citizen-dark .bg3wiki-damage-type-thunder {
color: #8844bb;
}
.skin-citizen-dark .bg3wiki-damage-type-psychic {
color: #cc77aa;
}
 
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-physical,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-weapon,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-piercing,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-bludgeoning,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-slashing {
color: #8c8c8c;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-acid {
color: #80b000;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-cold {
color: #3399cc;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-fire {
color: #ee5500;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-force {
color: #cc3333;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-healing {
color: #30bbbb;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-lightning {
color: #3366cc;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-necrotic {
color: #40b050;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-poison {
color: #44bb00;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-radiant {
color: #ccaa00;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-thunder {
color: #8844bb;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-psychic {
color: #cc77aa;
}
 
/*
* == Miscellaneous ==
*/
 
/* Citizen wraps tables in a pair of divs, and the outer one's width isn't set.
  For some reason, it ends up being narrower than the available width if this
  isn't set. */
/* Not needed as of Citizen v2.27.0 */
/*
.citizen-overflow-wrapper {
width: 100%;
}
*/
 
/*****************************************************************************
*
* = START LEGACY CSS =
*
* This is CSS that was added in the past and wasn't always documented well.
* Some of it may be unnecessary and should perhaps be cautiously deleted,
* other parts should be moved either to TemplateStyles or to the cleaned up
* section above.
*
*****************************************************************************/
 
:root.skin-citizen-dark {
--background-color-overlay: hsla(var(--color-primary__h) 20% 20% / 60%);
--background-color-overlay--lighter: hsl(var(--color-primary__h)  20% 20% / 80%);
--bg3wiki-relative-location-bg: var(--color-surface-0);
--bg3wiki-relative-location-header-bg-dark: var(--color-surface-1);
--bg3wiki-relative-location-header-bg-dark: var(--color-surface-1);
/* CSS tooltip colours */
--aria-label-tooltip-bg: hsl(200deg 5% 10%);
--aria-label-tooltip-fg: hsl(0deg 0% 90%);
--aria-label-tooltip-border: none;
--bg3wiki-tooltip-border: #785000;
--bg3wiki-tooltip-border: #785000;
/* css tooltip colours */
--aria-label-tooltip-bg: hsl(200deg 5% 10%);
    --aria-label-tooltip-fg: hsl(0deg 0% 90%);
    --aria-label-tooltip-border: none;
/* this is incredibly silly of me but let's see */
--bg3wiki-math: invert(1);
/* Variables with the dark suffix are intended for detail elements within the contents of pages, such as tabbers, infoboxes, amboxes and tables. These are darker than other elements. */
/* Intended for very large boxed elemetns that cover an entire page. */
--bg3wiki-tooltip-doc-bg: #2b2a28;
--bg3wiki-tooltip-bg: #1B1A19;
/* Intended for accents like headers or titles */
--bg3wiki-accent: #211e1c;
--bg3wiki-accent-bg: #211e1c;
--bg3wiki-accent-dark-bg: #232324;
--bg3wiki-accent-text: var(--fg);
/* Intended for labels in boxes */
--bg3wiki-label-bg: #2f2b28;
    --bg3wiki-label-border: 2px solid #232323;
--bg3wiki-label-dark-bg: #171717;
    --bg3wiki-label-dark-border: 1px solid #1f1d1c;
/* Intended for data elements in boxes, where its contents are displayed. */
--bg3wiki-data-bg: #232323;
--bg3wiki-data-border: 1px solid #4d4a46;
--bg3wiki-data-row-even-bg: #272727;
--bg3wiki-data-row-odd-bg: var(--bg-main);
--bg3wiki-data-dark-bg: #1f1e1e;
    --bg3wiki-data-dark-border: 1px solid #242322;
/* Intended for detail elements in boxes */
--bg3wiki-detail-bg: #1b1b1b;
--bg3wiki-detail-dark-bg: #121212;
--bg3wiki-detail-dark-border: 2px solid #121212;
/* Tables */
--bg3wiki-wikitable-bg: var(--bg3wiki-data-dark-bg);
    --bg3wiki-wikitable-header-bg: var(--bg3wiki-label-dark-bg);
    --bg3wiki-wikitable-border: var(--bg3wiki-data-border);
--bg3wiki-wikitable-muted-bg: var(--bg3-wiki-label-dark-bg);
--bg3wiki-wikitable-muted-border: var(--bg3wiki-data-border-bg);
}
}


/*
/* MobileFrontend should strip elements with this class, but still */
* Fix for table widths; not sure why this is necessary.
.nomobile {
*/
display: none;
}
.citizen-table-wrapper {
 
/* Trick to easily make lists with list-style: none */
/* Wrap a list in <div class="bg3wiki-list-style-none"> */
.bg3wiki-list-style-none > ul {
list-style: none;
}
 
/* Table styling */
 
.wikitable {
width: 100%;
width: 100%;
}
}
Line 82: Line 405:


.bg3wiki-d20-bg {
.bg3wiki-d20-bg {
    background-image: url('/static/d20-bg.png');
background-image: url('/static/d20-bg.png');
    background-position: center;
background-position: center;
    background-repeat: no-repeat;
background-repeat: no-repeat;
    background-size: 35px;
background-size: 35px;
}
}


Line 115: Line 438:


/* Imitating in-game tooltips */
/* Imitating in-game tooltips */
.bg3wiki-tooltip-box {
overflow: hidden;
margin: 0.5em 0.2em 0 0.2em;
}


.skin-citizen-dark .bg3wiki-tooltip-box {
.skin-citizen-dark .bg3wiki-tooltip-box {
background: #1B1A19;
background: #1B1A19;
box-shadow:
box-shadow:
rgba(0, 0, 0, 0.14) 3px 3px 6px 0px inset,
rgba(0, 0, 0, 0.14) 3px 3px 6px 0px inset,
rgba(0, 0, 0, 0.14) -3px -3px 6px 1px inset;
rgba(0, 0, 0, 0.14) -3px -3px 6px 1px inset;
border: 0.15rem solid var(--bg3wiki-tooltip-border);
border: 0.15rem solid var(--bg3wiki-tooltip-border);
border-radius: 10px;
border-radius: 10px;
Line 153: Line 481:
font-family: 'Linux Libertine', 'Georgia', serif;
font-family: 'Linux Libertine', 'Georgia', serif;
}
}
/* ItemIcon stuff */


:root {
:root {
Line 165: Line 495:
--bg3wiki-itemicon-gradient-bot-opacity: 12.5%;
--bg3wiki-itemicon-gradient-bot-opacity: 12.5%;
--bg3wiki-itemicon-border-opacity: 60%;
--bg3wiki-itemicon-border-opacity: 60%;
/* Navbox colours */
--bg3wiki-navbox-bg: #1B1B1B;
--bg3wiki-navbox-header-bg: #281C14;
--bg3wiki-navbox-header-text: #C1A886;
--bg3wiki-navbox-header-secondary-bg: #28201B;
/* Documentation */
--bg3wiki-documentation-bg: var(--bg-dark);
--bg3wiki-documentation-border: var(--bg3wiki-tooltip-border);
--bg3wiki-documentation-header-bg: var(--bg-darker);
}
}


Line 216: Line 537:


/* Relative Location stuff */
/* Relative Location stuff */
.relative-location {
.relative-location {
background: var(--bg3wiki-relative-location-bg);
background: var(--bg3wiki-relative-location-bg);
border: 1px solid var(--bg3wiki-tooltip-border);
border: 1px solid var(--bg3wiki-tooltip-border);
    border-spacing: 0;
border-spacing: 0;
    box-shadow: 0 0.25rem 0.35rem -0.25rem rgba(0, 0, 0, 0.1);
box-shadow: 0 0.25rem 0.35rem -0.25rem rgba(0, 0, 0, 0.1);
    margin: 5px;
margin: 5px;
    text-align: center;
text-align: center;
}
}


Line 230: Line 552:


/* Damage Rider As Source (DRS) template */
/* Damage Rider As Source (DRS) template */
.bg3wiki-damage-rider-source {
.bg3wiki-damage-rider-source {
font-size:10px;
font-size:10px;
Line 237: Line 560:


/* License box */
/* License box */
#mw-license-preview .bg3wiki-license-box-container {
#mw-license-preview .bg3wiki-license-box-container {
/* Don't want margin in the preview box because that breaks things */
/* Don't want margin in the preview box because that breaks things */
Line 243: Line 567:


.bg3wiki-license-box-container {
.bg3wiki-license-box-container {
  margin: 4px 0 4px 10%;
margin: 4px 0 4px 10%;
}
}


.bg3wiki-license-box {
.bg3wiki-license-box {
  border: 2px solid #785000;
border: 2px solid #785000;
  border-collapse: collapse;
border-collapse: collapse;
  background: #1B1A19;
background: #1B1A19;
  color: rgb(210,210,210);
color: rgb(210,210,210);
  width: 100%;
width: 100%;
}
}


Line 263: Line 587:
vertical-align: top;
vertical-align: top;
padding: 0.4rem 0 0.4rem 0.9rem;
padding: 0.4rem 0 0.4rem 0.9rem;
}
/* For desktop eyes only */
.nomobile {
display: none;
}
}


Line 279: Line 598:
/* Price calculator */  
/* Price calculator */  
#bg3wiki-price-calculator {
#bg3wiki-price-calculator {
  border: 1px solid var(--bg3wiki-tooltip-border);
border: 1px solid var(--bg3wiki-tooltip-border);
}
}


#bg3wiki-price-calculator-form {
#bg3wiki-price-calculator-form {
  padding: 0.5em;
padding: 0.5em;
}
}


#bg3wiki-price-calculator-form input[type="number"] {
#bg3wiki-price-calculator-form input[type="number"] {
  width: 100%;
width: 100%;
}
}


#bg3wiki-price-calculator-form td {
#bg3wiki-price-calculator-form td {
  padding-right: 0.5em;
padding-right: 0.5em;
}
}


#bg3wiki-price-calculator-form th {
#bg3wiki-price-calculator-form th {
  text-align: right;
text-align: right;
  padding-right: 0.5em;
padding-right: 0.5em;
}
}


#bg3wiki-price-calculator-form label {
#bg3wiki-price-calculator-form label {
  margin-left: 0.2em;
margin-left: 0.2em;
}
}


#bg3wiki-price-calculator-result {
#bg3wiki-price-calculator-result {
  margin: 1em;
margin: 1em;
}
}


#bg3wiki-price-calculator-result td, #bg3wiki-price-calculator-result th {
#bg3wiki-price-calculator-result td, #bg3wiki-price-calculator-result th {
  text-align: right;
text-align: right;
}
}


/* Hack to display category trees as a navbox. Only used on NavModding and NavGuides for now.
/* Hack to display category trees as a navbox. Only used on NavModding and  
*/
* NavGuides for now.
*/


.navcat div > .CategoryTreeSection::after {
.navcat div > .CategoryTreeSection::after {
Line 377: Line 697:
padding-bottom: 0.5ch
padding-bottom: 0.5ch
}
}


.bg3wiki-ac-value .ac-value-comment {
.bg3wiki-ac-value .ac-value-comment {
Line 385: Line 704:
}
}


/*
/* CSS tooltip implementation. Usage in markup:
CSS tooltip implementation. Usage in markup:


  <some-element aria-label="tooltip text here">
<some-element aria-label="tooltip text here">
    normal text
normal text
  </some-element>
</some-element>
*/
*/


[aria-label]:hover, [aria-label]:focus {position: relative}
.mw-body [aria-label]:hover,
.mw-body [aria-label]:focus {
position: relative;
}


[aria-label]:hover::after,
.mw-body [aria-label]:hover::after,
[aria-label]:focus::after {
.mw-body [aria-label]:focus::after {
  position: absolute;
position: absolute;
  white-space: pre;
white-space: pre;
  line-height: 1;
line-height: 1;
  padding: 0.3rem;
padding: 0.3rem;
  content: attr(aria-label);
content: attr(aria-label);
  background-color: var(--aria-label-tooltip-bg);
background-color: var(--aria-label-tooltip-bg);
  color: var(--aria-label-tooltip-fg);
color: var(--aria-label-tooltip-fg);
  border: var(--aria-label-tooltip-border);
border: var(--aria-label-tooltip-border);
  text-decoration: unset;
text-decoration: unset;


  /* See optional override below. */
/* See optional override below. */
  bottom: 100%;
bottom: 100%;
  left: 0;
left: 0;
}
}


/* Changes the tooltip position. */
/* Changes the tooltip position. */
[aria-label].aria-label-top-rig:hover::after,
.mw-body [aria-label].aria-label-top-rig:hover::after,
[aria-label].aria-label-top-rig:focus::after {
.mw-body [aria-label].aria-label-top-rig:focus::after {
  bottom: 100%;
bottom: 100%;
  left: unset;
left: unset;
  right: 0;
right: 0;
}
}


/* Optional class for indicating tooltip presence via underline. */
/* Optional class for indicating tooltip presence via underline. */
.bg3wiki-help-tooltip[aria-label] {
.bg3wiki-help-tooltip[aria-label] {
  cursor: help;
cursor: help;
  text-decoration-line: underline;
text-decoration-line: underline;
  text-decoration-style: dotted;
text-decoration-style: dotted;
  text-decoration-thickness: 1px;
text-decoration-thickness: 1px;
  text-underline-offset: calc(1ex / 2);
text-underline-offset: calc(1ex / 2);
}
}


Line 432: Line 753:
.bg3wiki-tabbar {
.bg3wiki-tabbar {
background-color: #1B1A19;
background-color: #1B1A19;
    margin: 0.5em 0 0 0;
margin: 0.5em 0 0 0;
}
}


Line 489: Line 810:


.bg3wiki-horizontlist dt::after {
.bg3wiki-horizontlist dt::after {
    content: ":";
content: ":";
    font-weight: normal;
font-weight: normal;
    font-size: 100%;
font-size: 100%;
}
}


Line 526: Line 847:


.bg3wiki-quotesource {
.bg3wiki-quotesource {
    line-height: 1.5em;
line-height: 1.5em;
    padding-left: 1.5em;
padding-left: 1.5em;
    margin-top: 0;
margin-top: 0;
}
}


.bg3wiki-blockquote-marks {
.bg3wiki-blockquote-marks {
    color: var(--bg3wiki-blockquote-marks);
font-size: 120%;
    font-size: 120%;
font-family: serif;
    font-family: serif;
font-weight: bold;
    font-weight: bold;
}
}


/* Shortcut */
/* Shortcut */
.bg3wiki-template-shortcut {
.bg3wiki-template-shortcut {
    display: inline-block;
display: inline-block;
background-color: var(--bg3wiki-documentation-header-bg);
background-color: var(--color-surface-2);
border: 1px solid var(--bg3wiki-documentation-border);
text-align: center;
text-align: center;
    margin: 1em;
margin: 1em;
padding: 0 0.33em 0 0.33em;
padding: 0 0.33em 0 0.33em;
    vertical-align: top;
vertical-align: top;
    width: fit-content;
width: fit-content;
    font-size: 85%;
font-size: 85%;
}
}


Line 556: Line 875:
padding: 0 0 0.16em 0;
padding: 0 0 0.16em 0;
border-bottom: 2px solid #3d3d3d;
border-bottom: 2px solid #3d3d3d;
    font-size: 90%;
font-size: 90%;
}
 
/* Resistance colours */
.bg3wiki-imagetext-text-resistant {
    color: var(--bg3wiki-imagetext-text-resistant-color);
}
 
.bg3wiki-imagetext-text-immune{
    color: var(--bg3wiki-imagetext-text-immune-color);
}
 
.bg3wiki-imagetext-text-vulnerable {
    color: var(--bg3wiki-imagetext-text-vulnerable-color);
}
}


/* Amboxes */
/* Amboxes */
table.ambox {
.ambox {
background-color: var(--bg3wiki-navbox-bg) !important;
background-color: var(--color-surface-2);
}
}
 
.ambox-speedy {
table.ambox-speedy {
/* Pink */
/* Pink */
background-color: #400805 !important;
background-color: #400805;
}
.ambox .mbox-image,
.ambox .mbox-imageright {
/* These are hidden since the screen may be too narrow. */
display: none;
}
}


/* Character info template styling */
/* Character info template styling */
.infobox {
.infobox {
    font-size: 90%;
display: table;
    text-align: center;
width: 100%;
    display: flex;
font-size: 90%;
    position: relative;
margin-left: auto;
    flex-flow: column nowrap;
margin-right: auto;
    overflow-y: hidden;
background-color: var(--color-surface-0);
    overflow-x: auto;
    word-wrap: break-word;
white-space: normal !important;
    margin-left: auto;
    margin-right: auto;
    background-color: #121212;
    border: 1px solid #ada6a9;
}
}


.infobox-above {
.infobox-above {
    font-size: 130%;
font-size: 130%;
    text-align: center;
text-align: center;
background: #171717;
background: var(--color-surface-1);
    border: 1px solid #121212;
}
}


.infobox-subheader {
.infobox-subheader {
    text-align: center;
text-align: center;
    background-color: #121212;
background-color: var(--color-surface-0);
    border: 2px solid #121212;
}
}


.infobox-header {
.infobox-header {
    text-align: center;
text-align: center;
    font-size: 130%;
font-size: 130%;
    text-align: center;
text-align: center;
background: #171717;
background: var(--color-surface-1);
    border: 1px solid #121212;
}
}


.infobox-title {
.infobox-title {
    text-align: center;
text-align: center;
}
}


.infobox-label {
.infobox-label {
    background-color: #171717;
background-color: var(--color-surface-1);
    border: 1px solid #1f1d1c;
margin-right: 5em;
    margin-right: 5em;
padding: 5px;
    padding: 5px;
}
}


th.infobox-label {
th.infobox-label {
    text-align: right;
text-align: right;
}
 
th.infobox-label:has(.bg3wiki-icontext-block),
th.infobox-label:has(.bg3wiki-condition) {
text-align: left;
}
}


Line 640: Line 944:


.infobox-data {
.infobox-data {
    text-align: center;
text-align: center;
    background-color: #1f1e1e;
background-color: var(--color-surface-1);
    border: 1px solid #242322;
padding: 5px;
    padding: 5px;
}
}


.infobox-below {
.infobox-below {
    text-align: center;
text-align: center;
background: #171717;
background: var(--color-surface-1);
    border: 1px solid #121212;
}
}


.infobox-image {
.infobox-image {
    text-align: center;
text-align: center;
    background-color: #121212;
background-color: var(--color-surface-0);
    border: 2px solid #121212;
}
}


Line 664: Line 965:
.infobox caption {
.infobox caption {
display: table-caption;
display: table-caption;
    background-color: #121212;
background-color: var(--color-surface-0);
    border: 2px solid #121212;
}
}


Line 679: Line 979:
}
}


/* Table styling */
/* Template:WeaponsTableHeader / Template:WeaponsTableRow */


.wikitable td {
.bg3wiki-weapons-table td:not(:last-child) {
    background-color: var(--bg3wiki-wikitable-bg);
text-align: center;
    border: var(--bg3wiki-wikitable-border);
}
 
.wikitable th {
    background-color: var(--bg3wiki-wikitable-header-bg);
    border: var(--bg3wiki-wikitable-border);
}
 
.wikitable th[scope=row],
.wikitable th[scope=rowgroup] {
font-weight: normal;
text-align: left;
}
 
.wikitable tr,
.wikitable td,
.wikitable th,
.wikitable tr :is(th, td) {
padding-left: 0.4em;
padding-right: 0.4em;
padding-top: 0.2em;
padding-bottom: 0.2em;
}
}

Revision as of 18:38, 10 September 2024

/* All CSS here will be loaded for users of the mobile site */

/*****************************************************************************
 *
 * = START CLEANED UP SECTION =
 *
 * Everything here has to be documented properly, explaining what it does if
 * not obvious, and especially, explaining where the CSS classes/ids/etc. are
 * actually used. Things should be transitioned to use TemplateStyles as much
 * as possible; otherwise list ALL templates / pages that rely on the CSS
 * found in here.
 *
 * Also, the CSS here should be divided into sections and sub-sections just as
 * you would do with headers in a regular page. Use the following format for
 * these "headers" below:
 *
 *  /*
 *   * == This is a section of cleaned-up CSS ==
 *   * /
 *
 *  /*
 *   * === This is a sub-section of the above ===
 *   * /
 *
 *****************************************************************************/

/*
 * == Modify Citizen's dark theme ==
 */

/* The Citizen skin defines some variables based on which the entire color
   palette is defined. It's blue by default for the dark theme. */
:root.skin-citizen-dark {
	/* This should give us a nice dark orange / brown. */
	--color-primary__h: 15;

	/* Make surfaces darker. */
	--color-surface-0: hsl(var(--color-primary__h) 10% 8%);
	--color-surface-1: hsl(var(--color-primary__h) 10% 10%);
	--color-surface-2: hsl(var(--color-primary__h) 10% 12%);
}

/*
 * == Advertisement ==
 *
 * On Citizen, we show a fixed banner at the bottom. It's added through a hook
 * in LocalSettings.php and uses the id bg3wiki-footer-ad.
 */

/*
 * === Control visibility ===
 *
 * The ad only appears if the screen dimensions are at least 320x600, because:
 *
 * - Smallest ads are 320px in width, so no ads if the screen is narrower.
 * - We shouldn't steal any vertical space if the screen isn't tall enough.
 *
 * Note that mobile browsers often use a height value for CSS media queries
 * that's quite a bit smaller than the real height that will be available once
 * UI elements of the browser are hidden, which usually happens as the user
 * starts scrolling down on a page.
 *
 * At the time of this writing, this behavior doesn't seem standardized, and
 * there's no way to query, in CSS, what the available height will be once the
 * browser has hidden some of its UI elements. In JS, it's windnow.innerHeight,
 * which gets dynamically updated as UI elements appear and disappear. But the
 * height used for CSS media queries is static, and generally seems to be based
 * on the initial value of window.innerHeight at first render.
 */

#bg3wiki-footer-ad {
	display: none;
}

@media screen and (min-width: 320px) and (min-height: 600px) {
	.mw-ads-enabled #bg3wiki-footer-ad {
		display: block;
	}
}

/*
 * === Footer ad height config ===
 *
 * Height is conditional, to fit various standard ad sizes:
 *
 * 320x50, 468x60, 728x90, 970x90
 *
 * The sizes with height 90px are only used if the screen is very tall.
 */

:root {
	/* Make sure to use 'px' here or else calc() can break. */
	--footer-ad-h: 0px;
}

@media screen and (min-width: 320px) and (min-height: 600px) {
	:root {
		--footer-ad-h: 50px;
	}
}

@media screen and (min-width: 468px) and (min-height: 600px) {
	:root {
		--footer-ad-h: 60px;
	}
}

@media screen and (min-width: 728px) and (min-height: 800px) {
	:root {
		--footer-ad-h: 90px;
	}
}

/*
 * === Adjustments to Citizen skin elements ===
 *
 * Citizen switches its layout at the width limit of 1120px, and we have to
 * apply different customizations to the layout based on that.
 */

/* Make sure we can scroll to the end, taking the ad into account. */
.mw-ads-enabled .citizen-page-container {
	margin-bottom: var(--footer-ad-h);
}

/* The narrow layout where the Citizen "header" is at the bottom. We have to
   make sure that the "header" and everything tied to it is above the ad. */
@media screen and (max-width: 1119px) {
	/* This one is visible even if the Citizen "header" is hidden. Make sure
	   it's above the ad. Note that the weird .citizen-feature... class is on
	   the <html> element so it's even before .mw-ads-enabled. */
	.citizen-feature-autohide-navigation-clientpref-1
	.mw-ads-enabled.citizen-scroll--down .citizen-toc {
		bottom: calc(var(--footer-ad-h) + var(--space-xs));
	}
	
	/* The "header" is actually at the bottom; make sure it's above the ad. */
	.mw-ads-enabled .citizen-header {
		bottom: var(--footer-ad-h);
	}
	
	/* These float above the header. */
	.mw-ads-enabled .page-actions,
	.mw-ads-enabled .citizen-toc {
		bottom: calc(var(--footer-ad-h) + var(--header-size) + var(--space-xs));
	}
}

/* The wide layout where the Citizen "header" is on the left-side and the TOC
   floats on the right. */
@media screen and (min-width: 1120px) {
	/* Make sure "header" (left-side panel) isn't covered by ad. */
	.mw-ads-enabled .citizen-header {
		bottom: var(--footer-ad-h);
	}
	
	/* Make sure TOC isn't too high. */
	.mw-ads-enabled .citizen-toc {
		max-height: calc(
			100vh - var(--footer-ad-h) - var(--height-sticky-header)
		);
	}
}

/*
 * === Rest of the footer ad configuration ===
 */

/* Container */
.mw-ads-enabled #bg3wiki-footer-ad {
	position: fixed;
	bottom: 0;
	left: 0;
	height: var(--footer-ad-h);
	width: 100%;
	background: var(--color-surface-3);
	z-index: 999;
	align-content: center;
	overflow: hidden;
}

/* Placeholder text for when ad isn't shown yet / doesn't show up. */
#bg3wiki-footer-ad p {
	text-align: center;
	font-size: 0.9em;
	font-style: italic;
	color: var(--color-subtle);
}

/* The actual insertion point for the ad. */
#bg3wiki-footer-ad-fuse,
#bg3wiki-footer-ad-ramp {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	align-content: center;
	/* So the two divs (fuse & ramp) don't block each other. */
	/* Set pointer-events back on their child nodes. */
	pointer-events: none;
}

/* See comment about pointer-events above. */
#bg3wiki-footer-ad-fuse div,
#bg3wiki-footer-ad-ramp div {
	pointer-events: auto;
}

/* The "Ads served by: xyz" text at the bottom. */
#bg3wiki-ad-provider-notice {
	margin: 0 var(--padding-page);
	color: var(--color-subtle);
}

/*
 * == PortableInfobox ==
 */

.portable-infobox {
	margin-bottom: 2em;
}

/* Style the resistances part of the creature infobox. */
.pi-type-creature [data-item-name="resistances"] ul {
	margin: 0;
	list-style: none;
	display: flex;
	justify-content: center;
	gap: 5px;
	flex-wrap: wrap;
}

/*
 * == Template-specific CSS ==
 *
 * These are things that can't be done via Extension:TemplateStyles, because
 * they respond to dark/light theme settings.
 */

/*
 * === Template:DamageColor ===
 */

.skin-citizen-dark .bg3wiki-damage-type-physical,
.skin-citizen-dark .bg3wiki-damage-type-weapon,
.skin-citizen-dark .bg3wiki-damage-type-piercing,
.skin-citizen-dark .bg3wiki-damage-type-bludgeoning,
.skin-citizen-dark .bg3wiki-damage-type-slashing {
	color: #8c8c8c;
}
.skin-citizen-dark .bg3wiki-damage-type-acid {
	color: #80b000;
}
.skin-citizen-dark .bg3wiki-damage-type-cold {
	color: #3399cc;
}
.skin-citizen-dark .bg3wiki-damage-type-fire {
	color: #ee5500;
}
.skin-citizen-dark .bg3wiki-damage-type-force {
	color: #cc3333;
}
.skin-citizen-dark .bg3wiki-damage-type-healing {
	color: #30bbbb;
}
.skin-citizen-dark .bg3wiki-damage-type-lightning {
	color: #3366cc;
}
.skin-citizen-dark .bg3wiki-damage-type-necrotic {
	color: #40b050;
}
.skin-citizen-dark .bg3wiki-damage-type-poison {
	color: #44bb00;
}
.skin-citizen-dark .bg3wiki-damage-type-radiant {
	color: #ccaa00;
}
.skin-citizen-dark .bg3wiki-damage-type-thunder {
	color: #8844bb;
}
.skin-citizen-dark .bg3wiki-damage-type-psychic {
	color: #cc77aa;
}

.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-physical,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-weapon,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-piercing,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-bludgeoning,
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-slashing {
	color: #8c8c8c;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-acid {
	color: #80b000;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-cold {
	color: #3399cc;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-fire {
	color: #ee5500;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-force {
	color: #cc3333;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-healing {
	color: #30bbbb;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-lightning {
	color: #3366cc;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-necrotic {
	color: #40b050;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-poison {
	color: #44bb00;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-radiant {
	color: #ccaa00;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-thunder {
	color: #8844bb;
}
.skin-citizen-dark .bg3wiki-info-blob .bg3wiki-damage-type-psychic {
	color: #cc77aa;
}

/*
 * == Miscellaneous ==
 */

/* Citizen wraps tables in a pair of divs, and the outer one's width isn't set.
   For some reason, it ends up being narrower than the available width if this
   isn't set. */
/* Not needed as of Citizen v2.27.0 */
/*
.citizen-overflow-wrapper {
	width: 100%;
}
*/

/*****************************************************************************
 *
 * = START LEGACY CSS =
 *
 * This is CSS that was added in the past and wasn't always documented well.
 * Some of it may be unnecessary and should perhaps be cautiously deleted,
 * other parts should be moved either to TemplateStyles or to the cleaned up
 * section above.
 *
 *****************************************************************************/

:root.skin-citizen-dark {
	--background-color-overlay: hsla(var(--color-primary__h) 20% 20% / 60%);
	--background-color-overlay--lighter: hsl(var(--color-primary__h)  20% 20% / 80%);
	
	--bg3wiki-relative-location-bg: var(--color-surface-0);
	--bg3wiki-relative-location-header-bg-dark: var(--color-surface-1);
	
	/* CSS tooltip colours */
	--aria-label-tooltip-bg: hsl(200deg 5% 10%);
	--aria-label-tooltip-fg: hsl(0deg 0% 90%);
	--aria-label-tooltip-border: none;
	
	--bg3wiki-tooltip-border: #785000;
}

/* MobileFrontend should strip elements with this class, but still */
.nomobile {
	display: none;
}

/* Trick to easily make lists with list-style: none */
/* Wrap a list in <div class="bg3wiki-list-style-none"> */
.bg3wiki-list-style-none > ul {
	list-style: none;
}

/* Table styling */

.wikitable {
	width: 100%;
}

/*
 * Various elements used across the wiki
 */

/* Info blob */

div.bg3wiki-info-blob {
	display: inline-block;
	padding: 0 1em 0 1em;
	border-radius: 20px;
}
span.bg3wiki-info-blob {
	padding: 0 0.5em 0 0.5em;
	border-radius: 10px;
}
.bg3wiki-info-blob {
	background-color: var(--color-surface-1);
	font-family: monospace;
}

/* D20 background image for numbers */

.bg3wiki-d20-bg {
	background-image: url('/static/d20-bg.png');
	background-position: center;
	background-repeat: no-repeat;
	background-size: 35px;
}

/* Coordinates */

.skin-citizen-dark .bg3wiki-coordinates {
	font-family: 'Linux Libertine', 'Georgia', serif;
	text-shadow: 1px 1px 2px #000, -1px -1px 2px #000;
	color: #AB9F89;
	background: #34323285;
	border-radius: 5px;
	padding: 3px 5px;
	box-shadow: 1px 1px 5px #00000030;
}

/* Item, spell, etc. properties */

.bg3wiki-property-list dt {
	font-weight: normal;
}
.bg3wiki-property-list dd {
	margin-left: 0;
}

.mw-content-ltr ul.bg3wiki-property-list {
	margin-left: 0;
	list-style: none;
}

/* Imitating in-game tooltips */

.bg3wiki-tooltip-box {
	overflow: hidden;
	margin: 0.5em 0.2em 0 0.2em;
}

.skin-citizen-dark .bg3wiki-tooltip-box {
	background: #1B1A19;
	box-shadow:
		rgba(0, 0, 0, 0.14) 3px 3px 6px 0px inset,
		rgba(0, 0, 0, 0.14) -3px -3px 6px 1px inset;
	border: 0.15rem solid var(--bg3wiki-tooltip-border);
	border-radius: 10px;
	padding: 15px;
}

.skin-citizen-dark .bg3wiki-tooltip-gradient-common {
	background: linear-gradient(to bottom, #1B1A1999, #1B1A1999, #1B1A1999, #40295199);
}

.skin-citizen-dark .bg3wiki-tooltip-gradient-uncommon {
	background: linear-gradient(to bottom, #00491599, #1B1A1999, #1B1A1999, #40295199);
}

.skin-citizen-dark .bg3wiki-tooltip-gradient-rare {
	background: linear-gradient(to bottom, #00374999, #1B1A1999, #1B1A1999, #40295199);
}

.skin-citizen-dark .bg3wiki-tooltip-gradient-veryrare {
	background: linear-gradient(to bottom, #54003299, #1B1A1999, #1B1A1999, #40295199);
}

.skin-citizen-dark .bg3wiki-tooltip-gradient-legendary {
	background: linear-gradient(to bottom, #563E0D99, #1B1A1999, #1B1A1999, #40295199);
}

.skin-citizen-dark .bg3wiki-tooltip-gradient-story {
	background: linear-gradient(to bottom, #561D0099, #1B1A1999, #1B1A1999, #40295199);
}

.bg3wiki-book-text p {
	font-family: 'Linux Libertine', 'Georgia', serif;
}

/* ItemIcon stuff */

:root {
	/* ItemIcon rarity colors */
	--bg3wiki-itemicon-common: 72, 72, 72;
	--bg3wiki-itemicon-uncommon: 1, 189, 57;
	--bg3wiki-itemicon-rare: 1, 191, 255;
	--bg3wiki-itemicon-very-rare: 209, 1, 123;
	--bg3wiki-itemicon-legendary: 183, 134, 29;
	--bg3wiki-itemicon-story: 255, 89, 1;
	--bg3wiki-itemicon-gradient-top-opacity: 0%;
	--bg3wiki-itemicon-gradient-bot-opacity: 12.5%;
	--bg3wiki-itemicon-border-opacity: 60%;
}

.bg3wiki-itemicon-wrapper {
	text-align: center;
	white-space: nowrap;
}

/* The value of --bg3wiki-rarity-color will be set per rarity class. */
.bg3wiki-itemicon {
	display: inline-block;
	background: linear-gradient(
		rgba(var(--bg3wiki-rarity-color), var(--bg3wiki-itemicon-gradient-top-opacity)),
		rgba(var(--bg3wiki-rarity-color), var(--bg3wiki-itemicon-gradient-bot-opacity))
	);
	border: solid 1px rgba(var(--bg3wiki-rarity-color), var(--bg3wiki-itemicon-border-opacity));
}

.bg3wiki-itemicon-common {
	--bg3wiki-rarity-color: var(--bg3wiki-itemicon-common);
}

.bg3wiki-itemicon-uncommon {
	--bg3wiki-rarity-color: var(--bg3wiki-itemicon-uncommon);
}

.bg3wiki-itemicon-rare {
	--bg3wiki-rarity-color: var(--bg3wiki-itemicon-rare);
}

.bg3wiki-itemicon-very-rare {
	--bg3wiki-rarity-color: var(--bg3wiki-itemicon-very-rare);
}

.bg3wiki-itemicon-legendary {
	--bg3wiki-rarity-color: var(--bg3wiki-itemicon-legendary);
}

.bg3wiki-itemicon-story {
	--bg3wiki-rarity-color: var(--bg3wiki-itemicon-story);
}

/* Relative Location stuff */

.relative-location {
	background: var(--bg3wiki-relative-location-bg);
	border: 1px solid var(--bg3wiki-tooltip-border);
	border-spacing: 0;
	box-shadow: 0 0.25rem 0.35rem -0.25rem rgba(0, 0, 0, 0.1);
	margin: 5px;
	text-align: center;
}

.relative-location-header {
	background: var(--bg3wiki-relative-location-header-bg-dark);
}

/* Damage Rider As Source (DRS) template */

.bg3wiki-damage-rider-source {
	font-size:10px;
	vertical-align: top;
	font-style: italic;
}

/* License box */

#mw-license-preview .bg3wiki-license-box-container {
	/* Don't want margin in the preview box because that breaks things */
	margin: auto auto auto 0;
}

.bg3wiki-license-box-container {
	margin: 4px 0 4px 10%;
}

.bg3wiki-license-box {
	border: 2px solid #785000;
	border-collapse: collapse;
	background: #1B1A19;
	color: rgb(210,210,210);
	width: 100%;
}

.bg3wiki-license-box-image {
	border-right: none;
	padding: 0.4rem 0 0.4rem 0.9rem;
}

.bg3wiki-license-box-text {
	border-left: none;
	vertical-align: top;
	padding: 0.4rem 0 0.4rem 0.9rem;
}

/* Hat note */
.hatnote {
	font-style: italic;
	padding-left: 1.6em;
	margin-bottom: 0.5em;
}

/* Price calculator */ 
#bg3wiki-price-calculator {
	border: 1px solid var(--bg3wiki-tooltip-border);
}

#bg3wiki-price-calculator-form {
	padding: 0.5em;
}

#bg3wiki-price-calculator-form input[type="number"] {
	width: 100%;
}

#bg3wiki-price-calculator-form td {
	padding-right: 0.5em;
}

#bg3wiki-price-calculator-form th {
	text-align: right;
	padding-right: 0.5em;
}

#bg3wiki-price-calculator-form label {
	margin-left: 0.2em;
}

#bg3wiki-price-calculator-result {
	margin: 1em;
}

#bg3wiki-price-calculator-result td, #bg3wiki-price-calculator-result th {
	text-align: right;
}

/* Hack to display category trees as a navbox. Only used on NavModding and 
 * NavGuides for now.
 */

.navcat div > .CategoryTreeSection::after {
	content: " · ";
	font-weight: bold;
}

.navcat div > .CategoryTreeSection:last-child::after {
	content: none;
}

.navcat div > .CategoryTreeTag,
.navcat div > .CategoryTreePageBullet {
	display: none;
	margin: 0;
	padding: 0;
}

.navcat div {
	display: inline;
	margin: 0;
	padding: 0;
	padding-left: 0;
}

/* UID widget styling. */
.bg3wiki-uid {
	display: inline-block;
}

.bg3wiki-uid summary {
	display: inline-block;
	list-style: none;
	margin: 2px 0;
}

.bg3wiki-uid summary span {
	text-decoration: underline dotted;
	cursor: pointer;
}

.bg3wiki-uid tt {
	border: 1px dashed var(--bg3wiki-tooltip-border);
	user-select: all;
	padding: 0 0.5rem;
}

/* number inside AC shield */
.bg3wiki-ac-value {
	display: grid;
	justify-items:start;
	align-items: start
}

.bg3wiki-ac-value > div {
	grid-column-start: 1;
	grid-row-start: 1;
}

.bg3wiki-ac-value .ac-value {
	text-align:center;
	width: 40px;
	align-self: center;
	padding-bottom: 0.5ch
}

.bg3wiki-ac-value .ac-value-comment {
	grid-column-start: 2;
	grid-row-start: 1;
	align-self: center
}

/* CSS tooltip implementation. Usage in markup:

	<some-element aria-label="tooltip text here">
		normal text
	</some-element>
*/

.mw-body [aria-label]:hover,
.mw-body [aria-label]:focus {
	position: relative;
}

.mw-body [aria-label]:hover::after,
.mw-body [aria-label]:focus::after {
	position: absolute;
	white-space: pre;
	line-height: 1;
	padding: 0.3rem;
	content: attr(aria-label);
	background-color: var(--aria-label-tooltip-bg);
	color: var(--aria-label-tooltip-fg);
	border: var(--aria-label-tooltip-border);
	text-decoration: unset;

	/* See optional override below. */
	bottom: 100%;
	left: 0;
}

/* Changes the tooltip position. */
.mw-body [aria-label].aria-label-top-rig:hover::after,
.mw-body [aria-label].aria-label-top-rig:focus::after {
	bottom: 100%;
	left: unset;
	right: 0;
}

/* Optional class for indicating tooltip presence via underline. */
.bg3wiki-help-tooltip[aria-label] {
	cursor: help;
	text-decoration-line: underline;
	text-decoration-style: dotted;
	text-decoration-thickness: 1px;
	text-underline-offset: calc(1ex / 2);
}

/* Tab bar */
.bg3wiki-tabbar {
	background-color: #1B1A19;
	margin: 0.5em 0 0 0;
}

.bg3wiki-tabbar .bg3wiki-tab {
	padding:0 10px;
	display: inline-block;
}

.bg3wiki-tabbar .bg3wiki-tab-active {
	background-color: #281c14;
	color: #cfbca9;
}

/* Unbulleted lists */
.bg3wiki-ublist ul,
.bg3wiki-ublist ol {
	margin: 0;
	padding: 0;
	line-height: inherit;
	list-style: none;
}

/* Horizontal lists */

.bg3wiki-horizontlist dl,
.bg3wiki-horizontlist ul {
	margin: 0;
	padding: 0;
}

.bg3wiki-horizontlist dl ul,
.bg3wiki-horizontlist dl dl,
.bg3wiki-horizontlist ul dl,
.bg3wiki-horizontlist ul ul {
	display: inline;
}

.bg3wiki-horizontlist dd,
.bg3wiki-horizontlist dt,
.bg3wiki-horizontlist li {
	margin: 0;
	display: inline;
}

.bg3wiki-horizontlist dd::after,
.bg3wiki-horizontlist li::after {
	content: " · ";
	font-weight: bold;
}

.bg3wiki-horizontlist dd:last-child::after,
.bg3wiki-horizontlist dt:last-child::after,
.bg3wiki-horizontlist li:last-child::after {
	content: none;
}

.bg3wiki-horizontlist dt::after {
	content: ":";
	font-weight: normal;
	font-size: 100%;
}

.bg3wiki-horizontlist dd dd:first-child::before,
.bg3wiki-horizontlist dd dt:first-child::before,
.bg3wiki-horizontlist dd li:first-child::before,
.bg3wiki-horizontlist dt dd:first-child::before,
.bg3wiki-horizontlist dt dt:first-child::before,
.bg3wiki-horizontlist dt li:first-child::before,
.bg3wiki-horizontlist li dd:first-child::before,
.bg3wiki-horizontlist li dt:first-child::before,
.bg3wiki-horizontlist li li:first-child::before {
	content: " (";
	font-weight: normal;
}

.bg3wiki-horizontlist dd dd:last-child::after,
.bg3wiki-horizontlist dd dt:last-child::after,
.bg3wiki-horizontlist dd li:last-child::after,
.bg3wiki-horizontlist dt dd:last-child::after,
.bg3wiki-horizontlist dt dt:last-child::after,
.bg3wiki-horizontlist dt li:last-child::after,
.bg3wiki-horizontlist li dd:last-child::after,
.bg3wiki-horizontlist li dt:last-child::after,
.bg3wiki-horizontlist li li:last-child::after {
	content: ")";
	font-weight: normal;
}

.bg3wiki-bquote {
	overflow: hidden;
	margin: 1em 0;
}

.bg3wiki-quotesource {
	line-height: 1.5em;
	padding-left: 1.5em;
	margin-top: 0;
}

.bg3wiki-blockquote-marks {
	font-size: 120%;
	font-family: serif;
	font-weight: bold;
}

/* Shortcut */
.bg3wiki-template-shortcut {
	display: inline-block;
	background-color: var(--color-surface-2);
	text-align: center;
	margin: 1em;
	padding: 0 0.33em 0 0.33em;
	vertical-align: top;
	width: fit-content;
	font-size: 85%;
}

.bg3wiki-template-shortcut-top {
	text-align: center;
	margin: 0;
	padding: 0 0 0.16em 0;
	border-bottom: 2px solid #3d3d3d;
	font-size: 90%;
}

/* Amboxes */
.ambox {
	background-color: var(--color-surface-2);
}
.ambox-speedy {
	/* Pink */
	background-color: #400805;
}
.ambox .mbox-image,
.ambox .mbox-imageright {
	/* These are hidden since the screen may be too narrow. */
	display: none;
}

/* Character info template styling */
.infobox {
	display: table;
	width: 100%;
	font-size: 90%;
	margin-left: auto;
	margin-right: auto;
	background-color: var(--color-surface-0);
}

.infobox-above {
	font-size: 130%;
	text-align: center;
	background: var(--color-surface-1);
}

.infobox-subheader {
	text-align: center;
	background-color: var(--color-surface-0);
}

.infobox-header {
	text-align: center;
	font-size: 130%;
	text-align: center;
	background: var(--color-surface-1);
}

.infobox-title {
	text-align: center;
}

.infobox-label {
	background-color: var(--color-surface-1);
	margin-right: 5em;
	padding: 5px;
}

th.infobox-label {
	text-align: right;
}

th.infobox-label:has(.bg3wiki-icontext-block),
th.infobox-label:has(.bg3wiki-condition) {
	text-align: left;
}

td.infobox-label {
	text-align: center;
}

.infobox-data {
	text-align: center;
	background-color: var(--color-surface-1);
	padding: 5px;
}

.infobox-below {
	text-align: center;
	background: var(--color-surface-1);
}

.infobox-image {
	text-align: center;
	background-color: var(--color-surface-0);
}

.infobox table {
	display: table;
}

.infobox caption {
	display: table-caption;
	background-color: var(--color-surface-0);
}

/* Remove nowrap when undesired in infoboxes  */
.mw-parser-output .infobox .nowrap {
	white-space: normal !important;
}

/* When we want wrapping */
.wrap,
.wraplinks a {
	white-space: normal;
}

/* Template:WeaponsTableHeader / Template:WeaponsTableRow */

.bg3wiki-weapons-table td:not(:last-child) {
	text-align: center;
}