/* === 飞牛怎么玩 公共样式 === */
/* Sticky footer — Grid so sticky nav still works */
body {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 100vh;
}


:root {
  --fn-blue: #0d6efd;
  --fn-dark: #0a58ca;
  --fn-bg: #f8f9fa;
  --sidebar-width: 260px;
  --red: #dc3545;
  --brand: #0d6efd;
  --text-secondary: #6c757d;
  --border: #dee2e6;
  --bg: #f8f9fa;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.8;
}

/* 导航栏 */
.navbar-main {
  background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%) !important;
  position: sticky;
  top: 0;
  z-index: 1030;
  transition: all 0.3s ease;
  padding: 0.75rem 0;
}

.navbar-main.shrink {
  padding: 0.25rem 0;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.navbar-main.shrink .navbar-brand {
  font-size: 1.15rem;
}

.navbar-main.shrink .nav-link {
  font-size: 0.9rem;
}

.navbar-main .navbar-brand {
  font-weight: 700;
  font-size: 1.4rem;
}

/* Hero */
.hero-section {
  background: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%);
  color: white;
  padding: 4rem 0;
  margin-bottom: 2rem;
}

.hero-section h1 { font-weight: 700; font-size: 2.5rem; }
.hero-section .lead { opacity: 0.9; }

/* 搜索框 */
.search-box { max-width: 500px; margin: 0 auto; }
.search-box .form-control {
  border-radius: 50px 0 0 50px;
  border: none;
  padding: 0.75rem 1.5rem;
}
.search-box .btn {
  border-radius: 0 50px 50px 0;
  padding: 0.75rem 1.5rem;
}

/* 分类卡片 */
.category-card {
  border: none;
  border-radius: 12px;
  transition: all 0.3s ease;
  cursor: pointer;
  background: white;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.category-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(13,110,253,0.15);
}
.category-card .icon-wrapper {
  width: 56px; height: 56px;
  border-radius: 14px;
  background: linear-gradient(135deg, #0d6efd, #6610f2);
  display: flex; align-items: center; justify-content: center;
  color: white; font-size: 1.5rem; margin-bottom: 1rem;
}

/* 文章卡片 */
.post-card {
  border: none;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  padding: 1.5rem;
}
.post-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(13,110,253,0.12);
}
.post-card .card-img-top {
  height: 180px;
  object-fit: cover;
}
.post-card .badge {
  font-weight: 500;
  padding: 0.4em 0.8em;
}

/* 文章正文 */
.post-content { max-width: 800px; margin: 0 auto; }
.post-content h1, .post-content h2, .post-content h3 {
  margin-top: 2rem; margin-bottom: 1rem; font-weight: 700;
}
.post-content h1 { font-size: 2rem; border-bottom: 2px solid var(--fn-blue); padding-bottom: 0.5rem; }
.post-content h2 { font-size: 1.5rem; border-left: 4px solid var(--fn-blue); padding-left: 1rem; }
.post-content pre {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 1rem;
  position: relative;
}
.post-content code {
  font-family: "SF Mono", Monaco, "Cascadia Code", monospace;
  font-size: 0.9em;
}
.post-content img { max-width: 100%; border-radius: 8px; margin: 1rem 0; }
.post-content blockquote {
  border-left: 4px solid var(--fn-blue);
  padding-left: 1rem;
  color: #666;
  background: #f8f9fa;
  padding: 1rem 1rem 1rem 1.5rem;
  border-radius: 0 8px 8px 0;
}

/* 目录 - sticky 但限高，避免与下方卡片重叠 */
.toc-sidebar {
  position: sticky;
  top: 80px;
  align-self: flex-start;        /* 关键修复：防止 flex stretch */
  max-height: calc(100vh - 100px);
  overflow: hidden;
}
.toc-sidebar .card-header { flex-shrink: 0; }
.toc-sidebar .list-group {
  max-height: calc(100vh - 200px);
  overflow-y: auto;
}
.toc-sidebar .list-group-item {
  border: none;
  padding: 0.4rem 0.8rem;
  font-size: 0.9rem;
}
.toc-sidebar .list-group-item.active { background: var(--fn-blue); }

/* 评论 */
.comment-box { background: #f8f9fa; border-radius: 12px; padding: 1.5rem; }
.comment-item { border-bottom: 1px solid #eee; padding: 1rem 0; }
.comment-item:last-child { border-bottom: none; }
.comment-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--fn-blue);
  color: white;
  display: flex; align-items: center; justify-content: center;
  font-weight: bold;
  flex-shrink: 0;
}

/* 页脚 */
.site-footer-simple {
  font-size: 0.84rem;
  color: #999;
  background: #f5f6f8;
  border-top: 1px solid #e5e7eb;
  margin-top: 3rem;
}
.site-footer-simple a { color: #777; text-decoration: none; }
.site-footer-simple a:hover { color: #0d6efd; }
.site-footer-simple .footer-left span { margin: 0 0.5rem; color: #ddd; }

/* 暗黑模式切换 */
.theme-toggle {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 1050;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--fn-blue);
  color: white;
  border: none;
  box-shadow: 0 4px 12px rgba(13,110,253,0.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
  cursor: pointer;
}
.theme-toggle:hover { background: var(--fn-dark); }

/* 后台侧边栏 */
.admin-sidebar {
  width: var(--sidebar-width);
  height: 100vh;
  position: fixed;
  left: 0; top: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 100%);
  color: rgba(255,255,255,0.8);
  overflow-y: auto;
  z-index: 1000;
}
.admin-sidebar .brand {
  padding: 1.5rem;
  font-size: 1.3rem;
  font-weight: 700;
  color: white;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.admin-sidebar .nav-link {
  color: rgba(255,255,255,0.7);
  padding: 0.9rem 1.5rem;
  border-radius: 0;
  transition: all 0.2s;
  display: flex;
  align-items: center;
}
.admin-sidebar .nav-link:hover, .admin-sidebar .nav-link.active {
  background: rgba(13,110,253,0.2);
  color: white;
  border-right: 3px solid var(--fn-blue);
}
.admin-sidebar .nav-link i { width: 24px; margin-right: 10px; font-size: 1.1rem; }

.admin-main {
  margin-left: var(--sidebar-width);
  padding: 2rem;
  background: #f8f9fa;
  min-height: 100vh;
}

.stat-card { border: none; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.stat-card .icon-box {
  width: 56px; height: 56px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; color: white;
}
.table-card { border: none; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.table-card .card-header { background: white; border-bottom: 1px solid #eee; padding: 1rem 1.5rem; }
.avatar-sm {
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--fn-blue); color: white;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.8rem;
}
.badge-draft { background: #6c757d; }
.badge-published { background: #198754; }

/* 暗黑模式适配 */
[data-bs-theme="dark"] .post-card,
[data-bs-theme="dark"] .category-card { background: #212529; }
[data-bs-theme="dark"] .hero-section { background: linear-gradient(135deg, #0a58ca 0%, #520dc2 100%); }
[data-bs-theme="dark"] .post-content pre { background: #212529; }
[data-bs-theme="dark"] .post-content blockquote { background: #212529; }
[data-bs-theme="dark"] .comment-box { background: #212529; }
[data-bs-theme="dark"] .admin-main { background: #212529; }
[data-bs-theme="dark"] .stat-card,
[data-bs-theme="dark"] .table-card { background: #2d333b; }
[data-bs-theme="dark"] .table-card .card-header { background: #2d333b; border-color: #444; }
[data-bs-theme="dark"] .table { color: #e6edf3; }

[data-bs-theme="dark"] .card-header { background: #2d333b; color: #e6edf3; border-color: #444; }
[data-bs-theme="dark"] .list-group-item { background: transparent; color: #e6edf3; border-color: #444; }

/* === 首页 feed 文章列表 === */
.feed-item {
  display: flex;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--border);
  gap: 1rem;
}
.feed-item:last-child { border-bottom: none; }
.feed-body { flex: 1; min-width: 0; }
.feed-title {
  font-size: 1.15rem;
  font-weight: 600;
  color: #212529;
  margin-bottom: 0.35rem;
  line-height: 1.5;
}
.feed-title a { color: inherit; text-decoration: none; }
.feed-title a:hover { color: var(--brand); }
.feed-summary {
  font-size: 0.9rem;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
  line-height: 1.6;
}
.feed-meta {
  font-size: 0.8rem;
  color: #adb5bd;
}
.feed-meta span { margin-right: 1rem; }
.feed-meta i { margin-right: 0.25rem; }

/* === 首页三栏布局 === */
/* layout replaced below */

/* === 侧边栏卡片 === */
.card-w {
  background: white;
  border-radius: 12px;
  padding: 1.25rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.card-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--brand);
}
.card-title i { margin-right: 0.5rem; color: var(--brand); }

/* === 左侧分类导航 === */
.cat-nav a {
  display: flex;
  align-items: center;
  padding: 0.5rem 0.75rem;
  color: #495057;
  text-decoration: none;
  border-radius: 8px;
  font-size: 0.9rem;
  transition: all 0.2s;
}
.cat-nav a i { width: 24px; margin-right: 8px; text-align: center; }
.cat-nav a:hover, .cat-nav a.active {
  background: rgba(13,110,253,0.08);
  color: var(--brand);
  font-weight: 600;
}
.cat-nav .more {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-top: 0.5rem;
  padding: 0.25rem 0.75rem;
  display: inline-block;
}

/* === 排行列表 === */
.rank-list { list-style: none; padding: 0; margin: 0; }
.rank-list li { padding: 0.4rem 0; border-bottom: 1px solid var(--border); }
.rank-list li:last-child { border-bottom: none; }
.rank-list a { color: #495057; text-decoration: none; font-size: 0.9rem; }
.rank-list a:hover { color: var(--brand); }
.rn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px; height: 20px;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  margin-right: 6px;
  color: white;
  background: #adb5bd;
}
.r1 { background: #dc3545; }
.r2 { background: #fd7e14; }
.r3 { background: #ffc107; color: #212529; }

/* === 签到卡片 === */
.checkin-card { text-align: center; }

/* === 广告占位 === */
.ad-placeholder {
  height: 250px;
  background: var(--bg);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  font-size: 0.85rem;
}

/* === 首页 Banner === */
.home-banner {
  background: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%);
  color: white;
  padding: 2rem;
  border-radius: 12px;
  margin-bottom: 2rem;
}
.home-banner h1 { font-weight: 700; font-size: 1.8rem; margin-bottom: 0.5rem; }
.home-banner p { opacity: 0.85; margin: 0; font-size: 0.95rem; }

/* === 分页 === */
.pagination-wrap {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
  gap: 0.5rem;
}
.pagination-wrap a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: 8px;
  background: white;
  color: #495057;
  text-decoration: none;
  font-size: 0.9rem;
  border: 1px solid var(--border);
  transition: all 0.2s;
}
.pagination-wrap a:hover { background: var(--brand); color: white; border-color: var(--brand); }
.pagination-wrap a.active { background: var(--brand); color: white; border-color: var(--brand); font-weight: 700; }

/* === 暗黑模式 === */
[data-bs-theme="dark"] .feed-title { color: #e6edf3; }
[data-bs-theme="dark"] .feed-item { border-color: #30363d; }
[data-bs-theme="dark"] .card-w { background: #212529; }
[data-bs-theme="dark"] .cat-nav a { color: #c9d1d9; }
[data-bs-theme="dark"] .rank-list a { color: #c9d1d9; }
[data-bs-theme="dark"] .pagination-wrap a { background: #212529; border-color: #30363d; color: #c9d1d9; }
[data-bs-theme="dark"] .ad-placeholder { background: #212529; }
[data-bs-theme="dark"] .rank-list li { border-color: #30363d; }

/* === 文章详情页 === */
/* post-detail replaced below */
.post-meta { color: var(--text-secondary); font-size: 0.9rem; margin: 0.75rem 0 1.5rem; }
.post-meta span { margin-right: 1.25rem; }
.post-meta i { margin-right: 0.3rem; }

/* === Markdown 正文 === */
.markdown-body { line-height: 1.9; font-size: 1.05rem; color: #212529; padding: 1.5rem; }
.markdown-body h2 { margin-top: 2.5rem; margin-bottom: 1rem; font-size: 1.5rem; font-weight: 700; border-bottom: 2px solid var(--border); padding-bottom: 0.5rem; }
.markdown-body h3 { margin-top: 2rem; margin-bottom: 0.75rem; font-size: 1.25rem; font-weight: 700; }
.markdown-body h4 { margin-top: 1.5rem; font-size: 1.1rem; font-weight: 700; }
.markdown-body p { margin-bottom: 1.2rem; }
.markdown-body pre { background: #f6f8fa; border-radius: 8px; padding: 1rem; overflow-x: auto; margin-bottom: 1.2rem; }
.markdown-body code { font-family: "SF Mono", Monaco, "Cascadia Code", monospace; font-size: 0.88em; background: #f0f0f0; padding: 0.2em 0.4em; border-radius: 4px; }
.markdown-body pre code { background: none; padding: 0; font-size: 0.9em; }
.markdown-body ul, .markdown-body ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.markdown-body li { margin-bottom: 0.25rem; }
.markdown-body blockquote { border-left: 4px solid var(--brand); padding: 0.5rem 1rem; margin: 1rem 0; color: var(--text-secondary); background: var(--bg); border-radius: 0 6px 6px 0; }
.markdown-body img { max-width: 100%; border-radius: 8px; margin: 1rem 0; }
.markdown-body table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.markdown-body th, .markdown-body td { border: 1px solid var(--border); padding: 0.5rem 0.75rem; text-align: left; }
.markdown-body th { background: var(--bg); font-weight: 600; }

[data-bs-theme="dark"] .markdown-body { color: #e6edf3; }
[data-bs-theme="dark"] .markdown-body code { background: #30363d; }
[data-bs-theme="dark"] .markdown-body pre { background: #161b22; }
[data-bs-theme="dark"] .markdown-body blockquote { background: #212529; }
[data-bs-theme="dark"] .markdown-body th { background: #212529; }

/* === 布局修复 === */

/* 主布局 - 让左侧栏窄一点，内容区居中 */
.main-layout {
  display: grid;
  grid-template-columns: 200px 1fr 320px;
  gap: 1.5rem;
  max-width: 1320px;
  margin: 0 auto;
  padding: 1.5rem 1rem;
}
@media (max-width: 1100px) {
  .main-layout { grid-template-columns: 1fr; }
  .left-sidebar, .right-sidebar { display: none; }
}

/* 左栏导航 - 填满 */
.left-sidebar { position: sticky; top: 80px; align-self: start; }
.left-sidebar .card-w { padding: 0.75rem; }

/* 中栏 */
.content-main { min-width: 0; padding: 1.5rem; }

/* 右栏 */
.right-sidebar { position: sticky; top: 80px; align-self: start; }
.right-sidebar .card-w { padding: 1rem 1.25rem; }

/* 排行列表 - 紧凑但清晰 */
.rank-list li { 
  padding: 0.45rem 0; 
  line-height: 1.4;
}
.rank-list a { 
  display: block;
  font-size: 0.85rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 文章详情 - 居中 */
.post-detail-container {
  max-width: 860px;
  margin: 0 auto;
  padding: 2rem 1.5rem 4rem;
}
.post-detail-container .row {
  margin-left: 0;
  margin-right: 0;
}
.post-detail-container .col-lg-9 {
  flex: 0 0 100%;
  max-width: 100%;
  padding: 0;
}

/* 评论区域底部留白，防止和 footer 重叠 */
/* 评论区卡片 */
.comment-section-card {
  margin-top: 1.5rem;
  margin-bottom: 3rem;
  height: auto !important;
}

.comment-section-card .card-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.comment-form-wrap {
  margin-bottom: 1.5rem;
}
.comment-empty {
  margin-bottom: 2rem;
}

/* ========== 分类页 ========== */
.cat-hero {
  position: relative;
  padding: 5rem 1rem 3rem;
  text-align: center;
}
.cat-hero-bg {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 479px;
  background: linear-gradient(180deg, #D2E3F8 0%, #fff 100%);
  z-index: -1;
}
.cat-hero-content { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }
.cat-hero h1 { font-size: 2.2rem; font-weight: 800; color: #1a1a2e; margin-bottom: 0.5rem; }
.cat-hero-desc { color: #555; font-size: 1.05rem; margin-bottom: 1.5rem; }

.cat-search {
  display: flex;
  align-items: center;
  max-width: 480px;
  margin: 0 auto;
  background: #fff;
  border-radius: 50px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08);
  overflow: hidden;
}
.cat-search-icon { color: #999; margin-left: 1.25rem; font-size: 1.1rem; flex-shrink: 0; }
.cat-search-input {
  flex: 1;
  border: none;
  outline: none;
  padding: 0.85rem 0.75rem;
  font-size: 0.95rem;
  background: transparent;
}
.cat-search-btn {
  background: #0d6efd;
  color: #fff;
  border: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  margin-right: 4px;
  cursor: pointer;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.cat-search-btn:hover { background: #0b5ed7; }

.cat-articles {
  padding: 2rem 1rem 4rem;
}
.cat-articles-inner { max-width: 1200px; margin: 0 auto; }

.cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 1.5rem;
}

.cat-card {
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
  display: flex;
  flex-direction: column;
}
.cat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 30px rgba(13,110,253,0.12);
}
.cat-card-img {
  width: 100%;
  height: 180px;
  overflow: hidden;
  background: #e9ecef;
}
.cat-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cat-card-body {
  padding: 1.25rem 1.5rem 1.5rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.cat-badge {
  display: inline-block;
  background: rgba(13,110,253,0.1);
  color: #0d6efd;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  margin-bottom: 0.6rem;
  width: fit-content;
}
.cat-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 0.5rem;
  line-height: 1.5;
}
.cat-card p {
  color: #666;
  font-size: 0.88rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  flex: 1;
}
.cat-card-meta {
  display: flex;
  gap: 1rem;
  font-size: 0.8rem;
  color: #999;
}
.cat-card-meta i { margin-right: 0.25rem; }

/* Pagination */
.cat-pagination {
  display: flex;
  justify-content: center;
  gap: 0.4rem;
  margin-top: 2.5rem;
}
.cat-page-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 0.9rem;
  border-radius: 8px;
  font-size: 0.9rem;
  color: #333;
  text-decoration: none;
  transition: all 0.15s;
}
.cat-page-btn:hover { background: #e9ecef; }
.cat-page-btn.active { background: #0d6efd; color: #fff; }
.cat-page-dots { padding: 0.5rem 0.2rem; color: #999; }

.cat-empty {
  text-align: center;
  padding: 4rem 1rem;
  color: #999;
}
.cat-empty i { font-size: 3rem; display: block; margin-bottom: 0.5rem; }

/* 分类列表页 */
.cat-card-category { align-items: center; justify-content: center; min-height: 200px; }
.cat-card-category .cat-card-body { align-items: center; text-align: center; }
.cat-icon-wrap { margin-bottom: 0.75rem; }
.cat-icon-lg { font-size: 2.5rem; color: #0d6efd; }
.cat-arrow {
  display: inline-flex; align-items: center; gap: 0.3rem;
  color: #0d6efd; font-size: 0.85rem; font-weight: 600; margin-top: 0.5rem;
}

/* Nav按钮 - 蓝色导航栏专用 */
.nav-btn-login {
  background: #fff;
  color: #0d6efd;
  border: 1px solid #fff;
  font-weight: 500;
  padding: 0.35rem 1rem;
  border-radius: 6px;
  font-size: 0.875rem;
  transition: all 0.2s;
}
.nav-btn-login:hover {
  background: rgba(255,255,255,0.85);
  color: #0a58ca;
  border-color: rgba(255,255,255,0.85);
}
.nav-btn-register {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.5);
  font-weight: 500;
  padding: 0.35rem 1rem;
  border-radius: 6px;
  font-size: 0.875rem;
  transition: all 0.2s;
}
.nav-btn-register:hover {
  background: rgba(255,255,255,0.15);
  border-color: #fff;
  color: #fff;
}

/* 认证页面（登录/注册） */
.auth-page {
  max-width: 420px;
  margin: 4rem auto;
  padding: 0 1rem;
}
.auth-page .card-w {
  padding: 2rem;
}
.auth-page h3 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  text-align: center;
}
.auth-footer {
  margin-top: 1rem;
  text-align: center;
  font-size: 0.9rem;
  color: var(--text-secondary);
}


/* 认证页面（登录/注册） */
.auth-page {
  max-width: 420px;
  margin: 4rem auto;
  padding: 0 1rem;
}
.auth-page .card-w {
  padding: 2rem;
}
.auth-page h3 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  text-align: center;
}
.auth-footer {
  margin-top: 1rem;
  text-align: center;
  font-size: 0.9rem;
  color: var(--text-secondary);
}


/* === 首页 Slider === */
.home-slider {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 2rem;
}
.home-slider .carousel-item {
  height: 260px;
}
.home-slider .carousel-item .slide-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.home-slider .slide-content {
  text-align: center;
  color: #fff;
  max-width: 600px;
  padding: 0 2rem;
}
.home-slider .slide-content h2 {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.home-slider .slide-content p {
  font-size: 1rem;
  opacity: 0.9;
  margin-bottom: 1.25rem;
}
/* 整张 slide 可点击 */
.slide-link {
  text-decoration: none;
  color: inherit;
  display: block;
}
.slide-link:hover {
  opacity: 0.95;
}
/* Slide 渐变色 */
.slide-1 { background: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%); }
.slide-2 { background: linear-gradient(135deg, #0a58ca 0%, #d63384 100%); }
.slide-3 { background: linear-gradient(135deg, #198754 0%, #0dcaf0 100%); }
.slide-4 { background: linear-gradient(135deg, #fd7e14 0%, #dc3545 100%); }
/* 指示器 - 圆点 */
/* 左右箭头 - 确保可见可点击 */
.home-slider .carousel-control-prev,
.home-slider .carousel-control-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  z-index: 20;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.home-slider .carousel-control-prev { left: 12px; }
.home-slider .carousel-control-next { right: 12px; }
.home-slider .carousel-control-prev:hover,
.home-slider .carousel-control-next:hover {
  background: rgba(0,0,0,0.45);
}
.home-slider .carousel-control-prev-icon,
.home-slider .carousel-control-next-icon {
  width: 18px;
  height: 18px;
}
/* 指示器 - 圆点 */
.home-slider .carousel-indicators [data-bs-target] {
  width: 10px; height: 10px;
  border-radius: 50%;
  margin: 0 5px;
}
/* 暗黑模式 */
[data-bs-theme=dark] .slide-1 { background: linear-gradient(135deg, #0a58ca 0%, #520dc2 100%); }
[data-bs-theme=dark] .slide-2 { background: linear-gradient(135deg, #084298 0%, #a11d5a 100%); }
[data-bs-theme=dark] .slide-3 { background: linear-gradient(135deg, #146c43 0%, #0a9eac 100%); }
[data-bs-theme=dark] .slide-4 { background: linear-gradient(135deg, #c95e0a 0%, #b02a37 100%); }
