/* ========== 全局字体规范（详见 计划.md「八、前端字体规范」） ==========
   正文 16px / 辅助 14px / 最小 12px，一律用 rem（随用户浏览器字号设置缩放）。
   根字号统一 16px：旧版移动端 14px 导致全站字小、表单 14px 触发 iOS 聚焦放大。
   Tabler 默认 body 0.875rem(14px) 偏小，按官方文档用 --tblr-body-font-size 覆盖为 1rem。 */
html {
  font-size: 16px;
  /* 禁止整页橡皮筋回弹/下拉刷新，移动端更接近原生 App（后续 PWA 化基础） */
  overscroll-behavior: none;
}

:root {
  --tblr-body-font-size: 1rem;      /* Tabler 官方变量：正文 16px（默认 0.875rem） */
  --tblr-body-line-height: 1.6;     /* 移动端阅读推荐 1.5~1.6 */
}

/* 表单控件 ≥16px，防止 iOS Safari 聚焦时自动放大页面 */
.form-control,
.form-select {
  font-size: 1rem;
}

/* 卡片标题：Tabler h4 默认 0.875rem 在 16px 根下偏小，统一提到 17px */
.card-title {
  font-size: 1.0625rem;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  overscroll-behavior: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
}

/* iPhone 刘海屏安全区（配合 viewport-fit=cover） */
.footer {
  padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
}
.navbar {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* ========== 个人中心 ========== */

/* 移动端 logo 绝对居中（左上角给抽屉按钮、右上角给导航折叠按钮） */
.navbar-brand-center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
@media (min-width: 992px) {
  .navbar-brand-center {
    position: static;
    transform: none;
  }
}

/* 右侧导航抽屉（lg 以下）：宽度约屏幕七成五，避免满屏 */
.navbar-offcanvas {
  --tblr-offcanvas-width: min(300px, 78vw);
}
@media (max-width: 991.98px) {
  /* 无 logo 头，仅右上角悬浮关闭按钮 */
  .navbar-offcanvas-close {
    position: absolute;
    top: 14px;
    inset-inline-end: 14px;
    z-index: 5;
    width: 14px;
    height: 14px;
    padding: 8px;
    box-sizing: content-box;
  }
  .navbar-offcanvas .offcanvas-body {
    padding-top: 52px; /* 给悬浮关闭按钮留位 */
  }
}

/* ---- 公共抽屉菜单条目（右上角抽屉与桌面侧导航共用：字号、padding、圆角、hover、active 统一） ---- */
.side-menu {
  width: 100%;
  margin: 0;
  padding: 4px 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.side-menu .list-group-item,
.side-menu .list-group-item.text-muted {
  margin: 2px 8px;
  padding: 11px 14px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #354052;
  font-weight: 500;
  font-size: .9375rem;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}
.side-menu .list-group-item + .list-group-item {
  border-top: 0;
}

/* 抽屉菜单分组分割线（站点导航 / 账号 / 积分） */
.side-menu-divider {
  height: 1px;
  margin: 6px 14px;
  background: #e6e9f0;
}
.side-menu .list-group-item-action:hover,
.side-menu .list-group-item-action:focus {
  background: #f1f3f9;
  color: #667eea;
  text-decoration: none;
}
.side-menu .list-group-item.active,
.side-menu .list-group-item.active:hover,
.side-menu .list-group-item.active:focus {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-color: transparent;
  color: #fff;
  text-decoration: none;
}
/* 抽屉里的表单（如退出登录）去掉浏览器默认 margin/padding */
.side-menu .side-menu-form {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  display: block;
  width: 100%;
}
.side-menu .side-menu-form .list-group-item-action {
  width: 100%;
  text-align: left;
  background: transparent;
  color: #354052;
}

/* 窄屏抽屉内部 */
@media (max-width: 991.98px) {
  .user-sidenav .offcanvas-header {
    padding: 14px 16px;
    border-bottom: 1px solid #eef0f5;
  }
  .user-sidenav .offcanvas-body {
    padding: 6px 0;
  }
  .user-sidenav .btn-close {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    padding: 8px;
    box-sizing: content-box;
  }

  /* 移动端抽屉菜单：加大字号/触控区，保持圆角卡片风；分组用 .side-menu-divider 分割（避免条目边框+分割线叠成双线） */
  .side-menu {
    padding: 4px 0;
  }
  .side-menu .list-group-item,
  .side-menu .list-group-item.text-muted {
    margin: 2px 8px;
    padding: 14px 16px;
    border: 0;
    border-radius: 8px;
    font-size: 16px;
    line-height: 1.4;
  }
  .side-menu .list-group-item i {
    font-size: 20px !important;
  }
  .side-menu .list-group-item.active,
  .side-menu .list-group-item.active:hover,
  .side-menu .list-group-item.active:focus {
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(102, 106, 234, .35);
  }
}

/* lg 以上静态态：Tabler 默认把 offcanvas-body 设为 flex 会使菜单缩到左侧，改回块级撑满 */
@media (min-width: 992px) {
  .user-sidenav,
  .user-sidenav .offcanvas-body {
    width: 100%;
  }
  .user-sidenav .offcanvas-body {
    display: block !important;
    flex-grow: 0;
    padding: 0;
    overflow: visible;
  }
  /* 桌面端菜单容器：白色圆角卡片，非激活项在白底上保证可读 */
  .user-sidenav .side-menu {
    padding: 6px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(20, 30, 60, .06);
  }
  .user-sidenav .side-menu .list-group-item {
    margin: 2px 0;
  }
}
.user-hero {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border: none;
  border-radius: 14px;
  color: #fff;
}
.user-hero .avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 38px;
  flex-shrink: 0;
}
.user-card {
  border: 1px solid #e9ecf3;
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(98, 105, 125, .06);
}
.points-balance-card {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border: none;
  border-radius: 14px;
  color: #fff;
}
.stat-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.tx-amount-plus { color: #2fb344; font-weight: 600; }
.tx-amount-minus { color: #d63939; font-weight: 600; }
