@charset "UTF-8";

/* RO后巷酒馆 | BWRO / Discuz neobrutalism theme
 * Visual layer only: Discuz URLs, IDs and JavaScript contracts remain intact.
 */

:root {
  --ro-ink: #17141f;
  --ro-paper: #fffaf0;
  --ro-paper-2: #f4eddf;
  --ro-yellow: #fdc800;
  --ro-violet: #432dd7;
  --ro-blue: #59b8ff;
  --ro-coral: #ff6b61;
  --ro-green: #71d68a;
  --ro-border: 3px solid var(--ro-ink);
  --ro-shadow: 7px 7px 0 var(--ro-ink);
  --ro-shadow-sm: 4px 4px 0 var(--ro-ink);
}

* { box-sizing: border-box; }

html { background: var(--ro-paper-2); }

body {
  min-width: 320px;
  color: var(--ro-ink);
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  background:
    linear-gradient(90deg, rgba(67, 45, 215, .055) 1px, transparent 1px),
    linear-gradient(rgba(67, 45, 215, .055) 1px, transparent 1px),
    var(--ro-paper-2);
  background-size: 28px 28px;
}

a { color: #2f20a8; }
a:hover { color: #d53c35; text-decoration: none; }

.wp,
#wp.wp,
#hd .wp,
#toptb .wp,
#ft.wp {
  width: min(1180px, calc(100% - 32px));
  max-width: 1180px;
}

/* Utility bar */
#toptb {
  min-width: 0;
  height: auto;
  line-height: 1.4;
  padding: 8px 0;
  color: #fff;
  background: var(--ro-ink);
  border-bottom: var(--ro-border);
}

#toptb a { color: #fff; font-weight: 800; }
#toptb a:hover { color: var(--ro-yellow); }

/* Masthead and navigation */
#hd {
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 18px 0 12px;
}

#hd .wp {
  padding: 0;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}

#hd .hdc {
  min-height: 96px;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: var(--ro-yellow);
  border-bottom: var(--ro-border);
}

#hd h2 {
  float: left;
  margin: 0;
  padding: 0;
}

#hd h2 a {
  display: flex;
  align-items: center;
  min-height: 58px;
  color: var(--ro-ink);
}

#hd h2 img { display: none; }

#hd h2 a::before {
  content: "RO";
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin-right: 13px;
  color: #fff;
  font: 950 24px/1 Arial, sans-serif;
  background: var(--ro-violet);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
  transform: rotate(-2deg);
}

#hd h2 a::after {
  content: "RO 后巷酒馆\A BWRO COMMUNITY";
  white-space: pre;
  color: var(--ro-ink);
  font-size: 21px;
  font-weight: 950;
  line-height: 1.15;
  letter-spacing: .02em;
}

#um,
#loginform {
  color: var(--ro-ink);
  font-weight: 700;
}

#um a,
#loginform a { color: var(--ro-ink); }

/* Quick login: replace Discuz's fragile float layout with a measured header grid. */
#lsform {
  flex: 0 0 auto;
  min-width: 0;
  margin-left: auto;
}

#hd .fastlg {
  padding-top: 0;
  line-height: 1.25;
}

#lsform .y { float: none; }

#lsform table {
  width: auto;
  border-collapse: separate;
  border-spacing: 0 6px;
}

#lsform td {
  height: 34px;
  padding: 0 5px;
  vertical-align: middle;
  white-space: nowrap;
}

#lsform td:first-child {
	min-width: 108px;
	padding-left: 0;
	font-weight: 900;
	text-align: right;
}

#lsform td:first-child > label {
	display: inline-block;
	float: none;
	line-height: 1.35;
}

#lsform .ro-login-account-label {
  display: inline-block;
  color: var(--ro-ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.35;
  white-space: nowrap;
}

#lsform .ftid,
#lsform #ls_fastloginfield_ctrl {
  display: inline-block;
  width: auto !important;
  min-width: 48px;
  overflow: visible;
  color: var(--ro-ink);
  font-weight: 900;
  white-space: nowrap;
}

#lsform .px {
  width: 180px;
  height: 34px;
  padding: 5px 8px;
  color: var(--ro-ink);
  background: #fff;
  border: 2px solid var(--ro-ink);
  border-radius: 0;
  outline: 0;
}

#lsform .px:focus {
  background: #fffef8;
  box-shadow: 3px 3px 0 var(--ro-violet);
}

#lsform .fastlg_l {
  min-width: 92px;
  padding: 0 10px !important;
  border-right: 0;
}

#lsform .pc {
  width: 16px;
  height: 16px;
  margin: 0 6px 0 0;
  vertical-align: -3px;
}

#lsform .pn {
  width: 82px !important;
  height: 36px;
  color: var(--ro-ink);
  font-weight: 900;
  background: #fff;
  border: 2px solid var(--ro-ink);
  border-radius: 0;
  box-shadow: 3px 3px 0 var(--ro-ink);
}

#lsform .pn:hover,
#lsform .pn:focus {
  background: var(--ro-blue);
  transform: translate(-1px, -1px);
}

#lsform a {
  color: var(--ro-ink);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#nv {
  height: auto;
  min-height: 50px;
  padding: 0 10px;
  overflow: visible;
  background: var(--ro-violet);
  border: 0;
  border-bottom: var(--ro-border);
}

#nv ul { height: auto; }

#nv li {
  height: 47px;
  padding-right: 0;
  background: none;
  border-right: 2px solid var(--ro-ink);
}

#nv li a {
  height: 47px;
  padding: 0 19px;
  color: #fff;
  font-size: 15px;
  font-weight: 900;
  line-height: 47px;
  background: transparent;
}

#nv li.a,
#nv li:hover { background: var(--ro-yellow); }
#nv li.a a,
#nv li:hover a { color: var(--ro-ink); }

#qmenu {
  height: 47px;
  margin: 0;
  padding: 0 16px;
  color: var(--ro-ink);
  font-weight: 900;
  line-height: 47px;
  background: var(--ro-blue);
  border-left: 2px solid var(--ro-ink);
}

#hd #qmenu {
  width: auto;
  min-width: 104px;
  overflow: visible !important;
  box-sizing: border-box;
  white-space: nowrap;
  text-indent: 0;
}

/* Quick navigation popup: aligned login prompt, search and forum columns. */
#qmenu_menu {
  width: min(720px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: min(680px, calc(100vh - 32px));
  margin-top: 0;
  padding: 0;
  overflow: auto;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: 8px 8px 0 var(--ro-ink);
  font-size: 14px;
  line-height: 1.45;
}

#qmenu_menu.blk { padding: 0; }

#qmenu_menu > .ptm.pbw.hm {
  margin: 0;
  padding: 22px 24px !important;
  color: var(--ro-ink);
  background: #fff5bd;
  border-bottom: var(--ro-border);
  font-size: 15px;
  font-weight: 750;
  line-height: 1.8;
  text-align: center;
}

#qmenu_menu > .ptm.pbw.hm > a {
  min-height: 40px;
  margin: 7px 0;
  padding: 7px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-ink) !important;
  background: var(--ro-yellow);
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
  font-weight: 900;
  text-decoration: none;
}

#qmenu_menu > .ptm.pbw.hm > a:hover,
#qmenu_menu > .ptm.pbw.hm > a:focus-visible {
  color: #fff !important;
  background: var(--ro-violet);
  outline: 0;
}

#qmenu_menu > .ro-qmenu-guest {
  margin: 0;
  padding: 22px 24px;
  display: grid;
  justify-items: center;
  gap: 7px;
  color: var(--ro-ink);
  background: #fff5bd;
  border-bottom: var(--ro-border);
  text-align: center;
}

#qmenu_menu .ro-qmenu-guest__title,
#qmenu_menu .ro-qmenu-guest__hint { margin: 0; padding: 0; }
#qmenu_menu .ro-qmenu-guest__title { font-size: 17px; font-weight: 950; line-height: 1.45; }
#qmenu_menu .ro-qmenu-guest__hint { color: #544c60; font-size: 13px; font-weight: 750; line-height: 1.55; }

#qmenu_menu .ro-qmenu-guest__actions {
  margin-top: 7px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

#qmenu_menu .ro-qmenu-guest__actions a {
  min-width: 112px;
  min-height: 42px;
  padding: 8px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.3;
  text-decoration: none;
}

#qmenu_menu .ro-qmenu-guest__actions .ro-qmenu-guest__login { background: var(--ro-yellow); }
#qmenu_menu .ro-qmenu-guest__actions a:hover,
#qmenu_menu .ro-qmenu-guest__actions a:focus-visible {
  color: #fff;
  background: var(--ro-violet);
  outline: 0;
}

#qmenu_menu #fjump_menu {
  margin: 0;
  padding: 22px;
  background: var(--ro-paper);
  border: 0;
}

#qmenu_menu #flsrchdiv > .mbm {
  min-height: 48px;
  margin: 0 0 16px !important;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ro-ink);
  font-size: 14px;
  font-weight: 850;
  white-space: nowrap;
}

#qmenu_menu #flsrchdiv > .mbm .px {
  width: min(360px, 100%);
  height: 44px;
  margin: 0;
  padding: 0 12px;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: var(--ro-border);
  border-radius: 0;
  box-shadow: 4px 4px 0 var(--ro-ink);
  font-size: 15px;
  outline: 0;
}

#qmenu_menu #flsrchdiv > .mbm .px:focus {
  background: #eef5ff;
  box-shadow: 4px 4px 0 var(--ro-violet);
}

#qmenu_menu .jump_bdl {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

#qmenu_menu .jump_bdl > li {
  float: none;
  width: auto;
  min-width: 0;
  min-height: 280px;
  margin: 0;
  padding: 0 0 12px;
  box-sizing: border-box;
  background: #fff;
  border: 2px solid var(--ro-ink);
}

#qmenu_menu .jump_bdl > li > p {
  float: none;
  width: auto;
  height: auto !important;
  min-height: 34px;
  margin: 0;
  padding: 7px 12px;
  display: block;
  box-sizing: border-box;
  line-height: 1.45 !important;
  overflow: visible !important;
  white-space: normal;
  overflow-wrap: anywhere;
}

#qmenu_menu .jump_bdl > li > p.bbda {
  min-height: 42px;
  padding: 10px 12px;
  color: #fff !important;
  background: var(--ro-violet);
  border: 0;
  font-size: 15px;
  font-weight: 900;
}

#qmenu_menu .jump_bdl > li > p:not(.bbda) a {
  min-height: 20px;
  display: block;
  color: var(--ro-ink);
  font-weight: 800;
  line-height: 1.45;
  text-decoration: none;
}

#qmenu_menu .jump_bdl > li > p:not(.bbda):hover,
#qmenu_menu .jump_bdl > li > p.a {
  background: var(--ro-yellow);
}

#qmenu_menu .jump_bdl .sub { padding-left: 18px; }
#qmenu_menu .jump_bdl .child { padding-left: 28px; font-size: 13px; }

@media (max-width: 720px) {
  #qmenu_menu {
    width: calc(100vw - 20px);
    max-width: calc(100vw - 20px);
    box-shadow: 5px 5px 0 var(--ro-ink);
  }
  #qmenu_menu > .ptm.pbw.hm { padding: 18px 14px !important; }
  #qmenu_menu #fjump_menu { padding: 14px; }
  #qmenu_menu #flsrchdiv > .mbm {
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
    white-space: normal;
  }
  #qmenu_menu #flsrchdiv > .mbm .px { width: 100%; }
  #qmenu_menu .jump_bdl { grid-template-columns: 1fr; }
  #qmenu_menu .jump_bdl > li { min-height: 0; }
}

#scbar {
  height: auto;
  margin: 0;
  padding: 10px 14px;
  background: var(--ro-paper);
  border-top: 0;
}

#scbar_txt,
input[type="text"],
input[type="password"],
textarea,
select {
  color: var(--ro-ink);
  background: #fff;
  border: 2px solid var(--ro-ink) !important;
  border-radius: 0;
}

#scbar_txt { height: 34px; padding: 5px 10px; }
#scbar_btn { width: 44px; height: 34px; background-color: var(--ro-yellow); border: 2px solid var(--ro-ink); }

/* Forum index hero */
.ro-forum-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  align-items: center;
  min-height: 320px;
  margin: 24px 0 22px;
  padding: 38px 42px;
  overflow: hidden;
  color: var(--ro-ink);
  background: var(--ro-paper) url("images/forum-guild-board-hero-v1.png") center / cover no-repeat;
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}

.ro-forum-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(255, 250, 240, .98) 0%, rgba(255, 250, 240, .92) 38%, rgba(255, 250, 240, .18) 68%, transparent 100%);
}

.ro-forum-hero__content { max-width: 590px; }

.ro-kicker {
  display: inline-block;
  margin-bottom: 14px;
  padding: 7px 10px;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .11em;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
  transform: rotate(-1deg);
}

.ro-forum-hero h1 {
  margin: 0 0 13px;
  color: var(--ro-ink);
  font-size: clamp(34px, 5vw, 62px);
  font-weight: 950;
  line-height: .98;
  letter-spacing: -.045em;
  text-shadow: 3px 3px 0 #fff;
}

.ro-forum-hero p {
  max-width: 540px;
  margin: 0 0 22px;
  color: #332d3f;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.75;
}

.ro-forum-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.ro-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  color: var(--ro-ink) !important;
  font-weight: 950;
  background: #fff;
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
  transition: transform .12s ease, box-shadow .12s ease;
}

.ro-action:hover { transform: translate(3px, 3px); box-shadow: 1px 1px 0 var(--ro-ink); }
.ro-action--primary { background: var(--ro-yellow); }
.ro-action--secondary { color: #fff !important; background: var(--ro-violet); }

.ro-forum-hero__stamp {
  align-self: end;
  justify-self: end;
  display: grid;
  grid-template-columns: 68px auto;
  align-items: center;
  width: 168px;
  padding: 8px;
  color: #fff;
  background: var(--ro-violet);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
  transform: rotate(2deg);
}

.ro-forum-hero__stamp img {
  width: 58px;
  height: 58px;
  object-fit: cover;
  border: 2px solid var(--ro-ink);
}

.ro-forum-hero__stamp strong { font: 950 13px/1.15 Arial, sans-serif; letter-spacing: .08em; }

/* Breadcrumbs, statistics and cards */
#wp { padding-bottom: 28px; }

#pt {
  height: auto;
  min-height: 42px;
  margin: 18px 0;
  padding: 9px 12px;
  color: var(--ro-ink);
  line-height: 22px;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

#pt .nvhm {
  width: auto;
  padding-left: 0;
  background: none;
  text-indent: 0;
}

#pt .nvhm::before { content: "⌂ "; font-weight: 950; }

#chart {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 68px;
  margin-bottom: 18px;
  padding: 13px 16px !important;
  background: var(--ro-blue) !important;
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow-sm);
}

#chart .chart {
  float: none;
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding-left: 0;
  color: var(--ro-ink);
  background: none;
  font-weight: 800;
}

#chart .ro-chart-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-height: 34px;
  padding: 6px 9px;
  color: var(--ro-ink);
  line-height: 18px;
  white-space: nowrap;
  background: #fff;
  border: 2px solid var(--ro-ink);
}

#chart .ro-chart-label { color: #3f3948; font-size: 13px; font-weight: 850; }
#chart .ro-chart-label::after { content: ":"; }
#chart em { color: var(--ro-ink); font-size: 17px; font-style: normal; font-weight: 950; }

#chart .ro-chart-stat--member { background: #fff5bd; }
#chart .ro-chart-stat--member a {
  color: var(--ro-violet) !important;
  font-weight: 950;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
#chart .ro-chart-stat--member a:hover,
#chart .ro-chart-stat--member a:focus-visible { color: #b52f2a !important; }

#chart .ro-chart-actions {
  float: none;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  margin: 0;
}
#chart .ro-chart-actions .pipe { display: none; }
#chart .ro-chart-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 13px;
  color: #fff !important;
  font-size: 14px;
  font-weight: 950;
  line-height: 18px;
  white-space: nowrap;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}
#chart .ro-chart-actions a:hover,
#chart .ro-chart-actions a:focus-visible {
  color: var(--ro-ink) !important;
  background: var(--ro-yellow);
  outline: 0;
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--ro-ink);
}

.bm,
.ct2_a,
.ct2_a_r,
.tl,
.pl {
  background: var(--ro-paper);
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow-sm);
}

.bm { margin-bottom: 20px; }
.bm_c { padding: 14px; }

.bm_h {
  height: auto;
  min-height: 46px;
  padding: 10px 14px;
  color: var(--ro-ink);
  line-height: 24px;
  background: var(--ro-yellow);
  border: 0;
  border-bottom: var(--ro-border);
}

.bm_h h1,
.bm_h h2,
.bm_h h3,
.bm_h h4,
.bm_h a {
  color: var(--ro-ink);
  font-weight: 950;
}

.bmw .bm_h { border: 0; border-bottom: var(--ro-border); }
.bmw .bm_h h2 { font-size: 18px; }
.fl .bm_h,
#online .bm_h { background: var(--ro-yellow); border: 0; border-bottom: var(--ro-border); }

/* Forum category grid */
.fl_tb { width: 100%; table-layout: fixed; }
.fl_tb td { border-bottom: 2px solid var(--ro-ink); }
.fl_tb tr:last-child td { border-bottom: 0; }

.ro-board-category > .bm_c { padding: 0; }
.ro-board-category .fl_tb,
.ro-board-category .fl_tb tbody { display: block; width: 100%; }
.ro-board-category .fl_tb tr {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}

.ro-board-category .fl_tb .fl_g {
  position: relative;
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 18px;
  min-height: 164px;
  padding: 22px;
  vertical-align: top;
  background: #fff;
  border-right: 2px solid var(--ro-ink);
  transition: background-color 140ms ease, transform 140ms ease;
}

.ro-board-category .fl_tb .fl_g:last-child { border-right: 0; }
.ro-board-category .fl_tb .fl_g:hover { z-index: 1; background: #fff5bd; }
.ro-board-category .fl_tb .fl_g:focus-within {
  z-index: 2;
  outline: 4px solid var(--ro-violet);
  outline-offset: -6px;
}

.fl_icn,
.fl_icn_g { width: 78px; padding: 14px !important; }

.fl_icn a,
.fl_icn_g a {
  display: block;
  width: 60px;
  height: 60px;
  overflow: hidden;
  background: #fff url("images/forum-category-emblem-v1.png") center / cover no-repeat;
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

.fl_icn img,
.fl_icn_g img { width: 60px !important; height: 60px !important; opacity: 0; }

.ro-board-category .fl_icn_g {
  float: none;
  width: 68px !important;
  padding: 0 !important;
}
.ro-board-category .fl_icn_g a { width: 64px; height: 64px; }
.ro-board-category .fl_icn_g img { width: 64px !important; height: 64px !important; }

.ro-board-category .fl_g dl {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 10px;
  min-width: 0;
  margin: 0 !important;
  padding: 0;
}

.ro-board-category .fl_g dt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  font-size: 21px;
  font-weight: 950;
  line-height: 1.25;
}
.ro-board-category .fl_g dt::after {
  content: "↗";
  flex: 0 0 auto;
  font: 950 22px/1 Arial, sans-serif;
}
.ro-board-category .fl_g dt a { color: var(--ro-ink); text-decoration: none; }

.ro-board-category .ro-forum-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  color: var(--ro-ink);
  line-height: 1.4;
}
.ro-board-category .ro-forum-stats em {
  padding: 3px 8px;
  color: var(--ro-ink);
  font-style: normal;
  font-weight: 850;
  background: var(--ro-blue);
  border: 2px solid var(--ro-ink);
}
.ro-board-category .ro-forum-stats em + em { background: #f2eeff; }

.ro-board-category .ro-forum-last {
  align-self: end;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding-top: 9px;
  color: #5d5667;
  line-height: 1.45;
  border-top: 2px solid #d7cec0;
}
.ro-board-category .ro-forum-last__label {
  flex: 0 0 auto;
  color: var(--ro-ink);
  font: 850 11px/1.2 Consolas, "Courier New", monospace;
  letter-spacing: .08em;
}
.ro-board-category .ro-forum-last__value {
  min-width: 0;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fl_g dl { margin-left: 78px; }
.fl_g dt,
.fl_tb h2 { margin-bottom: 7px; font-size: 17px; font-weight: 950; }
.fl_g dt a,
.fl_tb h2 a { color: var(--ro-ink); }
.fl_g dd,
.fl_tb p { color: #5d5667; line-height: 1.65; }
.fl_i { width: 110px; text-align: center; background: #fff5bd; }
.fl_by { width: 230px; background: #f2eeff; }

/* Forum lists */
.boardnav #ct { margin-left: 0 !important; }
#sd_bdl { display: none !important; }
.tl { padding: 0; overflow: hidden; }
.tl .th { padding: 10px 12px; background: var(--ro-violet); border-bottom: var(--ro-border); }
.tl .th,
.tl .th a { color: #fff; }
.tl table { width: 100%; }
.tl th,
.tl td { padding: 13px 10px; border-bottom: 2px solid #cbc3b7; }
.tl tr:hover th,
.tl tr:hover td { background: #fff5bd; }
.tl .icn { padding-left: 14px; }
.tl .num { background: #f2eeff; }
.tl .by { background: #fff; }
.tl .th .num,
.tl .th .by { color: #fff; background: transparent; }
.tl .th .num a,
.tl .th .by a { color: #fff; }

.ttp { margin-bottom: 14px; padding: 10px; background: #fff; border: 2px solid var(--ro-ink); }
.ttp a { margin: 3px; padding: 6px 10px; color: var(--ro-ink); font-weight: 800; background: #fff; border: 2px solid var(--ro-ink); }
.ttp .a a,
.ttp a:hover { background: var(--ro-yellow); }

/* Buttons and pagination */
.pn,
.pnc,
button,
input[type="submit"] {
  height: auto;
  min-height: 34px;
  padding: 7px 12px;
  color: var(--ro-ink) !important;
  font-weight: 900;
  background: var(--ro-yellow) !important;
  border: 2px solid var(--ro-ink) !important;
  border-radius: 0;
  box-shadow: 3px 3px 0 var(--ro-ink);
}

.pn:hover,
button:hover,
input[type="submit"]:hover { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--ro-ink); }

a#newspecial,
a[id^="newspecial"],
a#post_reply {
  display: inline-grid;
  place-items: center;
  width: auto;
  min-width: 108px;
  height: 42px;
  margin-right: 10px;
  color: var(--ro-ink);
  font-weight: 950;
  background: var(--ro-yellow);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}

a#post_reply { color: #fff; background: var(--ro-violet); }
a#newspecial img,
a[id^="newspecial"] img,
a#post_reply img { display: none; }
a#newspecial::after,
a[id^="newspecial"]::after { content: "发布主题"; }
a#post_reply::after { content: "回复主题"; }

.pg a,
.pg strong,
.pgb a {
  min-width: 34px;
  height: 34px;
  margin-left: 5px;
  padding: 7px 10px;
  color: var(--ro-ink);
  line-height: 16px;
  background: #fff;
  border: 2px solid var(--ro-ink);
}

.pg strong { background: var(--ro-yellow); }
.pgb a { padding-left: 10px; background-image: none; }

/* Thread pages */
.pl { overflow: hidden; }
.pl table { width: 100%; }
.pl .pls {
  width: 180px;
  color: var(--ro-ink);
  background: #f2eeff;
  border-right: var(--ro-border);
}

.pl .plc { background: #fff; }
.pl .vwthd { background: var(--ro-yellow); border-bottom: var(--ro-border); }
.pl .pi { border-bottom: 2px solid var(--ro-ink); }
.pl .pct { color: #27212f; font-size: 15px; line-height: 1.8; }
.pl .pcb img { max-width: 100%; height: auto; }

/* Registration, full login and password-recovery forms. */
.nfl .f_c {
  width: min(640px, calc(100% - 32px));
  margin: 48px auto;
  padding: 22px;
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}

.nfl .f_c .rfm,
.fwin .rfm {
  width: 100%;
  max-width: 560px;
}

#registerform .rfm table,
.nfl .f_c .rfm table,
.fwin .rfm table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

#registerform .rfm th,
.nfl .f_c .rfm th,
.fwin .rfm th {
  width: 132px;
  padding: 9px 12px 9px 0;
  color: var(--ro-ink);
  font-weight: 800;
  text-align: right;
  vertical-align: middle;
}

#registerform .rfm td,
.nfl .f_c .rfm td,
.fwin .rfm td {
  padding: 9px 0;
  vertical-align: middle;
}

#registerform .rfm td.tipcol,
.nfl .f_c .rfm td.tipcol,
.fwin .rfm td.tipcol {
  width: 142px;
  padding-left: 12px;
}

/* Registration helper text belongs beside its field, not at the viewport edge. */
#registerform .rfm td:nth-child(2) {
	width: 340px;
}

#registerform .rfm td.tipcol {
  width: auto;
  padding-left: 16px;
}

#registerform .rfm .p_tip,
#registerform .rfm .p_chk {
  position: static;
  box-sizing: border-box;
  width: 100%;
  max-width: 300px;
  min-height: 38px;
  padding: 8px 11px;
  color: var(--ro-ink);
  font-size: 13px;
  font-style: normal;
  font-weight: 750;
  line-height: 1.45;
  white-space: normal;
  background: #fff5bd;
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-violet);
}

#registerform .rfm .p_chk:empty {
  display: none;
}

#registerform .rfm .p_chk:not(:empty) {
  display: block;
  color: #7b211c;
  background: #ffe0dc;
  box-shadow: 3px 3px 0 var(--ro-coral);
}

#registerform .rfm .px,
.nfl .f_c .rfm .px,
.fwin .rfm .px {
	width: 100%;
	max-width: 320px;
	height: 36px;
	padding: 6px 9px;
	box-sizing: border-box;
}

#registerform .rfm select,
.nfl .f_c .rfm select,
.fwin .rfm select {
	width: 100%;
	max-width: 320px;
	height: 36px;
	padding: 4px 8px;
	box-sizing: border-box;
}

/* Registration fields: one baseline and predictable spacing for generated security controls. */
#registerform .rfm {
	margin-bottom: 10px;
}

#registerform .rfm th {
	width: 148px;
	padding-right: 16px;
	font-size: 15px;
	line-height: 1.35;
}

#registerform .rfm > table > tbody > tr > td:nth-child(2) {
	padding-right: 4px;
}

#registerform .ro-security-control {
	width: auto !important;
	padding-top: 12px;
	padding-bottom: 12px;
}

#registerform .ro-security-input {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	min-height: 48px;
}

#registerform .ro-security-input .px {
	flex: 0 0 140px;
	width: 140px !important;
	max-width: 140px;
	margin: 0;
}

#registerform .ro-security-input a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 4px;
	font-weight: 800;
	line-height: 1.3;
	white-space: nowrap;
}

#registerform .ro-security-input > span[id^="checksec"] {
	display: inline-flex;
	align-items: center;
}

#registerform .ro-security-help {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 7px;
	min-height: 24px;
	margin-top: 7px;
	color: var(--ro-ink);
	font-size: 14px;
	line-height: 1.45;
}

#registerform .ro-security-help img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0;
	border: 2px solid var(--ro-ink);
}

.nfl .f_c .flb,
.fwin .flb {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 50px;
  height: auto;
  padding: 12px 14px;
  line-height: 1.3;
  background: var(--ro-yellow);
  border-bottom: 2px solid var(--ro-ink);
}

.nfl .f_c .flb em,
.fwin .flb em {
  float: none;
  color: var(--ro-ink);
  font-size: 18px;
  font-weight: 950;
}

.nfl .f_c .flb span,
.fwin .flb span {
  float: none;
  margin-left: auto;
}

.fwin {
  background: transparent;
  border: 0 !important;
  box-shadow: none;
}

.fwin .m_c {
  min-width: 580px;
  padding: 0;
  background: var(--ro-paper);
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow);
}

.fwin .m_c > [id^="main_messaqge_"] > [id^="layer_login_"],
.fwin .m_c > [id^="main_messaqge_"] > [id^="layer_lostpw_"] {
  padding-bottom: 12px;
}

.flb .flbc {
  position: relative;
  float: none;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-left: 12px !important;
  overflow: visible;
  color: #fff;
  font-size: 0;
  line-height: 1;
  text-indent: 0;
  background: var(--ro-coral) !important;
  border: 2px solid var(--ro-ink) !important;
  box-shadow: 3px 3px 0 var(--ro-ink);
}

.flb .flbc::before {
  content: "×";
  color: #fff;
  font: 950 21px/1 Arial, sans-serif;
}

.flb .flbc:hover,
.flb .flbc:focus {
  background: var(--ro-violet) !important;
  outline: 2px solid #fff;
  outline-offset: -5px;
}

.p_pop,
.m_c {
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow-sm);
}

.p_pop a { border-bottom: 1px solid #bdb5ab; }
.p_pop a:hover { color: var(--ro-ink); background: var(--ro-yellow); }

/* Footer */
#ft {
  margin-top: 20px;
  padding: 20px !important;
  color: #fff;
  background: var(--ro-ink);
  border: var(--ro-border);
  border-color: var(--ro-ink) !important;
  box-shadow: 7px 7px 0 var(--ro-violet);
}

#ft a { color: var(--ro-yellow); font-weight: 800; }
#ft .pipe { color: #817990; }

/* Remove the obsolete 99Max/Discuz friend-link banner and its legacy artwork. */
.bm.lk { display: none; }

#scrolltop { border: 0; }
#scrolltop a { background-color: var(--ro-yellow); border: 2px solid var(--ro-ink); }

@media (max-width: 820px) {
  .wp,
  #wp.wp,
  #hd .wp,
  #toptb .wp,
  #ft.wp { width: calc(100% - 20px); }

  #hd .hdc {
    min-height: 82px;
    padding: 14px;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  #hd h2 { float: none; }
  #hd h2 a::before { width: 50px; height: 50px; }
  #hd h2 a::after { font-size: 17px; }
  #lsform { width: 100%; margin-left: 0; }
  #lsform .fastlg,
  #lsform .fastlg > .y,
  #lsform table { width: 100%; }
  #lsform .px { width: 100%; }
  #um { clear: both; float: none; padding-top: 12px; }
  #nv { overflow-x: auto; white-space: nowrap; }
  #nv ul { display: flex; width: max-content; }
  #qmenu { display: none; }

  #chart { align-items: flex-start; }

  .ro-forum-hero {
    grid-template-columns: 1fr;
    min-height: 420px;
    padding: 28px 24px;
    background-position: 64% center;
  }
  .ro-forum-hero::before { background: linear-gradient(180deg, rgba(255,250,240,.98) 0%, rgba(255,250,240,.9) 48%, rgba(255,250,240,.18) 100%); }
  .ro-forum-hero__stamp { display: none; }
  .ro-forum-hero h1 { font-size: 40px; }

  .fl_tb { table-layout: auto; }
	.ro-board-category .fl_tb tr { grid-template-columns: 1fr; }
	.ro-board-category .fl_tb .fl_g {
		min-height: 150px;
		border-right: 0;
	}
	.ro-board-category .fl_tb tr:not(:last-child) .fl_g:last-child { border-bottom: 2px solid var(--ro-ink); }
  .fl_by { display: none; }
  .fl_i { width: 76px; }
  .pl .pls { width: 128px; }
}

@media (max-width: 560px) {
  #hd h2 a::after { font-size: 15px; }
  #lsform table,
  #lsform tbody { display: block; width: 100%; }
  #lsform tr {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 8px 10px;
    width: 100%;
    margin-bottom: 12px;
  }
  #lsform td {
    display: block;
    width: auto !important;
    min-width: 0;
    height: auto;
    padding: 0;
  }
  #lsform td:nth-child(3),
  #lsform td:nth-child(4) { grid-column: 2; }
  #lsform .fastlg_l {
    min-width: 0;
    padding-right: 0 !important;
    border-right: 0;
  }
  #lsform .pn { width: 100% !important; }
  .nfl .f_c { width: calc(100% - 20px); margin: 24px auto; padding: 14px; }
  .fwin .m_c { min-width: 0; width: calc(100vw - 34px) !important; }
  #registerform .rfm table,
  #registerform .rfm tbody,
  #registerform .rfm tr,
  #registerform .rfm th,
  #registerform .rfm td,
  .nfl .f_c .rfm table,
  .nfl .f_c .rfm tbody,
  .nfl .f_c .rfm tr,
  .nfl .f_c .rfm th,
  .nfl .f_c .rfm td,
  .fwin .rfm table,
  .fwin .rfm tbody,
  .fwin .rfm tr,
  .fwin .rfm th,
  .fwin .rfm td { display: block; width: 100%; }
  #registerform .rfm th,
  .nfl .f_c .rfm th,
  .fwin .rfm th { padding: 8px 0 4px; text-align: left; }
  #registerform .rfm td,
  .nfl .f_c .rfm td,
  .fwin .rfm td { padding: 0 0 8px; }
  #registerform .rfm td.tipcol,
  .nfl .f_c .rfm td.tipcol,
  .fwin .rfm td.tipcol { width: 100%; padding: 0 0 8px; }
  #registerform .rfm td:nth-child(2) { width: 100%; }
  #registerform .rfm .p_tip,
  #registerform .rfm .p_chk { max-width: none; }
  #registerform .rfm .px,
  .nfl .f_c .rfm .px,
  .fwin .rfm .px,
  #registerform .rfm select,
  .nfl .f_c .rfm select,
  .fwin .rfm select { max-width: none; }
  .ro-forum-hero { min-height: 390px; margin-top: 14px; padding: 22px 18px; }
  .ro-forum-hero h1 { font-size: 34px; }
  .ro-forum-hero p { font-size: 14px; }
  .ro-forum-hero__actions { display: grid; }
  #chart { flex-direction: column; padding: 12px !important; }
  #chart .chart,
  #chart .ro-chart-actions { width: 100%; }
  #chart .ro-chart-stat { flex: 1 1 auto; justify-content: space-between; }
  #chart .ro-chart-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
  #chart .ro-chart-actions a { width: 100%; }
  .fl_icn, .fl_icn_g { width: 58px; padding: 8px !important; }
  .fl_icn a, .fl_icn_g a { width: 46px; height: 46px; }
  .fl_icn img, .fl_icn_g img { width: 46px !important; height: 46px !important; }
  .ro-board-category .fl_tb .fl_g { grid-template-columns: 50px minmax(0, 1fr); gap: 13px; min-height: 142px; padding: 17px; }
  .ro-board-category .fl_icn_g { width: 50px !important; padding: 0 !important; }
  .ro-board-category .fl_icn_g a { width: 46px; height: 46px; }
  .ro-board-category .fl_icn_g img { width: 46px !important; height: 46px !important; }
  .ro-board-category .fl_g dt { font-size: 18px; }
  .ro-board-category .ro-forum-last { align-items: flex-start; flex-direction: column; gap: 4px; }
  .ro-board-category .ro-forum-last__value { width: 100%; text-align: left; }
  .fl_g dl { margin-left: 0; }
  .fl_i { display: none; }
  .pl .pls { display: none; }
  #ft #flk, #ft #frt { float: none; text-align: left; }
}

/* Shared information architecture for guide, portal, follow, groups, collections,
 * community spaces and rankings. Keeps legacy markup while giving every route
 * the same page rhythm and component language. */
.ro-page-hero {
  position: relative;
  min-height: 154px;
  margin: 20px 0 18px;
  padding: 24px 30px 24px 34px;
  overflow: hidden;
  background:
    linear-gradient(100deg, rgba(255,250,240,.98) 0 58%, rgba(255,250,240,.64) 76%, rgba(255,250,240,.12)),
    url("images/forum-guild-board-hero-v1.png") 70% 48% / cover no-repeat;
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}
.ro-page-hero::after {
  content: "";
  position: absolute;
  right: 28px;
  bottom: -30px;
  width: 104px;
  height: 104px;
  background: url("images/forum-category-emblem-v1.png") center / contain no-repeat;
  transform: rotate(7deg);
}
.ro-page-hero__marker {
  display: block;
  margin-bottom: 7px;
  color: var(--ro-violet);
  font: 900 13px/1.2 Consolas, "Courier New", monospace;
  letter-spacing: .12em;
}
.ro-page-hero h1 {
  max-width: 720px;
  margin: 0 0 7px;
  color: var(--ro-ink);
  font-size: 35px;
  font-weight: 950;
  line-height: 1.08;
  letter-spacing: -.04em;
}
.ro-page-hero p {
  max-width: 650px;
  margin: 0;
  color: #453e4d;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
}

/* Breadcrumb and page-title bars. */
.ro-page-hero ~ #pt,
.ro-page-hero + #pt { margin-top: 0; }
#ct > .bm:first-child .bm_h,
#ct > .mn > .bm:first-child .bm_h,
.ct2_a .mn > .bm:first-child .bm_h { min-height: 50px; }
.tb,
.tbmu,
.ttp,
.tl .th {
  min-height: 46px;
  padding: 9px 12px;
  border: 2px solid var(--ro-ink);
}
.tb { background: #eef6fb; }
.tb a,
.ttp a { font-size: 14px; font-weight: 850; }
.tb .a a,
.ttp .a a { color: var(--ro-ink); background: var(--ro-yellow); }

/* Two-column content shells used by groups, spaces and rank lists. */
.ct2 .mn,
.ct2_a .mn { min-width: 0; }
.ct2 .sd,
.ct2_a .appl,
.ct2_a_r {
  background: var(--ro-paper);
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow-sm);
}
.ct2 .sd .bm,
.ct2_a .appl .tbn { margin: 0; border: 0 !important; box-shadow: none; }
.ct2 .sd .bm_h,
.ct2_a .appl h2,
.ct2_a .appl .mt { min-height: 44px; padding: 10px 12px; background: var(--ro-yellow); border-bottom: 2px solid var(--ro-ink); }
.ct2 .sd li,
.ct2_a .appl li { min-height: 36px; padding: 7px 10px; line-height: 1.5; border-bottom: 1px solid #cfc6b8; }
.ct2 .sd li:last-child,
.ct2_a .appl li:last-child { border-bottom: 0; }
.ct2 .sd li:hover,
.ct2_a .appl li:hover,
.ct2_a .appl li.a { background: #fff3ad; }

/* Empty and signed-out states should look deliberate. */
.emp,
.nfl .alert_info,
.nfl .alert_right,
.nfl .alert_error,
.mn .notice,
.mn .emp {
  min-height: 112px;
  margin: 16px 0;
  padding: 34px 24px !important;
  color: #4f4758;
  font-size: 17px;
  font-weight: 750;
  line-height: 1.65;
  text-align: center;
  background: #fff8d5;
  border: 2px dashed var(--ro-ink);
}
.emp::before {
  content: "✦";
  display: block;
  margin-bottom: 6px;
  color: var(--ro-violet);
  font-size: 27px;
}

/* Lists and content modules. */
.xld > dl,
.xld > li,
.xl1 > li,
.slst > li,
.ml > li {
  padding: 12px;
  border-bottom: 2px solid #d0c7ba;
}
.xld > dl:hover,
.xld > li:hover,
.xl1 > li:hover,
.slst > li:hover,
.ml > li:hover { background: #fff3ad; }
.xld dt,
.xld h3,
.slst h3 { color: var(--ro-ink); font-size: 17px; font-weight: 900; }
.xld dd,
.slst p { color: #5f5768; font-size: 14px; line-height: 1.65; }

/* Group route: prevent the legacy step list from colliding. */
.pg_index #g_guide {
  padding: 0;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}
.pg_index #g_guide h3 { margin: 0; padding: 12px; background: var(--ro-yellow); border-bottom: 2px solid var(--ro-ink); }
.pg_index #g_guide li {
  position: static;
  min-height: 54px;
  margin: 0;
  padding: 10px 12px;
  line-height: 1.45;
  background: none;
  border-bottom: 1px solid #cfc6b8;
}
.pg_index #g_guide li:last-child { border-bottom: 0; }
.pg_index #g_guide li strong,
.pg_index #g_guide li span { position: static; display: block; width: auto; height: auto; }

/* Portal route: useful destinations instead of an empty canvas. */
.ro-portal-hub {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px;
  margin: 0 0 28px;
}
.ro-portal-hub a {
  position: relative;
  min-height: 132px;
  padding: 22px;
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.ro-portal-hub a:nth-child(2) { background: #f2eeff; }
.ro-portal-hub a:nth-child(3) { background: #dff3ff; }
.ro-portal-hub a::after { content: "↗"; position: absolute; right: 16px; top: 14px; font: 950 23px/1 Arial,sans-serif; }
.ro-portal-hub a:hover,
.ro-portal-hub a:focus-visible { color: var(--ro-ink); background: var(--ro-yellow); transform: translate(3px,3px); box-shadow: 1px 1px 0 var(--ro-ink); }
.ro-portal-hub strong { display: block; margin-bottom: 10px; font-size: 21px; font-weight: 950; }
.ro-portal-hub span { display: block; max-width: 85%; color: #554d5e; font-size: 14px; line-height: 1.6; }

/* Ranking modules share one consistent heading and content depth. */
.bid,
.ranklist,
.pg_ranklist .bm { border: var(--ro-border) !important; box-shadow: var(--ro-shadow-sm); }
.pg_ranklist .bm_h { background: var(--ro-violet); }
.pg_ranklist .bm_h,
.pg_ranklist .bm_h a { color: #fff; }
.pg_ranklist .bm_c { min-height: 92px; }

@media (max-width: 820px) {
  .ro-page-hero { min-height: 170px; padding: 22px 20px; background-position: 58% center; }
  .ro-page-hero::after { width: 76px; height: 76px; right: 10px; opacity: .75; }
  .ro-page-hero h1 { font-size: 30px; }
  .ro-page-hero p { max-width: 80%; font-size: 14px; }
  .ro-portal-hub { grid-template-columns: 1fr; }
  .ct2 .mn,
  .ct2 .sd,
  .ct2_a .mn,
  .ct2_a .appl { float: none; width: 100%; }
  .ct2 .sd,
  .ct2_a .appl { margin: 0 0 16px; }
}

@media (max-width: 560px) {
  .ro-page-hero { margin-top: 14px; }
  .ro-page-hero__marker { font-size: 11px; }
  .ro-page-hero h1 { font-size: 27px; }
  .ro-page-hero p { max-width: 100%; }
  .ro-page-hero::after { display: none; }
  .ro-portal-hub a { min-height: 104px; padding: 18px; }
}

/* 2026-09-03 complete forum composition: table directory + member rail. */
body { font-size: 15px; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 4px solid var(--ro-blue) !important;
  outline-offset: 2px;
}

#hd { padding-top: 14px; }
#hd .wp { width: min(1240px, calc(100% - 32px)); max-width: 1240px; }
#hd .hdc { min-height: 78px; padding: 12px 18px; }
#hd h2 a::before { width: 52px; height: 52px; margin-right: 12px; }
#hd h2 a::after { font-size: 19px; }
#lsform .px { width: 150px; }

#nv { min-height: 54px; padding-left: 18px; background: var(--ro-paper); border-bottom: var(--ro-border); }
#nv ul { display: flex; align-items: stretch; }
#nv li { height: 51px; border-right: 0; }
#nv li a { height: 51px; padding: 0 16px; color: var(--ro-ink); line-height: 51px; }
#nv li.a,
#nv li:hover { background: var(--ro-violet); box-shadow: inset 0 -5px 0 var(--ro-yellow); }
#nv li.a a,
#nv li:hover a { color: #fff; }
#qmenu { height: 51px; line-height: 51px; background: var(--ro-yellow); border-left: var(--ro-border); }
#scbar { display: flex; align-items: center; min-height: 58px; padding: 10px 18px; }
#scbar_form { width: 100%; }
#scbar_txt { width: min(420px, 55vw); }

#wp.wp { width: min(1240px, calc(100% - 32px)); max-width: 1240px; }
.ro-forum-hero { min-height: 286px; margin-top: 20px; padding: 32px 38px; }
.ro-forum-hero h1 { font-size: clamp(38px, 5vw, 58px); }
.ro-forum-hero::before { background: linear-gradient(90deg,rgba(255,250,240,.97) 0%,rgba(255,250,240,.9) 36%,rgba(255,250,240,.08) 64%,transparent 100%); }

#pt { margin: 16px 0; box-shadow: none; }
#chart { margin-bottom: 18px; background: var(--ro-paper) !important; box-shadow: var(--ro-shadow-sm); }
#chart .chart { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; }
#chart .ro-chart-stat { min-height: 42px; padding: 6px 14px; background: transparent; border: 0; border-right: 2px solid var(--ro-ink); }
#chart .ro-chart-stat--member { background: transparent; }

.ro-forum-index .mn { float: none; width: 100%; display: grid; grid-template-columns: minmax(0,1fr) 286px; gap: 18px; align-items: start; }
.ro-forum-index .mn > .fl { grid-column: 1; grid-row: 1; min-width: 0; margin: 0; }
.ro-forum-index .mn > #online { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; position: sticky; top: 16px; }
.ro-forum-index .mn > :not(.fl):not(#online) { grid-column: 1 / -1; }

.ro-board-category { margin: 0; box-shadow: var(--ro-shadow-sm); }
.ro-board-category .bm_h { color: #fff; background: var(--ro-violet); }
.ro-board-category .bm_h a { color: #fff; font-size: 21px; }
.ro-board-category > .bm_c { padding: 0; }
.ro-board-category .fl_tb,
.ro-board-category .fl_tb tbody { display: block; width: 100%; }
.ro-board-category .fl_tb tr { display: contents; }
.ro-board-category .fl_tb .fl_g {
  display: grid;
  width: auto !important;
  grid-template-columns: 56px minmax(190px,1.2fr);
  gap: 14px;
  min-height: 92px;
  padding: 12px 16px;
  background: var(--ro-paper);
  border: 0;
  border-bottom: 2px solid #bdb5aa;
}
.ro-board-category .fl_tb .fl_g:last-child { border-bottom: 0; }
.ro-board-category .fl_tb .fl_g:hover { background: #fff3ad; }
.ro-board-category .fl_icn_g { width: 52px !important; align-self: center; }
.ro-board-category .fl_icn_g a,
.ro-board-category .fl_icn_g img { width: 48px !important; height: 48px !important; }
.ro-board-category .fl_g dl {
  display: grid;
  grid-template-columns: minmax(150px,1.2fr) 150px minmax(180px,1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 18px;
}
.ro-board-category .fl_g dt { grid-column: 1; grid-row: 1; font-size: 18px; }
.ro-board-category .fl_g dt::after { display: none; }
.ro-board-category .ro-forum-description { grid-column: 1; grid-row: 2; overflow: hidden; color: #5d5667; font-size: 12px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.ro-board-category .ro-forum-stats { grid-column: 2; grid-row: 1 / span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ro-board-category .ro-forum-stats em { display: grid; place-items: center; min-height: 40px; padding: 5px; text-align: center; background: #fff; }
.ro-board-category .ro-forum-stats em + em { background: #f2eeff; }
.ro-board-category .ro-forum-last { grid-column: 3; grid-row: 1 / span 2; align-self: stretch; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; padding: 0 0 0 16px; border: 0; border-left: 2px solid #bdb5aa; }
.ro-board-category .ro-forum-last__value { width: 100%; text-align: left; }

#online .bm_h { color: #fff; background: var(--ro-violet); }
#online .bm_h a { color: #fff; }
#online .bm_c { padding: 14px; }
#onlinelist dt { margin: 0 0 12px; padding: 0 0 12px; line-height: 1.7; }
#onlinelist dd ul { display: grid; grid-template-columns: 1fr; gap: 8px; }
#onlinelist dd li { float: none; width: auto !important; min-height: 32px; padding: 6px 8px; background: #fff; border: 2px solid var(--ro-ink); }

/* Discuz popup family: login, search type, quick nav, notices and confirmations. */
.p_pop,
.p_pof,
.sllt,
.fwin .m_c,
#fwin_content_login,
#fwin_content_lostpw {
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: var(--ro-border) !important;
  border-radius: 0 !important;
  box-shadow: var(--ro-shadow) !important;
}
.p_pop,
.p_pof { min-width: 190px; padding: 8px; }
.p_pop a,
.p_pof a { display: block; min-height: 34px; padding: 8px 10px; color: var(--ro-ink); font-weight: 800; border: 0; border-bottom: 1px solid #cfc5b7; }
.p_pop a:last-child,
.p_pof a:last-child { border-bottom: 0; }
.p_pop a:hover,
.p_pop a:focus,
.p_pof a:hover,
.p_pof a:focus { color: var(--ro-ink); background: var(--ro-yellow); }
.fwin .m_c { overflow: hidden; }
.fwin .flb { background: var(--ro-violet); border-bottom: var(--ro-border); }
.fwin .flb em,
.fwin .flb em a { color: #fff; }
.fwin .c { padding: 18px; }
.fwin .rfm { padding: 0 18px; }
.fwin .rfm .pn { min-height: 40px; }
.alert_right,
.alert_error,
.alert_info { min-height: 48px; padding: 10px 10px 10px 58px; font-size: 15px; line-height: 1.6; }

@media (max-width: 980px) {
  .ro-forum-index .mn { grid-template-columns: 1fr; }
  .ro-forum-index .mn > .fl,
  .ro-forum-index .mn > #online { grid-column: 1; grid-row: auto; position: static; }
  .ro-board-category .fl_g dl { grid-template-columns: minmax(150px,1fr) 138px; }
  .ro-board-category .ro-forum-last { grid-column: 1 / -1; grid-row: 3; flex-direction: row; padding: 8px 0 0; border-left: 0; border-top: 2px solid #bdb5aa; }
}

@media (max-width: 820px) {
  #chart .chart { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #chart .ro-chart-stat { border-bottom: 2px solid var(--ro-ink); }
  .ro-board-category .fl_g dl { grid-template-columns: 1fr; }
  .ro-board-category .fl_g dt,
  .ro-board-category .ro-forum-description,
  .ro-board-category .ro-forum-stats,
  .ro-board-category .ro-forum-last { grid-column: 1; grid-row: auto; }
  .ro-board-category .ro-forum-stats { grid-template-columns: repeat(2,minmax(0,110px)); }
}

@media (max-width: 560px) {
  #wp.wp,
  #hd .wp { width: calc(100% - 16px); }
  #nv { padding-left: 8px; }
  #nv li a { padding: 0 13px; }
  .ro-forum-hero { min-height: 410px; padding: 24px 18px; }
  .ro-forum-hero h1 { font-size: 36px; }
  #chart .chart { grid-template-columns: 1fr 1fr; }
  .ro-board-category .fl_tb .fl_g { grid-template-columns: 46px minmax(0,1fr); min-height: 150px; padding: 14px; }
  .ro-board-category .fl_icn_g { width: 42px !important; }
  .ro-board-category .fl_icn_g a,
  .ro-board-category .fl_icn_g img { width: 40px !important; height: 40px !important; }
  .ro-board-category .ro-forum-last { flex-direction: column; }
}

/* Shared BWRO site chrome: mirrors /ro/index.php while preserving Discuz tools. */
#toptb { display: none; }

.ro-sitebar {
  width: 100%;
  margin-bottom: 16px;
  background: var(--ro-yellow);
  border-bottom: var(--ro-border);
}

.ro-sitebar__inner {
  width: min(1180px, calc(100% - 32px));
  min-height: 92px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

#hd {
  min-width: 0;
  padding: 0;
  background: transparent;
  border-bottom: 0;
}

#hd .wp {
  width: min(1180px, calc(100% - 32px));
  max-width: 1180px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.ro-sitebar__inner::after,
.ro-accountbar::after {
  display: none !important;
  content: none !important;
}

.ro-sitebar h2.ro-site-brand {
  float: none;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

.ro-sitebar h2.ro-site-brand > a {
  min-height: 0;
  display: inline-flex;
  align-items: center;
  gap: 15px;
  color: var(--ro-ink);
  text-decoration: none;
}

.ro-sitebar h2.ro-site-brand > a::before,
.ro-sitebar h2.ro-site-brand > a::after { display: none; content: none; }

.ro-site-brand__mark {
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  display: grid;
  place-items: center;
}

.ro-sitebar .ro-site-brand__mark img {
  width: 72px;
  height: 72px;
  display: block;
  object-fit: contain;
}

.ro-site-brand__copy {
  display: grid;
  gap: 5px;
  color: var(--ro-ink);
  font-size: 23px;
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.045em;
}

.ro-site-brand__copy small {
  display: block;
  margin: 0;
  font: 900 12px/1 Consolas, monospace;
  letter-spacing: .14em;
}

.ro-site-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.ro-site-button {
  min-height: 46px;
  padding: 10px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ro-ink);
  background: #fff;
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
  font-size: 15px;
  font-weight: 850;
  text-decoration: none;
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}

.ro-site-button:hover {
  color: var(--ro-ink);
  background: var(--ro-yellow);
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--ro-ink);
}

.ro-site-button:active {
  transform: translate(4px, 4px);
  box-shadow: none;
}

.ro-site-button--active,
.ro-site-button--active:hover {
  color: #fff;
  background: var(--ro-violet);
}

.ro-accountbar {
  min-height: 58px;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--ro-paper);
  border: var(--ro-border);
  border-bottom: 0;
}

.ro-accountbar__label {
  flex: 0 0 auto;
  color: var(--ro-violet);
  font: 900 12px/1.2 Consolas, monospace;
  letter-spacing: .12em;
}

.ro-accountbar #lsform,
.ro-accountbar #um { margin-left: auto; }

/* Signed-in account cluster: identity, actions and status use separate rhythms. */
.ro-accountbar #um {
  min-width: 0;
  max-width: 820px;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 14px;
  color: var(--ro-ink);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.ro-accountbar #um .avt {
  grid-column: 2;
  grid-row: 1 / span 2;
  float: none;
  margin: 0;
}

.ro-accountbar #um .avt img {
  width: 48px;
  height: 48px;
  padding: 0;
  object-fit: cover;
  background: var(--ro-paper);
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

.ro-accountbar #um p {
  min-width: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  text-align: right;
  line-height: 1.35;
}

.ro-accountbar #um p:first-of-type { grid-column: 1; grid-row: 1; }
.ro-accountbar #um p:last-of-type { grid-column: 1; grid-row: 2; }
.ro-accountbar #um .pipe { display: none; }

.ro-accountbar #um p:first-of-type > a,
.ro-accountbar #um p:first-of-type > strong > a {
  min-height: 32px;
  padding: 6px 9px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: var(--ro-paper);
  border: 2px solid transparent;
  text-decoration: none;
  white-space: nowrap;
}

.ro-accountbar #um .showmenu { margin-right: 0; }

.ro-accountbar #um .vwmy {
  padding: 0;
  background: none;
  font-size: 15px;
  font-weight: 950;
}

.ro-accountbar #um p:first-of-type > a:hover,
.ro-accountbar #um p:first-of-type > a:focus-visible,
.ro-accountbar #um p:first-of-type > strong > a:hover,
.ro-accountbar #um p:first-of-type > strong > a:focus-visible {
  color: #fff;
  background: var(--ro-violet);
  border-color: var(--ro-ink);
  outline: 0;
}

.ro-accountbar #um #extcreditmenu,
.ro-accountbar #um #g_upmine,
.ro-accountbar #um p:last-of-type > a {
  min-height: 30px;
  margin: 0 !important;
  padding: 5px 10px !important;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: #fff5bd;
  border: 2px solid var(--ro-ink);
  font: 850 12px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-decoration: none;
  white-space: nowrap;
}

.ro-accountbar #um #extcreditmenu:hover,
.ro-accountbar #um #extcreditmenu:focus-visible,
.ro-accountbar #um #g_upmine:hover,
.ro-accountbar #um #g_upmine:focus-visible {
  color: #fff;
  background: var(--ro-violet);
  outline: 0;
}

.ro-accountbar #um .new {
  padding-left: 30px !important;
  background-position: 8px 50%;
}

#hd #nv {
  min-height: 54px;
  padding-left: 18px;
  background: var(--ro-paper);
  border: var(--ro-border);
  border-bottom: 0;
}

#hd #nv[style*="position: fixed"] {
  opacity: 1 !important;
  background: var(--ro-paper) !important;
  border: var(--ro-border) !important;
  box-shadow: 0 6px 0 var(--ro-ink);
}

#hd #scbar {
  background: var(--ro-paper);
  border: var(--ro-border);
}

#wp.wp {
  width: min(1180px, calc(100% - 32px));
  max-width: 1180px;
}

#ft.wp {
  width: 100%;
  max-width: none;
  min-height: 96px;
  margin: 72px 0 0;
  padding: 0 !important;
  color: #fff;
  background: var(--ro-ink);
  border: 0;
  border-top: var(--ro-border);
  border-color: var(--ro-ink) !important;
  box-shadow: none;
}

.ro-site-footer__inner {
  width: min(1180px, calc(100% - 32px));
  min-height: 96px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  font: 13px/1.4 "JetBrains Mono", Consolas, monospace;
}

@media (max-width: 900px) {
  .ro-sitebar__inner {
    padding: 14px 0 18px;
    align-items: flex-start;
    flex-direction: column;
  }

  .ro-site-menu { justify-content: flex-start; }
  .ro-accountbar { align-items: flex-start; flex-direction: column; }
  .ro-accountbar #lsform,
  .ro-accountbar #um { width: 100%; margin-left: 0; }
  .ro-accountbar #um { max-width: none; }
  .ro-accountbar #um p { justify-content: flex-start; text-align: left; }
  .ro-site-footer__inner {
    padding: 22px 0;
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Rank-list rows: anchor the legacy absolute rank badge to its own row.
 * Discuz places .ranknum with a negative margin but leaves the dl static,
 * which lets the badge drift outside the content card. */
#nv_misc.pg_ranklist .hasrank {
  display: grid;
  gap: 10px;
}

#nv_misc.pg_ranklist .hasrank > dl {
  position: relative;
  min-height: 84px;
  margin: 0;
  padding: 14px 138px 14px 126px !important;
  box-sizing: border-box;
  overflow: visible;
  background: #fff;
  border: 2px solid var(--ro-ink) !important;
  box-shadow: 3px 3px 0 var(--ro-ink);
  transition: background-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

#nv_misc.pg_ranklist .hasrank > dl:hover {
  background: #fff9db;
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

#nv_misc.pg_ranklist .hasrank > dl > .ranknum {
  position: absolute !important;
  top: 50%;
  left: 14px;
  width: 36px;
  height: 36px;
  margin: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
}

#nv_misc.pg_ranklist .hasrank .ranknum > .ranks {
  width: 32px;
  height: 32px;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: #dbeafe;
  border: 2px solid var(--ro-ink);
  border-radius: 0;
  box-shadow: 2px 2px 0 var(--ro-ink);
  font: 950 14px/1 "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  text-align: center;
}

#nv_misc.pg_ranklist .hasrank .ranknum > .ranks_1 {
  color: var(--ro-ink);
  background: var(--ro-yellow);
}

#nv_misc.pg_ranklist .hasrank .ranknum > .ranks_2 {
  color: #fff;
  background: var(--ro-violet);
}

#nv_misc.pg_ranklist .hasrank .ranknum > .ranks_3 {
  color: var(--ro-ink);
  background: var(--ro-coral);
}

#nv_misc.pg_ranklist .hasrank > dl > dd.m {
  position: absolute;
  top: 50%;
  left: 62px;
  margin: 0 !important;
  transform: translateY(-50%);
}

#nv_misc.pg_ranklist .hasrank > dl > dd.m img {
  display: block;
  width: 48px;
  height: 48px;
  object-fit: cover;
}

#nv_misc.pg_ranklist .hasrank > dl > dt.y {
  max-width: 112px;
  margin: 0 0 0 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  line-height: 1.35;
  text-align: right;
}

#nv_misc.pg_ranklist .hasrank > dl > dt:not(.y) {
  padding-top: 2px;
  font-size: 16px;
  line-height: 1.45;
}

#nv_misc.pg_ranklist .hasrank > dl > dd:not(.ranknum):not(.m) {
  margin: 2px 0 0;
  color: var(--ro-text-muted);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  #nv_misc.pg_ranklist .hasrank > dl {
    min-height: 96px;
    padding: 12px 12px 12px 112px !important;
  }

  #nv_misc.pg_ranklist .hasrank > dl > .ranknum { left: 10px; }
  #nv_misc.pg_ranklist .hasrank > dl > dd.m { left: 54px; }

  #nv_misc.pg_ranklist .hasrank > dl > dt.y {
    float: none;
    max-width: none;
    margin: 8px 0 0;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 6px 12px;
    text-align: left;
  }

  #nv_misc.pg_ranklist .hasrank > dl > dt.y p { margin: 0; }
}

@media (max-width: 600px) {
  .ro-sitebar { margin-bottom: 12px; }

  #hd .wp,
  .ro-sitebar__inner,
  .ro-site-footer__inner { width: min(100% - 20px, 1180px); }

  .ro-sitebar__inner { gap: 14px; }
  .ro-sitebar h2.ro-site-brand > a { gap: 10px; }
  .ro-site-brand__copy { gap: 4px; font-size: 20px; }
  .ro-site-brand__copy small { font-size: 10px; letter-spacing: .12em; }
  .ro-site-brand__mark { width: 60px; height: 60px; flex-basis: 60px; }
  .ro-sitebar .ro-site-brand__mark img { width: 60px; height: 60px; }
  .ro-site-menu { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .ro-site-button { width: 100%; padding-inline: 10px; }
  .ro-accountbar { padding: 12px; }
  .ro-accountbar #um {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .ro-accountbar #um .avt { display: none; }
  .ro-accountbar #um p:first-of-type,
  .ro-accountbar #um p:last-of-type { grid-column: 1; grid-row: auto; }
  .ro-accountbar #um p { gap: 6px; }
  .ro-accountbar #um p:first-of-type > a,
  .ro-accountbar #um p:first-of-type > strong > a { min-height: 36px; }
}

/* Quick navigation v2: generated icon family and disciplined popup layout. */
#qmenu_menu {
  width: min(880px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 28px));
  overflow-x: hidden;
  background: #fffaf0;
}

#qmenu_menu .ro-qmenu-shortcuts {
  padding: 18px 20px 20px;
  background: var(--ro-yellow);
  border-bottom: 3px solid var(--ro-ink);
}

#qmenu_menu .ro-qmenu-shortcuts__heading {
  margin-bottom: 14px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

#qmenu_menu .ro-qmenu-shortcuts__heading strong {
  font-size: 21px;
  font-weight: 950;
  line-height: 1.2;
}

#qmenu_menu .ro-qmenu-shortcuts__heading span {
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .08em;
}

#qmenu_menu ul.nav.ro-qmenu-shortcuts__list {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(72px, 1fr));
  gap: 10px;
}

#qmenu_menu ul.nav.ro-qmenu-shortcuts__list li {
  float: none;
  min-width: 0;
}

#qmenu_menu ul.nav.ro-qmenu-shortcuts__list a {
  width: 100%;
  min-height: 94px;
  margin: 0;
  padding: 66px 6px 9px;
  display: block;
  box-sizing: border-box;
  overflow: hidden;
  color: var(--ro-ink);
  background-color: #fff;
  background-position: 50% 9px !important;
  background-repeat: no-repeat !important;
  background-size: 52px 52px !important;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
  font-size: 14px;
  font-weight: 950;
  line-height: 1.25;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

#qmenu_menu ul.nav.ro-qmenu-shortcuts__list a:hover,
#qmenu_menu ul.nav.ro-qmenu-shortcuts__list a:focus-visible {
  color: #fff;
  background-color: var(--ro-violet);
  box-shadow: 6px 6px 0 var(--ro-ink);
  outline: 3px solid var(--ro-blue);
  outline-offset: 2px;
  transform: translate(-2px, -2px);
}

#qmenu_menu .ro-qmenu-item--friend a { background-image: url(qmenu-icons/friend.png) !important; }
#qmenu_menu .ro-qmenu-item--thread a { background-image: url(qmenu-icons/posts.png) !important; }
#qmenu_menu .ro-qmenu-item--favorite a { background-image: url(qmenu-icons/favorite.png) !important; }
#qmenu_menu .ro-qmenu-item--magic a { background-image: url(qmenu-icons/magic.png) !important; }
#qmenu_menu .ro-qmenu-item--medal a { background-image: url(qmenu-icons/medal.png) !important; }
#qmenu_menu .ro-qmenu-item--task a { background-image: url(qmenu-icons/task.png) !important; }
#qmenu_menu .ro-qmenu-item--wall a { background-image: url(qmenu-icons/wall.png) !important; }

#qmenu_menu #fjump_menu {
  padding: 20px;
}

#qmenu_menu #flsrchdiv > .mbm {
  margin-bottom: 18px !important;
  padding: 14px 16px;
  background: #eaf6ff;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

#qmenu_menu #flsrchdiv > .mbm .px {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  background: #fff;
}

#qmenu_menu .jump_bdl {
  gap: 16px;
}

#qmenu_menu .jump_bdl > li {
  min-height: 310px;
  overflow-y: auto;
  scrollbar-color: var(--ro-violet) #eee9df;
  scrollbar-width: thin;
  box-shadow: 5px 5px 0 var(--ro-ink);
}

#qmenu_menu .jump_bdl > li > p.bbda {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 50px;
  padding: 13px 15px;
  font-size: 16px;
}

#qmenu_menu .jump_bdl > li > p:not(.bbda) {
  margin: 0 10px;
  padding: 9px 8px;
  border-bottom: 1px solid #d8d2c7;
}

#qmenu_menu .jump_bdl > li > p:not(.bbda) a {
  line-height: 1.5;
}

@media (max-width: 760px) {
  #qmenu_menu .ro-qmenu-shortcuts { padding: 14px; }
  #qmenu_menu ul.nav.ro-qmenu-shortcuts__list {
    grid-template-columns: repeat(4, minmax(68px, 1fr));
  }
  #qmenu_menu ul.nav.ro-qmenu-shortcuts__list a { min-height: 88px; padding-top: 62px; }
  #qmenu_menu .jump_bdl > li { min-height: 0; max-height: 320px; }
}

@media (max-width: 430px) {
  #qmenu_menu .ro-qmenu-shortcuts__heading span { display: none; }
  #qmenu_menu ul.nav.ro-qmenu-shortcuts__list { grid-template-columns: repeat(3, minmax(68px, 1fr)); }
  #qmenu_menu #fjump_menu { padding: 14px; }
}

/* Search — one focused surface for the landing page and result pages. */
#nv_search {
  min-height: 100vh;
  background-color: var(--ro-canvas);
  background-image:
    linear-gradient(rgba(18, 18, 18, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 18, 18, .045) 1px, transparent 1px);
  background-size: 24px 24px;
}

#nv_search #toptb {
  width: min(1180px, calc(100% - 32px));
  min-height: 42px;
  margin: 16px auto 0;
  padding: 8px 12px;
  box-sizing: border-box;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
  line-height: 22px;
}

#nv_search #toptb a { color: var(--ro-ink); font-weight: 800; }
#nv_search #ct {
  width: min(1080px, calc(100% - 32px));
  margin: 54px auto 64px;
}

#nv_search .searchform {
  margin: 0 0 28px;
  padding: 26px;
  background: var(--ro-yellow);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
  box-sizing: border-box;
}

#nv_search .ro-search-home-brand {
  margin: 0 0 26px;
  padding: 0;
  text-align: left;
}

#nv_search .ro-search-home-brand > p {
  margin: 12px 0 0;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.6;
}

#nv_search .ro-search-brand { margin: 0; padding: 0; }
#nv_search .ro-search-brand a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--ro-ink);
  text-decoration: none;
}

#nv_search .ro-search-brand img {
  width: 76px;
  height: 76px;
  object-fit: contain;
}

#nv_search .ro-search-brand span { display: grid; gap: 2px; text-align: left; }
#nv_search .ro-search-brand strong {
  font-size: clamp(25px, 4vw, 38px);
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.045em;
}
#nv_search .ro-search-brand small {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .14em;
}

#nv_search #scform {
  width: 100%;
  margin: 0 !important;
  table-layout: auto;
}

#nv_search #scform > tbody > tr > td { padding: 0; }
#nv_search #scform_tb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-size: 14px !important;
}

#nv_search #scform_tb a,
#nv_search #scform_tb .y a {
  float: none;
  height: auto;
  min-height: 38px;
  margin: 0;
  padding: 7px 12px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: var(--ro-paper) none;
  border: 2px solid var(--ro-ink);
  font-weight: 850;
  line-height: 20px;
  text-decoration: none;
}

#nv_search #scform_tb a:hover,
#nv_search #scform_tb a:focus,
#nv_search #scform_tb a.a {
  color: #fff;
  background: var(--ro-violet) none;
}

#nv_search #scform_tb .y {
  float: none;
  margin-left: auto;
  display: flex;
  gap: 8px;
  order: 2;
}

#nv_search #scform_form {
  width: 100%;
  background: none;
  border-collapse: separate;
  border-spacing: 0;
}

#nv_search #scform_form .td_srchtxt { width: 100%; background: none; }
#nv_search #scform_srchtxt {
  width: 100% !important;
  height: 52px;
  padding: 0 16px;
  box-sizing: border-box;
  color: var(--ro-ink);
  background: var(--ro-paper) !important;
  border: var(--ro-border) !important;
  border-right: 0 !important;
  border-radius: 0;
  outline: 0;
  font-size: 17px;
  font-weight: 750;
}

#nv_search #scform_srchtxt:focus {
  background: #eef5ff !important;
  box-shadow: inset 0 0 0 3px var(--ro-violet);
}

#nv_search #scform_form .td_srchbtn { width: 126px; background: none; }
#nv_search #scform_submit {
  width: 126px;
  height: 52px;
  padding: 0 18px;
  opacity: 1;
  color: #fff;
  background: var(--ro-violet) none !important;
  border: var(--ro-border) !important;
  border-radius: 0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 900;
}
#nv_search #scform_submit:hover,
#nv_search #scform_submit:focus { color: var(--ro-ink); background: var(--ro-paper) none !important; }

#nv_search #scform > tbody > tr:first-child > .ro-search-brand-cell {
  width: 265px;
  padding-right: 26px;
  vertical-align: middle;
}
#nv_search .ro-search-brand--compact img { width: 58px; height: 58px; }
#nv_search .ro-search-brand--compact strong { font-size: 23px; }

#nv_search .tl {
  margin-top: 30px;
  padding: 0;
  overflow: visible;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}
#nv_search .tl .sttl {
  margin: 0;
  padding: 17px 20px;
  color: #fff;
  background: var(--ro-violet);
  border-bottom: var(--ro-border);
}
#nv_search .tl .sttl h2 { margin: 0; color: inherit; font-size: 18px; line-height: 1.45; }
#nv_search .tl .sttl em { color: var(--ro-yellow); font-style: normal; }
#nv_search .tl > .emp { margin: 18px !important; }
#nv_search .slst { margin: 0 !important; padding: 0 20px; }
#nv_search .slst li {
  padding: 20px 0 !important;
  border-bottom: 2px solid var(--ro-ink);
}
#nv_search .slst li:last-child { border-bottom: 0; }
#nv_search .slst h3 { margin: 0 0 9px; line-height: 1.45; }
#nv_search .slst p { margin: 6px 0 0; line-height: 1.65; }
#nv_search .pgs { padding: 18px 20px; border-top: 2px solid var(--ro-ink); }

#nv_search #quick_sch_menu {
  padding: 8px;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}
#nv_search #quick_sch_menu li a {
  min-height: 38px;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  color: var(--ro-ink);
  font-weight: 800;
}
#nv_search #quick_sch_menu li a:hover { background: var(--ro-yellow); }

@media (max-width: 720px) {
  #nv_search #ct { margin-top: 34px; }
  #nv_search .searchform { padding: 18px; }
  #nv_search #scform > tbody > tr,
  #nv_search #scform > tbody > tr > td { display: block; width: 100% !important; }
  #nv_search #scform > tbody > tr:first-child > .ro-search-brand-cell { padding: 0 0 20px; }
  #nv_search #scform_tb .y { width: 100%; margin: 0; order: 0; }
}

@media (max-width: 480px) {
  #nv_search #toptb,
  #nv_search #ct { width: calc(100% - 20px); }
  #nv_search .searchform { padding: 14px; box-shadow: 5px 5px 0 var(--ro-ink); }
  #nv_search .ro-search-brand img { width: 58px; height: 58px; }
  #nv_search .ro-search-brand strong { font-size: 24px; }
  #nv_search #scform_tb a,
  #nv_search #scform_tb .y a { flex: 1 1 auto; justify-content: center; }
  #nv_search #scform_form,
  #nv_search #scform_form tbody,
  #nv_search #scform_form tr { display: block; width: 100%; }
  #nv_search #scform_form td { display: block; width: 100% !important; }
  #nv_search #scform_srchtxt { border-right: var(--ro-border) !important; }
  #nv_search #scform_submit { width: 100%; margin-top: 8px; }
}

/* Canonical form controls: one Neobrutalist treatment across search, login and text entry. */
:root {
  --ro-control-bg: #fffef7;
  --ro-control-hover: #fff8cf;
  --ro-control-autofill: #e7f3ff;
  --ro-control-disabled: #ded8ce;
  --ro-control-shadow: 4px 4px 0 var(--ro-ink);
}

input:not([type]),
input[type="text"],
input[type="password"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select {
  box-sizing: border-box;
  min-height: 44px;
  padding: 9px 12px;
  color: var(--ro-ink);
  background: var(--ro-control-bg) none;
  border: 3px solid var(--ro-ink) !important;
  border-radius: 0 !important;
  box-shadow: var(--ro-control-shadow);
  font: 700 15px/1.35 Inter, "Microsoft YaHei", sans-serif;
  transition: background-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

textarea {
  min-height: 112px;
  resize: vertical;
}

input:not([type]):hover,
input[type="text"]:hover,
input[type="password"]:hover,
input[type="email"]:hover,
input[type="search"]:hover,
input[type="url"]:hover,
input[type="tel"]:hover,
input[type="number"]:hover,
textarea:hover,
select:hover { background-color: var(--ro-control-hover); }

input:not([type]):focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
  background-color: #fff;
  box-shadow: 4px 4px 0 var(--ro-violet);
  outline: 4px solid var(--ro-blue) !important;
  outline-offset: 3px;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--ro-ink);
  box-shadow: inset 0 0 0 1000px var(--ro-control-autofill), 4px 4px 0 var(--ro-ink);
}

input::placeholder,
textarea::placeholder { color: #625b6b; opacity: 1; }

input:disabled,
textarea:disabled,
select:disabled,
input[readonly],
textarea[readonly] {
  color: #6b655f;
  background: var(--ro-control-disabled);
  box-shadow: 2px 2px 0 #77716b;
  cursor: not-allowed;
}

input[aria-invalid="true"],
textarea[aria-invalid="true"],
select[aria-invalid="true"],
.rfm .er input,
.rfm .er select {
  background: #ffe0dc;
  border-color: var(--ro-danger, #dc2626) !important;
  box-shadow: 4px 4px 0 var(--ro-coral);
}

/* Compact contexts keep their footprint while retaining the same visual anatomy. */
#lsform .px,
#scbar_txt {
  height: 40px;
  min-height: 40px;
  padding: 7px 10px;
  background: var(--ro-control-bg) none !important;
  border: 3px solid var(--ro-ink) !important;
  box-shadow: 3px 3px 0 var(--ro-ink);
}

#lsform .px:focus,
#scbar_txt:focus { box-shadow: 3px 3px 0 var(--ro-violet); }

#scbar_txt { width: min(420px, 55vw); }
#scbar_btn { height: 40px; border-width: 3px; box-shadow: 3px 3px 0 var(--ro-ink); }
.scbar_icon_td,
.scbar_txt_td,
.scbar_type_td,
.scbar_btn_td { background-image: none !important; }

#registerform .rfm .px,
.nfl .f_c .rfm .px,
.fwin .rfm .px,
.lgfm .px,
.lgfm .txt,
.lgfm .pt {
  height: auto;
  min-height: 44px;
  padding: 9px 12px;
}

/* Rich-text editors provide their own framed surface; do not double-frame the inner textarea. */
.tedt {
  border: 3px solid var(--ro-ink) !important;
  box-shadow: var(--ro-control-shadow);
}

.tedt .pt,
.tedt textarea {
  min-height: 90px;
  padding: 10px 12px !important;
  background: var(--ro-control-bg) none;
  border: 0 !important;
  box-shadow: none;
  outline: 0 !important;
}

/* Discuz colour/background pickers are controls, not text-entry fields. */
.colorbox input,
.hrbox input,
.postbgbox input {
  min-height: 0;
  padding: 0;
  box-shadow: none;
}

@media (max-width: 600px) {
  input:not([type]),
  input[type="text"],
  input[type="password"],
  input[type="email"],
  input[type="search"],
  input[type="url"],
  input[type="tel"],
  input[type="number"],
  textarea,
  select { max-width: 100%; }

  #scbar_txt { width: 100%; }
}

/* Internal composition: reduce nested chrome and keep content hierarchy calm. */
#pt.bm {
  min-height: 0;
  margin: 14px 0;
  padding: 8px 2px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 13px;
  line-height: 1.5;
}

#pt .z { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
#pt .nvhm { width: auto; padding: 0; background: none; line-height: inherit; text-indent: 0; }

.bm,
.tl,
.fl,
.fwin .m_c {
  border-radius: 0 !important;
}

.bm_h,
.bmw .bm_h {
  min-height: 48px;
  padding: 11px 16px;
  display: flex;
  align-items: center;
  color: #fff;
  background: var(--ro-violet);
  border: 0;
  border-bottom: var(--ro-border);
  font-size: 17px;
  line-height: 1.35;
}

.bm_h a,
.bmw .bm_h a { color: inherit; }
.bm_c { padding: 18px; }

/* Nested modules share the parent surface instead of producing boxes inside boxes. */
.bm .bm,
.bm_c > .bm {
  margin: 0;
  background: transparent;
  border: 0 !important;
  box-shadow: none !important;
}

.pgs,
#pgt,
.bm.bw0.pgs {
  min-height: 0;
  margin: 12px 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.ttp,
#thread_types.ttp {
  min-height: 0;
  margin: 12px 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  background: transparent;
  border: 0 !important;
  box-shadow: none !important;
}

.ttp li { float: none; margin: 0; padding: 0; }
.ttp a {
  min-height: 38px;
  padding: 8px 12px !important;
  display: inline-flex;
  align-items: center;
  color: var(--ro-ink);
  background: #fff;
  border: 2px solid var(--ro-ink) !important;
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-weight: 800;
}
.ttp .a a,
.ttp a:hover,
.ttp a:focus { color: var(--ro-ink); background: var(--ro-yellow); }

.tl th,
.tl td { padding-top: 13px; padding-bottom: 13px; }
.tl .th { min-height: 48px; color: #fff; background: var(--ro-violet); border-bottom: var(--ro-border); }
.tl .th a { color: #fff; }
.tl tbody:last-child tr:last-child td { border-bottom: 0; }

.emp:not(td):not(th),
.ro-empty-state {
  min-height: 130px;
  padding: 28px 20px !important;
  display: grid;
  place-items: center;
  color: #544c60;
  background: #fff8cf;
  border: 2px dashed var(--ro-ink) !important;
  font-size: 15px;
  font-weight: 750;
  text-align: center;
}

td.emp,
th.emp {
  padding: 22px 16px !important;
  color: #544c60;
  background: #fff8cf;
  font-size: 15px;
  font-weight: 750;
  text-align: center;
}

.ro-board-category .ro-forum-last__label { font-size: 12px !important; }

.appl,
.sd .bm {
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}

.appl li a {
  min-height: 40px;
  padding: 9px 12px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #cfc5b7;
  font-weight: 750;
}
.appl li:last-child a { border-bottom: 0; }
.appl li.a a,
.appl li a:hover { color: var(--ro-ink); background: var(--ro-yellow); }

@media (max-width: 820px) {
  .bm_c { padding: 14px; }
  .tl { overflow-x: auto; }
  .tl table { min-width: 660px; }
  .ttp { gap: 6px; }
  .ttp a { min-height: 36px; padding: 7px 10px !important; }
}

/* Collision fixes: measured against rendered text boxes and popup contents. */
#hd #scbar {
  height: auto !important;
  min-height: 76px;
  padding: 14px 18px;
  overflow: visible !important;
  box-sizing: border-box;
}

#scbar_form,
#scbar_form table { min-height: 44px; }

#scbar_btn {
  width: 76px;
  height: 40px;
  overflow: visible !important;
  color: var(--ro-ink);
  background: var(--ro-yellow) none !important;
  font-size: 14px;
  font-weight: 900;
  line-height: 34px;
  text-indent: 0;
  white-space: nowrap;
}

#scbar_btn strong {
  display: inline;
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  font-size: inherit;
  line-height: inherit;
}

#pt em {
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  line-height: inherit !important;
}

#online .bm_h {
  position: relative;
  height: auto !important;
  min-height: 58px;
  padding: 11px 14px;
  align-items: flex-start;
  gap: 10px;
  overflow: visible !important;
  white-space: normal;
  font-size: 13px;
  line-height: 1.55;
}

#online .bm_h .o {
  position: static;
  flex: 0 0 auto;
  order: 2;
  margin-left: auto;
}

#online .bm_h h3 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  white-space: normal;
}

#onlinelist dd li {
  height: auto !important;
  min-height: 38px;
  overflow: visible;
  box-sizing: border-box;
  line-height: 1.45;
}

.tbn li,
.tbn li.cl,
.tbn li.a {
  float: none;
  width: auto !important;
  height: auto !important;
  min-height: 42px;
  margin: 0;
  overflow: visible !important;
  box-sizing: border-box;
}

.tbn li a {
  min-height: 42px;
  padding: 9px 12px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  line-height: 1.4;
  white-space: normal;
}

.tbn li + li { border-top: 1px solid #cfc5b7; }

.fwin,
.fwin table { max-width: calc(100vw - 32px); }

.fwin .m_c,
#fwin_content_login,
#fwin_content_lostpw {
  width: min(600px, calc(100vw - 32px)) !important;
  min-width: 0;
  height: auto !important;
  min-height: 0;
  overflow: visible !important;
  box-sizing: border-box;
}

.fwin .c,
.fwin .rfm {
  box-sizing: border-box;
  overflow: visible !important;
}

.appl {
  height: auto !important;
  min-height: 0;
  overflow: visible !important;
}

.fwin .rfm { padding: 16px 22px 24px; }
.fwin .rfm table { table-layout: auto; }
.fwin .rfm th,
.fwin .rfm td {
  height: auto !important;
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 1.5;
  white-space: normal;
}

/* Hard shadows need breathing room so adjacent modules never visually collide. */
#wp > .ro-page-hero,
#wp > .ro-forum-hero { margin-bottom: 22px; }
.mn > .bm + .bm,
.mn > .bm + .tl,
.mn > .tl + .bm,
.mn > .tl + .tl { margin-top: 20px; }

@media (max-width: 600px) {
  #hd #scbar { min-height: 68px; padding: 12px; }
  #scbar_form table { min-width: 0; }
  #scbar_btn { width: 64px; }
  .fwin .rfm { padding: 12px 14px 20px; }
  .fwin .rfm table,
  .fwin .rfm tbody,
  .fwin .rfm tr,
  .fwin .rfm th,
  .fwin .rfm td { display: block; width: 100% !important; }
  .fwin .rfm th { padding: 8px 0 4px; text-align: left; }
  .fwin .rfm td { padding: 4px 0 10px; }
}

/* Canonical text-button system: all primary forum actions share ro-site-button anatomy. */
:root {
  --ro-button-height: 46px;
  --ro-button-min-width: 96px;
  --ro-button-padding-x: 16px;
  --ro-button-font-size: 15px;
}

.ro-site-button,
button.pn,
a.pn,
input.pn,
input[type="submit"],
input[type="button"],
input[type="reset"],
#qmenu,
#scbar_btn,
a#newspecial,
a[id^="newspecial"],
a#post_reply,
.ttp a,
.tb_h > ul > li > a,
.tb_h li > a,
#pgt > a,
.ro-qmenu-guest__actions a {
  width: auto;
  min-width: var(--ro-button-min-width);
  height: var(--ro-button-height);
  min-height: var(--ro-button-height);
  padding: 0 var(--ro-button-padding-x) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: visible;
  color: var(--ro-ink) !important;
  background: #fff none !important;
  border: 3px solid var(--ro-ink) !important;
  border-radius: 0 !important;
  box-shadow: 4px 4px 0 var(--ro-ink) !important;
  font-family: inherit;
  font-size: var(--ro-button-font-size);
  font-weight: 900;
  line-height: 1.2 !important;
  text-align: center;
  text-decoration: none !important;
  text-indent: 0;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

.ro-site-button > em,
.ro-site-button > span,
.ro-site-button > strong,
.pn > em,
.pn > span,
.pn > strong,
#scbar_btn > strong {
  padding: 0 !important;
  color: inherit !important;
  font: inherit;
  line-height: inherit !important;
}

button.pnc,
input.pnc,
#lsform button[type="submit"],
#scbar_btn,
#qmenu,
#registerformsubmit,
a#newspecial,
a[id^="newspecial"],
.tb_h > ul > li.y.o > a,
.tb_h li.y.o > a,
#pgt > a,
.ro-qmenu-guest__login {
  color: var(--ro-ink) !important;
  background: var(--ro-yellow) none !important;
}

.ro-site-button--active,
.ro-site-button--active:hover,
a#post_reply,
.ttp .a a,
.tb_h > ul > li.a > a,
.tb_h li.a > a {
  color: #fff !important;
  background: var(--ro-violet) none !important;
}

#qmenu {
  margin: 0;
  line-height: 1.2 !important;
}

#lsform .pn,
#scbar_btn {
  width: auto !important;
  min-width: var(--ro-button-min-width);
  height: var(--ro-button-height) !important;
  min-height: var(--ro-button-height) !important;
  padding: 0 var(--ro-button-padding-x) !important;
}

#pgt > a:not(.ro-site-button) img { display: none !important; }
#pgt > a:not(.ro-site-button)::after { content: "发帖"; }

.tb_h > ul,
.tb_h ul {
  min-height: calc(var(--ro-button-height) + 16px);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.tb_h li,
.tb_h li.a,
.tb_h li.y,
.tb_h li.o {
  float: none;
  height: auto;
  margin: 0;
}

.ro-site-button:hover,
button.pn:hover,
a.pn:hover,
input.pn:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
#qmenu:hover,
#scbar_btn:hover,
a#newspecial:hover,
a[id^="newspecial"]:hover,
a#post_reply:hover,
.ttp a:hover,
.tb_h > ul > li > a:hover,
.tb_h li > a:hover,
#pgt > a:hover,
.ro-qmenu-guest__actions a:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--ro-ink) !important;
}

.ro-site-button:active,
button.pn:active,
a.pn:active,
input.pn:active,
input[type="submit"]:active,
input[type="button"]:active,
input[type="reset"]:active,
#qmenu:active,
#scbar_btn:active,
a#newspecial:active,
a[id^="newspecial"]:active,
a#post_reply:active,
.ttp a:active,
.tb_h > ul > li > a:active,
.tb_h li > a:active,
#pgt > a:active,
.ro-qmenu-guest__actions a:active {
  transform: translate(4px, 4px);
  box-shadow: none !important;
}

.ro-site-button:focus-visible,
.pn:focus-visible,
input[type="submit"]:focus-visible,
input[type="button"]:focus-visible,
input[type="reset"]:focus-visible,
#qmenu:focus-visible,
#scbar_btn:focus-visible,
.ttp a:focus-visible,
.tb_h > ul > li > a:focus-visible {
  outline: 3px solid var(--ro-blue);
  outline-offset: 4px;
}

.pn:disabled,
input[type="submit"]:disabled,
input[type="button"]:disabled,
input[type="reset"]:disabled {
  color: #706b64 !important;
  background: var(--ro-control-disabled) none !important;
  box-shadow: 2px 2px 0 #77716b !important;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 600px) {
  :root {
    --ro-button-height: 44px;
    --ro-button-min-width: 88px;
    --ro-button-padding-x: 12px;
    --ro-button-font-size: 14px;
  }

  #scbar_btn { min-width: 72px; }
}

/* X5 replaces visible search text with an icon glyph in its base skin. Keep the
   label explicit so the control stays readable when the icon font is absent. */
#scbar_btn::before,
#scform_submit::before {
  display: none !important;
  content: none !important;
}

#scbar_btn > strong,
#scform_submit > strong {
  display: inline !important;
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
}

/* X5 uses pgsbtn for primary page actions such as 发新帖 / 创建圈子. */
a.pgsbtn {
  width: auto !important;
  min-width: var(--ro-button-min-width);
  min-height: var(--ro-button-height);
  padding: 0 var(--ro-button-padding-x) !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-ink) !important;
  background: var(--ro-yellow) none !important;
  border: 3px solid var(--ro-ink) !important;
  border-radius: 0 !important;
  box-shadow: 4px 4px 0 var(--ro-ink) !important;
  font-size: var(--ro-button-font-size);
  font-weight: 900;
  line-height: 1.2 !important;
  text-decoration: none !important;
  text-indent: 0 !important;
  white-space: nowrap;
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

a.pgsbtn:hover,
a.pgsbtn:focus {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--ro-ink) !important;
}

a.pgsbtn:active {
  transform: translate(4px, 4px);
  box-shadow: none !important;
}

/* Login dialog: fixed label/control/action columns and structured captcha content. */
.ro-login-form .c.cl { padding: 20px 24px 24px; }

.ro-login-form .rfm {
  width: 100%;
  max-width: none;
  margin: 0 0 12px;
  padding: 0;
}

.ro-login-form .rfm table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

.ro-login-form .rfm th {
  width: 138px;
  height: auto;
  padding: 8px 14px 8px 0;
  box-sizing: border-box;
  color: var(--ro-ink);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.35;
  text-align: right;
  vertical-align: middle;
  white-space: normal;
}

.ro-login-form .rfm td {
  height: auto;
  padding: 8px 0;
  vertical-align: middle;
}

.ro-login-form .rfm td:nth-child(2) { width: 286px; }
.ro-login-form .rfm td.tipcol { width: 116px; padding-left: 16px; line-height: 1.4; }

.ro-login-form .rfm .px,
.ro-login-form .rfm select {
  width: 100% !important;
  max-width: 286px;
  min-height: 44px;
  margin: 0;
  box-sizing: border-box;
}

.ro-login-form .tipcol a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--ro-ink);
  font-weight: 850;
  line-height: 1.35;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ro-login-form .ro-security-input {
  min-height: 44px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.ro-login-form .ro-security-input .px {
  flex: 0 0 146px;
  width: 146px !important;
  max-width: 146px;
}

.ro-login-form .ro-security-input a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  font-weight: 850;
  white-space: nowrap;
}

.ro-login-form .ro-security-help {
  margin-top: 8px;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 7px;
  font-size: 14px;
  line-height: 1.45;
}

.ro-login-form .ro-security-help img {
  display: block;
  margin: 0;
  border: 2px solid var(--ro-ink);
}

.ro-login-form .ro-login-remember,
.ro-login-form .ro-login-actions { margin-top: 4px; }
.ro-login-form .ro-login-actions .pn { min-width: 120px; }

@media (max-width: 600px) {
  .ro-login-form .c.cl { padding: 16px; }

  .ro-login-form .rfm table,
  .ro-login-form .rfm tbody,
  .ro-login-form .rfm tr,
  .ro-login-form .rfm th,
  .ro-login-form .rfm td {
    display: block;
    width: 100% !important;
  }

  .ro-login-form .rfm th { padding: 8px 0 4px; text-align: left; }
  .ro-login-form .rfm td { padding: 4px 0 8px; }
  .ro-login-form .rfm td.tipcol { padding: 0 0 8px; }
  .ro-login-form .rfm .px,
  .ro-login-form .rfm select { max-width: none; }
}

/* Modern HTML5 avatar editor replaces the retired Flash camera. */
.ro-avatar-editor {
  padding: 22px;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}

.ro-avatar-editor .tfm { width: 100%; margin: 0; }
.ro-avatar-editor .tfm + .tfm { margin-top: 24px; }
.ro-avatar-editor .tfm caption { padding: 0 0 14px; text-align: left; }
.ro-avatar-editor .tfm caption h2 { margin-bottom: 6px; font-size: 21px; font-weight: 950; }
.ro-avatar-editor .tfm caption p { max-width: 760px; color: #544c60; font-size: 14px; line-height: 1.6; }

.ro-avatar-current {
  width: 160px;
  min-height: 160px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #fff;
  border: 3px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

.ro-avatar-current img { display: block; max-width: 100%; height: auto; }

.ro-avatar-workspace {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(240px, 1fr);
  gap: 28px;
  align-items: start;
}

.ro-avatar-stage {
  position: relative;
  width: 100%;
  max-width: 360px;
  aspect-ratio: 1;
  overflow: hidden;
  touch-action: none;
  cursor: grab;
  background-color: #eeeae3;
  background-image: linear-gradient(45deg, #d9d4cc 25%, transparent 25%), linear-gradient(-45deg, #d9d4cc 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d9d4cc 75%), linear-gradient(-45deg, transparent 75%, #d9d4cc 75%);
  background-position: 0 0, 0 12px, 12px -12px, -12px 0;
  background-size: 24px 24px;
  border: 3px solid var(--ro-ink);
  box-shadow: 6px 6px 0 var(--ro-ink);
}

.ro-avatar-stage:active { cursor: grabbing; }
.ro-avatar-stage canvas { display: block; width: 100%; height: 100%; }

.ro-avatar-empty {
  position: absolute;
  inset: 0;
  padding: 32px;
  display: grid;
  place-items: center;
  color: #625b6b;
  background: rgba(251, 251, 249, .9);
  font-size: 15px;
  font-weight: 850;
  line-height: 1.55;
  text-align: center;
}

.ro-avatar-controls { display: flex; align-items: flex-start; flex-direction: column; gap: 14px; }
.ro-avatar-file { color: var(--ro-ink) !important; background: var(--ro-yellow) !important; cursor: pointer; }
#ro_avatar_file { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
.ro-avatar-controls:has(#ro_avatar_file:focus-visible) .ro-avatar-file { outline: 3px solid var(--ro-blue); outline-offset: 4px; }

.ro-avatar-zoom-label { font-size: 15px; font-weight: 900; }
#ro_avatar_zoom { width: min(100%, 320px); accent-color: var(--ro-violet); cursor: pointer; }
#ro_avatar_zoom:disabled { cursor: not-allowed; opacity: .55; }

.ro-avatar-previews {
  min-height: 138px;
  padding: 12px;
  display: flex;
  align-items: flex-end;
  gap: 16px;
  background: #fff;
  border: 2px solid var(--ro-ink);
}

.ro-avatar-previews canvas { background: #eeeae3; border: 2px solid var(--ro-ink); }
.ro-avatar-status { min-height: 44px; margin: 0; color: #544c60; font-size: 14px; font-weight: 750; line-height: 1.55; }

@media (max-width: 760px) {
  .ro-avatar-editor { padding: 16px; }
  .ro-avatar-workspace { grid-template-columns: 1fr; }
  .ro-avatar-stage { max-width: 100%; }
}

/* 2026-09-03 unified public layout pass: header, content shells and footer. */
#hd {
  padding-top: 20px;
}

#hd > .wp {
  display: grid;
  gap: 0;
}

#hd .hdc.ro-accountbar {
  min-height: 118px;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  box-sizing: border-box;
  overflow: visible;
  background: var(--ro-paper);
  border: var(--ro-border);
  border-bottom: 0;
  box-shadow: none;
}

#hd .hdc.ro-accountbar::after { display: none; }

.ro-accountbar__intro {
  min-width: 280px;
  display: grid;
  align-content: center;
  gap: 5px;
}

.ro-accountbar__intro .ro-accountbar__label {
  margin: 0 0 2px;
  color: var(--ro-violet);
  font: 900 12px/1.2 Consolas, "Courier New", monospace;
  letter-spacing: .13em;
}

.ro-accountbar__intro strong {
  color: var(--ro-ink);
  font-size: 22px;
  font-weight: 950;
  line-height: 1.2;
}

.ro-accountbar__intro small {
  color: #625a68;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.ro-accountbar #lsform {
  width: auto;
  max-width: 570px;
  margin: 0 0 0 auto;
}

.ro-accountbar #lsform table { width: auto; }
.ro-accountbar #lsform td { padding: 4px 6px; vertical-align: middle; white-space: nowrap; }
.ro-accountbar #lsform td:first-child { padding-left: 0; font-weight: 900; text-align: right; }
.ro-accountbar #lsform .px { width: 156px; min-height: 38px; box-sizing: border-box; }
.ro-accountbar #lsform .pn { min-width: 92px; }

#hd #nv {
  min-height: 58px;
  padding-left: 14px;
  overflow: visible;
  background: var(--ro-paper);
  border: var(--ro-border);
  border-bottom: 0;
}

#hd #nv ul {
  min-width: 0;
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
}

#hd #nv li,
#hd #nv li a { height: 55px; line-height: 55px; }

#hd #nv li a {
  padding: 0 17px;
  font-size: 15px;
  font-weight: 900;
}

#hd #qmenu {
  height: 55px;
  padding: 0 22px;
  line-height: 55px;
}

#hd #scbar {
  min-height: 72px;
  padding: 12px 22px;
  box-sizing: border-box;
  background: var(--ro-paper);
  border: var(--ro-border);
}

#scbar_form > table { width: 100%; table-layout: auto; }
#scbar_txt { width: min(100%, 440px); min-height: 42px; box-sizing: border-box; }
#scbar_txt::placeholder { color: #6a6270; opacity: 1; }
#scbar_hot { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
#scbar_hot a { font-weight: 800; }

/* Portal cards are real navigation, not an empty DIY canvas. */
#nv_portal.pg_index .ro-portal-hub,
#nv_portal.pg_portal .ro-portal-hub {
  margin-top: 20px;
  margin-bottom: 34px;
}

/* Group index: keep the guide rail beside the category directory. */
#nv_group.pg_index #ct.ct2 {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 286px;
  gap: 22px;
  align-items: start;
  overflow: visible;
}

#nv_group.pg_index #ct.ct2 > .mn,
#nv_group.pg_index #ct.ct2 > .sd {
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
}

#nv_group.pg_index #ct.ct2 > .mn { grid-column: 1; }
#nv_group.pg_index #ct.ct2 > .sd { grid-column: 2; grid-row: 1; }
#nv_group.pg_index .mn > .bm { margin: 0 0 18px; }
#nv_group.pg_index .mn > .bm:last-child { margin-bottom: 0; }
#nv_group.pg_index .bm_h { min-height: 50px; padding: 12px 16px; box-sizing: border-box; }
#nv_group.pg_index .bm_c { padding: 18px; }
#nv_group.pg_index #g_commend .bm_c:empty { min-height: 64px; }

#nv_group.pg_index .mn .bm_c > dl {
  min-height: 55px;
  margin: 0;
  padding: 13px 2px;
  display: grid;
  grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
  align-items: center;
  gap: 6px 18px;
  box-sizing: border-box;
}

#nv_group.pg_index .mn .bm_c > dl dt { display: contents; }
#nv_group.pg_index .mn .bm_c > dl dt > strong { grid-column: 1; font-size: 16px; }
#nv_group.pg_index .mn .bm_c > dl dt > .y {
  float: none;
  grid-column: 2;
  justify-self: end;
  max-width: 100%;
  line-height: 1.65;
  text-align: right;
}
#nv_group.pg_index .mn .bm_c > dl > dd { grid-column: 2; color: #5f5768; line-height: 1.6; }

#nv_group.pg_index #g_guide {
  margin: 0 0 14px;
  padding: 0;
  overflow: hidden;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

#nv_group.pg_index #g_guide li {
  min-height: 74px;
  padding: 12px 12px 12px 54px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

#nv_group.pg_index #g_guide .group_createico {
  position: absolute;
  left: 13px;
  top: 50%;
  margin: 0;
  transform: translateY(-50%);
}

#nv_group.pg_index #g_guide label { min-width: 0; }
#nv_group.pg_index #g_guide label strong,
#nv_group.pg_index #g_guide label span { display: block; overflow-wrap: anywhere; }
#nv_group.pg_index #create_group_btn { float: none; margin: 14px 0 2px; }

/* Collection directory: one aligned shell and readable empty state. */
#nv_forum.pg_collection #ct > .bm {
  overflow: hidden;
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow-sm);
}

#nv_forum.pg_collection #ct > .bm > .tb {
  min-height: 72px;
  padding: 16px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  background: #eaf4fb;
  border: 0;
  border-bottom: 2px solid var(--ro-ink);
}

#nv_forum.pg_collection #ct > .bm > .tb ul { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
#nv_forum.pg_collection #ct > .bm > .tb li { float: none; margin: 0; }
#nv_forum.pg_collection #ct > .bm > .tb li.y { order: -1; }
#nv_forum.pg_collection #ct > .bm > .tb li a { min-height: 42px; padding: 0 16px; display: inline-flex; align-items: center; }
#nv_forum.pg_collection #ct > .bm > .bm_c { padding: 22px; }
#nv_forum.pg_collection .clct_list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#nv_forum.pg_collection .clct_list > .xld { width: auto; margin: 0; border: 2px solid var(--ro-ink); }

/* Community-space routes share one stable sidebar/content grid. */
#nv_home.pg_space_blog #ct.ct2_a,
#nv_home.pg_space_album #ct.ct2_a,
#nv_home.pg_space_share #ct.ct2_a,
#nv_home.pg_space_doing #ct.ct2_a {
  padding: 14px;
  display: grid !important;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  box-sizing: border-box;
  overflow: visible;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}

#nv_home.pg_space_blog #ct.ct2_a > .appl,
#nv_home.pg_space_album #ct.ct2_a > .appl,
#nv_home.pg_space_share #ct.ct2_a > .appl,
#nv_home.pg_space_doing #ct.ct2_a > .appl,
#nv_home.pg_space_blog #ct.ct2_a > .mn,
#nv_home.pg_space_album #ct.ct2_a > .mn,
#nv_home.pg_space_share #ct.ct2_a > .mn,
#nv_home.pg_space_doing #ct.ct2_a > .mn {
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
}

#nv_home.pg_space_blog #ct.ct2_a > .appl,
#nv_home.pg_space_album #ct.ct2_a > .appl,
#nv_home.pg_space_share #ct.ct2_a > .appl,
#nv_home.pg_space_doing #ct.ct2_a > .appl { grid-column: 1; }

#nv_home.pg_space_blog #ct.ct2_a > .mn,
#nv_home.pg_space_album #ct.ct2_a > .mn,
#nv_home.pg_space_share #ct.ct2_a > .mn,
#nv_home.pg_space_doing #ct.ct2_a > .mn { grid-column: 2; }

#nv_home.pg_space_blog .appl .tbn,
#nv_home.pg_space_album .appl .tbn,
#nv_home.pg_space_share .appl .tbn,
#nv_home.pg_space_doing .appl .tbn { width: 100%; box-sizing: border-box; }

#nv_home.pg_space_blog .appl li a,
#nv_home.pg_space_album .appl li a,
#nv_home.pg_space_share .appl li a,
#nv_home.pg_space_doing .appl li a { padding: 9px 12px; display: block; line-height: 1.45; overflow-wrap: anywhere; }

#nv_home.pg_space_blog .mn > .tbmu,
#nv_home.pg_space_album .mn > .tbmu,
#nv_home.pg_space_share .mn > .tbmu,
#nv_home.pg_space_doing .mn > .tbmu {
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

#nv_home.pg_space_blog .mn .emp,
#nv_home.pg_space_album .mn .emp,
#nv_home.pg_space_share .mn .emp,
#nv_home.pg_space_doing .mn .emp { min-height: 145px; display: grid; place-content: center; }

#nv_home.pg_space_album .ml.mlp,
#nv_misc.pg_ranklist .ml.mlp { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
#nv_home.pg_space_album .ml.mlp > li,
#nv_misc.pg_ranklist .ml.mlp > li { float: none; width: auto; min-width: 0; margin: 0; }

/* Logged-out follow and password recovery: wider, shorter, aligned forms. */
#nv_home.pg_follow .nfl,
#nv_member.pg_logging #ct > .mn {
  width: min(760px, 100%);
  margin: 28px auto 42px;
  float: none;
}

#nv_home.pg_follow .nfl .f_c,
#nv_member.pg_logging #ct > .mn > .bm {
  padding: 26px 30px;
  box-sizing: border-box;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}

#nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .c.cl { padding: 20px 24px 26px; }
#nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm { width: 100%; max-width: 560px; margin: 0 auto 12px; }
#nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm table { width: 100%; table-layout: fixed; }
#nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm th { width: 150px; padding-right: 14px; text-align: right; }
#nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm td { padding: 8px 0; }
#nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .px { width: 100%; min-height: 44px; box-sizing: border-box; }

/* Registration title and account switch never share the same text line. */
#nv_member.pg_register #ct > .mn {
  float: none;
  width: min(980px, 100%);
  margin: 28px auto 42px;
}

#nv_member.pg_register #main_message {
  overflow: hidden;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow);
}

#nv_member.pg_register #main_hnav {
  min-height: 62px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  box-sizing: border-box;
  color: #fff;
  background: var(--ro-violet);
  border: 0;
  border-bottom: 3px solid var(--ro-ink);
}

#nv_member.pg_register #main_hnav h3 {
  order: 1;
  margin: 0;
  color: #fff;
  font-size: 21px;
  font-weight: 950;
  line-height: 1.3;
}

#nv_member.pg_register #main_hnav > .y {
  order: 2;
  float: none;
  margin: 0 0 0 auto;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: #fff;
  font-weight: 800;
  line-height: 1.45;
  text-align: right;
}

#nv_member.pg_register #main_hnav > .y a {
  min-height: 36px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  color: var(--ro-ink);
  background: var(--ro-yellow);
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

#nv_member.pg_register #layer_reg { padding: 24px; }

/* Rank list modules line up as a clean card grid without legacy float gaps. */
#nv_misc.pg_ranklist #ct.ct2_a {
  padding: 18px;
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 210px;
  gap: 20px;
  align-items: start;
  overflow: visible;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}

#nv_misc.pg_ranklist #ct.ct2_a > .mn {
  float: none;
  grid-column: 1;
  grid-row: 1;
  width: auto;
  min-width: 0;
  margin: 0;
}

#nv_misc.pg_ranklist #ct.ct2_a > .appl {
  float: none;
  grid-column: 2;
  grid-row: 1;
  width: auto;
  min-width: 0;
  margin: 0;
}
#nv_misc.pg_ranklist .mn > .bm,
#nv_misc.pg_ranklist .mn > .rnk1,
#nv_misc.pg_ranklist .mn > .rnk2 { margin-bottom: 18px; }
#nv_misc.pg_ranklist .rnk1,
#nv_misc.pg_ranklist .rnk2 { float: none; width: 100%; }
#nv_misc.pg_ranklist .bm_h { min-height: 50px; padding: 12px 16px; box-sizing: border-box; }
#nv_misc.pg_ranklist .bm_c { padding: 16px; }

/* Replace missing icon-font squares in the doing composer with explicit labels. */
#nv_home.pg_space_doing #moodfm .specialpost {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

#nv_home.pg_space_doing #moodfm .specialpost > a {
  min-height: 34px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  color: var(--ro-ink);
  font-size: 13px;
  font-weight: 850;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
}

#nv_home.pg_space_doing #moodfm .specialpost > a i { display: none; }
#nv_home.pg_space_doing #moodfm_emoji::after { content: "表情"; }
#nv_home.pg_space_doing #moodfm_pic::after { content: "图片"; }
#nv_home.pg_space_doing #moodfm_thread::after { content: "主题"; }
#nv_home.pg_space_doing #moodfm_poll::after { content: "投票"; }
#nv_home.pg_space_doing #moodfm_trade::after { content: "交易"; }
#nv_home.pg_space_doing #moodfm_reward::after { content: "悬赏"; }
#nv_home.pg_space_doing #moodfm_activity::after { content: "活动"; }
#nv_home.pg_space_doing #moodfm_debate::after { content: "辩论"; }

/* One footer component on every public route. */
#ft.wp.ro-site-footer {
  width: min(1180px, calc(100% - 32px));
  max-width: 1180px;
  min-height: 0;
  margin: 42px auto 22px;
  padding: 20px 22px;
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(300px, 1.4fr) minmax(220px, .8fr);
  align-items: center;
  gap: 18px 28px;
  box-sizing: border-box;
  color: var(--ro-ink);
  font-size: 13px;
  background: var(--ro-yellow);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}

.ro-site-footer__brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ro-site-footer__brand img { width: 54px; height: 54px; object-fit: contain; }
.ro-site-footer__brand span { min-width: 0; display: grid; gap: 3px; }
.ro-site-footer__brand strong { font-size: 18px; font-weight: 950; line-height: 1.2; }
.ro-site-footer__brand small { font: 800 10px/1.35 Consolas, monospace; letter-spacing: .08em; }

#ft.ro-site-footer #flk,
#ft.ro-site-footer #frt {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: var(--ro-ink);
  line-height: 1.65;
}

#ft.ro-site-footer #flk { text-align: center; }
#ft.ro-site-footer #frt { text-align: right; }
#ft.ro-site-footer .ro-site-footer__copyright {
  font-weight: 850;
  line-height: 1.45;
}
#ft.ro-site-footer p { margin: 0; overflow-wrap: anywhere; }
#ft.ro-site-footer p + p { margin-top: 5px; }
#ft.ro-site-footer a { color: var(--ro-ink); font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
#ft.ro-site-footer .pipe { color: var(--ro-ink); opacity: .55; }

/* Desktop footer baseline grid: all three columns share the same two text rows. */
@media (min-width: 981px) {
  .ro-site-footer__brand,
  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt {
    min-height: 54px;
    align-content: center;
    box-sizing: border-box;
  }

  .ro-site-footer__brand {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    grid-template-rows: 22px 18px;
    column-gap: 12px;
    row-gap: 4px;
    align-items: center;
  }

  .ro-site-footer__brand img {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .ro-site-footer__brand span { display: contents; }
  .ro-site-footer__brand strong {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
  }
  .ro-site-footer__brand small {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
  }

  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt {
    display: grid;
    grid-template-rows: 22px 18px;
    row-gap: 4px;
  }

  #ft.ro-site-footer #flk > p,
  #ft.ro-site-footer #frt > p {
    min-width: 0;
    margin: 0;
    align-self: center;
  }

  #ft.ro-site-footer #flk > p:first-child,
  #ft.ro-site-footer #frt > p:first-child { grid-row: 1; }

  #ft.ro-site-footer #flk > p:nth-child(2) { grid-row: 2; }
}

@media (max-width: 980px) {
  #hd .hdc.ro-accountbar { align-items: stretch; flex-direction: column; gap: 16px; }
  .ro-accountbar__intro { min-width: 0; }
  .ro-accountbar #lsform { width: 100%; max-width: none; margin-left: 0; }
  #nv_group.pg_index #ct.ct2 { grid-template-columns: minmax(0, 1fr) 250px; }
  #ft.wp.ro-site-footer { grid-template-columns: 1fr 1fr; }
  #ft.ro-site-footer #frt { grid-column: 1 / -1; text-align: center; }
}

@media (min-width: 641px) and (max-width: 820px) {
  #nv_misc.pg_ranklist #ct.ct2_a {
    grid-template-columns: minmax(0, 1fr) 190px;
  }
  #nv_misc.pg_ranklist #ct.ct2_a > .mn {
    grid-column: 1;
    grid-row: 1;
  }
  #nv_misc.pg_ranklist #ct.ct2_a > .appl {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (min-width: 721px) {
  /* The popup is anchored below the complete desktop header (~304px).
   * Use the remaining viewport instead of allowing a tall menu to run offscreen. */
  #qmenu_menu {
    max-height: min(760px, calc(100vh - 320px)) !important;
    overflow-y: auto !important;
  }
}

@media (max-width: 820px) {
  #hd { padding-top: 12px; }
  #hd .hdc.ro-accountbar { padding: 16px; }
  #hd #nv {
    min-height: 58px;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    overflow-x: hidden;
    overflow-y: hidden;
  }
  #hd #nv ul {
    grid-column: 1;
    grid-row: 1;
    width: auto;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
  }
  #hd #qmenu {
    grid-column: 2;
    grid-row: 1;
    position: static;
    float: none;
    margin: 0;
  }
  #hd #nv::after { display: none; }
  #scbar_form > table,
  #scbar_form > table > tbody,
  #scbar_form > table > tbody > tr { display: flex; width: 100%; align-items: center; flex-wrap: wrap; gap: 10px; }
  #scbar_form td { display: block; height: auto; }
  #scbar_form .scbar_txt_td { flex: 1 1 260px; }
  #scbar_form .scbar_txt_td #scbar_txt { width: 100%; }
  #scbar_form .scbar_hot_td { flex: 1 0 100%; }

  #nv_group.pg_index #ct.ct2,
  #nv_misc.pg_ranklist #ct.ct2_a,
  #nv_home.pg_space_blog #ct.ct2_a,
  #nv_home.pg_space_album #ct.ct2_a,
  #nv_home.pg_space_share #ct.ct2_a,
  #nv_home.pg_space_doing #ct.ct2_a { grid-template-columns: minmax(0, 1fr); }

  #nv_group.pg_index #ct.ct2 > .mn,
  #nv_group.pg_index #ct.ct2 > .sd,
  #nv_misc.pg_ranklist #ct.ct2_a > .mn,
  #nv_misc.pg_ranklist #ct.ct2_a > .appl,
  #nv_home.pg_space_blog #ct.ct2_a > .appl,
  #nv_home.pg_space_album #ct.ct2_a > .appl,
  #nv_home.pg_space_share #ct.ct2_a > .appl,
  #nv_home.pg_space_doing #ct.ct2_a > .appl,
  #nv_home.pg_space_blog #ct.ct2_a > .mn,
  #nv_home.pg_space_album #ct.ct2_a > .mn,
  #nv_home.pg_space_share #ct.ct2_a > .mn,
  #nv_home.pg_space_doing #ct.ct2_a > .mn { grid-column: 1; grid-row: auto; }

  #nv_group.pg_index #ct.ct2 > .sd { order: 2; }
  #nv_forum.pg_collection .clct_list { grid-template-columns: 1fr; }
  #nv_home.pg_space_album .ml.mlp,
  #nv_misc.pg_ranklist .ml.mlp { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #ft.wp.ro-site-footer { grid-template-columns: 1fr; }
  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt { text-align: left; }
}

@media (max-width: 560px) {
  #hd .hdc.ro-accountbar { min-height: 0; padding: 14px; }
  .ro-accountbar__intro strong { font-size: 19px; }
  .ro-accountbar #lsform table,
  .ro-accountbar #lsform tbody,
  .ro-accountbar #lsform tr,
  .ro-accountbar #lsform td { display: block; width: 100%; box-sizing: border-box; }
  .ro-accountbar #lsform td { padding: 4px 0; text-align: left !important; white-space: normal; }
  .ro-accountbar #lsform .px { width: 100%; }
  #nv_group.pg_index .mn .bm_c > dl { grid-template-columns: 1fr; }
  #nv_group.pg_index .mn .bm_c > dl dt > strong,
  #nv_group.pg_index .mn .bm_c > dl dt > .y,
  #nv_group.pg_index .mn .bm_c > dl > dd { grid-column: 1; justify-self: start; text-align: left; }
  #nv_home.pg_space_album .ml.mlp,
  #nv_misc.pg_ranklist .ml.mlp { grid-template-columns: 1fr; }
  #nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm table,
  #nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm tbody,
  #nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm tr,
  #nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm th,
  #nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm td { display: block; width: 100%; }
  #nv_member.pg_logging .ro-login-form > [id^="layer_lostpw_"] .rfm th { padding: 6px 0 2px; text-align: left; }
  #nv_member.pg_register #main_hnav {
    align-items: flex-start;
    flex-direction: column;
  }
  #nv_member.pg_register #main_hnav > .y {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
    text-align: left;
  }
  #nv_member.pg_register #layer_reg { padding: 16px; }
  #nv_member.pg_register #registerform .rfm { width: 100%; }
  #nv_member.pg_register #registerform .rfm table,
  #nv_member.pg_register #registerform .rfm tbody,
  #nv_member.pg_register #registerform .rfm tr,
  #nv_member.pg_register #registerform .rfm th,
  #nv_member.pg_register #registerform .rfm td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }
  #nv_member.pg_register #registerform .rfm th {
    padding: 7px 0 4px;
    text-align: left;
  }
  #nv_member.pg_register #registerform .rfm td { padding: 3px 0 7px; }
  #nv_member.pg_register #registerform .rfm .tipcol {
    min-height: 0;
    padding: 2px 0 8px;
    overflow-wrap: anywhere;
  }
  #nv_member.pg_register #registerform .rfm .px {
    width: 100% !important;
    max-width: none;
  }
  #ft.wp.ro-site-footer { width: calc(100% - 20px); padding: 16px; }
}

@media (max-width: 640px) {
  #nv_misc.pg_ranklist #ct.ct2_a > .appl { order: -1; }
  #nv_misc.pg_ranklist #ct.ct2_a > .appl .tbn ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px;
  }
  #nv_misc.pg_ranklist #ct.ct2_a > .appl .tbn li {
    min-height: 0;
    padding: 0;
    border: 0;
  }
  #nv_misc.pg_ranklist #ct.ct2_a > .appl .tbn li a {
    min-height: 38px;
    padding: 8px 11px;
    display: inline-flex;
    align-items: center;
    border: 2px solid var(--ro-ink);
  }
}

/* 2026-09-03 level 1–5 visual QA pass.
 * Keep Discuz markup and behaviour intact while giving repeated typography,
 * controls and states one final, predictable presentation. */
:root {
  --ro-text: #17141f;
  --ro-text-muted: #5f5768;
  --ro-link: #2f20a8;
  --ro-link-hover: #b92f2a;
  --ro-line: #cfc5b7;
  --ro-info: #dff2ff;
  --ro-warning: #fff3b0;
  --ro-danger: #c52f2a;
  --ro-focus: #59b8ff;
}

body {
  color: var(--ro-text);
  font-size: 14px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

::selection { color: #fff; background: var(--ro-violet); }

a { color: var(--ro-link); text-underline-offset: 3px; }
a:hover { color: var(--ro-link-hover); }
a:focus-visible {
  outline: 3px solid var(--ro-focus);
  outline-offset: 3px;
}

h1, h2, h3, h4, h5, h6,
.xw1, .xw0, strong, th, label {
  color: var(--ro-text);
  overflow-wrap: anywhere;
}

.xg1, .xg2, .xg3,
.xs0, .xs1,
.bm_c .xg1,
.tl .by,
.tl .num,
.slst p,
.ro-accountbar__intro small { color: var(--ro-text-muted) !important; }

.xi1, .rq, .er, .error { color: var(--ro-danger) !important; }
.xi2 { color: var(--ro-link) !important; }

.bm_c,
.tl td,
.tl th,
.fl_row,
.pcb,
.pct,
.plc,
.pls { line-height: 1.6; }

.bm_c p,
.bm_c li,
.tl td,
.fl_row,
.pcb,
.pct { overflow-wrap: anywhere; }

/* Standalone search used a violet surface with dark text after the generic
 * button rules were applied. Restore the intended high-contrast secondary action. */
#nv_search #scform_submit {
  color: #fff !important;
  background: var(--ro-violet) none !important;
  box-shadow: 4px 4px 0 var(--ro-ink) !important;
}

#nv_search #scform_submit:hover,
#nv_search #scform_submit:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-paper) none !important;
}

/* The clearfix marker on rank-list navigation inflated scroll metrics and
 * could crop at non-default zoom. These rows contain no floated children. */
#nv_misc.pg_ranklist .tbn li.cl::after { display: none; content: none; }
#nv_misc.pg_ranklist .tbn li,
#nv_misc.pg_ranklist .tbn li a { overflow: visible !important; }

/* Consistent compact state surfaces across empty lists, notices and errors. */
.notice,
.alert_info,
.alert_right,
.alert_error,
.ro-empty-state {
  color: var(--ro-text);
  border-color: var(--ro-text) !important;
  border-radius: 0 !important;
}

.alert_info { background-color: var(--ro-info) !important; }
.alert_right { background-color: #e5f8e9 !important; }
.alert_error { background-color: #ffe3df !important; }

/* Status messages must not depend on the optional dzicon webfont.  A compact
 * CSS badge keeps the information symbol visible on every page and at every
 * zoom level, including the signed-out posting flow. */
.alert_info,
.alert_right,
.alert_error {
  position: relative;
  box-sizing: border-box;
}

.alert_info::before,
.alert_right::before,
.alert_error::before {
  position: static !important;
  display: grid !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-ink) !important;
  font-family: Arial, sans-serif !important;
  font-size: 20px !important;
  font-weight: 950;
  line-height: 1 !important;
  background: var(--ro-paper);
  border: 3px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

.alert_info::before { content: "i" !important; background: #72c5f5; }
.alert_right::before { content: "\2713" !important; background: #6fd68a; }
.alert_error::before { content: "!" !important; background: var(--ro-coral); }

/* Thread header and post metadata: the legacy skin fixes .pi at 16px while
 * also adding vertical padding. With border-box enabled globally this clips
 * the author row into the yellow title bar. */
#nv_forum.pg_viewthread .pl .pi {
  height: auto !important;
  min-height: 44px;
  margin-bottom: 12px;
  padding-top: 9px;
  padding-bottom: 9px;
  overflow: visible;
  box-sizing: border-box;
}

#nv_forum.pg_viewthread .pl .pi::after {
  content: "";
  display: block;
  clear: both;
}

#nv_forum.pg_viewthread .pl .vwthd {
  min-height: 46px;
  padding-top: 10px;
  padding-bottom: 10px;
  box-sizing: border-box;
}

/* Thread-title tools use native CSS shapes so they do not depend on the
 * optional dzicon font. */
#nv_forum.pg_viewthread .pl .vwthd {
  position: relative;
  padding-right: 126px !important;
}

#nv_forum.pg_viewthread .pl .vwthd > .y {
  position: absolute;
  top: 50%;
  right: 10px;
  float: none;
  height: 32px;
  margin: 0 !important;
  display: flex !important;
  align-items: center;
  gap: 6px;
  transform: translateY(-50%);
}

#nv_forum.pg_viewthread .pl .vwthd > .y > a {
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-ink) !important;
  background: var(--ro-paper);
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  text-decoration: none;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}

#nv_forum.pg_viewthread .pl .vwthd > .y > a:hover,
#nv_forum.pg_viewthread .pl .vwthd > .y > a:focus-visible {
  color: #fff !important;
  background: var(--ro-violet);
  box-shadow: 3px 3px 0 var(--ro-ink);
  transform: translate(-1px, -1px);
}

#nv_forum.pg_viewthread .pl .vwthd > .y > a:focus-visible {
  outline: 3px solid var(--ro-focus);
  outline-offset: 3px;
}

#nv_forum.pg_viewthread .pl .vwthd > .y i {
  position: relative;
  width: 16px;
  height: 16px;
  display: block;
  flex: 0 0 16px;
  color: currentColor;
  font-family: inherit !important;
  font-size: 0 !important;
  font-style: normal;
  line-height: 1;
}

#nv_forum.pg_viewthread .pl .vwthd > .y i::before,
#nv_forum.pg_viewthread .pl .vwthd > .y i::after {
  content: "" !important;
  position: absolute;
  display: block;
  box-sizing: border-box;
  color: currentColor;
  font-family: inherit !important;
}

#nv_forum.pg_viewthread .pl .vwthd .fico-print::before {
  left: 1px;
  top: 5px;
  width: 14px;
  height: 10px;
  background: transparent;
  border: 2px solid currentColor;
  border-radius: 1px;
}

#nv_forum.pg_viewthread .pl .vwthd .fico-print::after {
  left: 3px;
  top: 0;
  width: 10px;
  height: 8px;
  background: var(--ro-paper);
  border: 2px solid currentColor;
}

#nv_forum.pg_viewthread .pl .vwthd > .y > a:hover .fico-print::after,
#nv_forum.pg_viewthread .pl .vwthd > .y > a:focus-visible .fico-print::after {
  background: var(--ro-violet);
}

#nv_forum.pg_viewthread .pl .vwthd .fico-left::after,
#nv_forum.pg_viewthread .pl .vwthd .fico-right::after {
  top: 7px;
  width: 13px;
  height: 2px;
  background: currentColor;
}

#nv_forum.pg_viewthread .pl .vwthd .fico-left::after { left: 2px; }
#nv_forum.pg_viewthread .pl .vwthd .fico-right::after { right: 2px; }

#nv_forum.pg_viewthread .pl .vwthd .fico-left::before,
#nv_forum.pg_viewthread .pl .vwthd .fico-right::before {
  top: 3px;
  width: 9px;
  height: 9px;
  transform: rotate(45deg);
}

#nv_forum.pg_viewthread .pl .vwthd .fico-left::before {
  left: 2px;
  border-bottom: 2px solid currentColor;
  border-left: 2px solid currentColor;
}

#nv_forum.pg_viewthread .pl .vwthd .fico-right::before {
  right: 2px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}

/* Both view-thread action rows use the same flex anatomy and one visible
 * label. The source text remains in the DOM for assistive technology. */
#nv_forum.pg_viewthread .pgs {
  min-height: var(--ro-button-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

#nv_forum.pg_viewthread .pgs > .pgt:empty { display: none; }

#nv_forum.pg_viewthread .pgs > a[id^="newspecial"] {
  order: 1;
  width: 144px !important;
  min-width: 144px;
  margin: 0 !important;
  flex: 0 0 144px;
  font-size: 0;
}

#nv_forum.pg_viewthread .pgs > a[id^="newspecial"]::after {
  content: "发布主题" !important;
  font-size: var(--ro-button-font-size);
  line-height: 1.2;
}

#nv_forum.pg_viewthread .pgs > .pgb {
  order: 2;
  float: none;
  margin: 0 0 0 auto;
}

#nv_forum.pg_viewthread .pgs > .pgb > a {
  min-width: 112px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* Replace the optional dzicon font in the fixed page tools. */
#scrolltop {
  position: fixed !important;
  right: 24px !important;
  left: auto !important;
  bottom: 110px !important;
  width: 48px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  z-index: 10010;
}

#scrolltop span { display: block; margin: 0 0 7px; }
#scrolltop span:last-child { margin-bottom: 0; }

#scrolltop a {
  width: 46px !important;
  height: 46px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-ink) !important;
  background: var(--ro-yellow) none !important;
  border: 3px solid var(--ro-ink) !important;
  box-shadow: 4px 4px 0 var(--ro-ink);
}

#scrolltop a::before {
  width: auto !important;
  height: auto !important;
  display: block !important;
  color: var(--ro-ink) !important;
  font-family: Arial, sans-serif !important;
  font-size: 25px !important;
  font-weight: 950;
  line-height: 1 !important;
}

#scrolltop a.replyfast::before { content: "\21a9" !important; }
#scrolltop a.scrolltopa::before { content: "\2191" !important; }
#scrolltop a.returnlist::before,
#scrolltop a.returnboard::before { content: "\2261" !important; }

#scrolltop a:hover,
#scrolltop a:focus-visible {
  color: #fff !important;
  background: var(--ro-violet) none !important;
  outline: 3px solid var(--ro-blue);
  outline-offset: 3px;
}

#scrolltop a:hover::before,
#scrolltop a:focus-visible::before { color: #fff !important; }

#scrolltop a b {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  visibility: visible !important;
}

/* Registration and account validation states must not rely on dzicon either.
 * Keep the existing JS show/hide contract and add readable CSS badges. */
.rfm .tipcol.p_right::after {
  content: "\2713" !important;
  width: 28px;
  height: 28px;
  margin-left: 8px;
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  font-family: Arial, sans-serif !important;
  font-size: 17px !important;
  font-weight: 950;
  line-height: 1 !important;
  vertical-align: middle;
  background: var(--ro-green);
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
}

#registerform .rfm .p_tip:not(:empty)::before,
.rfm .p_tip:not(:empty)::before {
  content: "i";
  width: 22px;
  height: 22px;
  margin-right: 8px;
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  font-family: Arial, sans-serif;
  font-size: 14px;
  font-weight: 950;
  line-height: 1;
  vertical-align: middle;
  background: var(--ro-blue);
  border: 2px solid var(--ro-ink);
}

#registerform .rfm .p_chk:not(:empty)::before,
.rfm .p_chk:not(:empty)::before {
  content: "!";
  width: 22px;
  height: 22px;
  margin-right: 8px;
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-ink);
  font-family: Arial, sans-serif;
  font-size: 14px;
  font-weight: 950;
  line-height: 1;
  vertical-align: middle;
  background: var(--ro-coral);
  border: 2px solid var(--ro-ink);
}

/* “已有账号？现在登录” dialog: one stable desktop grid, with the same
 * control dimensions and spacing as the full-page account form. */
#fwin_login > table.fwin {
  width: min(700px, calc(100vw - 40px)) !important;
  table-layout: fixed;
}

#fwin_login .m_c {
  width: auto;
  box-sizing: border-box;
}

#fwin_login .ro-login-form,
#fwin_login .ro-login-form > [id^="layer_login_"] {
  width: 100%;
  box-sizing: border-box;
}

#fwin_login .flb {
  min-height: 58px;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
}

#fwin_login .flb em {
  min-width: 0;
  color: #fff;
  font-size: 20px;
  font-weight: 950;
  line-height: 1.25;
}

#fwin_login .flb .flbc {
  position: static;
  width: 36px;
  height: 36px;
  margin: 0 0 0 16px;
  flex: 0 0 36px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  overflow: hidden;
  color: #fff !important;
  font-size: 0;
  line-height: 1;
  text-indent: 0;
  background: var(--ro-coral) none;
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

#fwin_login .flb .flbc::before {
  content: "\00d7";
  color: #fff;
  font: 950 25px/1 Arial, sans-serif;
}

#fwin_login .ro-login-form form > .c.cl {
  width: 100%;
  padding: 20px 26px 26px;
  box-sizing: border-box;
}

#fwin_login .rfm {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border-bottom: 1px dotted var(--ro-line);
}

#fwin_login .rfm table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

#fwin_login .rfm tbody { display: block; width: 100%; }

#fwin_login .rfm tr {
  width: 100%;
  display: grid;
  grid-template-columns: 150px minmax(0, 360px) 118px;
  align-items: center;
}

#fwin_login .rfm th {
  width: 150px;
  padding: 9px 14px 9px 0;
  text-align: right;
}

#fwin_login .rfm td { padding: 9px 0; vertical-align: middle; }
#fwin_login .rfm td:nth-child(2) { width: 360px; }
#fwin_login .rfm td.tipcol { width: 118px; padding-left: 14px; }

#fwin_login .rfm .px,
#fwin_login .rfm select {
  width: 100% !important;
  max-width: 100%;
  height: 48px;
  min-height: 48px;
  box-sizing: border-box;
}

#fwin_login .rfm label,
#fwin_login .rfm a { line-height: 1.45; }

#fwin_login .rfm .pn {
  min-width: 120px;
  min-height: var(--ro-button-height);
}

#fwin_login .rfm.mbw { border-bottom: 0; }

.nfl .f_c > .alert_info,
.nfl .f_c > .alert_right,
.nfl .f_c > .alert_error,
.nfl .f_c #messagetext.alert_info,
.nfl .f_c #messagetext.alert_right,
.nfl .f_c #messagetext.alert_error {
  display: flex;
  min-height: 116px;
  margin: 0 0 20px;
  padding: 24px !important;
  gap: 24px;
  align-items: center;
  text-align: left;
}

.nfl > .f_c.altw {
  width: min(760px, calc(100% - 32px));
  box-sizing: border-box;
}

.nfl .f_c > .alert_info > p,
.nfl .f_c > .alert_right > p,
.nfl .f_c > .alert_error > p,
.nfl .f_c #messagetext > p {
  min-width: 0;
  margin: 0;
  flex: 1 1 auto;
  overflow-wrap: anywhere;
}

/* Ajax-injected login forms inside message pages share one measured column
 * system so labels, controls and side actions stay aligned. */
.nfl .f_c #messagelogin {
  width: 100%;
  margin: 0;
}

.nfl .f_c #messagelogin .ro-login-form,
.nfl .f_c #messagelogin .c.cl {
  width: 100%;
  box-sizing: border-box;
}

.nfl .f_c #messagelogin .flb {
  min-height: 52px;
  margin: 0 0 20px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  color: var(--ro-ink);
  background: var(--ro-yellow);
  border: var(--ro-border);
  box-sizing: border-box;
}

.nfl .f_c #messagelogin .flb em {
  color: var(--ro-ink);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.25;
}

.nfl .f_c #messagelogin .rfm {
  max-width: 100%;
  margin: 0;
  padding: 0;
  border-bottom: 1px dotted #cfc5b7;
}

.nfl .f_c #messagelogin .rfm:last-of-type { border-bottom: 0; }

.nfl .f_c #messagelogin .rfm th { width: 150px; }
.nfl .f_c #messagelogin .rfm td.tipcol { width: 130px; }

.nfl .f_c #messagelogin .rfm .px,
.nfl .f_c #messagelogin .rfm select {
  width: 100%;
  max-width: none;
  min-height: 48px;
}

.nfl .f_c #messagelogin .rfm label,
.nfl .f_c #messagelogin .rfm a {
  line-height: 1.45;
}

.nfl .f_c #messagelogin .rfm .pn {
  min-width: 120px;
  min-height: 50px;
}

@media (max-width: 680px) {
  .nfl .f_c > .alert_info,
  .nfl .f_c > .alert_right,
  .nfl .f_c > .alert_error,
  .nfl .f_c #messagetext.alert_info,
  .nfl .f_c #messagetext.alert_right,
  .nfl .f_c #messagetext.alert_error {
    min-height: 0;
    padding: 18px !important;
    gap: 16px;
  }

  .nfl .f_c #messagelogin .flb {
    min-height: 48px;
    margin-bottom: 12px;
    padding: 10px 12px;
  }

  .nfl .f_c #messagelogin .flb em { font-size: 18px; }
  .nfl .f_c #messagelogin .c.cl { padding: 0; }
  .nfl .f_c #messagelogin .rfm { padding: 12px 0; }

  #nv_forum.pg_viewthread .pgs {
    align-items: stretch;
    flex-direction: column;
  }

  #nv_forum.pg_viewthread .pgs > a[id^="newspecial"],
  #nv_forum.pg_viewthread .pgs > .pgb,
  #nv_forum.pg_viewthread .pgs > .pgb > a {
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    flex-basis: auto;
  }

  #nv_forum.pg_viewthread #fastposteditor.hasfsl {
    width: 100%;
    margin-right: 0;
  }

  #scrolltop {
    right: 12px !important;
    bottom: 12px !important;
    width: 44px !important;
  }

  #scrolltop a {
    width: 42px !important;
    height: 42px !important;
  }

  #fwin_login {
    position: fixed !important;
    inset: 10px !important;
    width: auto !important;
    max-height: calc(100vh - 20px);
    overflow-x: hidden;
    overflow-y: auto;
  }

  #fwin_login > table.fwin,
  #fwin_login .m_c {
    width: 100% !important;
    max-width: none;
  }

  #fwin_login .flb {
    min-height: 52px;
    padding: 8px 12px;
  }

  #fwin_login .flb em { font-size: 18px; }
  #fwin_login .ro-login-form form > .c.cl { padding: 14px; }

  #fwin_login .rfm table,
  #fwin_login .rfm tbody,
  #fwin_login .rfm tr,
  #fwin_login .rfm th,
  #fwin_login .rfm td {
    width: 100% !important;
    display: block;
    box-sizing: border-box;
  }

  #fwin_login .rfm { padding: 10px 0; }
  #fwin_login .rfm th { padding: 0 0 5px; text-align: left; }
  #fwin_login .rfm td { padding: 0 0 7px; }
  #fwin_login .rfm td:nth-child(2) { width: 100%; }
  #fwin_login .rfm td.tipcol { padding: 2px 0 0; }
  #fwin_login .rfm .px,
  #fwin_login .rfm select { width: 100%; }
}

@media (max-width: 560px) {
  /* Two measured rows: account field + action row. This removes the tall
   * legacy table stack without changing any login IDs or submission fields. */
  .ro-accountbar #lsform table,
  .ro-accountbar #lsform tbody { display: block; width: 100%; }

  .ro-accountbar #lsform tr {
    width: 100%;
    margin: 0 0 12px;
    display: grid;
    grid-template-columns: minmax(92px, .72fr) minmax(0, 1.28fr);
    gap: 8px 10px;
    align-items: center;
  }

  .ro-accountbar #lsform tr:last-child { margin-bottom: 0; }
  .ro-accountbar #lsform td {
    width: auto !important;
    min-width: 0;
    padding: 0;
    display: block;
  }

  .ro-accountbar #lsform td:nth-child(1) { grid-column: 1; grid-row: 1; }
  .ro-accountbar #lsform td:nth-child(2) { grid-column: 2; grid-row: 1; }
  .ro-accountbar #lsform td:nth-child(3) { grid-column: 1; grid-row: 2; }
  .ro-accountbar #lsform td:nth-child(4) { grid-column: 2; grid-row: 2; }
  .ro-accountbar #lsform td:first-child { min-width: 0; }
  .ro-accountbar #lsform .px,
  .ro-accountbar #lsform .pn { width: 100% !important; }

  #scbar_form .scbar_icon_td { display: none; }
  #scbar_form .scbar_txt_td { flex: 1 1 100%; }
  #scbar_form .scbar_type_td { flex: 1 1 auto; }
  #scbar_form .scbar_btn_td {
    width: 96px !important;
    flex: 0 0 96px;
    overflow: visible;
  }
  #scbar_form .scbar_btn_td #scbar_btn { width: 88px !important; min-width: 88px; }

  #hd #nv ul { scrollbar-width: thin; scrollbar-color: var(--ro-violet) var(--ro-paper); }
  #hd #nv li,
  #hd #nv li a { min-width: 64px; }

  .bm_h,
  .bmw .bm_h { font-size: 16px; }
  #ft.wp.ro-site-footer { gap: 12px; }
}

@media (max-width: 720px) {
  /* Treat quick navigation as a true mobile dialog. Discuz injects desktop
   * absolute coordinates inline, so the viewport-safe coordinates must win. */
  #qmenu_menu {
    position: fixed !important;
    inset: 10px !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: calc(100vh - 20px) !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    z-index: 10020 !important;
  }
}

@media (max-width: 820px) {
  /* The desktop editor writes a 25em inline width on the subject field and
   * 500px widths on upload popovers. Bound both to the post card on phones. */
  #nv_forum.pg_post .pbt > .z,
  #nv_forum.pg_post .pbt > .z > span {
    float: none;
    width: 100% !important;
    max-width: 100%;
    display: block;
  }

  #nv_forum.pg_post #subject {
    width: 100% !important;
    max-width: 100%;
  }

  #nv_forum.pg_post #e_image_menu,
  #nv_forum.pg_post #e_attach_menu {
    width: auto !important;
    max-width: calc(100vw - 40px) !important;
    overflow-x: auto;
  }

  #nv_forum.pg_post #e_image_menu > table,
  #nv_forum.pg_post #e_attach_menu > table {
    width: 100% !important;
    max-width: 100%;
  }
}

/* 2026-09-03 complete navigation audit.
 * Typography rules above intentionally normalize headings globally. Reassert
 * the inverse title color where the component surface is violet, otherwise
 * the later global heading rule leaves dark text on a dark panel. */
.fl .bm_h,
#nv_group.pg_index .mn > .bm > .bm_h,
#nv_forum.pg_forumdisplay #fastpostform .bm_h,
#nv_forum.pg_forumdisplay #f_pst .bm_h {
  color: #fff !important;
}

.fl .bm_h h1,
.fl .bm_h h2,
.fl .bm_h h3,
.fl .bm_h strong,
.fl .bm_h a,
#nv_group.pg_index .mn > .bm > .bm_h h1,
#nv_group.pg_index .mn > .bm > .bm_h h2,
#nv_group.pg_index .mn > .bm > .bm_h h3,
#nv_group.pg_index .mn > .bm > .bm_h strong,
#nv_group.pg_index .mn > .bm > .bm_h a,
#nv_forum.pg_forumdisplay #fastpostform .bm_h,
#nv_forum.pg_forumdisplay #fastpostform .bm_h h3,
#nv_forum.pg_forumdisplay #f_pst .bm_h,
#nv_forum.pg_forumdisplay #f_pst .bm_h h3,
.tl .th,
.tl .th th,
.tl .th td,
.tl .th .by,
.tl .th .num,
.tl .th a {
  color: #fff !important;
}

.bm_h h1,
.bm_h h2,
.bm_h h3,
.bm_h h4,
.bm_h strong {
  color: #fff !important;
}

/* Guide and forum-directory summaries use a paper bml card rather than the
 * violet module bar, so their heading and link colors must stay dark. */
.bm.bml > .bm_h,
.bm.bml > .bm_h h1,
.bm.bml > .bm_h h2,
.bm.bml > .bm_h h3,
.bm.bml > .bm_h h4,
.bm.bml > .bm_h a,
.bm.bml > .bm_h strong {
  color: var(--ro-text) !important;
}

.bm.bml > .bm_h .xi1 { color: var(--ro-danger) !important; }

#nv_member.pg_logging .bm_h a,
#nv_member.pg_logging .bm_h a.xi2 {
  color: #fff !important;
}

/* pgsbtn already contains a readable X5 label. The legacy fallback suffix was
 * only intended for image-only actions and otherwise produced “发新帖发帖”. */
#pgt > a.pgsbtn::after { content: none !important; }

/* The create-group help rail is the deliberate yellow title variant. */
#nv_group.pg_index .sd .bm_h,
#nv_group.pg_index .sd .bm_h h1,
#nv_group.pg_index .sd .bm_h h2,
#nv_group.pg_index .sd .bm_h h3,
#nv_group.pg_index .sd .bm_h strong,
#nv_group.pg_index .sd .bm_h a {
  color: var(--ro-text) !important;
}

/* Breadcrumbs, RSS actions and subdued metadata remain readable on the warm
 * paper surfaces. These were still inheriting pale legacy X5 skin colors. */
#pt .nvhm,
#pt .nvhm:visited,
.fa_rss,
.fa_rss:visited {
  color: var(--ro-link) !important;
  opacity: 1;
}

#nv_misc.pg_ranklist .bm_c a,
#nv_forum.pg_viewthread .pl .vwthd a {
  color: var(--ro-link) !important;
}

@media (max-width: 720px) {
  .ro-forum-last__value {
    display: grid;
    gap: 3px;
    overflow: visible;
    white-space: normal;
  }

  .ro-forum-last__value > a {
    min-width: 0;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ro-forum-last__value > cite {
    display: block;
    color: var(--ro-text-muted);
    font-size: 12px;
    line-height: 1.45;
    white-space: normal;
  }

  #nv_misc.pg_ranklist .xl2 > li,
  #nv_misc.pg_ranklist .xl2 > li.xl2_r {
    width: 100% !important;
    min-width: 0;
    padding: 8px 0;
    float: none;
    box-sizing: border-box;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  #nv_misc.pg_ranklist .xl2 > li > em {
    float: none;
    margin-right: 3px;
  }

  #nv_misc.pg_ranklist .xl2 > li > a {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  /* Thread directories become compact cards instead of retaining Discuz's
   * 660px desktop table. The primary title stays visible while secondary
   * author/count columns are removed from the narrow visual presentation. */
  #nv_forum.pg_guide #threadlist,
  #nv_forum.pg_forumdisplay #threadlist {
    overflow: visible;
  }

  #nv_forum.pg_guide .pgs,
  #nv_forum.pg_forumdisplay .pgs {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
  }

  #nv_forum.pg_guide .pgs > .pg,
  #nv_forum.pg_forumdisplay .pgs > .pg {
    order: 2;
    width: 100%;
    float: none;
    margin: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
  }

  #nv_forum.pg_guide .pgs > .pg > a,
  #nv_forum.pg_guide .pgs > .pg > strong,
  #nv_forum.pg_forumdisplay .pgs > .pg > a,
  #nv_forum.pg_forumdisplay .pgs > .pg > strong {
    margin: 0;
  }

  #nv_forum.pg_guide .pgs > .pg > label,
  #nv_forum.pg_forumdisplay .pgs > .pg > label {
    height: 34px;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    box-sizing: border-box;
  }

  #nv_forum.pg_guide .pgs > .pg > label > .px,
  #nv_forum.pg_forumdisplay .pgs > .pg > label > .px {
    width: 34px !important;
    height: 34px;
    min-height: 34px;
    padding: 0 4px;
    text-align: center;
  }

  #nv_forum.pg_guide .pgs > .pgsbtn,
  #nv_forum.pg_forumdisplay .pgs > .pgsbtn {
    order: 1;
    float: none;
    margin: 0 auto 0 0 !important;
  }

  #nv_forum.pg_guide #threadlist > .th,
  #nv_forum.pg_forumdisplay #threadlist > .th {
    min-height: 48px;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
  }

  #nv_forum.pg_guide #threadlist > .th > table,
  #nv_forum.pg_forumdisplay #threadlist > .th > table {
    display: none;
  }

  #nv_forum.pg_guide #threadlist > .th::after,
  #nv_forum.pg_forumdisplay #threadlist > .th::after {
    content: "主题列表";
    color: #fff;
    font-size: 16px;
    font-weight: 950;
    line-height: 1.3;
  }

  #nv_forum.pg_guide #threadlist > .bm_c,
  #nv_forum.pg_forumdisplay #threadlist > .bm_c {
    padding: 0;
    overflow: visible;
  }

  #nv_forum.pg_guide #threadlist .bm_c table,
  #nv_forum.pg_forumdisplay #threadlist .bm_c table,
  #nv_forum.pg_guide #threadlist .bm_c tbody[id^="normalthread_"],
  #nv_forum.pg_forumdisplay #threadlist .bm_c tbody[id^="normalthread_"] {
    width: 100% !important;
    min-width: 0 !important;
    display: block;
  }

  #nv_forum.pg_forumdisplay #threadlist #separatorline { display: none; }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] > tr,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] > tr {
    width: 100%;
    min-height: 76px;
    padding: 12px;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: start;
    gap: 0 8px;
    box-sizing: border-box;
    background: var(--ro-paper);
    border-bottom: 2px solid var(--ro-line);
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"]:last-child > tr,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"]:last-child > tr {
    border-bottom: 0;
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] .icn,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] .icn {
    grid-column: 1;
    width: 30px;
    padding: 4px 0 0;
    border: 0;
    background: transparent;
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] th,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] th {
    grid-column: 2;
    width: auto;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    line-height: 1.55;
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] .xst,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] .xst {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] td.by,
  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] td.num,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] td.by,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] td.num {
    display: none;
  }
}

/* 2026-09-03 component alignment and interaction contract.
 * This final layer normalizes the remaining Discuz table/float widgets while
 * preserving every form field, URL, id and JavaScript event handler. */

/* Account strip: two compact, repeatable field rows on wide screens. */
@media (min-width: 721px) {
  #hd .hdc.ro-accountbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(560px, auto);
    min-height: 126px;
    padding: 16px 20px;
    gap: 20px;
  }

  .ro-accountbar #lsform,
  .ro-accountbar #lsform .fastlg,
  .ro-accountbar #lsform .pns,
  .ro-accountbar #lsform table,
  .ro-accountbar #lsform tbody {
    width: 100%;
    max-width: none;
    display: block;
  }

  .ro-accountbar #lsform tbody {
    display: grid;
    gap: 8px;
  }

  .ro-accountbar #lsform tr {
    display: grid;
    grid-template-columns: 126px 180px minmax(108px, auto) minmax(92px, auto);
    align-items: center;
    gap: 10px;
  }

  .ro-accountbar #lsform td {
    width: auto !important;
    min-width: 0;
    min-height: 42px;
    padding: 0;
    display: flex;
    align-items: center;
  }

  .ro-accountbar #lsform td:first-child {
    justify-content: flex-end;
    text-align: right;
  }

  .ro-accountbar #lsform td:nth-child(4) { justify-content: flex-start; }
  .ro-accountbar #lsform .px { width: 100%; min-height: 42px; }
  .ro-accountbar #lsform .pn { width: 100% !important; min-width: 0; }
}

.ro-accountbar #lsform a {
  font-weight: 850;
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

.ro-accountbar #lsform .px:hover,
#scbar_txt:hover,
#scbar_type:hover { background: #fffdf5; }

/* Search: a stable grid replaces the legacy table widths and icon sprite. */
#hd #scbar {
  min-height: 74px;
  padding: 12px 18px;
}

#scbar_form,
#scbar_form > table,
#scbar_form > table > tbody { width: 100%; display: block; }

#scbar_form > table > tbody > tr {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(260px, 1.25fr) 92px 104px minmax(210px, 1fr);
  align-items: center;
  gap: 12px;
}

#scbar_form td {
  width: auto !important;
  height: auto !important;
  min-width: 0;
  padding: 0 !important;
  display: block;
  box-sizing: border-box;
}

#scbar_form .scbar_icon_td { display: none; }

#scbar_txt {
  width: 100% !important;
  height: 46px;
  min-height: 46px;
  padding: 0 14px;
  box-sizing: border-box;
  font-size: 15px;
  line-height: 42px;
}

#scbar_type {
  width: 100%;
  height: 46px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #f2eeff;
  border: 2px solid var(--ro-ink);
  font-weight: 850;
  line-height: 1.2;
  text-decoration: none;
}

#scbar_type::after {
  content: "\25BE";
  flex: 0 0 auto;
  font-size: 13px;
  transition: transform 120ms ease;
}

#scbar_type:hover,
#scbar_type:focus-visible { background: var(--ro-yellow); }
#scbar_type:active::after { transform: translateY(2px); }

#scbar_btn {
  width: 100% !important;
  min-width: 0 !important;
  height: 46px !important;
  min-height: 46px !important;
}

#scbar_hot {
  min-height: 46px;
  padding: 7px 10px;
  display: flex;
  align-items: center;
  align-content: center;
  gap: 6px 10px;
  box-sizing: border-box;
  overflow: visible;
  line-height: 1.35;
  background: #fff8cf;
  border-left: 3px solid var(--ro-ink);
}

#scbar_hot strong { color: var(--ro-text); }
#scbar_hot a { padding: 2px 1px; font-weight: 850; }

#scbar_type_menu {
  min-width: 150px !important;
  padding: 6px !important;
  background: var(--ro-paper) !important;
  border: 3px solid var(--ro-ink) !important;
  box-shadow: 5px 5px 0 var(--ro-ink) !important;
}

#scbar_type_menu a {
  min-height: 40px;
  padding: 8px 10px !important;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  font-weight: 850;
  border-bottom: 1px solid var(--ro-line);
}

#scbar_type_menu a:last-child { border-bottom: 0; }
#scbar_type_menu a:hover,
#scbar_type_menu a:focus-visible { background: var(--ro-yellow); }

/* Forum summary statistics and online roster. */
#chart {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 14px;
  min-height: 76px;
  padding: 14px 16px !important;
}

#chart .chart {
  width: 100%;
  min-height: 46px;
  display: grid;
  grid-template-columns: repeat(4, minmax(74px, .62fr)) minmax(210px, 1.55fr);
  align-items: stretch;
  gap: 0;
}

/* X5's optional icon-font marker otherwise becomes a sixth grid item. */
#chart .chart::before { display: none !important; content: none !important; }

#chart .ro-chart-stat {
  min-width: 0;
  min-height: 46px;
  padding: 7px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  box-sizing: border-box;
  white-space: normal;
  border: 0;
  border-right: 2px solid var(--ro-ink);
}

#chart .ro-chart-stat:last-child { border-right: 0; }
#chart .ro-chart-label { line-height: 1.25; }
#chart .ro-chart-stat--member {
  justify-content: flex-start;
  flex-wrap: wrap;
  row-gap: 2px;
  background: #fff8cf;
}

#chart .ro-chart-stat--member .ro-chart-label { flex: 0 0 auto; }
#chart .ro-chart-stat--member em {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

#chart .ro-chart-stat--member a {
  display: inline;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
#chart .y,
#chart .ro-chart-actions {
  float: none;
  margin: 0;
  display: flex;
  align-items: center;
}

#chart .y > a,
#chart .ro-chart-actions a {
  min-height: 42px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: #fff !important;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
  font-weight: 900;
  white-space: nowrap;
}

#chart .y > a:hover,
#chart .y > a:focus-visible,
#chart .ro-chart-actions a:hover,
#chart .ro-chart-actions a:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow);
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--ro-ink);
}

#online .bm_h {
  min-height: 64px;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: start;
  gap: 10px;
}

#online .bm_h h3 {
  min-width: 0;
  font-size: 13px;
  line-height: 1.55;
}

#online .bm_h h3,
#online .bm_h h3 a,
#online .bm_h h3 .xs1 { color: #fff !important; }
#online .bm_h h3 .xs1 strong { color: var(--ro-yellow) !important; }

#online .bm_h .o {
  grid-column: 2;
  grid-row: 1;
  width: 38px;
  height: 38px;
  margin: 0;
}

#online .bm_h .o a {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  text-decoration: none;
}

#online .bm_h .o a:hover,
#online .bm_h .o a:focus-visible { background: var(--ro-yellow); }
#online .bm_h .o a:active { transform: translate(2px, 2px); box-shadow: none; }
#online .bm_h .o em { width: auto; height: auto; background: none !important; }
#online .bm_h .o em::before { content: "\2212"; font: 950 22px/1 Arial, sans-serif; }
#online .bm_h .o em.tg_yes::before { content: "+"; }

#onlinelist dt {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 11px;
  align-items: center;
}

#onlinelist dt img { width: 16px; height: 16px; object-fit: contain; }

/* Compact module headings, breadcrumbs and page navigation. */
.bm.bml > .bm_h {
  min-height: 54px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  box-sizing: border-box;
  background: #fff8cf;
  border-bottom: 2px solid var(--ro-ink);
}

.bm.bml > .bm_h h1 { margin: 0; font-size: 18px; line-height: 1.3; }
.bm.bml > .bm_c:empty,
.bm.bml > .bm_c .ptn:empty { display: none; }

#pt {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
}

#pt > .z {
  float: none;
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

#pt a { min-height: 28px; display: inline-flex; align-items: center; }

.pgs {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 14px;
}

.pgs .pgt,
.pgs > .pg,
.pgs > .pgb,
.pgs > .pgsbtn {
  float: none;
  margin: 0 !important;
}

.pg {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.pg a,
.pg strong,
.pg label,
.pgb a {
  margin: 0 !important;
  box-sizing: border-box;
}

.pg a:hover,
.pg a:focus-visible,
.pgb a:hover,
.pgb a:focus-visible { background: var(--ro-yellow); }
.pg a:active,
.pgb a:active { transform: translate(2px, 2px); }

/* Thread directories: one column contract shared by header and rows. */
.tl > .th table,
.tl > .bm_c > table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.tl .th th,
.tl .th td,
.tl .bm_c th,
.tl .bm_c td {
  box-sizing: border-box;
  vertical-align: middle;
}

.tl .icn { width: 40px !important; padding-left: 12px; padding-right: 4px; }
.tl .by { width: 116px !important; }
.tl .num { width: 76px !important; text-align: center; }
.tl .th th { padding-left: 10px; }
.tl .th td,
.tl .bm_c td { padding-left: 10px; padding-right: 10px; }

.tl tbody[id^="normalthread_"] > tr {
  transition: background-color 120ms ease, box-shadow 120ms ease;
}

.tl tbody[id^="normalthread_"] > tr:hover,
.tl tbody[id^="normalthread_"] > tr:focus-within {
  background: #fff7c7;
  box-shadow: inset 5px 0 0 var(--ro-yellow);
}

.tl tbody[id^="normalthread_"] .xst {
  color: var(--ro-link) !important;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.5;
}

.tl tbody[id^="normalthread_"] .xst:hover,
.tl tbody[id^="normalthread_"] .xst:focus-visible {
  color: var(--ro-link-hover) !important;
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

/* Board directory cards must ignore the old inline left offset. */
.ro-board-category .fl_g dl { min-width: 0; margin: 0 !important; }
.ro-board-category .fl_g:focus-within {
  background: #fff3ad;
  box-shadow: inset 5px 0 0 var(--ro-violet);
}

/* Thread page and fast reply: remove the empty author gutter in the editor. */
#postlist .pls { padding-left: 14px; padding-right: 14px; }
#postlist .plc { padding-left: 20px; padding-right: 20px; }
#postlist .pi { min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
#postlist .pcb { padding-top: 16px; padding-bottom: 20px; }
#postlist .pcb a { overflow-wrap: anywhere; }

#f_pst > form > table { table-layout: fixed; }
#f_pst .pls { display: none; width: 0 !important; }
#f_pst .plc { width: auto !important; padding: 20px !important; }
#f_pst #fastposteditor { width: 100%; margin: 0; }
#f_pst #fastposteditor .tedt { width: 100%; box-sizing: border-box; }
#f_pst #fastposteditor .bar {
  min-height: 42px;
  padding: 7px 10px;
  box-sizing: border-box;
  background: #edf6ff;
  border-bottom: 2px solid var(--ro-ink);
}
#f_pst #fastposteditor .area { min-height: 122px; }
#f_pst #fastposteditor .area .pt {
  min-height: 118px;
  padding: 18px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  background: #fffdf5;
}
#f_pst .pnpost {
  min-height: 58px;
  margin-top: 14px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 14px;
}
#f_pst .pnpost > .y { float: none; margin-left: auto; }
#f_pst .pnpost label { display: inline-flex; align-items: center; gap: 6px; }

/* Popup login: fixed columns, full-width controls and a clear close target. */
.fwin .m_c { max-width: min(760px, calc(100vw - 24px)); }
.fwin .flb {
  min-height: 54px;
  padding: 9px 12px 9px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
}
.fwin .flb .flbc {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #fff !important;
  background: #ef625b !important;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  text-indent: -9999px;
}
.fwin .flb .flbc::after { content: "\00D7"; text-indent: 0; font: 950 25px/1 Arial, sans-serif; }
.fwin .flb .flbc:hover,
.fwin .flb .flbc:focus-visible { background: var(--ro-yellow) !important; color: var(--ro-text) !important; }

/* Footer: preserve one calm baseline while keeping every link reachable. */
#ft.wp.ro-site-footer { align-items: center; }
#ft.ro-site-footer a {
  padding: 2px 1px;
  text-decoration-thickness: 2px;
  transition: color 120ms ease, background-color 120ms ease;
}
#ft.ro-site-footer a:hover,
#ft.ro-site-footer a:focus-visible { color: #fff; background: var(--ro-violet); }
#ft.ro-site-footer #debuginfo { color: #4e4657; }

@media (max-width: 980px) and (min-width: 721px) {
  #hd .hdc.ro-accountbar { grid-template-columns: 1fr; }
  .ro-accountbar #lsform tr {
    grid-template-columns: 126px minmax(180px, 1fr) minmax(108px, auto) minmax(92px, auto);
  }
  #scbar_form > table > tbody > tr {
    grid-template-columns: minmax(220px, 1fr) 88px 100px;
  }
  #scbar_form .scbar_hot_td { grid-column: 1 / -1; }
  #scbar_hot { border-left: 0; border-top: 2px solid var(--ro-line); }
}

@media (max-width: 720px) {
  #hd .hdc.ro-accountbar {
    min-height: 0;
    padding: 14px;
    gap: 14px;
  }

  .ro-accountbar__intro strong { font-size: 20px; }
  .ro-accountbar #lsform tr { margin-bottom: 10px; }
  .ro-accountbar #lsform td { min-height: 40px; }

  #hd #scbar { min-height: 0; padding: 12px; }
  #scbar_form > table > tbody > tr {
    grid-template-columns: minmax(0, 1fr) 92px;
    gap: 8px;
  }
  #scbar_form .scbar_txt_td,
  #scbar_form .scbar_hot_td { grid-column: 1 / -1; }
  #scbar_form .scbar_type_td { grid-column: 1; }
  #scbar_form .scbar_btn_td { grid-column: 2; width: auto !important; }
  #scbar_form .scbar_btn_td #scbar_btn { width: 100% !important; min-width: 0; }
  #scbar_hot {
    min-height: 40px;
    padding: 7px 2px 0;
    background: transparent;
    border: 0;
    border-top: 2px solid var(--ro-line);
  }

  #chart {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px !important;
  }
  #chart .chart { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #chart .ro-chart-stat { border-right: 2px solid var(--ro-ink); border-bottom: 2px solid var(--ro-ink); }
  #chart .ro-chart-stat:nth-child(2n) { border-right: 0; }
  #chart .ro-chart-stat--member { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
  #chart .y,
  #chart .ro-chart-actions { width: 100%; }
  #chart .y > a,
  #chart .ro-chart-actions a { width: 100%; }

  .bm.bml > .bm_h { min-height: 50px; padding: 9px 11px; }
  .bm.bml > .bm_h h1 { font-size: 16px; }
  #pt { padding: 8px 10px; }
  .pgs { align-items: flex-start; }

  /* Keep useful thread metadata instead of deleting every secondary cell. */
  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] > tr,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] > tr {
    min-height: 102px;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 7px 8px;
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] th,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] th {
    grid-column: 2 / -1;
    grid-row: 1;
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] td.by,
  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] td.num,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] td.by,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] td.num { display: none; }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] td.by:nth-of-type(2),
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] td.by:nth-of-type(2) {
    grid-column: 2;
    grid-row: 2;
    width: auto !important;
    min-width: 0;
    padding: 0;
    display: block;
    overflow: hidden;
    color: var(--ro-text-muted) !important;
    font-size: 12px;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] td.by:nth-of-type(2)::before { content: "版块 · "; font-weight: 850; }
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] td.by:nth-of-type(2)::before { content: "作者 · "; font-weight: 850; }

  #nv_forum.pg_guide #threadlist tbody[id^="normalthread_"] td.num,
  #nv_forum.pg_forumdisplay #threadlist tbody[id^="normalthread_"] td.num {
    grid-column: 3;
    grid-row: 2;
    width: auto !important;
    min-width: 58px;
    padding: 2px 6px;
    display: block;
    color: var(--ro-text) !important;
    font-size: 12px;
    line-height: 1.35;
    text-align: center;
    white-space: nowrap;
    background: #f2eeff;
    border: 1px solid var(--ro-ink);
  }

  #postlist > table,
  #postlist > table > tbody,
  #postlist > table > tbody > tr {
    width: 100%;
    display: block;
  }
  #postlist .pls { display: none; }
  #postlist .plc {
    width: 100% !important;
    padding-left: 14px;
    padding-right: 14px;
    display: block;
    box-sizing: border-box;
  }
  #postlist .vwthd { min-height: 52px; }
  #postlist .pi { align-items: flex-start; }
  #postlist .pcb { padding-top: 12px; }

  #f_pst .plc { padding: 14px !important; }
  #f_pst #fastposteditor .bar { min-height: 46px; }
  #f_pst .pnpost { align-items: flex-start; }
  #f_pst .pnpost > .y { width: 100%; margin-left: 0; order: 2; }

  .fwin .flb { min-height: 50px; }
  .fwin .flb .flbc { width: 36px; height: 36px; }

  #fwin_login .rfm {
    margin: 0;
    padding: 8px 0;
  }
  #fwin_login .rfm table,
  #fwin_login .rfm tbody { width: 100% !important; display: block; }
  #fwin_login .rfm tr {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 10px;
    align-items: center;
  }
  #fwin_login .rfm th,
  #fwin_login .rfm td {
    width: auto !important;
    min-width: 0;
    padding: 0;
    display: block;
    text-align: left;
  }
  #fwin_login .rfm th { grid-column: 1; grid-row: 1; }
  #fwin_login .rfm td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  #fwin_login .rfm td.tipcol {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
  #fwin_login .rfm .px,
  #fwin_login .rfm select { width: 100% !important; min-height: 44px; }
  #fwin_login .rfm.bw0 th:empty { display: none; }
  #fwin_login .rfm.bw0 td:nth-child(2) { grid-column: 1 / -1; grid-row: 1; }
  #fwin_login .rfm.mbw .pn { min-width: 120px; }

  #ft.wp.ro-site-footer {
    padding: 16px;
    grid-template-columns: 1fr;
    gap: 12px;
  }
  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt {
    grid-column: 1;
    text-align: left;
  }
}

/* Discuz's clearfix pseudo-element becomes an unintended flex/grid item.
 * Suppress it only on components whose children now participate in layout. */
#pgt.cl::after,
.pgs.cl::after,
#chart.cl::after,
#online .bm_h.cl::after,
#pt.cl::after,
#pt > .z::after,
.bm.bml > .bm_h.cl::after,
#f_pst .pnpost::after { display: none; content: none; }

.bm.bml > .bm_h h1 { order: 1; }
.bm.bml > .bm_h > .y { order: 2; margin-left: auto; }

@media (prefers-reduced-motion: reduce) {
  .ro-site-button,
  button.pn,
  a.pn,
  input.pn,
  #qmenu,
  #scbar_btn,
  #scbar_type,
  .tl tbody[id^="normalthread_"] > tr,
  #ft.ro-site-footer a { transition: none !important; }
}

/* 2026-09-03 targeted component polish: search, login, navigation,
 * pagination, sidebars, group guidance, empty states and footer. */

/* Search type and submit controls use the same tactile state language. */
#scbar_form .scbar_type_td,
#scbar_form .scbar_btn_td {
  vertical-align: middle;
  overflow: visible;
}

#scbar_type,
#scbar_btn {
  border: 3px solid var(--ro-ink) !important;
  box-shadow: 3px 3px 0 var(--ro-ink) !important;
  font-size: 14px !important;
  font-weight: 950 !important;
  transition: color 120ms ease, background-color 120ms ease,
    transform 120ms ease, box-shadow 120ms ease;
}

#scbar_type {
  color: var(--ro-text) !important;
  background: #f2eeff !important;
}

#scbar_type:hover,
#scbar_type:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
}

#scbar_btn,
#scbar_btn > strong {
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
}

#scbar_btn:hover,
#scbar_btn:focus-visible,
#scbar_btn:hover > strong,
#scbar_btn:focus-visible > strong {
  color: #fff !important;
  background: var(--ro-violet) !important;
}

#scbar_type:active,
#scbar_btn:active {
  color: var(--ro-text) !important;
  background: var(--ro-coral) !important;
  transform: translate(3px, 3px);
  box-shadow: none !important;
}

#scbar_type:focus-visible,
#scbar_btn:focus-visible {
  outline: 3px solid var(--ro-blue);
  outline-offset: 3px;
}

#scbar_type_menu a.curtype {
  color: #fff !important;
  background: var(--ro-violet) !important;
}

#scbar_type_menu a.curtype:hover,
#scbar_type_menu a.curtype:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
}

/* Full-page guest login: reserve the action column even on rows without an
 * action link, so every field starts and ends on the same baseline. */
.nfl .f_c #messagelogin .rfm table,
.nfl .f_c #messagelogin .rfm tbody {
  width: 100% !important;
  display: block;
}

.nfl .f_c #messagelogin .rfm tr {
  width: 100%;
  display: grid;
  grid-template-columns: 152px minmax(0, 1fr) 130px;
  align-items: center;
}

.nfl .f_c #messagelogin .rfm th,
.nfl .f_c #messagelogin .rfm td {
  width: auto !important;
  min-width: 0;
  box-sizing: border-box;
}

.nfl .f_c #messagelogin .rfm th {
  grid-column: 1;
  padding: 9px 14px 9px 0;
  text-align: right;
}

.nfl .f_c #messagelogin .rfm td:nth-child(2) {
  grid-column: 2;
  padding: 9px 0;
}

.nfl .f_c #messagelogin .rfm td.tipcol {
  grid-column: 3;
  width: auto !important;
  padding: 9px 0 9px 14px;
}

.nfl .f_c #messagelogin .rfm .px,
.nfl .f_c #messagelogin .rfm select {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}

.nfl .f_c #messagelogin .rfm.bw0 th:empty { visibility: hidden; }
.nfl .f_c #messagelogin .rfm.mbw .pn { justify-self: start; }

/* One X only: earlier Discuz skins may draw both ::before and ::after. */
.fwin .flb .flbc,
#fwin_login .flb .flbc {
  position: relative !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  font-size: 0 !important;
  line-height: 1 !important;
  text-indent: 0 !important;
}

.fwin .flb .flbc::before,
#fwin_login .flb .flbc::before {
  display: none !important;
  content: none !important;
}

.fwin .flb .flbc::after,
#fwin_login .flb .flbc::after {
  content: "\00D7" !important;
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: currentColor;
  font: 950 25px/1 Arial, sans-serif;
  text-indent: 0;
  transform: translateY(-1px);
}

/* Page numbers are independent cards; no shared or doubled borders. */
.pg {
  gap: 7px;
  line-height: 1;
}

.pg > a,
.pg > strong,
.pg > label,
.pgb > a {
  min-width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0 10px !important;
  float: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: var(--ro-text) !important;
  line-height: 1 !important;
  background: var(--ro-paper) !important;
  border: 2px solid var(--ro-ink) !important;
  box-shadow: 2px 2px 0 var(--ro-ink);
}

.pg > strong {
  background: var(--ro-yellow) !important;
  font-weight: 950;
}

.pg > label { padding: 0 7px !important; }
.pg > label .px {
  width: 34px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 4px !important;
  text-align: center;
  border: 0 !important;
  box-shadow: none !important;
}

.pg > label:focus-within {
  outline: 3px solid var(--ro-blue);
  outline-offset: 2px;
}

.pg > a.nxt { min-width: 82px; }
.pg > a.nxt::after { content: "\2192"; margin-left: 5px; }
.pgb > a { min-width: 94px; }
.pgb > a::before { content: "\2190"; margin-right: 5px; }
.pgs > .pgb { margin-left: auto !important; }

.pg > a:hover,
.pg > a:focus-visible,
.pgb > a:hover,
.pgb > a:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
}

.pg > a:active,
.pgb > a:active {
  background: var(--ro-coral) !important;
  transform: translate(2px, 2px);
  box-shadow: none;
}

/* Group creation steps: reliable CSS icons replace the missing legacy sprite. */
#nv_group.pg_index #g_guide li {
  position: relative !important;
  min-height: 78px;
  padding: 12px 12px 12px 66px;
}

#nv_group.pg_index #g_guide .group_createico {
  position: absolute;
  left: 12px;
  top: 50%;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #fff !important;
  background-image: none !important;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  transform: translateY(-50%);
}

#nv_group.pg_index #g_guide .group_createico::before {
  font: 950 24px/1 Arial, sans-serif;
}

#nv_group.pg_index #g_guide .group_create01 { background: var(--ro-yellow) !important; }
#nv_group.pg_index #g_guide .group_create02 { background: #f2eeff !important; }
#nv_group.pg_index #g_guide .group_create03 { background: #dff4ff !important; }
#nv_group.pg_index #g_guide .group_create04 { background: #ddf6c5 !important; }
#nv_group.pg_index #g_guide .group_create01::before { content: "+"; }
#nv_group.pg_index #g_guide .group_create02::before { content: "\2261"; }
#nv_group.pg_index #g_guide .group_create03::before { content: "\263A"; }
#nv_group.pg_index #g_guide .group_create04::before { content: "\2191"; }

/* Navigation distinguishes hover, physical press and the selected page. */
#hd #nv li { background: transparent !important; }
#hd #nv li > a {
  color: var(--ro-text) !important;
  background: transparent !important;
  transition: color 120ms ease, background-color 120ms ease,
    transform 120ms ease, box-shadow 120ms ease;
}

#hd #nv li:not(.a) > a:hover,
#hd #nv li:not(.a) > a:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
}

#hd #nv li.a > a,
#hd #nv li.a > a:hover,
#hd #nv li.a > a:focus-visible {
  color: #fff !important;
  background: var(--ro-violet) !important;
}

#hd #nv li > a:active,
#hd #nv li.a > a:active {
  color: var(--ro-text) !important;
  background: var(--ro-coral) !important;
  transform: translateY(3px);
  box-shadow: inset 0 3px 0 rgba(27, 23, 34, .24);
}

/* Collection copy stays a sentence instead of becoming three grid rows. */
#nv_forum.pg_collection .emp {
  min-height: 160px;
  padding: 34px 20px !important;
  display: block !important;
  box-sizing: border-box;
  text-align: center;
  line-height: 1.75;
}

#nv_forum.pg_collection .emp::before {
  margin: 0 auto 12px;
  display: block;
}

#nv_forum.pg_collection .emp a {
  margin: 0 .25em;
  display: inline !important;
  font-weight: 950;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* Sidebar menus: spacing is carried by the list, not overlapping borders. */
.ct2_a > .appl .tbn,
.ct2_a > .appl .tbn > ul { width: 100%; box-sizing: border-box; }

.ct2_a > .appl .tbn > ul {
  margin: 0;
  padding: 10px;
  display: grid;
  gap: 7px;
}

.ct2_a > .appl .tbn li,
.ct2_a > .appl .tbn li.cl,
.ct2_a > .appl .tbn li.a {
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0 !important;
}

.ct2_a > .appl .tbn li > a {
  min-height: 42px;
  padding: 8px 11px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #fff !important;
  border: 2px solid transparent;
  font-weight: 850;
  line-height: 1.35;
}

.ct2_a > .appl .tbn li > a:hover,
.ct2_a > .appl .tbn li > a:focus-visible {
  background: #fff3ad !important;
  border-color: var(--ro-ink);
}

.ct2_a > .appl .tbn li.a > a {
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
  border-color: var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

.ct2_a > .appl .tbn li > a:active {
  background: var(--ro-coral) !important;
  transform: translate(2px, 2px);
  box-shadow: none;
}

/* Rank-list sub-tabs wrap cleanly and never share border edges. */
body.pg_ranklist .mn ul.tb.cl {
  min-height: 0;
  margin: 0 0 16px;
  padding: 10px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  box-sizing: border-box;
  background: #eef7ff;
  border: 2px solid var(--ro-ink);
}

body.pg_ranklist .mn ul.tb.cl > li {
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  float: none;
  border: 0 !important;
}

body.pg_ranklist .mn ul.tb.cl > li > a {
  min-height: 40px;
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #fff !important;
  border: 2px solid var(--ro-ink) !important;
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-weight: 850;
}

body.pg_ranklist .mn ul.tb.cl > li.a > a {
  color: #fff !important;
  background: var(--ro-violet) !important;
}

body.pg_ranklist .mn ul.tb.cl > li > a:hover,
body.pg_ranklist .mn ul.tb.cl > li > a:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
}

/* Space-control credit pages: one structured content card and readable table. */
body.pg_spacecp #ct.ct2_a {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: start;
  gap: 20px;
}

body.pg_spacecp #ct.ct2_a > .appl,
body.pg_spacecp #ct.ct2_a > .mn {
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  float: none;
}

body.pg_spacecp #ct.ct2_a > .mn > .bm.bw0 {
  padding: 20px;
  box-sizing: border-box;
  background: var(--ro-paper);
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow-sm);
}

body.pg_spacecp .mn > .bm > h1.mt {
  margin: -20px -20px 16px;
  padding: 13px 16px;
  color: var(--ro-text);
  background: var(--ro-yellow);
  border-bottom: 2px solid var(--ro-ink);
}

body.pg_spacecp .mn ul.tb.cl {
  min-height: 0;
  margin: 0 0 16px;
  padding: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  background: #eef7ff;
  border: 2px solid var(--ro-ink);
}

body.pg_spacecp .mn ul.tb.cl > li {
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  float: none;
  border: 0 !important;
}

body.pg_spacecp .mn ul.tb.cl > li > a {
  min-height: 40px;
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  color: var(--ro-text) !important;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-sizing: border-box;
  font-weight: 850;
}

body.pg_spacecp .mn ul.tb.cl > li.a > a {
  color: #fff !important;
  background: var(--ro-violet);
  box-shadow: 2px 2px 0 var(--ro-ink);
}

/* User-group pages have two navigation levels: group families open menus,
 * while the second row changes the current user-group tool. */
body.pg_spacecp .ro-usergroup-nav {
  margin: 0 0 12px;
  padding: 10px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  background: #fff8cf;
  border: 2px solid var(--ro-ink);
}

body.pg_spacecp .ro-usergroup-nav__label {
  min-height: 44px;
  padding: 9px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-text);
  background: var(--ro-yellow);
  border: 2px solid var(--ro-ink);
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
}

body.pg_spacecp .mn .ro-usergroup-categories.tb.cl {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(124px, 1fr));
  align-items: stretch;
  gap: 8px;
  background: transparent;
  border: 0;
}

body.pg_spacecp .mn .ro-usergroup-categories > li.y {
  float: none;
  min-width: 0;
  margin: 0;
  line-height: 1;
}

body.pg_spacecp .mn .ro-usergroup-categories > li.showmenu::after {
  content: none !important;
  display: none !important;
}

body.pg_spacecp .mn ul.ro-usergroup-categories.tb.cl > li > a {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  position: relative;
  padding: 9px 36px 9px 14px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

body.pg_spacecp .mn .ro-usergroup-categories > li.showmenu > a::before {
  content: "";
  position: absolute;
  top: 7px;
  right: 30px;
  bottom: 7px;
  width: 1px;
  background: currentColor;
  opacity: .32;
  pointer-events: none;
}

body.pg_spacecp .mn .ro-usergroup-categories > li.showmenu > a::after {
  content: "";
  position: absolute;
  right: 11px;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -5px;
  box-sizing: border-box;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  pointer-events: none;
}

body.pg_spacecp .mn .ro-usergroup-categories > li.a > a,
body.pg_spacecp .mn .ro-usergroup-categories > li > a:hover,
body.pg_spacecp .mn .ro-usergroup-categories > li > a:focus-visible {
  color: #fff !important;
  background: var(--ro-violet) !important;
  box-shadow: 2px 2px 0 var(--ro-ink);
}

body.pg_spacecp .mn .ro-usergroup-sections.tb.cl {
  margin: 0 0 18px;
  padding: 9px;
  background: #eef7ff;
}

body.pg_spacecp .mn .ro-usergroup-sections > li > a {
  min-height: 42px;
  padding: 9px 14px;
}

body.pg_spacecp [id^="g"][id$="_menu"].p_pop,
body.pg_spacecp [id^="ug"][id$="_menu"].p_pop {
  min-width: 210px;
  padding: 8px;
  background: var(--ro-paper);
  border: 2px solid var(--ro-ink) !important;
  box-shadow: 4px 4px 0 var(--ro-ink) !important;
}

body.pg_spacecp [id^="g"][id$="_menu"].p_pop a,
body.pg_spacecp [id^="ug"][id$="_menu"].p_pop a {
  min-height: 38px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

/* User-group permission matrix. Discuz renders the row labels and values as
 * separate tables; fixed, matching row metrics keep both halves aligned. */
body.pg_spacecp .ro-usergroup-matrix {
  --ro-ug-label-width: 230px;
  margin: 0 0 14px;
  padding: 0;
  display: grid;
  grid-template-columns: var(--ro-ug-label-width) minmax(520px, 1fr);
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  box-sizing: border-box;
  background: var(--ro-paper);
  border: 2px solid var(--ro-ink);
  box-shadow: 5px 5px 0 var(--ro-ink);
  scrollbar-color: var(--ro-violet) #fff4b8;
  scrollbar-width: thin;
}

body.pg_spacecp .ro-usergroup-matrix:focus-visible {
  outline: 3px solid var(--ro-focus);
  outline-offset: 4px;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat {
  float: none;
  width: 100% !important;
  min-width: 0;
  margin: 0;
  table-layout: fixed;
  border: 0;
  border-collapse: collapse;
  background: #fffdf7;
}

body.pg_spacecp .ro-usergroup-matrix__labels {
  position: sticky;
  left: 0;
  z-index: 3;
  color: var(--ro-text);
  background: #fff8cf !important;
  border-right: 2px solid var(--ro-ink) !important;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat tr,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat tr {
  height: 46px;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat th,
body.pg_spacecp .ro-usergroup-matrix > .tdat td,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat th,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat td {
  height: 46px;
  padding: 9px 13px;
  box-sizing: border-box;
  vertical-align: middle;
  white-space: normal;
  overflow-wrap: anywhere;
  border: 0;
  border-bottom: 1px solid #d8d1c5;
  font-size: 14px;
  line-height: 1.35;
}

body.pg_spacecp .ro-usergroup-matrix__labels th,
body.pg_spacecp .ro-usergroup-matrix__labels td {
  text-align: left;
  font-weight: 850;
}

body.pg_spacecp .ro-usergroup-matrix__values th,
body.pg_spacecp .ro-usergroup-matrix__values td,
body.pg_spacecp .ro-usergroup-matrix__comparison th,
body.pg_spacecp .ro-usergroup-matrix__comparison td {
  text-align: center;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat tr.alt > th,
body.pg_spacecp .ro-usergroup-matrix > .tdat tr.alt > td,
body.pg_spacecp .ro-usergroup-matrix > .tdat tbody tr.alt > th,
body.pg_spacecp .ro-usergroup-matrix > .tdat tbody tr.alt > td,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat tr.alt > th,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat tr.alt > td {
  background: #eef7ff;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat tr:hover > th,
body.pg_spacecp .ro-usergroup-matrix > .tdat tr:hover > td,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat tr:hover > th,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat tr:hover > td {
  background: #fff2a8;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat .c0 {
  height: 62px;
  padding: 10px 14px;
  color: #fff;
  background: var(--ro-violet);
  border-bottom: 2px solid var(--ro-ink);
}

body.pg_spacecp .ro-usergroup-matrix__labels .c0::before {
  content: "权限项目";
  display: block;
  color: #fff;
  font-size: 17px;
  font-weight: 950;
  line-height: 1.2;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat .c0 h4 {
  margin: 0;
  padding: 0;
  color: #fff;
  background: transparent;
  border: 0;
  font-size: 17px;
  font-weight: 950;
  line-height: 1.25;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat > tbody:first-child > tr:nth-child(2) > th,
body.pg_spacecp .ro-usergroup-matrix > .tdat > tr:nth-child(2) > th {
  height: 54px;
}

body.pg_spacecp .ro-usergroup-matrix__labels > tbody:first-child > tr:nth-child(2) > th::before,
body.pg_spacecp .ro-usergroup-matrix__labels > tr:nth-child(2) > th::before {
  content: "当前状态";
  color: var(--ro-muted);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}

body.pg_spacecp .ro-usergroup-matrix .notice {
  width: auto;
  min-height: 30px;
  margin: 0;
  padding: 5px 10px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #fff1a3;
  border: 1px solid var(--ro-ink);
  font-weight: 850;
  line-height: 1.3;
}

body.pg_spacecp .ro-usergroup-matrix .notice::before {
  content: "★" !important;
  position: static !important;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin: 0 7px 0 0 !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: #fff;
  background: var(--ro-violet);
  border: 1px solid var(--ro-ink);
  border-radius: 50%;
  font-family: Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 900;
  font-style: normal;
  line-height: 1 !important;
  vertical-align: middle;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat tr.h,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat tr.h {
  height: 44px;
}

body.pg_spacecp .ro-usergroup-matrix > .tdat tr.h > th,
body.pg_spacecp .ro-usergroup-matrix .tscr .tdat tr.h > th {
  height: 44px;
  padding: 9px 13px;
  color: #fff;
  background: var(--ro-violet) !important;
  border-top: 2px solid var(--ro-ink);
  border-bottom: 2px solid var(--ro-ink);
  font-size: 14px;
  font-weight: 950;
  text-align: left;
}

body.pg_spacecp .ro-usergroup-matrix__values tr.h > th,
body.pg_spacecp .ro-usergroup-matrix__comparison tr.h > th {
  text-align: center !important;
}

body.pg_spacecp .ro-usergroup-matrix .fico-valid,
body.pg_spacecp .ro-usergroup-matrix .fico-invalid {
  margin: 0 auto;
  vertical-align: middle;
}

body.pg_spacecp .ro-usergroup-matrix [class^="fico-star"],
body.pg_spacecp .ro-usergroup-matrix [class*=" fico-star"] {
  width: 23px;
  height: 23px;
  margin: 0 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #6c4900;
  background: var(--ro-yellow);
  border: 1px solid var(--ro-ink);
  border-radius: 50%;
  font-family: inherit !important;
  font-size: 0;
  font-style: normal;
  line-height: 1;
  vertical-align: middle;
}

body.pg_spacecp .ro-usergroup-matrix [class^="fico-star"]::before,
body.pg_spacecp .ro-usergroup-matrix [class*=" fico-star"]::before {
  content: "★";
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 1;
}

body.pg_spacecp .ro-usergroup-matrix .nwp {
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  color: var(--ro-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.pg_spacecp .ro-usergroup-matrix__legend {
  margin: 0 0 18px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px 18px;
  box-sizing: border-box;
  background: #eef7ff;
  border: 2px solid var(--ro-ink);
  font-size: 13px;
  font-weight: 800;
}

body.pg_spacecp .ro-usergroup-matrix__legend > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

body.pg_spacecp .ro-usergroup-matrix__legend .fico-valid,
body.pg_spacecp .ro-usergroup-matrix__legend .fico-invalid {
  flex: 0 0 auto;
  margin: 0;
}

body.pg_spacecp .ro-usergroup-matrix--compare {
  display: flex;
  align-items: flex-start;
  min-width: 0;
}

body.pg_spacecp .ro-usergroup-matrix--compare > .ro-usergroup-matrix__labels {
  flex: 0 0 var(--ro-ug-label-width);
}

body.pg_spacecp .ro-usergroup-matrix--compare > .ro-usergroup-matrix__values,
body.pg_spacecp .ro-usergroup-matrix--compare > .tscr {
  flex: 0 0 300px;
}

body.pg_spacecp .ro-usergroup-matrix--compare > #tba {
  flex: 0 0 170px;
  margin: 0;
  padding: 8px;
  align-self: stretch;
  box-sizing: border-box;
  background: #fff8cf;
  border: 0;
  border-left: 2px solid var(--ro-ink);
}

body.pg_spacecp .ro-usergroup-matrix--compare > #tba > li {
  width: 100%;
  min-height: 44px;
  padding: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: #fff;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  font-weight: 900;
  text-align: center;
}

body.pg_spacecp .ro-usergroup-matrix--compare > .tscr {
  width: 300px;
  overflow: visible;
  border-left: 2px solid var(--ro-ink);
}

body.pg_spacecp .ro-usergroup-matrix--compare > .tscr .tdat {
  width: 300px !important;
  margin: 0;
  table-layout: fixed;
  border-collapse: collapse;
}

body.pg_spacecp .creditl {
  margin: 0 0 18px;
  padding: 14px;
  display: grid;
  gap: 8px;
  background: #fff8cf;
  border: 2px solid var(--ro-ink);
}

body.pg_spacecp .creditl > li {
  min-width: 0;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

body.pg_spacecp .creditl > li + li {
  padding-top: 8px;
  border-top: 1px solid var(--ro-line);
}

body.pg_spacecp .ro-credit-summary {
  padding: 16px;
  gap: 12px;
  background: #fff8cf;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

body.pg_spacecp .ro-credit-summary > .ro-credit-item {
  min-height: 54px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #fff;
  border: 2px solid var(--ro-ink);
}

body.pg_spacecp .ro-credit-summary > .ro-credit-item + .ro-credit-item {
  padding-top: 10px;
}

body.pg_spacecp .ro-credit-summary .ro-credit-item > em {
  min-width: 72px;
  color: var(--ro-text);
  font-size: 14px;
  font-style: normal;
  font-weight: 900;
}

body.pg_spacecp .ro-credit-value {
  min-width: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
  padding: 8px 10px;
  box-sizing: border-box;
}

body.pg_spacecp .ro-credit-formula {
  min-width: 0;
  flex: 1 1 360px;
  color: #5f5868 !important;
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

body.pg_spacecp .ro-credit-formula u {
  color: var(--ro-violet);
  font-weight: 850;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
}

body.pg_spacecp .ro-credit-table-wrap {
  width: 100%;
  margin-top: 20px;
  overflow-x: auto;
  box-sizing: border-box;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
  scrollbar-color: var(--ro-violet) #eee9dc;
  scrollbar-width: thin;
}

body.pg_spacecp .ro-credit-table-wrap:focus-visible {
  outline: 3px solid var(--ro-blue);
  outline-offset: 3px;
}

body.pg_spacecp table.dt.ro-credit-log {
  min-width: 720px;
  margin: 0;
  border: 0;
  table-layout: fixed;
}

body.pg_spacecp table.dt.ro-credit-log caption {
  padding: 0;
  background: #eef7ff;
  border: 0;
  border-bottom: 2px solid var(--ro-ink);
}

body.pg_spacecp table.dt.ro-credit-log caption h2 {
  min-height: 54px;
  margin: 0 !important;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  box-sizing: border-box;
  color: var(--ro-text);
  font-size: 18px;
  font-weight: 950;
  text-align: left;
}

body.pg_spacecp table.dt.ro-credit-log caption h2 > a {
  order: 2;
  float: none;
  min-height: 36px;
  padding: 7px 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ro-text) !important;
  background: var(--ro-yellow);
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
}

body.pg_spacecp table.dt.ro-credit-log caption h2 > a:hover,
body.pg_spacecp table.dt.ro-credit-log caption h2 > a:focus-visible {
  color: #fff !important;
  background: var(--ro-violet);
}

body.pg_spacecp table.dt.ro-credit-log tr:first-of-type > th {
  color: #fff;
  background: var(--ro-violet);
  border-color: var(--ro-ink);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}

body.pg_spacecp table.dt.ro-credit-log tr > th:first-child,
body.pg_spacecp table.dt.ro-credit-log tr > td:first-child { width: 108px; }

body.pg_spacecp table.dt.ro-credit-log tr > th:nth-child(2),
body.pg_spacecp table.dt.ro-credit-log tr > td:nth-child(2),
body.pg_spacecp table.dt.ro-credit-log tr > th:nth-child(3),
body.pg_spacecp table.dt.ro-credit-log tr > td:nth-child(3) { width: 112px; }

body.pg_spacecp table.dt.ro-credit-log tr > th:last-child,
body.pg_spacecp table.dt.ro-credit-log tr > td:last-child { width: 150px; }

body.pg_spacecp table.dt.ro-credit-log td[colspan="5"] {
  padding: 0;
  background: #fffdf5;
}

body.pg_spacecp table.dt.ro-credit-log .emp::before {
  content: "\2726";
  margin-right: 10px;
  color: var(--ro-violet);
  font-size: 24px;
  line-height: 1;
}

/* Credit log: tabs, filters and history share one measured grid. */
body.pg_spacecp .ro-credit-log-tabs {
  min-height: 52px;
  margin: 0 0 16px;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  background: #fff8cf;
  border: 2px solid var(--ro-ink);
}

body.pg_spacecp .ro-credit-log-tabs .pipe { display: none; }

body.pg_spacecp .ro-credit-log-tabs > a {
  min-height: 36px;
  padding: 7px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ro-text) !important;
  background: #fff;
  border: 2px solid var(--ro-ink);
  font-size: 14px;
  font-weight: 850;
  line-height: 1;
}

body.pg_spacecp .ro-credit-log-tabs > a.a {
  color: #fff !important;
  background: var(--ro-violet);
  box-shadow: 2px 2px 0 var(--ro-ink);
}

body.pg_spacecp .ro-credit-log-tabs > a:hover,
body.pg_spacecp .ro-credit-log-tabs > a:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow);
}

body.pg_spacecp .ro-credit-filter {
  margin: 0 0 20px !important;
  padding: 16px;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #eef7ff;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

body.pg_spacecp .ro-credit-filter__table,
body.pg_spacecp .ro-credit-filter__table > tbody {
  width: 100%;
  display: block;
}

body.pg_spacecp .ro-credit-filter__table tr {
  width: 100%;
  display: grid;
  grid-template-columns: 86px minmax(170px, .8fr) 100px minmax(290px, 1.5fr);
  align-items: center;
  gap: 12px;
}

body.pg_spacecp .ro-credit-filter__table tr + tr {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--ro-line);
}

body.pg_spacecp .ro-credit-filter__table th,
body.pg_spacecp .ro-credit-filter__table td {
  width: auto !important;
  min-width: 0;
  padding: 0;
  text-align: left;
  vertical-align: middle;
}

body.pg_spacecp .ro-credit-filter__table th {
  color: var(--ro-text);
  font-size: 14px;
  font-weight: 900;
}

body.pg_spacecp .ro-credit-filter .ftid {
  width: 100%;
  display: block;
}

body.pg_spacecp .ro-credit-filter .ftid > a,
body.pg_spacecp .ro-credit-filter .ps,
body.pg_spacecp .ro-credit-filter .px {
  min-height: 42px;
  padding: 8px 11px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #fff;
  border: 2px solid var(--ro-ink) !important;
  border-radius: 0;
  box-shadow: 2px 2px 0 var(--ro-ink);
  font: inherit;
}

body.pg_spacecp .ro-credit-filter .ftid > a {
  width: 100% !important;
  min-width: 0 !important;
  position: relative;
  padding-right: 38px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.pg_spacecp .ro-credit-filter .ftid > a::after {
  content: "";
  position: absolute;
  right: 13px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--ro-ink);
  border-bottom: 2px solid var(--ro-ink);
  transform: translateY(-70%) rotate(45deg);
}

body.pg_spacecp .ro-credit-filter #exttype_ctrl:empty::before { content: "不限"; }
body.pg_spacecp .ro-credit-filter #income_ctrl:empty::before { content: "不限"; }
body.pg_spacecp .ro-credit-filter #optype_ctrl:empty::before { content: "请选择操作类型"; }

body.pg_spacecp .ro-credit-filter__dates {
  display: flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}

body.pg_spacecp .ro-credit-filter__dates .px {
  width: min(145px, 42%) !important;
  cursor: pointer;
}

body.pg_spacecp .ro-credit-filter .ftid > a:hover,
body.pg_spacecp .ro-credit-filter .ftid > a:focus-visible,
body.pg_spacecp .ro-credit-filter .px:focus {
  background: #fff8cf;
  outline: 3px solid var(--ro-blue);
  outline-offset: 2px;
}

body.pg_spacecp .ro-credit-filter__actions > th { visibility: hidden; }

body.pg_spacecp .ro-credit-filter__actions > td {
  grid-column: 2 / -1;
}

body.pg_spacecp .ro-credit-filter__actions .pn {
  min-width: 128px;
  min-height: 44px;
  padding: 9px 22px;
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
  border: 2px solid var(--ro-ink) !important;
  box-shadow: 3px 3px 0 var(--ro-ink) !important;
  font-size: 15px;
  font-weight: 900;
}

body.pg_spacecp .ro-credit-filter__actions .pn:hover,
body.pg_spacecp .ro-credit-filter__actions .pn:focus-visible {
  color: #fff !important;
  background: var(--ro-violet) !important;
}

body.pg_spacecp .ro-credit-history-wrap { margin-top: 0; }

body.pg_spacecp table.dt.ro-credit-history {
  width: 100%;
  min-width: 720px;
  margin: 0;
  table-layout: fixed;
  border: 0;
}

body.pg_spacecp table.dt.ro-credit-history tr:first-child > th {
  color: #fff;
  background: var(--ro-violet);
  border-color: var(--ro-ink);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}

body.pg_spacecp table.dt.ro-credit-history tr > th:first-child,
body.pg_spacecp table.dt.ro-credit-history tr > td:first-child { width: 108px; }

body.pg_spacecp table.dt.ro-credit-history tr > th:nth-child(2),
body.pg_spacecp table.dt.ro-credit-history tr > td:nth-child(2),
body.pg_spacecp table.dt.ro-credit-history tr > th:nth-child(3),
body.pg_spacecp table.dt.ro-credit-history tr > td:nth-child(3) { width: 112px; }

body.pg_spacecp table.dt.ro-credit-history tr > th:last-child,
body.pg_spacecp table.dt.ro-credit-history tr > td:last-child { width: 150px; }

body.pg_spacecp table.dt.ro-credit-history td[colspan] {
  width: auto;
  padding: 0;
  background: #fffdf5;
}

body.pg_spacecp table.dt.ro-credit-history .emp::before {
  content: "\2726";
  margin-right: 10px;
  color: var(--ro-violet);
  font-size: 24px;
  line-height: 1;
}

body.pg_spacecp table.dt {
  width: 100%;
  border-spacing: 0;
  border-collapse: separate;
  border: 2px solid var(--ro-ink);
}

body.pg_spacecp table.dt caption {
  padding: 12px 14px;
  text-align: left;
  background: #eef7ff;
  border: 2px solid var(--ro-ink);
  border-bottom: 0;
}

body.pg_spacecp table.dt th,
body.pg_spacecp table.dt td {
  padding: 11px 12px;
  border-right: 1px solid var(--ro-line);
  border-bottom: 1px solid var(--ro-line);
  text-align: left;
  vertical-align: middle;
}

body.pg_spacecp table.dt th:last-child,
body.pg_spacecp table.dt td:last-child { border-right: 0; }
body.pg_spacecp table.dt tr:last-child td { border-bottom: 0; }
body.pg_spacecp table.dt .emp {
  min-height: 92px;
  padding: 28px 16px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* Footer rows grow with their content; fixed 22px rows caused page-specific
 * link wrapping to overlap the diagnostics and copyright text. */
#ft.wp.ro-site-footer {
  grid-template-columns: minmax(240px, 1fr) minmax(360px, 1.55fr) minmax(240px, 1fr);
  align-items: center;
}

#ft.ro-site-footer #flk,
#ft.ro-site-footer #frt { grid-template-rows: auto auto; }

#ft.ro-site-footer #flk > p:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2px 6px;
}

#ft.ro-site-footer #flk .pipe { margin: 0 1px; }

@media (max-width: 980px) {
  #ft.wp.ro-site-footer { grid-template-columns: minmax(0, 1fr); }
  #ft.ro-site-footer .ro-site-footer__brand,
  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt {
    grid-column: 1;
    justify-self: stretch;
    text-align: center;
  }

  body.pg_spacecp #ct.ct2_a { grid-template-columns: 190px minmax(0, 1fr); }
}

@media (max-width: 680px) {
  .nfl .f_c #messagelogin .rfm tr {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 10px;
  }

  .nfl .f_c #messagelogin .rfm th {
    grid-column: 1;
    grid-row: 1;
    padding: 0;
    text-align: left;
  }

  .nfl .f_c #messagelogin .rfm td:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 2;
    padding: 0;
  }

  .nfl .f_c #messagelogin .rfm td.tipcol {
    grid-column: 2;
    grid-row: 1;
    padding: 0;
    text-align: right;
  }

  .nfl .f_c #messagelogin .rfm.bw0 th:empty { display: none; }
  .nfl .f_c #messagelogin .rfm.bw0 td:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .pgs > .pg,
  .pgs > .pgt {
    width: 100%;
    order: 2;
  }

  .pgs > .pgb,
  .pgs > .pgsbtn { order: 1; }

  .pgs > .pgb { margin-left: 0 !important; }

  body.pg_spacecp #ct.ct2_a {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  body.pg_spacecp #ct.ct2_a > .appl,
  body.pg_spacecp #ct.ct2_a > .mn { width: 100% !important; }

  body.pg_spacecp #ct.ct2_a > .appl .tbn > ul {
    display: flex;
    flex-wrap: wrap;
  }

  body.pg_spacecp table.dt {
    display: block;
    overflow-x: auto;
  }

  #ft.ro-site-footer .ro-site-footer__brand,
  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt { text-align: left; }

  #ft.ro-site-footer #flk > p:first-child { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  #scbar_type,
  #scbar_btn,
  #hd #nv li > a { transition: none !important; }
}

/* Public member profile: a structured identity header and readable facts. */
body.pg_space #uhd {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto 20px;
  overflow: visible;
  box-sizing: border-box;
  background: var(--ro-paper);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}

body.pg_space #uhd > .h {
  min-height: 126px;
  padding: 18px 20px;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 16px;
  row-gap: 8px;
  box-sizing: border-box;
  background: #fff8cf;
}

body.pg_space #uhd > .h .icn.avt {
  position: static;
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 76px;
  height: 76px;
  margin: 0;
}

body.pg_space #uhd > .h .icn.avt a,
body.pg_space #uhd > .h .icn.avt img {
  width: 76px;
  height: 76px;
  display: block;
  box-sizing: border-box;
}

body.pg_space #uhd > .h .icn.avt img {
  object-fit: cover;
  background: #fff;
  border: 3px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
}

body.pg_space #uhd > .h h2.mt {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  align-self: end;
  color: var(--ro-text);
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 950;
  line-height: 1.15;
}

body.pg_space #uhd > .h > p {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 10px;
  line-height: 1.45;
}

body.pg_space #uhd > .h > p > a {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 800;
}

body.pg_space #uhd > .h > p > a.showmenu {
  min-height: 34px;
  padding: 5px 9px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
}

body.pg_space #uhd > .h > p > a.showmenu:hover,
body.pg_space #uhd > .h > p > a.showmenu:focus-visible {
  background: var(--ro-yellow);
}

body.pg_space #uhd > ul.tb.cl {
  min-height: 0;
  margin: 0;
  padding: 10px !important;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  box-sizing: border-box;
  background: #eef7ff;
  border-top: 2px solid var(--ro-ink);
}

body.pg_space #uhd > ul.tb.cl > li {
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  float: none;
  border: 0 !important;
}

body.pg_space #uhd > ul.tb.cl > li > a {
  min-height: 40px;
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-weight: 850;
}

body.pg_space #uhd > ul.tb.cl > li.a > a {
  color: #fff !important;
  background: var(--ro-violet);
}

body.pg_space #uhd > ul.tb.cl > li > a:hover,
body.pg_space #uhd > ul.tb.cl > li > a:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow);
}

body.pg_space #uhd .p_pop {
  padding: 6px;
  background: var(--ro-paper);
  border: 3px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

body.pg_space #uhd .p_pop li + li { border-top: 1px solid var(--ro-line); }
body.pg_space #uhd .p_pop a {
  min-height: 36px;
  padding: 7px 9px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}
body.pg_space #uhd .p_pop a:hover,
body.pg_space #uhd .p_pop a:focus-visible { background: var(--ro-yellow); }

body.pg_space #ct.ct1 {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

body.pg_space #ct.ct1 > .mn,
body.pg_space #ct.ct1 > .mn > .bm.bw0 { width: 100%; min-width: 0; }

body.pg_space #ct.ct1 > .mn > .bm.bw0 {
  padding: 0;
  overflow: hidden;
  background: var(--ro-paper);
  border: var(--ro-border) !important;
  box-shadow: var(--ro-shadow-sm);
}

body.pg_space #ct.ct1 .bm_c:has(> .u_profile) { padding: 18px; }
body.pg_space #ct.ct1 .u_profile { display: grid; gap: 16px; }

body.pg_space #ct.ct1 .u_profile > .pbm,
body.pg_space #ct.ct1 .u_profile > #psts {
  margin: 0 !important;
  padding: 16px !important;
  overflow: hidden;
  box-sizing: border-box;
  background: #fff;
  border: 2px solid var(--ro-ink) !important;
}

body.pg_space #ct.ct1 .u_profile > .pbm:nth-of-type(even) { background: #f2eeff; }

body.pg_space #ct.ct1 .u_profile h2.mbn {
  margin: -16px -16px 14px !important;
  padding: 11px 14px;
  color: var(--ro-text);
  background: var(--ro-yellow);
  border-bottom: 2px solid var(--ro-ink);
  font-size: 18px;
  font-weight: 950;
  line-height: 1.3;
}

body.pg_space #ct.ct1 .u_profile h2.mbn .xw0 {
  margin-left: 8px;
  color: #51495c;
  font-size: 13px;
}

body.pg_space #ct.ct1 .u_profile .pf_l {
  margin: 0 0 12px;
  padding: 0 !important;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
}

body.pg_space #ct.ct1 .u_profile .pf_l:last-child { margin-bottom: 0; }

body.pg_space #ct.ct1 .u_profile .pf_l > li {
  min-width: 0;
  min-height: 42px;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: minmax(96px, 132px) minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  background: #fffdf5;
  border: 1px solid var(--ro-line);
}

body.pg_space #ct.ct1 .u_profile .pf_l > li > em {
  color: #554d5d;
  font-weight: 850;
  font-style: normal;
}

body.pg_space #ct.ct1 .u_profile > .pbm > ul.cl:not(.pf_l) {
  margin: 0;
  padding: 10px 12px !important;
  background: #eef7ff;
  border: 1px solid var(--ro-line);
}

body.pg_space #ct.ct1 .u_profile > .pbm > ul.cl:not(.pf_l) > li {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 8px;
  line-height: 1.55;
}

body.pg_space #ct.ct1 .u_profile a {
  font-weight: 800;
  overflow-wrap: anywhere;
}

/* The migrated 99Max friend-link record references a file that is not part of
 * X5. Keep the link and description, and provide a local CSS brand tile. */
.lk_logo:has(> img[src$="99Max.gif"]) {
  min-height: 76px;
  padding: 10px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
}

.lk_logo > img[src$="99Max.gif"] { display: none !important; }
.lk_logo:has(> img[src$="99Max.gif"])::before {
  content: "BWRO";
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  color: #fff;
  font: 950 12px/1 Arial, sans-serif;
  letter-spacing: .04em;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
}

.lk_logo:has(> img[src$="99Max.gif"]) > .lk_content {
  min-width: 0;
  margin: 0;
  float: none;
}

.nfl .f_c #messagelogin .rfm.mbw th,
.nfl .f_c #messagelogin .rfm.mbw td:nth-child(3) {
  display: none !important;
}

.nfl .f_c #messagelogin .rfm.mbw td:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
}

@media (max-width: 680px) {
  body.pg_space #uhd,
  body.pg_space #ct.ct1 { width: calc(100% - 20px); }

  body.pg_space #uhd > .h {
    grid-template-columns: 64px minmax(0, 1fr);
    min-height: 104px;
    padding: 14px;
    column-gap: 12px;
  }

  body.pg_space #uhd > .h .icn.avt,
  body.pg_space #uhd > .h .icn.avt a,
  body.pg_space #uhd > .h .icn.avt img {
    width: 60px;
    height: 60px;
  }

  body.pg_space #uhd > .h h2.mt { font-size: 24px; }
  body.pg_space #uhd > .h > p { grid-column: 1 / -1; grid-row: 3; }
  body.pg_space #uhd > ul.tb.cl { padding: 8px !important; gap: 6px; }
  body.pg_space #uhd > ul.tb.cl > li { flex: 1 1 calc(50% - 6px); }
  body.pg_space #uhd > ul.tb.cl > li > a { width: 100%; justify-content: center; }

  body.pg_space #ct.ct1 .bm_c:has(> .u_profile) { padding: 10px; }
  body.pg_space #ct.ct1 .u_profile .pf_l { grid-template-columns: 1fr; }
  body.pg_space #ct.ct1 .u_profile .pf_l > li {
    grid-template-columns: minmax(82px, 112px) minmax(0, 1fr);
  }

  .nfl .f_c #messagelogin .rfm.mbw td:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .lk_logo:has(> img[src$="99Max.gif"]) {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 10px;
  }

  .lk_logo:has(> img[src$="99Max.gif"])::before {
    width: 46px;
    height: 46px;
    font-size: 10px;
  }
}

/* View-thread post header: floor, author metadata and jump control share one
 * measured row instead of mixing legacy floats with modern form dimensions. */
#nv_forum.pg_viewthread #postlist .plc > .pi {
  min-height: 58px;
  margin: 0 0 18px;
  padding: 8px 0 12px;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) minmax(238px, auto);
  grid-template-areas: "floor meta jump";
  align-items: center;
  gap: 10px 14px;
  overflow: visible;
  border-bottom: 2px solid var(--ro-ink);
}

#nv_forum.pg_viewthread #postlist .plc > .pi::after {
  display: none;
  content: none;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > strong {
  grid-area: floor;
  min-width: 46px;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > strong > a[id^="postnum"] {
  min-width: 44px;
  min-height: 38px;
  padding: 6px 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #f2eeff;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-weight: 950;
  line-height: 1;
  text-decoration: none;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > strong > a[id^="postnum"] em,
#nv_forum.pg_viewthread #postlist .plc > .pi > strong > a[id^="postnum"] sup {
  color: inherit;
  font-size: 14px;
  font-style: normal;
  line-height: 1;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > .pti {
  grid-area: meta;
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 0;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > .pti .authi {
  min-height: 38px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 8px;
  color: #51495c;
  line-height: 1.45;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > .pti .authicn {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > .pti .authi a {
  color: var(--ro-link) !important;
  font-weight: 800;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > .pti .authi a:hover,
#nv_forum.pg_viewthread #postlist .plc > .pi > .pti .authi a:focus-visible {
  color: var(--ro-link-hover) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > #fj {
  grid-area: jump;
  min-width: 238px;
  min-height: 42px;
  margin: 0;
  padding: 4px 5px 4px 10px;
  float: none;
  display: grid;
  grid-template-columns: auto 52px 34px;
  align-items: center;
  gap: 7px;
  box-sizing: border-box;
  background: #eef7ff;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
}

#nv_forum.pg_viewthread #postlist .plc > .pi > #fj > label {
  margin: 0;
  float: none;
  color: var(--ro-text);
  font-weight: 850;
  line-height: 1.2;
  white-space: nowrap;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > #fj > input.px {
  width: 52px !important;
  height: 32px !important;
  min-height: 32px;
  margin: 0;
  padding: 4px 6px;
  float: none;
  box-sizing: border-box;
  background: #fff;
  text-align: center;
  font-size: 14px;
  font-weight: 850;
  line-height: 20px;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > #fj > #fj_btn {
  position: relative;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  float: none;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  overflow: hidden;
  color: #fff !important;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  font-size: 0;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > #fj > #fj_btn::before {
  display: none !important;
  content: none !important;
}

#nv_forum.pg_viewthread #postlist .plc > .pi > #fj > #fj_btn::after {
  content: "";
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border-right: 3px solid currentColor;
  border-bottom: 3px solid currentColor;
  transform: rotate(45deg);
}

#nv_forum.pg_viewthread #postlist .plc > .pi > #fj > #fj_btn:hover,
#nv_forum.pg_viewthread #postlist .plc > .pi > #fj > #fj_btn:focus-visible {
  color: var(--ro-text) !important;
  background: var(--ro-yellow);
  outline: 3px solid var(--ro-blue);
  outline-offset: 2px;
}

@media (max-width: 760px) {
  #nv_forum.pg_viewthread #postlist .plc > .pi {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "floor meta"
      "jump jump";
    align-items: start;
  }

  #nv_forum.pg_viewthread #postlist .plc > .pi > #fj {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(82px, 1fr) 56px 36px;
  }
}

@media (max-width: 430px) {
  #nv_forum.pg_viewthread #postlist .plc > .pi {
    gap: 9px 10px;
  }

  #nv_forum.pg_viewthread #postlist .plc > .pi > .pti .authi {
    gap: 4px 6px;
  }

  #nv_forum.pg_viewthread #postlist .plc > .pi > .pti .authi .pipe {
    display: none;
  }
}

/* Search bar v3: every control uses one 48px baseline and one tactile border
 * treatment.  Explicit grid areas keep X5's table cells in a stable order. */
#hd #scbar {
  min-height: 80px;
  padding: 14px 18px;
  box-sizing: border-box;
  background: var(--ro-paper);
}

#scbar_form > table > tbody > tr {
  grid-template-columns: minmax(240px, 1.4fr) 112px 112px minmax(220px, .9fr);
  grid-template-areas: "query type submit hot";
  align-items: stretch;
  gap: 12px;
}

#scbar_form .scbar_txt_td { grid-area: query; }
#scbar_form .scbar_type_td { grid-area: type; }
#scbar_form .scbar_btn_td { grid-area: submit; }
#scbar_form .scbar_hot_td { grid-area: hot; }

#scbar_form .scbar_txt_td,
#scbar_form .scbar_type_td,
#scbar_form .scbar_btn_td,
#scbar_form .scbar_hot_td {
  min-width: 0;
  min-height: 48px;
  display: flex;
  align-items: stretch;
  overflow: visible;
}

#scbar_txt,
#scbar_type,
#scbar_btn {
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  margin: 0 !important;
  box-sizing: border-box;
  border: 3px solid var(--ro-ink) !important;
  box-shadow: 3px 3px 0 var(--ro-ink) !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
}

#scbar_txt {
  padding: 0 14px !important;
  color: var(--ro-text) !important;
  background: #fff !important;
  font-weight: 750;
}

#scbar_txt::placeholder {
  color: #6a6270;
  opacity: 1;
  font-weight: 750;
}

#scbar_txt:hover { background: #fffdf5 !important; }
#scbar_txt:focus {
  background: #fff !important;
  outline: 3px solid var(--ro-blue);
  outline-offset: 2px;
  box-shadow: 3px 3px 0 var(--ro-violet) !important;
}

#scbar_type {
  padding: 0 12px !important;
  justify-content: space-between;
  white-space: nowrap;
}

#scbar_btn {
  padding: 0 14px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

#scbar_btn > strong {
  display: block;
  line-height: 1.2 !important;
}

#scbar_hot {
  width: 100%;
  min-height: 48px;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  align-content: center;
  flex-wrap: wrap;
  gap: 5px 10px;
  box-sizing: border-box;
  overflow: hidden;
  background: #fff8cf;
  border: 2px solid var(--ro-ink);
  line-height: 1.35;
}

#scbar_hot strong,
#scbar_hot a { white-space: nowrap; }

#scbar_hot a:hover,
#scbar_hot a:focus-visible {
  color: #fff !important;
  background: var(--ro-violet);
  outline: 2px solid var(--ro-violet);
  outline-offset: 1px;
}

@media (max-width: 980px) and (min-width: 721px) {
  #scbar_form > table > tbody > tr {
    grid-template-columns: minmax(220px, 1fr) 108px 108px;
    grid-template-areas:
      "query type submit"
      "hot hot hot";
  }

  #scbar_hot { min-height: 44px; }
}

@media (max-width: 720px) {
  #hd #scbar {
    min-height: 0;
    padding: 12px;
  }

  #scbar_form > table > tbody > tr {
    grid-template-columns: minmax(0, 1fr) 104px;
    grid-template-areas:
      "query query"
      "type submit"
      "hot hot";
    gap: 10px;
  }

  #scbar_hot {
    min-height: 42px;
    padding: 7px 4px 0;
    background: transparent;
    border: 0;
    border-top: 2px solid var(--ro-line);
  }
}

@media (max-width: 380px) {
  #scbar_form > table > tbody > tr {
    grid-template-columns: minmax(0, 1fr) 92px;
    gap: 8px;
  }

  #scbar_type,
  #scbar_btn { padding-right: 9px !important; padding-left: 9px !important; }
}

/* Footer v4: three equal-height zones with true two-axis centring.  Content
 * height, translated labels and debug text can grow without shifting rows. */
#ft.wp.ro-site-footer {
  width: min(1180px, calc(100% - 32px));
  max-width: 1180px;
  min-height: 116px;
  margin: 42px auto 24px;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(380px, 1.35fr) minmax(260px, 1fr);
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  box-sizing: border-box;
  color: var(--ro-text);
  background: var(--ro-yellow);
  border: var(--ro-border);
  box-shadow: var(--ro-shadow-sm);
}

#ft.ro-site-footer .ro-site-footer__brand,
#ft.ro-site-footer #flk,
#ft.ro-site-footer #frt {
  min-width: 0;
  min-height: 110px;
  margin: 0;
  padding: 16px 18px;
  float: none;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-content: center !important;
  box-sizing: border-box;
  color: var(--ro-text);
  text-align: center !important;
}

#ft.ro-site-footer .ro-site-footer__brand {
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 12px;
}

#ft.ro-site-footer .ro-site-footer__brand img {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: block;
  object-fit: contain;
}

#ft.ro-site-footer .ro-site-footer__brand > span {
  min-width: 0;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
}

#ft.ro-site-footer .ro-site-footer__brand strong,
#ft.ro-site-footer .ro-site-footer__brand small {
  width: 100%;
  display: block;
  text-align: center;
}

#ft.ro-site-footer .ro-site-footer__brand strong {
  font-size: 18px;
  font-weight: 950;
  line-height: 1.2;
}

#ft.ro-site-footer .ro-site-footer__brand small {
  font: 800 10px/1.35 Consolas, "Microsoft YaHei UI", monospace;
  letter-spacing: .06em;
  overflow-wrap: anywhere;
}

#ft.ro-site-footer #flk {
  flex-direction: column;
  gap: 8px;
  border-right: 2px solid var(--ro-ink);
  border-left: 2px solid var(--ro-ink);
}

#ft.ro-site-footer #frt {
  flex-direction: column;
}

#ft.ro-site-footer #flk > p,
#ft.ro-site-footer #frt > p {
  width: 100%;
  min-width: 0;
  min-height: 0;
  margin: 0 !important;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  align-content: center;
  flex-wrap: wrap;
  gap: 3px 7px;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  text-align: center !important;
  line-height: 1.55;
}

#ft.ro-site-footer #flk > p.xs0 {
  color: #4e4657;
  font-size: 11px;
  line-height: 1.45;
}

#ft.ro-site-footer #debuginfo {
  display: inline;
  color: inherit;
}

#ft.ro-site-footer .ro-site-footer__copyright {
  font-size: 13px;
  font-weight: 900;
  line-height: 1.5;
  text-align: center !important;
}

#ft.ro-site-footer .pipe {
  margin: 0 !important;
  opacity: .55;
}

#ft.ro-site-footer a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 3px;
  text-align: center;
  line-height: 1.35;
}

@media (max-width: 980px) {
  #ft.wp.ro-site-footer {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  #ft.ro-site-footer .ro-site-footer__brand,
  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt {
    grid-column: 1;
    min-height: 86px;
    padding: 14px 16px;
    text-align: center !important;
  }

  #ft.ro-site-footer #flk {
    border-right: 0;
    border-left: 0;
    border-top: 2px solid var(--ro-ink);
    border-bottom: 2px solid var(--ro-ink);
  }
}

@media (max-width: 560px) {
  #ft.wp.ro-site-footer {
    width: calc(100% - 20px);
    margin-top: 30px;
  }

  #ft.ro-site-footer .ro-site-footer__brand {
    flex-direction: column;
    gap: 8px;
  }

  #ft.ro-site-footer .ro-site-footer__brand,
  #ft.ro-site-footer #flk,
  #ft.ro-site-footer #frt {
    min-height: 0;
    padding: 16px 12px;
  }
}

/* Rank-list empty and cache states: explicit, font-independent icons replace
 * the legacy dzicon private-use glyph that rendered as an empty square. */
#nv_misc.pg_ranklist .mn .emp {
  min-height: 156px;
  margin: 16px 0 12px;
  padding: 28px 20px !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #fff8cf;
  border: 2px dashed var(--ro-ink) !important;
  font-size: 16px;
  font-weight: 850;
  line-height: 1.6;
  text-align: center;
}

#nv_misc.pg_ranklist .mn .emp::before {
  content: "\2726" !important;
  width: 42px;
  height: 42px;
  margin: 0 !important;
  display: grid !important;
  place-items: center;
  box-sizing: border-box;
  color: #fff;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  box-shadow: 3px 3px 0 var(--ro-ink);
  font-family: Arial, sans-serif !important;
  font-size: 24px;
  font-weight: 950;
  line-height: 1;
}

#nv_misc.pg_ranklist .mn .notice {
  min-height: 0;
  margin: 12px 0 0;
  padding: 16px 18px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #eaf6ff;
  border: 2px solid var(--ro-ink) !important;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.55;
  text-align: center;
}

#nv_misc.pg_ranklist .mn .notice::before {
  content: "i" !important;
  position: static !important;
  width: 30px;
  height: 30px;
  margin: 0 !important;
  display: inline-flex !important;
  flex: 0 0 30px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: var(--ro-ink) !important;
  background: #72c5f5;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-family: Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 950;
  font-style: normal;
  line-height: 1 !important;
}

@media (max-width: 560px) {
  #nv_misc.pg_ranklist .mn .emp {
    min-height: 132px;
    padding: 24px 16px !important;
  }

  #nv_misc.pg_ranklist .mn .notice {
    padding: 14px !important;
    align-items: flex-start;
    text-align: left;
  }
}

/* Shared tbn sidebar header: all Discuz side-navigation titles own the full
 * component width. For .appl wrappers, compensate their legacy 10px gutter
 * so the colored header reaches both outer edges without changing markup. */
.tbn {
  width: 100% !important;
  padding: 0;
  box-sizing: border-box;
}

.appl > .tbn {
  width: calc(100% + 20px) !important;
  margin: -6px -10px 0 !important;
}

.tbn > h2.mt.bbda {
  width: 100% !important;
  min-height: 52px;
  margin: 0;
  padding: 12px 14px !important;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  color: var(--ro-text);
  background: var(--ro-yellow) !important;
  border: 0 !important;
  border-bottom: 2px solid var(--ro-ink) !important;
  font-size: 17px;
  font-weight: 950;
  line-height: 1.35;
}

/* Search type chevron: override the baseline-aligned global .showmenu arrow.
 * A CSS triangle is a stable flex item and stays centred at every font size. */
#scbar_type::after {
  content: "" !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 0 0 8px !important;
  display: block !important;
  flex: 0 0 auto;
  align-self: center;
  box-sizing: border-box;
  border-top: 6px solid currentColor !important;
  border-right: 5px solid transparent !important;
  border-bottom: 0 !important;
  border-left: 5px solid transparent !important;
  vertical-align: middle !important;
  transform: none !important;
  transition: border-color 120ms ease;
}

#scbar_type:active::after {
  transform: none !important;
}

/* Forum category collapse control.  The legacy tg_* glyphs depend on the
 * optional dzicon font; draw the minus/plus with CSS so they cannot go missing. */
.ro-board-category > .bm_h {
  display: flex;
  align-items: center;
  gap: 12px;
  overflow: visible;
}

.ro-board-category > .bm_h > h2 {
  min-width: 0;
  margin: 0;
  flex: 1 1 auto;
  line-height: 1.35;
}

.ro-board-category > .bm_h > .o {
  width: 36px !important;
  height: 36px;
  margin: 0 0 0 auto;
  display: grid;
  flex: 0 0 36px;
  order: 2;
  place-items: center;
  float: none !important;
}

.ro-board-category > .bm_h > .o > em {
  position: relative;
  width: 32px !important;
  height: 32px !important;
  margin: 0 !important;
  display: block;
  float: none !important;
  box-sizing: border-box;
  color: var(--ro-ink) !important;
  background: var(--ro-yellow) !important;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  cursor: pointer;
  font: 0/0 sans-serif !important;
  transition: background-color 120ms ease, transform 120ms ease,
    box-shadow 120ms ease;
}

.ro-board-category > .bm_h > .o > em::before,
.ro-board-category > .bm_h > .o > em::after {
  content: "" !important;
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  background: var(--ro-ink) !important;
  border: 0 !important;
  transform: translate(-50%, -50%);
}

.ro-board-category > .bm_h > .o > em::before {
  width: 14px;
  height: 3px;
}

.ro-board-category > .bm_h > .o > em::after {
  width: 3px;
  height: 14px;
}

.ro-board-category > .bm_h > .o > em.tg_no::after { display: none; }

.ro-board-category > .bm_h > .o > em:hover {
  background: #fff !important;
}

.ro-board-category > .bm_h > .o > em:active {
  transform: translate(2px, 2px);
  box-shadow: none;
}

/* Category directory page: keep the legacy four-column table as rows.  The
 * forum home uses .fl_g cards, so this explicit variant prevents those grid
 * rules from flattening the directory into one horizontal strip. */
.ro-forum-index--category .mn {
  grid-template-columns: minmax(0, 1fr);
}

.ro-forum-index--category .mn > .fl {
  grid-column: 1 / -1;
  width: 100%;
}

.ro-board-category--list > .bm_c { overflow: hidden; }

.ro-board-category--list .fl_tb {
  width: 100%;
  display: table !important;
  table-layout: fixed;
  border-collapse: collapse;
}

.ro-board-category--list .fl_tb > tbody {
  width: 100%;
  display: table-row-group !important;
}

.ro-board-category--list .fl_tb > tbody > tr {
  width: auto;
  display: table-row !important;
}

.ro-board-category--list .fl_tb > tbody > tr:empty {
  display: none !important;
}

.ro-board-category--list .fl_tb > tbody > tr > td {
  padding: 16px 14px;
  box-sizing: border-box;
  vertical-align: middle;
  color: var(--ro-text);
  background: var(--ro-paper);
  border-bottom: 2px solid var(--ro-ink);
  transition: background-color 120ms ease;
}

.ro-board-category--list .fl_tb > tbody > tr:nth-last-child(2) > td {
  border-bottom: 0;
}

.ro-board-category--list .fl_tb > tbody > tr:hover > td,
.ro-board-category--list .fl_tb > tbody > tr:focus-within > td {
  background: #fff3ad;
}

.ro-board-category--list td.fl_icn {
  width: 86px !important;
  padding-right: 10px !important;
  padding-left: 16px !important;
}

.ro-board-category--list td.fl_icn > a {
  width: 56px;
  height: 56px;
  margin: 0;
  box-shadow: 3px 3px 0 var(--ro-ink);
}

.ro-board-category--list td.fl_icn img {
  width: 56px !important;
  height: 56px !important;
}

.ro-board-category--list .fl_tb > tbody > tr > td:nth-child(2) {
  min-width: 0;
  padding-left: 8px;
}

.ro-board-category--list td h2 {
  margin: 0;
  font-size: 19px;
  font-weight: 950;
  line-height: 1.35;
}

.ro-board-category--list td h2 a {
  color: var(--ro-text) !important;
  text-decoration: none;
}

.ro-board-category--list td h2 a:hover,
.ro-board-category--list td h2 a:focus-visible,
.ro-board-category--list .fl_by a:hover,
.ro-board-category--list .fl_by a:focus-visible {
  color: var(--ro-violet) !important;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.ro-board-category--list td.fl_i {
  width: 132px;
  padding-right: 10px;
  padding-left: 10px;
  text-align: center;
  white-space: nowrap;
}

.ro-board-category--list .fl_i > span {
  min-width: 40px;
  padding: 6px 8px;
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  color: var(--ro-text) !important;
  background: #fff;
  border: 2px solid var(--ro-ink);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.1;
}

.ro-board-category--list .fl_i > span + span {
  margin-left: -2px;
  background: #f2eeff;
}

.ro-board-category--list td.fl_by {
  width: 43%;
  padding-right: 18px;
  padding-left: 18px;
}

.ro-board-category--list .fl_by > div {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
}

.ro-board-category--list .fl_by > div > a {
  display: block;
  overflow: hidden;
  color: var(--ro-link) !important;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ro-board-category--list .fl_by cite {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 8px;
  color: #655e6d;
  font-size: 12px;
  font-style: normal;
  line-height: 1.35;
}

.ro-board-category--list .fl_by cite a {
  min-width: 0;
  overflow: hidden;
  color: var(--ro-text) !important;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .ro-board-category--list .fl_tb,
  .ro-board-category--list .fl_tb > tbody {
    display: block !important;
  }

  .ro-board-category--list .fl_tb > tbody > tr:not(:empty) {
    padding: 14px;
    display: grid !important;
    grid-template-columns: 66px minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 6px 12px;
    background: var(--ro-paper);
    border-bottom: 2px solid var(--ro-ink);
  }

  .ro-board-category--list .fl_tb > tbody > tr:nth-last-child(2) {
    border-bottom: 0;
  }

  .ro-board-category--list .fl_tb > tbody > tr:not(:empty):hover,
  .ro-board-category--list .fl_tb > tbody > tr:not(:empty):focus-within {
    background: #fff3ad;
  }

  .ro-board-category--list .fl_tb > tbody > tr > td {
    width: auto !important;
    padding: 0 !important;
    display: block !important;
    background: transparent !important;
    border: 0 !important;
  }

  .ro-board-category--list td.fl_icn {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .ro-board-category--list .fl_tb > tbody > tr > td:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
  }

  .ro-board-category--list td.fl_i {
    grid-column: 3;
    grid-row: 1;
  }

  .ro-board-category--list td.fl_by {
    grid-column: 2 / -1;
    grid-row: 2;
  }

  .ro-board-category--list .fl_by cite { gap: 2px 6px; }
}

@media (max-width: 520px) {
  .ro-board-category--list .fl_tb > tbody > tr:not(:empty) {
    grid-template-columns: 52px minmax(0, 1fr);
  }

  .ro-board-category--list td.fl_i {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }

  .ro-board-category--list td.fl_by {
    grid-column: 1 / -1;
    grid-row: 3;
    padding-top: 8px !important;
  }

  .ro-board-category--list td h2 { font-size: 17px; }
  .ro-board-category--list .fl_i > span { min-width: 36px; padding: 5px 6px; }
}

/* SpaceCP profile: navigation stays in the narrow left rail and the profile
 * form owns the main column.  The source order is main first, nav second. */
body.pg_spacecp #ct.ct2_a > .appl {
  grid-column: 1;
  grid-row: 1;
}

body.pg_spacecp #ct.ct2_a > .mn {
  grid-column: 2;
  grid-row: 1;
}

body.pg_spacecp .mn > .bm > h1.mt {
  min-height: 54px;
  display: flex !important;
  align-items: center;
  box-sizing: border-box;
  font-size: 23px;
  line-height: 1.25;
}

body.pg_spacecp .mn ul.tb.cl:not(:has(> li)) {
  min-height: 0;
  margin: 0;
  padding: 0;
  display: none;
  border: 0;
}

body.pg_spacecp #frame_profile + form {
  width: 100%;
  margin: 0;
}

body.pg_spacecp #profilelist {
  width: 100%;
  margin: 0;
  table-layout: fixed;
  border-spacing: 0;
  border-collapse: separate;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
}

body.pg_spacecp #profilelist tr > th,
body.pg_spacecp #profilelist tr > td {
  padding: 16px;
  box-sizing: border-box;
  vertical-align: middle;
  border-right: 1px solid var(--ro-line);
  border-bottom: 1px solid var(--ro-line);
  line-height: 1.55;
}

body.pg_spacecp #profilelist tr > *:last-child { border-right: 0; }
body.pg_spacecp #profilelist tr:last-child > * { border-bottom: 0; }

body.pg_spacecp #profilelist th {
  width: 176px;
  color: var(--ro-text);
  background: #f2eeff;
  font-size: 14px;
  font-weight: 900;
  text-align: right;
}

body.pg_spacecp #profilelist td {
  min-width: 0;
  color: var(--ro-text);
  background: var(--ro-paper);
  font-size: 15px;
  overflow-wrap: anywhere;
}

body.pg_spacecp #profilelist td.p {
  width: 174px;
  background: #eef7ff;
}

body.pg_spacecp #profilelist .ro-profile-identity__value {
  position: relative;
  padding-left: 76px;
  font-size: 18px;
  font-weight: 950;
  letter-spacing: .01em;
}

body.pg_spacecp #profilelist .ro-profile-identity__value::before {
  content: "ID";
  position: absolute;
  left: 16px;
  top: 50%;
  width: 40px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--ro-violet);
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  transform: translateY(-50%);
}

body.pg_spacecp #profilelist .ro-profile-identity:hover > th,
body.pg_spacecp #profilelist .ro-profile-identity:hover > td {
  background: #eef7ff;
}

body.pg_spacecp #profilelist .ro-profile-actions > td {
  min-height: 78px;
  padding: 18px 20px;
  text-align: center;
  background: #fff8cf;
}

body.pg_spacecp #profilelist .px,
body.pg_spacecp #profilelist .pt,
body.pg_spacecp #profilelist select {
  width: min(100%, 620px);
  min-height: 44px;
  padding: 9px 11px;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #fff;
  border: 2px solid var(--ro-ink);
  border-radius: 0;
  box-shadow: 2px 2px 0 var(--ro-ink);
  font: inherit;
}

body.pg_spacecp #profilelist .pt {
  min-height: 108px;
  resize: vertical;
}

body.pg_spacecp #profilelist .px:focus,
body.pg_spacecp #profilelist .pt:focus,
body.pg_spacecp #profilelist select:focus {
  outline: 3px solid var(--ro-blue);
  outline-offset: 2px;
}

body.pg_spacecp #profilelist .d,
body.pg_spacecp #profilelist [id^="showerror_"] {
  margin-top: 8px;
  color: #5f5868;
  font-size: 12px;
  line-height: 1.5;
}

body.pg_spacecp #profilelist [id^="showerror_"].rq {
  color: var(--ro-danger, #b42318);
  font-weight: 800;
}

body.pg_spacecp #profilesubmitbtn {
  width: auto !important;
  min-width: 128px;
  min-height: 48px;
  padding: 10px 24px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ro-text) !important;
  background: var(--ro-yellow) !important;
  border: 3px solid var(--ro-ink) !important;
  border-radius: 0;
  box-shadow: 4px 4px 0 var(--ro-ink) !important;
  font-size: 16px;
  font-weight: 950;
  line-height: 1;
  cursor: pointer;
  transition: color 120ms ease, background-color 120ms ease,
    transform 120ms ease, box-shadow 120ms ease;
}

body.pg_spacecp #profilesubmitbtn strong {
  color: inherit !important;
  font: inherit;
}

body.pg_spacecp #profilesubmitbtn:hover,
body.pg_spacecp #profilesubmitbtn:focus-visible {
  color: #fff !important;
  background: var(--ro-violet) !important;
}

body.pg_spacecp #profilesubmitbtn:focus-visible {
  outline: 3px solid var(--ro-blue);
  outline-offset: 3px;
}

body.pg_spacecp #profilesubmitbtn:active {
  transform: translate(4px, 4px);
  box-shadow: none !important;
}

body.pg_spacecp #submit_result {
  min-height: 24px;
  margin-left: 14px;
  display: inline-flex;
  align-items: center;
  font-weight: 850;
}

/* User-group forum permissions: readable matrix with font-independent state
 * marks. The wrapper owns narrow-screen overflow, so the page never clips. */
body.pg_spacecp .ro-permission-table-wrap {
  width: 100%;
  margin: 0 0 16px;
  overflow-x: auto;
  box-sizing: border-box;
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 4px 4px 0 var(--ro-ink);
  scrollbar-color: var(--ro-violet) #eee9dc;
  scrollbar-width: thin;
}

body.pg_spacecp .ro-permission-table-wrap:focus-visible {
  outline: 3px solid var(--ro-blue);
  outline-offset: 3px;
}

body.pg_spacecp .ro-permission-table {
  width: 100%;
  min-width: 760px;
  margin: 0 !important;
  border: 0 !important;
  border-spacing: 0;
  border-collapse: separate;
  table-layout: fixed;
  color: var(--ro-text);
  background: var(--ro-paper);
}

body.pg_spacecp .ro-permission-table th,
body.pg_spacecp .ro-permission-table td {
  height: 54px;
  padding: 10px 8px;
  box-sizing: border-box;
  vertical-align: middle;
  text-align: center;
  border: 0;
  border-right: 1px solid var(--ro-line);
  border-bottom: 1px solid var(--ro-line);
  line-height: 1.4;
}

body.pg_spacecp .ro-permission-table tr > *:last-child { border-right: 0; }
body.pg_spacecp .ro-permission-table tr:last-child > * { border-bottom: 0; }

body.pg_spacecp .ro-permission-table tr:first-child > th,
body.pg_spacecp .ro-permission-table tr:first-child > td {
  height: 58px;
  color: #fff;
  background: var(--ro-violet);
  border-color: var(--ro-ink);
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}

body.pg_spacecp .ro-permission-table th:first-child {
  width: 210px;
  padding-left: 16px !important;
  text-align: left;
  font-weight: 900;
}

body.pg_spacecp .ro-permission-table tr:not(:first-child) > th {
  background: #fff8cf;
}

body.pg_spacecp .ro-permission-table tr.alt:not(:first-child) > th {
  background: #ffe990;
}

body.pg_spacecp .ro-permission-table tr:not(:first-child) > td {
  background: #fff;
}

body.pg_spacecp .ro-permission-table tr.alt:not(:first-child) > td {
  background: #f2eeff;
}

body.pg_spacecp .ro-permission-table tr:not(:first-child):hover > th,
body.pg_spacecp .ro-permission-table tr:not(:first-child):hover > td {
  background: #eaf7ff;
}

body.pg_spacecp .ro-permission-table th a {
  color: var(--ro-text) !important;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

body.pg_spacecp .ro-permission-table th a:hover,
body.pg_spacecp .ro-permission-table th a:focus-visible {
  color: var(--ro-violet) !important;
}

/* Replace the legacy icon-font private-use glyphs with dependable symbols. */
.fico-valid,
.fico-invalid {
  width: 25px;
  height: 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border: 2px solid var(--ro-ink);
  border-radius: 50%;
  font-family: Arial, sans-serif !important;
  font-size: 0 !important;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  vertical-align: middle;
}

.fico-valid {
  color: #fff !important;
  background: var(--ro-success, #16a34a);
}

.fico-invalid {
  color: #fff !important;
  background: var(--ro-danger, #dc2626);
}

.fico-valid::before,
.fico-invalid::before {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 900;
  line-height: 1 !important;
}

.fico-valid::before { content: "\2713" !important; }
.fico-invalid::before { content: "\00d7" !important; }

/* Standard showDialog status window. Discuz fixes .altw at 350px even when
 * the dialog shell is wider, which leaves success messages stranded on the
 * left. Keep this scoped to fwin_dialog so form and login windows are intact. */
#fwin_dialog .fwin {
  width: min(680px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  table-layout: fixed;
}

#fwin_dialog .m_c {
  width: 100% !important;
  min-width: 0;
  box-sizing: border-box;
}

#fwin_dialog .flb {
  min-height: 64px;
  padding: 12px 16px 12px 20px;
}

#fwin_dialog .flb em {
  display: flex;
  align-items: center;
  min-width: 0;
  font-size: 21px;
  line-height: 1.25;
}

#fwin_dialog .c.altw {
  width: auto !important;
  margin: 0;
  padding: 24px !important;
  box-sizing: border-box;
}

#fwin_dialog .altw > .alert_info,
#fwin_dialog .altw > .alert_right,
#fwin_dialog .altw > .alert_error {
  width: 100%;
  min-height: 112px;
  margin: 0;
  padding: 20px 24px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  box-sizing: border-box;
  border: 2px solid var(--ro-ink) !important;
  text-align: left;
}

#fwin_dialog .altw > .alert_info::before,
#fwin_dialog .altw > .alert_right::before,
#fwin_dialog .altw > .alert_error::before {
  width: 46px !important;
  height: 46px !important;
  flex-basis: 46px;
  font-size: 25px !important;
}

#fwin_dialog .altw > .alert_info > p,
#fwin_dialog .altw > .alert_right > p,
#fwin_dialog .altw > .alert_error > p {
  min-width: 0;
  margin: 0;
  color: var(--ro-text);
  font-size: 17px;
  font-weight: 850;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

#fwin_dialog .m_c > .o.pns {
  min-height: 52px;
  margin: 0;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
  color: #5f5868;
  background: #eef7ff;
  border-top: 2px solid var(--ro-ink);
  text-align: center;
}

#fwin_dialog .m_c > .o.pns > .z {
  float: none;
  margin: 0;
  color: inherit !important;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
}

#fwin_dialog .m_c > .o.pns .pn {
  float: none;
  min-width: 112px;
  min-height: 42px;
}

body.pg_spacecp .ro-permission-legend {
  min-height: 54px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 20px;
  box-sizing: border-box;
  color: var(--ro-text);
  background: #eef7ff;
  border: 2px dashed var(--ro-ink);
  font-size: 13px;
  font-weight: 750;
}

body.pg_spacecp .ro-permission-legend > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Image viewer controls: replace the missing private-font glyphs with
   dependable CSS/Unicode symbols and give every action a full hit target. */
.zoominner {
  padding: 10px 12px 14px;
  background: var(--ro-paper);
  border: 2px solid var(--ro-ink);
  box-shadow: 5px 5px 0 var(--ro-ink);
}

.zoominner > p {
  min-height: 40px;
  margin: 0 0 10px;
  padding: 6px 8px !important;
  box-sizing: border-box;
  line-height: 36px;
  color: var(--ro-muted);
  background: #eef7ff;
  border: 2px solid var(--ro-ink);
}

.zoominner > p > .y {
  float: right;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 12px;
}

.zoominner p a.imglink,
.zoominner p a.imgroate,
.zoominner p a.imgadjust,
.zoominner p a.imgclose {
  position: relative;
  float: none;
  display: inline-grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
  color: var(--ro-ink);
  background: #fff;
  border: 2px solid var(--ro-ink);
  box-shadow: 2px 2px 0 var(--ro-ink);
  font-size: 0;
  line-height: 1;
  text-indent: 0;
  text-align: center;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease,
              color .12s ease, background-color .12s ease;
}

.zoominner p a.imglink::before,
.zoominner p a.imgroate::before,
.zoominner p a.imgadjust::before,
.zoominner p a.imgclose::before,
.zoominner p a.imgclose::after {
  position: absolute;
  display: block;
  margin: 0;
  color: currentColor;
  font-family: Arial, sans-serif !important;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  text-align: center;
  box-sizing: border-box;
}

.zoominner p a.imglink::before {
  content: "\2197" !important;
  inset: 5px 0 auto;
  font-size: 23px;
}

.zoominner p a.imgroate::before {
  content: "\21BB" !important;
  inset: 6px 0 auto;
  font-size: 22px;
}

.zoominner p a.imgadjust::before {
  content: "1:1" !important;
  inset: 10px 2px auto;
  font-family: Consolas, "Courier New", monospace !important;
  font-size: 12px;
  letter-spacing: -1px;
}

.zoominner p a.imgclose::before,
.zoominner p a.imgclose::after {
  content: "" !important;
  top: 16px;
  left: 8px;
  width: 17px;
  height: 3px;
  background: currentColor;
  border-radius: 0;
}

.zoominner p a.imgclose::before { transform: rotate(45deg); }
.zoominner p a.imgclose::after { transform: rotate(-45deg); }

.zoominner p a.imglink:hover,
.zoominner p a.imgroate:hover,
.zoominner p a.imgadjust:hover,
.zoominner p a.imglink:focus-visible,
.zoominner p a.imgroate:focus-visible,
.zoominner p a.imgadjust:focus-visible {
  color: #fff;
  background: var(--ro-violet);
  text-decoration: none;
}

.zoominner p a.imgclose {
  color: #fff;
  background: var(--ro-coral);
}

.zoominner p a.imgclose:hover,
.zoominner p a.imgclose:focus-visible {
  color: var(--ro-ink);
  background: var(--ro-yellow);
  text-decoration: none;
}

.zoominner p a.imglink:hover,
.zoominner p a.imgroate:hover,
.zoominner p a.imgadjust:hover,
.zoominner p a.imgclose:hover {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--ro-ink);
}

.zoominner p a.imglink:focus-visible,
.zoominner p a.imgroate:focus-visible,
.zoominner p a.imgadjust:focus-visible,
.zoominner p a.imgclose:focus-visible {
  outline: 3px solid #55b7ff;
  outline-offset: 2px;
}

@media (max-width: 680px) {
  body.pg_spacecp #ct.ct2_a > .mn { order: 1; }
  body.pg_spacecp #ct.ct2_a > .appl { order: 2; }

  body.pg_spacecp #profilelist,
  body.pg_spacecp #profilelist > tbody {
    display: block;
  }

  body.pg_spacecp #profilelist tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    border-bottom: 2px solid var(--ro-ink);
  }

  body.pg_spacecp #profilelist tr:last-child { border-bottom: 0; }

  body.pg_spacecp #profilelist tr > th,
  body.pg_spacecp #profilelist tr > td,
  body.pg_spacecp #profilelist td.p {
    width: 100%;
    display: block;
    border-right: 0;
  }

  body.pg_spacecp #profilelist th {
    padding: 10px 14px;
    text-align: left;
  }

  body.pg_spacecp #profilelist td { padding: 14px; }

  body.pg_spacecp #profilelist .ro-profile-identity__value {
    min-height: 58px;
    padding-left: 74px;
  }

  body.pg_spacecp #profilelist .ro-profile-actions > td {
    padding: 16px 14px;
    text-align: left;
  }

  body.pg_spacecp #submit_result { margin: 10px 0 0; display: flex; }

  body.pg_spacecp .ro-permission-table-wrap {
    margin-right: 0;
    box-shadow: 3px 3px 0 var(--ro-ink);
  }

  body.pg_spacecp .ro-permission-table {
    min-width: 700px;
  }

  body.pg_spacecp .ro-permission-table th:first-child { width: 170px; }

  body.pg_spacecp .ro-permission-legend {
    align-items: flex-start;
    flex-direction: column;
  }

  body.pg_spacecp .ro-credit-summary { padding: 12px; }

  body.pg_spacecp .ro-credit-summary > .ro-credit-item {
    align-items: flex-start;
  }

  body.pg_spacecp .ro-credit-formula {
    flex-basis: 100%;
    padding-top: 4px;
  }

  body.pg_spacecp .ro-credit-table-wrap {
    box-shadow: 3px 3px 0 var(--ro-ink);
  }

  body.pg_spacecp .ro-credit-log-tabs {
    align-items: stretch;
  }

  body.pg_spacecp .ro-credit-log-tabs > a {
    flex: 1 1 0;
  }

  body.pg_spacecp .ro-credit-filter {
    padding: 14px;
    box-shadow: 3px 3px 0 var(--ro-ink);
  }

  body.pg_spacecp .ro-credit-filter__table tr {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }

  body.pg_spacecp .ro-credit-filter__table th,
  body.pg_spacecp .ro-credit-filter__table td,
  body.pg_spacecp .ro-credit-filter__actions > td {
    grid-column: 1;
  }

  body.pg_spacecp .ro-credit-filter__table th {
    padding-top: 2px;
  }

  body.pg_spacecp .ro-credit-filter__actions > th { display: none; }

  body.pg_spacecp .ro-credit-filter__dates {
    flex-wrap: wrap;
    white-space: normal;
  }

  body.pg_spacecp .ro-credit-filter__dates .px {
    width: calc(50% - 20px) !important;
    min-width: 118px;
    flex: 1 1 118px;
  }

  body.pg_spacecp .ro-credit-filter__actions .pn { width: 100%; }

  body.pg_spacecp .ro-usergroup-nav {
    grid-template-columns: minmax(0, 1fr);
  }

  body.pg_spacecp .ro-usergroup-nav__label {
    justify-self: stretch;
  }

  body.pg_spacecp .mn .ro-usergroup-categories.tb.cl,
  body.pg_spacecp .mn .ro-usergroup-sections.tb.cl {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  body.pg_spacecp .mn .ro-usergroup-categories > li > a,
  body.pg_spacecp .mn .ro-usergroup-sections > li > a {
    width: 100%;
  }

  #fwin_dialog .fwin {
    width: calc(100vw - 20px);
    max-width: calc(100vw - 20px);
  }

  #fwin_dialog .c.altw { padding: 16px !important; }

  #fwin_dialog .altw > .alert_info,
  #fwin_dialog .altw > .alert_right,
  #fwin_dialog .altw > .alert_error {
    min-height: 0;
    padding: 18px !important;
    align-items: center;
    flex-direction: column;
    gap: 14px;
    text-align: center;
  }

  #fwin_dialog .altw > .alert_info > p,
  #fwin_dialog .altw > .alert_right > p,
  #fwin_dialog .altw > .alert_error > p {
    text-align: center;
  }
}
