MediaWiki:Common.css: Difference between revisions

From ICE List Wiki
Jump to navigation Jump to search
No edit summary
Tag: Reverted
No edit summary
 
(45 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* CSS placed here will be applied to all skins */
/* CSS placed here will be applied to all skins */
/** Slim donation banner **/
.icelist-donate-banner {
    background: #fff8f8;
    border-bottom: 1px solid #e7bcbc;
    text-align: center;
    padding: 6px 0;
    font-size: 0.85em;
}
.icelist-donate-banner a {
    font-weight: bold;
}
/* Hide username, talk link, and notification bell in the personal toolbar */
/* Hide username, talk link, and notification bell in the personal toolbar */
#pt-userpage,  
#pt-userpage,  
Line 295: Line 284:


#ca-history { display: none !important; }
#ca-history { display: none !important; }
.ic-infobox {
  float: right;
  margin: 0 0 1em 1em;
  clear: right;
}
/* Force infobox behavior for our company infobox */
.mw-parser-output table.ic-infobox {
  float: right;
  clear: right;
  width: 22em;
  max-width: 100%;
  margin: 0 0 1em 1em;
}
/* Keep it from becoming full-width */
.mw-parser-output table.ic-infobox {
  display: table;
}
/* Make sure cells behave nicely */
.mw-parser-output table.ic-infobox th,
.mw-parser-output table.ic-infobox td {
  vertical-align: top;
}
/* === ICE List Site Notice (Stable, No JS Dependency) === */
#siteNotice {
  background: #f2f2f2;
  border-bottom: 1px solid #d0d0d0;
  padding: 20px 24px;
  font-size: 17px;
  line-height: 1.5;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
/* Headline emphasis */
#siteNotice strong {
  font-size: 18px;
  font-weight: 700;
}
/* Donate button styling (wikitext link) */
#siteNotice a {
  display: inline-block;
  margin-left: 12px;
  padding: 8px 16px;
  background: #e03a2d;
  color: #fff !important;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 600;
}
#siteNotice a:hover {
  background: #c83227;
}
/* Mobile adjustments */
@media (max-width: 720px) {
  #siteNotice {
    padding: 16px 14px;
    font-size: 16px;
  }
  #siteNotice a {
    display: block;
    margin: 12px auto 0;
    width: fit-content;
  }
}
/* Close button for ICE List notice */
.icelist-notice-close {
  position: absolute;
  top: 10px;
  right: 14px;
  background: none;
  border: none;
  font-size: 22px;
  font-weight: bold;
  cursor: pointer;
  color: #666;
}
.icelist-notice-close:hover {
  color: #000;
}
/* Left text block */
#siteNotice > *:first-child {
  flex: 1;
  text-align: left;
}
/* Donate button on the right */
#siteNotice a {
  flex-shrink: 0;
  margin-left: 20px;
}
@media (max-width: 720px) {
  #siteNotice {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  #siteNotice a {
    margin-left: 0;
    align-self: center;
  }
}
/* Layout siteNotice as two columns: text left, CTA right */
#siteNotice {
  display: flex;
  align-items: center;
  gap: 20px;
}
/* Let text take available space */
#siteNotice > *:not(a) {
  flex: 1 1 auto;
}
/* Keep donate button fixed on the right */
#siteNotice a {
  flex: 0 0 auto;
  white-space: nowrap;
}
/* === FINAL OVERRIDE: ICE List siteNotice layout === */
/* This block intentionally overrides all previous #siteNotice rules */
#siteNotice {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
}
/* Text (everything except Donate + X) */
#siteNotice > :not(a):not(.icelist-notice-close) {
  flex: 1 1 auto !important;
}
/* Donate button */
#siteNotice a {
  flex: 0 0 auto !important;
  margin-left: 24px !important;
  white-space: nowrap !important;
}
/* === FINAL FIX: siteNotice layout using CSS Grid === */
#siteNotice {
  display: grid !important;
  grid-template-columns: 1fr auto;
  align-items: center;
  column-gap: 24px;
}
/* Ensure donate button stays in the right column */
#siteNotice a {
  grid-column: 2;
  justify-self: end;
  white-space: nowrap;
}
/* Close button stays top-right */
.icelist-notice-close {
  position: absolute;
  top: 10px;
  right: 14px;
}
/* ICE List notice table */
.icelist-notice-table {
  width: 100%;
  background: #f3f3f3;
  border-bottom: 1px solid #d0d0d0;
  padding: 12px 16px;
  border-collapse: collapse;
}
.icelist-notice-table td {
  vertical-align: middle;
  font-size: 16px;
  line-height: 1.4;
}
.icelist-notice-table td:last-child a {
  background: #e5392d;
  color: #fff !important;
  padding: 8px 16px;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.icelist-notice-table td:last-child a:hover {
  background: #cc2f25;
}
/* Remove internal separator line in site notice table */
#siteNotice .icelist-notice-table,
#siteNotice .icelist-notice-table td {
  border: none !important;
}
/* Hide Anonnotice container for logged-in users */
body.mw-logged-in #siteNotice {
  display: none;
}
/* ICE List — Anon donate banner styling
  Only activates when Common.js adds .icelist-donate-notice */
#siteNotice.icelist-donate-notice {
  background: #f2f2f2;
  border: 1px solid #dedede;
  border-radius: 8px;
  padding: 18px 20px;
  margin: 16px 0;
  position: relative;
  overflow: hidden;
}
/* Kill random separators/underlines that sometimes appear inside notices */
#siteNotice.icelist-donate-notice hr,
#siteNotice.icelist-donate-notice .mw-parser-output hr {
  display: none !important;
}
/* Keep the text left, and reserve space on the right for the button + X */
#siteNotice.icelist-donate-notice .mw-parser-output > p,
#siteNotice.icelist-donate-notice p {
  margin: 0 !important;
  padding-right: 190px; /* space for Donate button + close X */
  line-height: 1.35;
  font-size: 18px;
}
/* Make the Donate link a button and pin it to the right */
#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"],
#siteNotice.icelist-donate-notice a[href*="title=ICE_List_Wiki:Donate"] {
  position: absolute;
  right: 56px;
  top: 50%;
  transform: translateY(-50%);
  background: #e23b2e;
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
  padding: 12px 18px;
  border-radius: 10px;
  white-space: nowrap;
}
#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"]:hover {
  filter: brightness(0.95);
}
/* Close (X) button */
#siteNotice.icelist-donate-notice .icelist-notice-close {
  position: absolute;
  right: 14px;
  top: 12px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  font-size: 26px;
  line-height: 34px;
  cursor: pointer;
  color: #666;
}
#siteNotice.icelist-donate-notice .icelist-notice-close:hover {
  background: rgba(0,0,0,0.06);
  color: #111;
}
/* Prevent the “blank grey bar” effect when #siteNotice is empty */
#siteNotice:empty {
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
#siteNotice.icelist-donate-notice {
  display: flex;
  align-items: center;
  gap: 16px;
}
#siteNotice.icelist-donate-notice .mw-parser-output,
#siteNotice.icelist-donate-notice p {
  flex: 1 1 auto;
  margin: 0 !important;
  padding: 0 !important;
}
#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"] {
  position: static;
  margin-left: auto;
}
#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"] {
  align-self: center;
}
#siteNotice.icelist-donate-notice {
  padding-top: 16px;
  padding-bottom: 16px;
}
#siteNotice.icelist-donate-notice {
  display: flex;
  align-items: center;
  gap: 16px;
}
#siteNotice.icelist-donate-notice .donate-btn {
  margin-left: auto;
  align-self: center;
}
#siteNotice.icelist-donate-notice {
  display: flex;
  align-items: center;
  gap: 16px;
}
#siteNotice.icelist-donate-notice .donate-btn {
  margin-left: auto;
}
#siteNotice.icelist-donate-notice .icelist-notice-close {
  margin-left: 8px;
}


#siteNotice {
#siteNotice {
    margin: 0;
  display: flex;
    padding: 6px 12px;
  align-items: center;
    background: #fff8f8;
  gap: 16px;
    border-bottom: 1px solid #e7bcbc;
}
    font-size: 0.9em;
 
#siteNotice .donate-btn {
  margin-left: auto;
}
 
#siteNotice .icelist-notice-close {
  margin-left: 8px;
}
 
/* ICE List – anon donate banner (scoped) */
#siteNotice.icelist-anon-donate {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  background: #f3f3f3;
  border: 1px solid #d8d8d8;
  border-radius: 10px;
}
 
/* Keep the text as a flexible left column */
#siteNotice.icelist-anon-donate .icelist-donate-cta {
  margin-left: auto; /* pushes donate to the right */
  flex: 0 0 auto;
}
 
/* Style the Donate link as a button */
#siteNotice.icelist-anon-donate a.icelist-donate-btn {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 10px;
  background: #e44335;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}
 
#siteNotice.icelist-anon-donate a.icelist-donate-btn:hover {
  filter: brightness(0.95);
}
 
/* Close button */
#siteNotice.icelist-anon-donate .icelist-notice-close {
  margin-left: 10px;
  background: transparent;
  border: 0;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.7;
}
 
#siteNotice.icelist-anon-donate .icelist-notice-close:hover {
  opacity: 1;
}
 
/* Prevent empty notice bars if other CSS exists */
#siteNotice:empty {
  display: none;
}
 
#siteNotice.icelist-anon-donate {
  position: relative;
}
 
#siteNotice.icelist-anon-donate .icelist-notice-close{
  position: absolute;
  top: 8px;
  right: 10px;
  z-index: 9999;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 8px;
}
/* ICE List anon notice — ONLY when JS marks it */
#siteNotice.icelist-anon-donate{
  margin: 12px auto;
  padding: 14px 16px;
  border-radius: 12px;
  background: #f3f3f3;
  border: 1px solid rgba(0,0,0,0.08);
  position: relative;
}
 
/* Make your table behave like a clean banner row */
#siteNotice.icelist-anon-donate .icelist-notice-table{
  width: 100%;
  border-collapse: collapse;
}
 
#siteNotice.icelist-anon-donate .icelist-notice-table > tbody > tr{
  display: flex;
  gap: 16px;
  align-items: center;
}
 
#siteNotice.icelist-anon-donate .icelist-notice-table > tbody > tr > td:first-child{
  flex: 1;
  padding-right: 12px;
}
 
/* Donate button */
#siteNotice.icelist-anon-donate .icelist-donate-btn{
  display: inline-block;
  padding: 10px 16px;
  border-radius: 10px;
  background: #e53935;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700;
  white-space: nowrap;
}
 
/* Close button (top right) */
#siteNotice.icelist-anon-donate .icelist-notice-close{
  position: absolute;
  top: 6px;
  right: 10px;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 8px;
}
 
/* Baseline anon notice styling (only when JS marks it) */
#siteNotice.icelist-anon-donate{
  background: #f3f3f3;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 12px auto;
  position: relative;
}
 
/* Close button always visible */
#siteNotice.icelist-anon-donate .icelist-notice-close{
  position: absolute;
  top: 6px;
  right: 10px;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 8px;
}
 
#mw-dismissable-notice-dismiss {
  all: unset;                 /* wipe inherited button styles */
  cursor: pointer;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  color: #999;
  padding: 6px;
}
 
#mw-dismissable-notice-dismiss:hover {
  color: #000;
}
 
#mw-dismissable-notice-dismiss {
  position: absolute;
  top: 10px;
  right: 12px;
}
 
#mw-dismissable-notice-dismiss {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  color: #999 !important;
  padding: 6px !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  border-radius: 0 !important;
  cursor: pointer;
}
 
#mw-dismissable-notice-dismiss:hover {
  color: #000 !important;
}
 
#mw-dismissable-notice-dismiss {
  opacity: 0.6 !important;
}
 
#mw-dismissable-notice-dismiss:hover {
  opacity: 1 !important;
}
 
/* Kill ALL visual styling on dismiss link */
#mw-dismissable-notice-dismiss {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  height: auto !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}
 
/* Replace it visually with a pseudo-element */
#mw-dismissable-notice-dismiss::after {
  content: "×";
  color: #999;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
 
/* Hover state */
#mw-dismissable-notice-dismiss:hover::after {
  color: #000;
}
 
.mw-dismissable-notice-close a {
  background: none;
  border: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
  color: #999;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}
 
#siteNotice .mw-dismissable-notice-close > a {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  color: #999 !important;
  font-size: 20px !important;
}
 
#siteNotice.mw-dismissed {
  display: none;
}
 
/* When DismissableSiteNotice hides the notice with visibility:hidden,
  also collapse the layout so no grey bar remains. */
#siteNotice .mw-dismissable-notice-close[style*="visibility: hidden"] {
  display: none !important;
}
 
/* If the notice wrapper is otherwise empty/hidden, kill its spacing */
#siteNotice {
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}
 
/* Rounded corners + subtle elevation for dismissable site notice */
#siteNotice > .mw-dismissable-notice {
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  background: #f3f3f3;
  overflow: hidden;
}
 
#siteNotice {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
}
 
/* Make the dismissable notice be the single full-width visual box */
#siteNotice {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
}
 
#siteNotice > .mw-dismissable-notice {
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 12px 0 !important;            /* no auto-centering gaps */
  padding: 18px 20px !important;
  background: #f3f3f3 !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08) !important;
  position: relative !important;        /* anchor X positioning */
  overflow: hidden !important;          /* keeps corners clean */
}
 
/* Put the X in the top-right of the BOX (not the page/grid) */
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-close {
  position: absolute !important;
  top: 10px !important;
  right: 12px !important;
  z-index: 5 !important;
}
 
/* Make sure the close link isn't inheriting your Donate button styles */
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-close a {
  all: unset !important;
  cursor: pointer !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #888 !important;
  padding: 6px !important;
}
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-close a:hover {
  color: #222 !important;
}
}


.mw-body {
/* Optional: stop the text running under the X */
    margin-top: 0;
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-body {
  padding-right: 40px !important;
}
}

Latest revision as of 23:32, 20 December 2025

/* CSS placed here will be applied to all skins */
/* Hide username, talk link, and notification bell in the personal toolbar */
#pt-userpage, 
#pt-mytalk,
.mw-echo-notifications-badge,
.mw-echo-notifications,
#pt-notifications-alert,
#pt-notifications-notice {
    display: none !important;
}
/* HOMEPAGE LAYOUT FIX */
.icelist-homepage-columns {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5em;
    width: 100%;
}

/* Each column */
.icelist-homepage-column {
    flex: 1;
    min-width: 320px;
    max-width: 100%;
}

/* Mobile / tablet breakpoint */
@media (max-width: 900px) {
    .icelist-homepage-columns {
        flex-direction: column;
    }
}
/* Hide "Create pages" portlet by default */
#p-createpages {
    display: none;
}
.page-Main_Page .mw-first-heading {
    display: none;
}

/* Tighten spacing between blocks on Main Page */
.page-Main_Page .icelist-homepage-column > * {
  margin-top: 0;
}

/* If Featured_* outputs a wrapper with margins, this kills it */
.page-Main_Page .icelist-homepage-column .ic-card {
  margin-bottom: 6px;
}

/* Extra clamp: remove stray paragraph margins that appear between templates */
.page-Main_Page .icelist-homepage-column p:empty {
  display: none;
}

.page-Main_Page .icelist-homepage-column > .ic-card + .ic-card {
  margin-top: 0;
}

.icelist-homepage-columns {
  gap: 0.6em;
}

/* Main Page: remove mystery gap between Featured agent + Featured incident */
.page-Main_Page .icelist-homepage-column .ic-card + .ic-card {
  margin-top: 0 !important;
}

/* If the template output is wrapped in paragraphs, MediaWiki adds margins */
.page-Main_Page .icelist-homepage-column p {
  margin-block-start: 0.5em;
  margin-block-end: 0.5em;
}

/* But specifically remove margins for any paragraph directly between cards */
.page-Main_Page .icelist-homepage-column .ic-card + p,
.page-Main_Page .icelist-homepage-column p + .ic-card {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.page-Main_Page .icelist-homepage-column br {
  display: none;
}

/* Reduce space after top templates (infobox / agent page) */
.mw-parser-output > table.infobox,
.mw-parser-output > div.infobox {
  margin-bottom: 0.6em;
}

/* Reduce space before first heading */
.mw-parser-output > h1,
.mw-parser-output > h2:first-of-type {
  margin-top: 0.6em;
}

/* General infobox tightening */
.ic-infobox td,
.ic-infobox th {
  padding: 4px 6px;
  vertical-align: top;
}

/* Kill paragraph spacing inside infobox */
.ic-infobox p {
  margin: 0.2em 0;
}

/* Prevent empty cells from creating space */
.ic-infobox td:empty,
.ic-infobox th:empty {
  display: none;
}


/* Compact status / verification rows */
.ic-infobox .verification,
.ic-infobox .status {
  display: inline-block;
  margin: 0;
  padding: 2px 6px;
  font-size: 85%;
}

.ic-infobox {
  background: #fafafa;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 6px;
}

.ic-infobox img {
  display: block;
  margin-bottom: 6px;
  border-radius: 3px;
}

.ic-infobox img {
  background: #fff;
}

.ic-infobox th {
  font-weight: 600;
  color: #444;
  background: transparent;
  padding-right: 0.6em;
}

.ic-infobox td {
  padding-left: 0;
}

/* Dock verification block to the infobox (Agent pages) */
.ic-infobox-wrap {
  display: inline-block; /* makes verification match infobox width */
}

.ic-infobox-wrap .ic-verification-wrap {
  margin-top: 6px;
}

/* If Verification outputs a paragraph/div with margins, kill them inside the dock */
.ic-infobox-wrap .ic-verification-wrap > * {
  margin: 0;
}

.ic-infobox th,
.ic-infobox td {
    padding: 4px 6px;
    vertical-align: top;
}

.ic-infobox .ic-verification,
.infobox .ic-verification {
  display: inline-block;
  margin: 0;
}

.ic-agent-addinfo{
  float: right;
  clear: right;
  width: 260px;
  margin: -0.6em 0 1em 1em; /* tucks it closer to the infobox */
  font-size: 90%;
  background: #fafafa;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 6px 8px;
  box-sizing: border-box;
}

.ic-agent-addinfo a{
  font-weight: 600;
  text-decoration: none;
}

.ic-agent-addinfo a:hover{
  text-decoration: underline;
}

.ic-verify{
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  display: inline-block;
  border: 1px solid #d9d9d9;
  background: #fafafa;
  font-size: 90%;
}

/* Optional: color cues */
.ic-verify--verified{ border-color:#b7d7c2; background:#f4fbf6; }
.ic-verify--unverified{ border-color:#e0a1a1; background:#fff6f6; }

/* Verification display rules */
.ic-verify-inline { display: none; }            /* default: hide inline label */
.ic-verify-banner { display: block; }          /* default: show banner */

/* Inside agent infobox: hide banner, show inline */
.ic-infobox .ic-verify-banner { display: none; }
.ic-infobox .ic-verify-inline { 
  display: inline-block;
  padding: 0.2em 0.5em;
  border: 1px solid #ccc;
  background: #fdfdfd;
  font-size: 92%;
}

/* Optional: status styling via attribute selectors */
.ic-verify-inline[data-status="Verified"],
.ic-verify-banner[data-status="Verified"] {
  border-color: #b7d7c2;
  background: #f4fbf6;
}

.ic-verify-inline[data-status="Partially Verified"],
.ic-verify-banner[data-status="Partially Verified"] {
  border-color: #e0d3a1;
  background: #fffbe6;
}

.ic-verify-inline[data-status="Unverified"],
.ic-verify-banner[data-status="Unverified"] {
  border-color: #e0a1a1;
  background: #fff6f6;
}

/* ICE List mobile-only navigation */
.ic-mobile-nav {
	display: none !important;
	margin: 1em 0;
	padding: 1em;
	background: #f8f9fa;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 1.05em;
}

/* Show ONLY on Minerva (mobile view) */
.skin-minerva .ic-mobile-nav {
	display: block !important;
}

.ic-mobile-nav ul {
	list-style: none;
	padding-left: 0;
}

.ic-mobile-nav li {
	margin: 0.4em 0;
}

.ic-mobile-nav a {
	display: block;
	padding: 0.5em 0.6em;
	background: #ffffff;
	border: 1px solid #ddd;
	border-radius: 4px;
	text-decoration: none;
	font-weight: 500;
}

#ca-history { display: none !important; }

.ic-infobox {
  float: right;
  margin: 0 0 1em 1em;
  clear: right;
}
/* Force infobox behavior for our company infobox */
.mw-parser-output table.ic-infobox {
  float: right;
  clear: right;
  width: 22em;
  max-width: 100%;
  margin: 0 0 1em 1em;
}

/* Keep it from becoming full-width */
.mw-parser-output table.ic-infobox {
  display: table;
}

/* Make sure cells behave nicely */
.mw-parser-output table.ic-infobox th,
.mw-parser-output table.ic-infobox td {
  vertical-align: top;
}

/* === ICE List Site Notice (Stable, No JS Dependency) === */

#siteNotice {
  background: #f2f2f2;
  border-bottom: 1px solid #d0d0d0;
  padding: 20px 24px;
  font-size: 17px;
  line-height: 1.5;
  position: relative;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* Headline emphasis */
#siteNotice strong {
  font-size: 18px;
  font-weight: 700;
}

/* Donate button styling (wikitext link) */
#siteNotice a {
  display: inline-block;
  margin-left: 12px;
  padding: 8px 16px;
  background: #e03a2d;
  color: #fff !important;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 600;
}

#siteNotice a:hover {
  background: #c83227;
}

/* Mobile adjustments */
@media (max-width: 720px) {
  #siteNotice {
    padding: 16px 14px;
    font-size: 16px;
  }

  #siteNotice a {
    display: block;
    margin: 12px auto 0;
    width: fit-content;
  }
}

/* Close button for ICE List notice */
.icelist-notice-close {
  position: absolute;
  top: 10px;
  right: 14px;
  background: none;
  border: none;
  font-size: 22px;
  font-weight: bold;
  cursor: pointer;
  color: #666;
}

.icelist-notice-close:hover {
  color: #000;
}

/* Left text block */
#siteNotice > *:first-child {
  flex: 1;
  text-align: left;
}

/* Donate button on the right */
#siteNotice a {
  flex-shrink: 0;
  margin-left: 20px;
}

@media (max-width: 720px) {
  #siteNotice {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  #siteNotice a {
    margin-left: 0;
    align-self: center;
  }
}

/* Layout siteNotice as two columns: text left, CTA right */
#siteNotice {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* Let text take available space */
#siteNotice > *:not(a) {
  flex: 1 1 auto;
}

/* Keep donate button fixed on the right */
#siteNotice a {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* === FINAL OVERRIDE: ICE List siteNotice layout === */
/* This block intentionally overrides all previous #siteNotice rules */

#siteNotice {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
}

/* Text (everything except Donate + X) */
#siteNotice > :not(a):not(.icelist-notice-close) {
  flex: 1 1 auto !important;
}

/* Donate button */
#siteNotice a {
  flex: 0 0 auto !important;
  margin-left: 24px !important;
  white-space: nowrap !important;
}

/* === FINAL FIX: siteNotice layout using CSS Grid === */

#siteNotice {
  display: grid !important;
  grid-template-columns: 1fr auto;
  align-items: center;
  column-gap: 24px;
}

/* Ensure donate button stays in the right column */
#siteNotice a {
  grid-column: 2;
  justify-self: end;
  white-space: nowrap;
}

/* Close button stays top-right */
.icelist-notice-close {
  position: absolute;
  top: 10px;
  right: 14px;
}

/* ICE List notice table */
.icelist-notice-table {
  width: 100%;
  background: #f3f3f3;
  border-bottom: 1px solid #d0d0d0;
  padding: 12px 16px;
  border-collapse: collapse;
}

.icelist-notice-table td {
  vertical-align: middle;
  font-size: 16px;
  line-height: 1.4;
}

.icelist-notice-table td:last-child a {
  background: #e5392d;
  color: #fff !important;
  padding: 8px 16px;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.icelist-notice-table td:last-child a:hover {
  background: #cc2f25;
}

/* Remove internal separator line in site notice table */
#siteNotice .icelist-notice-table,
#siteNotice .icelist-notice-table td {
  border: none !important;
}
/* Hide Anonnotice container for logged-in users */
body.mw-logged-in #siteNotice {
  display: none;
}

/* ICE List — Anon donate banner styling
   Only activates when Common.js adds .icelist-donate-notice */
#siteNotice.icelist-donate-notice {
  background: #f2f2f2;
  border: 1px solid #dedede;
  border-radius: 8px;
  padding: 18px 20px;
  margin: 16px 0;
  position: relative;
  overflow: hidden;
}

/* Kill random separators/underlines that sometimes appear inside notices */
#siteNotice.icelist-donate-notice hr,
#siteNotice.icelist-donate-notice .mw-parser-output hr {
  display: none !important;
}

/* Keep the text left, and reserve space on the right for the button + X */
#siteNotice.icelist-donate-notice .mw-parser-output > p,
#siteNotice.icelist-donate-notice p {
  margin: 0 !important;
  padding-right: 190px; /* space for Donate button + close X */
  line-height: 1.35;
  font-size: 18px;
}

/* Make the Donate link a button and pin it to the right */
#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"],
#siteNotice.icelist-donate-notice a[href*="title=ICE_List_Wiki:Donate"] {
  position: absolute;
  right: 56px;
  top: 50%;
  transform: translateY(-50%);
  background: #e23b2e;
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
  padding: 12px 18px;
  border-radius: 10px;
  white-space: nowrap;
}

#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"]:hover {
  filter: brightness(0.95);
}

/* Close (X) button */
#siteNotice.icelist-donate-notice .icelist-notice-close {
  position: absolute;
  right: 14px;
  top: 12px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  font-size: 26px;
  line-height: 34px;
  cursor: pointer;
  color: #666;
}

#siteNotice.icelist-donate-notice .icelist-notice-close:hover {
  background: rgba(0,0,0,0.06);
  color: #111;
}

/* Prevent the “blank grey bar” effect when #siteNotice is empty */
#siteNotice:empty {
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#siteNotice.icelist-donate-notice {
  display: flex;
  align-items: center;
  gap: 16px;
}

#siteNotice.icelist-donate-notice .mw-parser-output,
#siteNotice.icelist-donate-notice p {
  flex: 1 1 auto;
  margin: 0 !important;
  padding: 0 !important;
}

#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"] {
  position: static;
  margin-left: auto;
}

#siteNotice.icelist-donate-notice a[href*="ICE_List_Wiki:Donate"] {
  align-self: center;
}

#siteNotice.icelist-donate-notice {
  padding-top: 16px;
  padding-bottom: 16px;
}
#siteNotice.icelist-donate-notice {
  display: flex;
  align-items: center;
  gap: 16px;
}

#siteNotice.icelist-donate-notice .donate-btn {
  margin-left: auto;
  align-self: center;
}

#siteNotice.icelist-donate-notice {
  display: flex;
  align-items: center;
  gap: 16px;
}

#siteNotice.icelist-donate-notice .donate-btn {
  margin-left: auto;
}

#siteNotice.icelist-donate-notice .icelist-notice-close {
  margin-left: 8px;
}

#siteNotice {
  display: flex;
  align-items: center;
  gap: 16px;
}

#siteNotice .donate-btn {
  margin-left: auto;
}

#siteNotice .icelist-notice-close {
  margin-left: 8px;
}

/* ICE List – anon donate banner (scoped) */
#siteNotice.icelist-anon-donate {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  background: #f3f3f3;
  border: 1px solid #d8d8d8;
  border-radius: 10px;
}

/* Keep the text as a flexible left column */
#siteNotice.icelist-anon-donate .icelist-donate-cta {
  margin-left: auto; /* pushes donate to the right */
  flex: 0 0 auto;
}

/* Style the Donate link as a button */
#siteNotice.icelist-anon-donate a.icelist-donate-btn {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 10px;
  background: #e44335;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

#siteNotice.icelist-anon-donate a.icelist-donate-btn:hover {
  filter: brightness(0.95);
}

/* Close button */
#siteNotice.icelist-anon-donate .icelist-notice-close {
  margin-left: 10px;
  background: transparent;
  border: 0;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.7;
}

#siteNotice.icelist-anon-donate .icelist-notice-close:hover {
  opacity: 1;
}

/* Prevent empty notice bars if other CSS exists */
#siteNotice:empty {
  display: none;
}

#siteNotice.icelist-anon-donate { 
  position: relative;
}

#siteNotice.icelist-anon-donate .icelist-notice-close{
  position: absolute;
  top: 8px;
  right: 10px;
  z-index: 9999;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 8px;
}
/* ICE List anon notice — ONLY when JS marks it */
#siteNotice.icelist-anon-donate{
  margin: 12px auto;
  padding: 14px 16px;
  border-radius: 12px;
  background: #f3f3f3;
  border: 1px solid rgba(0,0,0,0.08);
  position: relative;
}

/* Make your table behave like a clean banner row */
#siteNotice.icelist-anon-donate .icelist-notice-table{
  width: 100%;
  border-collapse: collapse;
}

#siteNotice.icelist-anon-donate .icelist-notice-table > tbody > tr{
  display: flex;
  gap: 16px;
  align-items: center;
}

#siteNotice.icelist-anon-donate .icelist-notice-table > tbody > tr > td:first-child{
  flex: 1;
  padding-right: 12px;
}

/* Donate button */
#siteNotice.icelist-anon-donate .icelist-donate-btn{
  display: inline-block;
  padding: 10px 16px;
  border-radius: 10px;
  background: #e53935;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700;
  white-space: nowrap;
}

/* Close button (top right) */
#siteNotice.icelist-anon-donate .icelist-notice-close{
  position: absolute;
  top: 6px;
  right: 10px;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 8px;
}

/* Baseline anon notice styling (only when JS marks it) */
#siteNotice.icelist-anon-donate{
  background: #f3f3f3;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 12px auto;
  position: relative;
}

/* Close button always visible */
#siteNotice.icelist-anon-donate .icelist-notice-close{
  position: absolute;
  top: 6px;
  right: 10px;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 8px;
}

#mw-dismissable-notice-dismiss {
  all: unset;                 /* wipe inherited button styles */
  cursor: pointer;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  color: #999;
  padding: 6px;
}

#mw-dismissable-notice-dismiss:hover {
  color: #000;
}

#mw-dismissable-notice-dismiss {
  position: absolute;
  top: 10px;
  right: 12px;
}

#mw-dismissable-notice-dismiss {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  color: #999 !important;
  padding: 6px !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  border-radius: 0 !important;
  cursor: pointer;
}

#mw-dismissable-notice-dismiss:hover {
  color: #000 !important;
}

#mw-dismissable-notice-dismiss {
  opacity: 0.6 !important;
}

#mw-dismissable-notice-dismiss:hover {
  opacity: 1 !important;
}

/* Kill ALL visual styling on dismiss link */
#mw-dismissable-notice-dismiss {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  height: auto !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

/* Replace it visually with a pseudo-element */
#mw-dismissable-notice-dismiss::after {
  content: "×";
  color: #999;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

/* Hover state */
#mw-dismissable-notice-dismiss:hover::after {
  color: #000;
}

.mw-dismissable-notice-close a {
  background: none;
  border: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
  color: #999;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

#siteNotice .mw-dismissable-notice-close > a {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  color: #999 !important;
  font-size: 20px !important;
}

#siteNotice.mw-dismissed {
  display: none;
}

/* When DismissableSiteNotice hides the notice with visibility:hidden,
   also collapse the layout so no grey bar remains. */
#siteNotice .mw-dismissable-notice-close[style*="visibility: hidden"] {
  display: none !important;
}

/* If the notice wrapper is otherwise empty/hidden, kill its spacing */
#siteNotice {
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

/* Rounded corners + subtle elevation for dismissable site notice */
#siteNotice > .mw-dismissable-notice {
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  background: #f3f3f3;
  overflow: hidden;
}

#siteNotice {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
}

/* Make the dismissable notice be the single full-width visual box */
#siteNotice {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
}

#siteNotice > .mw-dismissable-notice {
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 12px 0 !important;            /* no auto-centering gaps */
  padding: 18px 20px !important;
  background: #f3f3f3 !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08) !important;
  position: relative !important;         /* anchor X positioning */
  overflow: hidden !important;           /* keeps corners clean */
}

/* Put the X in the top-right of the BOX (not the page/grid) */
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-close {
  position: absolute !important;
  top: 10px !important;
  right: 12px !important;
  z-index: 5 !important;
}

/* Make sure the close link isn't inheriting your Donate button styles */
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-close a {
  all: unset !important;
  cursor: pointer !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #888 !important;
  padding: 6px !important;
}
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-close a:hover {
  color: #222 !important;
}

/* Optional: stop the text running under the X */
#siteNotice > .mw-dismissable-notice .mw-dismissable-notice-body {
  padding-right: 40px !important;
}