/* RS4 Forum — global stylesheet.
   Section 1: base + layout (from theme-html/css/base.css)
   Section 2: components (from theme-html/css/components.css)
   Section 3: skin for stock MyBB markup on pages that keep the default templates
   Section 4: responsive
   Tokens live in rs4_tokens.css. No border radius anywhere. */

/* =====================================================================
   1. BASE
   ===================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body {
  margin: 0;
  background: var(--rsh-pageTexture), var(--xf-pageBg);
  color: var(--xf-textColor);
  font: var(--xf-fontWeightNormal) var(--xf-fontSizeNormal) / var(--xf-lineHeightDefault) var(--xf-fontFamilyBody);
  text-align: left;
  min-height: 100vh;
  overflow-y: scroll;
  overflow-x: clip;
}
a, a:link, a:visited { color: var(--xf-linkColor); text-decoration: none; }
a:hover, a:active { color: var(--xf-linkHoverColor); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--xf-paletteAccent1); outline-offset: 2px; }
h1, h2, h3, h4 { margin: 0; font-family: var(--rsh-fontFamilyHeading); font-weight: 700; color: var(--xf-textColorAttention); }
img { max-width: 100%; border: 0; }
[hidden] { display: none !important; }
time { white-space: nowrap; }
hr { border: 0; border-top: 1px solid var(--xf-borderColor); margin: 12px 0; }
p { margin: 0 0 10px; }
.rs4-srOnly { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

#container { display: flex; flex-direction: column; min-height: 100vh; color: var(--xf-textColor); font-size: var(--xf-fontSizeNormal); line-height: var(--xf-lineHeightDefault); }

/* ---- Top bar ---- */
.rs4-topbar {
  position: sticky; top: 0; z-index: 50;
  background: var(--rsh-topbarBg);
  border-bottom: 1px solid var(--xf-borderColorHeavy);
  box-shadow: var(--rsh-topbarShadow);
}
.rs4-topbar-inner { max-width: var(--xf-pageWidthMax); margin: 0 auto; padding: 0 24px; height: 56px; display: flex; align-items: stretch; gap: 22px; position: relative; }
.rs4-navToggle { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.rs4-menuTrigger { display: none; align-items: center; background: none; border: 0; color: var(--xf-publicNavText); font-size: 20px; padding: 0 8px; cursor: pointer; }
.rs4-brand { display: flex; align-items: center; flex: 0 1 auto; min-width: 0; }
.rs4-brand img { height: 32px; width: auto; max-width: 100%; display: block; }
.rs4-nav { flex: 1 1 auto; min-width: 0; display: flex; }
.rs4-nav-list { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; scrollbar-width: none; }
.rs4-nav-list::-webkit-scrollbar { display: none; }
.rs4-nav-list li { display: flex; align-items: stretch; flex: none; }
.rs4-nav-mobileOnly { display: none !important; }
.rs4-nav-link, .rs4-nav-link:link, .rs4-nav-link:visited {
  display: flex; align-items: center; padding: 0 14px; min-height: 56px;
  font: var(--xf-fontWeightHeavy) var(--xf-fontSizeSmaller) / 1 var(--xf-fontFamilyUi);
  letter-spacing: .1em; text-transform: uppercase; color: var(--xf-publicNavText);
  border-bottom: 2px solid transparent; white-space: nowrap;
}
.rs4-nav-link:hover { color: var(--xf-publicNavSelectedText); text-decoration: none; }
.rs4-nav-link.is-selected,
#container:has(.rs4-page-index) .rs4-nav-forums,
#container:has(.rs4-page-forumdisplay) .rs4-nav-forums,
#container:has(.rs4-page-forums) .rs4-nav-forums,
#container:has(.rs4-page-whatsnew) .rs4-nav-whatsnew,
#container:has(.rs4-page-memberlist) .rs4-nav-members { color: var(--xf-publicNavSelectedText); border-bottom-color: var(--xf-publicNavSelectedBorder); }
.rs4-topbar-right { flex: 0 1 auto; min-width: 0; display: flex; align-items: center; gap: 16px; margin-left: auto; }

/* search */
.rs4-search { display: flex; align-items: center; margin: 0; }
.rs4-search-input { width: 200px; padding: 5px 10px; font-size: var(--xf-fontSizeSmall); }
.rs4-search-input::-webkit-search-decoration, .rs4-search-input::-webkit-search-cancel-button { -webkit-appearance: none; }
.rs4-search-submit { background: var(--xf-inputBg); border: 1px solid var(--xf-inputBorderColor); border-left: 0; color: var(--xf-textColorDimmed); height: 30px; padding: 0 10px; cursor: pointer; font-size: 14px; }
.rs4-search-submit:hover { color: var(--xf-publicNavSelectedText); }
.rs4-search-iconLink { display: none; color: var(--xf-publicHeaderText); font-size: 16px; padding: 8px; }
.rs4-search-iconLink:hover { color: var(--xf-publicNavSelectedText); text-decoration: none; }

/* account */
.rs4-account { display: flex; align-items: center; gap: 16px; }
.rs4-account-link, .rs4-account-link:link, .rs4-account-link:visited { font: var(--xf-fontWeightHeavy) var(--xf-fontSizeSmall) var(--xf-fontFamilyUi); color: var(--xf-publicHeaderText); display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.rs4-account-link:hover { color: var(--xf-publicNavSelectedText); text-decoration: none; }
.rs4-account-register, .rs4-account-register:link, .rs4-account-register:visited { background: var(--xf-buttonCtaBg); color: var(--xf-buttonCtaText); padding: 7px 16px; font: 700 var(--xf-fontSizeSmall) var(--xf-fontFamilyUi); letter-spacing: .02em; white-space: nowrap; display: inline-flex; align-items: center; }
.rs4-account-register:hover { color: var(--xf-buttonCtaText); filter: brightness(1.08); text-decoration: none; }
.rs4-badge { background: var(--xf-paletteAccent1); color: var(--xf-pageBg); font-size: var(--xf-fontSizeSmallest); font-weight: 700; padding: 1px 6px; border-radius: 10px; line-height: 1.4; }
.rs4-userMenu { position: relative; display: flex; align-items: center; }
.rs4-account-user, .rs4-account-user:link, .rs4-account-user:visited { display: inline-flex; align-items: center; gap: 8px; font: var(--xf-fontWeightHeavy) var(--xf-fontSizeSmall) var(--xf-fontFamilyUi); color: var(--xf-publicHeaderText); white-space: nowrap; }
.rs4-account-user:hover { color: var(--xf-publicNavSelectedText); text-decoration: none; }
.rs4-account-user .rs4-avatar { border-color: var(--xf-paletteColor3); }
.rs4-account-user .fa-caret-down { font-size: 12px; color: var(--xf-textColorDimmed); }

/* ---- Page body ---- */
.rs4-page { flex: 1 0 auto; width: 100%; }
.rs4-page-inner { max-width: var(--xf-pageWidthMax); margin: 0 auto; padding: 24px 24px 28px; }
.rs4-crumbs { margin: 0 0 10px; }
.rs4-breadcrumbs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font-size: var(--xf-fontSizeSmall); color: var(--xf-textColorDimmed); }
.rs4-breadcrumbs li { display: inline-flex; align-items: center; gap: 8px; }
.rs4-breadcrumbs li + li::before { content: "›"; color: var(--xf-textColorMuted); }
.rs4-breadcrumbs .active { color: var(--xf-textColorDimmed); }
.rs4-page-index .rs4-crumbs { display: none; }
.rs4-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: var(--xf-elementSpacer); }
.rs4-title { flex: 1; min-width: 0; }
.rs4-title-value { font-size: var(--xf-fontSizeLargest); line-height: 1.1; letter-spacing: .04em; text-shadow: var(--rsh-headingShadow); }
.rs4-description { font-style: italic; color: var(--xf-textColorDimmed); margin-top: 6px; }
.rs4-title-action { flex: none; }
.rs4-title-action:empty { display: none; }
.rs4-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
.rs4-main--withSidebar { grid-template-columns: minmax(0, 1fr) 300px; }
.rs4-content { display: flex; flex-direction: column; gap: var(--xf-elementSpacer); min-width: 0; }
.rs4-sidebar { display: flex; flex-direction: column; gap: var(--xf-elementSpacer); min-width: 0; }
.rs4-sidebar:empty { display: none; }
.rs4-minor { font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); }

/* ---- Buttons ---- */
.rs4-button, a.rs4-button:link, a.rs4-button:visited, .button, a.button:link, a.button:visited, input.button, button.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 9px 18px; border: 1px solid var(--xf-buttonBorder); border-radius: 0;
  background: var(--xf-buttonBg); color: var(--xf-buttonText); cursor: pointer; margin: 0;
  font: 700 var(--xf-fontSizeSmaller) / 1 var(--xf-fontFamilyUi); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap;
  box-shadow: none; text-decoration: none;
}
.rs4-button:hover, a.button:hover, input.button:hover, button.button:hover { text-decoration: none; filter: brightness(1.1); color: var(--xf-buttonText); }
.rs4-button:active, a.button:active, input.button:active { transform: translateY(1px); }
.rs4-button--primary { background: var(--xf-buttonPrimaryBg); color: var(--xf-buttonPrimaryText); }
.rs4-button--cta, a.rs4-button--cta:link, a.rs4-button--cta:visited, a.rs4-button--cta:hover { background: var(--xf-buttonCtaBg); color: var(--xf-buttonCtaText); border-color: transparent; box-shadow: var(--rsh-buttonCtaShadow); }
.rs4-button--cta:active { box-shadow: none; }
.rs4-button--small, a.button.small_button { padding: 5px 10px; font-size: var(--xf-fontSizeSmallest); }
a.button span { padding-left: 0; background: none; }
input.button, button.button { padding: 8px 14px; }

/* ---- Forms ---- */
input.textbox, .rs4-input, textarea, select, input[type="text"], input[type="password"], input[type="search"], input[type="email"], input[type="number"], input[type="url"] {
  padding: 8px 10px; background: var(--xf-inputBg); color: var(--xf-inputColor);
  border: 1px solid var(--xf-inputBorderColor); border-radius: 0;
  font: var(--xf-fontSizeSmall) var(--xf-fontFamilyUi); max-width: 100%;
  outline: 0;
}
textarea { font-family: var(--xf-fontFamilyUi); font-size: var(--xf-fontSizeSmall); line-height: 1.4; }
select { padding: 7px 8px; }
input.textbox:focus, .rs4-input:focus, textarea:focus, select:focus { background: var(--xf-inputFocusBg); border-color: var(--xf-paletteColor3); }
input::placeholder, textarea::placeholder { color: var(--xf-inputPlaceholder); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--xf-paletteColor3); }
input.error, textarea.error, select.error { border-color: var(--xf-errorColor); }
input.valid, textarea.valid, select.valid { border-color: var(--xf-successColor); }
label.error { color: var(--xf-errorColor); font-size: var(--xf-fontSizeSmaller); display: block; margin: 4px 0; }
fieldset { padding: 10px 12px; margin: 0; border: 1px solid var(--xf-borderColor); }
fieldset.trow2 { background: var(--xf-contentAltBg); }
fieldset table td { padding: 3px 0; }
fieldset table td + td { padding-left: 12px; }
fieldset table td > input.textbox, fieldset table td > select, fieldset table td > input.rs4-input, fieldset table td > .select2-container { margin-bottom: 6px; }
fieldset table td > .smalltext { display: inline-block; margin-top: 2px; }
legend { padding: 0 6px; color: var(--xf-textColorAttention); font-family: var(--rsh-fontFamilyHeading); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
form { margin: 0; }
.rs4-inlineForm { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rs4-inlineForm-label { font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); font-weight: 600; }
.rs4-searchForum .rs4-input { width: 240px; max-width: 100%; }
.rs4-narrowForm { max-width: 560px; margin: 0 auto; }

/* ---- Avatars / identity ---- */
.rs4-avatar { display: inline-block; border-radius: 50%; overflow: hidden; border: 1px solid var(--xf-borderColor); background: var(--xf-contentAltBg); flex: none; vertical-align: middle; width: 30px; height: 30px; }
.rs4-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rs4-avatar--xxs { width: 24px; height: 24px; } .rs4-avatar--xs { width: 30px; height: 30px; } .rs4-avatar--s { width: 40px; height: 40px; }
.rs4-avatar--m { width: 96px; height: 96px; } .rs4-avatar--l { width: 192px; height: 192px; }
.rs4-username, .author, .rs4-thread-author a { font-weight: 600; }

/* =====================================================================
   3. STOCK SKIN (first, so the component rules below win on shared classes)
   ===================================================================== */
table { color: var(--xf-textColor); font-size: inherit; border-collapse: separate; border-spacing: 0; }
.tborder { background: var(--xf-contentBg); width: 100%; margin: 0 auto; border: 1px solid var(--xf-blockBorder); box-shadow: var(--rsh-blockShadow); padding: 0; }
.tborder + br, .tborder + br + br { display: none; }
.tborder + br + div[align="center"], .tborder + div[align="center"] { margin-top: var(--xf-elementSpacer); }
.tfixed { table-layout: fixed; word-wrap: break-word; }
.thead { background: var(--xf-blockHeaderBg); color: var(--xf-blockHeaderText); border-bottom: 1px solid var(--xf-blockHeaderBorder); padding: 10px 16px; font: 600 15px / 1.2 var(--rsh-fontFamilyHeading); letter-spacing: .08em; text-transform: uppercase; text-shadow: var(--rsh-headerTextShadow); box-shadow: var(--rsh-headerInsetShadow); }
.thead a:link, .thead a:visited, .thead a:hover, .thead a:active { color: inherit; }
.thead .smalltext, .thead div.smalltext { font: italic var(--xf-fontSizeSmaller) var(--xf-fontFamilyUi); letter-spacing: 0; text-transform: none; color: var(--xf-textColorDimmed); text-shadow: none; }
.thead strong { font-weight: 600; }
.thead_collapsed { border-bottom-width: 0; }
.tcat { background: var(--xf-blockMinorHeaderBg); color: var(--xf-blockMinorHeaderText); border-bottom: 1px solid var(--xf-blockBorder); padding: 8px 14px; font: 600 var(--xf-fontSizeSmaller) / 1.2 var(--rsh-fontFamilyHeading); letter-spacing: .1em; text-transform: uppercase; text-shadow: var(--rsh-headerTextShadow); }
.tcat a:link, .tcat a:visited, .tcat a:hover, .tcat a:active { color: inherit; }
.tcat .smalltext, .tcat strong { font-size: inherit; font-weight: 600; }
.trow1, .trow2, .trow_shaded, .trow_deleted, .trow_sep, .tfoot { padding: 10px 14px; border-bottom: 1px solid var(--xf-borderColorLight); vertical-align: top; }
.trow1 { background: var(--xf-contentBg); }
.trow2 { background: var(--xf-contentAltBg); }
.trow_shaded { background: var(--xf-warningBg); }
.trow_deleted { opacity: .6; }
tr.trow_selected td, .inline_row.trow_selected, .trow_selected { background: var(--xf-contentHighlightBg) !important; box-shadow: inset 2px 0 0 var(--xf-paletteAccent1); }
.trow_sep { background: var(--xf-blockHeaderBg); color: var(--xf-blockHeaderText); font: 600 var(--xf-fontSizeSmaller) / 1.2 var(--rsh-fontFamilyHeading); letter-spacing: .1em; text-transform: uppercase; padding: 8px 16px; border-top: 1px solid var(--xf-blockHeaderBorder); border-bottom: 1px solid var(--xf-blockHeaderBorder); text-shadow: var(--rsh-headerTextShadow); }
.tfoot { background: var(--xf-contentAltBg); font-size: var(--xf-fontSizeSmaller); border-bottom: 0; }
.tfoot a { color: var(--xf-linkColor); }
.no_bottom_border { border-bottom: 0; }
.tborder tbody tr:last-child > td { border-bottom: 0; }
.thead select, .tcat select { font-size: var(--xf-fontSizeSmaller); padding: 3px 6px; letter-spacing: 0; text-transform: none; font-family: var(--xf-fontFamilyUi); }
.bottommenu { background: var(--xf-contentAltBg); border: 1px solid var(--xf-borderColor); padding: 10px; }
.smalltext { font-size: var(--xf-fontSizeSmaller); }
.largetext { font-size: var(--xf-fontSizeLarger); font-weight: 600; }
.float_left { float: left; }
.float_right { float: right; }
.hidden { display: none; }
.hiddenrow { display: none; }
.clear { clear: both; }
.selectall { background: var(--xf-contentHighlightBg); color: var(--xf-textColorEmphasized); text-align: center; font-weight: 600; }
.expcolimage { float: right; width: auto; vertical-align: middle; margin-top: 0; }
.scaleimages img { max-width: 100%; height: auto; }
img.attachment { border: 1px solid var(--xf-borderColor); padding: 2px; background: var(--xf-contentAltBg); }
.highlight { background: var(--xf-paletteColor3); color: var(--xf-pageBg); padding: 0 3px; }
.subject_new, .subject_new a { font-weight: 700; color: var(--xf-textColorEmphasized); }
.subject_old a { font-weight: 400; }
.online { color: var(--xf-successColor); } .offline { color: var(--xf-textColorMuted); }
.trow_reputation_positive { background: var(--xf-successBg); } .trow_reputation_negative { background: var(--xf-errorBg); }
.reputation_positive { color: var(--xf-successColor); } .reputation_neutral { color: var(--xf-textColorDimmed); } .reputation_negative { color: var(--xf-errorColor); }
.repbox { font-size: 16px; font-weight: 700; padding: 5px 7px 5px 7px; border: 1px solid var(--xf-borderColor); }
._neutral { background: var(--xf-contentAltBg); color: var(--xf-textColorDimmed); }
._minus { background: var(--xf-errorBg); color: var(--xf-errorColor); border-color: var(--xf-errorColor); }
._plus { background: var(--xf-successBg); color: var(--xf-successColor); border-color: var(--xf-successColor); }
.high_warning, .imminent_banned { color: var(--xf-errorColor); } .moderate_warning, .high_banned, .moderate_banned { color: var(--xf-warningColor); } .low_warning, .low_banned { color: var(--xf-successColor); }

/* navigation + pagination (stock classes used in showthread breadcrumb popup etc.) */
.navigation { font-size: var(--xf-fontSizeSmall); color: var(--xf-textColorDimmed); }
.navigation a:link, .navigation a:visited { color: var(--xf-linkColor); }
.navigation .active { color: var(--xf-textColorDimmed); font-weight: 400; }
.pagination { font-size: var(--xf-fontSizeSmall); color: var(--xf-textColorDimmed); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.pagination .pages { font-weight: 600; }
.pagination a, .pagination a:link, .pagination a:visited { display: inline-block; padding: 3px 9px; border: 1px solid var(--xf-borderColor); background: var(--xf-contentBg); color: var(--xf-textColor); white-space: nowrap; }
.pagination a:hover { text-decoration: none; border-color: var(--xf-paletteColor3); }
.pagination .pagination_current, .pagination a.pagination_current { display: inline-block; padding: 3px 9px; background: var(--xf-buttonCtaBg); color: var(--xf-buttonCtaText); border: 1px solid transparent; font-weight: 700; }
.pagination .go_page img { display: none; }
.pagination .go_page::after { content: "\f107"; font-family: "Font Awesome 6 Free"; font-weight: 900; }
.pagination .go_page { display: inline-block; padding: 3px 9px; }
.drop_go_page { background: var(--xf-contentBg); padding: 8px; border: 1px solid var(--xf-borderColor); display: flex; gap: 6px; align-items: center; }
.drop_go_page .textbox { width: 60px; padding: 4px 6px; }
.pagination_breadcrumb { background: var(--xf-contentBg); border: 1px solid var(--xf-borderColor); padding: 6px; box-shadow: 0 10px 24px rgba(0,0,0,.6); font-weight: 400; }
.pagination_breadcrumb_link { vertical-align: middle; cursor: pointer; }

/* notices */
.pm_alert, .red_alert, div.error, .rs4-blockMessage, .success_message, .error_message { padding: 12px 16px; border: 1px solid var(--xf-borderColor); background: var(--xf-contentBg); margin-bottom: var(--xf-elementSpacer); font-size: var(--xf-fontSizeSmall); }
.pm_alert { border-color: var(--xf-paletteAccent1); color: var(--xf-textColor); }
.red_alert { border-color: var(--xf-errorColor); background: var(--xf-errorBg); color: var(--xf-errorColor); }
.red_alert a:link, .red_alert a:visited { color: var(--xf-errorColor); text-decoration: underline; }
div.error { border-color: var(--xf-warningColor); background: var(--xf-warningBg); color: var(--xf-warningColor); }
div.error p { margin: 0 0 6px; } div.error p em { font-style: normal; font-weight: 700; } div.error ul { margin: 6px 0 0 18px; padding: 0; }
.success_message { border-color: var(--xf-successColor); background: var(--xf-successBg); color: var(--xf-successColor); font-weight: 600; }
.error_message { border-color: var(--xf-errorColor); background: var(--xf-errorBg); color: var(--xf-errorColor); font-weight: 600; }
.rs4-blockMessage { color: var(--xf-textColorDimmed); margin: 0; }

/* popup menus */
.popup_menu { background: var(--xf-contentBg); border: 1px solid var(--xf-borderColor); box-shadow: 0 14px 32px rgba(0,0,0,.65); min-width: 180px; z-index: 100; }
.popup_menu .popup_item_container { margin: 0; }
.popup_menu .popup_item { display: block; padding: 8px 12px; white-space: nowrap; background: var(--xf-contentBg); color: var(--xf-textColor); font-size: var(--xf-fontSizeSmall); font-weight: 600; }
.popup_menu a.popup_item:hover { background: var(--xf-contentHighlightBg); color: var(--xf-textColorEmphasized); text-decoration: none; }
.popup_menu .popup_item_container + .popup_item_container .popup_item { border-top: 1px solid var(--xf-borderColorLight); }
.rs4-popup .rs4-popup-logout { color: var(--xf-errorColor); }

/* modal (jquery.modal) */
.blocker { position: fixed; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; overflow: auto; z-index: 9999; padding: 20px; box-sizing: border-box; background-color: rgba(0,0,0,0.78); text-align: center; }
.blocker:before { content: ""; display: inline-block; height: 100%; vertical-align: middle; margin-right: -0.05em; }
.blocker.behind { background-color: transparent; }
.modal { width: 420px; max-width: 100%; text-align: left; background: var(--xf-contentBg); border: 1px solid var(--xf-paletteColor3); display: inline-block; vertical-align: middle; position: relative; z-index: 2; box-sizing: border-box; border-radius: 0; box-shadow: 0 20px 50px rgba(0,0,0,.8); color: var(--xf-textColor); }
.modal .tborder { border: 0; box-shadow: none; }
.modal a.close-modal { position: absolute; top: -14px; right: -14px; display: block; width: 30px; height: 30px; text-indent: -9999px; background: url(../../../images/close.png) no-repeat 0 0; z-index: 2; }
.modal-spinner { display: none; width: 64px; height: 64px; position: fixed; top: 50%; left: 50%; margin-right: -32px; margin-top: -32px; background: url(../../../images/spinner_big.gif) no-repeat center center; }
#quick_login .remember_me input { vertical-align: middle; }
#quick_login .textbox { width: 100%; }

/* jGrowl notifications */
.jGrowl { z-index: 9999; color: var(--xf-textColorEmphasized); font-size: 13px; font-family: var(--xf-fontFamilyUi); position: fixed; }
.jGrowl.top-left { left: 0; top: 0; } .jGrowl.top-right { right: 0; top: 0; } .jGrowl.bottom-left { left: 0; bottom: 0; } .jGrowl.bottom-right { right: 0; bottom: 0; }
.jGrowl.center { top: 0; width: 50%; left: 25%; }
.jGrowl.center .jGrowl-notification, .jGrowl.center .jGrowl-closer { margin-left: auto; margin-right: auto; }
.jGrowl-notification { background-color: var(--xf-contentAccentBg); border: 1px solid var(--xf-paletteColor3); opacity: .96; width: 260px; padding: 10px 12px; margin: 10px; text-align: left; display: none; word-break: break-word; }
.jGrowl .jGrowl-notification { min-height: 40px; }
.jGrowl-notification .jGrowl-header { font-weight: 700; font-size: .85em; }
.jGrowl-notification .jGrowl-close { background-color: transparent; color: inherit; border: none; z-index: 99; float: right; font-weight: bold; font-size: 1em; cursor: pointer; }
.jGrowl-closer { background-color: var(--xf-contentAccentBg); border: 1px solid var(--xf-borderColor); opacity: .96; width: 260px; padding: 4px 10px; margin: 10px; display: none; cursor: pointer; font-size: .9em; font-weight: bold; text-align: center; }
.jGrowl .jGrowl-notification.jgrowl_success { background: var(--xf-successBg); border-color: var(--xf-successColor); color: var(--xf-successColor); }
.jGrowl .jGrowl-notification.jgrowl_error { background: var(--xf-errorBg); border-color: var(--xf-errorColor); color: var(--xf-errorColor); }
.jGrowl .jGrowl-notification.jgrowl_process { background: var(--xf-warningBg); border-color: var(--xf-warningColor); color: var(--xf-warningColor); }
@media print { .jGrowl { display: none; } }

/* Impromptu dialogs */
.jqifade { position: absolute; background-color: #000; }
iframe.jqifade { display: block; z-index: -1; }
div.jqi { width: 400px; max-width: 90%; font-family: var(--xf-fontFamilyUi); position: absolute; background-color: var(--xf-contentBg); color: var(--xf-textColor); font-size: 14px; text-align: left; border: 1px solid var(--xf-paletteColor3); padding: 7px; }
div.jqi .jqiclose { position: absolute; top: 4px; right: 2px; width: 18px; cursor: pointer; color: var(--xf-textColorDimmed); font-weight: bold; }
div.jqi .jqistate { background-color: var(--xf-contentBg); }
div.jqi .jqititle { padding: 5px 10px; font-size: 16px; line-height: 20px; border-bottom: 1px solid var(--xf-borderColor); font-family: var(--rsh-fontFamilyHeading); color: var(--xf-textColorAttention); }
div.jqi .jqimessage { padding: 10px; line-height: 20px; overflow: auto; }
div.jqi .jqibuttonshide { display: none; }
div.jqi .jqibuttons { text-align: right; margin: 0 -7px -7px -7px; border-top: 1px solid var(--xf-borderColor); background-color: var(--xf-contentAltBg); }
div.jqi .jqibuttons button { margin: 0; padding: 12px 18px; background-color: transparent; border: none; border-left: 1px solid var(--xf-borderColor); color: var(--xf-textColor); font-weight: bold; font-size: 13px; cursor: pointer; }
div.jqi .jqibuttons button.jqidefaultbutton { color: var(--xf-paletteColor3); }
div.jqi .jqibuttons button:hover, div.jqi .jqibuttons button:focus { color: var(--xf-linkHoverColor); outline: none; }
.jqiwarning .jqi .jqibuttons { background-color: var(--xf-errorBg); }
div.jqi .jqiparentstate::after { background-color: #000; opacity: .6; content: ''; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }
div.jqi .jqisubstate { position: absolute; top: 0; left: 20%; width: 60%; padding: 7px; border: 1px solid var(--xf-borderColor); border-top: none; background: var(--xf-contentBg); }
.jqi .jqiarrow { position: absolute; height: 0; width: 0; line-height: 0; font-size: 0; border: solid 10px transparent; }

/* quotes / code */
blockquote { background: var(--xf-contentAltBg); margin: 10px 0; padding: 10px 14px; border-left: 3px solid var(--xf-paletteColor3); font-size: var(--xf-fontSizeSmall); }
blockquote cite { font-weight: 600; font-style: normal; display: block; margin: -10px -14px 8px; padding: 6px 14px; border-bottom: 1px solid var(--xf-borderColorLight); color: var(--xf-textColorAttention); font-family: var(--rsh-fontFamilyHeading); font-size: 12px; letter-spacing: .04em; }
blockquote cite > span { float: right; font-weight: normal; font-family: var(--xf-fontFamilyUi); font-size: 12px; color: var(--xf-textColorDimmed); }
blockquote cite span.highlight { float: none; font-weight: bold; padding-bottom: 0; }
.codeblock { background: var(--xf-inputBg); border: 1px solid var(--xf-borderColor); margin: 10px 0; padding: 0; }
.codeblock .title { border-bottom: 1px solid var(--xf-borderColor); font-weight: 600; padding: 6px 12px; margin: 0; font-size: 12px; color: var(--xf-textColorDimmed); text-transform: uppercase; letter-spacing: .08em; }
.codeblock code { overflow: auto; height: auto; max-height: 300px; display: block; font-family: var(--xf-fontFamilyCode); font-size: 13px; padding: 10px 12px; white-space: pre; }
.smilie { vertical-align: middle; }
.smilie_pointer { cursor: pointer; }
.separator { margin: 5px; padding: 0; height: 0px; font-size: 1px; list-style-type: none; }

/* posts (showthread) */
.post { overflow: hidden; background: var(--xf-contentBg); border: 1px solid var(--xf-blockBorder); box-shadow: var(--rsh-blockShadow); margin-bottom: var(--xf-elementSpacer); }
.post.classic { padding-top: 0; }
.post .post_author { border-bottom: 1px solid var(--xf-borderColorLight); background: var(--xf-contentAltBg); padding: 10px 14px; overflow: hidden; }
.post.classic .post_author { border: 0; border-right: 1px solid var(--xf-borderColorLight); float: left; width: 180px; margin: 0; padding: 14px; }
.post .post_author .buddy_status { vertical-align: middle; margin-top: -4px; }
.post .post_author div.author_avatar { float: left; margin-right: 10px; }
.post.classic .post_author div.author_avatar { float: none; text-align: center; margin: 0 0 8px; }
.post .post_author div.author_avatar img { border: 1px solid var(--xf-borderColor); border-radius: 50%; width: 48px; height: 48px; object-fit: cover; background: var(--xf-contentBg); }
.post.classic .post_author div.author_avatar img { width: 96px; height: 96px; }
.post .post_author div.author_information { float: left; padding: 4px 0; }
.post.classic .post_author div.author_information { float: none; padding: 0; text-align: center; }
.post .post_author div.author_information strong a { font-family: var(--rsh-fontFamilyHeading); font-size: 14px; letter-spacing: .03em; color: var(--xf-textColorEmphasized); }
.post .post_author div.author_statistics { float: right; font-size: var(--xf-fontSizeSmallest); padding: 3px 0; color: var(--xf-textColorDimmed); line-height: 1.4; }
.post.classic .post_author div.author_statistics { border-top: 1px dotted var(--xf-borderColor); margin: 8px 0 0; padding: 8px 0 0; float: none; font-size: var(--xf-fontSizeSmaller); }
.post .post_head { font-size: var(--xf-fontSizeSmaller); padding: 10px 14px; border-bottom: 1px solid var(--xf-borderColorLight); margin: 0; color: var(--xf-textColorDimmed); background: var(--xf-contentBg); }
.post .post_head span.post_date { color: var(--xf-textColorDimmed); }
.post .post_head span.edited_post, .post .post_head span.edited_post a { font-size: var(--xf-fontSizeSmallest); color: var(--xf-textColorMuted); }
.post_body { font-size: var(--xf-fontSizeNormal); padding: 14px 0; line-height: 1.55; }
.post.classic .post_content { float: left; width: calc(100% - 181px); padding: 0 16px 8px; }
.post_content { padding: 0 14px 8px; }
.post_content .signature { margin-top: 10px; border-top: 1px dotted var(--xf-borderColor); padding: 10px 0 4px; color: var(--xf-textColorDimmed); font-size: var(--xf-fontSizeSmaller); }
.post .post_meta { margin: 4px 0; font-size: var(--xf-fontSizeSmallest); color: var(--xf-textColorMuted); }
.post .post_meta a:link, .post .post_meta a:visited, .post .post_meta a:hover { color: var(--xf-textColorDimmed); }
.post_controls { clear: both; background: var(--xf-contentAltBg); border-top: 1px solid var(--xf-borderColorLight); padding: 8px 10px; overflow: hidden; }
.postbit_buttons > a:link, .postbit_buttons > a:hover, .postbit_buttons > a:visited, .postbit_buttons > a:active { display: inline-block; padding: 4px 8px; margin: 2px; font-size: var(--xf-fontSizeSmallest); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: var(--xf-buttonBg); border: 1px solid var(--xf-buttonBorder); color: var(--xf-buttonText); }
.postbit_buttons > a:hover { border-color: var(--xf-paletteColor3); text-decoration: none; }
.postbit_buttons a span { padding-left: 20px; display: inline-block; height: 16px; line-height: 16px; background-image: url(../../../images/buttons_sprite.png); background-repeat: no-repeat; }
.postbit_buttons a.postbit_find span { background-position: 0 0; }
.postbit_buttons a.postbit_reputation_add span { background-position: 0 -20px; }
.postbit_buttons a.postbit_email span { background-position: 0 -40px; }
.postbit_buttons a.postbit_website span { background-position: 0 -60px; }
.postbit_buttons a.postbit_pm span { background-position: 0 -80px; }
.postbit_buttons a.postbit_quote span { background-position: 0 -100px; }
.postbit_buttons a.postbit_multiquote span { background-position: 0 -120px; }
.postbit_buttons a.postbit_multiquote_on span { background-position: 0 -140px; }
.postbit_buttons a.postbit_edit span { background-position: 0 -160px; }
.postbit_buttons a.postbit_qdelete span { background-position: 0 -180px; }
.postbit_buttons a.postbit_qrestore span { background-position: 0 -200px; }
.postbit_buttons a.postbit_report span { background-position: 0 -220px; }
.postbit_buttons a.postbit_warn span { background-position: 0 -240px; }
.postbit_buttons a.postbit_purgespammer span { background-position: 0 -540px; }
.postbit_buttons a.postbit_reply_pm span { background-position: 0 -260px; }
.postbit_buttons a.postbit_reply_all span { background-position: 0 -280px; }
.postbit_buttons a.postbit_forward_pm span { background-position: 0 -300px; }
.postbit_buttons a.postbit_delete_pm span { background-position: 0 -320px; }
.post:not(.deleted_post) .postbit_qrestore, .post:not(.deleted_post) .status_type, .post.deleted_post .postbit_mirage { display: none; }
.post.unapproved_post { background: var(--xf-warningBg); }
.post.deleted_post { opacity: .6; }
#posts_container { display: block; }
.ignored_post, .deleted_post_collapsed { padding: 10px 14px; background: var(--xf-contentAltBg); border: 1px solid var(--xf-borderColor); margin-bottom: var(--xf-elementSpacer); font-size: var(--xf-fontSizeSmaller); }
.deleted_post_hidden { display: none; }
.quick_jump { background: url(../../../images/jump.png) no-repeat 0; width: 13px; height: 13px; padding-left: 13px; margin-top: -3px; border: none; }
.pollbar { background: var(--xf-paletteColor3); border: 1px solid var(--xf-paletteColor4); height: 10px; }
.pollbar .percent { display: none; }
.poll_votedfor { font-weight: 700; color: var(--xf-paletteColor3); }
.posticons_label { white-space: nowrap; }
.author_avatar img { border-radius: 50%; }
.editor_control_bar { background: var(--xf-contentAltBg); border: 1px solid var(--xf-borderColor); }
.sceditor-container { border-color: var(--xf-borderColor) !important; border-radius: 0 !important; }
.sceditor-toolbar { background: var(--xf-contentAltBg) !important; border-bottom-color: var(--xf-borderColor) !important; }
.sceditor-group { background: var(--xf-contentBg) !important; border-color: var(--xf-borderColor) !important; }
.sceditor-container textarea { background: var(--xf-inputBg) !important; color: var(--xf-inputColor) !important; }
.sceditor-container iframe { background: #fff; }
.select2-container .select2-choice, .select2-drop, .select2-container-multi .select2-choices { background: var(--xf-inputBg) !important; color: var(--xf-inputColor) !important; border-color: var(--xf-inputBorderColor) !important; border-radius: 0 !important; }
.select2-results .select2-highlighted { background: var(--xf-contentHighlightBg) !important; color: var(--xf-textColorEmphasized) !important; }
.select2-results { background: var(--xf-contentBg) !important; color: var(--xf-textColor) !important; }
#debug { font-size: var(--xf-fontSizeSmallest); color: var(--xf-textColorMuted); padding: 10px; }

/* forum / thread status indicators (stock sprites replaced) */
.forum_status, .subforumicon { display: inline-block; }
.subforumicon { width: 8px; height: 8px; border-radius: 50%; background: var(--xf-textColorMuted); margin: 0 4px 0 0; vertical-align: middle; }
.subforum_minion { background: var(--xf-paletteAccent1); box-shadow: 0 0 6px rgba(111,196,212,.6); }
.subforum_minioffclose, .subforum_miniofflink { background: var(--xf-textColorMuted); }
.thread_status { display: none; }
.forum_legend, .thread_legend { display: none; }

/* =====================================================================
   2. COMPONENTS
   ===================================================================== */
/* ---- Block (card) ---- */
.rs4-block { background: var(--xf-contentBg); border: 1px solid var(--xf-blockBorder); box-shadow: var(--rsh-blockShadow); min-width: 0; }
.rs4-block + .rs4-block { margin-top: 0; }
.rs4-block-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0;
  padding: 10px 16px;
  background: var(--xf-blockHeaderBg); color: var(--xf-blockHeaderText);
  border-bottom: 1px solid var(--xf-blockHeaderBorder);
  box-shadow: var(--rsh-headerInsetShadow);
  font: 600 15px / 1.2 var(--rsh-fontFamilyHeading); letter-spacing: .08em; text-transform: uppercase;
  text-shadow: var(--rsh-headerTextShadow);
}
.rs4-block-header.thead_collapsed { border-bottom-color: var(--xf-blockHeaderBorder); }
.rs4-block-header a, .rs4-block-header a:link, .rs4-block-header a:visited { color: inherit; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.rs4-block-header a:hover { color: inherit; text-decoration: none; }
.rs4-block-desc { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: italic var(--xf-fontSizeSmaller) var(--xf-fontFamilyUi); letter-spacing: 0; text-transform: none; color: var(--xf-textColorDimmed); text-shadow: none; }
.rs4-block-desc:empty { display: none; }
.rs4-block-header .expcolimage { float: none; flex: none; width: 20px; height: 20px; position: relative; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--xf-blockHeaderText); }
.rs4-block-header .expcolimage img { opacity: 0; width: 20px; height: 20px; display: block; cursor: pointer; position: relative; z-index: 1; }
.rs4-block-header .expcolimage::before { content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 12px; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; transition: transform .15s ease; }
.rs4-block-header.thead_collapsed .expcolimage::before { transform: rotate(-90deg); }
.rs4-block-minorHeader {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0;
  padding: 9px 14px;
  background: var(--xf-blockMinorHeaderBg); color: var(--xf-blockMinorHeaderText);
  border-bottom: 1px solid var(--xf-blockBorder);
  font: 600 var(--xf-fontSizeSmaller) / 1.2 var(--rsh-fontFamilyHeading); letter-spacing: .1em; text-transform: uppercase;
  text-shadow: var(--rsh-headerTextShadow);
}
.rs4-block-minorLink, .rs4-block-minorHeader a { font: 600 var(--xf-fontSizeSmallest) var(--xf-fontFamilyUi); letter-spacing: .04em; text-transform: none; color: var(--xf-linkColor); text-shadow: none; }
.rs4-block-body { display: block; }
.rs4-block-row { padding: 12px 14px; }
.rs4-block-row + .rs4-block-row { border-top: 1px solid var(--xf-borderColorLight); }
.rs4-block-row--minor { font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); }
.rs4-block-row > .rs4-block-row--minor { padding: 8px 0 0; }
.rs4-block-footer { padding: 10px 14px; border-top: 1px solid var(--xf-borderColorLight); font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); }
.rs4-block-footer--actions { display: flex; justify-content: flex-end; }
.rs4-block-outer { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.rs4-block-outer--after { padding-top: 0; }
.rs4-block-outer-right { margin-left: auto; }
.rs4-errorPage { max-width: 760px; }
.rs4-redirect { max-width: 520px; margin: 80px auto; padding: 0 24px; }

/* ---- Category + node list ---- */
.rs4-node { border-top: 1px solid var(--xf-borderColorLight); display: grid; grid-template-columns: var(--rsh-nodeIconSize) minmax(0, 1fr) minmax(110px, 150px) minmax(170px, 240px); gap: 16px; align-items: center; padding: 14px 16px; }
.rs4-node:first-child { border-top: 0; }
.rs4-node, .rs4-thread, .rs4-contentRow { transition: background-color .18s ease; }
.rs4-node:hover, .rs4-thread:hover, .rs4-contentRow:hover { background-color: var(--rsh-rowHoverBg); }
.rs4-thread.trow_shaded:hover { background-color: var(--xf-warningBg); }
.rs4-node-icon {
  width: var(--rsh-nodeIconSize); height: var(--rsh-nodeIconSize); border-radius: 50%;
  background: var(--rsh-nodeIconBg); border: 1px solid var(--rsh-nodeIconBorder); box-shadow: var(--rsh-nodeIconShadow);
  display: flex; align-items: center; justify-content: center; cursor: pointer; flex: none;
}
.rs4-node-icon img, .rs4-node-icon svg { width: 30px; height: 30px; display: block; filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)); }
.rs4-node--off .rs4-node-icon img, .rs4-node--offlock .rs4-node-icon img, .rs4-node--offlink .rs4-node-icon img { filter: drop-shadow(0 1px 1px rgba(0,0,0,.8)) saturate(.55) brightness(.85); }
.rs4-node-main { min-width: 0; }
.rs4-node-title { font: 600 16px / 1.2 var(--rsh-fontFamilyHeading); letter-spacing: .02em; }
.rs4-node-title a, .rs4-node-title a:link, .rs4-node-title a:visited { color: var(--xf-textColorEmphasized); }
.rs4-node-title a:hover { color: var(--xf-textColorAttention); text-decoration: none; }
.rs4-node--off .rs4-node-title a, .rs4-node--offlock .rs4-node-title a, .rs4-node--offlink .rs4-node-title a { color: var(--xf-textColor); font-weight: 500; }
.rs4-node .rs4-node-title a:hover { color: var(--xf-textColorAttention); }
.rs4-node-desc { font-size: var(--xf-fontSizeSmall); color: var(--xf-textColorDimmed); margin-top: 3px; }
.rs4-node-viewers { display: inline-block; margin-left: 8px; font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorMuted); }
.rs4-node-subforums, .rs4-node-mods { margin-top: 6px; font-size: var(--xf-fontSizeSmaller); }
.rs4-node-subforums strong, .rs4-node-mods strong { font-weight: 600; color: var(--xf-textColorDimmed); }
.rs4-node-stats { margin: 0; }
.rs4-node-extra { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rs4-node-extra-icon { flex: none; }
.rs4-node-extra-row { min-width: 0; }
.rs4-node-extra-title { display: block; font-weight: 600; font-size: var(--xf-fontSizeSmall); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rs4-node-extra-minor { font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rs4-node-extra-minor a { color: var(--xf-textColorDimmed); font-weight: 600; }
.rs4-node-extra-never { font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorMuted); font-style: italic; }
.rs4-block--subforums .rs4-block-header { justify-content: flex-start; }

/* ---- pairs ---- */
.rs4-pairs { display: grid; grid-template-columns: auto auto; column-gap: 10px; font-size: var(--xf-fontSizeSmall); color: var(--xf-textColorDimmed); margin: 0; }
.rs4-pairs dt, .rs4-pairs dd { margin: 0; }
.rs4-pairs dd { color: var(--xf-textColor); font-weight: 600; text-align: right; }
.rs4-pairs dd a { color: inherit; }
.rs4-pairs--inline { display: flex; flex-wrap: wrap; gap: 4px 0; }
.rs4-pairs--inline dt::after { content: ":"; }
.rs4-pairs--inline dt { margin-right: 6px; }
.rs4-pairs--inline dd { text-align: left; margin-right: 22px; }
.rs4-pairs--inline dd:last-child { margin-right: 0; }

/* ---- Stats block (combined members online + statistics) ---- */
.rs4-statsBlock { display: flex; flex-direction: column; }
.rs4-statsBlock .rs4-block-row { padding: 14px 16px 16px; }
.rs4-statsBlock .rs4-block-minorHeader { background: none; border: 0; padding: 0 0 10px; }
.rs4-statsBlock .rs4-pairs--inline { color: var(--xf-textColorDimmed); }
.rs4-statsBlock .rs4-block-footer { text-align: right; }
.rs4-statsBlock .rs4-block-footer a { margin-left: 8px; }

/* ---- Member list widgets ---- */
.rs4-listInline { line-height: 1.7; font-size: var(--xf-fontSizeSmall); }
.rs4-listInline a { font-weight: 600; }
.rs4-contentRow { display: flex; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--xf-borderColorLight); }
.rs4-contentRow:first-child { border-top: 0; }
.rs4-contentRow-figure { flex: none; }
.rs4-contentRow-main { min-width: 0; }
.rs4-contentRow-title { font-weight: 600; font-size: var(--xf-fontSizeSmall); display: block; color: var(--xf-textColorEmphasized); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs4-contentRow-minor { font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); }
.rs4-contentRow-minor a { color: var(--xf-textColorDimmed); }

/* ---- Thread list ---- */
.rs4-filterBar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: var(--xf-fontSizeSmall); color: var(--xf-textColorDimmed); min-height: var(--rsh-filterBarHeight); }
.rs4-main--withSidebar:has(> .rs4-content > .rs4-filterBar:first-child) > .rs4-sidebar { margin-top: calc(var(--rsh-filterBarHeight) + var(--xf-elementSpacer)); }
.rs4-filterBar-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; position: relative; }
.rs4-filterBar-right { margin-left: auto; }
.rs4-filters { position: relative; }
.rs4-filterToggle { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--xf-borderColor); background: var(--xf-blockFilterBarBg); height: var(--rsh-filterBarHeight); padding: 0 12px; color: var(--xf-textColor); user-select: none; }
.rs4-filterToggle::-webkit-details-marker { display: none; }
.rs4-filters[open] .rs4-filterToggle { border-color: var(--xf-paletteColor3); }
.rs4-filters-panel { position: absolute; left: 0; top: calc(100% + 6px); z-index: 20; background: var(--xf-contentBg); border: 1px solid var(--xf-borderColor); box-shadow: 0 14px 32px rgba(0,0,0,.65); padding: 12px; min-width: 300px; }
.rs4-sortForm { display: flex; flex-direction: column; gap: 8px; }
.rs4-sortForm select { width: 100%; }
.rs4-sortForm input.button { align-self: flex-end; }
.rs4-selectAll { display: inline-flex; align-items: center; gap: 6px; font-size: var(--xf-fontSizeSmaller); }
.rs4-selectRow { padding: 8px 16px; background: var(--xf-contentHighlightBg); border-bottom: 1px solid var(--xf-borderColorLight); font-size: var(--xf-fontSizeSmaller); text-align: center; }
.rs4-group-label {
  padding: 8px 16px; background: var(--xf-blockHeaderBg); color: var(--xf-blockHeaderText);
  border-top: 1px solid var(--xf-blockHeaderBorder); border-bottom: 1px solid var(--xf-blockHeaderBorder);
  font: 600 var(--xf-fontSizeSmaller) / 1.2 var(--rsh-fontFamilyHeading); letter-spacing: .1em; text-transform: uppercase; text-shadow: var(--rsh-headerTextShadow);
}
.rs4-structList > .rs4-group-label:first-child { border-top: 0; }
.rs4-thread {
  display: grid; grid-template-columns: 40px minmax(0, 1fr) minmax(100px, 130px) minmax(160px, 220px);
  gap: 14px; align-items: center; padding: 12px 16px; border-top: 1px solid var(--xf-borderColorLight);
  background: var(--xf-contentBg);
}
.rs4-structList > .rs4-thread:first-child, .rs4-group-label + .rs4-thread { border-top: 0; }
.rs4-thread.forumdisplay_sticky, .rs4-thread--announcement { background: var(--xf-contentAltBg); }
.rs4-thread.trow_shaded { background: var(--xf-warningBg); }
.rs4-thread-cell { min-width: 0; }
.rs4-thread-cell--icon { display: flex; align-items: center; }
.rs4-thread-title { display: flex; gap: 8px; align-items: center; min-width: 0; font: 400 15px / 1.25 var(--xf-fontFamilyUi); }
.rs4-thread-title > span:not(.rs4-label) { min-width: 0; }
.rs4-thread-title > .subject_new, .rs4-thread-title > .subject_old, .rs4-thread-subject { min-width: 0; overflow: hidden; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow-wrap: anywhere; }
.rs4-thread-title a, .rs4-thread-title a:link, .rs4-thread-title a:visited { color: var(--xf-textColorEmphasized); }
.rs4-thread-title .subject_new a { font-weight: 700; }
.rs4-thread-title .subject_old a { font-weight: 400; }
.rs4-thread-title a:hover { color: var(--xf-linkHoverColor); }
.rs4-thread-prefixText:empty { display: none; }
.rs4-thread-prefixText { color: var(--xf-textColorDimmed); font-weight: 600; flex: none; }
.rs4-thread-attach { color: var(--xf-textColorMuted); font-size: 12px; flex: none; }
.rs4-gotounread { color: var(--xf-paletteAccent1); font-size: 12px; flex: none; opacity: .55; }
.rs4-gotounread:hover { opacity: 1; text-decoration: none; }
.rs4-thread-status { flex: none; color: var(--xf-textColorMuted); font-size: 12px; display: none; }
.rs4-thread[class*="close"] .rs4-thread-status { display: inline-flex; }
.rs4-thread[class*="close"] .rs4-thread-status::before { content: "\f023"; font-family: "Font Awesome 6 Free"; font-weight: 900; }
.rs4-thread[class*="close"] .rs4-thread-title a { color: var(--xf-textColorDimmed); }
.rs4-thread[class*="movefolder"] .rs4-thread-status { display: inline-flex; }
.rs4-thread[class*="movefolder"] .rs4-thread-status::before { content: "\f064"; font-family: "Font Awesome 6 Free"; font-weight: 900; }
.rs4-thread--deleted { opacity: .6; }
.rs4-thread-minor { font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); margin-top: 3px; display: flex; flex-wrap: wrap; gap: 0 6px; align-items: center; }
.rs4-thread-minor > * + *::before { content: "·"; margin-right: 6px; color: var(--xf-textColorMuted); }
.rs4-thread-author a { color: var(--xf-textColorDimmed); }
.rs4-pageJump { display: inline-flex; gap: 4px; align-items: center; }
.rs4-pageJump a { color: var(--xf-linkColor); padding: 0 2px; }
.rs4-pageJump-skip { color: var(--xf-textColorMuted); }
.rs4-thread-cell--meta { grid-template-columns: auto auto; }
.rs4-thread-cell--latest { display: flex; gap: 10px; align-items: center; justify-content: flex-end; text-align: right; font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); }
.rs4-thread-latest { min-width: 0; }
.rs4-thread-latestDate { color: var(--xf-textColor); display: block; white-space: nowrap; }
.rs4-thread-latestUser, .rs4-thread-latestUser a { color: var(--xf-textColorDimmed); font-weight: 600; white-space: nowrap; }
.rs4-thread-cell--mod { display: flex; align-items: center; justify-content: center; }
.rs4-thread-cell--rating { display: flex; align-items: center; justify-content: center; }
.rs4-thread.trow_selected { background: var(--xf-contentHighlightBg); box-shadow: inset 2px 0 0 var(--xf-paletteAccent1); }
.rs4-tools { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-start; font-size: var(--xf-fontSizeSmaller); color: var(--xf-textColorDimmed); }
.rs4-tools-left, .rs4-tools-right { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.rs4-tools-right { margin-left: auto; }
.rs4-tools:empty { display: none; }
#inlinemoderation_options { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rs4-tools select { font-size: var(--xf-fontSizeSmaller); padding: 5px 8px; }
.rs4-tools input.button { padding: 6px 12px; }

/* ---- Labels (thread prefixes) ---- */
.rs4-label {
  display: inline-block; flex: none; padding: 2px 7px;
  font: 700 var(--xf-fontSizeSmallest) / 1.3 var(--xf-fontFamilyUi); letter-spacing: .08em; text-transform: uppercase;
  color: var(--rsh-labelText); background: var(--xf-paletteNeutral2); white-space: nowrap; vertical-align: middle;
}
.rs4-label--red { background: var(--xf-paletteAccent2); }
.rs4-label--blue { background: #2f5f7a; }
.rs4-label--green { background: #3f6a2a; }
.rs4-label--olive { background: #8a6a1f; }
.rs4-label--purple { background: var(--xf-paletteAccent3); }
.rs4-label--primary { background: var(--xf-paletteColor3); color: var(--xf-pageBg); }
.thread_prefix { display: inline-block; }

/* ---- Pagination ---- */
.rs4-pageNav { display: flex; align-items: center; gap: 4px; font-size: var(--xf-fontSizeSmall); color: var(--xf-textColorDimmed); flex-wrap: wrap; }
.rs4-pageNav-main { display: flex; gap: 4px; align-items: center; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.rs4-pageNav-page a, .rs4-pageNav-page span, .rs4-pageNav-jump a { display: inline-block; padding: 3px 9px; border: 1px solid var(--xf-borderColor); background: var(--xf-contentBg); color: var(--xf-textColor); white-space: nowrap; }
.rs4-pageNav-page a:hover, .rs4-pageNav-jump a:hover { text-decoration: none; border-color: var(--xf-paletteColor3); }
.rs4-pageNav-page--current a, .rs4-pageNav-page--current span, .rs4-pageNav .pagination_current { background: var(--xf-buttonCtaBg); color: var(--xf-buttonCtaText); border-color: transparent; font-weight: 700; }
.rs4-pageNav-page--skip { padding: 0 4px; color: var(--xf-textColorMuted); }
.rs4-pageNav .pages { display: none; }

/* ---- Sidebar extras ---- */
.rs4-share { display: flex; gap: 14px; font-size: 18px; }
.rs4-share-link, .rs4-share-link:link, .rs4-share-link:visited { color: var(--xf-textColorDimmed); }
.rs4-share-link:hover { color: var(--xf-textColorAttention); text-decoration: none; }
.rs4-share-copy.is-copied { color: var(--xf-successColor); }
.rs4-rulesBlock .rs4-block-row { font-size: var(--xf-fontSizeSmall); line-height: 1.5; }
.rs4-onlineBlock .rs4-block-row { font-size: var(--xf-fontSizeSmall); }

/* =====================================================================
   4. RESPONSIVE
   ===================================================================== */
@media (min-width: 901px) and (max-width: 1100px) {
  .rs4-main--withSidebar .rs4-node { grid-template-columns: var(--rsh-nodeIconSize) minmax(0, 1fr) minmax(110px, 150px); }
  .rs4-main--withSidebar .rs4-node-extra { grid-column: 2 / -1; }
  .rs4-main--withSidebar .rs4-thread { grid-template-columns: 40px minmax(0, 1fr) minmax(100px, 130px); }
  .rs4-main--withSidebar .rs4-thread-cell--latest { grid-column: 2 / -1; justify-content: flex-start; text-align: left; }
  .rs4-main--withSidebar .rs4-thread-cell--mod, .rs4-main--withSidebar .rs4-thread-cell--rating { grid-column: 3; }
}
@media (max-width: 1000px) {
  .rs4-search { display: none; }
  .rs4-search-iconLink { display: inline-flex; }
  .rs4-account-userName, .rs4-account-linkText { display: none; }
}
@media (max-width: 900px) {
  .rs4-main--withSidebar { grid-template-columns: minmax(0, 1fr); }
  .rs4-main--withSidebar > .rs4-sidebar { margin-top: 0; }
  .rs4-node { grid-template-columns: var(--rsh-nodeIconSize) minmax(0, 1fr) 150px; }
  .rs4-node-extra { grid-column: 2 / -1; }
  .rs4-thread { grid-template-columns: 40px minmax(0, 1fr) 130px; }
  .rs4-thread-cell--latest { grid-column: 2 / -1; justify-content: flex-start; text-align: left; }
  .post.classic .post_author { float: none; width: auto; border-right: 0; border-bottom: 1px solid var(--xf-borderColorLight); display: flex; gap: 12px; align-items: center; }
  .post.classic .post_author div.author_avatar { margin: 0; }
  .post.classic .post_author div.author_information { text-align: left; }
  .post.classic .post_author div.author_statistics { border: 0; margin: 0 0 0 auto; padding: 0; }
  .post.classic .post_content { float: none; width: auto; padding: 0 14px 8px; }
}
@media (max-width: 650px) {
  .rs4-topbar-inner { padding: 0 10px; gap: 10px; }
  .rs4-menuTrigger { display: flex; padding: 0 4px; flex: none; }
  .rs4-brand img { height: auto; max-height: 28px; max-width: 42vw; }
  .rs4-topbar-right, .rs4-account { gap: 10px; }
  .rs4-account-link, .rs4-account-link:link, .rs4-account-link:visited, .rs4-account-user, .rs4-account-user:link, .rs4-account-user:visited { font-size: var(--xf-fontSizeSmaller); }
  .rs4-account-register, .rs4-account-register:link, .rs4-account-register:visited { padding: 6px 12px; font-size: var(--xf-fontSizeSmaller); }
  .rs4-account-user .fa-caret-down { display: none; }
  .rs4-nav { display: none; position: absolute; left: 0; right: 0; top: 56px; background: var(--xf-publicNavBg); border-bottom: 1px solid var(--xf-borderColorHeavy); box-shadow: 0 14px 32px rgba(0,0,0,.65); }
  .rs4-navToggle:checked ~ .rs4-nav { display: block; }
  .rs4-nav-list { flex-direction: column; overflow: visible; padding: 6px 0; }
  .rs4-nav-list li { display: block; }
  .rs4-nav-mobileOnly { display: block !important; }
  .rs4-nav-link, .rs4-nav-link:link, .rs4-nav-link:visited { min-height: 44px; padding: 0 20px; border-bottom: 0; border-left: 2px solid transparent; }
  .rs4-nav-link.is-selected, #container:has(.rs4-page-index) .rs4-nav-forums, #container:has(.rs4-page-forumdisplay) .rs4-nav-forums, #container:has(.rs4-page-forums) .rs4-nav-forums, #container:has(.rs4-page-whatsnew) .rs4-nav-whatsnew, #container:has(.rs4-page-memberlist) .rs4-nav-members { border-bottom-color: transparent; border-left-color: var(--xf-publicNavSelectedBorder); }
  .rs4-search-iconLink { display: none; }
  .rs4-page-inner { padding: 16px 12px 24px; }
  .rs4-page-header { flex-direction: column; align-items: flex-start; }
  .rs4-title-value { font-size: 24px; }
  .rs4-node { grid-template-columns: var(--rsh-nodeIconSize) minmax(0, 1fr); gap: 12px; padding: 12px; }
  .rs4-node-stats { grid-column: 2; grid-template-columns: auto auto auto auto; column-gap: 8px; }
  .rs4-node-stats dd { text-align: left; }
  .rs4-node-extra { grid-column: 2; }
  .rs4-thread { grid-template-columns: 40px minmax(0, 1fr); gap: 10px; padding: 10px 12px; }
  .rs4-thread-cell--meta { grid-column: 2; display: flex; gap: 12px; }
  .rs4-thread-cell--meta dd { text-align: left; }
  .rs4-thread-cell--latest { grid-column: 2; }
  .rs4-thread-cell--mod, .rs4-thread-cell--rating { grid-column: 2; justify-content: flex-start; }
  .rs4-thread-title { flex-wrap: wrap; }
  .rs4-thread-title > .subject_new, .rs4-thread-title > .subject_old, .rs4-thread-subject { white-space: normal; }
  .rs4-block-header { flex-wrap: wrap; }
  .rs4-block-desc { flex-basis: 100%; order: 3; }
  .rs4-filters-panel { min-width: 260px; }
  .tborder { display: block; overflow-x: auto; }
  .tborder > tbody { display: table; width: 100%; }
}
@media (max-width: 400px) {
  .rs4-brand img { max-width: 36vw; }
  .rs4-account-register, .rs4-account-register:link, .rs4-account-register:visited { padding: 6px 9px; }
  .rs4-hero-title { font-size: 30px; }
  .rs4-title-value { font-size: 22px; }
}
@media (max-width: 480px) {
  .rs4-block, .tborder, .post { border-left: 0; border-right: 0; }
  .rs4-page-inner { padding-left: 0; padding-right: 0; }
  .rs4-page-header, .rs4-crumbs, .rs4-filterBar, .rs4-block-outer, .rs4-tools, .pm_alert, .red_alert, div.error { padding-left: 12px; padding-right: 12px; }
}
