/* body */
body {
  word-break: break-all;
}

@media (max-width:1350px) {
  body {
    overflow-x: hidden;
  }
}

.main-wrapper {
  min-height: calc(100vh - 8rem);
  display: flex;
  flex-direction: column;
  padding-left: 1.5rem;
}

footer#footer {
  margin-top: auto;
}

.page-container.container .page-header {
  z-index: 1021;
}

/* navbar */
@media (min-width: 576px) {
  .page-container.container .page-header {
    width: calc(540px - 40px);
  }
}

@media (min-width: 768px) {
  .page-container.container .page-header {
    width: calc(720px - 40px);
  }
}

@media (min-width: 992px) {
  .page-container.container .page-header {
    width: calc(960px - 40px);
  }
}

@media (min-width: 1200px) {
  .page-container.container .page-header {
    width: calc(1140px - 40px);
  }
}

@media (min-width: 1400px) {

  .page-container.container .page-header {
    width: calc(1320px - 40px);
  }
}

.nav-link.active {
  font-weight: bold;
}

/* mobile */

@media (max-width:425px) {
  .page-container {
    padding: 1rem;
  }

  .page-content .main-wrapper {
    padding-top: 0;
  }

  .main-wrapper>.row>[class^="col-"],
  .main-wrapper>.row>[class*=" col-"] {
    padding: 0;
  }

  .card-body {
    padding: 1rem;
  }

  .page-sidebar {
    top: 85px;
    height: calc(100% - 100px);
  }

  .back-to-top {
    max-width: 40px;
    max-height: 40px;
  }

  .circular-progress .inner {
    font-size: 18px;
  }
}

/* sidebar */


.page-sidebar {
  overflow: auto;
}

.page-sidebar::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.page-sidebar:hover::-webkit-scrollbar,
.page-sidebar:focus-within::-webkit-scrollbar {
  width: 0.5em;
  height: 0.5em;
}


.page-header .navbar .navbar-brand {
  padding: 0;
}

@media (max-width:575.98px) {
  .page-header#header {
    width: 100%;
    top: 0;
    left: 0;
    right: 0;
  }

  .page-header#header .navbar {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}

@media (max-width:425px) {
  .page-header .navbar #headerNav>ul>li>a {
    padding: 6px 0;
    margin: 0 4px;
  }
  .page-header .navbar #headerNav>ul>li>a svg, .page-header .navbar #headerNav>ul>li>a i {
    font-size: 14px;
  }
  .page-header .navbar .navbar-brand {
    width: 32px;
    height: 32px;
  }
  .page-header .navbar #headerNav>ul>li>a img {
    width: 32px;
  }
  .page-header .navbar #headerNav>ul>li>a.notifications-dropdown {
    padding: 11px 11px;
    background: var(--bs-primary-pale);
    color: var(--bs-primary);
    line-height: 1;
    min-width: 32px;
    margin-top: 3px;
  }
}

/* sidebar */
.sidebar_menu .search-dropdown,
.sidebar_menu .color-mode-dropdown ,
.sidebar_menu .usernotice {
  display: none !important;
}

.sidebar_menu li.active {
  border-radius: 10px;
  background-color: var(--bs-secondary-pale);
  color: var(--bs-primary);
}

.sidebar_menu li.active>a {
  color: var(--bs-primary);
}

/* post */
.post.quote {
  background: var(--bs-primary-pale);
  border-radius: 15px;
}

.card-thread .message img:not([style]) {
  width: 100%;
  height: auto;
}

/* other */
fieldset.fieldset.notice {
  word-break: break-all;
}

fieldset.fieldset.debug {
  background-color: var(--bs-gray-dark);
  color: var(--bs-green);
  border-color: var(--bs-green);
}

#ordery_dropdown_menu+.dropdown-menu .icon-check {
  position: absolute;
  left: 1em;
  top: 1em;
}

#ordery_dropdown_menu+.dropdown-menu .dropdown-item {
  position: relative
}

.avatar-6 {
  width: 130px;
  height: 130px
}

.forumlist>.btn-group>.btn {
  border-radius: 10px !important;
}

.forumlist>.btn-group>.btn.btn-outline-primary:not(.active):hover {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
  background-color: var(--bs-primary-pale);
  box-shadow: none
}

.forumlist>.btn-group>.btn:not(.active):not(:hover):not(:focus) {
  color: var(--bs-body-color);
}



/* user-profile */
.nav-item.profile-dropdown .dropdown-menu {
  left: unset;
  right: 0;
}

.nav-item.profile-dropdown .dropdown-menu,
.profile-dropdown~.dropdown-menu,
.profile-drop-menu .dropdown-item {
  width: max-content;
}

.user-profile-header-banner {
  background:
    radial-gradient(circle at 100% 50%, transparent 20%, rgba(255, 255, 255, .3) 21%, rgba(255, 255, 255, .3) 34%, transparent 35%, transparent),
    radial-gradient(circle at 0% 50%, transparent 20%, rgba(255, 255, 255, .3) 21%, rgba(255, 255, 255, .3) 34%, transparent 35%, transparent) 0 -50px;
  background-color: var(--bs-primary-pale);
  background-size: 75px 100px;
}

#user_mobile_nav,
#my_mobile_nav {
  display: none !important;
}

#my_aside>.card,
#user_aside>.card {
  position: sticky;
  top: 8.5rem;
}

#my_aside>.card>.list-group,
#user_aside>.card>.list-group {
  padding: .5rem;
}

#my_aside .card-body.text-center,
#user_aside .card-body.text-center {
  display: none;
}

#my_aside .list-group-flush .list-group-item,
#user_aside .list-group-flush .list-group-item {
  border-radius: 15px;
  border: none;
  text-align: left;
}

#my_aside .list-group-flush .list-group-item::after,
#user_aside .list-group-flush .list-group-item::after {
  font-family: FontAwesome;
  content: "\f054";
  float: right;
  text-align: left;
  opacity: .75;
}

#user_aside_mobile,
#my_aside_mobile {
  overflow-x: auto;
  overflow-y: hidden;
}

#user_aside_mobile .list-group,
#my_aside_mobile .list-group {
  flex-direction: row;
  flex-wrap: nowrap;
}

#user_aside_mobile .list-group .list-group-item,
#my_aside_mobile .list-group .list-group-item {
  flex: 1 0 auto;
  width: fit-content;
  border-radius: 15px;
  border: none;
  text-align: center;
}

.user-profile-header-banner {
  height: 250px
}

.user-profile-header-banner img {
  width: 100%;
  object-fit: cover;
  height: 250px
}

.user-profile-header {
  margin-top: -2rem
}

.user-profile-header .user-profile-img {
  border: 5px solid var(--content-background-color,var(--bs-white));
  width: 120px;
  border-radius: 50%;
}

@media(max-width: 767.98px) {
  .user-profile-header-banner {
    height: 150px
  }

  .user-profile-header-banner img {
    height: 150px
  }

  .user-profile-header .user-profile-img {
    width: 100px
  }
}

/* threadlist */
.subject_body_img {
  height: calc(10rem + 5vmin);
  object-fit: cover;
}

.left_img_box {
  max-width: 15vmin;
  /* max-height: 14vmin; */
}

.left_img_box .subject_body_img {
  max-height: 8.5rem;
}

/* hamburger */
.hamburger {
  font-size: 10px;
  width: 1.875em;
  height: 1.5em;
  cursor: pointer;
  position: relative;
  display: inline-block;
  transition: all 200ms ease-in-out;
}

.hamburger span {
  display: inline-block;
  width: 100%;
  height: 0.1875em;
  /* 3px / 16px */
  background-color: var(--bs-body-color);
  position: absolute;
  transition: all 200ms ease-in-out;
  left: 0;
  top: calc(50% + 0.125em);
}

.hamburger span:first-child {
  transform: translateY(-300%);
}

.hamburger span:last-child {
  transform: translateY(300%);
}

.hamburger-1 span:first-child {
  transform-origin: left top;
}

.hamburger-1 span:last-child {
  transform-origin: left bottom;
}

.hamburger-1.active span:first-child {
  transform: rotate(-45deg) translateX(-0.125em) scaleX(0.5);
}

.hamburger-1.active span:last-child {
  transform: rotate(45deg) translateX(-0.125em) scaleX(0.5);
}

/*  toast */
.toast-container {
  position: fixed;
  z-index: 1055;
  top: 0;
  right: 0;
  padding: 1rem 1rem 0 0
}

/* back to top */
.back-to-top {
  position: fixed;
  bottom: 75px;
  right: 30px;
  width: 60px;
  height: 60px;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.1s ease-in-out, visibility 0.1s ease-in-out;
}

.back-to-top.visible {
  opacity: 1;
  visibility: visible;
}

.back-to-top .circular-progress {
  --data-progress-color: var(--bs-primary);
  --data-track-color: var(--bs-light);
  position: relative;
  width: 100%;
  max-width: 60px;
  height: 100%;
  max-height: 60px;
}

.circular-progress .progress.outer {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(var(--data-progress-color) 0deg, var(--data-track-color) 0deg);
}

.circular-progress .inner {
  position: absolute;
  top: 5%;
  left: 5%;
  width: 90%;
  height: 90%;
  border-radius: 50%;
  background-color: var(--content-background-color);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--data-progress-color);
  font-size: 24px;
}

/* app bottom navbar */
@media screen and (max-width: 992px) {
  .bottom-nav.page-header {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    transition: bottom .3s ease-out;
  }

  .sidebar-hidden .bottom-nav.page-header {
    bottom: -6rem;
  }
}

.bottom-nav.page-header::before {
  display: none !important;
}

.bottom-nav .col.active:before {
  content: "";
  display: block;
  position: absolute;
  bottom: -1.75em;
  left: 0;
  width: 100%;
  height: 1.25em;
  background-color: var(--bs-primary);
  border-radius: 0.25em 0.25em 0 0;
  filter: blur(0.5em);
}

@media screen and (prefers-reduced-motion) {
  .bottom-nav .col.active:before {
    bottom: -0.5em;
    height: 0.25em;
    filter: none;
  }
}

.bottom-nav .btn-outline-primary {
  width: 3em;
  height: 3em;
  border-radius: 50%;
  padding: 0;
  margin: 0;
  line-height: 3;
}
/* ==========================================================================
   手机端头部导航精简（仅 ≤767.98px；平板 ≥768px 与电脑端完全不受影响）
   --------------------------------------------------------------------------
   手机端顶栏右侧只保留：消息（huux_notice）/ 搜索（主题自带图标）/ 发帖 / 头像。
   隐藏两类项：
     1) li.circl-color-mode（另加 .color-mode-dropdown 兜底选择器）—— 颜色模式按钮。
        手机上改从侧栏「菜单」进入：同一挂载点 header_nav_user_start.htm 在
        .page-sidebar 内还会渲染一份，侧栏那份由手风琴 JS 展开，不需要额外代码，
        其点击绑定走 main.min.js 的 .dropdown-item[data-mode] 全量选择器，侧栏那份照常可用。
     2) li.hidden-lg —— 签到（iqismart_com_sign），以及 xn_search 插件渲染的第二个
        搜索项。主题自带搜索图标 + 插件搜索项在窄屏同时出现，是「多出一个搜索图标」的根因；
        两者都写在 li 的 hidden-lg 上，一并隐藏。
     ★ 选择器一律限定 #headerNav 的直系子项，侧栏里同名的项不受影响。
   ========================================================================== */
@media (max-width:767.98px) {
  .page-header .navbar #headerNav>ul>li.circl-color-mode,
  .page-header .navbar #headerNav>ul>li.hidden-lg,
  .page-header .navbar #headerNav>ul>li .color-mode-dropdown {
    display: none !important;
  }

  /* 精简后统一垂直居中，避免各按钮高矮不齐 */
  .page-header .navbar #headerNav>ul {
    align-items: center;
  }

  .page-header .navbar #headerNav>ul>li {
    display: flex;
    align-items: center;
  }

  /* 抵消小屏给发帖按钮打的 margin-top 补偿（错位来源之一），居中即可 */
  .page-header .navbar #headerNav>ul>li>a.notifications-dropdown {
    margin-top: 0;
  }
}

/* ==========================================================================
   搜索面板错位修复（≤991.98px，手机 + 平板；电脑端 >992px 不受影响）
   --------------------------------------------------------------------------
   面板原先锚在搜索图标的 li 上（.dropdown{position:relative} + 面板 right:0、
   固定 340px 宽）：图标右侧到屏幕边缘不足 340px 时，面板整体向左戳出屏幕外，
   看起来就是「搜索框跑到左下角、缺了一块」。
   改法：把 li 静态化（position:static），就近定位祖先变成顶栏（position:fixed），
   面板改为「顶栏正下方、左右各留 12px」的通栏，宽度自适应。
   ========================================================================== */
@media (max-width:991.98px) {
  .page-header .navbar #headerNav>ul>li.circl-search {
    position: static;
  }

  .page-header .navbar #headerNav .search-drop-menu {
    top: 100%;
    left: 12px;
    right: 12px;
    width: auto;
    min-width: 0;
    margin-top: 8px;
  }
}

/* ==========================================================================
   平板/手机抽屉侧栏（≤1350px 侧栏为抽屉态）：放开「颜色模式」
   --------------------------------------------------------------------------
   原主题在 bbs.css 前段把 侧栏里的 搜索/颜色模式/消息 一律 display:none!important
   （.sidebar_menu .search-dropdown/.color-mode-dropdown/.usernotice）—— 因为原设计
   这三项只在顶栏。手机端顶栏已收敛掉颜色模式，侧栏是唯一入口，这里只放开颜色模式
   （搜索、消息仍按原设计隐藏，避免重复入口）。
   ★ 写在本文件末尾，同特异度后者胜，能压过前面的 display:none !important。
   ★ 电脑端（>1350px，侧栏常驻）不放开，保持原样。
   ========================================================================== */
@media (max-width:1350px) {
  .sidebar_menu .color-mode-dropdown {
    display: flex !important;
    align-items: center;
  }

  /* 补回文字：钩子里那层 span 是「小屏隐藏、≥992px 显示」，抽屉里只剩图标不易识别 */
  .page-sidebar .accordion-menu .color-mode-dropdown .d-none {
    display: inline !important;
  }
}


  /* ============================================================
   * 弹窗打开时整页横向错位（R14）
   *
   * 根因：kumquat 原有 body.modal-open{overflow:visible}（故意保留滚动条
   * 防抖动），但核心 BS4 modal.js 在 show 时仍按「滚动条即将消失」给
   * body 内联加 padding-right:17px（_setScrollbar），给 .sticky-top 加
   * margin-right:-17px —— 滚动条明明没消失，补偿照加 = 双重补偿，
   * 正文变窄与固定顶栏错开；dispose 关闭不还原，要刷新才恢复。
   *
   * 修法：保留滚动条，用 !important 把 JS 写进内联的全部横向补偿归零。
   * （作者样式表带 !important 的声明优先于元素内联的非 !important 声明。）
   * ============================================================ */
  body.modal-open {
    padding-right: 0 !important;
  }
  body.modal-open .fixed-top,
  body.modal-open .fixed-bottom,
  body.modal-open .is-fixed,
  body.modal-open .sticky-top {
    padding-right: 0 !important;
  }
  body.modal-open .sticky-top,
  body.modal-open .navbar-toggler {
    margin-right: 0 !important;
  }
