/* 网盘资源社 - 前台样式：简洁清爽白 */
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: #f7f8fa;
  color: #262626;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  line-height: 1.6;
  padding-bottom: 0;
  overflow-x: hidden;
}
a {
  color: #0d6efd;
}

/* ---------- 顶部栏 ---------- */
.topbar {
  background: #fff;
  border-bottom: 1px solid #eceef2;
  position: sticky;
  top: 0;
  z-index: 100;
}
.topbar-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 18px;
  color: #1a1a1a;
  text-decoration: none;
  white-space: nowrap;
}
.brand-logo {
  width: 26px;
  height: 26px;
}
.brand-logo-img {
  width: 26px;
  height: 26px;
  border-radius: 4px;
  object-fit: contain;
}
.pc-nav {
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
}
.pc-nav a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 13px;
  border-radius: 4px;
  color: #595959;
  text-decoration: none;
  font-size: 14px;
}
.pc-nav a .arco-icon {
  color: inherit;
  font-size: 15px;
}
.pc-nav a:hover {
  background: #f2f5f9;
  color: #1a1a1a;
}
.pc-nav a.active {
  background: #e8f1ff;
  color: #0d6efd;
  font-weight: 600;
}

/* ---------- 主内容 ---------- */
.page {
  max-width: 960px;
  margin: 0 auto;
  padding: 20px 20px 48px;
}
.section {
  margin-top: 28px;
}
.section:first-child {
  margin-top: 4px;
}
.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eceef2;
}
.section-head h1, .section-head h2 {
  font-size: 17px;
  font-weight: 700;
  margin: 0;
  padding-left: 10px;
  border-left: 3px solid #0d6efd;
  display: flex;
  align-items: center;
  gap: 6px;
}
.section-head h1 .arco-icon, .section-head h2 .arco-icon {
  color: #0d6efd;
}
.section-head a {
  font-size: 13px;
  color: #8c8c8c;
  text-decoration: none;
}
.section-head a:hover {
  color: #0d6efd;
}
.section-total {
  font-size: 12px;
  color: #bfbfbf;
}

/* 面包屑 */
.crumbs {
  font-size: 13px;
  color: #bfbfbf;
  margin-bottom: 10px;
  display: flex;
  gap: 6px;
  align-items: center;
}
.crumbs a {
  color: #8c8c8c;
  text-decoration: none;
}
.crumbs a:hover {
  color: #0d6efd;
}
.crumbs .current {
  color: #1a1a1a;
  font-weight: 600;
}

/* 子分类 chips */
.sub-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.sub-chips a {
  padding: 4px 14px;
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 4px;
  color: #595959;
  font-size: 13px;
  text-decoration: none;
}
.sub-chips a:hover {
  border-color: #bcd6ff;
  color: #0d6efd;
}
.sub-chips a.active {
  background: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
}

/* 板块内搜索 */
.search-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
.search-bar .form-control {
  flex: 1;
}

/* 分页 */
.pager {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 16px;
}
.pager a {
  min-width: 32px;
  padding: 5px 10px;
  text-align: center;
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 4px;
  color: #595959;
  font-size: 13px;
  text-decoration: none;
}
.pager a:hover {
  border-color: #bcd6ff;
  color: #0d6efd;
}
.pager a.active {
  background: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
  font-weight: 600;
}
.pager .page-info {
  color: #999;
  font-size: 13px;
  padding: 5px 4px;
}

/* 置顶角标 */
.top-badge {
  display: inline-block;
  background: #ff4d4f;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  padding: 3px 6px;
  border-radius: 4px;
  margin-right: 6px;
  vertical-align: 2px;
  white-space: nowrap;
}

/* ---------- 资源卡片 ---------- */
.res-card {
  display: block;
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 10px 14px;
  margin-bottom: 2px;
  text-decoration: none !important;
  color: inherit;
}
.res-card:hover {
  border-color: #bcd6ff;
  box-shadow: 0 1px 6px rgba(13, 110, 253, 0.08);
}
.res-card h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 5px;
  color: #1a1a1a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.res-card:hover h3 {
  color: #0d6efd;
}
.res-card p {
  margin: 0 0 6px;
  color: #8c8c8c;
  font-size: 13px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.res-meta {
  font-size: 12px;
  color: #bfbfbf;
  display: flex;
  gap: 14px;
  align-items: center;
}
.res-meta .arco-icon {
  color: inherit;
  vertical-align: -2px;
}

.page-wide {
  max-width: 1200px;
}

/* ---------- 首页双栏 ---------- */
.layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 20px;
  align-items: start;
}
.main-col {
  min-width: 0;
}
.side-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 64px;
}

/* 头条大卡 */
.headline {
  display: block;
  background: #fff;
  border: 1px solid #e8eaef;
  border-left: 3px solid #ff4d4f;
  border-radius: 6px;
  padding: 18px 20px;
  margin-bottom: 6px;
  text-decoration: none !important;
  color: inherit;
}

/* 最新更新：白底面板 + 两列标题列表（左10右10） */
.news-list {
  list-style: none;
  margin: 0;
  padding: 4px 14px;
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(10, auto);
  grid-auto-flow: column;
  column-gap: 24px;
}
.news-list li {
  min-width: 0;
}
.news-list li a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 4px 0;
  border-bottom: 1px dashed #f0f1f4;
  text-decoration: none;
  color: #333;
  font-size: 14px;
}
.news-list li a:hover .news-title {
  color: #0d6efd;
}
.news-title {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.news-date {
  color: #bfbfbf;
  font-size: 12px;
  white-space: nowrap;
}

/* 轮播图 */
.banner-slider {
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.06);
  max-width: 100%;
}
.banner-slider .carousel-item img {
  display: block;
  width: 100%;
  height: 320px;
  object-fit: cover;
}
.banner-slider .carousel-control-prev,
.banner-slider .carousel-control-next {
  width: 8%;
}
.banner-slider .carousel-indicators {
  margin-bottom: 10px;
}
.banner-slider .carousel-indicators [data-bs-target] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/* 板块小标签 */
.cat-chip {
  background: #e8f1ff;
  color: #0d6efd;
  font-size: 11px;
  padding: 1px 8px;
  border-radius: 4px;
  white-space: nowrap;
}

/* 边栏面板 */
.side-panel {
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 14px 16px;
}
.side-head {
  font-size: 15px;
  font-weight: 700;
  padding-bottom: 10px;
  margin-bottom: 6px;
  border-bottom: 1px solid #f0f1f4;
  display: flex;
  align-items: center;
  gap: 6px;
}
.side-head .arco-icon {
  color: #0d6efd;
}
.rank-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 8px;
}
.rank-tab {
  flex: 1;
  border: 1px solid #e8eaef;
  background: #f7f8fa;
  border-radius: 4px;
  font-size: 12px;
  color: #8c8c8c;
  padding: 4px 0;
  cursor: pointer;
}
.rank-tab.active {
  background: #e8f1ff;
  border-color: #bcd6ff;
  color: #0d6efd;
  font-weight: 600;
}
.rank-empty {
  color: #bfbfbf;
  font-size: 12px;
  margin: 4px 0;
}
.rank-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rank-list li a {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 7px 0;
  border-bottom: 1px dashed #f0f1f4;
  text-decoration: none;
  color: #333;
  font-size: 13px;
}
.rank-list li:last-child a {
  border-bottom: none;
}
.rank-list li a:hover .rank-title {
  color: #0d6efd;
}
.rank-num {
  font-style: italic;
  font-weight: 700;
  color: #bfbfbf;
  min-width: 16px;
}
.rank-list li:nth-child(1) .rank-num,
.rank-list li:nth-child(2) .rank-num,
.rank-list li:nth-child(3) .rank-num {
  color: #ff4d4f;
}
.rank-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.side-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.side-list li a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px dashed #f0f1f4;
  text-decoration: none;
  color: #333;
  font-size: 13px;
}
.side-list li:last-child a {
  border-bottom: none;
}
.side-list li a:hover .side-title {
  color: #0d6efd;
}
.side-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.side-date, .side-count {
  color: #bfbfbf;
  font-size: 12px;
  white-space: nowrap;
}

/* 相关推荐：横向滑动 */
.rel-row {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 6px;
  scroll-snap-type: x mandatory;
}
.rel-item {
  flex: 0 0 220px;
  min-width: 0;
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 12px 14px;
  text-decoration: none !important;
  color: inherit;
  scroll-snap-align: start;
}
.rel-item:hover {
  border-color: #bcd6ff;
}
.rel-item:hover h3 {
  color: #0d6efd;
}
.rel-item h3 {
  font-size: 14px;
  font-weight: 600;
  margin: 0 0 6px;
  color: #1a1a1a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rel-item p {
  margin: 0 0 6px;
  color: #8c8c8c;
  font-size: 12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rel-date {
  font-size: 11px;
  color: #bfbfbf;
}
.article-box {
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 28px 30px;
}
.article-box h1 {
  font-size: 23px;
  font-weight: 700;
  margin: 0 0 10px;
  line-height: 1.4;
}
.article-meta {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #f0f1f4;
}
.article-content {
  font-size: 15px;
  word-break: break-word;
}
.article-content img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}
.link-card {
  border: 1px solid #cfe3ff;
  background: #f5f9ff;
  border-radius: 6px;
  padding: 14px 16px;
  margin-top: 10px;
}
.link-card.login-gate {
  border: 1px dashed #b7c4d8;
  background: #fafbfd;
  text-align: center;
}
.link-card.login-gate .netdisk {
  color: #595959;
}
.link-card.login-gate .btn {
  min-width: 180px;
}
.link-card .netdisk {
  font-weight: 700;
  color: #0d6efd;
}
.link-card .code {
  display: inline-block;
  background: #fff;
  border: 1px solid #d9e6ff;
  border-radius: 4px;
  padding: 1px 8px;
  margin-left: 8px;
  font-size: 13px;
  color: #595959;
}

/* ---------- 登录 / 注册 ---------- */
.auth-wrap {
  max-width: 400px;
  margin: 48px auto;
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 32px 30px;
}
.auth-wrap h1 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 6px;
  text-align: center;
}
.auth-sub {
  text-align: center;
  color: #8c8c8c;
  font-size: 13px;
  margin-bottom: 22px;
}
.auth-wrap .form-label {
  font-size: 14px;
  color: #595959;
}
.auth-links {
  margin-top: 16px;
  text-align: center;
  font-size: 13px;
  color: #8c8c8c;
}

/* ---------- 我的 ---------- */
.me-card {
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 28px;
  display: flex;
  gap: 18px;
  align-items: center;
}
.me-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #e8f1ff;
  color: #0d6efd;
  font-size: 26px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.me-info h1 {
  font-size: 19px;
  margin: 0 0 4px;
}
.me-info p {
  margin: 0;
  color: #8c8c8c;
  font-size: 13px;
}
.me-actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* ---------- 我的（tab/表单/兑换） ---------- */
.my-tabs {
  display: flex;
  gap: 6px;
  margin: 16px 0;
}
.my-tabs a {
  flex: 1;
  min-width: 0;
  text-align: center;
  padding: 8px 0;
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  color: #595959;
  font-size: 13px;
  text-decoration: none;
  white-space: nowrap;
}
.my-tabs a.active {
  background: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
  font-weight: 600;
}
.form-panel {
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 16px;
  margin-bottom: 12px;
}
.form-panel h5 {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.form-panel h5 .arco-icon {
  color: #0d6efd;
}
.kv-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px dashed #f0f1f4;
  font-size: 14px;
}
.kv-row:last-child {
  border-bottom: none;
}
.kv-row span {
  color: #8c8c8c;
}
.kv-row b {
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
}
.coin-pill {
  background: #fff7e6;
  border: 1px solid #ffd591;
  color: #fa8c16;
  font-size: 12px;
  font-weight: 700;
  padding: 1px 10px;
  border-radius: 20px;
  margin-left: 6px;
}
.reward-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.reward-card {
  background: #fff;
  border: 1px solid #e8eaef;
  border-radius: 6px;
  padding: 12px;
  text-align: center;
}
.reward-card img {
  width: 100%;
  height: 110px;
  object-fit: cover;
  border-radius: 4px;
}
.reward-blank {
  width: 100%;
  height: 110px;
  border-radius: 4px;
  background: linear-gradient(135deg, #ff4d4f, #fa8c16);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.reward-card h6 {
  font-size: 14px;
  font-weight: 600;
  margin: 10px 0 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.reward-card p {
  margin: 0 0 10px;
  color: #8c8c8c;
  font-size: 12px;
}
.reward-card p b {
  color: #fa8c16;
  font-size: 15px;
}
.coin-pos {
  color: #198754;
  font-weight: 600;
}
.coin-neg {
  color: #dc3545;
  font-weight: 600;
}

/* 昵称行内改（不用 bootstrap d-flex，避免 !important 盖掉隐藏） */
.nick-edit {
  border: none;
  background: #f0f1f4;
  color: #8c8c8c;
  border-radius: 4px;
  font-size: 12px;
  padding: 3px 8px;
  cursor: pointer;
  line-height: 1.4;
}
.nick-edit:hover {
  color: #0d6efd;
}
.nick-form {
  display: none;
  margin-top: 8px;
  max-width: 280px;
}
.nick-form.open {
  display: flex;
  gap: 8px;
}
/* 收款码空态 */
.qr-empty {
  width: 150px;
  height: 150px;
  border: 1px dashed #d9d9d9;
  border-radius: 6px;
  color: #8c8c8c;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.8;
  background: #fafafa;
}
/* 收款码卡片内容撑满等高 */
.qr-fill {
  display: flex;
  flex-direction: column;
}
.qr-fill > .text-center {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
/* 签到紧凑版（半栏） */
.sign-compact .sign-cal {
  padding: 8px;
}
.sign-compact .sign-day {
  font-size: 12px;
  padding: 4px 0;
}
.sign-cal {
  background: #f7f8fa;
  border-radius: 6px;
  padding: 10px;
}
.sign-week, .sign-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  text-align: center;
}
.sign-week span {
  font-size: 12px;
  color: #8c8c8c;
  padding: 4px 0;
}
.sign-day {
  font-size: 13px;
  padding: 6px 0;
  border-radius: 50%;
  color: #595959;
  background: #fff;
  border: 1px solid #e8eaef;
}
.sign-day.done {
  background: #198754;
  border-color: #198754;
  color: #fff;
  font-weight: 700;
}
.sign-day.today {
  border: 2px solid #0d6efd;
}
/* 任务进度条 */
.task-prog {
  background: #f0f1f4;
  border-radius: 10px;
  height: 12px;
  overflow: hidden;
}
.task-bar {
  height: 100%;
  background: linear-gradient(90deg, #0d6efd, #36cfc9);
  border-radius: 10px;
}
.task-bar2 {
  background: linear-gradient(90deg, #fa8c16, #ff4d4f);
}

/* 我的页推广广告卡片组：PC一行2卡（各49%），手机一行1卡 */
.ad-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
.ad-card {
  display: block;
  width: 100%;
}
.ad-card img {
  display: block;
  width: 100%;
  height: 98px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid #e8eaef;
}
@media (max-width: 768px) {
  .ad-card-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- 页脚 ---------- */
.footer {
  text-align: center;
  color: #bfbfbf;
  font-size: 13px;
  padding: 26px 12px 34px;
}

/* ---------- 手机底部固定栏 ---------- */
.tabbar {
  display: none;
}

@media (max-width: 768px) {
  .pc-nav {
    display: none;
  }
  .brand {
    font-size: 16px;
  }
  .topbar-inner {
    padding: 10px 14px;
  }
  .page {
    padding: 14px 12px 90px;
  }
  .page-wide {
    max-width: none;
  }
  .layout {
    grid-template-columns: 1fr;
  }
  .news-list {
    grid-template-columns: 1fr;
  }
  .news-list li:nth-child(n+11) {
    display: none;
  }
  .side-col {
    display: none;
  }
  .headline h2 {
    font-size: 18px;
  }
  .banner-slider .carousel-item img {
    height: 150px;
  }
  .article-box {
    padding: 20px 16px;
  }
  .article-box h1 {
    font-size: 20px;
  }
  .auth-wrap {
    margin: 24px 12px;
    max-width: none;
  }
  .me-card {
    padding: 20px 16px;
  }
  body {
    padding-bottom: 64px;
  }
  .tabbar {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    border-top: 1px solid #eceef2;
    z-index: 200;
    padding: 6px 2px calc(6px + env(safe-area-inset-bottom));
  }
  .tabbar a {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    font-size: 11px;
    color: #8c8c8c;
    text-decoration: none;
    padding: 4px 0;
  }
  .tabbar a .arco-icon {
    width: 22px;
    height: 22px;
    color: inherit;
  }
  .tabbar a.active {
    color: #0d6efd;
    font-weight: 600;
  }
}
