/* ============================================================
   财富论坛 - 样式表（结构还原自 Xiuno BBS zaesky_theme_light）
   主色：#007bff / 背景：#eff2f6 / 卡片：白色圆角
   ============================================================ */
:root {
  --main-bg-color: #eff2f6;
  --primary: #007bff;
  --nav-bg-color: #2997f7;
  --secondary: #5A6169;
  --success: #17c671;
  --info: #00b8d8;
  --warning: #ffb400;
  --danger: #c4183c;
  --light: #f8f9fa;
  --white: #fff;
  --purple: #6F50E7;
  --gradient-text: linear-gradient(90deg, #900C3F 0, #004EC5);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--main-bg-color);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  color: #212529;
}
a { color: #212529; text-decoration: none; transition: all .2s; }
a:hover { color: var(--primary); text-decoration: none; }
ul, li { list-style: none; margin: 0; padding: 0; }
img { max-width: 100%; -webkit-user-drag: none; }
.container { max-width: 1140px; margin: 0 auto; padding: 0 12px; }
.row { display: flex; flex-wrap: wrap; margin: 0 -12px; }
.col-main { flex: 0 0 75%; max-width: 75%; padding: 0 12px; }
.col-aside { flex: 0 0 25%; max-width: 25%; padding: 0 12px; }

/* ================= 顶部导航 ================= */
#body { padding-top: 62px; }
.navbar {
  position: fixed; top: 0; width: 100%; z-index: 100;
  background-color: rgba(255,255,255,.96);
  backdrop-filter: blur(10.5px); -webkit-backdrop-filter: blur(10.5px);
  box-shadow: rgba(142,142,142,.07) 0 6px 15px 0;
}
.navbar-inner { display: flex; align-items: center; height: 52px; }
.navbar-brand img { height: 38px; display: block; }
.navbar-nav { display: flex; align-items: center; margin: 0; }
.navbar-nav.mr-auto { margin-right: auto; }
.navbar-nav .nav-link { display: block; padding: 1rem .7rem; font-size: 14.5px; color: #333; }
.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active { color: var(--primary); }
.navbar-nav .nav-link i { width: 1.1em; text-align: center; margin-right: 2px; }

/* 分类下拉 */
.dropdown { position: relative; }
.dropdown-menu {
  display: none; position: absolute; top: 100%; left: 0; min-width: 10rem;
  background: #fff; border: 1px solid rgba(0,0,0,.05); border-radius: .375rem;
  box-shadow: 0 .5rem 4rem rgba(0,0,0,.11), 0 10px 20px rgba(0,0,0,.05);
  padding: .5rem 0; z-index: 200;
}
.dropdown:hover .dropdown-menu, .dropdown.open .dropdown-menu { display: block; }
.dropdown-item { display: flex; align-items: center; gap: 8px; padding: .5rem 1.25rem; font-size: .9375rem; }
.dropdown-item:hover { background: #eceeef; color: #16181b; }
.dropdown-item img { width: 22px; height: 22px; border-radius: 4px; }

/* 顶部搜索 */
.nav-search { margin-left: 1rem; }
.nav-search .input-group { display: flex; }
.nav-search input {
  border: 0; background: var(--light); border-radius: 4px 0 0 4px;
  padding: .4rem .75rem; font-size: 14px; outline: none; width: 150px;
}
.nav-search button {
  border: 0; background: var(--light); border-radius: 0 4px 4px 0;
  padding: 0 .75rem; cursor: pointer; color: #666;
}

/* ================= 通用卡片 ================= */
.card {
  background: var(--white); border-radius: 5px; border: none;
  box-shadow: 0 0 0 0 rgba(0,0,0,.08) !important;
  margin-bottom: 1rem;
}
.card-header {
  background: transparent; padding: .75rem 1rem;
  border-bottom: 1px solid #f0f0f0;
}
.card-body { padding: 1rem; }
.card-footer { background: transparent; border-top: 1px solid #f0f0f0; }

/* 面包屑/统计条 */
.breadcrumb-bar {
  background: var(--white); border-radius: 5px; font-size: 14px;
  padding: .75rem 1rem; margin-bottom: 1rem;
  display: flex; justify-content: space-between; align-items: center;
}
.text-small { font-size: 13px; }
.text-muted { color: #868e96 !important; }
.text-grey { color: #999; }
.icon-comment::before { content: "💬"; font-style: normal; }
.icon-comments::before { content: "🗨"; font-style: normal; }
.icon-user::before { content: "👤"; font-style: normal; }

/* ================= 轮播图 ================= */
.carousel { position: relative; border-radius: 8px; overflow: hidden; }
.carousel-inner { display: flex; transition: transform .5s ease; }
.carousel-item { flex: 0 0 100%; }
.carousel-item img { width: 100%; display: block; aspect-ratio: 700/236; object-fit: cover; }
.carousel-indicators {
  position: absolute; bottom: 10px; left: 0; right: 0;
  display: flex; justify-content: center; gap: 8px; margin: 0;
}
.carousel-indicators li {
  width: 10px; height: 10px; border-radius: 50%;
  background: rgba(255,255,255,.5); cursor: pointer;
}
.carousel-indicators li.active { background: #fff; }
.carousel-control {
  position: absolute; top: 0; bottom: 0; width: 15%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 24px; opacity: 0; transition: opacity .2s; cursor: pointer;
}
.carousel:hover .carousel-control { opacity: .8; }
.carousel-control.prev { left: 0; }
.carousel-control.next { right: 0; }

/* ================= 快捷按钮区 ================= */
.fontlist { display: flex; flex-wrap: wrap; background: transparent; }
.fontlistson { flex: 0 0 33.3333%; max-width: 33.3333%; text-align: center; }
.fontlistson .ad-btn {
  display: inline-block; width: 95%; margin: 5px 0; padding: 0;
  border-radius: .3em; font-weight: 600; font-size: 15px;
  border: 1px solid rgba(0,0,0,.3); text-shadow: 0 1px 0 rgba(0,0,0,.4);
  box-shadow: 0 0 .05em rgba(0,0,0,.4);
  background-image:
    linear-gradient(45deg, rgba(0,0,0,.05) 25%, transparent 25%, transparent),
    linear-gradient(-45deg, rgba(0,0,0,.05) 25%, transparent 25%, transparent),
    linear-gradient(45deg, transparent 75%, rgba(0,0,0,.05) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(0,0,0,.05) 75%);
  background-size: 3px 3px;
}
.fontlistson .ad-btn span { display: block; padding: .5em .3em; color: #fff; border-top: 1px solid rgba(255,255,255,.5); border-radius: .3em; }
.fontlistson .ad-btn:hover { box-shadow: 0 0 .1em rgba(0,0,0,.4); }
.ad-btn.purple { background: #6F50E7; }
.ad-btn.blue { background: #d3e8fc; }
.ad-btn.blue span { color: #0084ff; }

/* ================= 担保区/热门区 图标列表 ================= */
.icolist {
  display: flex; flex-direction: row; flex-wrap: wrap; position: relative;
  padding-left: 40px; overflow: hidden; border-radius: 5px;
  background: #fff; margin-bottom: 10px; min-height: 76px;
}
.qc_ren {
  width: 34px; background: #fef3f3; color: #e85252; font-size: 13px;
  text-align: center; padding: 0;
  position: absolute; left: 0; top: 0; bottom: 0;
  display: flex; justify-content: center; align-items: center;
  writing-mode: vertical-rl; letter-spacing: 4px; font-weight: 600;
}
.xzico_list { flex: 0 0 25%; max-width: 25%; text-align: center; padding: 5px 10px; }
.xzico_list img { border-radius: 10px; height: 40px; width: 40px; object-fit: cover; }
.xzico_list h5 { padding-top: 6px; font-size: 12px; color: #666; font-weight: 400; margin: 0; }
@media (min-width: 992px) { .xzico_list { flex: 0 0 20%; max-width: 20%; } }

/* ================= 搜索+跑马灯公告 ================= */
.pcyc { margin-bottom: 1rem; }
.search-row { display: flex; gap: 5px; margin-bottom: 1rem; }
.search-row input {
  flex: 1; border: 1px solid #dee2e6; border-radius: .25rem;
  padding: .45rem .75rem; font-size: 14px; outline: none; background: #fff;
}
.btn {
  display: inline-block; border: 1px solid transparent; border-radius: .375rem;
  padding: .375rem .75rem; font-size: .875rem; cursor: pointer;
  font-weight: 300; transition: all .2s;
}
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: #006fe6; color: #fff; }
.btn-dark-btn { background: #000; color: #fff; }
.btn-outline-primary { background: transparent; border-color: var(--primary); color: var(--primary); }
.btn-outline-primary:hover { background: var(--primary); color: #fff; }
.btn-block { display: block; width: 100%; }

.marquee-wrap {
  background-color: #333; border-radius: 25px;
  box-shadow: 0 0 5px #f200ff; padding: 5px; margin-bottom: 8px;
  overflow: hidden; white-space: nowrap; position: relative;
}
.marquee-text {
  display: inline-block; font-size: 20px; font-weight: 700;
  padding-left: 100%;
  animation: marquee 20s linear infinite, masked-animation 2s infinite linear;
  background: -webkit-linear-gradient(left, #fff, #ff0000 6.25%, #ff7d00 12.5%, #ffff00 18.75%, #00ff00 25%, #00ffff 31.25%, #0000ff 37.5%, #ff00ff 43.75%, #ffff00 50%, #ff0000 56.25%, #ff7d00 62.5%, #ffff00 68.75%, #00ff00 75%, #00ffff 81.25%, #0000ff 87.5%, #ff00ff 93.75%, #ffff00 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 100%;
}
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
@keyframes masked-animation { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }

/* 提示条 */
.alert { border-radius: 5px; border: none; padding: .75rem 1rem; margin-bottom: 1rem; position: relative; }
.alert-warning { color: #ff6f06; background: rgba(255,111,6,.1); }
.alert-light { background: #fff; }
.alert .close {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  background: none; border: none; font-size: 18px; cursor: pointer; color: inherit;
}
.gradient-text {
  background: linear-gradient(90deg, #900C3F 0, #004EC5);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-size: 14px; font-weight: 700;
}
.site-stat-bar {
  display: flex; justify-content: space-between; align-items: center;
  background: #fff; border-radius: 5px; padding: .75rem 1rem; margin-bottom: 1rem;
  font-size: 14px;
}

/* 广告下载条（移动端） */
.download-bar { display: flex; align-items: center; gap: 8px; padding: .6rem 1rem; }
.download-bar .download-logo { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; }
.download-bar .download-text { flex: 1; }
.download-bar .download-btn a {
  background: linear-gradient(135deg, #59c3fb 10%, #268df7 100%);
  color: #fff; border-radius: 15px; padding: 4px 12px; font-size: 13px;
}
.download-bar .close-left { background: none; border: none; cursor: pointer; padding: 0; }

/* ================= 视频推荐 ================= */
.bpw-video-card { background: #fff; border-radius: 5px; margin-bottom: 1rem; overflow: hidden; }
.bpw-card-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: .75rem 1rem; border-bottom: 1px solid #f0f0f0;
}
.bpw-card-title { display: flex; align-items: center; gap: 6px; font-weight: 700; font-size: 15px; }
.bpw-card-title svg { color: var(--primary); }
.bpw-more-btn { font-size: 13px; color: #868e96; }
.bpw-video-grid { display: flex; gap: 10px; padding: 1rem; }
.bpw-video-item { flex: 1; }
/* 视频封面目标带圆角 */
.bpw-thumb-wrap { position: relative; border-radius: 8px; overflow: hidden; }
.bpw-thumb-wrap img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.bpw-play-overlay {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,.15); opacity: 0; transition: opacity .2s;
}
.bpw-video-item:hover .bpw-play-overlay { opacity: 1; }
.bpw-play-btn {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(0,123,255,.9); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.bpw-duration {
  position: absolute; right: 6px; bottom: 6px;
  background: rgba(0,0,0,.7); color: #fff;
  font-size: 11px; padding: 1px 6px; border-radius: 3px;
}
.bpw-video-name { font-size: 13px; padding-top: 6px; color: #333; }

/* ================= 帖子列表 ================= */
.card-threadlist .card-body { padding: .25rem 1rem; }
.nav-tabs { display: flex; border: 0; gap: 4px; position: relative; }
.nav-tabs .nav-link { padding: .5rem .6rem; font-size: 15px; color: #333; border: 0; }
.nav-tabs .nav-link.active { font-weight: 700; color: #212529; position: relative; }
.nav-tabs .nav-link.active::after {
  content: ""; display: block; margin: auto; height: 4px;
  background-color: var(--primary); margin-bottom: -6px; margin-top: 6px;
  border-radius: 2px;
}
.tab-right-btns { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.btn-sm { padding: .1rem .6rem; font-size: .8rem; }
.jb-blue { background: linear-gradient(135deg, #59c3fb 10%, #268df7 100%); border: none; color: #fff; }

.threadlist { margin: 0; }
.threadlist .thread {
  display: flex; padding: .7rem 0;
  border-bottom: 1px solid #f5f5f5; cursor: pointer;
}
.threadlist .thread:last-child { border-bottom: 0; }
.threadlist .thread:hover { background: #fafafa; }
.thread .avatar-3 {
  width: 2.6rem; height: 2.6rem; border-radius: .3rem;
  margin-right: .8rem; margin-top: .1rem; flex-shrink: 0; object-fit: cover;
}
.thread .media-body { flex: 1; min-width: 0; }
.style3_subject { font-size: 14px; line-height: 1.5; word-break: break-all; }
@media (min-width: 992px) { .style3_subject { font-size: 15px; } }
.style3_subject a:hover { color: var(--primary); }
.thread-meta {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 4px; font-size: 13px;
}
.thread-meta .left { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #999; }
.style3-thread-forum-name {
  padding: 1px 4px; border-radius: 2px; background: var(--light);
  color: #666; margin-right: 4px; font-size: 12px;
}
.style3-thread-forum-name:hover { background: #bebebe; color: #fff; }

/* 置顶/精华/热门标记 */
.icon-top-1::before, .icon-top-2::before, .icon-top-3::before {
  font-size: 12px; border-radius: 3px; padding: 1px 4px; margin-right: 3px;
  font-style: normal; color: #fff; vertical-align: 1px;
}
.icon-top-1::before { content: "全站置顶"; background: linear-gradient(135deg,#f59f54,#ff6922); }
.icon-top-2::before { content: "首页置顶"; background: linear-gradient(135deg,#fd7a64,#fb2d2d); }
.icon-top-3::before { content: "板块置顶"; background: linear-gradient(135deg,#ff5e7f,#ff967e); }
.badge { display: inline-block; padding: 1px 6px; border-radius: 10px; font-size: 12px; font-weight: 400; vertical-align: 2px; }
.badge-danger { color: #fff !important; background: rgb(194,41,46) !important; }
.badge-success { color: #fff !important; background: rgb(24,166,42) !important; }
.badge-primary { color: var(--nav-bg-color); background: rgba(41,151,247,.1); }
.badge-info { color: #5c7cff; background: rgba(77,130,249,.1); }
.badge-secondary { color: #888; background: rgba(136,136,136,.1); }
.badge-warning { color: #ff6f06; background: rgba(255,111,6,.1); }
.icon-digest { font-style: normal; }
.icon-digest::before { content: "🔥"; }
.huux_thread_hlight_style1 { color: #D9534D; }
.huux_thread_hlight_style2 { color: #F0AD4E; }
.huux_thread_hlight_style3 { color: #5BC0DE; }
.huux_thread_hlight_style4 { color: #5CB85C; }
.huux_thread_hlight_style5 { color: #337AB7; }

/* 分页 */
.pagination { display: flex; justify-content: center; gap: 4px; padding: 1rem 0; flex-wrap: wrap; }
.pagination a {
  display: block; padding: .35rem .8rem; background: #fff;
  border-radius: 4px; font-size: 14px; color: #333;
}
.pagination a.active, .pagination a:hover { background: var(--primary); color: #fff; }

/* ================= 侧边栏 ================= */
.card-site-info { overflow: hidden; }
.index-siteInfo-bg {
  width: 100%; height: 80px;
  background: linear-gradient(to right, #29323c, #485563);
  background-size: cover; background-position: center;
}
.site-info-logo {
  width: 3.5rem; height: 3.5rem; border-radius: .3rem;
  margin-top: -25px; border: 3px solid #fff;
  background: #fff; object-fit: cover; display: block;
}
.site-info-name { font-weight: 700; }
.site-stat-table { width: 100%; text-align: center; font-size: 13px; }
.site-stat-table td { padding: .4rem 0; }
.site-stat-table .num { font-weight: 700; font-size: 15px; }
.sidebar-search input {
  width: 100%; border: 1px solid #dee2e6; border-radius: .25rem 0 0 .25rem;
  padding: .45rem .75rem; font-size: 14px; outline: none;
}
.sidebar-search .input-group { display: flex; }
.sidebar-search button { border-radius: 0 .25rem .25rem 0; }

/* 侧边栏 登录卡片 */
.login-tip-card .media { display: flex; gap: 10px; align-items: center; }

/* ================= 页脚 ================= */
#footer { background: #fff; margin-top: 1rem; padding: 1.5rem 0; font-size: 13px; color: #868e96; }
#footer a { color: #868e96; }

/* hidden-lg = 仅移动端显示（PC端隐藏） */
.hidden-lg { display: block; }
@media (min-width: 992px) {
  .hidden-lg { display: none !important; }
}
/* hidden-sm = 仅PC端显示（移动端隐藏） */
@media (max-width: 991px) {
  .hidden-sm { display: none !important; }
}

/* ================= 移动端 ================= */
.mobile-topbar { display: none; }
.bottom-nav { display: none; }
.mobile-fab { display: none; }

@media (max-width: 991px) {
  #body { padding-top: 56px; }
  .pc-navbar { display: none; }
  .mobile-topbar {
    display: flex; align-items: center; justify-content: space-between;
    height: 50px; padding: 0 10px;
  }
  .mobile-topbar img { height: 34px; }
  .mobile-topbar .fa-bars, .mobile-topbar .menu-btn { font-size: 20px; color: #666; padding: 10px; cursor: pointer; background: none; border: none; }
  .mobile-topbar .user-icon { font-size: 22px; color: #666; }
  .col-main { flex: 0 0 100%; max-width: 100%; }
  .col-aside { display: none; }
  .fontlistson { flex: 0 0 33.3333%; max-width: 33.3333%; }
  .fontlistson .ad-btn { font-size: 13px; }
  .xzico_list { flex: 0 0 25%; max-width: 25%; }
  .bpw-video-grid { gap: 6px; padding: .75rem; }
  .hidden-sm { display: none !important; }

  .bottom-nav {
    display: block; position: fixed; bottom: 0; left: 0; width: 100%;
    background: #fff; border-top: 1px solid #efefef; z-index: 1000;
  }
  .bottom-nav .nav-row { display: flex; text-align: center; height: 55px; align-items: center; }
  .bottom-nav a { flex: 1; color: #9e9e9e; font-size: 12px; position: relative; }
  .bottom-nav a.active { color: var(--primary); }
  .bottom-nav .nav-icon { font-size: 22px; display: block; position: relative; }
  .mobile-fab {
    display: block; position: fixed; bottom: 70px; left: 0; width: 100%;
    text-align: center; z-index: 999; pointer-events: none;
  }
  .mobile-fab a {
    pointer-events: auto; border-radius: 50px;
    background: linear-gradient(135deg, #59c3fb 10%, #268df7 100%);
    color: #fff; padding: .5rem 2rem; box-shadow: 0 1px 3px rgba(26,26,26,.2);
    font-size: 15px;
  }
  #footer { margin-bottom: 4rem; }
}

/* ================= 侧边抽屉 ================= */
.sidebar-mask {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.2); z-index: 9998;
}
.sidebar-mask.open { display: block; }
.sidebar {
  position: fixed; top: 0; left: 0; width: 80%; max-width: 300px; height: 100%;
  background: var(--main-bg-color); z-index: 9999; overflow-y: auto;
  transform: translateX(-100%); transition: transform .3s ease;
  box-shadow: 2px 0 20px rgba(0,0,0,.2);
}
.sidebar.open { transform: translateX(0); }
.sidebar-bg { height: 130px; background: linear-gradient(to right, #29323c, #485563); background-size: cover; }
.sidebar-head { background: #fff; padding: 0 1rem 1rem; }
.sidebar-avatar { width: 4rem; height: 4rem; border-radius: .3rem; border: 2px solid #fff; margin-top: -30px; background: #eee; object-fit: cover; }
.sidebar-menu .nav-link { display: flex; align-items: center; gap: 8px; padding: .7rem 1rem; font-size: 15px; color: #333; border-radius: 5px; }
.sidebar-menu .nav-link:hover, .sidebar-menu .nav-link.active { color: var(--nav-bg-color); background: rgba(41,151,247,.1); }
.sidebar-menu .card-body { padding: .5rem; }
.sidebar-forum-grid { display: flex; flex-wrap: wrap; padding: 0 1rem 1rem; }
.sidebar-forum-grid .forum-item {
  flex: 0 0 50%; text-align: center; padding: 4px;
}
.sidebar-forum-grid .forum-item a {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--light); border-radius: 5px; padding: .6rem 0; font-size: 14px;
}
.sidebar-forum-grid img { width: 20px; height: 20px; border-radius: 4px; }

/* ================= 分类导航弹窗 ================= */
.modal-mask {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.4);
  z-index: 2000; align-items: center; justify-content: center;
}
.modal-mask.open { display: flex; }
.modal-box {
  width: 92%; max-width: 480px; background: #fff; border-radius: .5rem;
  overflow: hidden; max-height: 85vh; overflow-y: auto;
}
.modal-head {
  background: linear-gradient(140deg, #039ab3 10%, #58dbcf 90%);
  text-align: center; padding: 2.5rem 0; color: #fff; position: relative;
}
.modal-head .h3 { font-size: 1.5rem; font-weight: 700; margin: 0; }
.modal-head .h5 { font-size: 1rem; margin-top: 1rem; }
.modal-head .close { position: absolute; top: 10px; right: 15px; background: none; border: none; color: #fff; font-size: 22px; cursor: pointer; }
.modal-body { padding: 1rem; }
.forum-nav-item {
  display: flex; justify-content: space-between; align-items: center;
  background: var(--light); border-radius: 5px; padding: .8rem 1rem; margin-bottom: .5rem;
}
.forum-nav-item img { width: 3rem; height: 3rem; border-radius: .3rem; object-fit: cover; }

/* ================= 帖子详情页 ================= */
.thread-title { font-size: 20px; font-weight: 700; word-break: break-all; }
.post-item { display: flex; gap: 12px; padding: 1rem 0; border-bottom: 1px solid #f0f0f0; }
.post-item:last-child { border-bottom: 0; }
.post-avatar { width: 3rem; height: 3rem; border-radius: .3rem; object-fit: cover; flex-shrink: 0; }
.post-floor { color: #999; font-size: 12px; }
.post-content { line-height: 1.8; font-size: 15px; word-break: break-all; }
.post-content img { max-width: 100%; border-radius: 5px; }
.comment-input {
  background: #f5f5f5; border-radius: 10px; padding: 0 12px;
  height: 32px; line-height: 32px; font-size: 14px; border: none;
  width: 100%; outline: none;
}

/* ================= 登录页 ================= */
.login-card { max-width: 420px; margin: 2rem auto; }
.login-card input {
  width: 100%; border: 1px solid #dee2e6; border-radius: .375rem;
  padding: .6rem .75rem; font-size: 15px; margin-bottom: 1rem; outline: none;
}
.login-card input:focus { border-color: var(--primary); }

/* 回到顶部 */
.goTop {
  position: fixed; right: 0; top: 300px; background: #fff;
  width: 40px; height: 25px; line-height: 25px; cursor: pointer;
  border-top-left-radius: 15px; border-bottom-left-radius: 15px;
  text-align: center; color: #999; box-shadow: 0 1px 3px rgba(0,0,0,.1);
  transform: translate(45px, 0); transition: transform .4s; z-index: 500;
}
.goTop.show { transform: translate(0, 0); }

/* 小按钮（前后台通用） */
.abtn {
  display: inline-block; padding: 4px 12px; border-radius: 4px;
  font-size: 13px; border: 1px solid transparent; cursor: pointer; text-decoration: none;
}
.abtn-primary { background: var(--primary); color: #fff; }
.abtn-danger { background: #ff4d4f; color: #fff; }
.abtn-default { background: #fff; border-color: #d9d9d9; color: #333; }
.abtn-warning { background: #faad14; color: #fff; }
.abtn-success { background: #52c41a; color: #fff; }

/* toast */
.toast-msg {
  position: fixed; top: 20%; left: 50%; transform: translateX(-50%);
  background: rgba(0,0,0,.75); color: #fff; padding: .6rem 1.5rem;
  border-radius: 25px; z-index: 3000; font-size: 14px;
  animation: fadein .2s;
}
@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }

/* 排行榜 */
.rank-item { display: flex; align-items: center; gap: 10px; padding: .7rem 0; border-bottom: 1px solid #f5f5f5; }
.rank-item:last-child { border-bottom: 0; }
.rank-no { width: 26px; height: 26px; border-radius: 50%; background: var(--light); text-align: center; line-height: 26px; font-size: 13px; font-weight: 700; color: #666; flex-shrink: 0; }
.rank-no.top1 { background: #ffd700; color: #fff; }
.rank-no.top2 { background: #c0c0c0; color: #fff; }
.rank-no.top3 { background: #cd7f32; color: #fff; }

/* 商场商品 */
.shop-grid { display: flex; flex-wrap: wrap; gap: 12px; }
.shop-item {
  flex: 0 0 calc(50% - 6px); background: #fff; border-radius: 5px;
  overflow: hidden; text-align: center; padding-bottom: .8rem;
}
@media (min-width: 992px) { .shop-item { flex: 0 0 calc(33.33% - 8px); } }
.shop-item .shop-img { height: 100px; background: linear-gradient(135deg, #59c3fb, #268df7); display: flex; align-items: center; justify-content: center; font-size: 40px; }

/* 工具类 */
.d-flex { display: flex; }
.justify-content-between { justify-content: space-between; }
.align-items-center { align-items: center; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.w-100 { width: 100%; }
.mb-0 { margin-bottom: 0; } .mb-1 { margin-bottom: .5rem; } .mb-2 { margin-bottom: .75rem; } .mb-3 { margin-bottom: 1rem; }
.mt-1 { margin-top: .5rem; } .mt-2 { margin-top: .75rem; } .mt-3 { margin-top: 1rem; }
.mr-1 { margin-right: .25rem; } .mr-2 { margin-right: .5rem; } .mr-3 { margin-right: 1rem; }
.ml-2 { margin-left: .5rem; }
.p-1 { padding: .5rem; }
.font-weight-bold { font-weight: 700; }
.small { font-size: 13px; }
.text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rounded { border-radius: .3rem !important; }
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important; }
