@charset "UTF-8";
/* Role signature for moderators */
/* Posting form */
/* Post */
/* Static pages */
/* Brackets around Reply and other elements */
/* Parantheses around Auto and other elements */
/* Upload cell */
@media only screen and (max-width: 479px) {
  .unhideButton,
  .embedButton,
  .checkedFavouriteButton:before,
  .extraMenuButton,
  .hideButton {
    float: left;
  }
  body {
    margin: 5px;
  }
}
@media (max-width: 767px) {
  /* Mobile nav fix (2026-08-17): the old rule forced the board list to width:100% at
     12pt, which pushed the settings/logs/catalog/home options onto their own third line
     and made the big text wrap/clip. Instead use one compact font across the whole nav so
     the board list and options flow together on fewer lines with no horizontal overflow. */
  #topNav,
  #bottomNav,
  .navLinkSpan,
  #navOptionsSpan,
  #navOptionsSpanCatalog,
  #navOptionsSpanThread,
  #navOptionsSpanHome {
    font-size: 0.85rem;
  }
  /* Let the floated options span sit inline after the board list rather than being
     isolated on its own line by a full-width left bar. */
  #navOptionsSpan,
  #navOptionsSpanCatalog,
  #navOptionsSpanThread,
  #navOptionsSpanHome {
    float: none;
    display: inline-block;
  }
  /* The desktop bottom nav is a fixed 18px strip — that clips wrapped mobile content. */
  #bottomNav {
    height: auto;
  }
  .notFoundImg {
    height: 225px;
  }
}
@media (min-width: 768px) {
  #topNav {
    position: absolute;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
  }
  .notFoundImg {
    height: 450px;
  }
}
.topBoards a,
.innerPost,
.markedPost,
.floatingMenu {
  background: #AAAACC;
}

#quick-reply table,
.modalDecorationPanel {
  background: #eeeeee;
}

.floatingMenu .header, .floatingMenu .headerLabel {
  cursor: pointer;
}

.markedPost,
div.postCell:target .innerPost {
  outline: 2px dashed #444488;
}

.logoImg {
  min-width: 1px;
}

#logoBox {
  text-align: center;
}

.captchaImage {
  width: 300px;
  height: 100px;
  background-color: #313370;
  cursor: pointer;
  color: white;
}

.small {
  font-size: 75%;
  text-decoration: none;
}

.clearer {
  clear: both;
}

#panelReferences a {
  display: block;
}

.imgLink img,
.latestImageCell img,
.mediaCell img,
.catalogCell img {
  image-orientation: from-image;
}

.linkList a {
  display: table;
}

#themeSelector {
  font-size: 100%;
}

.unhideButton,
.embedButton,
.checkedFavouriteButton:before,
.extraMenuButton,
.hideButton {
  cursor: pointer;
  white-space: nowrap;
}

a,
.reportdeletebuttons {
  color: #222299;
  text-decoration: underline;
  cursor: pointer;
  white-space: nowrap;
}

u {
  text-decoration: underline;
}

s {
  text-decoration: line-through;
}

strong {
  font-weight: bold;
}

em {
  font-style: italic;
}

.fileBrowser {
  background: none;
}

/* import resources here; external CSS, fonts, etc */
@font-face {
  font-family: "Icons";
  src: url("../open-iconic.eot");
  src: url("../open-iconic.eot?#iconic-sm") format("embedded-opentype"), url("../open-iconic.woff") format("woff"), url("../open-iconic.ttf") format("truetype"), url("../open-iconic.otf") format("opentype"), url("../open-iconic.svg#iconic-sm") format("svg");
  font-weight: normal;
  font-style: normal;
}
/* body styles, inherited by whole page */
body {
  background: #eeeeee;
  font-family: sans-serif;
  font-size: 10pt;
  overflow-x: hidden;
}

/* header and nav / top of page styles */
header {
  text-align: center;
  margin-top: 40px;
}

.errorDiv {
  text-align: center;
}

nav {
  clear: both;
  overflow-wrap: break-word;
}

#topNav {
  top: 0px;
  left: 0px;
  right: 0px;
  margin-top: 0;
  z-index: 30;
  padding-bottom: 1px;
  padding-top: 1px;
  padding-left: 5px;
  padding-right: 5px;
  text-align: center; /* legacy parity (vinumbra nav): center the board list in the space left of the right-floated options */
}

@media (min-width: 768px) {
  #topNav .navLinkSpan {
    display: inline-block; /* legacy parity: nav span { display:inline-block } — one atomic unit so text-align centers it as a whole (desktop only: the mobile width:100% rule would otherwise let an oversized box overlap the right-floated options) */
  }
}
#bottomNav {
  margin-top: 2.5em;
  height: 18px;
  text-align: center; /* parity with #topNav: center the board list (mobile media query below re-asserts left for the flex layout) */
}

#navLinkSpan,
#navLinkSpan2 {
  float: left;
}

#navOptionsSpan,
#navOptionsSpanCatalog,
#navOptionsSpanThread,
#navOptionsSpanHome {
  float: right;
  padding-top: 2px;
}

/* board list */
.divPages {
  border-style: outset;
  border-width: 1px;
  padding: 3px;
}

#divPages {
  display: inline-block;
  border-style: inset;
  border-width: 1px;
}

span#divPages a {
  padding: 0 0.25em;
  display: inline-block;
}

span#divPages span {
  padding: 0 0.25em;
  display: inline-block;
}

/* markdown */
.greenText {
  color: #007777;
}

.orangeText {
  color: #E04000;
}

.quote {
  color: #007777;
}

.redText {
  color: #AF0A0F;
  font-weight: bold;
  font-size: 125%;
}

span.spoiler {
  background: #000;
  color: #000;
}

.spoiler:hover {
  color: #FFF;
}

/* CSS for pages that deal with site and account settings and bans */
#settingsWrapper {
  margin: 2em auto;
}

#settingsWrapper input {
  margin-top: 0.25em;
  margin-bottom: 0.25em;
}

.banners {
  margin: 1em;
  width: auto;
  padding: 0.5em;
}

.settingsFieldset textarea {
  display: block;
  height: 5em;
}

.settingsFieldset label {
  display: block;
}

.settingsFieldset label input {
  display: inline-block;
}

#settingsWrapper .captchaDiv input {
  display: inline-block;
}

.subCaptchaDiv {
  text-align: left;
}

.captchaTimer {
  background: #eeeeee;
  border: 1px solid #000;
}

#labelCaptchaId {
  color: #ff0000;
}

#staticPageWrapper {
  margin: 2em auto;
  text-align: center;
}

.innerPost, .markedPost {
  display: inline-block;
  padding-right: 0.25em;
  margin-left: 2.15em;
  max-width: 100%;
  vertical-align: top;
  position: relative;
}

.innerOP {
  position: relative;
}

.threadPages {
  float: left;
}

.reportdelete {
  display: none;
}

.reportdeletebuttons {
  float: right;
}

input#togglereport:checked ~ .reportdelete {
  display: block;
}

/* this has to go down here to override anything above it */
.hidden {
  display: none;
}

.hiddenForce {
  display: none !important;
}

.hiddenVisibility {
  visibility: hidden;
}

#settingsWrapper input.hidden {
  display: none;
}

#divRemember input {
  display: inline;
}

h2 a:link {
  color: #aeaeff;
}

h2 a:visited {
  color: #ffaeae;
}

h2 {
  margin: 0px;
  color: #ffffff;
  background: #313370;
  font-weight: bold;
}

h2, #footer {
  padding-left: 2px;
  font-family: Verdana, Tahoma, Arial, sans-serif;
  font-size: 100%;
}

h3 {
  color: #ffffff;
  text-align: center;
  background: #313370;
}

.innerPost .hideButton,
.mainPanel ~ .hideButton,
.markedPost .hideButton {
  display: none;
}

.kCard .kHeading,
#indexWrapper h2,
#subpageWrapper h2,
#redirect h2 {
  padding: 0px 10px;
  -moz-border-radius-topleft: 10px;
  -webkit-border-top-left-radius: 10px;
  -moz-border-radius-topright: 10px;
  -webkit-border-top-right-radius: 10px;
}

.kCard .kBody,
#indexWrapper #indexLeft > div,
#indexWrapper #indexRight > div,
#subpageWrapper > div,
#redirect > div {
  margin-bottom: 15px;
  padding: 5px 10px;
  background-color: #dddddd;
  border-left: solid 1px #313370;
  border-right: solid 1px #313370;
  border-bottom: solid 1px #313370;
  -moz-border-radius-bottomleft: 10px;
  -webkit-border-bottom-left-radius: 10px;
  -moz-border-radius-bottomright: 10px;
  -webkit-border-bottom-right-radius: 10px;
}

.brackets::after,
.brackets::before {
  text-decoration: none;
  display: inline-block;
  color: #000000;
}

.brackets::after {
  content: "]";
}

.brackets::before {
  content: "[";
}

parentheses::after,
.parentheses::before {
  text-decoration: none;
  display: inline-block;
  color: #000000;
}

.parentheses::after {
  content: ")";
}

.parentheses::before {
  content: "(";
}

#links {
  padding: 0.5em;
  text-align: center;
  margin-bottom: 2em;
}

.scrollY {
  overflow-y: scroll;
}

#siteName {
  font-size: 250%;
  font-weight: bold;
}

#subpageWrapper {
  max-width: 700px;
  margin: 2em auto;
}

#redirect {
  max-width: 300px;
  margin: 2em auto;
}

div.titlebar {
  background: #313370;
  color: #ffffff;
  font-weight: bold;
  font-size: 15px;
  text-align: center;
  padding: 5px;
}

.appealForm table tr th,
table.modInfo tr th {
  background: #313370;
  color: #ffffff;
}

.appealForm table tr th,
table.modInfo tr th {
  text-align: left;
  padding: 4px;
}

/* Random-banner feature OFF (2026-08-16): the site runs a 1x1 transparent
   global banner as an invisible placeholder and shows the legacy ad block
   instead. Re-enable by restoring width/height/border here. */
#bannerImage {
  display: none;
}

/* Legacy ad block (was an inline <style> on each page in 2.9), centered.
   The red notice stays display:none until /.static/js/ads.js reveals it —
   and only when an ad-blocker is detected (or never, if the operator marker
   element 'f0rr34lm4nc0me0n' exists). */
.adBlock {
  text-align: center;
  margin-bottom: 20px;
  /* Never let the fixed-width ad push the page wider than the viewport. */
  max-width: 100%;
  overflow-x: hidden;
}

.vinumbraAds {
  display: block;
  margin-left: auto;
  margin-right: auto;
  /* The iframe carries an inline width:320px; cap it to the container so on
     narrow screens it scales down instead of overflowing + clipping on the right.
     max-width beats the inline width without needing !important. */
  max-width: 100%;
}

/* Ad-block notice (2026-08-17): lives in #topNav, which is always on screen.
   Full-width row inside the bar (block context on desktop, flex item on mobile);
   revealed by ads.js only when an ad-blocker is detected. */
#justall0wth3d4mn4d {
  display: none;
  width: 100%;
  padding: 3px 10px;
  background: #D30000;
  text-align: center;
  font-weight: bold;
  color: #fff;
}

.navLinkSpan, #navOptionsSpan, #navOptionsSpanCatalog, #navOptionsSpanThread, #navOptionsSpanHome {
  color: #89A;
  font-size: 9pt;
}

nav a {
  text-decoration: none;
}

/* Consent */
#cookieBanner {
  display: none;
  font-size: 14px;
  max-width: 900px;
  margin: 0px auto;
  padding: 12px;
  background-color: #ddd;
  border-bottom: solid 1px #ccc;
}

#cookieBannerClose {
  float: right;
  font-weight: bold;
  padding: 4px;
}

#cookieBannerActions {
  text-align: center;
  padding-top: 4px;
}

span.unimportantHide {
  font-size: 10px;
}

.emote,
.reportdeletebuttons,
.expandLabel,
.collapseLabel,
#divRefreshContainer {
  user-select: none;
}

.emote {
  user-drag: none;
  -webkit-user-drag: none;
}

span.spoiler > a {
  color: #000 !important;
}

span.spoiler:hover > a {
  color: #888 !important;
}

span.spoiler:hover > .greenText {
  color: #077 !important;
}

span.spoiler > .greenText {
  color: #000 !important;
}

span.spoiler:hover > .orangeText {
  color: #E04000 !important;
}

span.spoiler > .orangeText {
  color: #000 !important;
}

#massTextField {
  width: 400px;
  height: 100px;
}

/* Table Like log cells */
.logCell > p {
  display: table-cell;
  padding: 5px;
}

.logCell > p:nth-child(5n+1) {
  width: 12%;
  overflow-wrap: anywhere;
}

.logCell > p:nth-child(5n+2) {
  width: 12%;
  overflow-wrap: anywhere;
}

.logCell > p:nth-child(5n+5) {
  width: 60%;
  word-break: break-word;
}

.radiospan {
  color: white;
  text-decoration: none;
  display: inline-block;
  background-color: #d10000;
  padding-left: 4px;
  padding-right: 4px;
  margin-left: 5px;
  border-radius: 10px;
}

.latexShowcase code {
  font-size: 7pt;
}

.latexShowcase .MathJax {
  display: inline !important;
}

.innerPost.userHide .contentOverflow,
.innerPost.userHide label,
.innerPost.userHide .divBanMessage,
.innerPost.userHide .labelLastEdit {
  display: none;
}

.innerPost.userHide {
  background-color: transparent;
}

#faqContent li {
  line-height: 25px;
}

.arrowRight::after {
  content: "⟶";
}

#reportActions {
  position: fixed;
  display: block;
  right: 25px;
  bottom: 25px;
  background-color: #99b;
}

#reportList {
  margin-right: 300px;
}

#footer {
  font-size: 10px;
  margin: 2.5em auto 0 auto;
  text-align: center;
  width: fit-content;
  color: black;
}

.donation {
  overflow-wrap: break-word;
}

/* Pinned top bar (2026-08-17): #topNav ALWAYS carries .fixed (base.njk), so the
   nav — and the ad-block notice inside it — stay on screen while scrolling.
   Themes override the background with their own #topNav.fixed rule. */
#topNav.fixed {
  position: fixed;
  background: #eee;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15);
}

/* ============================================================
   Mobile nav: burger + always-visible options (2026-08-17)
   Desktop (>=768px) is untouched. On narrow screens the 14-board
   list collapses behind a big "Boards" button; settings/home/catalog/
   logs stay one tap away on the line. navBurger.js toggles .open.
   ============================================================ */
.navBurger {
  display: none; /* desktop: board list is inline, no burger needed */
}

@media only screen and (max-width: 767px) {
  /* One-line nav: burger left, options right; the board panel wraps below. */
  #topNav,
  #bottomNav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    text-align: left;
  }
  /* The burger button — icon-only (2026-08-17): compact square, small vertical
     footprint so the nav line stays short. Accessible name via aria-label in
     leftBar.njk. */
  .navBurger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
    margin-bottom: 1px; /* 2026-08-17 (round 2): explicit EQUAL top+bottom hairlines — centering with only a bottom margin just slid the button up onto the top padding instead */
    background: #2a2233;
    color: #e2d9ec;
    border: 1px solid #3e354a;
    border-radius: 6px;
    padding: 0.35rem 0.6rem;
    font-size: 1.15rem; /* the ☰ glyph itself — keep it legible */
    line-height: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  /* Board list hidden until the nav is opened. */
  #topNav .navLinkSpan,
  #bottomNav .navLinkSpan {
    display: none;
  }
  /* Opened: wrap to a full-width tappable panel below the line (order 2 keeps
     it under the burger+options row, not after the options). */
  #topNav.open .navLinkSpan,
  #bottomNav.open .navLinkSpan {
    display: block;
    order: 2;
    flex-basis: 100%;
    box-sizing: border-box;
    text-align: left;
    margin-top: 0.25rem;
    /* Drop the inline-run decoration ([ ] /) so boards read as clean rows. */
  }
  #topNav.open .navLinkSpan .navDeco,
  #topNav.open .navLinkSpan .navSep,
  #bottomNav.open .navLinkSpan .navDeco,
  #bottomNav.open .navLinkSpan .navSep {
    display: none;
  }
  #topNav.open .navLinkSpan,
  #bottomNav.open .navLinkSpan {
    padding: 0.35rem 0.6rem;
    background: #17131c;
    border: 1px solid #3e354a;
    border-radius: 8px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
    /* No max-height / no scroll (2026-08-17): all boards must be visible at
       once — rows are compact enough that the full list fits a phone screen. */
  }
  #topNav.open .navLinkSpan a,
  #bottomNav.open .navLinkSpan a {
    display: block;
    padding: 0.4rem 0.4rem;
    font-size: 0.85rem;
    border-radius: 4px;
  }
  #topNav.open .navLinkSpan a:hover,
  #topNav.open .navLinkSpan a:focus,
  #bottomNav.open .navLinkSpan a:hover,
  #bottomNav.open .navLinkSpan a:focus {
    background: #2a2233;
  }
  /* Options stay on the line, one tap away — pushed right within the flex row
     (order 1 keeps them beside the burger, ahead of the panel). */
  #topNav #navOptionsSpan,
  #bottomNav #navOptionsSpan,
  #topNav #navOptionsSpanCatalog,
  #bottomNav #navOptionsSpanCatalog,
  #topNav #navOptionsSpanThread,
  #bottomNav #navOptionsSpanThread,
  #topNav #navOptionsSpanHome,
  #bottomNav #navOptionsSpanHome {
    float: none;
    order: 1;
    display: inline-block;
    margin-left: auto;
    white-space: nowrap;
  }
  /* Bottom bar = a useful action row, not a clone of the top. Its burger is
     redundant with the pinned top one, so hide it; keep linkBack/linkTop
     (thread pages) + staff links as the tappable row. */
  #bottomNav .navBurger {
    display: none;
  }
  .navMobileOnly {
    display: none;
  }
  #bottomNav #boardContentLinks .navMobileOnly {
    display: inline;
  }
}
/*Used for places where posts are displayed*/
@media only screen and (max-width: 479px) {
  .divPosts .postCell .innerPost:before,
  .divPosts .postCell .markedPost:before {
    display: none;
  }
  .divPosts {
    margin-left: 0 !important;
  }
  .postCell {
    margin: 0px !important;
  }
  .innerPost, .markedPost {
    display: inline-block;
    margin-left: 0px;
    margin-right: 0px;
    margin-bottom: 3px;
    padding: 3px;
  }
  .divBanMessage,
  .divMessage {
    margin: 0px;
    margin-left: 10px !important;
    margin-right: 10px !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
    word-break: break-word;
  }
  .divMessage,
  .contentOverflow {
    clear: both;
  }
  .hideButton {
    margin-right: 5px;
  }
  .expandLabel,
  .collapseLabel {
    width: calc(100% - 24px) !important;
    padding-left: 20px !important;
  }
  .panelUploads ~ .divMessage,
  .panelUploads ~ .contentOverflow .divMessage {
    padding-top: 10px;
  }
  .labelCreated {
    font-size: 80%;
  }
  .relativeTime {
    font-size: 80%;
  }
  .sage, .bumpLockIndicator {
    float: right;
  }
  .innerPost .panelUploads .uploadCell,
  .markedPost .panelUploads .uploadCell {
    margin: 5px !important;
  }
  .innerOP .panelUploads .uploadCell,
  #selectedDiv .selectedCell,
  #selectedDivQr .selectedCell {
    margin: 5px !important;
  }
  /* --- Multiple attachments -> uniform-square FILL grid (operator 2026-08-19). ---
     The desktop float packing (.multipleUploads .uploadCell{float:left}) looks
     arbitrary on a ~375px column: row breaks fall wherever the running width sum
     overflows, and mixed thumbnail heights leave ragged gaps. On mobile we instead
     render every attachment as a fixed 80x80 square, image stretched to fill it
     (object-fit:fill) so the WHOLE frame stays visible (warped, never cropped —
     userbase expects to see the full image in the thumb), tap -> native-res full
     size. Making the container flex also neutralizes the children's float:left
     (floats are ignored on flex items). Metadata (.uploadDetails) is hidden so
     the grid is pure images; filename/size/dims + staff U/D links stay available
     via the Post Menu / moderation form. Desktop keeps natural aspect ratios.
     80px = operator's pick from the 80/96/120 mockup (most on screen, ~4 across).
     Scoped to div.panelUploads (thread + board + all listing views, ALL
     file counts): the engine only adds the extra .multipleUploads class when
     a post has >1 file (postingContent.js:376), so single-image posts need
     the base class or they skip the grid entirely. The catalogue uses a
     different cell structure (.catalogCell) that never has .panelUploads,
     so it is naturally excluded.
     (operator 2026-08-19: "everything BUT the catalogue") */
  .panelUploads {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .panelUploads .uploadCell {
    width: 80px;
    height: 80px;
    max-width: 80px; /* overrides the --thumbfit-w natural-size cap */
    margin: 0 !important; /* beats the .innerOP/.innerPost .uploadCell{margin:5px!important} */
    overflow: hidden;
    border-radius: 5px;
  }
  .panelUploads .uploadCell .uploadDetails {
    display: none;
  } /* grid = images only */
  .panelUploads .uploadCell .imgLink {
    display: block;
    width: 80px;
    height: 80px;
  }
  .panelUploads .uploadCell img {
    float: none; /* belt-and-braces; flex already ignores float */
    width: 80px;
    height: 80px;
    max-width: 80px; /* overrides the 200px cap (higher specificity) */
    max-height: 80px;
    object-fit: fill; /* stretch to the square — full image visible, warped */
  }
  /* Expanded state: release all grid constraints so the full-size image
     can display in-page (same behavior as desktop/board expand). */
  .panelUploads .uploadCell.expandedCell {
    width: auto;
    height: auto;
    max-width: none;
    overflow: visible;
  }
  .panelUploads .uploadCell.expandedCell .imgLink {
    width: auto;
    height: auto;
  }
  .panelUploads .uploadCell.expandedCell img.imgExpanded {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
  }
  /* Expanded state only: bring back the metadata — filename download link
     (saves with the poster's filename, not the media hash) + size + dims.
     The per-thumbnail metadata was only a problem in the COLLAPSED scroll
     path; on a deliberate expansion there's room. "Open file" stays hidden
     (filename link covers it). Collapsed grid stays pure images.
     (operator 2026-08-19, two rounds: keep download-filename link; then
     restore size/dims in expansion) */
  .panelUploads .uploadCell.expandedCell .uploadDetails {
    display: block;
  }
  /* release the fit-cell --thumbfit-w pin (~128px) so the name gets a fair
     width above the expanded image. Explicit width REQUIRED for the existing
     ellipsis (.originalFileName overflow:hidden/text-overflow) to engage —
     width:auto would let long names spill past the cell (inline-flex
     intrinsic sizing, lesson of 2026-08-17). 260px < any target viewport's
     content width; the FULL name still travels in the download attribute. */
  .panelUploads .uploadCell.expandedCell .nameFlex {
    width: 260px;
  }
  .panelUploads .uploadCell.expandedCell .uploadDetails .nameLink {
    display: none;
  }
  /* Bulk-select checkbox (2026-08-18, locked v6) — replaces the 2020 upstream
     "dirty fix" (visibility:hidden + magic -19px margin cancel) which disabled
     mobile bulk-delete site-wide with NO staff exception. Anon = display:none
     (no reserved slot/gap, cleaner than faking a collapse); staff (body.staffView,
     stamped by postingMenu.js from the account request) = visible so the existing
     thread-page Report/Delete bulk form works on phones. Desktop keeps its
     always-visible behavior (no rule there). */
  .deletionCheckBox {
    display: none;
  }
  body.staffView .deletionCheckBox {
    display: inline-block;
    margin-right: 0.25rem;
  }
  .extraMenuButton {
    float: right;
  }
  .imgFlag {
    padding-left: 3px;
    float: left;
    padding-top: 3px;
  }
  .linkName {
    padding-left: 3px;
  }
  #divRefreshContainer {
    padding-left: 0;
    position: relative;
  }
  /* Post Menu / hide menus must open ON-SCREEN. The legacy rule here used to be
     `right:100%; left:unset !important` — written in 2019 when .extraMenuButton
     floated to the RIGHT edge of the status line, so the menu opened leftward into
     the post. Since the v6 legacy-order status line (button at FAR LEFT, and
     float is inert inside the flex row anyway), that rule pushed the whole menu
     off the LEFT edge of the viewport on phones (operator 2026-08-19). The base
     rule below (.extraMenu,.hideMenu { left:100%; margin-left:5px }) now applies:
     menu opens to the RIGHT of the button, i.e. into the post — always in viewport.
     (body{overflow-x:hidden} used to hide the overflow; it did not make it usable.) */
  /* First three status-line icons (post menu / watcher eye / hide) were ~13-15px
     — too small as touch targets after the compaction pass. ~30% bigger on mobile
     only, all three at a consistent 20px (operator 2026-08-19). Desktop keeps 15px.
     Post-menu + hide are now Open Iconic font glyphs (::before) — sized via
     font-size, not the old img width/height. The legacy <img>s stay in the DOM
     (display:none) purely so postingMenu.js's click-toggle still finds them. */
  .extraMenuButton,
  .hideButton {
    font-size: 20px;
  }
  .watchButton {
    font-size: 20px;
  }
  .boardThreadList .multipleUploads ~ .contentOverflow {
    max-height: 150px !important;
  }
}
.imgExpanded {
  max-width: 100%;
  cursor: zoom-out;
}

video {
  max-width: 100%;
  max-height: 90vh;
}

.imgLink {
  float: left;
  cursor: zoom-in;
}

.reportFieldset {
  margin-top: 1em;
  padding: 0.5em;
  margin-bottom: 1em;
}

/* ID badge text outline — the single canonical guard (2026-08-17):
   the badge background is an inline per-ID hash color (#<idhash>), which can
   collide with any theme's text color (cream on neon green, white on pale,
   …). An 8-way black outline keeps the ID readable on ANY background.
   Themes override .labelId color/opacity freely but must NOT set their own
   text-shadow — inherit this one. */
.labelId {
  color: #ffffff;
  border-radius: 5px;
  text-shadow: -1px -1px black, 0 -1px black, 1px -1px black, -1px 0 black, 1px 0 black, -1px 1px black, 0 1px black, 1px 1px black;
  padding-left: 2px;
  opacity: 0.6;
  padding-right: 2px;
}

.labelId:hover {
  opacity: 1;
}

/* .idCount is a MOBILE-ONLY widget (postBurger.js appends it next to every
   .labelId on all viewports; its styling lives in the <=479px block below).
   On desktop the ID text + posting.js's hover "(N)" already carry that info —
   hide the stray inline number (2026-08-17: showed up beside the badge AND
   duplicated on hover). */
@media only screen and (min-width: 500px) {
  .spanId .idCount {
    display: none;
  }
}
.quoteTooltip {
  position: absolute;
  display: none;
  padding: 0;
  z-index: 101;
}

/* Mobile (<=600px) tap-to-preview panel (tooltips.js): one shared panel
   anchored at the top of the viewport, full width, internally scrollable.
   Replaces the hover tooltip on touch, where synthesized mouseenter/mouseout
   race each other and flash. .quoteTooltip's `display:none` is overridden —
   presence in the DOM IS the open state (toggling it would re-trigger the
   tap that opened it). */
.mobileQuotePanel {
  position: fixed;
  top: 10px;
  left: 10px;
  right: 10px;
  display: block;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
}

.quoteTooltip .innerPost {
  padding: 5px;
}

.quoteTooltip > div {
  border: 2px dashed #444488;
  margin-left: 0em;
}

.quoteTooltip .contentOverflow {
  max-height: unset !important;
}

.tooltipFix .contentOverflow {
  overflow-y: hidden;
}

#formMore {
  cursor: pointer;
}

.extraMenu, .hideMenu {
  position: absolute;
  top: -5px;
  left: 100%;
  margin-left: 5px;
  z-index: 2;
  font-weight: normal;
  white-space: nowrap;
  cursor: default;
  border: 2px solid #444488;
}

/* Dropdown flip (postingMenu.js adds .openUp when opening DOWNWARD would push
   the menu below the current viewport — a post near the bottom of the screen
   with the full mod menu, ~13 rows, was unusable there on phones). Mirrors the
   base top:-5px onto the bottom edge so the menu grows UPWARD from the button.
   Specificity: .extraMenu.openUp (0,2,0) beats the base rule's top. */
.extraMenu.openUp {
  top: auto;
  bottom: -5px;
}

/* Even flipped (or on a short viewport), a menu taller than the screen must
   stay usable: cap it and scroll INSIDE the menu instead of rows running
   off-screen. No-op while the menu fits — no scrollbar appears then. */
.extraMenu {
  max-height: calc(100vh - 20px);
  overflow-y: auto;
}

.hideMenu div, .extraMenu div {
  cursor: pointer;
  padding: 3px 6px;
}

.extraMenu a {
  text-decoration: none;
  color: #000;
}

.extraMenu div:hover {
  background: #dddddd;
}

/* Post date row at the bottom of the Post Menu (postingMenu.buildMenu appends it
   last). Shown ONLY on mobile, where the one-line status line hides .labelCreated;
   desktop keeps the date inline in the title line. Not an action: no pointer,
   no hover highlight (beats the theme .extraMenu div:hover rules on specificity). */
.extraMenu .postMenuDate {
  display: none;
}

@media only screen and (max-width: 479px) {
  .extraMenu .postMenuDate {
    display: block;
    cursor: default;
    font-size: 0.8rem;
    opacity: 0.85;
    border-top: 1px solid rgba(128, 128, 128, 0.4);
  }
  .extraMenu .postMenuDate:hover {
    background: transparent;
  }
}
.extraMenuButton, .hideButton {
  position: relative;
}

/* Post Menu + Hide thread — legacy Open Iconic glyphs (operator 2026-08-19).
   The PenumbraLynx originals were font glyphs from the 'Icons' (open-iconic)
   face, which KohlNumbra still bundles: post menu = \e02f (a plain right-facing
   arrow ▶), hide thread = \e017 (a circle with a slash through it ⊘). The 2019-era
   <img> icons (icon-report.png looked like an exclamation point — users read it as
   a warning; button-close.gif was a bare ×) are hidden but kept in the DOM so
   postingMenu.js's `event.target.className == "iconReport"` click-toggle and every
   class-based lookup still resolve. Same ::before pattern as the watcher eye. */
.extraMenuButton::before {
  content: "\e02f";
  font-family: "Icons";
}

.hideButton::before {
  content: "\e017";
  font-family: "Icons";
}

/* Hide the legacy <img> icons at EVERY size (the glyph above replaces them). Kept
   in the DOM only for postingMenu.js's click-toggle + class lookups. Without this
   global rule the desktop imgs would render ON TOP of the new glyphs = double icons. */
.extraMenuButton img.iconReport,
.hideButton img {
  display: none;
}

.divPosts {
  margin-left: -1.28em;
}

.postCell {
  margin-top: 4px;
  margin-left: 1.3em;
  margin-bottom: 4px;
  margin-right: 1.3em;
}

.linkName {
  font-weight: bold;
  color: #3333cc;
}

.linkName:hover {
  color: #aa0000;
}

.sage,
.bumpLockIndicator {
  color: #ff0000;
  font-weight: bold;
}

.noEmailName, .noEmailName:hover {
  color: #3333cc;
  text-shadow: none;
  text-decoration: none !important;
  cursor: auto;
}

.linkSelf {
  color: #000000 !important;
  text-decoration: none;
}

.linkSelf:hover {
  color: #000000 !important;
  font-weight: bold;
}

.linkQuote {
  color: #000000 !important;
  text-decoration: none;
}

.linkQuote:hover {
  color: #000000 !important;
  font-weight: bold;
}

.postCounter #mainPanel {
  counter-reset: css-post-count;
}

.postCounter #mainPanel .linkQuote::after {
  counter-increment: css-post-count;
  content: " / (#" counter(css-post-count) ")";
}

.labelSubject {
  color: #cc3333;
  font-size: large;
  font-weight: bold;
}

.labelRole {
  color: #ff0000;
  font-weight: bold;
}

.labelRole:before {
  content: "## ";
}

.labelRole:after {
  content: " ##";
}

.divMessage {
  margin: 1em 40px;
  text-align: left;
  white-space: pre-wrap;
  /* word-wrap: anywhere; Bad in Chrome!*/
}

.divBanMessage {
  color: #ff0000;
  font-weight: bold;
  margin: 0 auto 12px 40px;
  font-size: 100%;
}

.panelUploads {
  display: block;
}

.uploadCell {
  margin: 0.25em 1em 0.25em 0.5em;
  float: none;
}

/* Fit the cell to the THUMBNAIL width, not the filename length (2026-08-17).
   --thumbfit-w is set inline by thumbs.fitCellToThumb() on image/video cells;
   unset for text/audio, which keep the legacy filename-driven sizing. */
.uploadCell {
  max-width: var(--thumbfit-w, none);
}

/* The filename row is an inline-flex with its own max-width and will NOT shrink
   to a narrower cell on its own — pin it to the cell so long names ellipsize
   instead of spilling past the cell background. (Unset var => width:auto, no-op.) */
.uploadCell .nameFlex {
  width: var(--thumbfit-w, auto);
}

/* Release the cap while a full-size view (imgExpanded / expandedVideo) is open */
.uploadCell.expandedCell {
  max-width: none;
}

.uploadCell img {
  float: left;
}

/*Change the dimensions if you wish for larger thumbs*/
.uploadCell img:not(.imgExpanded) {
  max-width: 200px;
  max-height: 200px;
}

/*
.multipleUploads {
  float: left;
  width: 100%;
}
*/
.multipleUploads .uploadCell:not(.expandedCell) {
  float: left;
}

.multipleUploads ~ .contentOverflow {
  clear: both;
}

.contentOverflow .multipleUploads ~ .divMessage {
  clear: both;
}

.originalNameLink {
  vertical-align: top;
  white-space: nowrap;
}

.opCell {
  clear: left;
}

.panelBacklinks {
  word-wrap: break-word;
  margin-left: 0px;
}

.panelBacklinks a {
  margin-left: 0.5em;
  font-size: 80%;
  font-style: italic;
  display: inline-block;
}

.hideLink:before {
  content: url("/.static/images/button-close.gif");
  vertical-align: top;
  padding: 0 1px;
}

.aa {
  font-family: Mona, "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
  display: block !important;
  font-size: 12pt;
  line-height: 1.1;
}

.labelLastEdit {
  font-size: 80%;
  margin-top: 0.75em;
  margin-left: 0.75em;
}

.contentOmissionIndicator {
  margin: 1em 40px;
  color: #666666;
}

.labelOmission {
  color: #666666;
  margin-top: 0.5em;
  margin-left: 0.5em;
}

/*Board header*/
.boardHeader #favouriteButton {
  font-size: 200%;
}

.boardHeader a {
  display: inline-block;
}

.unhideButton {
  margin-right: 0.5em;
  display: inline-block;
}

/*Actions form*/
#divMessage {
  text-align: center;
}

.divPosts .postCell .innerPost:before,
.divPosts .postCell .markedPost:before {
  content: ">>";
  position: absolute;
  margin-left: -25px;
}

.nameLink {
  display: none;
}

#selectedDivQr > .selectedCell {
  margin: 5px 0 !important;
}

.innerOP .panelUploads .uploadCell,
#selectedDiv .selectedCell,
#selectedDivQr .selectedCell {
  float: left;
  margin: 5px 20px 20px 5px;
  background: #dddddd;
  border: #aaaaaa 1px solid;
  text-align: left;
}

.innerPost .panelUploads .uploadCell,
.markedPost .panelUploads .uploadCell {
  float: left;
  margin: 5px 20px 20px 5px;
  background: #9999bb;
  border: #aaaaff 1px solid;
  text-align: left;
  display: inline-block;
  width: auto;
}

.sizeLabel,
.dimensionLabel,
.uploadDetails .linkHash,
.uploadDetails .linkSpoil,
.uploadDetails .linkDelete {
  font-size: 11px;
  font-style: italic;
}

.hiddenThread {
  clear: left;
  background: #ccccee;
  border: 2px solid #313370;
  padding: 3px;
}

span.post-you {
  font-size: 8pt;
}

/* Post-menu + hide glyphs (see the ::before block above) render at the status
   line's font size; 15px keeps them matching the legacy img icons on desktop.
   .unhideButton is a text link, not an icon — left untouched. */
.extraMenuButton,
.hideButton {
  font-size: 15px;
}

/* OP marker on staff list pages (open reports / latest postings / trash bin /
   text search / board management): boardTooltip.js, ipsearch.js and
   boardManagement.js stamp .opHighlight on cells whose post id == thread id.
   The legacy version set INLINE `background:#EEEEEE; border:1px solid black` —
   hardcoded light-theme colors that inline-style their way past every theme,
   so dark themes (tomorrow…) showed a glaring white block. Now it is a class +
   one neutral rule: a ~18% gray tint as background-IMAGE, which paints OVER
   whatever panel color the active theme already set (background-color), so OPs
   read as "slightly different" on ANY theme with zero per-theme work.
   !important guards against any theme ever setting background-image on
   .innerPost; it does not fight the themes' background-color rules at all. */
.innerPost.opHighlight {
  background-image: linear-gradient(rgba(128, 128, 128, 0.18), rgba(128, 128, 128, 0.18)) !important;
}

.labelBroadRange,
.labelRealBroadRange {
  max-width: 6ch;
  overflow: hidden;
  text-overflow: ellipsis;
  display: table-cell;
}

.labelNarrowRange,
.labelRealNarrowRange {
  max-width: 6ch;
  overflow: hidden;
  text-overflow: ellipsis;
  display: table-cell;
}

/* Thread view */
#mainPanel .innerPost .contentOverflow,
#mainPanel .markedPost .contentOverflow {
  max-height: 1400px;
  overflow-y: auto;
}
#mainPanel .innerPost .yOverflowHidden,
#mainPanel .markedPost .yOverflowHidden {
  overflow-y: hidden;
}

/* Board view */
.boardThreadList .yOverflowHidden {
  overflow-y: hidden !important;
}
.boardThreadList .innerPost .contentOverflow,
.boardThreadList .markedPost .contentOverflow,
.boardThreadList .innerOP .contentOverflow {
  max-height: 350px;
  overflow-y: hidden;
}

.overflowUnset {
  overflow-y: unset;
  max-height: unset;
}

.innerPost .expandLabel,
.innerPost .collapseLabel,
.markedPost .expandLabel,
.markedPost .collapseLabel {
  background: #AAAACC;
}

.innerOP .expandLabel,
.innerOP .collapseLabel {
  background: #eeeeee;
}

.expandLabel,
.collapseLabel {
  position: absolute;
  vertical-align: middle;
  height: 25px;
  line-height: 25px;
  bottom: 0;
  width: calc(100% - 44px);
  z-index: 1;
  padding-left: 40px;
}

.bottomGradient {
  position: absolute;
  bottom: 25px;
  width: 100%;
  height: 8px;
}

.innerPost .bottomGradient {
  background: linear-gradient(transparent, #AAAACC);
}

.innerOP .bottomGradient {
  background: linear-gradient(transparent, #eeeeee);
}

.innerOP .collapseLabel:not(.hidden) ~ .bottomGradient,
input[type=checkbox].expandCheckBox:checked ~ .bottomGradient {
  display: none;
}

input[type=checkbox].expandCheckBox:checked ~ .contentOverflow {
  max-height: unset !important;
}

input[type=checkbox].expandCheckBox:checked ~ .contentOverflow.yOverflowHidden {
  padding-bottom: 25px;
}

code a {
  pointer-events: none;
}

.innerOP .panelUploads:not(.multipleUploads) ~ .contentOverflow .divMessage {
  margin-left: 0px;
}

.boardThreadList .innerOP .multipleUploads ~ .contentOverflow {
  max-height: 150px;
}

#mainPanel .innerOP .panelUploads:not(.multipleUploads) ~ .contentOverflow .divMessage {
  margin-left: 30px;
}

.innerOP .panelUploads:not(.multipleUploads) ~ .contentOverflow .expandLabel,
.innerOP .panelUploads:not(.multipleUploads) ~ .contentOverflow .collapseLabel {
  padding-left: 0px;
}

.katex:hover {
  padding: 2px;
  outline: grey solid 2px;
}

.katex:hover:after {
  content: " (TeX)";
}

.originalFileName {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
}

.nameFlex {
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  max-width: 200px;
}

.originalFileExt {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  /* nameFlex is a flex container: with both children shrinkable, flexbox
     splits the overflow across filename AND extension (both ellipsize even
     when the ext clearly "fits"). Pin the ext so ALL truncation lands on
     the filename — the extension (.jpg/.webm/…) must stay readable. */
  flex-shrink: 0;
}

.originalNameLink2 {
  vertical-align: top;
  white-space: nowrap;
}

/* ============================================================
   Posting form card layout (2026-08-16)
   Scoped under .post-card (root of postingForm.njk) so the
   input/textarea/select styling cannot leak into other forms
   on the page, and so it overrides the legacy table-era rules
   in _boardContent.scss / _global.scss regardless of import order.
   ============================================================ */
.post-card {
  /* Width follows the comment box (2026-08-17): shrink-wrap to the widest row,
     so dragging the textarea's resize handle widens/narrows the WHOLE card.
     Was a fixed max-width:580px — locked, couldn't widen past it, while the
     textarea itself could still be dragged down to an absolute sliver. */
  width: fit-content;
  min-width: 320px; /* hard floor: never an absolute sliver */
  max-width: 100%; /* cap at the page container — no horizontal overflow */
  box-sizing: border-box;
  overflow-x: hidden; /* safety net: no child may spill past the card's right edge */
  margin: 1.5rem auto;
  padding: 0.75rem 1rem;
  background: #1e1a24;
  border: 1px solid #332b3d;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  font-family: inherit;
  color: #e2d9ec;
  /* --- Neutralize legacy table-era rules that assume the old markup --- */
}
.post-card #divUpload {
  height: auto;
  text-align: left;
}
.post-card { /* was: fixed 70px -> clipped spoiler row */ }
.post-card #checkboxMobileText {
  display: inline;
}
.post-card { /* was: display:none (old layout had a <th> label) */ }
.post-card .post-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}
.post-card .meta-row {
  /* NO flex-wrap (2026-08-17): Name/Subject/Sage always share one line and
     shrink to fit each other — Sage must never wrap onto a line by itself.
     Mobile fix (2026-08-17): mirror the working .upload-line pattern — the two
     text fields get min-width:0 so they can give up space, while Sage keeps its
     natural width and is NEVER clipped by the card's overflow-x:hidden. The old
     hard min-width floors (120/160px) made the row overflow on narrow screens,
     which pushed Sage past the right edge where it was eaten. */
}
.post-card .meta-row #divName {
  flex: 1;
  min-width: 0;
}
.post-card .meta-row #fieldSubject {
  flex: 2;
  min-width: 0;
}
.post-card .meta-row .toggle-badge {
  flex: 0 0 auto;
}
.post-card .meta-row { /* Sage never shrinks — Name/Subject absorb the squeeze */ }
.post-card .postingInput, .post-card textarea, .post-card select {
  background: #141118;
  border: 1px solid #3e354a;
  color: #fff;
  padding: 0.4rem 0.6rem;
  border-radius: 4px;
  font-size: 0.9rem;
  box-sizing: border-box; /* width/padding must not push the field past its row */
  max-width: 100%; /* a field can never be wider than its flex wrapper */
}
.post-card .postingInput:focus, .post-card textarea:focus {
  outline: none;
  border-color: #9d65c9;
}
.post-card .textarea-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1; /* fill the row width */
  min-width: 0;
}
.post-card .textarea-wrapper textarea {
  width: 100%;
  max-width: 100%; /* Mobile fix (2026-08-17): cap resize:both so the comment box can't be dragged past the card */
  min-width: 548px; /* resize floor (2026-08-17) = the OLD desktop width: the pre-change
 card was max-width:580px with 16px padding each side, so the comment
 box could never be narrower than ~548px. Now it's a FLOOR — expansion
 is unbounded (up to the page), contraction stops at the old layout.
 This also keeps the fit-content card from going below its old width,
 so the other rows are never left floating in empty space. */
  max-height: 60vh; /* resize ceiling (2026-08-17): can't eat the whole viewport */
  min-height: 90px;
  resize: both; /* user can drag width AND height — drives the card width above */
  box-sizing: border-box;
}
.post-card .char-count {
  position: absolute;
  bottom: 6px;
  right: 8px;
  font-size: 0.75rem;
  opacity: 0.6;
}
.post-card {
  /* Upload / spoiler / Post - one compact line.
     NO flex-wrap (2026-08-17): the three always share one line and shrink to
     fit — the Post button must never jump right or get clipped by the card. */
}
.post-card .upload-line {
  align-items: center;
  gap: 0.75rem;
}
.post-card .upload-main {
  flex: 1;
  min-width: 0; /* Mobile fix (2026-08-17): shrink to fit so the Post button is never truncated */
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.post-card .dropzone {
  border: 2px dashed #433852;
  border-radius: 6px;
  padding: 0.45rem;
  text-align: center;
  font-size: 0.85rem;
  color: #a89bb8;
  cursor: pointer;
}
.post-card {
  /* Mobile (2026-08-17): the short "Attach files" label is hidden at all sizes
     here and shown only in the <=479px block below; desktop keeps .dzFull. */
}
.post-card .dzMobile {
  display: none;
}
.post-card .fileBrowser {
  max-width: 100%;
  font-size: 0.8rem;
}
.post-card {
  /* Attached files (2026-08-19): #selectedDiv moved OUT of .upload-main to a
     full-width row BELOW the whole [dropzone | spoiler | Post] line — chips
     wrap beneath BOTH the dropzone and the button (same treatment as the
     quick-reply panel). ID in the selector beats _boardContent.scss's
     `#selectedDiv .selectedCell { margin: 5px 0 }` so the row gap alone
     spaces the chips. */
}
.post-card #selectedDiv.selected-files {
  flex-wrap: wrap;
}
.post-card #selectedDiv.selected-files .selectedCell {
  float: none;
  margin: 0;
}
.post-card {
  /* Checkbox badges */
}
.post-card .toggle-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #2a2233;
  padding: 0.3rem 0.6rem;
  border-radius: 4px;
  font-size: 0.85rem;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.post-card {
  /* Advanced drawer */
}
.post-card .advanced-drawer {
  background: #17131c;
  border-radius: 4px;
  padding: 0.4rem 0.5rem;
}
.post-card .drawer-toggle {
  font-size: 0.8rem;
  cursor: pointer;
  color: #9d65c9;
}
.post-card .drawer-content {
  margin-top: 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.post-card {
  /* Captcha - image + stacked answer / no-cookies */
}
.post-card .captcha-line {
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap; /* Mobile fix (2026-08-17): stack instead of spilling both sides when narrow */
}
.post-card .captchaImage {
  max-width: 100%; /* Mobile fix: shrink to fit the card on narrow screens */
  height: auto;
  max-height: 56px;
  border-radius: 4px;
  background: #fff;
}
.post-card .captcha-answer-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
}
.post-card .captcha-answer-col input {
  width: 130px;
  max-width: 100%; /* Mobile fix: never overflow the card */
}
.post-card {
  /* timer + no-cookies share one line; the timer sits in a fixed-width slot
     (sized for 'Reloading') so digit changes never shift neighboring items */
}
.post-card .captcha-meta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.post-card .captchaTimer {
  min-width: 10ch; /* must comfortably exceed 'Reloading' (~8.5ch at this size) */
  text-align: right;
  white-space: nowrap;
  font-size: 0.75rem;
  opacity: 0.6;
  font-variant-numeric: tabular-nums;
}
.post-card .no-cookie-link {
  font-size: 0.75rem;
  color: #9d65c9;
  text-align: center;
}
.post-card {
  /* Read-the-rules line - static, centered, clickable */
}
.post-card .rules-line {
  text-align: center;
  font-size: 0.8rem;
  color: #c9bfd8;
}
.post-card .rules-line a {
  color: #9d65c9;
}
.post-card {
  /* Post button + hover rules panel */
}
.post-card .post-action {
  position: relative;
  display: inline-block;
  margin-left: auto;
}
.post-card .btn-submit {
  background: #7b3ba6;
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 0.5rem 1.4rem;
  font-weight: bold;
  cursor: pointer;
  height: fit-content;
  flex: 0 0 auto; /* Mobile fix (2026-08-17): keep natural width so it's never clipped by the row */
  white-space: nowrap;
}
.post-card .btn-submit:hover {
  background: #9146c2;
}
.post-card .post-rules-panel {
  display: none;
  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  z-index: 50;
  width: 300px;
  background: #17131c;
  border: 1px solid #3e354a;
  border-radius: 6px;
  padding: 0.6rem 0.75rem;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
  font-size: 0.78rem;
  color: #c9bfd8;
  text-align: left;
}
.post-card .post-rules-panel ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.post-card .post-rules-panel ul li {
  padding: 0.15rem 0;
}
.post-card .post-rules-panel a {
  color: #9d65c9;
  text-decoration: none;
}
.post-card .post-rules-panel a:hover {
  text-decoration: underline;
}
.post-card .post-action:hover .post-rules-panel,
.post-card .post-action:focus-within .post-rules-panel {
  display: block;
}

/* ============================================================
   Posting form card — mobile scaling (2026-08-17)
   Light shrink of type/padding + tighter meta-row min-widths so
   Name/Subject/Sage and the upload/spoiler/Post line all fit a
   vertical phone without clipping. Scoped to the same selectors
   as the base rules above (wins by source order, no !important).
   ============================================================ */
@media only screen and (max-width: 479px) {
  .post-card {
    padding: 0.6rem 0.7rem;
    gap: 0.5rem;
  }
  .post-card .postingInput, .post-card textarea, .post-card select {
    font-size: 0.85rem;
    padding: 0.35rem 0.5rem;
  }
  .post-card {
    /* Mobile (2026-08-17): drop the desktop 548px resize floor on phones — at a
       ~390px viewport the card's own content area is narrower, and min-width would
       overflow + clip. Touch has no resize handle anyway, so the textarea just
       fills width:100% as before. */
  }
  .post-card .textarea-wrapper textarea {
    min-width: 0;
  }
  .post-card .upload-line {
    gap: 0.5rem;
  }
  .post-card {
    /* Mobile (2026-08-17): the dropzone reads just "Attach files" on phones.
       Spans swap in postingForm.njk (.dzMobile is display:none at base). */
  }
  .post-card .dzFull {
    display: none;
  }
  .post-card .dzMobile {
    display: inline;
  }
  .post-card {
    /* Mobile (2026-08-17): attached-file cells were desktop-sized — a 200x100px
       thumbnail + filename per file, which ate the whole phone screen. Compact
       each to one line: [x] filename ... [48px thumb]. The small thumb stays so
       multiple similar files remain identifiable; the name ellipsizes between.
       (Base rules are plain selectors — these win on specificity, no !important.) */
  }
  .post-card #selectedDiv .selectedCell {
    display: flex;
    align-items: center;
    gap: 0.4rem;
  }
  .post-card #selectedDiv .selectedCell .removeButton {
    font-size: 15px;
    margin-right: 0;
  }
  .post-card #selectedDiv .selectedCell .nameLabel {
    max-width: none;
    flex: 1 1 auto;
    min-width: 0;
  }
  .post-card #selectedDiv .selectedCell .dragAndDropThumb {
    max-width: 48px;
    max-height: 48px;
    width: auto;
    height: auto;
    margin-top: 0;
  }
  .post-card {
    /* Mobile fix (2026-08-17): drop the parenthetical hint so the drawer toggle
       reads just "Advanced" — one line on narrow screens instead of wrapping to two.
       (.drawer-short stays visible everywhere; only .drawer-full is hidden here.) */
  }
  .post-card .drawer-full {
    display: none;
  }
  .post-card .btn-submit {
    padding: 0.45rem 1rem;
    font-size: 0.9rem;
  }
  .post-card .toggle-badge {
    padding: 0.28rem 0.5rem;
    font-size: 0.8rem;
  }
  .post-card {
    /* Mobile (2026-08-17): the hover rules panel was a hard 300px box anchored
       right:0 ABOVE the Post button (bottom: calc(100%+8px)). Two failures on
       phones: it overflowed the left edge (fixed 300px), and — the real one —
       opening UPWARD meant that when the form is near the top of the screen the
       panel flies off the TOP of the viewport (measured panelTop=-241 @390/320,
       only a sliver visible). Flipping it to open downward would just trade the
       top for the bottom. So on mobile it becomes a fixed, viewport-clamped
       overlay (same pattern as the quote-preview fix): always fully on-screen
       regardless of where the form is scrolled to. Desktop keeps the anchored,
       opens-upward behavior. */
  }
  .post-card .post-rules-panel {
    position: fixed;
    left: 12px;
    right: 12px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    width: auto;
    max-width: calc(100vw - 24px);
  }
}
/* ============================================================
   Post status line — one-line clamp + meta/reply burger (2026-08-17)
   The post.njk / op.njk title line wraps date+ID in .postMeta and the
   reply links in .postMeta.postReplies. On desktop these wrappers are
   display:contents so their children flow inline EXACTLY as before (the
   summary is hidden) — zero visual change. On <=479px the whole title
   line becomes a single non-wrapping flex row that clamps to one line:
   Name/Subject ellipsize, date+ID collapse behind a ▸ meta burger, and
   replies collapse behind a "↩ N" count burger (postBurger.js fills
   .replyCount + data-has; 0 replies -> the whole reply widget is hidden).
   Status indicators (flag/sage/pin/lock/cyclic/archive/trash) stay in the
   line, per operator. postBurger.js toggles .open on tap (like navBurger).
   ============================================================ */
/* Desktop / tablet: transparent wrapper, inline children, no burger chrome. */
.postMeta {
  display: contents;
}

.postMetaSummary {
  display: none;
}

.postMetaBody {
  display: inline;
}

@media only screen and (max-width: 479px) {
  .postInfo,
  .opHead {
    display: flex;
    flex-wrap: nowrap; /* the whole point: NEVER wrap to a second line */
    align-items: center;
    gap: 0.3rem;
    white-space: nowrap;
    /* NO overflow:hidden here — it clipped the pre-existing Post Menu (Report/Hide/
       Delete/Trash/Unlink) which opens from .extraMenuButton inside this row, and
       left only a ~21px sliver tappable. flex-wrap:nowrap + min-width:0 ellipsis on
       the clampable items below is what keeps the row to one line instead. */
    /* keep every inline child on the single row (default flex would shrink-wrap) */
  }
  .postInfo > *,
  .opHead > * {
    flex: 0 0 auto;
  }
  .postInfo,
  .opHead {
    /* the two clampable text items give up space + ellipsize. Font size matches
       the compact date (0.82rem, set below on .labelCreated) so Name/Subject take
       no more vertical/horizontal room than the rest of the line (operator 2026-08-19). */
  }
  .postInfo .linkName,
  .postInfo .labelSubject,
  .opHead .linkName,
  .opHead .labelSubject {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.82rem;
    max-width: 34vw; /* leave room for burger(s) on a ~320px screen */
  }
  .postInfo,
  .opHead {
    /* --- OP posts: absolute maximum space saving (operator 2026-08-19). OP lines
       carry the most fixed items (indicators A/L/S/C/T, hide ×, sage, bumplock,
       Reply + Last50), so on a ~320px screen Name/Subject collapse to "H.. A".
       Trim the lowest-value items, unconditionally:
         · No. + post number — an incremental counter; the date already conveys age.
           Frees ~65px and roughly doubles the Name/Subject budget. Replies keep it
           (shorter lines have room, and quoting a reply number is more useful there).
         · Reply / Last-50 links → single glyphs (↵ enter-sign / ↡ down-from-bar)
           instead of the text labels. Distinct from the backlinks burger (»).
       Desktop + replies are untouched (both rules are .opHead-scoped — see the
       flat .opHead block at the END of this media query, since these must NOT be
       nested inside .postInfo/.opHead or they'd compile to non-matching chains). */
    /* --- poster ID: color-coded dot + occurrence counter, INLINE in the line. ---
       (Replaces the old ▸ chevron — operator: "the sphere and its number should just
       replace the chevron.") .labelId keeps its inline background-color:#<idhash>
       (the color code) but is reduced to a small sphere with the text hidden;
       postBurger.js fills the adjacent .idCount with "times this ID appears in this
       thread" and it stays tappable to highlight all posts by that ID (same
       idsRelation map as desktop). */
  }
  .postInfo .spanId,
  .opHead .spanId {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    cursor: pointer;
  }
  .postInfo,
  .opHead {
    /* --- Date — VISIBLE inline (locked v6, 2026-08-18). Was display:none; now the
       default mobile state shows a compact date (postDate.js rewrites the text to
       MM/DD HH:MM, year only for older posts) dot-separated after sphere+count.
       Full precision stays one tap away in the Post Menu (.postMenuDate). --- */
  }
  .postInfo .labelCreated,
  .opHead .labelCreated {
    font-size: 0.82rem;
    opacity: 0.7;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .postInfo .labelCreated::before,
  .opHead .labelCreated::before {
    content: "·";
    margin-right: 0.3rem;
    opacity: 0.5;
  }
  .postInfo .labelId,
  .opHead .labelId {
    width: 13px;
    height: 13px;
    min-width: 13px;
    padding: 0;
    border-radius: 50%;
    font-size: 0; /* hide the ID text; keep the background color */
    line-height: 0;
    opacity: 1;
  }
  .postInfo .idCount,
  .opHead .idCount {
    font-size: 0.8rem;
    opacity: 0.75;
    min-width: 0.6em;
    text-align: center;
  }
  .postInfo,
  .opHead {
    /* --- META widget (was the ▸ date/ID burger): render INLINE as just [dot][N]. ---
       Chevron hidden, body shown inline (static — no panel chrome). Scoped with
       :not(.postReplies) so the REPLY burger below keeps its tap-to-open behavior.
       .spanId/.labelId/.idCount above are its only visible children now. */
  }
  .postInfo .postMeta:not(.postReplies),
  .opHead .postMeta:not(.postReplies) {
    display: inline-flex;
    align-items: center;
  }
  .postInfo .postMeta:not(.postReplies) .postMetaSummary,
  .opHead .postMeta:not(.postReplies) .postMetaSummary {
    display: none;
  }
  .postInfo .postMeta:not(.postReplies) .postMetaBody,
  .opHead .postMeta:not(.postReplies) .postMetaBody {
    display: inline-flex;
    align-items: center;
    position: static;
  }
  .postInfo,
  .opHead {
    /* --- REPLY burger ("↩ N"): tap-to-open panel, anchored to its own burger. ---
       MUST generate a real box: the desktop rule leaves .postMeta at display:contents,
       and position:relative on a display:contents element is IGNORED (no box = no
       containing block) — the absolute panel then escaped to .innerPost and popped up
       at the bottom of the whole post instead of under its burger. */
  }
  .postInfo .postMeta.postReplies,
  .opHead .postMeta.postReplies {
    display: inline-flex;
    align-items: center;
    position: relative;
  }
  .postInfo .postMetaSummary,
  .opHead .postMetaSummary {
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    /* no explicit color: inherit the line's text color so it stays readable in
       every theme (each theme !important-overrides .linkQuote, not this element) */
    font-size: 0.85rem;
    line-height: 1;
    padding: 0.1rem 0.15rem;
  }
  .postInfo .postMetaChev,
  .opHead .postMetaChev {
    display: inline;
    font-size: 0.7rem;
    opacity: 0.7;
  }
  .postInfo,
  .opHead {
    /* Backlinks burger glyph → » (operator 2026-08-19): distinct from the OP Reply
       (↵) and Last50 (↡) glyphs. The ▸ chevron is real text in the njk (shared with
       desktop), so we swap it to » on mobile only via font-size:0 + ::before —
       desktop keeps ▸. Only the postReplies chevron is visible on mobile (the
       date+ID widget's chevron is display:none'd above). */
  }
  .postInfo .postMeta.postReplies .postMetaChev,
  .opHead .postMeta.postReplies .postMetaChev {
    font-size: 0;
    line-height: 0;
  }
  .postInfo .postMeta.postReplies .postMetaChev::before,
  .opHead .postMeta.postReplies .postMetaChev::before {
    content: "»";
    font-size: 0.7rem;
    line-height: 1;
  }
  .postInfo,
  .opHead {
    /* Panel drops just below its own burger (right edge aligned so it extends
       leftward, staying in-viewport for the right-side burgers). */
  }
  .postInfo .postMeta.postReplies .postMetaBody,
  .opHead .postMeta.postReplies .postMetaBody {
    display: none;
    position: absolute;
    z-index: 60;
    top: calc(100% + 4px);
    right: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
    background: #17131c;
    border: 1px solid #3e354a;
    border-radius: 6px;
    padding: 0.5rem 0.6rem;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
    white-space: normal; /* panel may wrap — it's a popup, not the line */
    max-width: 78vw;
  }
  .postInfo .postMeta.postReplies.open .postMetaBody,
  .opHead .postMeta.postReplies.open .postMetaBody {
    display: flex;
  }
  .postInfo,
  .opHead {
    /* --- reply burger ("↩ N") — hidden entirely when there are no replies --- */
  }
  .postInfo .postReplies:not([data-has]),
  .opHead .postReplies:not([data-has]) {
    display: none;
  }
  .postInfo .replyCount,
  .opHead .replyCount {
    font-size: 0.85rem;
  }
  .postInfo,
  .opHead {
    /* the panel's reply links keep their existing look, just re-flowed vertical */
  }
  .postInfo .panelBacklinks,
  .opHead .panelBacklinks {
    margin-left: 0;
  }
  .postInfo .panelBacklinks a,
  .opHead .panelBacklinks a {
    display: inline-block;
    margin: 0 0.4em 0 0;
    font-style: italic;
  }
  /* --- OP posts (flat, NOT nested in .postInfo/.opHead — nesting would compile to
       non-matching descendant chains): absolute maximum space saving (operator
       2026-08-19). Trim the lowest-value items unconditionally so Name/Subject get
       back ~130px on a 320px screen. Replies + desktop keep No./#+text labels. */
  .opHead .linkSelf,
  .opHead .linkQuote {
    display: none;
  }
  .opHead .linkReply,
  .opHead .linkLast {
    font-size: 0; /* hide the text label; the ::before glyph is the icon */
    line-height: 0;
    padding: 0 0.15rem; /* rem = root-relative, so it survives font-size:0 */
    opacity: 0.85;
  }
  /* .brackets emits '[' (::before) + ']' (::after) around the label — our glyph
     overrides ::before, so null ::after or a stray ']' leaks through. Glyphs are
     distinct from the backlinks burger (»): Reply = ↵ enter-sign, Last50 = ↡. */
  .opHead .linkReply::before {
    content: "↵";
    font-size: 0.9rem;
    line-height: 1;
  }
  .opHead .linkReply::after {
    content: none;
  }
  .opHead .linkLast::before {
    content: "↡";
    font-size: 0.9rem;
    line-height: 1;
  }
  .opHead .linkLast::after {
    content: none;
  }
}
/* ============================================================
   Mobile post line — v6 additions (2026-08-18, locked design)
   Verbose date mode (opt-in body.verboseDate): the date drops to its own
   line below the identity row (flex-wrap + flex-basis:100% + order:99),
   full precision + weekday + relative hint rendered by postDate.js. No dot
   separator on its own line. Everything here is <=479px-scoped — desktop is
   unaffected (the legacy ORDER change itself lives in the templates and flows
   inline via .postMeta{display:contents}).
   ============================================================ */
@media only screen and (max-width: 479px) {
  /* --- Verbose date mode (opt-in): date on its own line below identity row --- */
  body.verboseDate .postInfo,
  body.verboseDate .opHead {
    flex-wrap: wrap;
    row-gap: 0.2rem;
  }
  body.verboseDate .labelCreated {
    flex-basis: 100%;
    order: 99; /* always last -> wraps to its own line */
    font-size: 0.74rem;
    opacity: 0.65;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body.verboseDate .labelCreated::before {
    content: none;
  } /* no dot on its own line */
  body.verboseDate .labelCreated .weekday {
    font-weight: 600;
    margin-right: 0.35rem;
    opacity: 0.95;
  }
  body.verboseDate .labelCreated .relhint {
    margin-left: 0.35rem;
    opacity: 0.75;
  }
  body.verboseDate .labelCreated .relhint::before {
    content: "·";
    margin-right: 0.35rem;
    opacity: 0.6;
  }
  /* --- modInfo one-line wrap (staff, per-post) + tap-to-copy states ---
     Restyles the SAME <table class="modInfo"> into a wrapping chip row
     (desktop keeps the table look — this block is <=479px-scoped). Fields only
     appear when the post has that data (server-extracted fragments / client
     .remove()), so an empty table collapses to nothing. Labels: the themed
     `tr th` background chips are HIDDEN and re-emitted via tr::before — this
     sidesteps the gitgud/gitgudv2 `!important` th rules (which beat any
     non-!important override from this file, loaded before the themes).
     .panelRealIp is never filled; keep it invisible. Tap-to-copy: postDate.js
     adds .copied to the tapped tr for a moment. */
  table.modInfo {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 0.6rem;
    margin-top: 0.45rem;
    font-size: 0.72rem;
    opacity: 0.85;
  }
  table.modInfo tbody {
    display: contents;
  } /* rows become the flex items */
  table.modInfo tr {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    cursor: pointer;
    white-space: nowrap;
    border-radius: 3px;
    padding: 0.05rem 0.2rem;
    -webkit-tap-highlight-color: transparent;
  }
  table.modInfo th {
    display: none;
  } /* themed label chip -> tr::before below */
  table.modInfo tr::before {
    font-weight: 600;
    opacity: 0.8;
  }
  table.modInfo tr.panelBypassId::before {
    content: "Bypass";
  }
  table.modInfo tr.panelIp::before {
    content: "IP";
  }
  table.modInfo tr.panelASN::before {
    content: "ASN";
  }
  table.modInfo td {
    padding: 0;
  }
  table.modInfo tr.panelRealIp {
    display: none;
  } /* never-filled row stays invisible */
  table.modInfo tr:hover {
    background: rgba(128, 128, 128, 0.15);
  }
  table.modInfo tr.copied {
    opacity: 1;
  }
  table.modInfo tr.copied::after {
    content: " ✓";
    opacity: 0.9;
  }
}
/*Elements that show on threads on both catalogs and regular posting places*/
.galleryImage {
  max-width: 100vw;
  max-height: 100vh;
}

.galleryImage:hover {
  border: #aaaaaa 1px solid;
}

.loading:after {
  overflow: hidden;
  display: inline-block;
  vertical-align: bottom;
  -webkit-animation: ellipsis steps(4, end) 450ms infinite;
  animation: ellipsis steps(4, end) 450ms infinite;
  content: "…";
  width: 0px;
}

@keyframes ellipsis {
  to {
    width: 1.25em;
  }
}
@-webkit-keyframes ellipsis {
  to {
    width: 1.25em;
  }
}
.playerBox {
  padding-left: 1em;
  position: absolute;
}

.volControl {
  width: 80px;
}

.volControlNav {
  width: 50px;
  height: 10px;
}

.playerButton {
  margin-left: 5px;
}

.playButton {
  float: initial !important;
  opacity: 0.5;
}

.playButton.playing {
  float: initial !important;
  opacity: 1;
}

.playerBoxNav {
  display: inline-block;
  vertical-align: middle;
}

.audioFilenameFieldNav {
  overflow: hidden;
  position: absolute;
  text-overflow: ellipsis;
  width: 100px;
}

.audioFilenameField {
  display: inline-block;
  width: 20rem;
  overflow: hidden;
  text-overflow: ellipses;
}

#topNav.active {
  position: fixed;
  background: #eee;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15) !important;
}

.dot {
  margin-left: 3px;
  margin-right: 6px;
  height: 0.9em;
  width: 0.9em;
  background-color: orange;
  border-radius: 50%;
  display: inline-block;
}

#userCountLabel {
  display: none;
}

/*
.pulse {
  animation: pulse 2s infinite;
}

.pulse:hover {
  animation: none;
}

@keyframes pulse {
  0% {
    -moz-box-shadow: 0 0 0 0 rgba(204,169,44, 0.4);
    box-shadow: 0 0 0 0 rgba(204,169,44, 0.4);
  }
  70% {
      -moz-box-shadow: 0 0 0 0.7em rgba(204,169,44, 0);
      box-shadow: 0 0 0 0.7em rgba(204,169,44, 0);
  }
  100% {
      -moz-box-shadow: 0 0 0 0 rgba(204,169,44, 0);
      box-shadow: 0 0 0 0 rgba(204,169,44, 0);
  }
}
*/
/*Elements used exclusively on board pages*/
#pages,
#linkPrevious, #linkNext,
.divPages .navCatalog {
  display: inline-block;
  border-style: inset;
  border-width: 1px;
}

.threadHidden {
  margin-bottom: 10px;
}

.opCell.deleted {
  opacity: 0.3;
}

.opCell.deleted .floatingMenu,
#linkModeration {
  display: none;
}

/* .boardThreadList .opCell .panelUploads:not(.multipleUploads) {
  max-width: 80%;
} */
/*Elements shown on board and thread pages*/
@media only screen and (max-width: 479px) {
  #fieldName,
  #fieldMessage,
  #dragAndDropDiv {
    width: 100%;
  }
  #fieldSubject {
    width: 50%;
  }
  /* Legacy table-era rule REMOVED (2026-08-17): `#formButton { width:45%; float:right }`
     crushed the Post button in the flex card — its id specificity beat
     .post-card .btn-submit, squeezing the label to ~2px at <=479px. The button
     now lives only inside .post-card and sizes itself via .btn-submit rules. */
  #divOekaki {
    display: none;
  }
  #postingForm {
    margin-bottom: 2em;
  }
  /* 2026-08-17: removed the thick colored `border-left: 5px outset` accent here —
     it looked tacky on almost every theme. The card keeps its uniform thin
     .post-card border (1px, same as the right side) instead. */
  #postingTable th {
    display: none;
  }
  #rules_row ul {
    padding: 10px;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
    margin-bottom: 0;
  }
  #checkboxMobileText {
    display: unset !important;
  }
  #checkboxSage {
    vertical-align: middle;
  }
  #fieldName::placeholder,
  #fieldSubject::placeholder,
  #fieldName::placeholder,
  #fieldMessage::placeholder,
  #fieldPostingPassword::placeholder {
    color: unset !important;
  }
  #postModerationFields {
    display: none;
  }
  #bottomNav {
    margin-top: 4.8em;
  }
  #divRefreshContainer .divRefresh {
    margin-top: 0.5em;
  }
}
#divOekaki {
  background-color: white;
}

#checkboxMobileText {
  display: none;
}

#fieldName::placeholder,
#fieldSubject::placeholder,
#fieldName::placeholder,
#fieldMessage::placeholder,
#fieldPostingPassword::placeholder {
  color: transparent;
}

.selectedCell,
.dropzone {
  padding: 3px;
  overflow-x: hidden;
  white-space: nowrap;
}

.dropzone {
  cursor: pointer;
  color: rgba(0, 0, 0, 0.5);
  transition: all 0.2s ease 0s;
  padding: 10px 0px;
  border: 2px dashed rgba(125, 125, 125, 0.4);
  background-color: rgba(200, 200, 200, 0.5);
  margin-bottom: 0.4em;
  text-align: center;
}

.dropzone:hover {
  color: rgb(0, 0, 0);
  border: 2px dashed rgba(125, 125, 125, 0.8);
}

.dragAndDropThumb {
  color: #000;
  cursor: default;
  text-align: center;
  max-height: 100px;
  transition: 0.2s;
  background-color: rgba(200, 200, 200, 0.5);
  overflow-y: auto;
  margin-top: 5px;
  max-width: 200px;
  cursor: pointer;
}

.dragAndDropDiv {
  color: #000;
  cursor: default;
  margin: auto;
  padding: 0px 4px;
  text-align: center;
  min-height: 50px;
  max-height: 140px;
  transition: 0.2s;
  background-color: rgba(200, 200, 200, 0.5);
  overflow-y: scroll;
}

.nameLabel {
  display: inline-block;
  max-width: 225px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

#selectedDiv .selectedCell {
  margin: 5px 0px 5px 0px;
  float: unset;
}

.removeButton {
  cursor: pointer;
  color: rgba(125, 125, 125, 0.5);
  display: inline-block;
  margin-right: 5px;
  font-size: 20px;
}

.removeButton:hover {
  color: #7D7D7D;
}

#panelMessage {
  margin-bottom: 1em;
}

.flagPreview {
  display: inline-block;
  max-width: 10%;
  height: 16px;
}

#divUpload, .centered {
  text-align: center;
}

#divUpload {
  height: 70px;
}

#newPostFieldset {
  display: inline-block;
  padding-right: 0.75em;
  width: 25em;
}

#postingTable {
  margin: 1em auto;
}

#postingForm {
  text-align: center;
}

#postingForm td, .modalTableBody td {
  text-align: left;
}

#postingForm th, .modalTableBody th {
  color: #ffffff;
  background: #313370;
  font-weight: bold;
  text-align: left;
}

#autoCatalogRefreshCheckBox,
.identifierCheckbox,
#orphanedCheckbox,
input[type=checkbox].postingCheckbox,
input[type=checkbox].spoilerCheckBox,
input[type=checkbox].globalSettingsField,
input[type=checkbox].closeReportsField,
input[type=checkbox].boardSettingsField,
input[type=checkbox].closureCheckbox,
input[type=checkbox].categoryCheckbox {
  vertical-align: middle;
}

.spoilerImg,
.spoilerCheckBox {
  display: none;
}

.spoilerImg {
  cursor: pointer;
}

input[type=checkbox].spoilerCheckBox:checked ~ .dragAndDropThumb {
  display: none;
}

input[type=checkbox].spoilerCheckBox:checked ~ .spoilerImg {
  display: block !important;
}

#boardContentLinks {
  float: right;
  color: #89A;
  font-size: 9pt;
}

.modalPanel {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 200;
  display: table;
  text-align: center;
  background: rgba(29, 31, 33, 0.66);
  right: 0;
  top: 0;
}

.modalInnerPanel {
  vertical-align: middle;
  display: table-cell;
}

.modalDecorationPanel {
  display: inline-block;
  background: #aaaacc;
  z-index: 50;
}

.modalInnerDecorationPanel,
.post-table {
  padding: 10px;
  background-color: #eeeeee;
  margin: 4px;
}

.captchaImageContainer {
  position: relative;
  background: #313370;
}

.modalCaptchaTable {
  margin-bottom: 0.5em;
  width: 100%;
}

.modalCaptchaControls {
  position: absolute;
  right: 0px;
  top: 1px;
}

.modalCaptchaControls input, .modalOkButton {
  margin-right: 10px;
}

#favouriteButton:before {
  font-family: Icons;
  content: "\e0c2";
  margin-left: 0.5em;
  cursor: pointer;
}

.postModerationFields {
  float: right;
}

.contentAction {
  text-align: right;
}

.contentAction > label > input {
  vertical-align: middle;
}

.postingInput {
  border: 1px solid #a9a9a9;
}

.boardHeader {
  margin-bottom: 17.15px;
}

/* Mobile (2026-08-17): shrink the board/catalog title drastically and hide
   the board blurb — on a phone the big h1 + description eat vertical space
   before any content. Covers board, thread AND catalog headers (all use
   .boardHeader); #labelDescription only exists on board/thread pages.
   !important: theme files import AFTER this one and pin #labelName at 28px
   (yotsubaB) with id specificity that would otherwise win. */
@media only screen and (max-width: 767px) {
  .boardHeader {
    margin-bottom: 8px;
  }
  .boardHeader h1,
  .boardHeader #labelName { /* the title text is this span — must beat theme id rules */
    font-size: 1.25rem !important;
    line-height: 1.3;
  }
  .boardHeader #labelDescription {
    display: none;
  }
}
.checkboxLabel .spoilerImg {
  max-height: 100px;
}

#previewContainer {
  background: rgba(0, 0, 0, 0.2);
  bottom: 0;
  content: " ";
  left: 0;
  line-height: 100vh;
  pointer-events: none;
  position: fixed;
  right: 0;
  text-align: center;
  top: 0;
  width: 100%;
  z-index: 102;
}

#previewContainer img,
#previewContainer video {
  margin: 0 auto;
  max-height: 100vh;
  max-width: 100%;
  vertical-align: middle;
}

.mathjaxContentLongSet,
.mathjaxContentRendered,
.mathjaxContent,
.MathJax {
  display: none;
}

#labelMessageLengthOuter {
  font-weight: normal;
  font-size: smaller;
}

#filterBoardIdentifier {
  width: 100px;
}

.reasonLabel ul {
  padding-left: 15px;
  margin-top: 0;
  margin-bottom: 0;
}

#qrsubject {
  width: calc(100% - 152px);
}

.post-table td {
  padding: 0.25em;
}

#quick-reply {
  position: fixed;
  float: right;
  padding: 0 0 0 0;
  width: 300px;
  z-index: 100;
  display: none;
  -webkit-transition: opacity 0.2s ease-in-out;
  -moz-transition: opacity 0.2s ease-in-out;
  -ms-transition: opacity 0.2s ease-in-out;
  -o-transition: opacity 0.2s ease-in-out;
  transition: opacity 0.2s ease-in-out;
}

#quick-reply #post-form-inner {
  min-width: 300px;
}

/* Mobile (2026-08-19, supersedes the 2026-08-17 fluid-width rule): top-anchored
   full-width compact panel. Pinned to the top of the viewport it stays visible
   while the keyboard is up (the keyboard eats the thread below, not the form),
   and qr.js no longer auto-focuses the comment box on open — so files can be
   attached / the post being replied to checked before typing starts.
   Desktop behavior untouched. */
@media only screen and (max-width: 479px) {
  #quick-reply {
    left: 0 !important; /* beats clampToViewport() inline styles */
    top: 0 !important;
    right: 0;
    width: 100vw;
    max-width: 100vw;
    margin: 0;
    border-radius: 0;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
    max-height: 60vh; /* safety net for captcha/flag-heavy boards */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  #quick-reply #post-form-inner {
    min-width: 0;
  }
  /* Compact comment box: nobody writes paragraphs on a phone. */
  #quick-reply #qrbody {
    min-width: 0;
    min-height: 0;
    height: 74px;
    resize: none;
  }
  /* Name + Subject + sage share one line (sage is the last item). */
  #quick-reply .qr-line {
    display: flex;
    align-items: center;
    gap: 6px;
  }
  #quick-reply .qr-line #qrname {
    flex: none;
    width: 34%;
  }
  #quick-reply .qr-line .qr-subj {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }
  #quick-reply .qr-sagewrap {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: none;
    font-size: 11px;
    cursor: pointer;
  }
  #quick-reply .qr-sagewrap input {
    width: 15px;
    margin: 0;
  }
  /* Attach + Reply share the top line (mirrors the main form's
     [dropzone | Post] row); attached-file chips stack BELOW the dropzone —
     same column flow as .upload-main in _posting.scss, not to its right. */
  #quick-reply .qr-attachrow {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  /* Dropzone + Reply share the top line (chips flow below as their own block). */
  #quick-reply .qr-attachrow .dz-reply-line {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  #quick-reply .qr-attachrow .dropzone {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0;
    height: 42px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  /* Chips below the dropzone, stacked — compact one-line cards exactly like
     the main form's mobile #selectedDiv chips (same markup, same look). */
  #quick-reply .qr-attachrow #selectedDivQr {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  #quick-reply .qr-attachrow #selectedDivQr .selectedCell {
    float: none;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    white-space: normal;
  }
  #quick-reply .qr-attachrow #selectedDivQr .selectedCell .removeButton {
    font-size: 15px;
    margin-right: 0;
  }
  #quick-reply .qr-attachrow #selectedDivQr .selectedCell .nameLabel {
    max-width: none;
    flex: 1 1 auto;
    min-width: 0;
  }
  #quick-reply .qr-attachrow #selectedDivQr .selectedCell .dragAndDropThumb {
    max-width: 48px;
    max-height: 48px;
    width: auto;
    height: auto;
    margin-top: 0;
  }
  #quick-reply .qr-attachrow #qrbutton {
    flex: 0 0 auto;
    width: auto;
    min-width: 60px;
    height: 42px;
    box-sizing: border-box;
  }
  /* Captcha at its real 300x100 size. The pre-existing <=479px shrink in
     _posting.scss (max-height:56px, written for the post-form card) applies to
     every .captchaImage on phones; this ID-scoped override wins by specificity
     and deliberately leaves login/bypass/account captchas untouched. */
  #quick-reply .captchaImage {
    width: 300px;
    max-width: 100%;
    height: auto;
    max-height: none;
  }
  /* Compact attach strip. */
  #quick-reply .dropzone {
    padding: 8px 0;
    font-size: 12px;
  }
}
#quick-reply .post-table tr td:nth-child(2) {
  width: 40%;
  text-align: left;
  padding-left: 0.25em;
}

#quick-reply tr td:nth-child(2) input[type=submit] {
  width: 99%;
}

#quick-reply th {
  text-align: center;
  padding: 0 0 0.25em 0;
}

#quick-reply .handle {
  position: relative;
  padding: unset;
}

.handle {
  cursor: move;
}

.handle a {
  color: white;
}

/* Close button (2026-08-19): the anchor is empty and the old theme's
   `coloredIcon` glyph class was lost in the KohlNumbra migration, so the ×
   never rendered — the panel had no visible way to dismiss it. Render the
   glyph here; ~30px tap target on phones. */
#quick-reply .close-btn {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  text-decoration-line: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  padding: 3px 5px;
}

#quick-reply .close-btn::after {
  content: "×"; /* × */
}

#quick-reply input[type=text],
#quick-reply input[type=password],
#quick-reply select {
  padding: 2px;
  font-size: 10pt;
  box-sizing: border-box;
}

#quick-reply select {
  padding: 2px;
  font-size: 10pt;
  box-sizing: border-box;
  width: 85%;
}

#quick-reply textarea {
  width: 100%;
  box-sizing: border-box;
  font-size: 10pt;
  resize: both;
}

#quick-reply input[type=file] {
  padding: 5px 2px;
}

#quick-reply .nonsense {
  display: none;
}

#quick-reply td.recaptcha {
  text-align: center;
  padding: 0 0 1px 0;
}

#quick-reply td.recaptcha span {
  display: inline-block;
  width: 100%;
  background: white;
  border: 1px solid #ccc;
  cursor: pointer;
}

#quick-reply td.recaptcha-response {
  padding: 0 0 1px 0;
}

#quick-reply table {
  padding: 0;
  margin: 0;
  width: 100%;
  margin: 0;
  outline: 1px solid rgb(49, 51, 112);
  border-collapse: collapse;
}

#quick-reply .nameLabel {
  font-size: 75%;
  max-width: 75px;
}

.modalHeader {
  padding: 5px;
}

.modalHeader,
#quick-reply .handle {
  display: block;
  background: #313370;
  color: #ffffff;
  font-weight: bold;
  font-size: 15px;
  text-align: center;
}

#qrname,
#qrpassword,
#QRfieldCaptcha {
  width: 100%;
}

#quick-reply .captchaImage {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

#qrsage {
  vertical-align: middle;
  width: 20px;
}

#qrbutton {
  width: 125px;
}

#qrbody {
  min-width: 300px;
  min-height: 50px;
}

#dropzoneQr {
  margin-bottom: 0.25em;
}

#qrFlagCombobox option, #flagCombobox option {
  background-repeat: no-repeat;
  background-position: right;
  background-size: auto 16px;
}

#selectedDivQr .dragAndDropThumb {
  max-width: 100px;
}

#watcherButton {
  display: inline-block;
  cursor: pointer;
  vertical-align: middle;
  font-weight: bold;
}

/* Legacy text-based watcher icon: the 'Icons' (open-iconic) eye glyph, same as
   PenumbraLynx used on the legacy board. */
#watcherButton::before {
  content: "\e065";
  font-family: "Icons";
  margin-right: 0.25em;
}

.watchButton {
  display: inline-block;
  cursor: pointer;
  margin-left: 0.25em;
  vertical-align: middle;
}

.watchButton::before {
  content: "\e065";
  font-family: "Icons";
}

/* Click feedback: a light glow on the nav counter that fades out, triggered by
   .watchGlow (added from watcher.js when a thread is watched). */
@keyframes watcherGlow {
  0% {
    text-shadow: 0 0 6px #fff, 0 0 14px #8fd3ff;
  }
  100% {
    text-shadow: 0 0 0 transparent;
  }
}
#watcherButton.watchGlow {
  animation: watcherGlow 1s ease-out;
}

/* ---- Watched-threads popup menu ---- */
/* Surface contract (2026-08-19): #watchedMenu ALSO carries class
   .floatingMenu and RIDES ON IT for background — every theme in use defines
   `.floatingMenu { background: … }` (and the no-theme fallback gets the base
   _global.scss #AAAACC). Text color inherits the theme's body rule. The old
   hardcoded light palette here (background/color/border) beat every theme's
   class rule on ID specificity, so dark themes got a foreign light box —
   only gitgud's !important rule accidentally overrode it. Layout/typography/
   shadow/radius stay local; per-theme link colors live in each theme file
   (same pattern as .quoteTooltip border-color / .extraMenu a). */
#watchedMenu {
  position: fixed;
  z-index: 1000;
  min-width: 230px;
  max-width: 340px;
  margin: 0;
  padding: 8px 10px 6px;
  box-sizing: border-box;
  border-radius: 10px;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.28);
  font-size: 14px;
  line-height: 1.35;
  text-align: left;
  /* title bar — centered */
}
#watchedMenu .watchedMenuTitle {
  display: block;
  text-align: center;
  font-weight: bold;
  font-size: 15px;
  padding: 2px 0 7px;
  cursor: move;
  user-select: none;
}
#watchedMenu {
  /* top-right close button */
}
#watchedMenu #closeWatcherMenuButton {
  position: absolute;
  top: 6px;
  right: 8px;
  width: 20px;
  height: 20px;
  line-height: 18px;
  text-align: center;
  font-weight: bold;
  cursor: pointer;
  border-radius: 50%;
  /* no color here — inherits the menu's themed text color (visible in
     every theme by construction); hover below gives the red affordance */
}
#watchedMenu #closeWatcherMenuButton:hover {
  background: rgba(0, 0, 0, 0.12);
  color: #a00;
}
#watchedMenu {
  /* separator under the title */
}
#watchedMenu > hr {
  margin: 0 0 6px;
  border: none;
  border-top: 1px solid #d3d7e6;
}
#watchedMenu {
  /* Thread list — capped at 7 visible rows, then scrolls (operator
     2026-08-19): keeps the popup a consistent size no matter how many
     threads are watched. Row height from the fixed values in this file:
     .watchedCell = max(14px * 1.35 text line, 20px close X) + 8px padding
     = 28px, plus its 9px separator hr = 37px per row. 7 rows = 259px;
     an 8th (296px) triggers the scrollbar. Title bar + close X stay
     pinned above the scroll region. Applies at every viewport size. */
}
#watchedMenu #watchedList {
  max-height: 259px;
  overflow-y: auto;
}
#watchedMenu {
  /* per-thread row: label left, close X right-aligned */
}
#watchedMenu .watchedCell {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 4px 2px;
  box-sizing: border-box;
}
#watchedMenu .watchedCellLabel {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0;
  padding-right: 6px;
  cursor: pointer;
}
#watchedMenu .watchedCellLabel a {
  color: #2a3f9e;
  text-decoration: none;
}
#watchedMenu .watchedCellLabel a:hover {
  text-decoration: underline;
}
#watchedMenu {
  /* unseen-post indicator */
}
#watchedMenu .watchedNotification::before {
  font-family: "Icons";
  content: "\e0d8";
  margin-left: 0.3em;
  color: #c00;
}
#watchedMenu {
  /* per-thread close X — fixed width so they line up on the right */
}
#watchedMenu .watchedCellCloseButton {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  line-height: 18px;
  text-align: center;
  font-weight: bold;
  cursor: pointer;
  border-radius: 50%;
  color: #777;
}
#watchedMenu .watchedCellCloseButton::before {
  content: "X";
}
#watchedMenu .watchedCellCloseButton:hover {
  background: rgba(160, 0, 0, 0.14);
  color: #a00;
}
#watchedMenu {
  /* row separators (rows live inside #watchedList since the 7-row cap) */
}
#watchedMenu #watchedList > div > hr {
  margin: 4px 0;
  border: none;
  border-top: 1px solid #e2e5f0;
}

@media only screen and (max-width: 812px) {
  .mobileAlert {
    color: #A00;
  }
}
/* ============================================================
   Settings menu (redesigned 2026-08-17)
   The old version was a flat dump of 24 checkboxes with a
   hardcoded indigo header and thick #aac borders. Now: grouped,
   ordered sections with one-line descriptions, clean tabs, and a
   neutral dark surface (same tokens as .post-card) so it reads as
   intentional on every theme. Themes import later and can still
   override any of these selectors.
   ============================================================ */
#settingsMenu {
  position: fixed;
  left: 100px;
  top: 25px;
  z-index: 100;
  width: 340px;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
#settingsMenu.closed {
  display: none;
}
#settingsMenu {
  background: #1e1a24;
  color: #e2d9ec;
  border: 1px solid #3e354a;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  font-size: 0.8rem; /* was 0.9rem — "much too large" (operator 2026-08-17) */
  line-height: 1.35;
  /* --- Header: title left, close button right --- */
}
#settingsMenu > .header {
  background: #2a2233;
  color: #e2d9ec;
  font-weight: bold;
  font-size: 0.95rem;
  text-align: left;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #3e354a;
  border-radius: 8px 8px 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
#settingsMenu > hr {
  display: none;
}
#settingsMenu {
  /* --- Tabs --- */
}
#settingsMenu .settingsTabs {
  display: flex;
  gap: 0.25rem;
  padding: 0.5rem 0.75rem 0.25rem;
  border-bottom: 1px solid #3e354a;
}
#settingsMenu .settingsTab {
  cursor: pointer;
  padding: 0.35rem 0.7rem;
  border-radius: 6px;
  color: #b9a8d4;
  -webkit-tap-highlight-color: transparent;
}
#settingsMenu .settingsTab:hover, #settingsMenu .settingsTab:focus {
  background: #2a2233;
  color: #e2d9ec;
}
#settingsMenu #selectedTab {
  font-weight: bold;
  background: #31284a;
  color: #fff;
}
#settingsMenu {
  /* --- Content panel (flex:1 + scroll so the panel never outgrows the sheet) --- */
}
#settingsMenu #menuContentPanel {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.5rem 0.75rem 0.75rem;
}
#settingsMenu .settingsSection {
  margin-bottom: 0.9rem;
}
#settingsMenu .settingsSectionTitle {
  font-size: 0.68rem;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  position: relative;
  padding-right: 1.4em;
  font-weight: bold;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8f7bb0;
  margin: 0 0 0.3rem;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid #2c2436;
}
#settingsMenu {
  /* Section collapse (all sections start collapsed — settingsMenu.js; title toggles on any device) */
}
#settingsMenu .settingsSection.collapsed .settingRow {
  display: none;
}
#settingsMenu .settingsSectionTitle::after {
  content: "▾"; /* ▾ */
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.9em;
  transition: transform 0.15s ease;
}
#settingsMenu .settingsSection.collapsed .settingsSectionTitle::after {
  transform: translateY(-50%) rotate(-90deg); /* ▸ = collapsed */
}
#settingsMenu .settingRow {
  padding: 0.28rem 0;
}
#settingsMenu .settingRow label {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  cursor: pointer;
}
#settingsMenu .settingRow .settingsCheckbox {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin: 0;
  align-self: center;
  accent-color: #9d65c9;
}
#settingsMenu .settingRow .settingName {
  color: #e2d9ec;
}
#settingsMenu .settingRow .settingDesc {
  margin: 0.1rem 0 0 1.6rem; /* align under the label text, past the checkbox */
  font-size: 0.74rem;
  color: #9b8cb5;
}
#settingsMenu .saveButton {
  margin: 0.25rem 0 0;
  width: 100%;
  padding: 0.45rem;
  background: #9d65c9;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: bold;
  cursor: pointer;
}
#settingsMenu .saveButton:hover {
  background: #b183d9;
}
#settingsMenu {
  /* --- Filters tab --- */
}
#settingsMenu #newFilterPanel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.6rem;
}
#settingsMenu #newFilterPanel select, #settingsMenu #newFilterPanel input[type=text] {
  background: #141118;
  color: #fff;
  border: 1px solid #3e354a;
  border-radius: 4px;
  padding: 0.3rem 0.5rem;
  font-size: 0.8rem;
}
#settingsMenu #newFilterPanel input[type=text] {
  flex: 1;
  min-width: 120px;
}
#settingsMenu #newFilterPanel .settingsCheckbox {
  margin: 0;
}
#settingsMenu #newFilterPanel button {
  background: #2a2233;
  color: #e2d9ec;
  border: 1px solid #3e354a;
  border-radius: 6px;
  padding: 0.35rem 0.7rem;
  cursor: pointer;
}
#settingsMenu #newFilterPanel button:hover {
  background: #31284a;
}
#settingsMenu .existingFilterTypeLabel,
#settingsMenu .existingFilterContentLabel {
  display: inline-block;
  vertical-align: middle;
}
#settingsMenu .existingFilterTypeLabel {
  width: 25%;
  color: #8f7bb0;
}
#settingsMenu .existingFilterContentLabel {
  width: 65%;
  word-break: break-all;
}
#settingsMenu .filterDeleteButton {
  cursor: pointer;
  color: #b9a8d4;
  font-weight: bold;
  padding: 0 0.25rem;
}
#settingsMenu .filterDeleteButton:hover {
  color: #ff8f8f;
}
#settingsMenu {
  /* --- Themes tab --- */
}
#settingsMenu #themeSelector {
  width: 100%;
  box-sizing: border-box;
  background: #141118;
  color: #fff;
  border: 1px solid #3e354a;
  border-radius: 4px;
  padding: 0.35rem 0.5rem;
  font-size: 0.85rem;
}
#settingsMenu {
  /* --- CSS tab --- */
}
#settingsMenu #cssInput {
  width: 100%;
  box-sizing: border-box;
  height: 12em;
  background: #141118;
  color: #fff;
  border: 1px solid #3e354a;
  border-radius: 4px;
  padding: 0.4rem 0.5rem;
  font-family: monospace;
  font-size: 0.75rem;
}

/* Close button (was float:right — header is flex now) */
#closeSettingsMenuButton {
  cursor: pointer;
  font-weight: bolder;
  padding: 0 0.35rem;
  color: #b9a8d4;
}
#closeSettingsMenuButton:hover {
  color: #fff;
}

#closeSettingsMenuButton::before,
.filterDeleteButton::before,
#closeSideCatalogButton::before {
  content: "X";
  font-weight: bolder;
}

/* Filter list scroll area */
#existingFiltersPanel {
  overflow-y: auto;
  max-height: 20em;
}

/* --- Mobile: full-screen sheet (2026-08-17) --- */
@media only screen and (max-width: 479px) {
  #settingsMenu {
    left: 0 !important;
    top: 0 !important;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    border-radius: 0;
    border: none;
    font-size: 0.78rem; /* one step smaller than desktop — small screens, more settings */
  }
  #settingsMenu .header {
    border-radius: 0;
  }
  #settingsMenu {
    /* Tighter rhythm so the sheet holds more without scrolling as far */
  }
  #settingsMenu .settingsSection {
    margin-bottom: 0.7rem;
  }
  #settingsMenu .settingRow {
    padding: 0.24rem 0;
  }
  #settingsMenu .saveButton {
    padding: 0.55rem;
  }
  #settingsMenu { /* bigger tap target, smaller text (base 0.85rem) */ }
}
/*Elements exclusive from the thread page*/
#divRefreshContainer {
  padding-left: 1em;
  position: absolute;
  float: left;
}

.labelId {
  cursor: pointer;
}

.divRefresh label,
.divRefresh input {
  display: inline-block;
  margin: 0;
}

#divControls,
#transferControls,
#ipDelete,
#divArchive,
#formTransfer,
#ipDeletionForm,
#divControls,
#divMod,
#divMerge {
  margin: 1em;
}

#divMod {
  margin-top: 4em;
}

.unimportant, .unimportant * {
  font-size: 10px;
  color: white !important;
}

.innerPost.deleted {
  opacity: 0.65;
  vertical-align: bottom;
}

#mainPanel .hideButton,
.innerPost.deleted .floatingMenu {
  display: none;
}

/*Elements exclusive to the front-page*/
#infoBox {
  text-align: center;
  width: 100%;
  padding: 0.5em;
  margin: 1em auto 2em;
  font-size: 120%;
}

#divStats div {
  display: block;
}

#topBoards {
  display: none;
}

/* Latest-posts panel beneath the stats.
   2026-08-18: restored to the legacy (2.9 index.css) bubble grid — inline-block
   cells, multiple per row, no fixed-height scroll box (the KohlNumbra rewrite
   had made them full-width block rows in a 500px scroller).
   2026-08-19: operator: rows wrapped at 4 with a "clearly could fit another"
   gap, and cell sizes varied with text length — messy. Replaced the
   content-sized inline-blocks (shrink-to-fit width + margins = row math that
   barely doesn't add up) with an exact grid of uniform PORTRAIT cells
   (taller than wide): grid tracks do the wrapping math, so no phantom gaps,
   and every cell is the same size regardless of post text (link ellipsized,
   preview clamped to 5 lines). Same treatment as the unified attachment grid.
   Theme files supply per-theme cell backgrounds for this selector; #aac
   fallback. The panel itself stays a plain card under `#subpageWrapper > div`
   (no extra width/margin — see 2026-08-18 alignment note).

   2026-08-19 v2 (mobile pass): fixed heights made giant slabs on narrow
   viewports → aspect-ratio-driven sizing instead.
   2026-08-19 v3: (a) stubbier ratio (4:5 → 6:7, "slightly portrait");
   (b) mobile wanted NARROWER tracks — 3-5 per row — not fewer fatter ones
   (auto-fill minmax(120px,1fr) gave 2 fat cells on phones): at ≤767px the
   track caps at 114px so a 390px phone fits 3-up (3×114 + 2×10 gap = 362 ≤
   ~364 card content), wider phones/tablets get 4-5. min() keeps the floor
   under 100% for tiny viewports. (c) Asymmetry bug: with an `1fr` max, the
   last partial track stretched to fill the card, dumping all leftover space
   on one side — now tracks are capped and `justify-content: center` splits
   the remainder evenly, so every row is symmetric left-right at any viewport.
   */
#divLatestPosts {
  display: grid;
  /* Desktop: same ~40%-narrower treatment as mobile (operator 2026-08-19):
     137 → 82px cap → 7-up in the ~678px card. */
  grid-template-columns: repeat(auto-fill, minmax(min(70px, 100%), 82px));
  justify-content: center;
  gap: 10px;
  /* Mobile: narrow tracks → many per row. Most posts are short, so wide
     cells were mostly empty space (operator 2026-08-19): 70px cap gives
     4-up on a 390px phone, 3-up at 320px; link ellipsizes, preview clamps. */
}
@media only screen and (max-width: 767px) {
  #divLatestPosts {
    grid-template-columns: repeat(auto-fill, minmax(min(58px, 100%), 70px));
  }
  #divLatestPosts .latestPostCell {
    border-radius: 8px; /* rounded cells — mobile only (operator 2026-08-19) */
  }
}
#divLatestPosts .latestPostCell {
  position: relative;
  overflow: hidden;
  padding: 6px 8px;
  aspect-ratio: 6/7; /* slightly portrait (taller than wide) */
  max-height: 172px; /* keeps very wide tracks from going slab-tall */
  font-size: 75%;
  background: #aac;
}
#divLatestPosts .latestPostCell a {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#divLatestPosts .labelPreview {
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#divLatestPosts .imgFlag {
  position: absolute;
  top: 5px;
  right: 5px;
}

@keyframes fade-in {
  from {
    opacity: 0;
    height: 0%;
  }
  to {
    opacity: 1;
    height: 100%;
  }
}
#divLatestImages {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  min-height: 320px;
}

#divLatestImages .latestImageCell {
  display: inline-block;
  vertical-align: middle;
}

/* Latest Images is OFF on this site (operator 2026-08-19): hide the heading +
   box for all users, but KEEP the markup in index.njk — the engine's
   defaultPages.json prebuilt field requires divLatestImages to exist. The
   layout rules above stay intact so re-enabling is just deleting this rule. */
#latestImagesHeading,
#divLatestImages {
  display: none;
}

#divLatestImages img {
  max-width: 125px;
  max-height: 125px;
  margin: 5px;
  border: 1px solid #000000;
}

#news {
  background: #dddddd;
  border: 1px solid #98E;
}

#news h2 {
  font-size: 12pt;
}

#news h2, #news p {
  padding: 3px 7px;
}

#indexLeft {
  float: left;
  width: 43.5%;
  left: 10%;
  position: relative;
}

#indexRight {
  float: right;
  width: 35.5%;
  position: relative;
  left: -10%;
}

#indexWrapper {
  max-width: 1200px;
  margin: 2em auto;
}

#linkEngine {
  display: none;
}

.linkFollow {
  color: green;
}

.linkFollowAlt {
  color: red;
}

#divStats div {
  display: list-item;
  margin-left: 0.75em;
}

#logoImage {
  /* Mobile fix (2026-08-17): the legacy fixed `height:232px` rendered a 424px-wide
     logo in a 390px viewport (cut off on the right). Cap height at the legacy size
     but let width shrink to fit, preserving aspect ratio. */
  max-width: 100%;
  height: auto;
  max-height: 232px;
}

/* Legacy mobile adaptation (2.9 index.css, appended at the bottom) — ported 2026-08-17.
   Selector mapping:
   - .topBoards had no live counterpart in the new front page (board list is hidden) → dropped
   - #indexWrapper was the old front-page container → its role here is #subpageWrapper
   - #linkEngine is already display:none at all sizes (rule above) → dropped */
@media only screen and (max-width: 812px) {
  #divLatestPosts {
    margin: 0;
  }
  #subpageWrapper {
    width: 99%;
  }
}
/* Mobile front page (2026-08-17): compact everything — smaller site title,
   logo, boards/rules/privacy link list, stats pane and section headings so
   the home page reads as one screen instead of a shout.
   (!important on #siteName: theme files import later and pin it at 28px with
   id specificity — yotsubaB — that would otherwise win.) */
@media only screen and (max-width: 767px) {
  #siteName {
    font-size: 140% !important;
  }
  #logoImage {
    max-height: 120px;
  }
  #links {
    padding: 0.35em;
    margin-bottom: 1em;
    font-size: 85%;
  }
  #divStats {
    font-size: 90%;
  }
  #divStats div {
    display: inline-block; /* flow as wrapping lines, not a 6-row list */
    margin-left: 0;
    margin-right: 1.25em;
  }
  #subpageWrapper h2,
  #news h2 {
    font-size: 1.1rem;
  }
}
/*Used only on catalog*/
@media only screen and (max-width: 479px) {
  .catalogCell {
    width: 90px !important;
    max-height: 230px !important;
    margin-left: 5px !important;
    margin-right: 5px !important;
    margin-bottom: 5px !important;
  }
  .linkThumb img {
    max-width: 100% !important;
    max-height: 100% !important;
    top: 0px;
  }
  .threadStats {
    display: none;
  }
  .thumbGridBottom {
    display: none !important;
  }
}
@media only screen and (min-width: 480px) and (max-width: 767px) {
  .catalogCell {
    width: 120px !important;
    max-height: 300px !important;
    margin-left: 5px !important;
    margin-right: 5px !important;
    margin-bottom: 5px !important;
  }
  .linkThumb img {
    max-width: 100% !important;
    max-height: 100% !important;
  }
  .thumbGridBottom {
    display: none !important;
  }
}
.catalogCell {
  width: 210px;
  display: inline-block;
  vertical-align: top;
  overflow: hidden;
  position: relative;
  padding: 5px;
  height: 350px;
  margin-left: 25px;
  margin-right: 25px;
  margin-bottom: 25px;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  border: 1px solid transparent;
}

.catalogCell:hover, .catalogCell:focus {
  overflow: visible;
  z-index: 1;
}

.catalogCell:hover .divMessage, .catalogCell:focus .divMessage {
  background: #AAAACC;
  outline: #aac solid 6px;
}

.catalogCell:hover, .catalogCell:focus {
  visibility: visible;
}

.catalogCell:nth-child(10n+1) {
  border-left: 1px solid #f00;
}

.catalogCell:nth-child(10n) {
  border-right: 1px solid #f00;
}

.catalogCell:hover {
  background: #AAAACC;
}

.catalogCell .divMessage {
  margin: 0;
  word-wrap: break-word;
  overflow: hidden;
}

#divTools {
  text-align: left;
  margin-left: 15px;
}

.catalogHeader .imgFlag {
  float: left;
}

.catalogHeader {
  line-height: 1em;
}

.catalogCell .labelSubject {
  padding: 0;
  margin: 0 0 0.5em;
  font-size: 1em;
  color: #CC3333;
  display: block;
  text-decoration: none;
  white-space: normal;
}

.linkThumb img {
  max-height: 200px;
  max-width: 200px;
}

.catalogDiv {
  text-align: center;
}

.threadStats {
  color: #888888;
  margin-bottom: 0.5em;
}

.catalogCell:hover .threadStats {
  color: #666666;
}

.thumbGridBottom {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
}

/*Elements used exclusively on the board listing*/
#boardsWrapper {
  width: 80%;
  margin: 1em auto;
  text-align: center;
}

.boardsCell span {
  text-overflow: ellipsis;
}

.search {
  margin: 0 11px 0.5em 11px;
}

.search form {
  display: inline-block;
}

#boardsSort, #searchButton {
  margin-top: 1em;
}

#legend {
  width: 15%;
  text-align: left;
  display: inline-block;
}

.boardsCellHeader {
  width: 85%;
  display: inline-table;
}

.boardsCellStats {
  width: 15%;
  display: inline-table;
}

#divBoards {
  display: table;
  border-spacing: 6px;
}

#divBoardsLegend {
  display: table-row;
  font-weight: bold;
}

.boardsCell {
  display: table-row;
}

.cellComponent {
  display: table-cell;
  padding-left: 5px;
  padding-right: 5px;
}

.boardsCellTags {
  white-space: nowrap;
  display: none;
}

.boardsPagination {
  margin-top: 1em;
}

#labelUsers {
  display: none;
}

.labelUniqueIps {
  display: none;
}

.reasonDiv {
  margin-top: 0.5em;
}

.selectionDiv {
  margin-bottom: 0.5em;
}

.mCard {
  border: solid 1px #313370;
  margin-bottom: 1em;
}

.mFixed {
  position: fixed;
  bottom: 1em;
  right: 2em;
  background: white;
  margin-left: 2em;
}

.mCard > h2 {
  font-size: 125%;
  padding: 5px 10px;
  background: #313370;
  color: white;
  display: inline-block;
}

.mCard > div {
  padding: 15px;
}

.mLinks a {
  display: table;
}

.mCard hr {
  margin: 0.75em 0;
}

#pagesDiv {
  word-break: break-all;
}

#pagesDiv a {
  margin-right: 0.5em;
}

#boardMessageField {
  display: block;
  width: 50em;
  height: 2em;
}

.reportCell .deletionCheckBox {
  display: none;
}

.reportCell:last-child hr {
  display: none;
}

.mCard #linkPrevious,
.mCard #linkNext {
  border-style: unset !important;
}

.mCard .innerPost {
  margin-left: 0;
}

.labelTable > div label {
  display: table;
}

/* ============================================================
   Open Reports — mobile (≤479px)  (operator 2026-08-19)
   Desktop model: #reportActions is a fixed bottom-right corner panel and
   #reportList reserves 300px of right margin for it. On a phone that squeezes
   the report list to a sliver on the LEFT (the "squished" symptom) while long
   IP strings in each post's info table blow PAST the container's right edge.
   Fix: actions become a normal full-width block stacked in flow, the list takes
   full width, and long IPs/ranges are forced to wrap inside their cell instead
   of widening the table past the box. The v6 one-line status model (Name/Subject
   ellipsize) is left untouched — this only fixes the IP/table overflow.
   ============================================================ */
@media only screen and (max-width: 479px) {
  /* Actions panel: in-flow block, not a fixed corner overlay that covers content. */
  #reportActions {
    position: static;
    right: auto;
    bottom: auto;
    width: auto;
  }
  /* Report list: drop the desktop 300px right reservation → full width.
     (No overflow-x:hidden here — it would clip the Post Menu that opens from
     inside a report post, the same reason _posting.scss avoids it on .postInfo.) */
  #reportList {
    margin-right: 0;
    max-width: 100%;
  }
  /* The per-post info table (IP / ranges / category / reason) must stay inside
     its post box instead of widening past it. Cap the width; the cell word-break
     below makes content breakable so an auto-layout table honours that cap. */
  #reportDiv table.modInfo {
    max-width: 100%;
  }
  /* Long IPs / ranges are the actual overflow source: let them break inside
     their cell. white-space:normal overrides the status line's inherited nowrap
     (which would otherwise prevent any wrap); word-break handles unbroken strings.
     Scoped to these cells so the v6 Name/Subject ellipsis is unaffected. */
  #reportDiv .panelIp,
  #reportDiv .labelIp,
  #reportDiv .panelRange,
  #reportDiv .labelBroadRange,
  #reportDiv .labelNarrowRange,
  #reportDiv table.modInfo td {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
  }
  /* Filter + actions form controls: usable at phone width (desktop sizes them
     for a narrow fixed corner box; in-flow they can take the full line). */
  #filterForm input,
  #filterForm select,
  #reportActions select,
  #reportActions input[type=text] {
    max-width: 100%;
  }
}
.sfw .uploadCell img:hover:not(.imgExpanded),
.sfw .catalogCell .linkThumb img:hover,
.sfw #bannerImage:hover {
  opacity: 1 !important;
  filter: blur(5px);
}
.sfw .uploadCell img:not(.imgExpanded),
.sfw .catalogCell .linkThumb img,
.sfw #bannerImage {
  opacity: 0;
}

.flipped {
  -moz-transform: scaleX(-1);
  -o-transform: scaleX(-1);
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
  filter: FlipH;
  -ms-filter: "FlipH";
}

#workerCount {
  width: 42px;
}

progress {
  width: 100%;
  height: 30px;
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border: solid #cccccc 5px;
  border-radius: 5px;
}

progress,
progress::-webkit-progress-bar {
  background: white !important;
}

progress,
progress::-webkit-progress-value,
progress::-moz-progress-bar {
  background: green;
}

progress::-webkit-progress-value {
  -webkit-transition: width 0.5s ease;
  -moz-transition: width 0.5s ease;
  -o-transition: width 0.5s ease;
  transition: width 0.5s ease;
}

progress,
progress::-webkit-progress-bar {
  background: #cccccc !important;
}

#percentageDiv {
  text-align: center;
}

#solved {
  color: green;
}

#fieldHash, #fieldDifficulty, #fieldSolved {
  display: none;
}

#startButton {
  margin-left: 5px;
}

.base64area {
  width: 100%;
  height: 2rem;
}

#labelBypass {
  display: none;
}

/* Base16 Atelier Lakeside Light - Theme */
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
/* Atelier-Lakeside Comment */
.hljs-comment,
.hljs-quote {
  color: #5a7b8c;
}

/* Atelier-Lakeside Red */
.hljs-variable,
.hljs-template-variable,
.hljs-attribute,
.hljs-tag,
.hljs-name,
.hljs-regexp,
.hljs-link,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class {
  color: #d22d72;
}

/* Atelier-Lakeside Orange */
.hljs-number,
.hljs-meta,
.hljs-built_in,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params {
  color: #935c25;
}

/* Atelier-Lakeside Green */
.hljs-string,
.hljs-symbol,
.hljs-bullet {
  color: #568c3b;
}

/* Atelier-Lakeside Blue */
.hljs-title,
.hljs-section {
  color: #257fad;
}

/* Atelier-Lakeside Purple */
.hljs-keyword,
.hljs-selector-tag {
  color: #6b6bb8;
}

.hljs {
  display: block;
  clear: both;
  overflow-x: auto;
  background: #ebf8ff;
  color: #516d7b;
  padding: 0.5em;
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: bold;
}

.catalogHeader .medals {
  float: left;
}

.medals .text {
  position: absolute;
  visibility: hidden;
  text-align: center;
  background-color: #313370;
  border-radius: 5px;
  padding: 5px 15px;
  z-index: 1;
  margin-left: 5px;
  color: #ffffff;
  opacity: 0;
}

.medals:hover .text {
  visibility: visible;
  transition: all 0.25s ease-in-out;
  opacity: 1;
}

/* Theme wrappers match the class on <html> (set pre-paint by the inline head
   script in base.njk, so the canvas background is themed from frame one) AND
   on <body> (server-rendered default / themeLoader.js). color-scheme aligns
   the UA canvas + scrollbars + form controls with the theme's mode.

   Each theme file is a Sass module exposing one namespaced mixin (the new
   @use/@mixin standard, replacing the old nested-@import pattern). */
html.theme_tomorrow, .theme_tomorrow {
  color-scheme: dark;
  background: #1d1f21 none;
  color: #C5C8C6;
  font-family: arial, helvetica, sans-serif;
  /* ==========================================================================
     Tomorrow (Tomorrow Night Eighties) - Complete Theme (standardization pass
     2026-08-17). Palette carried over from the original; every colorable
     element in theme-inventory.md is now defined explicitly. The original's
     layout/font tweaks are preserved verbatim in the LAYOUT DELTA section at
     the bottom (non-color identity of this theme).
     ========================================================================== */
  /* Core palette */
  /* page background (frozen — CSP-hashed) */
  /* nav / panels / post cells / form th */
  /* marked posts / menu items */
}
html.theme_tomorrow, .theme_tomorrow {
  background: #1d1f21 none !important;
  color: #C5C8C6 !important;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- A. Canvas & page structure --- */
}
html.theme_tomorrow body, .theme_tomorrow body {
  background: #1d1f21 !important;
  color: #C5C8C6;
}
html.theme_tomorrow #footer, .theme_tomorrow #footer {
  color: #707070;
}
html.theme_tomorrow #news, .theme_tomorrow #news {
  background: #282a2e;
  color: #C5C8C6;
  border-color: #111111;
}
html.theme_tomorrow .hiddenThread, .theme_tomorrow .hiddenThread {
  background-color: #1d1d21;
  border-color: #111111;
}
html.theme_tomorrow .kCard .kBody,
html.theme_tomorrow #indexWrapper #indexLeft > div,
html.theme_tomorrow #indexWrapper #indexRight > div,
html.theme_tomorrow #subpageWrapper > div,
html.theme_tomorrow #redirect > div, .theme_tomorrow .kCard .kBody,
.theme_tomorrow #indexWrapper #indexLeft > div,
.theme_tomorrow #indexWrapper #indexRight > div,
.theme_tomorrow #subpageWrapper > div,
.theme_tomorrow #redirect > div {
  background-color: #282a2e;
  border-left-color: #111111;
  border-right-color: #111111;
  border-bottom-color: #111111;
}
html.theme_tomorrow .mCard, .theme_tomorrow .mCard {
  background-color: #282a2e;
}
html.theme_tomorrow .mCard > h2, .theme_tomorrow .mCard > h2 {
  background: #282a2e;
  color: #C5C8C6;
}
html.theme_tomorrow h2, html.theme_tomorrow h3, .theme_tomorrow h2, .theme_tomorrow h3 {
  color: #C5C8C6;
  background: #282a2e;
}
html.theme_tomorrow div.titlebar, .theme_tomorrow div.titlebar {
  background: #282a2e;
  color: #C5C8C6;
}
html.theme_tomorrow #siteName, .theme_tomorrow #siteName {
  color: #81a2be;
}
html.theme_tomorrow, .theme_tomorrow {
  /* main site title — theme's signature accent (was falling back to base body text) */
}
html.theme_tomorrow #cookieBanner, .theme_tomorrow #cookieBanner {
  background-color: #282a2e;
  border-bottom-color: #111111;
  color: #C5C8C6;
}
html.theme_tomorrow .unimportant, html.theme_tomorrow .unimportant *, .theme_tomorrow .unimportant, .theme_tomorrow .unimportant * {
  color: #707070 !important;
}
html.theme_tomorrow progress, .theme_tomorrow progress {
  background: #1d1d21;
}
html.theme_tomorrow progress::-webkit-progress-value, .theme_tomorrow progress::-webkit-progress-value {
  background: #adbd68;
}
html.theme_tomorrow progress::-moz-progress-bar, .theme_tomorrow progress::-moz-progress-bar {
  background: #adbd68;
}
html.theme_tomorrow *, .theme_tomorrow * {
  scrollbar-color: #454a4d #16181a;
}
html.theme_tomorrow hr, .theme_tomorrow hr {
  background-color: #282a2e;
  border: 0;
  height: 1px;
  clear: left;
}
html.theme_tomorrow ::selection, .theme_tomorrow ::selection {
  background: #81a2be;
  color: #1d1f21;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- B. Navigation & menus --- */
}
html.theme_tomorrow #topNav, .theme_tomorrow #topNav {
  background: transparent;
}
html.theme_tomorrow #topNav.fixed, html.theme_tomorrow #topNav.active, .theme_tomorrow #topNav.fixed, .theme_tomorrow #topNav.active {
  background: #282a2e;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
}
html.theme_tomorrow nav, .theme_tomorrow nav {
  background: #282a2e;
  color: #C5C8C6;
  border-bottom: 1px solid #111111;
  z-index: 100;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}
html.theme_tomorrow .navLinkSpan, .theme_tomorrow .navLinkSpan {
  color: #C5C8C6;
}
html.theme_tomorrow .divPages, html.theme_tomorrow #divPages, .theme_tomorrow .divPages, .theme_tomorrow #divPages {
  border-color: #111111;
}
html.theme_tomorrow .threadPages, html.theme_tomorrow .boardPages, .theme_tomorrow .threadPages, .theme_tomorrow .boardPages {
  color: #C5C8C6;
  background: none;
  border: none;
  font-size: 15px;
  margin-top: 25px;
}
html.theme_tomorrow .threadPages span, .theme_tomorrow .threadPages span {
  color: #C5C8C6;
}
html.theme_tomorrow #divPages, .theme_tomorrow #divPages {
  background: none;
}
html.theme_tomorrow .extraMenu div, .theme_tomorrow .extraMenu div {
  background-color: #1d1d21;
  color: #C5C8C6;
}
html.theme_tomorrow .extraMenu div:hover, .theme_tomorrow .extraMenu div:hover {
  color: #1d1d21;
  background-color: #C5C8C6;
}
html.theme_tomorrow .extraMenu a, .theme_tomorrow .extraMenu a {
  color: #C5C8C6;
  text-decoration: none;
}
html.theme_tomorrow .hideMenu div:hover, .theme_tomorrow .hideMenu div:hover {
  background-color: #282a2e;
  color: #C5C8C6;
}
html.theme_tomorrow .extraMenu, html.theme_tomorrow .hideMenu, .theme_tomorrow .extraMenu, .theme_tomorrow .hideMenu {
  border-color: #111111;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- C. Post cells & thread view --- */
}
html.theme_tomorrow .innerPost, .theme_tomorrow .innerPost {
  background-color: #282a2e;
  border: 1px solid #282a2e;
  max-width: 95%;
}
html.theme_tomorrow .markedPost, .theme_tomorrow .markedPost {
  background-color: #1d1d21;
  border: 1px solid #111111;
}
html.theme_tomorrow .topBoards a, html.theme_tomorrow .floatingMenu, .theme_tomorrow .topBoards a, .theme_tomorrow .floatingMenu {
  background: #282a2e;
}
html.theme_tomorrow #watchedMenu .watchedCellLabel a, .theme_tomorrow #watchedMenu .watchedCellLabel a {
  color: #81a2be;
}
html.theme_tomorrow, .theme_tomorrow {
  /* watched-threads menu links */
}
html.theme_tomorrow .markedPost, html.theme_tomorrow div.postCell:target .innerPost, .theme_tomorrow .markedPost, .theme_tomorrow div.postCell:target .innerPost {
  outline-color: #81a2be;
}
html.theme_tomorrow .quoteTooltip > div, .theme_tomorrow .quoteTooltip > div {
  border-color: #81a2be;
}
html.theme_tomorrow .uploadDetails, .theme_tomorrow .uploadDetails {
  color: #707070;
}
html.theme_tomorrow .innerPost .expandLabel,
html.theme_tomorrow .innerPost .collapseLabel,
html.theme_tomorrow .markedPost .expandLabel,
html.theme_tomorrow .markedPost .collapseLabel, .theme_tomorrow .innerPost .expandLabel,
.theme_tomorrow .innerPost .collapseLabel,
.theme_tomorrow .markedPost .expandLabel,
.theme_tomorrow .markedPost .collapseLabel {
  background: #282a2e;
  color: #C5C8C6;
}
html.theme_tomorrow .innerOP .expandLabel,
html.theme_tomorrow .innerOP .collapseLabel, .theme_tomorrow .innerOP .expandLabel,
.theme_tomorrow .innerOP .collapseLabel {
  background: #1d1d21;
  color: #707070;
}
html.theme_tomorrow .innerPost .bottomGradient, .theme_tomorrow .innerPost .bottomGradient {
  background: linear-gradient(transparent, #282a2e) !important;
}
html.theme_tomorrow .innerOP .bottomGradient, .theme_tomorrow .innerOP .bottomGradient {
  background: linear-gradient(transparent, #1d1d21) !important;
}
html.theme_tomorrow .innerPost .panelUploads .uploadCell,
html.theme_tomorrow .markedPost .panelUploads .uploadCell, .theme_tomorrow .innerPost .panelUploads .uploadCell,
.theme_tomorrow .markedPost .panelUploads .uploadCell {
  background: transparent !important;
  border: none !important;
}
html.theme_tomorrow .innerOP .panelUploads .uploadCell,
html.theme_tomorrow #selectedDiv .selectedCell,
html.theme_tomorrow #selectedDivQr .selectedCell, .theme_tomorrow .innerOP .panelUploads .uploadCell,
.theme_tomorrow #selectedDiv .selectedCell,
.theme_tomorrow #selectedDivQr .selectedCell {
  background: transparent !important;
  border: none !important;
}
html.theme_tomorrow, .theme_tomorrow {
  /* Badge backgrounds are inline per-poster hashes (any hue — light yellow-greens,
     pinks, tans). Light fill + solid dark outline stays readable on all of them
     (same treatment as darkreader, operator-confirmed 2026-08-17). */
}
html.theme_tomorrow .labelId, .theme_tomorrow .labelId {
  color: #fff;
  opacity: 0.85;
}
html.theme_tomorrow, .theme_tomorrow {
  /* outline inherited from base _posting.scss */
}
html.theme_tomorrow .labelCreated, html.theme_tomorrow .relativeTime, html.theme_tomorrow .spanId, .theme_tomorrow .labelCreated, .theme_tomorrow .relativeTime, .theme_tomorrow .spanId {
  color: #707070;
}
html.theme_tomorrow .linkName:link, .theme_tomorrow .linkName:link {
  font-size: 13px;
  color: #81a2be;
}
html.theme_tomorrow .linkName:link:hover, .theme_tomorrow .linkName:link:hover {
  color: #D00;
}
html.theme_tomorrow .noEmailName, html.theme_tomorrow .noEmailName:hover, .theme_tomorrow .noEmailName, .theme_tomorrow .noEmailName:hover {
  font-size: 13px;
  color: #C5C8C6;
}
html.theme_tomorrow .linkQuote, html.theme_tomorrow .linkSelf, .theme_tomorrow .linkQuote, .theme_tomorrow .linkSelf {
  color: #81a2be !important;
}
html.theme_tomorrow .linkQuote:hover, html.theme_tomorrow .linkSelf:hover, .theme_tomorrow .linkQuote:hover, .theme_tomorrow .linkSelf:hover {
  color: #5F89AC !important;
}
html.theme_tomorrow #divThreads .linkSelf, html.theme_tomorrow #divThreads .linkQuote, .theme_tomorrow #divThreads .linkSelf, .theme_tomorrow #divThreads .linkQuote {
  color: #C5C8C6;
}
html.theme_tomorrow #divThreads .linkSelf:hover, html.theme_tomorrow #divThreads .linkQuote:hover, .theme_tomorrow #divThreads .linkSelf:hover, .theme_tomorrow #divThreads .linkQuote:hover {
  color: #5F89AC;
}
html.theme_tomorrow .labelSubject, .theme_tomorrow .labelSubject {
  color: #446655;
  font-weight: bold;
  font-size: 13px;
}
html.theme_tomorrow .labelRole, .theme_tomorrow .labelRole {
  color: #F00000 !important;
  background-color: #000;
  padding: 2px 5px;
  border-radius: 10px;
  font-weight: normal;
}
html.theme_tomorrow .sage, html.theme_tomorrow .bumpLockIndicator, .theme_tomorrow .sage, .theme_tomorrow .bumpLockIndicator {
  color: #F00000;
}
html.theme_tomorrow .divBanMessage, .theme_tomorrow .divBanMessage {
  font-size: 14px;
  color: #ed1c24;
  margin: 0 10px 7px 10px;
}
html.theme_tomorrow .contentOmissionIndicator, .theme_tomorrow .contentOmissionIndicator {
  margin: 15px 0 5px 10px;
  color: #707070;
}
html.theme_tomorrow .labelOmission, .theme_tomorrow .labelOmission {
  color: #707070;
  margin-top: 1em;
}
html.theme_tomorrow .panelBacklinks a, .theme_tomorrow .panelBacklinks a {
  color: #707070;
  font-style: normal;
}
html.theme_tomorrow .panelBacklinks a:hover, .theme_tomorrow .panelBacklinks a:hover {
  color: #81a2be;
}
html.theme_tomorrow .quoteLink, .theme_tomorrow .quoteLink {
  color: #81a2be;
}
html.theme_tomorrow .quoteLink:hover, .theme_tomorrow .quoteLink:hover {
  color: #5F89AC;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- D. Chan markup & spoilers --- */
}
html.theme_tomorrow .greenText, .theme_tomorrow .greenText {
  color: #adbd68;
}
html.theme_tomorrow .red, .theme_tomorrow .red {
  color: #C5C8C6;
}
html.theme_tomorrow .redText, .theme_tomorrow .redText {
  font-size: 14px;
  color: #F20;
}
html.theme_tomorrow .orangeText, .theme_tomorrow .orangeText {
  color: #f99157;
}
html.theme_tomorrow .brackets:after, html.theme_tomorrow .brackets:before, .theme_tomorrow .brackets:after, .theme_tomorrow .brackets:before {
  color: #C5C8C6;
}
html.theme_tomorrow span.spoiler, .theme_tomorrow span.spoiler {
  background: #000;
  color: #000;
}
html.theme_tomorrow .spoiler:hover, .theme_tomorrow .spoiler:hover {
  color: #FFF;
  background-color: #000;
}
html.theme_tomorrow span.spoiler > .greenText, .theme_tomorrow span.spoiler > .greenText {
  color: #000 !important;
}
html.theme_tomorrow span.spoiler > .orangeText, .theme_tomorrow span.spoiler > .orangeText {
  color: #000 !important;
}
html.theme_tomorrow span.spoiler > a, .theme_tomorrow span.spoiler > a {
  color: #000 !important;
}
html.theme_tomorrow span.spoiler:hover > .greenText, .theme_tomorrow span.spoiler:hover > .greenText {
  color: #adbd68 !important;
}
html.theme_tomorrow span.spoiler:hover > .orangeText, .theme_tomorrow span.spoiler:hover > .orangeText {
  color: #f99157 !important;
}
html.theme_tomorrow span.spoiler:hover > a, .theme_tomorrow span.spoiler:hover > a {
  color: #81a2be !important;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- E. Posting form (legacy table + .post-card) --- */
}
html.theme_tomorrow .form-post th, .theme_tomorrow .form-post th {
  background: #282a2e;
  border: 1px solid #111111;
  color: #C5C8C6;
}
html.theme_tomorrow #postingForm th, html.theme_tomorrow .modalTableBody th, .theme_tomorrow #postingForm th, .theme_tomorrow .modalTableBody th {
  color: #C5C8C6;
  background-color: #282a2e;
}
html.theme_tomorrow input, html.theme_tomorrow button, html.theme_tomorrow textarea, .theme_tomorrow input, .theme_tomorrow button, .theme_tomorrow textarea {
  padding: 3px 4px 3px;
  border: 1px solid #282a2e;
  background-color: #444444;
  color: #BBB;
}
html.theme_tomorrow input:focus, html.theme_tomorrow button:focus, html.theme_tomorrow textarea:focus, .theme_tomorrow input:focus, .theme_tomorrow button:focus, .theme_tomorrow textarea:focus {
  border: 1px solid #C5C8C6;
}
html.theme_tomorrow input::placeholder, html.theme_tomorrow textarea::placeholder, .theme_tomorrow input::placeholder, .theme_tomorrow textarea::placeholder {
  color: #707070 !important;
  opacity: 1 !important;
}
html.theme_tomorrow .postingInput, .theme_tomorrow .postingInput {
  border-color: #282a2e;
}
html.theme_tomorrow .dropzone, .theme_tomorrow .dropzone {
  color: rgba(197, 200, 198, 0.5);
  border: 2px dashed #444;
  background-color: rgba(40, 42, 46, 0.5);
}
html.theme_tomorrow .dropzone:hover, .theme_tomorrow .dropzone:hover {
  color: #C5C8C6;
  border-color: #81a2be;
}
html.theme_tomorrow .dragAndDropDiv, html.theme_tomorrow .dragAndDropThumb, .theme_tomorrow .dragAndDropDiv, .theme_tomorrow .dragAndDropThumb {
  color: #C5C8C6;
  background-color: rgba(40, 42, 46, 0.5);
}
html.theme_tomorrow .removeButton, .theme_tomorrow .removeButton {
  color: #707070;
}
html.theme_tomorrow .removeButton:hover, .theme_tomorrow .removeButton:hover {
  color: #F00000;
}
html.theme_tomorrow .fileBrowser, .theme_tomorrow .fileBrowser {
  background: none;
  color: #C5C8C6;
}
html.theme_tomorrow #divOekaki, .theme_tomorrow #divOekaki {
  background-color: #282a2e;
}
html.theme_tomorrow, .theme_tomorrow {
  /* .post-card (redesigned 2026-08-16) */
}
html.theme_tomorrow .post-card, .theme_tomorrow .post-card {
  background: #282a2e;
  border-color: #111111;
  color: #C5C8C6;
}
html.theme_tomorrow .post-card .postingInput, html.theme_tomorrow .post-card textarea, html.theme_tomorrow .post-card select, .theme_tomorrow .post-card .postingInput, .theme_tomorrow .post-card textarea, .theme_tomorrow .post-card select {
  background-color: #444444;
  border-color: #282a2e;
  color: #BBB;
}
html.theme_tomorrow .post-card .postingInput:focus, html.theme_tomorrow .post-card textarea:focus, html.theme_tomorrow .post-card select:focus, .theme_tomorrow .post-card .postingInput:focus, .theme_tomorrow .post-card textarea:focus, .theme_tomorrow .post-card select:focus {
  border-color: #C5C8C6;
}
html.theme_tomorrow .post-card input::placeholder, html.theme_tomorrow .post-card textarea::placeholder, .theme_tomorrow .post-card input::placeholder, .theme_tomorrow .post-card textarea::placeholder {
  color: #707070 !important;
  opacity: 1 !important;
}
html.theme_tomorrow .post-card .dropzone, .theme_tomorrow .post-card .dropzone {
  border: 2px dashed #444;
  color: rgba(197, 200, 198, 0.5);
  background: transparent;
}
html.theme_tomorrow .post-card .dropzone:hover, .theme_tomorrow .post-card .dropzone:hover {
  border-color: #81a2be;
  color: #C5C8C6;
}
html.theme_tomorrow .post-card .toggle-badge, .theme_tomorrow .post-card .toggle-badge {
  background: #1d1d21;
  color: #C5C8C6;
}
html.theme_tomorrow .post-card .advanced-drawer, .theme_tomorrow .post-card .advanced-drawer {
  background: #16181a;
}
html.theme_tomorrow .post-card .drawer-toggle, .theme_tomorrow .post-card .drawer-toggle {
  color: #81a2be;
}
html.theme_tomorrow .post-card .btn-submit, .theme_tomorrow .post-card .btn-submit {
  background: #81a2be;
  color: #1d1f21;
}
html.theme_tomorrow .post-card .btn-submit:hover, .theme_tomorrow .post-card .btn-submit:hover {
  background: #5F89AC;
}
html.theme_tomorrow .post-card .post-rules-panel, .theme_tomorrow .post-card .post-rules-panel {
  background: #1d1d21;
  border-color: #111111;
  color: #707070;
}
html.theme_tomorrow .post-card .post-rules-panel a, .theme_tomorrow .post-card .post-rules-panel a {
  color: #81a2be;
}
html.theme_tomorrow .post-card .rules-line, .theme_tomorrow .post-card .rules-line {
  color: #707070;
}
html.theme_tomorrow .post-card .rules-line a, .theme_tomorrow .post-card .rules-line a {
  color: #81a2be;
}
html.theme_tomorrow .post-card .captchaImage, .theme_tomorrow .post-card .captchaImage {
  background: #fff;
}
html.theme_tomorrow .post-card .captchaTimer, .theme_tomorrow .post-card .captchaTimer {
  color: #707070;
  opacity: 1;
}
html.theme_tomorrow .post-card .no-cookie-link, .theme_tomorrow .post-card .no-cookie-link {
  color: #81a2be;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- F. Modals & settings menu --- */
}
html.theme_tomorrow .modalPanel, .theme_tomorrow .modalPanel {
  background: rgba(0, 0, 0, 0.7);
}
html.theme_tomorrow #quick-reply table, .theme_tomorrow #quick-reply table {
  background: #282a2e;
  border: 1px solid #111111;
  color: #C5C8C6;
  outline-color: #111111;
}
html.theme_tomorrow #post-form-inner th, .theme_tomorrow #post-form-inner th {
  background: #282a2e !important;
  border: 1px solid #222;
  color: #C5C8C6;
  text-align: center;
  padding: 2px 0;
}
html.theme_tomorrow #quick-reply th .handle, .theme_tomorrow #quick-reply th .handle {
  color: #C5C8C6;
  font-size: 13px;
}
html.theme_tomorrow .modalHeader, html.theme_tomorrow #quick-reply .handle, .theme_tomorrow .modalHeader, .theme_tomorrow #quick-reply .handle {
  background: #282a2e;
  color: #C5C8C6;
}
html.theme_tomorrow .modalDecorationPanel, .theme_tomorrow .modalDecorationPanel {
  background: #1d1d21;
  border-color: #111111;
}
html.theme_tomorrow .modalInnerDecorationPanel, html.theme_tomorrow .post-table, .theme_tomorrow .modalInnerDecorationPanel, .theme_tomorrow .post-table {
  background-color: #1d1f21;
}
html.theme_tomorrow .captchaTimer, .theme_tomorrow .captchaTimer {
  background: #1d1f21;
  border-color: #707070;
  color: #707070;
}
html.theme_tomorrow .captchaImage, .theme_tomorrow .captchaImage {
  background-color: #282a2e;
  color: #C5C8C6;
}
html.theme_tomorrow, .theme_tomorrow {
  /* Settings menu — full color table (2026-08-17): base _settingsMenu.scss is
     dark-plum; now every surface uses the Tomorrow Night palette (same surface set as green). */
}
html.theme_tomorrow #settingsMenu, .theme_tomorrow #settingsMenu {
  background: #1d1f21;
  color: #C5C8C6;
  border-color: #111111;
}
html.theme_tomorrow #settingsMenu > .header, .theme_tomorrow #settingsMenu > .header {
  background: #282a2e;
  color: #C5C8C6;
  border-bottom-color: #707070;
}
html.theme_tomorrow #settingsMenu > div:nth-child(3), html.theme_tomorrow #settingsMenu > div:nth-child(4), .theme_tomorrow #settingsMenu > div:nth-child(3), .theme_tomorrow #settingsMenu > div:nth-child(4) {
  background-color: #282a2e !important;
  border-color: #444 !important;
}
html.theme_tomorrow #settingsMenu .settingsTab, .theme_tomorrow #settingsMenu .settingsTab {
  color: #707070;
}
html.theme_tomorrow #settingsMenu .settingsTab:hover, html.theme_tomorrow #settingsMenu .settingsTab:focus, .theme_tomorrow #settingsMenu .settingsTab:hover, .theme_tomorrow #settingsMenu .settingsTab:focus {
  background: #1d1d21;
  color: #C5C8C6;
}
html.theme_tomorrow #settingsMenu #selectedTab, .theme_tomorrow #settingsMenu #selectedTab {
  background: #81a2be;
  color: #1d1f21;
}
html.theme_tomorrow #settingsMenu .settingsSectionTitle, .theme_tomorrow #settingsMenu .settingsSectionTitle {
  color: #707070;
  border-bottom-color: #707070;
}
html.theme_tomorrow #settingsMenu .settingName, .theme_tomorrow #settingsMenu .settingName {
  color: #C5C8C6;
}
html.theme_tomorrow #settingsMenu .settingDesc, .theme_tomorrow #settingsMenu .settingDesc {
  color: #707070;
}
html.theme_tomorrow #settingsMenu .settingsCheckbox, .theme_tomorrow #settingsMenu .settingsCheckbox {
  accent-color: #81a2be;
}
html.theme_tomorrow #settingsMenu .saveButton, .theme_tomorrow #settingsMenu .saveButton {
  background: #81a2be;
  color: #1d1f21;
}
html.theme_tomorrow #settingsMenu .saveButton:hover, .theme_tomorrow #settingsMenu .saveButton:hover {
  background: #5F89AC;
}
html.theme_tomorrow #settingsMenu #newFilterPanel select, html.theme_tomorrow #settingsMenu #newFilterPanel input[type=text], .theme_tomorrow #settingsMenu #newFilterPanel select, .theme_tomorrow #settingsMenu #newFilterPanel input[type=text] {
  background: #444444;
  color: #C5C8C6;
  border-color: #707070;
}
html.theme_tomorrow #settingsMenu #newFilterPanel button, .theme_tomorrow #settingsMenu #newFilterPanel button {
  background: #1d1d21;
  color: #C5C8C6;
  border-color: #707070;
}
html.theme_tomorrow #settingsMenu #newFilterPanel button:hover, .theme_tomorrow #settingsMenu #newFilterPanel button:hover {
  background: #282a2e;
}
html.theme_tomorrow #settingsMenu .existingFilterTypeLabel, html.theme_tomorrow #settingsMenu .existingFilterContentLabel, .theme_tomorrow #settingsMenu .existingFilterTypeLabel, .theme_tomorrow #settingsMenu .existingFilterContentLabel {
  color: #707070;
}
html.theme_tomorrow #settingsMenu .filterDeleteButton, .theme_tomorrow #settingsMenu .filterDeleteButton {
  color: #707070;
}
html.theme_tomorrow #settingsMenu .filterDeleteButton:hover, .theme_tomorrow #settingsMenu .filterDeleteButton:hover {
  color: #F20;
}
html.theme_tomorrow #settingsMenu #themeSelector, html.theme_tomorrow #settingsMenu #cssInput, .theme_tomorrow #settingsMenu #themeSelector, .theme_tomorrow #settingsMenu #cssInput {
  background: #444444;
  color: #C5C8C6;
  border-color: #707070;
}
html.theme_tomorrow #closeSettingsMenuButton, .theme_tomorrow #closeSettingsMenuButton {
  color: #C5C8C6;
}
html.theme_tomorrow .appealForm table tr th, html.theme_tomorrow table.modInfo tr th, .theme_tomorrow .appealForm table tr th, .theme_tomorrow table.modInfo tr th {
  background: #282a2e;
  color: #C5C8C6;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- G. Catalog view --- */
}
html.theme_tomorrow .catalogCell, .theme_tomorrow .catalogCell {
  background: rgba(0, 0, 0, 0.05);
}
html.theme_tomorrow .catalogCell .divMessage, .theme_tomorrow .catalogCell .divMessage {
  min-width: 0;
  margin: 0;
}
html.theme_tomorrow .catalogCell:hover .divMessage, .theme_tomorrow .catalogCell:hover .divMessage {
  background: #1c1d1f;
  outline: none;
}
html.theme_tomorrow .catalogCell:focus .divMessage, .theme_tomorrow .catalogCell:focus .divMessage {
  background: #1c1d1f;
  outline-color: #1c1d1f;
}
html.theme_tomorrow .catalogCell .labelSubject, .theme_tomorrow .catalogCell .labelSubject {
  color: #446655;
}
html.theme_tomorrow .threadStats, .theme_tomorrow .threadStats {
  color: #707070;
}
html.theme_tomorrow .linkThumb img, .theme_tomorrow .linkThumb img {
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.55);
  border: 2px solid rgba(153, 153, 153, 0);
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- H. Front page / boards list --- */
}
html.theme_tomorrow #divLatestPosts .latestPostCell, .theme_tomorrow #divLatestPosts .latestPostCell {
  background: inherit;
}
html.theme_tomorrow #divLatestImages img, .theme_tomorrow #divLatestImages img {
  border-color: #707070;
}
html.theme_tomorrow #boardsCellHeader span, .theme_tomorrow #boardsCellHeader span {
  background: #282a2e;
  border: 1px solid #111;
  color: #C5C8C6;
}
html.theme_tomorrow .boardsCell:nth-of-type(2n+1) span, .theme_tomorrow .boardsCell:nth-of-type(2n+1) span {
  background-color: #282a2e;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- I. Code highlighting (highlight.js — Tomorrow Night Eighties) --- */
}
html.theme_tomorrow .hljs-comment, html.theme_tomorrow .hljs-quote, .theme_tomorrow .hljs-comment, .theme_tomorrow .hljs-quote {
  color: #999999;
}
html.theme_tomorrow .hljs-variable, html.theme_tomorrow .hljs-template-variable, html.theme_tomorrow .hljs-tag, html.theme_tomorrow .hljs-name,
html.theme_tomorrow .hljs-selector-id, html.theme_tomorrow .hljs-selector-class, html.theme_tomorrow .hljs-regexp, html.theme_tomorrow .hljs-deletion, .theme_tomorrow .hljs-variable, .theme_tomorrow .hljs-template-variable, .theme_tomorrow .hljs-tag, .theme_tomorrow .hljs-name,
.theme_tomorrow .hljs-selector-id, .theme_tomorrow .hljs-selector-class, .theme_tomorrow .hljs-regexp, .theme_tomorrow .hljs-deletion {
  color: #f2777a;
}
html.theme_tomorrow .hljs-number, html.theme_tomorrow .hljs-built_in, html.theme_tomorrow .hljs-builtin-name, html.theme_tomorrow .hljs-literal,
html.theme_tomorrow .hljs-type, html.theme_tomorrow .hljs-params, html.theme_tomorrow .hljs-meta, html.theme_tomorrow .hljs-link, .theme_tomorrow .hljs-number, .theme_tomorrow .hljs-built_in, .theme_tomorrow .hljs-builtin-name, .theme_tomorrow .hljs-literal,
.theme_tomorrow .hljs-type, .theme_tomorrow .hljs-params, .theme_tomorrow .hljs-meta, .theme_tomorrow .hljs-link {
  color: #f99157;
}
html.theme_tomorrow .hljs-attribute, .theme_tomorrow .hljs-attribute {
  color: #ffcc66;
}
html.theme_tomorrow .hljs-string, html.theme_tomorrow .hljs-symbol, html.theme_tomorrow .hljs-bullet, html.theme_tomorrow .hljs-addition, .theme_tomorrow .hljs-string, .theme_tomorrow .hljs-symbol, .theme_tomorrow .hljs-bullet, .theme_tomorrow .hljs-addition {
  color: #99cc99;
}
html.theme_tomorrow .hljs-title, html.theme_tomorrow .hljs-section, .theme_tomorrow .hljs-title, .theme_tomorrow .hljs-section {
  color: #6699cc;
}
html.theme_tomorrow .hljs-keyword, html.theme_tomorrow .hljs-selector-tag, .theme_tomorrow .hljs-keyword, .theme_tomorrow .hljs-selector-tag {
  color: #cc99cc;
}
html.theme_tomorrow .hljs, .theme_tomorrow .hljs {
  display: block;
  overflow-x: auto;
  background: #2d2d2d;
  color: #cccccc;
  padding: 0.5em;
}
html.theme_tomorrow .hljs-emphasis, .theme_tomorrow .hljs-emphasis {
  font-style: italic;
}
html.theme_tomorrow .hljs-strong, .theme_tomorrow .hljs-strong {
  font-weight: bold;
}
html.theme_tomorrow, .theme_tomorrow {
  /* --- J. Badges, indicators & misc --- */
}
html.theme_tomorrow .radiospan, .theme_tomorrow .radiospan {
  color: #fff;
  background-color: #d10000;
}
html.theme_tomorrow .dot, .theme_tomorrow .dot {
  background-color: orange;
}
html.theme_tomorrow .medals .text, .theme_tomorrow .medals .text {
  background-color: #282a2e;
  color: #fff;
}
html.theme_tomorrow .mobileAlert, .theme_tomorrow .mobileAlert {
  color: #F00000;
}
html.theme_tomorrow .linkFollow, .theme_tomorrow .linkFollow {
  color: #adbd68;
}
html.theme_tomorrow .linkFollowAlt, .theme_tomorrow .linkFollowAlt {
  color: #F00000;
}
html.theme_tomorrow .watchedNotification::before, .theme_tomorrow .watchedNotification::before {
  color: #F00000;
}
html.theme_tomorrow #boardContentLinks, .theme_tomorrow #boardContentLinks {
  color: #707070;
}
html.theme_tomorrow #reportActions, .theme_tomorrow #reportActions {
  background-color: #282a2e;
}
html.theme_tomorrow .contentAction, .theme_tomorrow .contentAction {
  background-color: #282a2e;
  border: 1px solid #282a2e;
  float: none;
  text-align: center;
  margin-right: auto;
  margin-left: auto;
  width: 25%;
  min-width: 300px;
}
html.theme_tomorrow #labelCaptchaId, .theme_tomorrow #labelCaptchaId {
  color: #ff0000;
}
html.theme_tomorrow #solved, .theme_tomorrow #solved {
  color: #adbd68;
}
html.theme_tomorrow a, html.theme_tomorrow .reportdeletebuttons, .theme_tomorrow a, .theme_tomorrow .reportdeletebuttons {
  color: #81a2be;
  text-decoration: none;
}
html.theme_tomorrow a:hover, .theme_tomorrow a:hover {
  color: #5F89AC;
}
html.theme_tomorrow h2 a:link, .theme_tomorrow h2 a:link {
  color: #C5C8C6;
}
html.theme_tomorrow h2 a:visited, .theme_tomorrow h2 a:visited {
  color: #707070;
}
html.theme_tomorrow .handle a, .theme_tomorrow .handle a {
  color: #C5C8C6;
}
html.theme_tomorrow, .theme_tomorrow {
  /* ==========================================================================
     LAYOUT DELTA — non-color identity of the original tomorrow theme, kept as-is
     ========================================================================== */
}
html.theme_tomorrow #topBox, .theme_tomorrow #topBox {
  text-align: center;
  font-size: 16px;
  padding: 10px 0 20px 0;
}
html.theme_tomorrow #innerWrapper > div, html.theme_tomorrow .infoBox, .theme_tomorrow #innerWrapper > div, .theme_tomorrow .infoBox {
  border: none;
  background: none;
}
html.theme_tomorrow .linkPost img, .theme_tomorrow .linkPost img {
  padding: 6px 0 6px 0;
}
html.theme_tomorrow footer, .theme_tomorrow footer {
  background: none;
  font-size: 10px;
  margin: 20px 0 10px 0;
}
html.theme_tomorrow .settings, .theme_tomorrow .settings {
  background: none;
  border: none;
}
html.theme_tomorrow .logCell, .theme_tomorrow .logCell {
  font-weight: bold;
  font-size: 15px;
  margin: 10px;
  padding: 0 5px 0 0;
}
html.theme_tomorrow .logCell p span, .theme_tomorrow .logCell p span {
  font-weight: normal;
  padding: 10px;
}
html.theme_tomorrow #bannerImage, .theme_tomorrow #bannerImage {
  border: 1px solid #a9a9a9;
  margin-top: -5px;
  margin-bottom: 15px;
}
html.theme_tomorrow #modeBanner, .theme_tomorrow #modeBanner {
  background-color: #1d1f21;
  color: white;
  font-size: 12pt;
  font-weight: bold;
  margin: 1em 0;
}
html.theme_tomorrow .boardHeader p, .theme_tomorrow .boardHeader p {
  font-family: tahoma;
  color: #C5C8C6;
}
html.theme_tomorrow .boardHeader p#labelName, .theme_tomorrow .boardHeader p#labelName {
  font-weight: bold;
  font-size: 22pt;
}
html.theme_tomorrow .boardHeader a, .theme_tomorrow .boardHeader a {
  font-family: arial, sans-serif;
  font-size: 12px;
}
html.theme_tomorrow #divMessage, .theme_tomorrow #divMessage {
  text-align: center;
  color: #F20;
  font-size: 12px;
  font-weight: bold;
}
html.theme_tomorrow .innerPost .uploadCell img, .theme_tomorrow .innerPost .uploadCell img {
  padding: 6px;
  margin-right: 20px;
}
html.theme_tomorrow .divMessage, .theme_tomorrow .divMessage {
  font-size: 13px;
  margin: 12px 19px 12px 28px;
  padding: 0 5px 0 0;
  min-width: 300px; /* fix post number position */
}
html.theme_tomorrow .quoteblock, .theme_tomorrow .quoteblock {
  background: none !important;
}
html.theme_tomorrow .quoteblock .labelCreated, html.theme_tomorrow .quoteblock .linkQuote, html.theme_tomorrow .quoteblock .labelRole,
html.theme_tomorrow .quoteblock .spanId, html.theme_tomorrow .quoteblock .linkSelf, .theme_tomorrow .quoteblock .labelCreated, .theme_tomorrow .quoteblock .linkQuote, .theme_tomorrow .quoteblock .labelRole,
.theme_tomorrow .quoteblock .spanId, .theme_tomorrow .quoteblock .linkSelf {
  font-size: 12px;
  color: #C5C8C6;
}
html.theme_tomorrow .quoteblock .linkSelf, .theme_tomorrow .quoteblock .linkSelf {
  margin-left: 0; /* fix hover post box */
}
html.theme_tomorrow .linkPreview, .theme_tomorrow .linkPreview {
  visibility: collapse;
}
html.theme_tomorrow .linkPreview + .linkSelf, .theme_tomorrow .linkPreview + .linkSelf {
  margin-left: -50px; /* move post number over preview */
}
html.theme_tomorrow #reportFieldReason, .theme_tomorrow #reportFieldReason {
  margin-left: 2.1em;
}
html.theme_tomorrow #deletionFieldPassword, .theme_tomorrow #deletionFieldPassword {
  margin-left: 1em;
}
html.theme_tomorrow img#captchaImageReport, .theme_tomorrow img#captchaImageReport {
  margin-left: auto;
  margin-right: auto;
}
html.theme_tomorrow .divPosts .postCell .innerPost:before,
html.theme_tomorrow .divPosts .postCell .markedPost:before, .theme_tomorrow .divPosts .postCell .innerPost:before,
.theme_tomorrow .divPosts .postCell .markedPost:before {
  margin-left: -20px !important;
  color: #282a2e;
  font-size: 10pt;
}

html.theme_green, .theme_green {
  color-scheme: light;
  /* ==========================================================================
     Green - Complete Theme (rebuilt 2026-08-17, standardization pass)
     Operator verdict: "a carefully made stylish green theme would be a nice
     option." Light green design seeded from the original's three colors
     (#92D17E cells, #317055 headers). Tuned 2026-08-17 to a MID-SAGE canvas
     #adc2b4 (operator pick from green-swatch.html — "halfway between dark and
     light"); subject red -> hunter green; links/dim darkened for contrast on
     the mid ground. Canvas hex is CSP-hashed in the FOUC head script — base.njk
     + VM general.json updated in the same ship.
     ========================================================================== */
  /* Core palette (mid-sage) */
  /* page background — mid sage (CSP-hashed) */
  /* post cells — one tier lighter than canvas */
  /* marked posts */
  /* th / h2 / modal headers — seed color, kept */
  /* was #fff — "stark white" (operator 2026-08-17); soft sage-white, same tone as $gr-cell */
  /* darkened for contrast on mid canvas */
  /* was red #b32424 — "out of place" (operator) */
}
html.theme_green, .theme_green {
  background: #adc2b4 none !important;
  color: #20261f !important;
}
html.theme_green, .theme_green {
  /* --- A. Canvas & page structure --- */
}
html.theme_green body, .theme_green body {
  background: #adc2b4 !important;
  color: #20261f;
}
html.theme_green #footer, .theme_green #footer {
  color: #54685a;
}
html.theme_green #news, .theme_green #news {
  background: #cfe0d2;
  border-color: #8aa28c;
  color: #20261f;
}
html.theme_green .hiddenThread, .theme_green .hiddenThread {
  background: #bcd0bd;
  border-color: #8aa28c;
}
html.theme_green .kCard .kBody,
html.theme_green #indexWrapper #indexLeft > div,
html.theme_green #indexWrapper #indexRight > div,
html.theme_green #subpageWrapper > div,
html.theme_green #redirect > div, .theme_green .kCard .kBody,
.theme_green #indexWrapper #indexLeft > div,
.theme_green #indexWrapper #indexRight > div,
.theme_green #subpageWrapper > div,
.theme_green #redirect > div {
  background-color: #cfe0d2;
  border-left-color: #8aa28c;
  border-right-color: #8aa28c;
  border-bottom-color: #8aa28c;
}
html.theme_green .mCard, .theme_green .mCard {
  background-color: #cfe0d2;
}
html.theme_green .mCard > h2, .theme_green .mCard > h2 {
  background: #317055;
  color: #fff;
}
html.theme_green h1, .theme_green h1 {
  color: #245240;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}
html.theme_green, .theme_green {
  /* board/thread title — green shade + soft dark edge (operator: jet-black was flat) */
}
html.theme_green #siteName, .theme_green #siteName {
  color: #245240;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}
html.theme_green, .theme_green {
  /* main site title — match h1 (operator: was still jetblack on the sage canvas) */
}
html.theme_green h2, html.theme_green h3, .theme_green h2, .theme_green h3 {
  color: #fff;
  background: #317055;
}
html.theme_green div.titlebar, .theme_green div.titlebar {
  background: #317055;
  color: #fff;
}
html.theme_green #cookieBanner, .theme_green #cookieBanner {
  background-color: #cfe0d2;
  border-bottom-color: #8aa28c;
  color: #20261f;
}
html.theme_green .unimportant, html.theme_green .unimportant *, .theme_green .unimportant, .theme_green .unimportant * {
  color: #99a699 !important;
}
html.theme_green progress, .theme_green progress {
  background: #bcd0bd;
}
html.theme_green progress::-webkit-progress-value, .theme_green progress::-webkit-progress-value {
  background: #2e8b57;
}
html.theme_green progress::-moz-progress-bar, .theme_green progress::-moz-progress-bar {
  background: #2e8b57;
}
html.theme_green *, .theme_green * {
  scrollbar-color: #8aa28c #c9d8cb;
}
html.theme_green hr, .theme_green hr {
  border-color: #8aa28c;
}
html.theme_green ::selection, .theme_green ::selection {
  background: #d5e3d8;
  color: #000;
}
html.theme_green, .theme_green {
  /* --- B. Navigation & menus --- */
}
html.theme_green #topNav, .theme_green #topNav {
  background: transparent;
}
html.theme_green #topNav.fixed, html.theme_green #topNav.active, .theme_green #topNav.fixed, .theme_green #topNav.active {
  background: #c9d8cb;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
}
html.theme_green .navLinkSpan, .theme_green .navLinkSpan {
  color: #1f5c40;
}
html.theme_green .divPages, html.theme_green #divPages, .theme_green .divPages, .theme_green #divPages {
  border-color: #8aa28c;
}
html.theme_green .extraMenu a, .theme_green .extraMenu a {
  color: #20261f;
  text-decoration: none;
}
html.theme_green .extraMenu div:hover, html.theme_green .hideMenu div:hover, .theme_green .extraMenu div:hover, .theme_green .hideMenu div:hover {
  background: #bcd0bd;
  color: #000;
}
html.theme_green .extraMenu, html.theme_green .hideMenu, .theme_green .extraMenu, .theme_green .hideMenu {
  border-color: #1f5c40;
}
html.theme_green, .theme_green {
  /* --- C. Post cells & thread view --- */
}
html.theme_green .topBoards a, html.theme_green .innerPost, html.theme_green .markedPost, html.theme_green .floatingMenu, .theme_green .topBoards a, .theme_green .innerPost, .theme_green .markedPost, .theme_green .floatingMenu {
  background: #d5e3d8;
}
html.theme_green #watchedMenu .watchedCellLabel a, .theme_green #watchedMenu .watchedCellLabel a {
  color: #1f5c40;
}
html.theme_green, .theme_green {
  /* watched-threads menu links */
}
html.theme_green .markedPost, .theme_green .markedPost {
  background: #c8dac9;
}
html.theme_green .markedPost, html.theme_green div.postCell:target .innerPost, .theme_green .markedPost, .theme_green div.postCell:target .innerPost {
  outline-color: #1f5c40;
}
html.theme_green .quoteTooltip > div, .theme_green .quoteTooltip > div {
  border-color: #1f5c40;
}
html.theme_green .uploadDetails, .theme_green .uploadDetails {
  color: #333;
}
html.theme_green .innerPost .expandLabel, html.theme_green .innerPost .collapseLabel, .theme_green .innerPost .expandLabel, .theme_green .innerPost .collapseLabel {
  background: #d5e3d8;
  color: #1a2418;
}
html.theme_green .markedPost .expandLabel, html.theme_green .markedPost .collapseLabel, .theme_green .markedPost .expandLabel, .theme_green .markedPost .collapseLabel {
  background: #c8dac9;
  color: #1a2418;
}
html.theme_green .innerOP .expandLabel, html.theme_green .innerOP .collapseLabel, .theme_green .innerOP .expandLabel, .theme_green .innerOP .collapseLabel {
  background: #dde9de;
  color: #54685a;
}
html.theme_green .innerPost .bottomGradient, .theme_green .innerPost .bottomGradient {
  background: linear-gradient(transparent, #d5e3d8);
}
html.theme_green .innerOP .bottomGradient, .theme_green .innerOP .bottomGradient {
  background: linear-gradient(transparent, #dde9de);
}
html.theme_green, .theme_green {
  /* upload/selected cells — soft sage-white, one tier lighter than $gr-panel (operator: pure #fff was stark) */
}
html.theme_green .innerPost .panelUploads .uploadCell,
html.theme_green .markedPost .panelUploads .uploadCell, .theme_green .innerPost .panelUploads .uploadCell,
.theme_green .markedPost .panelUploads .uploadCell {
  background: #ecf2ec;
  border: 1px solid #8aa28c;
}
html.theme_green .innerOP .panelUploads .uploadCell,
html.theme_green #selectedDiv .selectedCell,
html.theme_green #selectedDivQr .selectedCell, .theme_green .innerOP .panelUploads .uploadCell,
.theme_green #selectedDiv .selectedCell,
.theme_green #selectedDivQr .selectedCell {
  background: #ecf2ec;
  border: 1px solid #8aa28c;
}
html.theme_green .labelId, .theme_green .labelId {
  color: #fff;
}
html.theme_green, .theme_green {
  /* outline inherited from base _posting.scss */
}
html.theme_green .labelCreated, html.theme_green .relativeTime, html.theme_green .spanId, .theme_green .labelCreated, .theme_green .relativeTime, .theme_green .spanId {
  color: #54685a;
}
html.theme_green .linkName, .theme_green .linkName {
  color: #1f5c40;
  font-weight: bold;
}
html.theme_green .linkName:hover, .theme_green .linkName:hover {
  color: #cc3333;
}
html.theme_green .noEmailName, html.theme_green .noEmailName:hover, .theme_green .noEmailName, .theme_green .noEmailName:hover {
  color: #1f5c40;
}
html.theme_green .linkQuote, html.theme_green .linkSelf, .theme_green .linkQuote, .theme_green .linkSelf {
  color: #20261f !important;
}
html.theme_green .linkQuote:hover, html.theme_green .linkSelf:hover, .theme_green .linkQuote:hover, .theme_green .linkSelf:hover {
  color: #1d4a33 !important;
}
html.theme_green .labelSubject, .theme_green .labelSubject {
  color: #2d6a4f;
  font-weight: bold;
}
html.theme_green .labelRole, .theme_green .labelRole {
  color: #ff0000;
}
html.theme_green .sage, html.theme_green .bumpLockIndicator, .theme_green .sage, .theme_green .bumpLockIndicator {
  color: #cc3333;
}
html.theme_green .divBanMessage, .theme_green .divBanMessage {
  color: #d10000;
}
html.theme_green .contentOmissionIndicator, .theme_green .contentOmissionIndicator {
  color: #54685a;
}
html.theme_green .labelOmission, .theme_green .labelOmission {
  color: #54685a;
}
html.theme_green .panelBacklinks a, .theme_green .panelBacklinks a {
  color: #1f5c40;
  font-style: italic;
}
html.theme_green .panelBacklinks a:hover, .theme_green .panelBacklinks a:hover {
  color: #1d4a33;
}
html.theme_green .quoteLink, html.theme_green .quoteLink:hover, .theme_green .quoteLink, .theme_green .quoteLink:hover {
  color: #1f5c40;
}
html.theme_green, .theme_green {
  /* --- D. Chan markup & spoilers --- */
}
html.theme_green .greenText, html.theme_green .quote, .theme_green .greenText, .theme_green .quote {
  color: #2e8b57;
}
html.theme_green .redText, .theme_green .redText {
  color: #cc3333;
  font-weight: bold;
}
html.theme_green .orangeText, .theme_green .orangeText {
  color: #d97706;
}
html.theme_green .brackets::after, html.theme_green .brackets::before, .theme_green .brackets::after, .theme_green .brackets::before {
  color: #20261f;
}
html.theme_green span.spoiler, .theme_green span.spoiler {
  background: #000;
  color: #000;
}
html.theme_green span.spoiler:hover, .theme_green span.spoiler:hover {
  color: #FFF;
  background-color: #000;
}
html.theme_green span.spoiler > .greenText, .theme_green span.spoiler > .greenText {
  color: #000 !important;
}
html.theme_green span.spoiler > .orangeText, .theme_green span.spoiler > .orangeText {
  color: #000 !important;
}
html.theme_green span.spoiler > a, .theme_green span.spoiler > a {
  color: #000 !important;
}
html.theme_green span.spoiler:hover > .greenText, .theme_green span.spoiler:hover > .greenText {
  color: #2e8b57 !important;
}
html.theme_green span.spoiler:hover > .orangeText, .theme_green span.spoiler:hover > .orangeText {
  color: #d97706 !important;
}
html.theme_green span.spoiler:hover > a, .theme_green span.spoiler:hover > a {
  color: #1f5c40 !important;
}
html.theme_green, .theme_green {
  /* --- E. Posting form (legacy table + .post-card) --- */
}
html.theme_green #postingForm th, html.theme_green .modalTableBody th, .theme_green #postingForm th, .theme_green .modalTableBody th {
  background: #317055;
  color: #fff;
}
html.theme_green, .theme_green {
  /* seed rule, text fixed for contrast */
}
html.theme_green input, html.theme_green textarea, html.theme_green select, .theme_green input, .theme_green textarea, .theme_green select {
  background: #ecf2ec;
  border: 1px solid #8aa28c;
  color: #000;
}
html.theme_green, .theme_green {
  /* Checkboxes/radios (posting form + settings + board options): native box in the
     sage tone, control fill in theme green. accent-color tints the checked state
     (supported Chromium/FF/Safari 12.1+); where unsupported it simply no-ops. */
}
html.theme_green input[type=checkbox], html.theme_green input[type=radio], .theme_green input[type=checkbox], .theme_green input[type=radio] {
  accent-color: #2e8b57;
}
html.theme_green input::placeholder, html.theme_green textarea::placeholder, .theme_green input::placeholder, .theme_green textarea::placeholder {
  color: #999 !important;
  opacity: 1 !important;
}
html.theme_green .postingInput, .theme_green .postingInput {
  border-color: #8aa28c;
}
html.theme_green .dropzone, .theme_green .dropzone {
  color: #555;
  border: 2px dashed #8aa28c;
  background-color: rgba(49, 112, 85, 0.1);
}
html.theme_green .dropzone:hover, .theme_green .dropzone:hover {
  color: #000;
  border-color: #1f5c40;
}
html.theme_green .dragAndDropDiv, html.theme_green .dragAndDropThumb, .theme_green .dragAndDropDiv, .theme_green .dragAndDropThumb {
  color: #000;
  background-color: rgba(255, 255, 255, 0.7);
}
html.theme_green .removeButton, .theme_green .removeButton {
  color: #999;
}
html.theme_green .removeButton:hover, .theme_green .removeButton:hover {
  color: #cc3333;
}
html.theme_green .fileBrowser, .theme_green .fileBrowser {
  background: none;
  color: #20261f;
}
html.theme_green #divOekaki, .theme_green #divOekaki {
  background-color: #fff;
}
html.theme_green, .theme_green {
  /* .post-card (redesigned 2026-08-16) */
}
html.theme_green .post-card, .theme_green .post-card {
  background: #dde9de;
  border-color: #8aa28c;
  color: #20261f;
}
html.theme_green .post-card .postingInput, html.theme_green .post-card textarea, html.theme_green .post-card select, .theme_green .post-card .postingInput, .theme_green .post-card textarea, .theme_green .post-card select {
  background: #ecf2ec;
  border-color: #8aa28c;
  color: #000;
}
html.theme_green .post-card .postingInput:focus, html.theme_green .post-card textarea:focus, html.theme_green .post-card select:focus, .theme_green .post-card .postingInput:focus, .theme_green .post-card textarea:focus, .theme_green .post-card select:focus {
  border-color: #1f5c40;
}
html.theme_green .post-card input::placeholder, html.theme_green .post-card textarea::placeholder, .theme_green .post-card input::placeholder, .theme_green .post-card textarea::placeholder {
  color: #999 !important;
  opacity: 1 !important;
}
html.theme_green .post-card .dropzone, .theme_green .post-card .dropzone {
  border: 2px dashed #8aa28c;
  color: #555;
  background: transparent;
}
html.theme_green .post-card .dropzone:hover, .theme_green .post-card .dropzone:hover {
  border-color: #1f5c40;
  color: #000;
}
html.theme_green .post-card .toggle-badge, .theme_green .post-card .toggle-badge {
  background: #bcd0bd;
  color: #1a2418;
}
html.theme_green .post-card .advanced-drawer, .theme_green .post-card .advanced-drawer {
  background: rgba(255, 255, 255, 0.6);
}
html.theme_green .post-card .drawer-toggle, .theme_green .post-card .drawer-toggle {
  color: #1f5c40;
}
html.theme_green .post-card .btn-submit, .theme_green .post-card .btn-submit {
  background: #317055;
  color: #fff;
}
html.theme_green .post-card .btn-submit:hover, .theme_green .post-card .btn-submit:hover {
  background: #245240;
}
html.theme_green .post-card .post-rules-panel, .theme_green .post-card .post-rules-panel {
  background: #ecf2ec;
  border-color: #8aa28c;
  color: #333;
}
html.theme_green .post-card .post-rules-panel a, .theme_green .post-card .post-rules-panel a {
  color: #1f5c40;
}
html.theme_green .post-card .rules-line, .theme_green .post-card .rules-line {
  color: #54685a;
}
html.theme_green .post-card .rules-line a, .theme_green .post-card .rules-line a {
  color: #1f5c40;
}
html.theme_green .post-card .captchaImage, .theme_green .post-card .captchaImage {
  background: #fff;
}
html.theme_green .post-card .captchaTimer, .theme_green .post-card .captchaTimer {
  color: #54685a;
  opacity: 1;
}
html.theme_green .post-card .no-cookie-link, .theme_green .post-card .no-cookie-link {
  color: #1f5c40;
}
html.theme_green, .theme_green {
  /* --- F. Modals & settings menu --- */
}
html.theme_green .modalPanel, .theme_green .modalPanel {
  background: rgba(0, 0, 0, 0.4);
}
html.theme_green #quick-reply table, .theme_green #quick-reply table {
  background-color: #dde9de;
  outline-color: #8aa28c;
}
html.theme_green #quick-reply td.recaptcha span, .theme_green #quick-reply td.recaptcha span {
  background: #fff;
  border-color: #ccc;
}
html.theme_green .modalHeader, html.theme_green #quick-reply .handle, .theme_green .modalHeader, .theme_green #quick-reply .handle {
  background: #317055;
  color: #fff;
}
html.theme_green .handle a, .theme_green .handle a {
  color: #fff;
}
html.theme_green .modalDecorationPanel, .theme_green .modalDecorationPanel {
  background: #bcd0bd;
  border-color: #8aa28c;
}
html.theme_green .modalInnerDecorationPanel, html.theme_green .post-table, .theme_green .modalInnerDecorationPanel, .theme_green .post-table {
  background-color: #dde9de;
}
html.theme_green .captchaTimer, .theme_green .captchaTimer {
  background: #dde9de;
  border-color: #999;
  color: #54685a;
}
html.theme_green .captchaImage, .theme_green .captchaImage {
  background-color: #fff;
  color: #000;
}
html.theme_green, .theme_green {
  /* Settings menu — full color table (2026-08-17): the base _settingsMenu.scss is
     dark-plum (light pink/purple text #e2d9ec etc.) and green previously overrode
     only 3 of its ~15 colored surfaces → "default light pink/purple text… clashes
     badly" (operator). Now every surface sits in the sage family, same tones as
     .post-card. (Specificity is automatic: every theme rule compiles prefixed with
     `html.theme_green`, so it beats the base's #settingsMenu-scoped rules — but keep
     the #settingsMenu prefix anyway, to stay scoped against this file's own generic
     input/a rules.) */
}
html.theme_green #settingsMenu, .theme_green #settingsMenu {
  background: #dde9de;
  color: #20261f;
  border-color: #8aa28c;
}
html.theme_green #settingsMenu > .header, .theme_green #settingsMenu > .header {
  background: #317055;
  color: #fff;
  border-bottom-color: #8aa28c;
}
html.theme_green #settingsMenu > div:nth-child(3), html.theme_green #settingsMenu > div:nth-child(4), .theme_green #settingsMenu > div:nth-child(3), .theme_green #settingsMenu > div:nth-child(4) {
  background: #dde9de;
  border-left-color: #8aa28c;
  border-right-color: #8aa28c;
  border-top-color: #8aa28c;
  border-bottom-color: #8aa28c;
}
html.theme_green #settingsMenu .settingsTab, .theme_green #settingsMenu .settingsTab {
  color: #54685a;
}
html.theme_green #settingsMenu .settingsTab:hover, html.theme_green #settingsMenu .settingsTab:focus, .theme_green #settingsMenu .settingsTab:hover, .theme_green #settingsMenu .settingsTab:focus {
  background: #cfe0d2;
  color: #20261f;
}
html.theme_green #settingsMenu #selectedTab, .theme_green #settingsMenu #selectedTab {
  background: #317055;
  color: #fff;
}
html.theme_green #settingsMenu .settingsSectionTitle, .theme_green #settingsMenu .settingsSectionTitle {
  color: #2d6a4f;
  border-bottom-color: #8aa28c;
}
html.theme_green #settingsMenu .settingName, .theme_green #settingsMenu .settingName {
  color: #20261f;
}
html.theme_green #settingsMenu .settingDesc, .theme_green #settingsMenu .settingDesc {
  color: #54685a;
}
html.theme_green #settingsMenu .settingsCheckbox, .theme_green #settingsMenu .settingsCheckbox {
  accent-color: #2e8b57;
}
html.theme_green, .theme_green {
  /* matches the posting-form checkbox rule */
}
html.theme_green #settingsMenu .saveButton, .theme_green #settingsMenu .saveButton {
  background: #317055;
  color: #fff;
}
html.theme_green #settingsMenu .saveButton:hover, .theme_green #settingsMenu .saveButton:hover {
  background: #245240;
}
html.theme_green #settingsMenu #newFilterPanel select, html.theme_green #settingsMenu #newFilterPanel input[type=text], .theme_green #settingsMenu #newFilterPanel select, .theme_green #settingsMenu #newFilterPanel input[type=text] {
  background: #ecf2ec;
  color: #20261f;
  border-color: #8aa28c;
}
html.theme_green #settingsMenu #newFilterPanel button, .theme_green #settingsMenu #newFilterPanel button {
  background: #cfe0d2;
  color: #20261f;
  border-color: #8aa28c;
}
html.theme_green #settingsMenu #newFilterPanel button:hover, .theme_green #settingsMenu #newFilterPanel button:hover {
  background: #bcd0bd;
}
html.theme_green #settingsMenu .existingFilterTypeLabel, html.theme_green #settingsMenu .existingFilterContentLabel, .theme_green #settingsMenu .existingFilterTypeLabel, .theme_green #settingsMenu .existingFilterContentLabel {
  color: #20261f;
}
html.theme_green #settingsMenu .filterDeleteButton, .theme_green #settingsMenu .filterDeleteButton {
  color: #54685a;
}
html.theme_green #settingsMenu .filterDeleteButton:hover, .theme_green #settingsMenu .filterDeleteButton:hover {
  color: #cc3333;
}
html.theme_green #settingsMenu #themeSelector, html.theme_green #settingsMenu #cssInput, .theme_green #settingsMenu #themeSelector, .theme_green #settingsMenu #cssInput {
  background: #ecf2ec;
  color: #20261f;
  border-color: #8aa28c;
}
html.theme_green #closeSettingsMenuButton, .theme_green #closeSettingsMenuButton {
  color: #fff;
}
html.theme_green, .theme_green {
  /* sits on the green header bar */
}
html.theme_green .appealForm table tr th, html.theme_green table.modInfo tr th, .theme_green .appealForm table tr th, .theme_green table.modInfo tr th {
  background: #317055;
  color: #fff;
}
html.theme_green, .theme_green {
  /* --- G. Catalog view --- */
}
html.theme_green .catalogCell, .theme_green .catalogCell {
  background: rgba(49, 112, 85, 0.08);
}
html.theme_green .catalogCell .labelSubject, .theme_green .catalogCell .labelSubject {
  color: #2d6a4f;
}
html.theme_green .catalogCell:hover, .theme_green .catalogCell:hover {
  background: #bcd0bd;
}
html.theme_green .catalogCell:hover .divMessage, html.theme_green .catalogCell:focus .divMessage, .theme_green .catalogCell:hover .divMessage, .theme_green .catalogCell:focus .divMessage {
  background: #dde9de;
  outline-color: #8aa28c;
}
html.theme_green .threadStats, .theme_green .threadStats {
  color: #54685a;
}
html.theme_green .linkThumb img, .theme_green .linkThumb img {
  border-color: #8aa28c;
}
html.theme_green, .theme_green {
  /* --- H. Front page / boards list --- */
}
html.theme_green #divLatestPosts .latestPostCell, .theme_green #divLatestPosts .latestPostCell {
  background: #bcd0bd;
}
html.theme_green #divLatestImages img, .theme_green #divLatestImages img {
  border-color: #999;
}
html.theme_green #boardsCellHeader span, .theme_green #boardsCellHeader span {
  background: #bcd0bd;
  color: #20261f;
  border-color: #8aa28c;
}
html.theme_green .boardsCell:nth-of-type(2n+1) span, .theme_green .boardsCell:nth-of-type(2n+1) span {
  background-color: rgba(49, 112, 85, 0.12);
}
html.theme_green, .theme_green {
  /* --- I. Code highlighting (highlight.js — light green) --- */
}
html.theme_green .hljs, .theme_green .hljs {
  display: block;
  overflow-x: auto;
  background: #e0ebe1;
  color: #333;
  padding: 0.5em;
}
html.theme_green .hljs-comment, html.theme_green .hljs-quote, .theme_green .hljs-comment, .theme_green .hljs-quote {
  color: #8a9a8a;
}
html.theme_green .hljs-keyword, html.theme_green .hljs-selector-tag, .theme_green .hljs-keyword, .theme_green .hljs-selector-tag {
  color: #317055;
}
html.theme_green .hljs-string, html.theme_green .hljs-symbol, html.theme_green .hljs-bullet, html.theme_green .hljs-addition, .theme_green .hljs-string, .theme_green .hljs-symbol, .theme_green .hljs-bullet, .theme_green .hljs-addition {
  color: #2e8b57;
}
html.theme_green .hljs-number, html.theme_green .hljs-built_in, html.theme_green .hljs-literal, html.theme_green .hljs-type, html.theme_green .hljs-params, html.theme_green .hljs-meta, html.theme_green .hljs-link, html.theme_green .hljs-attribute, .theme_green .hljs-number, .theme_green .hljs-built_in, .theme_green .hljs-literal, .theme_green .hljs-type, .theme_green .hljs-params, .theme_green .hljs-meta, .theme_green .hljs-link, .theme_green .hljs-attribute {
  color: #b26a00;
}
html.theme_green .hljs-title, html.theme_green .hljs-section, .theme_green .hljs-title, .theme_green .hljs-section {
  color: #1f5c40;
}
html.theme_green .hljs-variable, html.theme_green .hljs-template-variable, html.theme_green .hljs-tag, html.theme_green .hljs-name, html.theme_green .hljs-selector-id, html.theme_green .hljs-selector-class, html.theme_green .hljs-regexp, html.theme_green .hljs-deletion, .theme_green .hljs-variable, .theme_green .hljs-template-variable, .theme_green .hljs-tag, .theme_green .hljs-name, .theme_green .hljs-selector-id, .theme_green .hljs-selector-class, .theme_green .hljs-regexp, .theme_green .hljs-deletion {
  color: #c0392b;
}
html.theme_green, .theme_green {
  /* --- J. Badges, indicators & misc --- */
}
html.theme_green .radiospan, .theme_green .radiospan {
  color: #fff;
  background-color: #d10000;
}
html.theme_green .dot, .theme_green .dot {
  background-color: orange;
}
html.theme_green .medals .text, .theme_green .medals .text {
  background-color: #317055;
  color: #fff;
}
html.theme_green .mobileAlert, .theme_green .mobileAlert {
  color: #d10000;
}
html.theme_green .linkFollow, .theme_green .linkFollow {
  color: #2e8b57;
}
html.theme_green .linkFollowAlt, .theme_green .linkFollowAlt {
  color: #cc3333;
}
html.theme_green .watchedNotification::before, .theme_green .watchedNotification::before {
  color: #cc3333;
}
html.theme_green #boardContentLinks, .theme_green #boardContentLinks {
  color: #54685a;
}
html.theme_green #reportActions, .theme_green #reportActions {
  background-color: #bcd0bd;
}
html.theme_green .contentAction, .theme_green .contentAction {
  background-color: #dde9de;
  border-color: #8aa28c;
}
html.theme_green #labelCaptchaId, .theme_green #labelCaptchaId {
  color: #ff0000;
}
html.theme_green #solved, .theme_green #solved {
  color: #2e8b57;
}
html.theme_green a, html.theme_green .reportdeletebuttons, .theme_green a, .theme_green .reportdeletebuttons {
  color: #1f5c40;
}
html.theme_green a:hover, .theme_green a:hover {
  color: #1d4a33;
}
html.theme_green h2 a:link, .theme_green h2 a:link {
  color: #fff;
}
html.theme_green h2 a:visited, .theme_green h2 a:visited {
  color: #bfe0cc;
}

html.theme_darkreader, .theme_darkreader {
  color-scheme: dark;
  background: rgb(34, 36, 38);
  color: #e8e6e3;
  /* ==========================================================================
     Dark Reader - Complete Theme (standardization pass 2026-08-17)
     Palette carried over from the original (Dark Reader export): gray canvas,
     navy headers/accents. Every colorable element in theme-inventory.md is
     now defined explicitly.
     ========================================================================== */
  /* Core palette */
  /* page background (frozen — CSP-hashed) */
  /* post cells / floating menus / hover */
  /* static panels / settings body */
  /* h2 / modal headers / form th */
  /* input fields */
  /* structural borders */
  /* soft borders (upload cells etc.) */
  /* omission labels / placeholders */
}
html.theme_darkreader, .theme_darkreader {
  background: rgb(34, 36, 38) none !important;
  color: #e8e6e3 !important;
}
html.theme_darkreader, .theme_darkreader {
  /* --- A. Canvas & page structure --- */
}
html.theme_darkreader body, .theme_darkreader body {
  background: rgb(34, 36, 38) !important;
  color: #e8e6e3;
}
html.theme_darkreader #footer, .theme_darkreader #footer {
  color: rgb(168, 160, 149);
}
html.theme_darkreader #news, .theme_darkreader #news {
  background: rgb(43, 47, 49);
  color: #e8e6e3;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader .hiddenThread, .theme_darkreader .hiddenThread {
  background-color: rgb(43, 47, 49);
  background-image: none;
  border-color: rgb(63, 65, 144);
}
html.theme_darkreader .kCard .kBody,
html.theme_darkreader #indexWrapper #indexLeft > div,
html.theme_darkreader #indexWrapper #indexRight > div,
html.theme_darkreader #subpageWrapper > div,
html.theme_darkreader #redirect > div, .theme_darkreader .kCard .kBody,
.theme_darkreader #indexWrapper #indexLeft > div,
.theme_darkreader #indexWrapper #indexRight > div,
.theme_darkreader #subpageWrapper > div,
.theme_darkreader #redirect > div {
  background-color: rgb(43, 47, 49);
  background-image: none;
  border-left-color: rgb(63, 65, 144);
  border-right-color: rgb(63, 65, 144);
  border-bottom-color: rgb(63, 65, 144);
}
html.theme_darkreader .mCard, .theme_darkreader .mCard {
  background-color: rgb(43, 47, 49);
}
html.theme_darkreader .mCard > h2, .theme_darkreader .mCard > h2 {
  background: rgb(39, 41, 90);
  color: #e8e6e3;
}
html.theme_darkreader h2, html.theme_darkreader h3, .theme_darkreader h2, .theme_darkreader h3 {
  color: #e8e6e3;
  background-color: rgb(39, 41, 90);
}
html.theme_darkreader div.titlebar, .theme_darkreader div.titlebar {
  background: rgb(39, 41, 90);
  color: #e8e6e3;
}
html.theme_darkreader #siteName, .theme_darkreader #siteName {
  color: rgb(121, 159, 225);
}
html.theme_darkreader, .theme_darkreader {
  /* main site title — theme's signature accent (was falling back to base body text) */
}
html.theme_darkreader #cookieBanner, .theme_darkreader #cookieBanner {
  background-color: rgb(43, 47, 49);
  border-bottom-color: rgb(72, 78, 81);
  color: #e8e6e3;
}
html.theme_darkreader .unimportant, html.theme_darkreader .unimportant *, .theme_darkreader .unimportant, .theme_darkreader .unimportant * {
  color: rgb(168, 160, 149) !important;
}
html.theme_darkreader progress, .theme_darkreader progress {
  background: rgb(43, 47, 49);
}
html.theme_darkreader progress::-webkit-progress-value, .theme_darkreader progress::-webkit-progress-value {
  background: rgb(121, 255, 255);
}
html.theme_darkreader progress::-moz-progress-bar, .theme_darkreader progress::-moz-progress-bar {
  background: rgb(121, 255, 255);
}
html.theme_darkreader *, .theme_darkreader * {
  scrollbar-color: #454a4d #202324;
}
html.theme_darkreader hr, .theme_darkreader hr {
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader ::selection, .theme_darkreader ::selection {
  background: rgb(121, 159, 225);
  color: rgb(34, 36, 38);
}
html.theme_darkreader, .theme_darkreader {
  /* --- B. Navigation & menus --- */
}
html.theme_darkreader #topNav, .theme_darkreader #topNav {
  background: transparent;
}
html.theme_darkreader #topNav.fixed, .theme_darkreader #topNav.fixed {
  position: fixed;
  background: rgb(34, 36, 38);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15) !important;
}
html.theme_darkreader #topNav.active, .theme_darkreader #topNav.active {
  background: rgb(34, 36, 38);
}
html.theme_darkreader .navLinkSpan, .theme_darkreader .navLinkSpan {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .divPages, html.theme_darkreader #divPages, .theme_darkreader .divPages, .theme_darkreader #divPages {
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader .extraMenu a, .theme_darkreader .extraMenu a {
  color: #e8e6e3;
  text-decoration: none;
}
html.theme_darkreader .extraMenu div:hover, html.theme_darkreader .hideMenu div:hover, .theme_darkreader .extraMenu div:hover, .theme_darkreader .hideMenu div:hover {
  background-color: rgb(43, 47, 49);
  background-image: none;
  color: #e8e6e3;
}
html.theme_darkreader .extraMenu, html.theme_darkreader .hideMenu, .theme_darkreader .extraMenu, .theme_darkreader .hideMenu {
  border-color: rgb(63, 65, 144);
}
html.theme_darkreader, .theme_darkreader {
  /* --- C. Post cells & thread view --- */
}
html.theme_darkreader .floatingMenu, html.theme_darkreader .innerPost, html.theme_darkreader .markedPost, html.theme_darkreader .topBoards a, .theme_darkreader .floatingMenu, .theme_darkreader .innerPost, .theme_darkreader .markedPost, .theme_darkreader .topBoards a {
  background-color: rgb(50, 50, 83);
  background-image: none;
}
html.theme_darkreader #watchedMenu .watchedCellLabel a, .theme_darkreader #watchedMenu .watchedCellLabel a {
  color: rgb(121, 159, 225);
}
html.theme_darkreader, .theme_darkreader {
  /* watched-threads menu links */
}
html.theme_darkreader .markedPost, html.theme_darkreader div.postCell:target .innerPost, .theme_darkreader .markedPost, .theme_darkreader div.postCell:target .innerPost {
  outline-color: rgb(121, 159, 225);
}
html.theme_darkreader .quoteTooltip > div, .theme_darkreader .quoteTooltip > div {
  border-color: rgb(63, 65, 144);
}
html.theme_darkreader .uploadDetails, .theme_darkreader .uploadDetails {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .innerOP .collapseLabel, html.theme_darkreader .innerOP .expandLabel, .theme_darkreader .innerOP .collapseLabel, .theme_darkreader .innerOP .expandLabel {
  background-color: rgb(34, 36, 38);
  background-image: none;
  color: rgb(168, 160, 149);
}
html.theme_darkreader .innerPost .collapseLabel, html.theme_darkreader .innerPost .expandLabel,
html.theme_darkreader .markedPost .collapseLabel, html.theme_darkreader .markedPost .expandLabel, .theme_darkreader .innerPost .collapseLabel, .theme_darkreader .innerPost .expandLabel,
.theme_darkreader .markedPost .collapseLabel, .theme_darkreader .markedPost .expandLabel {
  background-color: rgb(50, 50, 83);
  background-image: none;
  color: #e8e6e3;
}
html.theme_darkreader .innerPost .bottomGradient, .theme_darkreader .innerPost .bottomGradient {
  background-color: rgba(0, 0, 0, 0);
  background-image: linear-gradient(rgba(0, 0, 0, 0), rgb(50, 50, 83));
}
html.theme_darkreader .innerOP .bottomGradient, .theme_darkreader .innerOP .bottomGradient {
  background-color: rgba(0, 0, 0, 0);
  background-image: linear-gradient(rgba(0, 0, 0, 0), rgb(34, 36, 38));
}
html.theme_darkreader .innerPost .panelUploads .uploadCell, html.theme_darkreader .markedPost .panelUploads .uploadCell, .theme_darkreader .innerPost .panelUploads .uploadCell, .theme_darkreader .markedPost .panelUploads .uploadCell {
  background-color: rgb(50, 50, 83);
  background-image: none;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader .innerOP .panelUploads .uploadCell,
html.theme_darkreader #selectedDiv .selectedCell,
html.theme_darkreader #selectedDivQr .selectedCell, .theme_darkreader .innerOP .panelUploads .uploadCell,
.theme_darkreader #selectedDiv .selectedCell,
.theme_darkreader #selectedDivQr .selectedCell {
  background-color: rgb(43, 47, 49);
  background-image: none;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader, .theme_darkreader {
  /* Badge backgrounds are inline per-poster hashes (any hue — light yellow-greens,
     pinks, tans). Light fill + solid dark outline stays readable on all of them;
     the old light-gray-with-no-shadow died on green/pink/tan badges. */
}
html.theme_darkreader .labelId, .theme_darkreader .labelId {
  color: #fff;
  opacity: 0.85;
}
html.theme_darkreader, .theme_darkreader {
  /* outline inherited from base _posting.scss */
}
html.theme_darkreader .labelCreated, html.theme_darkreader .relativeTime, html.theme_darkreader .spanId, .theme_darkreader .labelCreated, .theme_darkreader .relativeTime, .theme_darkreader .spanId {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .linkName, .theme_darkreader .linkName {
  color: rgb(92, 136, 214);
  font-weight: bold;
}
html.theme_darkreader .linkName:hover, .theme_darkreader .linkName:hover {
  color: rgb(163, 192, 240);
}
html.theme_darkreader .noEmailName, html.theme_darkreader .noEmailName:hover, .theme_darkreader .noEmailName, .theme_darkreader .noEmailName:hover {
  color: rgb(92, 136, 214);
}
html.theme_darkreader .linkQuote, html.theme_darkreader .linkSelf, .theme_darkreader .linkQuote, .theme_darkreader .linkSelf {
  color: #e8e6e3 !important;
}
html.theme_darkreader .linkQuote:hover, html.theme_darkreader .linkSelf:hover, .theme_darkreader .linkQuote:hover, .theme_darkreader .linkSelf:hover {
  color: rgb(163, 192, 240) !important;
}
html.theme_darkreader .labelSubject, .theme_darkreader .labelSubject {
  color: rgb(209, 71, 71);
}
html.theme_darkreader .labelRole, .theme_darkreader .labelRole {
  color: rgb(245, 84, 89);
}
html.theme_darkreader .sage, html.theme_darkreader .bumpLockIndicator, .theme_darkreader .sage, .theme_darkreader .bumpLockIndicator {
  color: rgb(245, 84, 89);
}
html.theme_darkreader .divBanMessage, .theme_darkreader .divBanMessage {
  color: rgb(245, 84, 89);
}
html.theme_darkreader .contentOmissionIndicator, .theme_darkreader .contentOmissionIndicator {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .labelOmission, .theme_darkreader .labelOmission {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .panelBacklinks a, .theme_darkreader .panelBacklinks a {
  color: rgb(168, 160, 149);
  font-style: normal;
}
html.theme_darkreader .panelBacklinks a:hover, .theme_darkreader .panelBacklinks a:hover {
  color: rgb(121, 159, 225);
}
html.theme_darkreader .quoteLink, html.theme_darkreader .quoteLink:hover, .theme_darkreader .quoteLink, .theme_darkreader .quoteLink:hover {
  color: rgb(245, 84, 89);
}
html.theme_darkreader, .theme_darkreader {
  /* --- D. Chan markup & spoilers --- */
}
html.theme_darkreader .greenText, html.theme_darkreader .quote, .theme_darkreader .greenText, .theme_darkreader .quote {
  color: rgb(121, 255, 255);
}
html.theme_darkreader .redText, .theme_darkreader .redText {
  color: rgb(245, 84, 89);
}
html.theme_darkreader .orangeText, .theme_darkreader .orangeText {
  color: rgb(255, 107, 47);
}
html.theme_darkreader .brackets::after, html.theme_darkreader .brackets::before, .theme_darkreader .brackets::after, .theme_darkreader .brackets::before {
  color: #e8e6e3;
}
html.theme_darkreader span.spoiler, .theme_darkreader span.spoiler {
  background: rgb(43, 47, 49);
  color: rgb(43, 47, 49);
}
html.theme_darkreader span.spoiler:hover, .theme_darkreader span.spoiler:hover {
  color: #e8e6e3;
}
html.theme_darkreader span.spoiler > .greenText, .theme_darkreader span.spoiler > .greenText {
  color: rgb(43, 47, 49) !important;
}
html.theme_darkreader span.spoiler > .orangeText, .theme_darkreader span.spoiler > .orangeText {
  color: rgb(43, 47, 49) !important;
}
html.theme_darkreader span.spoiler > a, .theme_darkreader span.spoiler > a {
  color: rgb(43, 47, 49) !important;
}
html.theme_darkreader span.spoiler:hover > .greenText, .theme_darkreader span.spoiler:hover > .greenText {
  color: rgb(121, 255, 255) !important;
}
html.theme_darkreader span.spoiler:hover > .orangeText, .theme_darkreader span.spoiler:hover > .orangeText {
  color: rgb(255, 107, 47) !important;
}
html.theme_darkreader span.spoiler:hover > a, .theme_darkreader span.spoiler:hover > a {
  color: rgb(121, 159, 225) !important;
}
html.theme_darkreader, .theme_darkreader {
  /* --- E. Posting form (legacy table + .post-card) --- */
}
html.theme_darkreader #postingForm th, html.theme_darkreader .modalTableBody th, .theme_darkreader #postingForm th, .theme_darkreader .modalTableBody th {
  color: #e8e6e3;
  background-color: rgb(39, 41, 90);
}
html.theme_darkreader input, html.theme_darkreader textarea, html.theme_darkreader select, html.theme_darkreader button, .theme_darkreader input, .theme_darkreader textarea, .theme_darkreader select, .theme_darkreader button {
  background-color: #181a1b;
  border-color: rgb(72, 78, 81);
  color: #e8e6e3;
}
html.theme_darkreader input::placeholder, html.theme_darkreader textarea::placeholder, .theme_darkreader input::placeholder, .theme_darkreader textarea::placeholder {
  color: rgb(168, 160, 149) !important;
  opacity: 1 !important;
}
html.theme_darkreader .postingInput, .theme_darkreader .postingInput {
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader .dropzone, .theme_darkreader .dropzone {
  color: rgba(232, 230, 227, 0.5);
  border-color: rgba(99, 92, 81, 0.4);
  background-color: rgba(55, 60, 62, 0.5);
}
html.theme_darkreader .dropzone:hover, .theme_darkreader .dropzone:hover {
  color: #e8e6e3;
  border-color: rgb(63, 65, 144);
}
html.theme_darkreader .dragAndDropDiv, html.theme_darkreader .dragAndDropThumb, .theme_darkreader .dragAndDropDiv, .theme_darkreader .dragAndDropThumb {
  color: #e8e6e3;
  background-color: rgba(55, 60, 62, 0.5);
}
html.theme_darkreader .removeButton, .theme_darkreader .removeButton {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .removeButton:hover, .theme_darkreader .removeButton:hover {
  color: rgb(245, 84, 89);
}
html.theme_darkreader .fileBrowser, .theme_darkreader .fileBrowser {
  background: none;
  color: #e8e6e3;
}
html.theme_darkreader, .theme_darkreader {
  /* .post-card (redesigned 2026-08-16) */
}
html.theme_darkreader .post-card, .theme_darkreader .post-card {
  background: rgb(43, 47, 49);
  border-color: rgb(72, 78, 81);
  color: #e8e6e3;
}
html.theme_darkreader .post-card .postingInput, html.theme_darkreader .post-card textarea, html.theme_darkreader .post-card select, .theme_darkreader .post-card .postingInput, .theme_darkreader .post-card textarea, .theme_darkreader .post-card select {
  background-color: #181a1b;
  border-color: rgb(72, 78, 81);
  color: #e8e6e3;
}
html.theme_darkreader .post-card .postingInput:focus, html.theme_darkreader .post-card textarea:focus, html.theme_darkreader .post-card select:focus, .theme_darkreader .post-card .postingInput:focus, .theme_darkreader .post-card textarea:focus, .theme_darkreader .post-card select:focus {
  border-color: rgb(121, 159, 225);
}
html.theme_darkreader .post-card input::placeholder, html.theme_darkreader .post-card textarea::placeholder, .theme_darkreader .post-card input::placeholder, .theme_darkreader .post-card textarea::placeholder {
  color: rgb(168, 160, 149) !important;
  opacity: 1 !important;
}
html.theme_darkreader .post-card .dropzone, .theme_darkreader .post-card .dropzone {
  border-color: rgb(72, 78, 81);
  color: rgba(232, 230, 227, 0.5);
  background: transparent;
}
html.theme_darkreader .post-card .dropzone:hover, .theme_darkreader .post-card .dropzone:hover {
  border-color: rgb(121, 159, 225);
  color: #e8e6e3;
}
html.theme_darkreader .post-card .toggle-badge, .theme_darkreader .post-card .toggle-badge {
  background: rgb(50, 50, 83);
  color: #e8e6e3;
}
html.theme_darkreader .post-card .advanced-drawer, .theme_darkreader .post-card .advanced-drawer {
  background: #181a1b;
}
html.theme_darkreader .post-card .drawer-toggle, .theme_darkreader .post-card .drawer-toggle {
  color: rgb(121, 159, 225);
}
html.theme_darkreader .post-card .btn-submit, .theme_darkreader .post-card .btn-submit {
  background: rgb(39, 41, 90);
  color: #e8e6e3;
}
html.theme_darkreader .post-card .btn-submit:hover, .theme_darkreader .post-card .btn-submit:hover {
  background: rgb(63, 65, 144);
}
html.theme_darkreader .post-card .post-rules-panel, .theme_darkreader .post-card .post-rules-panel {
  background: rgb(43, 47, 49);
  border-color: rgb(72, 78, 81);
  color: rgb(168, 160, 149);
}
html.theme_darkreader .post-card .post-rules-panel a, .theme_darkreader .post-card .post-rules-panel a {
  color: rgb(121, 159, 225);
}
html.theme_darkreader .post-card .rules-line, .theme_darkreader .post-card .rules-line {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .post-card .rules-line a, .theme_darkreader .post-card .rules-line a {
  color: rgb(121, 159, 225);
}
html.theme_darkreader .post-card .captchaImage, .theme_darkreader .post-card .captchaImage {
  background: rgb(43, 47, 49);
}
html.theme_darkreader .post-card .captchaTimer, .theme_darkreader .post-card .captchaTimer {
  color: rgb(168, 160, 149);
  opacity: 1;
}
html.theme_darkreader .post-card .no-cookie-link, .theme_darkreader .post-card .no-cookie-link {
  color: rgb(121, 159, 225);
}
html.theme_darkreader, .theme_darkreader {
  /* --- F. Modals & settings menu --- */
}
html.theme_darkreader .modalPanel, .theme_darkreader .modalPanel {
  background: rgba(0, 0, 0, 0.7);
}
html.theme_darkreader #quick-reply table, .theme_darkreader #quick-reply table {
  background-color: rgb(34, 36, 38);
  outline-color: rgb(63, 65, 144);
}
html.theme_darkreader #quick-reply td.recaptcha span, .theme_darkreader #quick-reply td.recaptcha span {
  background: #181a1b;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader .modalDecorationPanel, .theme_darkreader .modalDecorationPanel {
  background-color: rgb(50, 50, 83);
  background-image: none;
}
html.theme_darkreader .modalHeader, html.theme_darkreader #quick-reply .handle, .theme_darkreader .modalHeader, .theme_darkreader #quick-reply .handle {
  background-color: rgb(39, 41, 90);
  background-image: none;
  color: #e8e6e3;
}
html.theme_darkreader .modalInnerDecorationPanel, html.theme_darkreader .post-table, .theme_darkreader .modalInnerDecorationPanel, .theme_darkreader .post-table {
  background-color: rgb(34, 36, 38);
}
html.theme_darkreader .captchaTimer, .theme_darkreader .captchaTimer {
  background-color: rgb(34, 36, 38);
  background-image: none;
  border-color: rgb(140, 130, 115);
  color: rgb(168, 160, 149);
}
html.theme_darkreader .captchaImage, .theme_darkreader .captchaImage {
  background-color: rgb(39, 41, 90);
  color: #e8e6e3;
}
html.theme_darkreader, .theme_darkreader {
  /* Settings menu — full color table (2026-08-17): base _settingsMenu.scss is
     dark-plum; now every surface uses the Dark Reader palette (same surface set as green). */
}
html.theme_darkreader #settingsMenu, .theme_darkreader #settingsMenu {
  background-color: rgb(34, 36, 38);
  background-image: none;
  color: #e8e6e3;
  border-color: rgb(63, 65, 144);
}
html.theme_darkreader #settingsMenu > .header, .theme_darkreader #settingsMenu > .header {
  background-color: rgb(39, 41, 90);
  background-image: none;
  color: #e8e6e3;
  border-bottom-color: rgb(63, 65, 144);
}
html.theme_darkreader #settingsMenu > div:nth-child(3), .theme_darkreader #settingsMenu > div:nth-child(3) {
  border-left-color: rgb(63, 65, 144);
  background-color: rgb(34, 36, 38);
  background-image: none;
  border-bottom-color: rgb(63, 65, 144);
  border-right-color: rgb(63, 65, 144);
}
html.theme_darkreader #settingsMenu > div:nth-child(4), .theme_darkreader #settingsMenu > div:nth-child(4) {
  border-left-color: rgb(63, 65, 144);
  background-color: rgb(34, 36, 38);
  background-image: none;
  border-top-color: rgb(63, 65, 144);
  border-right-color: rgb(63, 65, 144);
}
html.theme_darkreader #settingsMenu .settingsTab, .theme_darkreader #settingsMenu .settingsTab {
  color: rgb(168, 160, 149);
}
html.theme_darkreader #settingsMenu .settingsTab:hover, html.theme_darkreader #settingsMenu .settingsTab:focus, .theme_darkreader #settingsMenu .settingsTab:hover, .theme_darkreader #settingsMenu .settingsTab:focus {
  background-color: rgb(50, 50, 83);
  color: #e8e6e3;
}
html.theme_darkreader #settingsMenu #selectedTab, .theme_darkreader #settingsMenu #selectedTab {
  background-color: rgb(39, 41, 90);
  color: #e8e6e3;
}
html.theme_darkreader #settingsMenu .settingsSectionTitle, .theme_darkreader #settingsMenu .settingsSectionTitle {
  color: rgb(168, 160, 149);
  border-bottom-color: rgb(72, 78, 81);
}
html.theme_darkreader #settingsMenu .settingName, .theme_darkreader #settingsMenu .settingName {
  color: #e8e6e3;
}
html.theme_darkreader #settingsMenu .settingDesc, .theme_darkreader #settingsMenu .settingDesc {
  color: rgb(168, 160, 149);
}
html.theme_darkreader #settingsMenu .settingsCheckbox, .theme_darkreader #settingsMenu .settingsCheckbox {
  accent-color: rgb(121, 159, 225);
}
html.theme_darkreader #settingsMenu .saveButton, .theme_darkreader #settingsMenu .saveButton {
  background-color: rgb(39, 41, 90);
  color: #e8e6e3;
}
html.theme_darkreader #settingsMenu .saveButton:hover, .theme_darkreader #settingsMenu .saveButton:hover {
  background-color: rgb(63, 65, 144);
}
html.theme_darkreader #settingsMenu #newFilterPanel select, html.theme_darkreader #settingsMenu #newFilterPanel input[type=text], .theme_darkreader #settingsMenu #newFilterPanel select, .theme_darkreader #settingsMenu #newFilterPanel input[type=text] {
  background-color: #181a1b;
  color: #e8e6e3;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader #settingsMenu #newFilterPanel button, .theme_darkreader #settingsMenu #newFilterPanel button {
  background-color: rgb(50, 50, 83);
  color: #e8e6e3;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader #settingsMenu #newFilterPanel button:hover, .theme_darkreader #settingsMenu #newFilterPanel button:hover {
  background-color: rgb(39, 41, 90);
}
html.theme_darkreader #settingsMenu .existingFilterTypeLabel, html.theme_darkreader #settingsMenu .existingFilterContentLabel, .theme_darkreader #settingsMenu .existingFilterTypeLabel, .theme_darkreader #settingsMenu .existingFilterContentLabel {
  color: rgb(168, 160, 149);
}
html.theme_darkreader #settingsMenu .filterDeleteButton, .theme_darkreader #settingsMenu .filterDeleteButton {
  color: rgb(168, 160, 149);
}
html.theme_darkreader #settingsMenu .filterDeleteButton:hover, .theme_darkreader #settingsMenu .filterDeleteButton:hover {
  color: rgb(245, 84, 89);
}
html.theme_darkreader #settingsMenu #themeSelector, html.theme_darkreader #settingsMenu #cssInput, .theme_darkreader #settingsMenu #themeSelector, .theme_darkreader #settingsMenu #cssInput {
  background-color: #181a1b;
  color: #e8e6e3;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader #closeSettingsMenuButton, .theme_darkreader #closeSettingsMenuButton {
  color: #e8e6e3;
}
html.theme_darkreader .appealForm table tr th, html.theme_darkreader table.modInfo tr th, .theme_darkreader .appealForm table tr th, .theme_darkreader table.modInfo tr th {
  background: rgb(39, 41, 90);
  color: #e8e6e3;
}
html.theme_darkreader, .theme_darkreader {
  /* --- G. Catalog view --- */
}
html.theme_darkreader .catalogCell, .theme_darkreader .catalogCell {
  background: rgba(255, 255, 255, 0.04);
}
html.theme_darkreader .catalogCell:hover, .theme_darkreader .catalogCell:hover {
  background-color: rgb(50, 50, 83);
  background-image: none;
}
html.theme_darkreader .catalogCell:focus .divMessage, html.theme_darkreader .catalogCell:hover .divMessage, .theme_darkreader .catalogCell:focus .divMessage, .theme_darkreader .catalogCell:hover .divMessage {
  background-color: rgb(50, 50, 83);
  background-image: none;
  outline-color: rgb(50, 50, 83);
}
html.theme_darkreader .catalogCell .labelSubject, .theme_darkreader .catalogCell .labelSubject {
  color: rgb(209, 71, 71);
}
html.theme_darkreader .threadStats, .theme_darkreader .threadStats {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .linkThumb img, .theme_darkreader .linkThumb img {
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader, .theme_darkreader {
  /* --- H. Front page / boards list --- */
}
html.theme_darkreader #divLatestPosts .latestPostCell, .theme_darkreader #divLatestPosts .latestPostCell {
  background-color: rgb(50, 50, 83);
  background-image: none;
}
html.theme_darkreader #divLatestImages img, .theme_darkreader #divLatestImages img {
  border-color: rgb(140, 130, 115);
}
html.theme_darkreader .boardlist, .theme_darkreader .boardlist {
  background: rgb(50, 50, 83);
}
html.theme_darkreader ul.boardlist li:hover, html.theme_darkreader ul.toplist li:hover, .theme_darkreader ul.boardlist li:hover, .theme_darkreader ul.toplist li:hover {
  background-color: rgb(43, 47, 49);
  background-image: none;
}
html.theme_darkreader #boardsCellHeader span, .theme_darkreader #boardsCellHeader span {
  background: rgb(43, 47, 49);
  color: #e8e6e3;
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader .boardsCell:nth-of-type(2n+1) span, .theme_darkreader .boardsCell:nth-of-type(2n+1) span {
  background-color: rgba(255, 255, 255, 0.04);
}
html.theme_darkreader, .theme_darkreader {
  /* --- I. Code highlighting (highlight.js) --- */
}
html.theme_darkreader .hljs, .theme_darkreader .hljs {
  display: block;
  overflow-x: auto;
  background: #181a1b;
  color: #e8e6e3;
  padding: 0.5em;
}
html.theme_darkreader .hljs-comment, html.theme_darkreader .hljs-quote, .theme_darkreader .hljs-comment, .theme_darkreader .hljs-quote {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .hljs-keyword, html.theme_darkreader .hljs-selector-tag, .theme_darkreader .hljs-keyword, .theme_darkreader .hljs-selector-tag {
  color: rgb(163, 192, 240);
}
html.theme_darkreader .hljs-string, html.theme_darkreader .hljs-symbol, html.theme_darkreader .hljs-bullet, html.theme_darkreader .hljs-addition, .theme_darkreader .hljs-string, .theme_darkreader .hljs-symbol, .theme_darkreader .hljs-bullet, .theme_darkreader .hljs-addition {
  color: rgb(121, 255, 255);
}
html.theme_darkreader .hljs-number, html.theme_darkreader .hljs-built_in, html.theme_darkreader .hljs-literal, html.theme_darkreader .hljs-type, html.theme_darkreader .hljs-params, html.theme_darkreader .hljs-meta, html.theme_darkreader .hljs-link, html.theme_darkreader .hljs-attribute, .theme_darkreader .hljs-number, .theme_darkreader .hljs-built_in, .theme_darkreader .hljs-literal, .theme_darkreader .hljs-type, .theme_darkreader .hljs-params, .theme_darkreader .hljs-meta, .theme_darkreader .hljs-link, .theme_darkreader .hljs-attribute {
  color: rgb(255, 107, 47);
}
html.theme_darkreader .hljs-title, html.theme_darkreader .hljs-section, .theme_darkreader .hljs-title, .theme_darkreader .hljs-section {
  color: rgb(92, 136, 214);
}
html.theme_darkreader .hljs-variable, html.theme_darkreader .hljs-template-variable, html.theme_darkreader .hljs-tag, html.theme_darkreader .hljs-name, html.theme_darkreader .hljs-selector-id, html.theme_darkreader .hljs-selector-class, html.theme_darkreader .hljs-regexp, html.theme_darkreader .hljs-deletion, .theme_darkreader .hljs-variable, .theme_darkreader .hljs-template-variable, .theme_darkreader .hljs-tag, .theme_darkreader .hljs-name, .theme_darkreader .hljs-selector-id, .theme_darkreader .hljs-selector-class, .theme_darkreader .hljs-regexp, .theme_darkreader .hljs-deletion {
  color: rgb(245, 84, 89);
}
html.theme_darkreader, .theme_darkreader {
  /* --- J. Badges, indicators & misc --- */
}
html.theme_darkreader .radiospan, .theme_darkreader .radiospan {
  color: #fff;
  background-color: rgb(245, 84, 89);
}
html.theme_darkreader .dot, .theme_darkreader .dot {
  background-color: rgb(255, 107, 47);
}
html.theme_darkreader .medals .text, .theme_darkreader .medals .text {
  background-color: rgb(39, 41, 90);
  color: #fff;
}
html.theme_darkreader .mobileAlert, .theme_darkreader .mobileAlert {
  color: rgb(245, 84, 89);
}
html.theme_darkreader .linkFollow, .theme_darkreader .linkFollow {
  color: rgb(121, 255, 255);
}
html.theme_darkreader .linkFollowAlt, .theme_darkreader .linkFollowAlt {
  color: rgb(245, 84, 89);
}
html.theme_darkreader .watchedNotification::before, .theme_darkreader .watchedNotification::before {
  color: rgb(245, 84, 89);
}
html.theme_darkreader #boardContentLinks, .theme_darkreader #boardContentLinks {
  color: rgb(168, 160, 149);
}
html.theme_darkreader #reportActions, .theme_darkreader #reportActions {
  background-color: rgb(43, 47, 49);
}
html.theme_darkreader .contentAction, .theme_darkreader .contentAction {
  background-color: rgb(43, 47, 49);
  border-color: rgb(72, 78, 81);
}
html.theme_darkreader #labelCaptchaId, .theme_darkreader #labelCaptchaId {
  color: rgb(245, 84, 89);
}
html.theme_darkreader #solved, .theme_darkreader #solved {
  color: rgb(121, 255, 255);
}
html.theme_darkreader a, html.theme_darkreader .reportdeletebuttons, .theme_darkreader a, .theme_darkreader .reportdeletebuttons {
  color: rgb(121, 159, 225);
}
html.theme_darkreader a:hover, .theme_darkreader a:hover {
  color: rgb(163, 192, 240);
}
html.theme_darkreader h2 a:link, .theme_darkreader h2 a:link {
  color: #e8e6e3;
}
html.theme_darkreader h2 a:visited, .theme_darkreader h2 a:visited {
  color: rgb(168, 160, 149);
}
html.theme_darkreader .handle a, .theme_darkreader .handle a {
  color: #e8e6e3;
}

html.theme_yotsubaB, .theme_yotsubaB {
  color-scheme: light;
  font-family: arial, helvetica, sans-serif;
  background: #eef2ff url(/.static/images/7pornw.png) top center repeat-x !important;
  font-size: 10pt !important;
  /* ==========================================================================
     Kohlchan-Yotsuba-B - Complete Theme (standardization pass 2026-08-17)
     Light legacy blue/lavender look. Original colors carried over; every
     colorable element in theme-inventory.md is now defined explicitly.
     Non-color identity (Tahoma titles, arrow margins, font sizes) kept below.
     ========================================================================== */
  /* Core palette */
  /* page background (frozen — CSP-hashed) + 7pornw.png strip from wrapper */
  /* post cells / panels */
  /* structural borders */
  /* form th / modal headers (purple) */
  /* h2 "mode" banner (orange — original identity) */
}
html.theme_yotsubaB, .theme_yotsubaB {
  background: #eef2ff none !important;
  color: #000000 !important;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- A. Canvas & page structure --- */
}
html.theme_yotsubaB body, .theme_yotsubaB body {
  background: #eef2ff !important;
  color: #000000;
}
html.theme_yotsubaB #footer, .theme_yotsubaB #footer {
  color: #555;
}
html.theme_yotsubaB #news, .theme_yotsubaB #news {
  background: #D6DAF0;
  border-color: #B7C5D9;
  color: #000000;
}
html.theme_yotsubaB .hiddenThread, .theme_yotsubaB .hiddenThread {
  background: #D6DAF0;
  border-color: #B7C5D9;
}
html.theme_yotsubaB .kCard .kBody,
html.theme_yotsubaB #indexWrapper #indexLeft > div,
html.theme_yotsubaB #indexWrapper #indexRight > div,
html.theme_yotsubaB #subpageWrapper > div,
html.theme_yotsubaB #redirect > div, .theme_yotsubaB .kCard .kBody,
.theme_yotsubaB #indexWrapper #indexLeft > div,
.theme_yotsubaB #indexWrapper #indexRight > div,
.theme_yotsubaB #subpageWrapper > div,
.theme_yotsubaB #redirect > div {
  background-color: #D6DAF0;
  border-left-color: #B7C5D9;
  border-right-color: #B7C5D9;
  border-bottom-color: #B7C5D9;
}
html.theme_yotsubaB .mCard, .theme_yotsubaB .mCard {
  background-color: #D6DAF0;
}
html.theme_yotsubaB .mCard > h2, .theme_yotsubaB .mCard > h2 {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB h2, .theme_yotsubaB h2 {
  background-color: #E04000;
  color: #fff;
}
html.theme_yotsubaB h3, .theme_yotsubaB h3 {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB div.titlebar, .theme_yotsubaB div.titlebar {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB #cookieBanner, .theme_yotsubaB #cookieBanner {
  background-color: #D6DAF0;
  border-bottom-color: #B7C5D9;
  color: #000000;
}
html.theme_yotsubaB .unimportant, html.theme_yotsubaB .unimportant *, .theme_yotsubaB .unimportant, .theme_yotsubaB .unimportant * {
  color: #888 !important;
}
html.theme_yotsubaB progress, .theme_yotsubaB progress {
  background: #eef2ff;
}
html.theme_yotsubaB progress::-webkit-progress-value, .theme_yotsubaB progress::-webkit-progress-value {
  background: #789922;
}
html.theme_yotsubaB progress::-moz-progress-bar, .theme_yotsubaB progress::-moz-progress-bar {
  background: #789922;
}
html.theme_yotsubaB *, .theme_yotsubaB * {
  scrollbar-color: #b7c5d9 #eef2ff;
}
html.theme_yotsubaB hr, .theme_yotsubaB hr {
  border-top: transparent;
  border-color: #B7C5D9 !important;
}
html.theme_yotsubaB ::selection, .theme_yotsubaB ::selection {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- B. Navigation & menus --- */
}
html.theme_yotsubaB #topNav, .theme_yotsubaB #topNav {
  box-shadow: none;
  background: transparent;
}
html.theme_yotsubaB #topNav.fixed, html.theme_yotsubaB #topNav.active, .theme_yotsubaB #topNav.fixed, .theme_yotsubaB #topNav.active {
  background: #eef2ff;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
}
html.theme_yotsubaB .navLinkSpan, .theme_yotsubaB .navLinkSpan {
  color: #34345c;
}
html.theme_yotsubaB .divPages, html.theme_yotsubaB #divPages, .theme_yotsubaB .divPages, .theme_yotsubaB #divPages {
  border-color: #B7C5D9;
}
html.theme_yotsubaB .extraMenu a, .theme_yotsubaB .extraMenu a {
  text-decoration: none;
  color: #34345c !important;
}
html.theme_yotsubaB .extraMenu div:hover, html.theme_yotsubaB .hideMenu div:hover, .theme_yotsubaB .extraMenu div:hover, .theme_yotsubaB .hideMenu div:hover {
  background: #D6DAF0;
  color: #000;
}
html.theme_yotsubaB .extraMenu, html.theme_yotsubaB .hideMenu, .theme_yotsubaB .extraMenu, .theme_yotsubaB .hideMenu {
  border-color: #000;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- C. Post cells & thread view --- */
}
html.theme_yotsubaB .innerPost, .theme_yotsubaB .innerPost {
  background-color: #D6DAF0; /* replies */
  border-right: 1px solid #B7C5D9;
  border-bottom: 1px solid #B7C5D9;
}
html.theme_yotsubaB .markedPost, .theme_yotsubaB .markedPost {
  border-top: none;
  border-left: none;
  border-right: 1px solid #B7C5D9;
  border-bottom: 1px solid #B7C5D9;
  background-color: #D6BAD0;
}
html.theme_yotsubaB .topBoards a, html.theme_yotsubaB .floatingMenu, .theme_yotsubaB .topBoards a, .theme_yotsubaB .floatingMenu {
  background: #D6DAF0;
}
html.theme_yotsubaB .floatingMenu, .theme_yotsubaB .floatingMenu {
  border: 1px solid #000 !important;
}
html.theme_yotsubaB #watchedMenu .watchedCellLabel a, .theme_yotsubaB #watchedMenu .watchedCellLabel a {
  color: #34345c;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* watched-threads menu links */
}
html.theme_yotsubaB .markedPost, html.theme_yotsubaB div.postCell:target .innerPost, .theme_yotsubaB .markedPost, .theme_yotsubaB div.postCell:target .innerPost {
  outline-color: #34345c;
}
html.theme_yotsubaB .quoteTooltip > div, .theme_yotsubaB .quoteTooltip > div {
  border-color: #34345c;
}
html.theme_yotsubaB .uploadDetails, .theme_yotsubaB .uploadDetails {
  background-color: transparent !important;
  color: #333;
}
html.theme_yotsubaB .innerPost .expandLabel, html.theme_yotsubaB .innerPost .collapseLabel, .theme_yotsubaB .innerPost .expandLabel, .theme_yotsubaB .innerPost .collapseLabel {
  background: #D6DAF0;
  color: #333;
}
html.theme_yotsubaB .markedPost .expandLabel, html.theme_yotsubaB .markedPost .collapseLabel, .theme_yotsubaB .markedPost .expandLabel, .theme_yotsubaB .markedPost .collapseLabel {
  background: #D6BAD0;
  color: #333;
}
html.theme_yotsubaB .innerOP .expandLabel, html.theme_yotsubaB .innerOP .collapseLabel, .theme_yotsubaB .innerOP .expandLabel, .theme_yotsubaB .innerOP .collapseLabel {
  background: #eef2ff;
  color: #555;
}
html.theme_yotsubaB .innerPost .bottomGradient, .theme_yotsubaB .innerPost .bottomGradient {
  background: linear-gradient(transparent, #D6DAF0);
}
html.theme_yotsubaB .innerOP .bottomGradient, .theme_yotsubaB .innerOP .bottomGradient {
  background: linear-gradient(transparent, #eef2ff);
}
html.theme_yotsubaB .innerPost .panelUploads .uploadCell,
html.theme_yotsubaB .markedPost .panelUploads .uploadCell, .theme_yotsubaB .innerPost .panelUploads .uploadCell,
.theme_yotsubaB .markedPost .panelUploads .uploadCell {
  float: left;
  margin: 5px 20px 20px 5px;
  background: transparent;
  border: none;
  text-align: left;
  display: inline-block;
  width: auto;
}
html.theme_yotsubaB .innerOP .panelUploads .uploadCell,
html.theme_yotsubaB #selectedDiv .selectedCell,
html.theme_yotsubaB #selectedDivQr .selectedCell, .theme_yotsubaB .innerOP .panelUploads .uploadCell,
.theme_yotsubaB #selectedDiv .selectedCell,
.theme_yotsubaB #selectedDivQr .selectedCell {
  background: #D6DAF0;
  border-color: #B7C5D9;
}
html.theme_yotsubaB .labelId, .theme_yotsubaB .labelId {
  color: #fff;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* outline inherited from base _posting.scss */
}
html.theme_yotsubaB .labelCreated, html.theme_yotsubaB .relativeTime, html.theme_yotsubaB .spanId, .theme_yotsubaB .labelCreated, .theme_yotsubaB .relativeTime, .theme_yotsubaB .spanId {
  color: #666;
}
html.theme_yotsubaB .linkName, html.theme_yotsubaB .linkName:hover, .theme_yotsubaB .linkName, .theme_yotsubaB .linkName:hover {
  color: #117743;
  font-weight: 700 !important;
}
html.theme_yotsubaB .noEmailName, html.theme_yotsubaB .noEmailName:hover, .theme_yotsubaB .noEmailName, .theme_yotsubaB .noEmailName:hover {
  color: #117743;
}
html.theme_yotsubaB .linkQuote, html.theme_yotsubaB .linkSelf, .theme_yotsubaB .linkQuote, .theme_yotsubaB .linkSelf {
  color: #000 !important;
}
html.theme_yotsubaB .linkQuote:hover, html.theme_yotsubaB .linkSelf:hover, .theme_yotsubaB .linkQuote:hover, .theme_yotsubaB .linkSelf:hover {
  font-weight: normal;
  color: #d00 !important;
}
html.theme_yotsubaB .labelSubject, .theme_yotsubaB .labelSubject {
  color: #0f0c5d;
  font-size: inherit !important;
}
html.theme_yotsubaB .labelRole, .theme_yotsubaB .labelRole {
  color: #ff0000;
}
html.theme_yotsubaB .sage, html.theme_yotsubaB .bumpLockIndicator, .theme_yotsubaB .sage, .theme_yotsubaB .bumpLockIndicator {
  color: #ff0000;
}
html.theme_yotsubaB .divBanMessage, .theme_yotsubaB .divBanMessage {
  color: #d10000;
}
html.theme_yotsubaB .contentOmissionIndicator, .theme_yotsubaB .contentOmissionIndicator {
  color: #888;
}
html.theme_yotsubaB .labelOmission, .theme_yotsubaB .labelOmission {
  color: #888;
}
html.theme_yotsubaB .panelBacklinks a, .theme_yotsubaB .panelBacklinks a {
  color: #34345c !important;
  font-style: normal !important;
}
html.theme_yotsubaB .panelBacklinks a:hover, .theme_yotsubaB .panelBacklinks a:hover {
  color: #d00 !important;
}
html.theme_yotsubaB .quoteLink, html.theme_yotsubaB .quoteLink:hover, .theme_yotsubaB .quoteLink, .theme_yotsubaB .quoteLink:hover {
  color: #d00;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* >>0000 */
  /* --- D. Chan markup & spoilers --- */
}
html.theme_yotsubaB .greenText, .theme_yotsubaB .greenText {
  color: #789922;
}
html.theme_yotsubaB .redText, .theme_yotsubaB .redText {
  color: #d00;
}
html.theme_yotsubaB .orangeText, .theme_yotsubaB .orangeText {
  color: #E04000;
}
html.theme_yotsubaB .brackets::after, html.theme_yotsubaB .brackets::before, .theme_yotsubaB .brackets::after, .theme_yotsubaB .brackets::before {
  color: #000000;
}
html.theme_yotsubaB span.spoiler, .theme_yotsubaB span.spoiler {
  background: #000;
  color: #000;
}
html.theme_yotsubaB span.spoiler:hover, .theme_yotsubaB span.spoiler:hover {
  color: #FFF;
  background-color: #000;
}
html.theme_yotsubaB span.spoiler > .greenText, .theme_yotsubaB span.spoiler > .greenText {
  color: #000 !important;
}
html.theme_yotsubaB span.spoiler > .orangeText, .theme_yotsubaB span.spoiler > .orangeText {
  color: #000 !important;
}
html.theme_yotsubaB span.spoiler > a, .theme_yotsubaB span.spoiler > a {
  color: #000 !important;
}
html.theme_yotsubaB span.spoiler:hover > .greenText, .theme_yotsubaB span.spoiler:hover > .greenText {
  color: #789922 !important;
}
html.theme_yotsubaB span.spoiler:hover > .orangeText, .theme_yotsubaB span.spoiler:hover > .orangeText {
  color: #E04000 !important;
}
html.theme_yotsubaB span.spoiler:hover > a, .theme_yotsubaB span.spoiler:hover > a {
  color: #34345c !important;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- E. Posting form (legacy table + .post-card) --- */
}
html.theme_yotsubaB #postingForm th, html.theme_yotsubaB .modalTableBody th, .theme_yotsubaB #postingForm th, .theme_yotsubaB .modalTableBody th {
  background-color: #9988EE;
  color: black;
  border: 1px solid black;
}
html.theme_yotsubaB input, html.theme_yotsubaB textarea, html.theme_yotsubaB select, .theme_yotsubaB input, .theme_yotsubaB textarea, .theme_yotsubaB select {
  background: #fff;
  border: 1px solid #B7C5D9;
  color: #000;
}
html.theme_yotsubaB input::placeholder, html.theme_yotsubaB textarea::placeholder, .theme_yotsubaB input::placeholder, .theme_yotsubaB textarea::placeholder {
  color: #999 !important;
  opacity: 1 !important;
}
html.theme_yotsubaB .postingInput, .theme_yotsubaB .postingInput {
  border-color: #B7C5D9;
}
html.theme_yotsubaB .dropzone, .theme_yotsubaB .dropzone {
  color: #555;
  border: 2px dashed #B7C5D9;
  background-color: rgba(214, 218, 240, 0.5);
}
html.theme_yotsubaB .dropzone:hover, .theme_yotsubaB .dropzone:hover {
  color: #000;
  border-color: #34345c;
}
html.theme_yotsubaB .dragAndDropDiv, html.theme_yotsubaB .dragAndDropThumb, .theme_yotsubaB .dragAndDropDiv, .theme_yotsubaB .dragAndDropThumb {
  color: #000;
  background-color: rgba(214, 218, 240, 0.5);
}
html.theme_yotsubaB .removeButton, .theme_yotsubaB .removeButton {
  color: #999;
}
html.theme_yotsubaB .removeButton:hover, .theme_yotsubaB .removeButton:hover {
  color: #d00;
}
html.theme_yotsubaB .fileBrowser, .theme_yotsubaB .fileBrowser {
  background: none;
  color: #000000;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* .post-card (redesigned 2026-08-16) */
}
html.theme_yotsubaB .post-card, .theme_yotsubaB .post-card {
  background: #D6DAF0;
  border-color: #B7C5D9;
  color: #000000;
}
html.theme_yotsubaB .post-card .postingInput, html.theme_yotsubaB .post-card textarea, html.theme_yotsubaB .post-card select, .theme_yotsubaB .post-card .postingInput, .theme_yotsubaB .post-card textarea, .theme_yotsubaB .post-card select {
  background: #fff;
  border-color: #B7C5D9;
  color: #000;
}
html.theme_yotsubaB .post-card .postingInput:focus, html.theme_yotsubaB .post-card textarea:focus, html.theme_yotsubaB .post-card select:focus, .theme_yotsubaB .post-card .postingInput:focus, .theme_yotsubaB .post-card textarea:focus, .theme_yotsubaB .post-card select:focus {
  border-color: #34345c;
}
html.theme_yotsubaB .post-card input::placeholder, html.theme_yotsubaB .post-card textarea::placeholder, .theme_yotsubaB .post-card input::placeholder, .theme_yotsubaB .post-card textarea::placeholder {
  color: #999 !important;
  opacity: 1 !important;
}
html.theme_yotsubaB .post-card .dropzone, .theme_yotsubaB .post-card .dropzone {
  border: 2px dashed #B7C5D9;
  color: #555;
  background: transparent;
}
html.theme_yotsubaB .post-card .dropzone:hover, .theme_yotsubaB .post-card .dropzone:hover {
  border-color: #34345c;
  color: #000;
}
html.theme_yotsubaB .post-card .toggle-badge, .theme_yotsubaB .post-card .toggle-badge {
  background: #fff;
  color: #000;
}
html.theme_yotsubaB .post-card .advanced-drawer, .theme_yotsubaB .post-card .advanced-drawer {
  background: rgba(255, 255, 255, 0.6);
}
html.theme_yotsubaB .post-card .drawer-toggle, .theme_yotsubaB .post-card .drawer-toggle {
  color: #34345c;
}
html.theme_yotsubaB .post-card .btn-submit, .theme_yotsubaB .post-card .btn-submit {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB .post-card .btn-submit:hover, .theme_yotsubaB .post-card .btn-submit:hover {
  background: #8877ee;
}
html.theme_yotsubaB .post-card .post-rules-panel, .theme_yotsubaB .post-card .post-rules-panel {
  background: #fff;
  border-color: #B7C5D9;
  color: #333;
}
html.theme_yotsubaB .post-card .post-rules-panel a, .theme_yotsubaB .post-card .post-rules-panel a {
  color: #34345c;
}
html.theme_yotsubaB .post-card .rules-line, .theme_yotsubaB .post-card .rules-line {
  color: #555;
}
html.theme_yotsubaB .post-card .rules-line a, .theme_yotsubaB .post-card .rules-line a {
  color: #34345c;
}
html.theme_yotsubaB .post-card .captchaImage, .theme_yotsubaB .post-card .captchaImage {
  background: #fff;
}
html.theme_yotsubaB .post-card .captchaTimer, .theme_yotsubaB .post-card .captchaTimer {
  color: #888;
  opacity: 1;
}
html.theme_yotsubaB .post-card .no-cookie-link, .theme_yotsubaB .post-card .no-cookie-link {
  color: #34345c;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- F. Modals & settings menu --- */
}
html.theme_yotsubaB .modalPanel, .theme_yotsubaB .modalPanel {
  background: rgba(0, 0, 0, 0.4);
}
html.theme_yotsubaB #quick-reply, .theme_yotsubaB #quick-reply {
  border: 1px solid #aaa;
}
html.theme_yotsubaB #quick-reply table, .theme_yotsubaB #quick-reply table {
  background-color: #eef2ff;
  outline-color: #aaa;
}
html.theme_yotsubaB #quick-reply td.recaptcha span, .theme_yotsubaB #quick-reply td.recaptcha span {
  background: #fff;
  border-color: #ccc;
}
html.theme_yotsubaB .modalHeader, html.theme_yotsubaB .modalTableBody th, .theme_yotsubaB .modalHeader, .theme_yotsubaB .modalTableBody th {
  background-color: #9988EE;
  color: black;
}
html.theme_yotsubaB .handle, html.theme_yotsubaB #qrclose, .theme_yotsubaB .handle, .theme_yotsubaB #qrclose {
  background-color: #98e !important;
  color: black !important;
}
html.theme_yotsubaB .handle a, .theme_yotsubaB .handle a {
  color: #000;
}
html.theme_yotsubaB .modalDecorationPanel, .theme_yotsubaB .modalDecorationPanel {
  background-color: #D6DAF0;
  border-color: #B7C5D9;
}
html.theme_yotsubaB .modalInnerDecorationPanel, html.theme_yotsubaB .post-table, .theme_yotsubaB .modalInnerDecorationPanel, .theme_yotsubaB .post-table {
  background-color: #eef2ff;
}
html.theme_yotsubaB .captchaTimer, .theme_yotsubaB .captchaTimer {
  background: #eef2ff;
  border-color: #999;
  color: #555;
}
html.theme_yotsubaB .captchaImage, .theme_yotsubaB .captchaImage {
  background-color: #fff;
  color: #000;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* Settings menu — full color table (2026-08-17): base _settingsMenu.scss is a
     dark-plum sheet (near-black #141118 inputs, purple save button, light-pink text)
     and only the frame rules below overrode it → unreadable on this light theme.
     Now every surface uses the yotsubaB palette; .settingDesc also gets a size bump
     (base 0.74rem was "too small and thin to read" — operator 2026-08-17). */
}
html.theme_yotsubaB #settingsMenu, .theme_yotsubaB #settingsMenu {
  background: #eef2ff;
  color: #000000;
  border-color: #aaa;
}
html.theme_yotsubaB #settingsMenu > .header, .theme_yotsubaB #settingsMenu > .header {
  background: #9988EE;
  color: #000;
  border-bottom-color: #aaa;
}
html.theme_yotsubaB #settingsMenu > div:nth-child(3), html.theme_yotsubaB #settingsMenu > div:nth-child(4), .theme_yotsubaB #settingsMenu > div:nth-child(3), .theme_yotsubaB #settingsMenu > div:nth-child(4) {
  background: #eef2ff;
  border-left-color: #B7C5D9;
  border-right-color: #B7C5D9;
  border-top-color: #B7C5D9;
  border-bottom-color: #B7C5D9;
}
html.theme_yotsubaB #settingsMenu .settingsTab, .theme_yotsubaB #settingsMenu .settingsTab {
  color: #34345c;
}
html.theme_yotsubaB #settingsMenu .settingsTab:hover, html.theme_yotsubaB #settingsMenu .settingsTab:focus, .theme_yotsubaB #settingsMenu .settingsTab:hover, .theme_yotsubaB #settingsMenu .settingsTab:focus {
  background: #D6DAF0;
  color: #000;
}
html.theme_yotsubaB #settingsMenu #selectedTab, .theme_yotsubaB #settingsMenu #selectedTab {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB #settingsMenu .settingsSectionTitle, .theme_yotsubaB #settingsMenu .settingsSectionTitle {
  color: #34345c;
  border-bottom-color: #B7C5D9;
}
html.theme_yotsubaB #settingsMenu .settingName, .theme_yotsubaB #settingsMenu .settingName {
  color: #000;
}
html.theme_yotsubaB #settingsMenu .settingDesc, .theme_yotsubaB #settingsMenu .settingDesc {
  color: #444;
  font-size: 0.8rem;
}
html.theme_yotsubaB #settingsMenu .settingsCheckbox, .theme_yotsubaB #settingsMenu .settingsCheckbox {
  accent-color: #9988EE;
}
html.theme_yotsubaB #settingsMenu .saveButton, .theme_yotsubaB #settingsMenu .saveButton {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB #settingsMenu .saveButton:hover, .theme_yotsubaB #settingsMenu .saveButton:hover {
  background: #8877ee;
}
html.theme_yotsubaB #settingsMenu #newFilterPanel select, html.theme_yotsubaB #settingsMenu #newFilterPanel input[type=text], .theme_yotsubaB #settingsMenu #newFilterPanel select, .theme_yotsubaB #settingsMenu #newFilterPanel input[type=text] {
  background: #fff;
  color: #000;
  border-color: #B7C5D9;
}
html.theme_yotsubaB #settingsMenu #newFilterPanel button, .theme_yotsubaB #settingsMenu #newFilterPanel button {
  background: #D6DAF0;
  color: #000;
  border-color: #B7C5D9;
}
html.theme_yotsubaB #settingsMenu #newFilterPanel button:hover, .theme_yotsubaB #settingsMenu #newFilterPanel button:hover {
  background: #c8d4e6;
}
html.theme_yotsubaB #settingsMenu .existingFilterTypeLabel, html.theme_yotsubaB #settingsMenu .existingFilterContentLabel, .theme_yotsubaB #settingsMenu .existingFilterTypeLabel, .theme_yotsubaB #settingsMenu .existingFilterContentLabel {
  color: #333;
}
html.theme_yotsubaB #settingsMenu .filterDeleteButton, .theme_yotsubaB #settingsMenu .filterDeleteButton {
  color: #555;
}
html.theme_yotsubaB #settingsMenu .filterDeleteButton:hover, .theme_yotsubaB #settingsMenu .filterDeleteButton:hover {
  color: #d00;
}
html.theme_yotsubaB #settingsMenu #themeSelector, html.theme_yotsubaB #settingsMenu #cssInput, .theme_yotsubaB #settingsMenu #themeSelector, .theme_yotsubaB #settingsMenu #cssInput {
  background: #fff;
  color: #000;
  border-color: #B7C5D9;
}
html.theme_yotsubaB #closeSettingsMenuButton, .theme_yotsubaB #closeSettingsMenuButton {
  color: #000;
}
html.theme_yotsubaB #closeSettingsMenuButton:hover, .theme_yotsubaB #closeSettingsMenuButton:hover {
  color: #fff;
}
html.theme_yotsubaB .appealForm table tr th, html.theme_yotsubaB table.modInfo tr th, .theme_yotsubaB .appealForm table tr th, .theme_yotsubaB table.modInfo tr th {
  background: #9988EE;
  color: #000;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- G. Catalog view --- */
}
html.theme_yotsubaB .catalogCell, .theme_yotsubaB .catalogCell {
  background-color: #B7C5D9;
}
html.theme_yotsubaB .catalogCell > .catalogHeader > .labelSubject, .theme_yotsubaB .catalogCell > .catalogHeader > .labelSubject {
  color: black;
}
html.theme_yotsubaB .catalogCell .labelSubject, .theme_yotsubaB .catalogCell .labelSubject {
  color: black;
}
html.theme_yotsubaB .catalogCell:hover, .theme_yotsubaB .catalogCell:hover {
  background-color: #c8d4e6;
}
html.theme_yotsubaB .catalogCell:hover .divMessage, html.theme_yotsubaB .catalogCell:focus .divMessage, .theme_yotsubaB .catalogCell:hover .divMessage, .theme_yotsubaB .catalogCell:focus .divMessage {
  background: #D6DAF0;
  outline-color: #B7C5D9;
}
html.theme_yotsubaB .threadStats, .theme_yotsubaB .threadStats {
  color: #555;
}
html.theme_yotsubaB .linkThumb img, .theme_yotsubaB .linkThumb img {
  border-color: #B7C5D9;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- H. Front page / boards list --- */
}
html.theme_yotsubaB #divLatestPosts .latestPostCell, .theme_yotsubaB #divLatestPosts .latestPostCell {
  background: #D6DAF0;
}
html.theme_yotsubaB #divLatestImages img, .theme_yotsubaB #divLatestImages img {
  border-color: #000000;
}
html.theme_yotsubaB #boardsCellHeader span, .theme_yotsubaB #boardsCellHeader span {
  background: #D6DAF0;
  color: #000;
  border-color: #B7C5D9;
}
html.theme_yotsubaB .boardsCell:nth-of-type(2n+1) span, .theme_yotsubaB .boardsCell:nth-of-type(2n+1) span {
  background-color: rgba(183, 197, 217, 0.4);
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- I. Code highlighting (highlight.js — light) --- */
}
html.theme_yotsubaB .hljs, .theme_yotsubaB .hljs {
  display: block;
  overflow-x: auto;
  background: #f4f6ff;
  color: #333;
  padding: 0.5em;
}
html.theme_yotsubaB .hljs-comment, html.theme_yotsubaB .hljs-quote, .theme_yotsubaB .hljs-comment, .theme_yotsubaB .hljs-quote {
  color: #888;
}
html.theme_yotsubaB .hljs-keyword, html.theme_yotsubaB .hljs-selector-tag, .theme_yotsubaB .hljs-keyword, .theme_yotsubaB .hljs-selector-tag {
  color: #9988EE;
}
html.theme_yotsubaB .hljs-string, html.theme_yotsubaB .hljs-symbol, html.theme_yotsubaB .hljs-bullet, html.theme_yotsubaB .hljs-addition, .theme_yotsubaB .hljs-string, .theme_yotsubaB .hljs-symbol, .theme_yotsubaB .hljs-bullet, .theme_yotsubaB .hljs-addition {
  color: #789922;
}
html.theme_yotsubaB .hljs-number, html.theme_yotsubaB .hljs-built_in, html.theme_yotsubaB .hljs-literal, html.theme_yotsubaB .hljs-type, html.theme_yotsubaB .hljs-params, html.theme_yotsubaB .hljs-meta, html.theme_yotsubaB .hljs-link, html.theme_yotsubaB .hljs-attribute, .theme_yotsubaB .hljs-number, .theme_yotsubaB .hljs-built_in, .theme_yotsubaB .hljs-literal, .theme_yotsubaB .hljs-type, .theme_yotsubaB .hljs-params, .theme_yotsubaB .hljs-meta, .theme_yotsubaB .hljs-link, .theme_yotsubaB .hljs-attribute {
  color: #b26a00;
}
html.theme_yotsubaB .hljs-title, html.theme_yotsubaB .hljs-section, .theme_yotsubaB .hljs-title, .theme_yotsubaB .hljs-section {
  color: #34345c;
}
html.theme_yotsubaB .hljs-variable, html.theme_yotsubaB .hljs-template-variable, html.theme_yotsubaB .hljs-tag, html.theme_yotsubaB .hljs-name, html.theme_yotsubaB .hljs-selector-id, html.theme_yotsubaB .hljs-selector-class, html.theme_yotsubaB .hljs-regexp, html.theme_yotsubaB .hljs-deletion, .theme_yotsubaB .hljs-variable, .theme_yotsubaB .hljs-template-variable, .theme_yotsubaB .hljs-tag, .theme_yotsubaB .hljs-name, .theme_yotsubaB .hljs-selector-id, .theme_yotsubaB .hljs-selector-class, .theme_yotsubaB .hljs-regexp, .theme_yotsubaB .hljs-deletion {
  color: #c0392b;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* --- J. Badges, indicators & misc --- */
}
html.theme_yotsubaB .radiospan, .theme_yotsubaB .radiospan {
  color: #fff;
  background-color: #d10000;
}
html.theme_yotsubaB .dot, .theme_yotsubaB .dot {
  background-color: orange;
}
html.theme_yotsubaB .medals .text, .theme_yotsubaB .medals .text {
  background-color: #9988EE;
  color: #fff;
}
html.theme_yotsubaB .mobileAlert, .theme_yotsubaB .mobileAlert {
  color: #d10000;
}
html.theme_yotsubaB .linkFollow, .theme_yotsubaB .linkFollow {
  color: #789922;
}
html.theme_yotsubaB .linkFollowAlt, .theme_yotsubaB .linkFollowAlt {
  color: #d00;
}
html.theme_yotsubaB .watchedNotification::before, .theme_yotsubaB .watchedNotification::before {
  color: #d00;
}
html.theme_yotsubaB #boardContentLinks, .theme_yotsubaB #boardContentLinks {
  color: #555;
}
html.theme_yotsubaB #reportActions, .theme_yotsubaB #reportActions {
  background-color: #D6DAF0;
}
html.theme_yotsubaB .contentAction, .theme_yotsubaB .contentAction {
  background-color: #D6DAF0;
  border-color: #B7C5D9;
}
html.theme_yotsubaB #labelCaptchaId, .theme_yotsubaB #labelCaptchaId {
  color: #ff0000;
}
html.theme_yotsubaB #solved, .theme_yotsubaB #solved {
  color: #789922;
}
html.theme_yotsubaB a, html.theme_yotsubaB a:visited, .theme_yotsubaB a, .theme_yotsubaB a:visited {
  color: #34345c;
}
html.theme_yotsubaB a:hover, .theme_yotsubaB a:hover {
  color: #d00;
}
html.theme_yotsubaB a.brackets, html.theme_yotsubaB .reportdeletebuttons, .theme_yotsubaB a.brackets, .theme_yotsubaB .reportdeletebuttons {
  text-decoration: none;
  color: #34345c !important;
}
html.theme_yotsubaB h2 a:link, .theme_yotsubaB h2 a:link {
  color: #fff;
}
html.theme_yotsubaB h2 a:visited, .theme_yotsubaB h2 a:visited {
  color: #ffd0c0;
}
html.theme_yotsubaB, .theme_yotsubaB {
  /* ==========================================================================
     IDENTITY DELTA — non-color rules from the original yotsubaB, kept as-is
     ========================================================================== */
}
html.theme_yotsubaB textarea, .theme_yotsubaB textarea {
  font-family: arial, sans-serif;
  font-size: 10pt;
}
html.theme_yotsubaB #labelName, html.theme_yotsubaB #siteName, .theme_yotsubaB #labelName, .theme_yotsubaB #siteName {
  font-family: Tahoma, sans-serif;
  font-weight: bold;
  letter-spacing: -2px;
  font-size: 28px;
  color: #af0a0f;
}
html.theme_yotsubaB #bannerImage, .theme_yotsubaB #bannerImage {
  border: 1px solid #34345c;
}
html.theme_yotsubaB .divPosts .postCell .innerPost:before,
html.theme_yotsubaB .divPosts .postCell .markedPost:before, .theme_yotsubaB .divPosts .postCell .innerPost:before,
.theme_yotsubaB .divPosts .postCell .markedPost:before {
  margin-left: -20px !important;
  color: #B7C5D9;
  font-size: 10pt;
}

html.theme_catppuccin, .theme_catppuccin {
  color-scheme: dark;
  background: #1e1e2e none;
  color: #cdd6f4;
  /* ==========================================================================
     Catppuccin Mocha - Complete 100% Coverage Theme for Lynxchan/JSChan
     Scoped inside .theme_catppuccin via the catppuccin mixin included in _themes.scss
     ========================================================================== */
  /* Surface Palette — defined on .theme_catppuccin via & (parent selector) */
}
html.theme_catppuccin, .theme_catppuccin {
  --mocha-base: #1e1e2e;
  --mocha-mantle: #181825;
  --mocha-crust: #11111b;
  --mocha-surface0: #313244;
  --mocha-surface1: #45475a;
  --mocha-surface2: #585b70;
  /* Text Palette */
  --mocha-text: #cdd6f4;
  --mocha-subtext0: #a6adc8;
  --mocha-overlay0: #6c7086;
  /* Accents */
  --mocha-blue: #89b4fa;
  --mocha-lavender: #b4befe;
  --mocha-sapphire: #74c7ec;
  --mocha-green: #a6e3a1;
  --mocha-red: #f38ba8;
  --mocha-peach: #fab387;
  --mocha-yellow: #f9e2af;
  --mocha-mauve: #cba6f7;
  --mocha-pink: #f5c2e7;
  --mocha-teal: #94e2d5;
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Global / Page Structure --- */
}
html.theme_catppuccin body, .theme_catppuccin body {
  background: var(--mocha-base) !important;
  color: var(--mocha-text);
}
html.theme_catppuccin #footer, .theme_catppuccin #footer {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin #news, .theme_catppuccin #news {
  background: var(--mocha-mantle);
  color: var(--mocha-text);
}
html.theme_catppuccin .hiddenThread, .theme_catppuccin .hiddenThread {
  background: var(--mocha-surface0);
}
html.theme_catppuccin .kCard .kBody, html.theme_catppuccin #indexWrapper #indexLeft > div, html.theme_catppuccin #indexWrapper #indexRight > div,
html.theme_catppuccin #subpageWrapper > div, html.theme_catppuccin #redirect > div, .theme_catppuccin .kCard .kBody, .theme_catppuccin #indexWrapper #indexLeft > div, .theme_catppuccin #indexWrapper #indexRight > div,
.theme_catppuccin #subpageWrapper > div, .theme_catppuccin #redirect > div {
  background-color: var(--mocha-mantle);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin .mCard, .theme_catppuccin .mCard {
  background-color: var(--mocha-mantle);
}
html.theme_catppuccin .mCard > h2, .theme_catppuccin .mCard > h2 {
  background: var(--mocha-surface0);
  color: var(--mocha-mauve);
}
html.theme_catppuccin .unimportant, html.theme_catppuccin .unimportant *, .theme_catppuccin .unimportant, .theme_catppuccin .unimportant * {
  color: var(--mocha-overlay0) !important;
}
html.theme_catppuccin #cookieBanner, .theme_catppuccin #cookieBanner {
  background-color: var(--mocha-surface0);
  color: var(--mocha-text);
}
html.theme_catppuccin h2, html.theme_catppuccin h3, .theme_catppuccin h2, .theme_catppuccin h3 {
  color: var(--mocha-mauve);
  background: var(--mocha-surface0);
}
html.theme_catppuccin progress, .theme_catppuccin progress {
  background: var(--mocha-surface0) !important;
}
html.theme_catppuccin progress::-webkit-progress-value, .theme_catppuccin progress::-webkit-progress-value {
  background: var(--mocha-green);
}
html.theme_catppuccin progress::-moz-progress-bar, .theme_catppuccin progress::-moz-progress-bar {
  background: var(--mocha-green);
}
html.theme_catppuccin, .theme_catppuccin {
  /* Scrollbars, rules & selection (standardization pass) */
}
html.theme_catppuccin *, .theme_catppuccin * {
  scrollbar-color: var(--mocha-surface1) var(--mocha-crust);
}
html.theme_catppuccin hr, .theme_catppuccin hr {
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin ::selection, .theme_catppuccin ::selection {
  background: var(--mocha-blue);
  color: var(--mocha-base);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Posts & Reply Cells --- */
}
html.theme_catppuccin .topBoards a, html.theme_catppuccin .innerPost, html.theme_catppuccin .markedPost, html.theme_catppuccin .floatingMenu, .theme_catppuccin .topBoards a, .theme_catppuccin .innerPost, .theme_catppuccin .markedPost, .theme_catppuccin .floatingMenu {
  background: var(--mocha-surface0);
}
html.theme_catppuccin #watchedMenu .watchedCellLabel a, .theme_catppuccin #watchedMenu .watchedCellLabel a {
  color: var(--mocha-blue);
}
html.theme_catppuccin, .theme_catppuccin {
  /* watched-threads menu links (theme's general link token) */
}
html.theme_catppuccin .markedPost, html.theme_catppuccin div.postCell:target .innerPost, .theme_catppuccin .markedPost, .theme_catppuccin div.postCell:target .innerPost {
  outline-color: var(--mocha-blue);
}
html.theme_catppuccin .quoteTooltip > div, .theme_catppuccin .quoteTooltip > div {
  border-color: var(--mocha-blue);
}
html.theme_catppuccin .uploadDetails, .theme_catppuccin .uploadDetails {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .innerOP .expandLabel, html.theme_catppuccin .innerOP .collapseLabel, .theme_catppuccin .innerOP .expandLabel, .theme_catppuccin .innerOP .collapseLabel {
  background: var(--mocha-mantle);
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .innerOP .bottomGradient, .theme_catppuccin .innerOP .bottomGradient {
  background: linear-gradient(transparent, var(--mocha-mantle));
}
html.theme_catppuccin .innerPost .expandLabel, html.theme_catppuccin .innerPost .collapseLabel, .theme_catppuccin .innerPost .expandLabel, .theme_catppuccin .innerPost .collapseLabel {
  background: var(--mocha-surface0);
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .markedPost .expandLabel, html.theme_catppuccin .markedPost .collapseLabel, .theme_catppuccin .markedPost .expandLabel, .theme_catppuccin .markedPost .collapseLabel {
  background: var(--mocha-surface0);
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .innerPost .bottomGradient, .theme_catppuccin .innerPost .bottomGradient {
  background: linear-gradient(transparent, var(--mocha-surface0));
}
html.theme_catppuccin .innerPost .panelUploads .uploadCell, html.theme_catppuccin .markedPost .panelUploads .uploadCell, .theme_catppuccin .innerPost .panelUploads .uploadCell, .theme_catppuccin .markedPost .panelUploads .uploadCell {
  background: var(--mocha-surface1);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Catalog View --- */
}
html.theme_catppuccin .catalogCell, .theme_catppuccin .catalogCell {
  background: rgba(255, 255, 255, 0.03);
}
html.theme_catppuccin .catalogCell .labelSubject, .theme_catppuccin .catalogCell .labelSubject {
  color: var(--mocha-red);
}
html.theme_catppuccin .catalogCell:hover, .theme_catppuccin .catalogCell:hover {
  background: var(--mocha-surface1) !important;
}
html.theme_catppuccin .catalogCell:hover .divMessage, html.theme_catppuccin .catalogCell:focus .divMessage, .theme_catppuccin .catalogCell:hover .divMessage, .theme_catppuccin .catalogCell:focus .divMessage {
  background: var(--mocha-surface1);
  outline-color: var(--mocha-surface1);
}
html.theme_catppuccin .threadStats, .theme_catppuccin .threadStats {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .linkThumb img, .theme_catppuccin .linkThumb img {
  border: 1px solid var(--mocha-surface1);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Navigation & Menus --- */
}
html.theme_catppuccin #topNav, .theme_catppuccin #topNav {
  background: transparent;
}
html.theme_catppuccin #topNav.active, html.theme_catppuccin #topNav.fixed, .theme_catppuccin #topNav.active, .theme_catppuccin #topNav.fixed {
  background: var(--mocha-mantle);
  border-bottom: 1px solid var(--mocha-surface1);
}
html.theme_catppuccin .divPages, html.theme_catppuccin #divPages, .theme_catppuccin .divPages, .theme_catppuccin #divPages {
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin .extraMenu a, .theme_catppuccin .extraMenu a {
  color: var(--mocha-text);
}
html.theme_catppuccin .extraMenu div:hover, html.theme_catppuccin .hideMenu div:hover, .theme_catppuccin .extraMenu div:hover, .theme_catppuccin .hideMenu div:hover {
  background: var(--mocha-surface1);
  color: var(--mocha-text);
}
html.theme_catppuccin .extraMenu, html.theme_catppuccin .hideMenu, .theme_catppuccin .extraMenu, .theme_catppuccin .hideMenu {
  border-color: var(--mocha-blue);
}
html.theme_catppuccin .modalHeader, html.theme_catppuccin #quick-reply .handle, .theme_catppuccin .modalHeader, .theme_catppuccin #quick-reply .handle {
  background: var(--mocha-surface0);
  color: var(--mocha-mauve);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Links & Interactive Text --- */
}
html.theme_catppuccin a, html.theme_catppuccin .reportdeletebuttons, .theme_catppuccin a, .theme_catppuccin .reportdeletebuttons {
  color: var(--mocha-blue);
}
html.theme_catppuccin a:hover, .theme_catppuccin a:hover {
  color: var(--mocha-lavender);
}
html.theme_catppuccin .handle a, .theme_catppuccin .handle a {
  color: var(--mocha-mauve);
}
html.theme_catppuccin .linkName, .theme_catppuccin .linkName {
  color: var(--mocha-pink);
}
html.theme_catppuccin .linkName:hover, .theme_catppuccin .linkName:hover {
  color: var(--mocha-red);
}
html.theme_catppuccin .linkQuote, html.theme_catppuccin .linkSelf, .theme_catppuccin .linkQuote, .theme_catppuccin .linkSelf {
  color: var(--mocha-text) !important;
}
html.theme_catppuccin h2 a:link, .theme_catppuccin h2 a:link {
  color: var(--mocha-mauve);
}
html.theme_catppuccin h2 a:visited, .theme_catppuccin h2 a:visited {
  color: var(--mocha-sapphire);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Chan Markup & Spoilers --- */
}
html.theme_catppuccin .greenText, html.theme_catppuccin .quote, .theme_catppuccin .greenText, .theme_catppuccin .quote {
  color: var(--mocha-green);
}
html.theme_catppuccin .redText, .theme_catppuccin .redText {
  color: var(--mocha-red);
}
html.theme_catppuccin .orangeText, .theme_catppuccin .orangeText {
  color: var(--mocha-peach);
}
html.theme_catppuccin .brackets::after, html.theme_catppuccin .brackets::before, .theme_catppuccin .brackets::after, .theme_catppuccin .brackets::before {
  color: var(--mocha-overlay0);
}
html.theme_catppuccin span.spoiler, .theme_catppuccin span.spoiler {
  background: var(--mocha-surface1);
  color: var(--mocha-surface1);
}
html.theme_catppuccin span.spoiler:hover, .theme_catppuccin span.spoiler:hover {
  color: var(--mocha-text);
}
html.theme_catppuccin span.spoiler > .greenText, .theme_catppuccin span.spoiler > .greenText {
  color: var(--mocha-surface1) !important;
}
html.theme_catppuccin span.spoiler > .orangeText, .theme_catppuccin span.spoiler > .orangeText {
  color: var(--mocha-surface1) !important;
}
html.theme_catppuccin span.spoiler > a, .theme_catppuccin span.spoiler > a {
  color: var(--mocha-surface1) !important;
}
html.theme_catppuccin span.spoiler:hover > .greenText, .theme_catppuccin span.spoiler:hover > .greenText {
  color: var(--mocha-green) !important;
}
html.theme_catppuccin span.spoiler:hover > .orangeText, .theme_catppuccin span.spoiler:hover > .orangeText {
  color: var(--mocha-peach) !important;
}
html.theme_catppuccin span.spoiler:hover > a, .theme_catppuccin span.spoiler:hover > a {
  color: var(--mocha-blue) !important;
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Forms & Inputs (legacy table layout) --- */
}
html.theme_catppuccin #postingForm th, html.theme_catppuccin .modalTableBody th, .theme_catppuccin #postingForm th, .theme_catppuccin .modalTableBody th {
  color: var(--mocha-mauve);
  background: var(--mocha-surface0);
}
html.theme_catppuccin .dragAndDropDiv, html.theme_catppuccin .dragAndDropThumb, .theme_catppuccin .dragAndDropDiv, .theme_catppuccin .dragAndDropThumb {
  color: var(--mocha-text);
  background-color: rgba(69, 71, 90, 0.5);
}
html.theme_catppuccin .dropzone, .theme_catppuccin .dropzone {
  color: var(--mocha-subtext0);
  background-color: rgba(49, 50, 68, 0.5);
  border-color: var(--mocha-surface2);
}
html.theme_catppuccin .dropzone:hover, .theme_catppuccin .dropzone:hover {
  color: var(--mocha-text);
  background-color: var(--mocha-surface1);
}
html.theme_catppuccin .innerOP .panelUploads .uploadCell, .theme_catppuccin .innerOP .panelUploads .uploadCell {
  background: var(--mocha-mantle);
}
html.theme_catppuccin #selectedDiv .selectedCell, html.theme_catppuccin #selectedDivQr .selectedCell, .theme_catppuccin #selectedDiv .selectedCell, .theme_catppuccin #selectedDivQr .selectedCell {
  background: var(--mocha-surface0);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin .removeButton, .theme_catppuccin .removeButton {
  color: var(--mocha-overlay0);
}
html.theme_catppuccin .removeButton:hover, .theme_catppuccin .removeButton:hover {
  color: var(--mocha-red);
}
html.theme_catppuccin input::placeholder, html.theme_catppuccin textarea::placeholder, .theme_catppuccin input::placeholder, .theme_catppuccin textarea::placeholder {
  color: var(--mocha-overlay0) !important;
}
html.theme_catppuccin input, html.theme_catppuccin textarea, html.theme_catppuccin select, .theme_catppuccin input, .theme_catppuccin textarea, .theme_catppuccin select {
  background-color: var(--mocha-mantle);
  color: var(--mocha-text);
  border: 1px solid var(--mocha-surface1);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Posting form card (.post-card — redesigned 2026-08-16) --- */
}
html.theme_catppuccin .post-card, .theme_catppuccin .post-card {
  background: var(--mocha-mantle);
  border-color: var(--mocha-surface1);
  color: var(--mocha-text);
}
html.theme_catppuccin .post-card .postingInput, html.theme_catppuccin .post-card textarea, html.theme_catppuccin .post-card select, .theme_catppuccin .post-card .postingInput, .theme_catppuccin .post-card textarea, .theme_catppuccin .post-card select {
  background-color: var(--mocha-crust);
  border-color: var(--mocha-surface1);
  color: var(--mocha-text);
}
html.theme_catppuccin .post-card .postingInput:focus, html.theme_catppuccin .post-card textarea:focus, html.theme_catppuccin .post-card select:focus, .theme_catppuccin .post-card .postingInput:focus, .theme_catppuccin .post-card textarea:focus, .theme_catppuccin .post-card select:focus {
  border-color: var(--mocha-blue);
}
html.theme_catppuccin .post-card input::placeholder, html.theme_catppuccin .post-card textarea::placeholder, .theme_catppuccin .post-card input::placeholder, .theme_catppuccin .post-card textarea::placeholder {
  color: var(--mocha-overlay0) !important;
  opacity: 1 !important;
}
html.theme_catppuccin .post-card .dropzone, .theme_catppuccin .post-card .dropzone {
  border-color: var(--mocha-surface2);
  color: var(--mocha-subtext0);
  background: transparent;
}
html.theme_catppuccin .post-card .dropzone:hover, .theme_catppuccin .post-card .dropzone:hover {
  border-color: var(--mocha-blue);
  color: var(--mocha-text);
}
html.theme_catppuccin .post-card .toggle-badge, .theme_catppuccin .post-card .toggle-badge {
  background: var(--mocha-surface0);
  color: var(--mocha-text);
}
html.theme_catppuccin .post-card .advanced-drawer, .theme_catppuccin .post-card .advanced-drawer {
  background: var(--mocha-crust);
}
html.theme_catppuccin .post-card .drawer-toggle, .theme_catppuccin .post-card .drawer-toggle {
  color: var(--mocha-mauve);
}
html.theme_catppuccin .post-card .btn-submit, .theme_catppuccin .post-card .btn-submit {
  background: var(--mocha-mauve);
  color: var(--mocha-base);
}
html.theme_catppuccin .post-card .btn-submit:hover, .theme_catppuccin .post-card .btn-submit:hover {
  background: var(--mocha-lavender);
}
html.theme_catppuccin .post-card .post-rules-panel, .theme_catppuccin .post-card .post-rules-panel {
  background: var(--mocha-mantle);
  border-color: var(--mocha-surface1);
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .post-card .post-rules-panel a, .theme_catppuccin .post-card .post-rules-panel a {
  color: var(--mocha-mauve);
}
html.theme_catppuccin .post-card .rules-line, .theme_catppuccin .post-card .rules-line {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .post-card .rules-line a, .theme_catppuccin .post-card .rules-line a {
  color: var(--mocha-mauve);
}
html.theme_catppuccin .post-card .captchaImage, .theme_catppuccin .post-card .captchaImage {
  background: var(--mocha-surface0);
}
html.theme_catppuccin .post-card .captchaTimer, .theme_catppuccin .post-card .captchaTimer {
  color: var(--mocha-overlay0);
  opacity: 1;
}
html.theme_catppuccin .post-card .no-cookie-link, .theme_catppuccin .post-card .no-cookie-link {
  color: var(--mocha-mauve);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Modals & Settings Menu --- */
}
html.theme_catppuccin #quick-reply table, html.theme_catppuccin .modalDecorationPanel, .theme_catppuccin #quick-reply table, .theme_catppuccin .modalDecorationPanel {
  background: var(--mocha-mantle);
  border-color: var(--mocha-surface1);
  outline-color: var(--mocha-surface1);
}
html.theme_catppuccin, .theme_catppuccin {
  /* Settings menu — full color table (2026-08-17): base _settingsMenu.scss is
     dark-plum; now every surface uses the Mocha palette (same surface set as green). */
}
html.theme_catppuccin #settingsMenu, .theme_catppuccin #settingsMenu {
  background: var(--mocha-base);
  color: var(--mocha-text);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin #settingsMenu > .header, .theme_catppuccin #settingsMenu > .header {
  background: var(--mocha-surface0);
  color: var(--mocha-mauve);
  border-bottom-color: var(--mocha-surface1);
}
html.theme_catppuccin #settingsMenu > div:nth-child(3), html.theme_catppuccin #settingsMenu > div:nth-child(4), .theme_catppuccin #settingsMenu > div:nth-child(3), .theme_catppuccin #settingsMenu > div:nth-child(4) {
  background: var(--mocha-mantle);
}
html.theme_catppuccin #settingsMenu .settingsTab, .theme_catppuccin #settingsMenu .settingsTab {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin #settingsMenu .settingsTab:hover, html.theme_catppuccin #settingsMenu .settingsTab:focus, .theme_catppuccin #settingsMenu .settingsTab:hover, .theme_catppuccin #settingsMenu .settingsTab:focus {
  background: var(--mocha-surface0);
  color: var(--mocha-text);
}
html.theme_catppuccin #settingsMenu #selectedTab, .theme_catppuccin #settingsMenu #selectedTab {
  background: var(--mocha-mauve);
  color: var(--mocha-base);
}
html.theme_catppuccin #settingsMenu .settingsSectionTitle, .theme_catppuccin #settingsMenu .settingsSectionTitle {
  color: var(--mocha-subtext0);
  border-bottom-color: var(--mocha-surface1);
}
html.theme_catppuccin #settingsMenu .settingName, .theme_catppuccin #settingsMenu .settingName {
  color: var(--mocha-text);
}
html.theme_catppuccin #settingsMenu .settingDesc, .theme_catppuccin #settingsMenu .settingDesc {
  color: var(--mocha-overlay0);
}
html.theme_catppuccin #settingsMenu .settingsCheckbox, .theme_catppuccin #settingsMenu .settingsCheckbox {
  accent-color: var(--mocha-mauve);
}
html.theme_catppuccin #settingsMenu .saveButton, .theme_catppuccin #settingsMenu .saveButton {
  background: var(--mocha-mauve);
  color: var(--mocha-base);
}
html.theme_catppuccin #settingsMenu .saveButton:hover, .theme_catppuccin #settingsMenu .saveButton:hover {
  background: var(--mocha-lavender);
}
html.theme_catppuccin #settingsMenu #newFilterPanel select, html.theme_catppuccin #settingsMenu #newFilterPanel input[type=text], .theme_catppuccin #settingsMenu #newFilterPanel select, .theme_catppuccin #settingsMenu #newFilterPanel input[type=text] {
  background: var(--mocha-crust);
  color: var(--mocha-text);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin #settingsMenu #newFilterPanel button, .theme_catppuccin #settingsMenu #newFilterPanel button {
  background: var(--mocha-surface0);
  color: var(--mocha-text);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin #settingsMenu #newFilterPanel button:hover, .theme_catppuccin #settingsMenu #newFilterPanel button:hover {
  background: var(--mocha-surface1);
}
html.theme_catppuccin #settingsMenu .existingFilterTypeLabel, html.theme_catppuccin #settingsMenu .existingFilterContentLabel, .theme_catppuccin #settingsMenu .existingFilterTypeLabel, .theme_catppuccin #settingsMenu .existingFilterContentLabel {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin #settingsMenu .filterDeleteButton, .theme_catppuccin #settingsMenu .filterDeleteButton {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin #settingsMenu .filterDeleteButton:hover, .theme_catppuccin #settingsMenu .filterDeleteButton:hover {
  color: var(--mocha-red);
}
html.theme_catppuccin #settingsMenu #themeSelector, html.theme_catppuccin #settingsMenu #cssInput, .theme_catppuccin #settingsMenu #themeSelector, .theme_catppuccin #settingsMenu #cssInput {
  background: var(--mocha-crust);
  color: var(--mocha-text);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin #closeSettingsMenuButton, .theme_catppuccin #closeSettingsMenuButton {
  color: var(--mocha-mauve);
}
html.theme_catppuccin .captchaTimer, .theme_catppuccin .captchaTimer {
  background: var(--mocha-mantle);
  color: var(--mocha-text);
}
html.theme_catppuccin .modalInnerDecorationPanel, html.theme_catppuccin .post-table, .theme_catppuccin .modalInnerDecorationPanel, .theme_catppuccin .post-table {
  background-color: var(--mocha-mantle);
}
html.theme_catppuccin .modalPanel, .theme_catppuccin .modalPanel {
  background: rgba(17, 17, 27, 0.85);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Labels & Metadata --- */
  /* ID badge text: full-strength teal (base opacity was .6). The black text
     outline is inherited from base _posting.scss (canonical guard against
     hash-color collisions). */
}
html.theme_catppuccin .labelId, .theme_catppuccin .labelId {
  color: var(--mocha-teal);
  opacity: 1;
}
html.theme_catppuccin .labelCreated, html.theme_catppuccin .spanId, .theme_catppuccin .labelCreated, .theme_catppuccin .spanId {
  color: var(--mocha-overlay0);
}
html.theme_catppuccin .labelRole, .theme_catppuccin .labelRole {
  color: var(--mocha-red);
}
html.theme_catppuccin .labelSubject, .theme_catppuccin .labelSubject {
  color: var(--mocha-red);
}
html.theme_catppuccin .labelOmission, .theme_catppuccin .labelOmission {
  color: var(--mocha-overlay0);
}
html.theme_catppuccin .panelBacklinks a, .theme_catppuccin .panelBacklinks a {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .panelBacklinks a:hover, .theme_catppuccin .panelBacklinks a:hover {
  color: var(--mocha-blue);
}
html.theme_catppuccin .quoteLink, html.theme_catppuccin .quoteLink:hover, .theme_catppuccin .quoteLink, .theme_catppuccin .quoteLink:hover {
  color: var(--mocha-blue);
}
html.theme_catppuccin .navLinkSpan, .theme_catppuccin .navLinkSpan {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Upload & Preview Area --- */
}
html.theme_catppuccin #divOekaki, .theme_catppuccin #divOekaki {
  background-color: var(--mocha-mantle);
}
html.theme_catppuccin #previewContainer, .theme_catppuccin #previewContainer {
  background: rgba(17, 17, 27, 0.7);
}
html.theme_catppuccin .fileBrowser, .theme_catppuccin .fileBrowser {
  background: none;
  color: var(--mocha-text);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Front Page / Latest Posts --- */
}
html.theme_catppuccin #divLatestPosts .latestPostCell, .theme_catppuccin #divLatestPosts .latestPostCell {
  background: var(--mocha-surface0);
}
html.theme_catppuccin #divLatestImages img, .theme_catppuccin #divLatestImages img {
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Boards list --- */
}
html.theme_catppuccin #boardsCellHeader span, .theme_catppuccin #boardsCellHeader span {
  background: var(--mocha-mantle);
  color: var(--mocha-text);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin .boardsCell:nth-of-type(2n+1) span, .theme_catppuccin .boardsCell:nth-of-type(2n+1) span {
  background-color: rgba(255, 255, 255, 0.03);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Code Highlighting (highlight.js) --- */
}
html.theme_catppuccin .hljs, .theme_catppuccin .hljs {
  background: var(--mocha-crust);
  color: var(--mocha-text);
}
html.theme_catppuccin .hljs-comment, html.theme_catppuccin .hljs-quote, .theme_catppuccin .hljs-comment, .theme_catppuccin .hljs-quote {
  color: var(--mocha-overlay0);
}
html.theme_catppuccin .hljs-keyword, .theme_catppuccin .hljs-keyword {
  color: var(--mocha-mauve);
}
html.theme_catppuccin .hljs-string, .theme_catppuccin .hljs-string {
  color: var(--mocha-green);
}
html.theme_catppuccin .hljs-number, .theme_catppuccin .hljs-number {
  color: var(--mocha-peach);
}
html.theme_catppuccin .hljs-title, .theme_catppuccin .hljs-title {
  color: var(--mocha-blue);
}
html.theme_catppuccin .hljs-variable, .theme_catppuccin .hljs-variable {
  color: var(--mocha-red);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Captcha, Bans & Misc --- */
}
html.theme_catppuccin #labelCaptchaId, .theme_catppuccin #labelCaptchaId {
  color: var(--mocha-red);
}
html.theme_catppuccin #solved, .theme_catppuccin #solved {
  color: var(--mocha-green);
}
html.theme_catppuccin .divBanMessage, .theme_catppuccin .divBanMessage {
  color: var(--mocha-red);
}
html.theme_catppuccin .dot, .theme_catppuccin .dot {
  background-color: var(--mocha-peach);
}
html.theme_catppuccin .medals .text, .theme_catppuccin .medals .text {
  background-color: var(--mocha-surface0);
  color: var(--mocha-text);
}
html.theme_catppuccin .mobileAlert, .theme_catppuccin .mobileAlert {
  color: var(--mocha-red);
}
html.theme_catppuccin .radiospan, .theme_catppuccin .radiospan {
  color: var(--mocha-crust);
  background-color: var(--mocha-red);
}
html.theme_catppuccin, .theme_catppuccin {
  /* --- Other --- */
}
html.theme_catppuccin #boardContentLinks, .theme_catppuccin #boardContentLinks {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin #reportActions, .theme_catppuccin #reportActions {
  background-color: var(--mocha-surface0);
}
html.theme_catppuccin .contentAction, .theme_catppuccin .contentAction {
  background: var(--mocha-mantle);
  border-color: var(--mocha-surface1);
}
html.theme_catppuccin .appealForm table tr th, html.theme_catppuccin table.modInfo tr th, .theme_catppuccin .appealForm table tr th, .theme_catppuccin table.modInfo tr th {
  background: var(--mocha-surface0);
  color: var(--mocha-mauve);
}
html.theme_catppuccin .captchaImage, .theme_catppuccin .captchaImage {
  background-color: var(--mocha-mantle);
  color: var(--mocha-text);
}
html.theme_catppuccin .contentOmissionIndicator, .theme_catppuccin .contentOmissionIndicator {
  color: var(--mocha-subtext0);
}
html.theme_catppuccin .linkFollow, .theme_catppuccin .linkFollow {
  color: var(--mocha-green);
}
html.theme_catppuccin .linkFollowAlt, .theme_catppuccin .linkFollowAlt {
  color: var(--mocha-red);
}
html.theme_catppuccin .mFixed, .theme_catppuccin .mFixed {
  background: var(--mocha-mantle);
}
html.theme_catppuccin .noEmailName, .theme_catppuccin .noEmailName {
  color: var(--mocha-pink);
}
html.theme_catppuccin .sage, html.theme_catppuccin .bumpLockIndicator, .theme_catppuccin .sage, .theme_catppuccin .bumpLockIndicator {
  color: var(--mocha-red);
}
html.theme_catppuccin .watchedNotification::before, .theme_catppuccin .watchedNotification::before {
  color: var(--mocha-red);
}
html.theme_catppuccin div.titlebar, .theme_catppuccin div.titlebar {
  background: var(--mocha-surface0);
  color: var(--mocha-mauve);
}
html.theme_catppuccin #siteName, .theme_catppuccin #siteName {
  color: var(--mocha-mauve);
}
html.theme_catppuccin, .theme_catppuccin {
  /* main site title — theme's title accent (was falling back to base body text) */
}

html.theme_gitgudv2, .theme_gitgudv2 {
  color-scheme: dark;
  background: #211f26 none;
  color: #e2ded9;
  /* ==========================================================================
     GitGud V2 (Modernized) - Theme File for KohlNumbra / Lynxchan
     ========================================================================== */
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 1. DESIGN TOKENS --- */
  /* Color Tokens */
  --gg-bg-base: #211f26; /* Deep dark plum background */
  --gg-bg-mantle: #1a181e; /* Darker inputs / panels */
  --gg-bg-crust: #121115; /* Code blocks / deepest layer */
  --gg-bg-surface0: #2e2b36; /* Post cards / floating menus */
  --gg-bg-surface1: #3d3a47; /* Hover highlights / upload cells */
  --gg-bg-header: #3e2a47; /* Signature GitGud deep purple header */
  --gg-text-main: #e2ded9; /* Off-white / cream text */
  --gg-text-sub: #b3aba2; /* Muted brown-gray text */
  --gg-text-dim: #857d75; /* Borders / muted icons */
  --gg-accent-purple: #a872cc; /* Links / interactive elements */
  --gg-accent-hover: #c28fe6; /* Link hover */
  --gg-accent-brown: #cbb092; /* Header titles / names */
  --gg-accent-green: #87b279; /* Sage quote text */
  --gg-accent-red: #d96c6c; /* Subjects / errors */
  --gg-accent-orange: #e09867; /* Warnings */
  /* Structural & Shape Tokens */
  --gg-radius-sm: 4px;
  --gg-radius-md: 8px;
  --gg-radius-lg: 12px;
  --gg-radius-full: 9999px;
  --gg-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2);
  --gg-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.35);
  --gg-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --gg-font-mono: "JetBrains Mono", "Fira Code", monospace;
  --gg-trans-fast: 150ms ease;
  --gg-trans-normal: 250ms ease;
  /* Global Properties */
  scroll-behavior: smooth !important;
  font-family: var(--gg-font-body) !important;
  background: var(--gg-bg-base) !important;
  color: var(--gg-text-main) !important;
  /* --- 2. GLOBAL STRUCTURE & LAYOUT --- */
}
html.theme_gitgudv2 body, .theme_gitgudv2 body {
  background: var(--gg-bg-base) !important;
  color: var(--gg-text-main) !important;
  font-family: var(--gg-font-body) !important;
}
html.theme_gitgudv2 #footer, .theme_gitgudv2 #footer {
  color: var(--gg-text-sub) !important;
  padding: 12px 0 !important;
}
html.theme_gitgudv2 #news, .theme_gitgudv2 #news {
  background: var(--gg-bg-mantle) !important;
  color: var(--gg-text-main) !important;
  border-radius: var(--gg-radius-md) !important;
}
html.theme_gitgudv2 .hiddenThread, .theme_gitgudv2 .hiddenThread {
  background: var(--gg-bg-surface0) !important;
  border-radius: var(--gg-radius-md) !important;
}
html.theme_gitgudv2 .kCard .kBody,
html.theme_gitgudv2 #indexWrapper #indexLeft > div,
html.theme_gitgudv2 #indexWrapper #indexRight > div,
html.theme_gitgudv2 #subpageWrapper > div,
html.theme_gitgudv2 #redirect > div, .theme_gitgudv2 .kCard .kBody,
.theme_gitgudv2 #indexWrapper #indexLeft > div,
.theme_gitgudv2 #indexWrapper #indexRight > div,
.theme_gitgudv2 #subpageWrapper > div,
.theme_gitgudv2 #redirect > div {
  background-color: var(--gg-bg-mantle) !important;
  border: 1px solid var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-md) !important;
  box-shadow: var(--gg-shadow-sm) !important;
}
html.theme_gitgudv2 .mCard, .theme_gitgudv2 .mCard {
  background-color: var(--gg-bg-mantle) !important;
  border-radius: var(--gg-radius-md) !important;
}
html.theme_gitgudv2 .mCard > h2, .theme_gitgudv2 .mCard > h2 {
  background: var(--gg-bg-header) !important;
  color: var(--gg-accent-brown) !important;
  border-radius: var(--gg-radius-md) var(--gg-radius-md) 0 0 !important;
}
html.theme_gitgudv2 .unimportant, html.theme_gitgudv2 .unimportant *, .theme_gitgudv2 .unimportant, .theme_gitgudv2 .unimportant * {
  color: var(--gg-text-dim) !important;
}
html.theme_gitgudv2 #cookieBanner, .theme_gitgudv2 #cookieBanner {
  background-color: var(--gg-bg-surface0) !important;
  color: var(--gg-text-main) !important;
  border-radius: var(--gg-radius-md) !important;
}
html.theme_gitgudv2 h2, html.theme_gitgudv2 h3, .theme_gitgudv2 h2, .theme_gitgudv2 h3 {
  color: var(--gg-accent-brown) !important;
  background: var(--gg-bg-header) !important;
  border-radius: var(--gg-radius-sm) !important;
  padding: 6px 12px !important;
}
html.theme_gitgudv2 progress, .theme_gitgudv2 progress {
  background: var(--gg-bg-surface0) !important;
  border-radius: var(--gg-radius-full) !important;
}
html.theme_gitgudv2 progress::-webkit-progress-value, .theme_gitgudv2 progress::-webkit-progress-value {
  background: var(--gg-accent-green) !important;
  border-radius: var(--gg-radius-full) !important;
}
html.theme_gitgudv2 progress::-moz-progress-bar, .theme_gitgudv2 progress::-moz-progress-bar {
  background: var(--gg-accent-green) !important;
  border-radius: var(--gg-radius-full) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Custom Scrollbar */
}
html.theme_gitgudv2 *, .theme_gitgudv2 * {
  scrollbar-color: var(--gg-bg-surface1) var(--gg-bg-crust) !important;
}
html.theme_gitgudv2 hr, .theme_gitgudv2 hr {
  border-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 ::selection, .theme_gitgudv2 ::selection {
  background: var(--gg-accent-purple) !important;
  color: var(--gg-bg-base) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 3. POST CARDS & REPLY CELLS --- */
}
html.theme_gitgudv2 .markedPost, html.theme_gitgudv2 div.postCell:target .innerPost, .theme_gitgudv2 .markedPost, .theme_gitgudv2 div.postCell:target .innerPost {
  outline-color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .quoteTooltip > div, .theme_gitgudv2 .quoteTooltip > div {
  border-color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .innerPost, html.theme_gitgudv2 .markedPost, .theme_gitgudv2 .innerPost, .theme_gitgudv2 .markedPost {
  background: var(--gg-bg-surface0) !important;
  border-radius: var(--gg-radius-md) !important;
  border: 1px solid var(--gg-bg-surface1) !important;
  box-shadow: var(--gg-shadow-sm) !important;
  padding: 10px 14px !important;
  transition: transform var(--gg-trans-fast), box-shadow var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 .innerPost:hover, html.theme_gitgudv2 .markedPost:hover, .theme_gitgudv2 .innerPost:hover, .theme_gitgudv2 .markedPost:hover {
  box-shadow: var(--gg-shadow-md) !important;
  transform: translateY(-1px) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Remove ancient visual clutter ">>" prefix */
}
html.theme_gitgudv2 .divPosts .postCell .innerPost::before, .theme_gitgudv2 .divPosts .postCell .innerPost::before {
  content: "" !important;
}
html.theme_gitgudv2 .topBoards a, html.theme_gitgudv2 .floatingMenu, .theme_gitgudv2 .topBoards a, .theme_gitgudv2 .floatingMenu {
  background: var(--gg-bg-surface0) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 #watchedMenu .watchedCellLabel a, .theme_gitgudv2 #watchedMenu .watchedCellLabel a {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 { /* watched-threads menu links (theme's interactive accent) */ }
html.theme_gitgudv2 .innerOP .expandLabel, html.theme_gitgudv2 .innerOP .collapseLabel, .theme_gitgudv2 .innerOP .expandLabel, .theme_gitgudv2 .innerOP .collapseLabel {
  background: var(--gg-bg-mantle) !important;
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 .innerOP .bottomGradient, .theme_gitgudv2 .innerOP .bottomGradient {
  background: linear-gradient(transparent, var(--gg-bg-mantle)) !important;
}
html.theme_gitgudv2 .innerPost .expandLabel, html.theme_gitgudv2 .innerPost .collapseLabel, .theme_gitgudv2 .innerPost .expandLabel, .theme_gitgudv2 .innerPost .collapseLabel {
  background: var(--gg-bg-surface0) !important;
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 .markedPost .expandLabel, html.theme_gitgudv2 .markedPost .collapseLabel, .theme_gitgudv2 .markedPost .expandLabel, .theme_gitgudv2 .markedPost .collapseLabel {
  background: var(--gg-bg-surface0) !important;
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 .innerPost .bottomGradient, .theme_gitgudv2 .innerPost .bottomGradient {
  background: linear-gradient(transparent, var(--gg-bg-surface0)) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Rounded Thumbnails & Hover Overlay */
}
html.theme_gitgudv2 .innerPost .panelUploads .uploadCell,
html.theme_gitgudv2 .markedPost .panelUploads .uploadCell, .theme_gitgudv2 .innerPost .panelUploads .uploadCell,
.theme_gitgudv2 .markedPost .panelUploads .uploadCell {
  background: var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-sm) !important;
  padding: 6px !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Upload metadata opacity reveal on hover */
}
html.theme_gitgudv2 .uploadDetails, .theme_gitgudv2 .uploadDetails {
  opacity: 0.6 !important;
  transition: opacity var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 .uploadCell:hover .uploadDetails, .theme_gitgudv2 .uploadCell:hover .uploadDetails {
  opacity: 1 !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 4. CATALOG VIEW --- */
}
html.theme_gitgudv2 .catalogCell, .theme_gitgudv2 .catalogCell {
  background: var(--gg-bg-surface0) !important;
  border-radius: var(--gg-radius-lg) !important;
  border: 1px solid var(--gg-bg-surface1) !important;
  transition: transform var(--gg-trans-fast), box-shadow var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 .catalogCell:hover, .theme_gitgudv2 .catalogCell:hover {
  background: var(--gg-bg-surface1) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--gg-shadow-md) !important;
}
html.theme_gitgudv2 .catalogCell:hover .divMessage, html.theme_gitgudv2 .catalogCell:focus .divMessage, .theme_gitgudv2 .catalogCell:hover .divMessage, .theme_gitgudv2 .catalogCell:focus .divMessage {
  background: transparent !important;
  outline-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 .catalogCell .labelSubject, .theme_gitgudv2 .catalogCell .labelSubject {
  color: var(--gg-accent-red) !important;
  font-weight: 600 !important;
}
html.theme_gitgudv2 .threadStats, .theme_gitgudv2 .threadStats {
  color: var(--gg-text-sub) !important;
  font-size: 0.85em !important;
}
html.theme_gitgudv2 .linkThumb img, .theme_gitgudv2 .linkThumb img {
  border: 1px solid var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 5. POSTING FORM (MODERN LAYOUT OVERHAUL) --- */
  /* Hide the 2005-era table headers on the left */
}
html.theme_gitgudv2 div#postingForm > form > table#postingTable > tbody > tr > th,
html.theme_gitgudv2 #postingForm th,
html.theme_gitgudv2 .modalTableBody th, .theme_gitgudv2 div#postingForm > form > table#postingTable > tbody > tr > th,
.theme_gitgudv2 #postingForm th,
.theme_gitgudv2 .modalTableBody th {
  display: none !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Hide rules row */
}
html.theme_gitgudv2 #rules_row, .theme_gitgudv2 #rules_row {
  display: none !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Input fields styling */
}
html.theme_gitgudv2 input, html.theme_gitgudv2 textarea, html.theme_gitgudv2 select, .theme_gitgudv2 input, .theme_gitgudv2 textarea, .theme_gitgudv2 select {
  background-color: var(--gg-bg-mantle) !important;
  color: var(--gg-text-main) !important;
  border: 1px solid var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-sm) !important;
  padding: 8px 12px !important;
  transition: border-color var(--gg-trans-fast), box-shadow var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 input:focus, html.theme_gitgudv2 textarea:focus, html.theme_gitgudv2 select:focus, .theme_gitgudv2 input:focus, .theme_gitgudv2 textarea:focus, .theme_gitgudv2 select:focus {
  border-color: var(--gg-accent-purple) !important;
  box-shadow: 0 0 0 2px rgba(168, 114, 204, 0.25) !important;
  outline: none !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Unhide Placeholders */
}
html.theme_gitgudv2 input::placeholder, html.theme_gitgudv2 textarea::placeholder, .theme_gitgudv2 input::placeholder, .theme_gitgudv2 textarea::placeholder {
  color: var(--gg-text-dim) !important;
  opacity: 1 !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Card shell + chips + drawer + button (standardization pass) */
}
html.theme_gitgudv2 .post-card, .theme_gitgudv2 .post-card {
  background: var(--gg-bg-mantle) !important;
  border-color: var(--gg-bg-surface1) !important;
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2 .post-card .toggle-badge, .theme_gitgudv2 .post-card .toggle-badge {
  background: var(--gg-bg-surface0) !important;
  color: var(--gg-text-main) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .post-card .advanced-drawer, .theme_gitgudv2 .post-card .advanced-drawer {
  background: var(--gg-bg-crust) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .post-card .drawer-toggle, .theme_gitgudv2 .post-card .drawer-toggle {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .post-card .btn-submit, .theme_gitgudv2 .post-card .btn-submit {
  background: var(--gg-accent-purple) !important;
  color: var(--gg-bg-base) !important;
  border-radius: var(--gg-radius-sm) !important;
  transition: background var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 .post-card .btn-submit:hover, .theme_gitgudv2 .post-card .btn-submit:hover {
  background: var(--gg-accent-hover) !important;
}
html.theme_gitgudv2 .post-card .post-rules-panel, .theme_gitgudv2 .post-card .post-rules-panel {
  background: var(--gg-bg-mantle) !important;
  border-color: var(--gg-bg-surface1) !important;
  color: var(--gg-text-sub) !important;
  box-shadow: var(--gg-shadow-md) !important;
}
html.theme_gitgudv2 .post-card .post-rules-panel a, .theme_gitgudv2 .post-card .post-rules-panel a {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .post-card .rules-line, .theme_gitgudv2 .post-card .rules-line {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 .post-card .rules-line a, .theme_gitgudv2 .post-card .rules-line a {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .post-card .captchaImage, .theme_gitgudv2 .post-card .captchaImage {
  background: var(--gg-bg-surface0) !important;
}
html.theme_gitgudv2 .post-card .captchaTimer, .theme_gitgudv2 .post-card .captchaTimer {
  color: var(--gg-text-dim) !important;
  opacity: 1 !important;
}
html.theme_gitgudv2 .post-card .no-cookie-link, .theme_gitgudv2 .post-card .no-cookie-link {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Modern Dropzone Target */
}
html.theme_gitgudv2 .dropzone, .theme_gitgudv2 .dropzone {
  color: var(--gg-text-sub) !important;
  background-color: rgba(46, 43, 54, 0.5) !important;
  border: 2px dashed var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-md) !important;
  padding: 16px !important;
  transition: all var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 .dropzone:hover, .theme_gitgudv2 .dropzone:hover {
  color: var(--gg-text-main) !important;
  background-color: var(--gg-bg-surface1) !important;
  border-color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .dragAndDropDiv, html.theme_gitgudv2 .dragAndDropThumb, .theme_gitgudv2 .dragAndDropDiv, .theme_gitgudv2 .dragAndDropThumb {
  color: var(--gg-text-main) !important;
  background-color: rgba(61, 58, 71, 0.5) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .innerOP .panelUploads .uploadCell, .theme_gitgudv2 .innerOP .panelUploads .uploadCell {
  background: var(--gg-bg-mantle) !important;
}
html.theme_gitgudv2 #selectedDiv .selectedCell, .theme_gitgudv2 #selectedDiv .selectedCell {
  background: var(--gg-bg-surface0) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .removeButton, .theme_gitgudv2 .removeButton {
  color: var(--gg-text-dim) !important;
  transition: color var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 .removeButton:hover, .theme_gitgudv2 .removeButton:hover {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 6. NAVIGATION & MENUS --- */
}
html.theme_gitgudv2 #topNav, .theme_gitgudv2 #topNav {
  background: transparent !important;
}
html.theme_gitgudv2 #topNav.active, html.theme_gitgudv2 #topNav.fixed, .theme_gitgudv2 #topNav.active, .theme_gitgudv2 #topNav.fixed {
  background: rgba(26, 24, 30, 0.85) !important;
  backdrop-filter: blur(8px) !important;
  border-bottom: 1px solid var(--gg-bg-surface1) !important;
  box-shadow: var(--gg-shadow-sm) !important;
}
html.theme_gitgudv2 .divPages, html.theme_gitgudv2 #divPages, .theme_gitgudv2 .divPages, .theme_gitgudv2 #divPages {
  border-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 .extraMenu a, .theme_gitgudv2 .extraMenu a {
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2 .extraMenu div:hover, html.theme_gitgudv2 .hideMenu div:hover, .theme_gitgudv2 .extraMenu div:hover, .theme_gitgudv2 .hideMenu div:hover {
  background: var(--gg-bg-surface1) !important;
  color: var(--gg-text-main) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .extraMenu, html.theme_gitgudv2 .hideMenu, .theme_gitgudv2 .extraMenu, .theme_gitgudv2 .hideMenu {
  border-color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .modalHeader, html.theme_gitgudv2 #quick-reply .handle, .theme_gitgudv2 .modalHeader, .theme_gitgudv2 #quick-reply .handle {
  background: var(--gg-bg-header) !important;
  color: var(--gg-accent-brown) !important;
  border-radius: var(--gg-radius-md) var(--gg-radius-md) 0 0 !important;
  padding: 6px 12px !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 7. LINKS & INTERACTIVE TEXT --- */
}
html.theme_gitgudv2 a, html.theme_gitgudv2 .reportdeletebuttons, .theme_gitgudv2 a, .theme_gitgudv2 .reportdeletebuttons {
  color: var(--gg-accent-purple) !important;
  transition: color var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 a:hover, .theme_gitgudv2 a:hover {
  color: var(--gg-accent-hover) !important;
  text-decoration: none !important;
}
html.theme_gitgudv2 .handle a, .theme_gitgudv2 .handle a {
  color: var(--gg-accent-brown) !important;
}
html.theme_gitgudv2 .linkName, .theme_gitgudv2 .linkName {
  color: var(--gg-accent-brown) !important;
  font-weight: 600 !important;
}
html.theme_gitgudv2 .linkName:hover, .theme_gitgudv2 .linkName:hover {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 .linkQuote, html.theme_gitgudv2 .linkSelf, .theme_gitgudv2 .linkQuote, .theme_gitgudv2 .linkSelf {
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2 h2 a:link, .theme_gitgudv2 h2 a:link {
  color: var(--gg-accent-brown) !important;
}
html.theme_gitgudv2 h2 a:visited, .theme_gitgudv2 h2 a:visited {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 8. CHAN MARKUP & SPOILERS --- */
}
html.theme_gitgudv2 .greenText, html.theme_gitgudv2 .quote, .theme_gitgudv2 .greenText, .theme_gitgudv2 .quote {
  color: var(--gg-accent-green) !important;
}
html.theme_gitgudv2 .redText, .theme_gitgudv2 .redText {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 .orangeText, .theme_gitgudv2 .orangeText {
  color: var(--gg-accent-orange) !important;
}
html.theme_gitgudv2 .brackets::after, html.theme_gitgudv2 .brackets::before, .theme_gitgudv2 .brackets::after, .theme_gitgudv2 .brackets::before {
  color: var(--gg-text-dim) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Modern Spoilers */
}
html.theme_gitgudv2 span.spoiler, .theme_gitgudv2 span.spoiler {
  background: var(--gg-bg-surface1) !important;
  color: var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-sm) !important;
  padding: 0 4px !important;
  transition: all var(--gg-trans-fast) !important;
}
html.theme_gitgudv2 span.spoiler:hover, .theme_gitgudv2 span.spoiler:hover {
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2 span.spoiler > .greenText, .theme_gitgudv2 span.spoiler > .greenText {
  color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 span.spoiler > .orangeText, .theme_gitgudv2 span.spoiler > .orangeText {
  color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 span.spoiler > a, .theme_gitgudv2 span.spoiler > a {
  color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 span.spoiler:hover > .greenText, .theme_gitgudv2 span.spoiler:hover > .greenText {
  color: var(--gg-accent-green) !important;
}
html.theme_gitgudv2 span.spoiler:hover > .orangeText, .theme_gitgudv2 span.spoiler:hover > .orangeText {
  color: var(--gg-accent-orange) !important;
}
html.theme_gitgudv2 span.spoiler:hover > a, .theme_gitgudv2 span.spoiler:hover > a {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 9. MODALS, PANELS & GLASSMORPHISM --- */
}
html.theme_gitgudv2 #quick-reply table, html.theme_gitgudv2 .modalDecorationPanel, .theme_gitgudv2 #quick-reply table, .theme_gitgudv2 .modalDecorationPanel {
  background: var(--gg-bg-mantle) !important;
  border: 1px solid var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-md) !important;
  box-shadow: var(--gg-shadow-md) !important;
  outline-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Settings menu — full color table (2026-08-17): base _settingsMenu.scss is
     dark-plum; now every surface uses the GitGud V2 palette (same surface set as green). */
}
html.theme_gitgudv2 #settingsMenu, .theme_gitgudv2 #settingsMenu {
  background: var(--gg-bg-base) !important;
  color: var(--gg-text-main) !important;
  border-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 #settingsMenu > .header, .theme_gitgudv2 #settingsMenu > .header {
  background: var(--gg-bg-header) !important;
  color: var(--gg-accent-brown) !important;
  border-bottom-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 #settingsMenu > div:nth-child(3), html.theme_gitgudv2 #settingsMenu > div:nth-child(4), .theme_gitgudv2 #settingsMenu > div:nth-child(3), .theme_gitgudv2 #settingsMenu > div:nth-child(4) {
  background: var(--gg-bg-mantle) !important;
}
html.theme_gitgudv2 #settingsMenu .settingsTab, .theme_gitgudv2 #settingsMenu .settingsTab {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 #settingsMenu .settingsTab:hover, html.theme_gitgudv2 #settingsMenu .settingsTab:focus, .theme_gitgudv2 #settingsMenu .settingsTab:hover, .theme_gitgudv2 #settingsMenu .settingsTab:focus {
  background: var(--gg-bg-surface0) !important;
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2 #settingsMenu #selectedTab, .theme_gitgudv2 #settingsMenu #selectedTab {
  background: var(--gg-accent-purple) !important;
  color: var(--gg-bg-base) !important;
}
html.theme_gitgudv2 #settingsMenu .settingsSectionTitle, .theme_gitgudv2 #settingsMenu .settingsSectionTitle {
  color: var(--gg-text-sub) !important;
  border-bottom-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 #settingsMenu .settingName, .theme_gitgudv2 #settingsMenu .settingName {
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2 #settingsMenu .settingDesc, .theme_gitgudv2 #settingsMenu .settingDesc {
  color: var(--gg-text-dim) !important;
}
html.theme_gitgudv2 #settingsMenu .settingsCheckbox, .theme_gitgudv2 #settingsMenu .settingsCheckbox {
  accent-color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 #settingsMenu .saveButton, .theme_gitgudv2 #settingsMenu .saveButton {
  background: var(--gg-accent-purple) !important;
  color: var(--gg-bg-base) !important;
}
html.theme_gitgudv2 #settingsMenu .saveButton:hover, .theme_gitgudv2 #settingsMenu .saveButton:hover {
  background: var(--gg-accent-hover) !important;
}
html.theme_gitgudv2 #settingsMenu #newFilterPanel select, html.theme_gitgudv2 #settingsMenu #newFilterPanel input[type=text], .theme_gitgudv2 #settingsMenu #newFilterPanel select, .theme_gitgudv2 #settingsMenu #newFilterPanel input[type=text] {
  background: var(--gg-bg-crust) !important;
  color: var(--gg-text-main) !important;
  border-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 #settingsMenu #newFilterPanel button, .theme_gitgudv2 #settingsMenu #newFilterPanel button {
  background: var(--gg-bg-surface0) !important;
  color: var(--gg-text-main) !important;
  border-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 #settingsMenu #newFilterPanel button:hover, .theme_gitgudv2 #settingsMenu #newFilterPanel button:hover {
  background: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 #settingsMenu .existingFilterTypeLabel, html.theme_gitgudv2 #settingsMenu .existingFilterContentLabel, .theme_gitgudv2 #settingsMenu .existingFilterTypeLabel, .theme_gitgudv2 #settingsMenu .existingFilterContentLabel {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 #settingsMenu .filterDeleteButton, .theme_gitgudv2 #settingsMenu .filterDeleteButton {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 #settingsMenu .filterDeleteButton:hover, .theme_gitgudv2 #settingsMenu .filterDeleteButton:hover {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 #settingsMenu #themeSelector, html.theme_gitgudv2 #settingsMenu #cssInput, .theme_gitgudv2 #settingsMenu #themeSelector, .theme_gitgudv2 #settingsMenu #cssInput {
  background: var(--gg-bg-crust) !important;
  color: var(--gg-text-main) !important;
  border-color: var(--gg-bg-surface1) !important;
}
html.theme_gitgudv2 #closeSettingsMenuButton, .theme_gitgudv2 #closeSettingsMenuButton {
  color: var(--gg-accent-brown) !important;
}
html.theme_gitgudv2 .captchaTimer, .theme_gitgudv2 .captchaTimer {
  background: var(--gg-bg-mantle) !important;
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2 .modalInnerDecorationPanel, html.theme_gitgudv2 .post-table, .theme_gitgudv2 .modalInnerDecorationPanel, .theme_gitgudv2 .post-table {
  background-color: var(--gg-bg-mantle) !important;
}
html.theme_gitgudv2 .modalPanel, .theme_gitgudv2 .modalPanel {
  background: rgba(18, 17, 21, 0.75) !important;
  backdrop-filter: blur(8px) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 10. LABELS, METADATA & BADGES --- */
  /* Desktop-only: on <=479px .labelId is the color-coded ID dot (inline
     background-color:#<idhash> + font-size:0 sphere in _posting.scss) — these
     !important rules would stomp the dot's identity and re-expose the ID text. */
}
@media (min-width: 500px) {
  html.theme_gitgudv2 .labelId, .theme_gitgudv2 .labelId {
    color: var(--gg-accent-brown) !important;
    background: var(--gg-bg-mantle) !important;
    padding: 1px 6px !important;
    border-radius: var(--gg-radius-full) !important;
    font-size: 0.85em !important;
  }
}
html.theme_gitgudv2 .labelCreated, html.theme_gitgudv2 .spanId, .theme_gitgudv2 .labelCreated, .theme_gitgudv2 .spanId {
  color: var(--gg-text-dim) !important;
}
html.theme_gitgudv2 .labelRole, .theme_gitgudv2 .labelRole {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 .labelSubject, .theme_gitgudv2 .labelSubject {
  color: var(--gg-accent-red) !important;
  font-weight: 600 !important;
}
html.theme_gitgudv2 .labelOmission, .theme_gitgudv2 .labelOmission {
  color: var(--gg-text-dim) !important;
}
html.theme_gitgudv2 .panelBacklinks a, .theme_gitgudv2 .panelBacklinks a {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 .panelBacklinks a:hover, .theme_gitgudv2 .panelBacklinks a:hover {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .quoteLink, html.theme_gitgudv2 .quoteLink:hover, .theme_gitgudv2 .quoteLink, .theme_gitgudv2 .quoteLink:hover {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .uploadDetails, .theme_gitgudv2 .uploadDetails {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 .navLinkSpan, .theme_gitgudv2 .navLinkSpan {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Upload & Preview Area */
}
html.theme_gitgudv2 #divOekaki, .theme_gitgudv2 #divOekaki {
  background-color: var(--gg-bg-mantle) !important;
  border-radius: var(--gg-radius-md) !important;
}
html.theme_gitgudv2 #previewContainer, .theme_gitgudv2 #previewContainer {
  background: rgba(18, 17, 21, 0.85) !important;
  backdrop-filter: blur(6px) !important;
}
html.theme_gitgudv2 .fileBrowser, .theme_gitgudv2 .fileBrowser {
  background: none !important;
  color: var(--gg-text-main) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Front Page / Latest Posts */
}
html.theme_gitgudv2 #divLatestPosts .latestPostCell, .theme_gitgudv2 #divLatestPosts .latestPostCell {
  background: var(--gg-bg-surface0) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 #divLatestImages img, .theme_gitgudv2 #divLatestImages img {
  border-color: var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* Boards list */
}
html.theme_gitgudv2 #boardsCellHeader span, .theme_gitgudv2 #boardsCellHeader span {
  background: var(--gg-bg-mantle) !important;
  color: var(--gg-text-main) !important;
  border-color: var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .boardsCell:nth-of-type(2n+1) span, .theme_gitgudv2 .boardsCell:nth-of-type(2n+1) span {
  background-color: rgba(255, 255, 255, 0.03) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 11. CODE HIGHLIGHTING (HIGHLIGHT.JS) --- */
}
html.theme_gitgudv2 .hljs, .theme_gitgudv2 .hljs {
  background: var(--gg-bg-crust) !important;
  color: var(--gg-text-main) !important;
  border-radius: var(--gg-radius-md) !important;
  font-family: var(--gg-font-mono) !important;
  padding: 12px !important;
}
html.theme_gitgudv2 .hljs-comment, html.theme_gitgudv2 .hljs-quote, .theme_gitgudv2 .hljs-comment, .theme_gitgudv2 .hljs-quote {
  color: var(--gg-text-dim) !important;
}
html.theme_gitgudv2 .hljs-keyword, .theme_gitgudv2 .hljs-keyword {
  color: var(--gg-accent-purple) !important;
}
html.theme_gitgudv2 .hljs-string, .theme_gitgudv2 .hljs-string {
  color: var(--gg-accent-green) !important;
}
html.theme_gitgudv2 .hljs-number, .theme_gitgudv2 .hljs-number {
  color: var(--gg-accent-orange) !important;
}
html.theme_gitgudv2 .hljs-title, .theme_gitgudv2 .hljs-title {
  color: var(--gg-accent-brown) !important;
}
html.theme_gitgudv2 .hljs-variable, .theme_gitgudv2 .hljs-variable {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 {
  /* --- 12. CAPTCHA, BANS & MISC OVERRIDES --- */
}
html.theme_gitgudv2 #labelCaptchaId, .theme_gitgudv2 #labelCaptchaId {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 #solved, .theme_gitgudv2 #solved {
  color: var(--gg-accent-green) !important;
}
html.theme_gitgudv2 .divBanMessage, .theme_gitgudv2 .divBanMessage {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 .dot, .theme_gitgudv2 .dot {
  background-color: var(--gg-accent-orange) !important;
}
html.theme_gitgudv2 .medals .text, .theme_gitgudv2 .medals .text {
  background-color: var(--gg-bg-surface0) !important;
  color: var(--gg-text-main) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .mobileAlert, .theme_gitgudv2 .mobileAlert {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 .radiospan, .theme_gitgudv2 .radiospan {
  color: var(--gg-bg-crust) !important;
  background-color: var(--gg-accent-red) !important;
  border-radius: var(--gg-radius-full) !important;
}
html.theme_gitgudv2 #boardContentLinks, .theme_gitgudv2 #boardContentLinks {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 #reportActions, .theme_gitgudv2 #reportActions {
  background-color: var(--gg-bg-surface0) !important;
}
html.theme_gitgudv2 .contentAction, .theme_gitgudv2 .contentAction {
  background: var(--gg-bg-mantle) !important;
  border-color: var(--gg-bg-surface1) !important;
  border-radius: var(--gg-radius-md) !important;
}
html.theme_gitgudv2 .appealForm table tr th, html.theme_gitgudv2 table.modInfo tr th, .theme_gitgudv2 .appealForm table tr th, .theme_gitgudv2 table.modInfo tr th {
  background: var(--gg-bg-header) !important;
  color: var(--gg-accent-brown) !important;
}
html.theme_gitgudv2 .captchaImage, .theme_gitgudv2 .captchaImage {
  background-color: var(--gg-bg-mantle) !important;
  color: var(--gg-text-main) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 .contentOmissionIndicator, .theme_gitgudv2 .contentOmissionIndicator {
  color: var(--gg-text-sub) !important;
}
html.theme_gitgudv2 .linkFollow, .theme_gitgudv2 .linkFollow {
  color: var(--gg-accent-green) !important;
}
html.theme_gitgudv2 .linkFollowAlt, .theme_gitgudv2 .linkFollowAlt {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 .mFixed, .theme_gitgudv2 .mFixed {
  background: var(--gg-bg-mantle) !important;
}
html.theme_gitgudv2 .noEmailName, .theme_gitgudv2 .noEmailName {
  color: var(--gg-accent-brown) !important;
}
html.theme_gitgudv2 .sage, html.theme_gitgudv2 .bumpLockIndicator, .theme_gitgudv2 .sage, .theme_gitgudv2 .bumpLockIndicator {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 .watchedNotification::before, .theme_gitgudv2 .watchedNotification::before {
  color: var(--gg-accent-red) !important;
}
html.theme_gitgudv2 div.titlebar, .theme_gitgudv2 div.titlebar {
  background: var(--gg-bg-header) !important;
  color: var(--gg-accent-brown) !important;
  border-radius: var(--gg-radius-sm) !important;
}
html.theme_gitgudv2 #siteName, .theme_gitgudv2 #siteName {
  color: var(--gg-accent-brown) !important;
}
html.theme_gitgudv2, .theme_gitgudv2 { /* main site title — theme's header-title hue (was falling back to base body text) */ }

html.theme_gitgud, .theme_gitgud {
  color-scheme: dark;
  background: #211f26 none;
  color: #e2ded9;
  /* ==========================================================================
     GitGud Dark Plum / Brown / Cream - Fully Overridden Theme File
     ========================================================================== */
}
html.theme_gitgud, .theme_gitgud {
  /* Core Variables */
  /* Deep dark plum background */
  /* Darker inputs / panels */
  /* Code blocks / deepest layer */
  /* Post cards / floating menus */
  /* Hover highlights / upload cells */
  /* Signature GitGud deep purple header */
  /* Off-white / cream text */
  /* Muted brown-gray text */
  /* Borders / muted icons */
  /* Links / interactive elements */
  /* Link hover */
  /* Header titles / names */
  /* Sage quote text */
  /* Subjects / errors */
  /* Warnings */
  /* Base Structure & Page Elements */
  background: #211f26 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud body, .theme_gitgud body {
  background: #211f26 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud #footer, .theme_gitgud #footer {
  color: #b3aba2 !important;
}
html.theme_gitgud #news, .theme_gitgud #news {
  background: #1a181e !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .hiddenThread, .theme_gitgud .hiddenThread {
  background: #2e2b36 !important;
}
html.theme_gitgud .kCard .kBody,
html.theme_gitgud #indexWrapper #indexLeft > div,
html.theme_gitgud #indexWrapper #indexRight > div,
html.theme_gitgud #subpageWrapper > div,
html.theme_gitgud #redirect > div, .theme_gitgud .kCard .kBody,
.theme_gitgud #indexWrapper #indexLeft > div,
.theme_gitgud #indexWrapper #indexRight > div,
.theme_gitgud #subpageWrapper > div,
.theme_gitgud #redirect > div {
  background-color: #1a181e !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud .mCard, .theme_gitgud .mCard {
  background-color: #1a181e !important;
}
html.theme_gitgud .mCard > h2, .theme_gitgud .mCard > h2 {
  background: #3e2a47 !important;
  color: #cbb092 !important;
}
html.theme_gitgud .unimportant, html.theme_gitgud .unimportant *, .theme_gitgud .unimportant, .theme_gitgud .unimportant * {
  color: #857d75 !important;
}
html.theme_gitgud #cookieBanner, .theme_gitgud #cookieBanner {
  background-color: #2e2b36 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud h2, html.theme_gitgud h3, .theme_gitgud h2, .theme_gitgud h3 {
  color: #cbb092 !important;
  background: #3e2a47 !important;
}
html.theme_gitgud progress, .theme_gitgud progress {
  background: #2e2b36 !important;
}
html.theme_gitgud progress::-webkit-progress-value, .theme_gitgud progress::-webkit-progress-value {
  background: #87b279 !important;
}
html.theme_gitgud progress::-moz-progress-bar, .theme_gitgud progress::-moz-progress-bar {
  background: #87b279 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Scrollbars, rules & selection (standardization pass) */
}
html.theme_gitgud *, .theme_gitgud * {
  scrollbar-color: #3d3a47 #121115 !important;
}
html.theme_gitgud hr, .theme_gitgud hr {
  border-color: #3d3a47 !important;
}
html.theme_gitgud ::selection, .theme_gitgud ::selection {
  background: #a872cc !important;
  color: #211f26 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Posts & Reply Cells */
}
html.theme_gitgud .topBoards a, html.theme_gitgud .innerPost, html.theme_gitgud .markedPost, html.theme_gitgud .floatingMenu, .theme_gitgud .topBoards a, .theme_gitgud .innerPost, .theme_gitgud .markedPost, .theme_gitgud .floatingMenu {
  background: #2e2b36 !important;
}
html.theme_gitgud #watchedMenu .watchedCellLabel a, .theme_gitgud #watchedMenu .watchedCellLabel a {
  color: #cbb092 !important;
}
html.theme_gitgud, .theme_gitgud { /* watched-threads menu links (theme's name/link token) */ }
html.theme_gitgud .markedPost, html.theme_gitgud div.postCell:target .innerPost, .theme_gitgud .markedPost, .theme_gitgud div.postCell:target .innerPost {
  outline-color: #a872cc !important;
}
html.theme_gitgud .quoteTooltip > div, .theme_gitgud .quoteTooltip > div {
  border-color: #a872cc !important;
}
html.theme_gitgud .uploadDetails, .theme_gitgud .uploadDetails {
  color: #b3aba2 !important;
}
html.theme_gitgud .innerOP .expandLabel, html.theme_gitgud .innerOP .collapseLabel, .theme_gitgud .innerOP .expandLabel, .theme_gitgud .innerOP .collapseLabel {
  background: #1a181e !important;
  color: #b3aba2 !important;
}
html.theme_gitgud .innerOP .bottomGradient, .theme_gitgud .innerOP .bottomGradient {
  background: linear-gradient(transparent, #1a181e) !important;
}
html.theme_gitgud .innerPost .expandLabel, html.theme_gitgud .innerPost .collapseLabel, .theme_gitgud .innerPost .expandLabel, .theme_gitgud .innerPost .collapseLabel {
  background: #2e2b36 !important;
  color: #b3aba2 !important;
}
html.theme_gitgud .markedPost .expandLabel, html.theme_gitgud .markedPost .collapseLabel, .theme_gitgud .markedPost .expandLabel, .theme_gitgud .markedPost .collapseLabel {
  background: #2e2b36 !important;
  color: #b3aba2 !important;
}
html.theme_gitgud .innerPost .bottomGradient, .theme_gitgud .innerPost .bottomGradient {
  background: linear-gradient(transparent, #2e2b36) !important;
}
html.theme_gitgud .innerPost .panelUploads .uploadCell, html.theme_gitgud .markedPost .panelUploads .uploadCell, .theme_gitgud .innerPost .panelUploads .uploadCell, .theme_gitgud .markedPost .panelUploads .uploadCell {
  background: #3d3a47 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Catalog View */
}
html.theme_gitgud .catalogCell, .theme_gitgud .catalogCell {
  background: rgba(255, 255, 255, 0.03) !important;
}
html.theme_gitgud .catalogCell .labelSubject, .theme_gitgud .catalogCell .labelSubject {
  color: #d96c6c !important;
}
html.theme_gitgud .catalogCell:hover, .theme_gitgud .catalogCell:hover {
  background: #3d3a47 !important;
}
html.theme_gitgud .catalogCell:hover .divMessage, html.theme_gitgud .catalogCell:focus .divMessage, .theme_gitgud .catalogCell:hover .divMessage, .theme_gitgud .catalogCell:focus .divMessage {
  background: #3d3a47 !important;
  outline-color: #3d3a47 !important;
}
html.theme_gitgud .threadStats, .theme_gitgud .threadStats {
  color: #b3aba2 !important;
}
html.theme_gitgud .linkThumb img, .theme_gitgud .linkThumb img {
  border: 1px solid #3d3a47 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Navigation & Menus */
}
html.theme_gitgud #topNav, .theme_gitgud #topNav {
  background: transparent !important;
}
html.theme_gitgud #topNav.active, html.theme_gitgud #topNav.fixed, .theme_gitgud #topNav.active, .theme_gitgud #topNav.fixed {
  background: #1a181e !important;
  border-bottom: 1px solid #3d3a47 !important;
}
html.theme_gitgud .divPages, html.theme_gitgud #divPages, .theme_gitgud .divPages, .theme_gitgud #divPages {
  border-color: #3d3a47 !important;
}
html.theme_gitgud .extraMenu a, .theme_gitgud .extraMenu a {
  color: #e2ded9 !important;
}
html.theme_gitgud .extraMenu div:hover, html.theme_gitgud .hideMenu div:hover, .theme_gitgud .extraMenu div:hover, .theme_gitgud .hideMenu div:hover {
  background: #3d3a47 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .extraMenu, html.theme_gitgud .hideMenu, .theme_gitgud .extraMenu, .theme_gitgud .hideMenu {
  border-color: #a872cc !important;
}
html.theme_gitgud .modalHeader, html.theme_gitgud #quick-reply .handle, .theme_gitgud .modalHeader, .theme_gitgud #quick-reply .handle {
  background: #3e2a47 !important;
  color: #cbb092 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Links & Interactive Text */
}
html.theme_gitgud a, html.theme_gitgud .reportdeletebuttons, .theme_gitgud a, .theme_gitgud .reportdeletebuttons {
  color: #a872cc !important;
}
html.theme_gitgud a:hover, .theme_gitgud a:hover {
  color: #c28fe6 !important;
}
html.theme_gitgud .handle a, .theme_gitgud .handle a {
  color: #cbb092 !important;
}
html.theme_gitgud .linkName, .theme_gitgud .linkName {
  color: #cbb092 !important;
}
html.theme_gitgud .linkName:hover, .theme_gitgud .linkName:hover {
  color: #d96c6c !important;
}
html.theme_gitgud .linkQuote, html.theme_gitgud .linkSelf, .theme_gitgud .linkQuote, .theme_gitgud .linkSelf {
  color: #e2ded9 !important;
}
html.theme_gitgud h2 a:link, .theme_gitgud h2 a:link {
  color: #cbb092 !important;
}
html.theme_gitgud h2 a:visited, .theme_gitgud h2 a:visited {
  color: #b3aba2 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Chan Markup & Spoilers */
}
html.theme_gitgud .greenText, html.theme_gitgud .quote, .theme_gitgud .greenText, .theme_gitgud .quote {
  color: #87b279 !important;
}
html.theme_gitgud .redText, .theme_gitgud .redText {
  color: #d96c6c !important;
}
html.theme_gitgud .orangeText, .theme_gitgud .orangeText {
  color: #e09867 !important;
}
html.theme_gitgud .brackets::after, html.theme_gitgud .brackets::before, .theme_gitgud .brackets::after, .theme_gitgud .brackets::before {
  color: #857d75 !important;
}
html.theme_gitgud span.spoiler, .theme_gitgud span.spoiler {
  background: #3d3a47 !important;
  color: #3d3a47 !important;
}
html.theme_gitgud span.spoiler:hover, .theme_gitgud span.spoiler:hover {
  color: #e2ded9 !important;
}
html.theme_gitgud span.spoiler > .greenText, .theme_gitgud span.spoiler > .greenText {
  color: #3d3a47 !important;
}
html.theme_gitgud span.spoiler > .orangeText, .theme_gitgud span.spoiler > .orangeText {
  color: #3d3a47 !important;
}
html.theme_gitgud span.spoiler > a, .theme_gitgud span.spoiler > a {
  color: #3d3a47 !important;
}
html.theme_gitgud span.spoiler:hover > .greenText, .theme_gitgud span.spoiler:hover > .greenText {
  color: #87b279 !important;
}
html.theme_gitgud span.spoiler:hover > .orangeText, .theme_gitgud span.spoiler:hover > .orangeText {
  color: #e09867 !important;
}
html.theme_gitgud span.spoiler:hover > a, .theme_gitgud span.spoiler:hover > a {
  color: #a872cc !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Forms & Inputs (legacy table layout) */
}
html.theme_gitgud #postingForm th, html.theme_gitgud .modalTableBody th, .theme_gitgud #postingForm th, .theme_gitgud .modalTableBody th {
  color: #cbb092 !important;
  background: #3e2a47 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Posting form card (.post-card — redesigned 2026-08-16) */
}
html.theme_gitgud .post-card, .theme_gitgud .post-card {
  background: #1a181e !important;
  border-color: #3d3a47 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .post-card .postingInput, html.theme_gitgud .post-card textarea, html.theme_gitgud .post-card select, .theme_gitgud .post-card .postingInput, .theme_gitgud .post-card textarea, .theme_gitgud .post-card select {
  background-color: #121115 !important;
  border-color: #3d3a47 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .post-card .postingInput:focus, html.theme_gitgud .post-card textarea:focus, html.theme_gitgud .post-card select:focus, .theme_gitgud .post-card .postingInput:focus, .theme_gitgud .post-card textarea:focus, .theme_gitgud .post-card select:focus {
  border-color: #a872cc !important;
}
html.theme_gitgud .post-card input::placeholder, html.theme_gitgud .post-card textarea::placeholder, .theme_gitgud .post-card input::placeholder, .theme_gitgud .post-card textarea::placeholder {
  color: #857d75 !important;
  opacity: 1 !important;
}
html.theme_gitgud .post-card .dropzone, .theme_gitgud .post-card .dropzone {
  border-color: #3d3a47 !important;
  color: #b3aba2 !important;
  background: transparent !important;
}
html.theme_gitgud .post-card .dropzone:hover, .theme_gitgud .post-card .dropzone:hover {
  border-color: #a872cc !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .dragAndDropDiv, html.theme_gitgud .dragAndDropThumb, .theme_gitgud .dragAndDropDiv, .theme_gitgud .dragAndDropThumb {
  color: #e2ded9 !important;
  background-color: rgba(61, 58, 71, 0.5) !important;
}
html.theme_gitgud #selectedDiv .selectedCell, html.theme_gitgud #selectedDivQr .selectedCell, .theme_gitgud #selectedDiv .selectedCell, .theme_gitgud #selectedDivQr .selectedCell {
  background: #2e2b36 !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud .removeButton, .theme_gitgud .removeButton {
  color: #857d75 !important;
}
html.theme_gitgud .removeButton:hover, .theme_gitgud .removeButton:hover {
  color: #d96c6c !important;
}
html.theme_gitgud .post-card .toggle-badge, .theme_gitgud .post-card .toggle-badge {
  background: #2e2b36 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .post-card .advanced-drawer, .theme_gitgud .post-card .advanced-drawer {
  background: #121115 !important;
}
html.theme_gitgud .post-card .drawer-toggle, .theme_gitgud .post-card .drawer-toggle {
  color: #a872cc !important;
}
html.theme_gitgud .post-card .btn-submit, .theme_gitgud .post-card .btn-submit {
  background: #a872cc !important;
  color: #211f26 !important;
}
html.theme_gitgud .post-card .btn-submit:hover, .theme_gitgud .post-card .btn-submit:hover {
  background: #c28fe6 !important;
}
html.theme_gitgud .post-card .post-rules-panel, .theme_gitgud .post-card .post-rules-panel {
  background: #1a181e !important;
  border-color: #3d3a47 !important;
  color: #b3aba2 !important;
}
html.theme_gitgud .post-card .post-rules-panel a, .theme_gitgud .post-card .post-rules-panel a {
  color: #a872cc !important;
}
html.theme_gitgud .post-card .rules-line, .theme_gitgud .post-card .rules-line {
  color: #b3aba2 !important;
}
html.theme_gitgud .post-card .rules-line a, .theme_gitgud .post-card .rules-line a {
  color: #a872cc !important;
}
html.theme_gitgud .post-card .captchaImage, .theme_gitgud .post-card .captchaImage {
  background: #2e2b36 !important;
}
html.theme_gitgud .post-card .captchaTimer, .theme_gitgud .post-card .captchaTimer {
  color: #857d75 !important;
  opacity: 1 !important;
}
html.theme_gitgud .post-card .no-cookie-link, .theme_gitgud .post-card .no-cookie-link {
  color: #a872cc !important;
}
html.theme_gitgud .dragAndDropDiv, html.theme_gitgud .dragAndDropThumb, .theme_gitgud .dragAndDropDiv, .theme_gitgud .dragAndDropThumb {
  color: #e2ded9 !important;
  background-color: rgba(61, 58, 71, 0.5) !important;
}
html.theme_gitgud .dropzone, .theme_gitgud .dropzone {
  color: #b3aba2 !important;
  background-color: rgba(46, 43, 54, 0.5) !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud .dropzone:hover, .theme_gitgud .dropzone:hover {
  color: #e2ded9 !important;
  background-color: #3d3a47 !important;
}
html.theme_gitgud .innerOP .panelUploads .uploadCell, .theme_gitgud .innerOP .panelUploads .uploadCell {
  background: #1a181e !important;
}
html.theme_gitgud #selectedDiv .selectedCell, .theme_gitgud #selectedDiv .selectedCell {
  background: #2e2b36 !important;
}
html.theme_gitgud .removeButton, .theme_gitgud .removeButton {
  color: #857d75 !important;
}
html.theme_gitgud .removeButton:hover, .theme_gitgud .removeButton:hover {
  color: #d96c6c !important;
}
html.theme_gitgud input::placeholder, html.theme_gitgud textarea::placeholder, .theme_gitgud input::placeholder, .theme_gitgud textarea::placeholder {
  color: #857d75 !important;
}
html.theme_gitgud input, html.theme_gitgud textarea, html.theme_gitgud select, .theme_gitgud input, .theme_gitgud textarea, .theme_gitgud select {
  background-color: #1a181e !important;
  color: #e2ded9 !important;
  border: 1px solid #3d3a47 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Modals & Settings Menu */
}
html.theme_gitgud #quick-reply table, html.theme_gitgud .modalDecorationPanel, .theme_gitgud #quick-reply table, .theme_gitgud .modalDecorationPanel {
  background: #1a181e !important;
  border-color: #3d3a47 !important;
  outline-color: #3d3a47 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Settings menu — full color table (2026-08-17): base _settingsMenu.scss is
     dark-plum and only these frame rules overrode it, leaving tabs/titles/
     inputs/save-button on the base purple. Now every surface uses GitGud's own
     palette (same surface set as green's table). */
}
html.theme_gitgud #settingsMenu, .theme_gitgud #settingsMenu {
  background: #211f26 !important;
  color: #e2ded9 !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud #settingsMenu > .header, .theme_gitgud #settingsMenu > .header {
  background: #3e2a47 !important;
  color: #cbb092 !important;
  border-bottom-color: #3d3a47 !important;
}
html.theme_gitgud #settingsMenu > div:nth-child(3), html.theme_gitgud #settingsMenu > div:nth-child(4), .theme_gitgud #settingsMenu > div:nth-child(3), .theme_gitgud #settingsMenu > div:nth-child(4) {
  background: #1a181e !important;
}
html.theme_gitgud #settingsMenu .settingsTab, .theme_gitgud #settingsMenu .settingsTab {
  color: #b3aba2 !important;
}
html.theme_gitgud #settingsMenu .settingsTab:hover, html.theme_gitgud #settingsMenu .settingsTab:focus, .theme_gitgud #settingsMenu .settingsTab:hover, .theme_gitgud #settingsMenu .settingsTab:focus {
  background: #2e2b36 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud #settingsMenu #selectedTab, .theme_gitgud #settingsMenu #selectedTab {
  background: #a872cc !important;
  color: #211f26 !important;
}
html.theme_gitgud #settingsMenu .settingsSectionTitle, .theme_gitgud #settingsMenu .settingsSectionTitle {
  color: #b3aba2 !important;
  border-bottom-color: #3d3a47 !important;
}
html.theme_gitgud #settingsMenu .settingName, .theme_gitgud #settingsMenu .settingName {
  color: #e2ded9 !important;
}
html.theme_gitgud #settingsMenu .settingDesc, .theme_gitgud #settingsMenu .settingDesc {
  color: #857d75 !important;
}
html.theme_gitgud #settingsMenu .settingsCheckbox, .theme_gitgud #settingsMenu .settingsCheckbox {
  accent-color: #a872cc !important;
}
html.theme_gitgud #settingsMenu .saveButton, .theme_gitgud #settingsMenu .saveButton {
  background: #a872cc !important;
  color: #211f26 !important;
}
html.theme_gitgud #settingsMenu .saveButton:hover, .theme_gitgud #settingsMenu .saveButton:hover {
  background: #c28fe6 !important;
}
html.theme_gitgud #settingsMenu #newFilterPanel select, html.theme_gitgud #settingsMenu #newFilterPanel input[type=text], .theme_gitgud #settingsMenu #newFilterPanel select, .theme_gitgud #settingsMenu #newFilterPanel input[type=text] {
  background: #121115 !important;
  color: #e2ded9 !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud #settingsMenu #newFilterPanel button, .theme_gitgud #settingsMenu #newFilterPanel button {
  background: #2e2b36 !important;
  color: #e2ded9 !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud #settingsMenu #newFilterPanel button:hover, .theme_gitgud #settingsMenu #newFilterPanel button:hover {
  background: #3d3a47 !important;
}
html.theme_gitgud #settingsMenu .existingFilterTypeLabel, html.theme_gitgud #settingsMenu .existingFilterContentLabel, .theme_gitgud #settingsMenu .existingFilterTypeLabel, .theme_gitgud #settingsMenu .existingFilterContentLabel {
  color: #b3aba2 !important;
}
html.theme_gitgud #settingsMenu .filterDeleteButton, .theme_gitgud #settingsMenu .filterDeleteButton {
  color: #b3aba2 !important;
}
html.theme_gitgud #settingsMenu .filterDeleteButton:hover, .theme_gitgud #settingsMenu .filterDeleteButton:hover {
  color: #d96c6c !important;
}
html.theme_gitgud #settingsMenu #themeSelector, html.theme_gitgud #settingsMenu #cssInput, .theme_gitgud #settingsMenu #themeSelector, .theme_gitgud #settingsMenu #cssInput {
  background: #121115 !important;
  color: #e2ded9 !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud #closeSettingsMenuButton, .theme_gitgud #closeSettingsMenuButton {
  color: #cbb092 !important;
}
html.theme_gitgud .captchaTimer, .theme_gitgud .captchaTimer {
  background: #1a181e !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .modalInnerDecorationPanel, html.theme_gitgud .post-table, .theme_gitgud .modalInnerDecorationPanel, .theme_gitgud .post-table {
  background-color: #1a181e !important;
}
html.theme_gitgud .modalPanel, .theme_gitgud .modalPanel {
  background: rgba(18, 17, 21, 0.85) !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Labels & Metadata */
  /* ID badge text: full-cream like the name field (.linkName) — base opacity
     was .6, bump to 1. The black text outline is inherited from base
     _posting.scss (canonical guard against hash-color collisions). */
}
html.theme_gitgud .labelId, .theme_gitgud .labelId {
  color: #cbb092 !important;
  opacity: 1 !important;
}
html.theme_gitgud .labelCreated, html.theme_gitgud .spanId, .theme_gitgud .labelCreated, .theme_gitgud .spanId {
  color: #857d75 !important;
}
html.theme_gitgud .labelRole, .theme_gitgud .labelRole {
  color: #d96c6c !important;
}
html.theme_gitgud .labelSubject, .theme_gitgud .labelSubject {
  color: #d96c6c !important;
}
html.theme_gitgud .labelOmission, .theme_gitgud .labelOmission {
  color: #857d75 !important;
}
html.theme_gitgud .panelBacklinks a, .theme_gitgud .panelBacklinks a {
  color: #b3aba2 !important;
}
html.theme_gitgud .panelBacklinks a:hover, .theme_gitgud .panelBacklinks a:hover {
  color: #a872cc !important;
}
html.theme_gitgud .quoteLink, html.theme_gitgud .quoteLink:hover, .theme_gitgud .quoteLink, .theme_gitgud .quoteLink:hover {
  color: #a872cc !important;
}
html.theme_gitgud .navLinkSpan, .theme_gitgud .navLinkSpan {
  color: #b3aba2 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Upload & Preview Area */
}
html.theme_gitgud #divOekaki, .theme_gitgud #divOekaki {
  background-color: #1a181e !important;
}
html.theme_gitgud #previewContainer, .theme_gitgud #previewContainer {
  background: rgba(18, 17, 21, 0.7) !important;
}
html.theme_gitgud .fileBrowser, .theme_gitgud .fileBrowser {
  background: none !important;
  color: #e2ded9 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Front Page / Latest Posts */
}
html.theme_gitgud #divLatestPosts .latestPostCell, .theme_gitgud #divLatestPosts .latestPostCell {
  background: #2e2b36 !important;
}
html.theme_gitgud #divLatestImages img, .theme_gitgud #divLatestImages img {
  border-color: #3d3a47 !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Boards list */
}
html.theme_gitgud #boardsCellHeader span, .theme_gitgud #boardsCellHeader span {
  background: #1a181e !important;
  color: #e2ded9 !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud .boardsCell:nth-of-type(2n+1) span, .theme_gitgud .boardsCell:nth-of-type(2n+1) span {
  background-color: rgba(255, 255, 255, 0.03) !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Code Highlighting (highlight.js) */
}
html.theme_gitgud .hljs, .theme_gitgud .hljs {
  background: #121115 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .hljs-comment, html.theme_gitgud .hljs-quote, .theme_gitgud .hljs-comment, .theme_gitgud .hljs-quote {
  color: #857d75 !important;
}
html.theme_gitgud .hljs-keyword, .theme_gitgud .hljs-keyword {
  color: #a872cc !important;
}
html.theme_gitgud .hljs-string, .theme_gitgud .hljs-string {
  color: #87b279 !important;
}
html.theme_gitgud .hljs-number, .theme_gitgud .hljs-number {
  color: #e09867 !important;
}
html.theme_gitgud .hljs-title, .theme_gitgud .hljs-title {
  color: #cbb092 !important;
}
html.theme_gitgud .hljs-variable, .theme_gitgud .hljs-variable {
  color: #d96c6c !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Captcha, Bans & Misc */
}
html.theme_gitgud #labelCaptchaId, .theme_gitgud #labelCaptchaId {
  color: #d96c6c !important;
}
html.theme_gitgud #solved, .theme_gitgud #solved {
  color: #87b279 !important;
}
html.theme_gitgud .divBanMessage, .theme_gitgud .divBanMessage {
  color: #d96c6c !important;
}
html.theme_gitgud .dot, .theme_gitgud .dot {
  background-color: #e09867 !important;
}
html.theme_gitgud .medals .text, .theme_gitgud .medals .text {
  background-color: #2e2b36 !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .mobileAlert, .theme_gitgud .mobileAlert {
  color: #d96c6c !important;
}
html.theme_gitgud .radiospan, .theme_gitgud .radiospan {
  color: #121115 !important;
  background-color: #d96c6c !important;
}
html.theme_gitgud, .theme_gitgud {
  /* Other Base Overrides */
}
html.theme_gitgud #boardContentLinks, .theme_gitgud #boardContentLinks {
  color: #b3aba2 !important;
}
html.theme_gitgud #reportActions, .theme_gitgud #reportActions {
  background-color: #2e2b36 !important;
}
html.theme_gitgud .contentAction, .theme_gitgud .contentAction {
  background: #1a181e !important;
  border-color: #3d3a47 !important;
}
html.theme_gitgud .appealForm table tr th, html.theme_gitgud table.modInfo tr th, .theme_gitgud .appealForm table tr th, .theme_gitgud table.modInfo tr th {
  background: #3e2a47 !important;
  color: #cbb092 !important;
}
html.theme_gitgud .captchaImage, .theme_gitgud .captchaImage {
  background-color: #1a181e !important;
  color: #e2ded9 !important;
}
html.theme_gitgud .contentOmissionIndicator, .theme_gitgud .contentOmissionIndicator {
  color: #b3aba2 !important;
}
html.theme_gitgud .linkFollow, .theme_gitgud .linkFollow {
  color: #87b279 !important;
}
html.theme_gitgud .linkFollowAlt, .theme_gitgud .linkFollowAlt {
  color: #d96c6c !important;
}
html.theme_gitgud .mFixed, .theme_gitgud .mFixed {
  background: #1a181e !important;
}
html.theme_gitgud .noEmailName, .theme_gitgud .noEmailName {
  color: #cbb092 !important;
}
html.theme_gitgud .sage, html.theme_gitgud .bumpLockIndicator, .theme_gitgud .sage, .theme_gitgud .bumpLockIndicator {
  color: #d96c6c !important;
}
html.theme_gitgud .watchedNotification::before, .theme_gitgud .watchedNotification::before {
  color: #d96c6c !important;
}
html.theme_gitgud div.titlebar, .theme_gitgud div.titlebar {
  background: #3e2a47 !important;
  color: #cbb092 !important;
}
html.theme_gitgud #siteName, .theme_gitgud #siteName {
  color: #cbb092 !important;
}
html.theme_gitgud, .theme_gitgud { /* main site title — theme's header-title hue (was falling back to base body text) */ }
/*# sourceMappingURL=maps/style.css.map */
