/* pc.css — 桌面端全新设计 v3（≥900px 启用）
   布局：顶部磨砂玻璃导航 + 居中限宽容器（1180px）+ 卡片化内容
   之前的左侧 224px 侧栏已废弃：它导致所有 fixed 底栏/遮罩错位。
   移动端（<900px）完全沿用 base.css 手机版，本文件不干预。 */

.pc-nav { display: none; }

/* 站点页脚：移动端隐藏，桌面端在 @media 内显示 */
.pc-footer { display: none; }

@media (min-width: 900px) {
  :root {
    --pch: 64px;            /* 顶部导航高度 */
    --pc-max: 1180px;       /* 内容最大宽度 */
    --pc-ink: #22303F;
    --pc-line: #E8E3D8;
    --pc-blue: #2C7BB0;
    --pc-blue-d: #1E5A86;
    --pc-red: #C8553D;
  }

  /* rem 基准：与手机等比但整体更精致（1rem = 56px）
     滚动条始终占位，避免 margin:auto 居中容器因滚动条出现/消失而左右偏移 */
  html { font-size: 56px; }

  body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center; /* 让 #app 在交叉轴居中，配合 width:100%+max-width 实现限宽容器 */
    background:
      radial-gradient(1200px 520px at 72% -8%, rgba(44,123,176,0.10), transparent 62%),
      radial-gradient(900px 480px at 2% 112%, rgba(200,85,61,0.07), transparent 60%),
      radial-gradient(1100px 520px at 50% -10%, rgba(232,205,139,0.08), transparent 55%),
      linear-gradient(160deg, #F7F5EF 0%, #F1F3F6 100%);
  }
  body::before {
    content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
    background-image: radial-gradient(rgba(44,123,176,0.07) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.45), transparent 70%);
  }

  /* ===== 顶部导航（px 定尺，不随 rem 缩放） ===== */
  .pc-nav {
    display: block; position: fixed; top: 0; left: 0; right: 0; height: var(--pch); z-index: 760;
    background: rgba(255,255,255,0.86); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(34,48,63,0.08);
  }
  .pc-nav-inner { max-width: var(--pc-max); margin: 0 auto; height: 100%; display: flex; align-items: center; gap: 28px; padding: 0 24px; }
  .pc-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
  .pc-logo { width: 38px; height: 38px; border-radius: 50%; object-fit: cover;
    display: block; flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(44,123,176,0.28);
    cursor: pointer; transition: transform .15s, box-shadow .15s; }
  .pc-logo:hover { transform: scale(1.05); box-shadow: 0 6px 16px rgba(44,123,176,0.36); }
  .pc-brand-name { font-size: 17px; font-weight: 700; color: var(--pc-ink); letter-spacing: 0.5px; line-height: 1.2; }
  .pc-brand-sub { font-size: 11px; color: #948B7D; margin-top: 1px; }
  .pc-menu { display: flex; align-items: center; gap: 6px; flex: 1; }
  .pc-nav-item { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px;
    font-size: 14px; color: #5C6672; text-decoration: none; cursor: pointer; white-space: nowrap;
    transition: background .15s, color .15s, box-shadow .15s; }
  .pc-nav-item:hover { background: rgba(44,123,176,0.08); color: var(--pc-blue); }
  .pc-nav-item.active { background: var(--pc-blue); color: #fff; font-weight: 600; box-shadow: 0 4px 12px rgba(44,123,176,0.30); }
  .pc-nav-ico { display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; }
  .pc-nav-ico svg { width: 100%; height: 100%; }
  .pc-right { display: flex; align-items: center; gap: 12px; position: relative; }
  .pc-mbtn { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; white-space: nowrap;
    border: 1px solid rgba(44,123,176,0.35); background: #fff; color: var(--pc-blue);
    font-size: 13px; padding: 7px 14px; border-radius: 999px; cursor: pointer; transition: background .15s, border-color .15s; }
  .pc-mbtn:hover { background: rgba(44,123,176,0.08); }
  .pc-mbtn-ico { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; flex-shrink: 0; }
  .pc-mbtn-ico svg { width: 100%; height: 100%; }
  /* 原「手机访问」弹层样式：入口已改为「个人主页」外链（grzy.870512.xyz），
     此处暂时保留样式，便于随时回滚成弹层方案。当前无 DOM 引用。 */
  .pc-mpop { display: none; position: absolute; top: 46px; right: 0; width: 320px; background: #fff;
    border: 1px solid var(--pc-line); border-radius: 14px; padding: 16px; z-index: 790;
    box-shadow: 0 16px 48px rgba(20,30,50,0.18); }
  .pc-mpop.show { display: block; }
  .pc-mpop-title { font-size: 14px; font-weight: 700; color: var(--pc-ink); margin-bottom: 10px; }
  .pc-mpop-url { display: flex; align-items: center; justify-content: space-between; gap: 8px;
    font-size: 12.5px; color: #3B4652; word-break: break-all; line-height: 1.5;
    background: #F4F6F8; padding: 9px 11px; border-radius: 9px; }
  .pc-mcopy { flex-shrink: 0; cursor: pointer; color: var(--pc-blue); font-size: 12px; font-weight: 600;
    padding: 3px 8px; border-radius: 7px; transition: background .15s; white-space: nowrap; }
  .pc-mcopy:hover { background: rgba(44,123,176,0.10); }
  .pc-mpop-note { margin-top: 10px; font-size: 12px; color: #948B7D; line-height: 1.6; }

  /* ===== 内容容器：居中限宽 =====
     body 已是 flex column + align-items:center；#app 用 width:100% 让 flex item 在交叉轴撑满，
     再用 max-width 限制最大宽度，避免 margin:0 auto 在 flex 中导致收缩到内容宽度。 */
  #app {
    width: 100%; max-width: var(--pc-max); margin: 0 auto; position: static;
    flex: 1; min-height: 100vh; padding: calc(var(--pch) + 16px) 24px 0.28rem;
    background: transparent; box-shadow: none;
  }

  /* 页面走普通文档流、窗口滚动；压过页面私有 CSS 的 height:100vh / flex 布局 */
  #app .page { display: block !important; height: auto !important; min-height: auto !important; padding-bottom: 0.42rem; }
  #app .page-scroll, #app .quiz-scroll { flex: none !important; overflow: visible !important; height: auto !important; max-height: none !important; }

  /* 页面级顶栏（带返回键）→ 悬浮卡片式 */
  #app .navbar {
    position: sticky; top: calc(var(--pch) + 10px); z-index: 600; height: 52px;
    margin: 4px 0 16px; padding: 0 10px; border-radius: 14px;
    background: rgba(255,255,255,0.92); backdrop-filter: blur(10px);
    border: 1px solid rgba(34,48,63,0.06); box-shadow: 0 6px 24px rgba(20,30,50,0.07);
  }
  #app .navbar .nb-title { color: var(--pc-ink); font-size: 16px; font-weight: 700; }
  #app .navbar .nb-back { color: var(--pc-ink); }
  #app .top-bar {
    margin: 4px 0 16px; padding: 12px 16px; border-radius: 14px;
    background: rgba(255,255,255,0.92); backdrop-filter: blur(10px);
    border: 1px solid rgba(34,48,63,0.06); box-shadow: 0 6px 24px rgba(20,30,50,0.07);
  }

  /* 手机底部 tab 隐藏（由顶部导航取代） */
  .tabbar { display: none !important; }

  /* 悬浮加号：贴内容区右下（跟随限宽容器，不再飞到屏幕角落） */
  .fab { right: max(24px, calc(50vw - var(--pc-max) / 2 + 10px)); bottom: 36px; }

  /* ===== 固定底部操作栏：全宽磨砂条 + 按钮居中限宽 =====
     （页面私有 CSS 的 left:0/right:0 现在是正确值，不再与侧栏冲突） */
  #app .bottom-bar {
    left: 0 !important; right: 0 !important;
    display: flex !important; justify-content: center !important; gap: 16px;
    background: rgba(255,255,255,0.94) !important; backdrop-filter: blur(10px);
    box-shadow: 0 -8px 30px rgba(20,30,50,0.08) !important;
    padding: 14px max(24px, calc(50vw - var(--pc-max) / 2)) 16px !important;
  }
  #app .bottom-bar .btn { max-width: 360px; flex: 1; }
  .page-no-tab { padding-bottom: 0.8rem !important; }

  /* ===== 考试答题页：恢复 flex 固定布局，题目区独立滚动，答题卡+底栏固定底部 =====
     （pc.css 全局把页面改成普通文档流，考试页必须一屏内完成答题） */
  #app .page.page-exam-quiz {
    display: flex !important;
    flex-direction: column !important;
    height: calc(100vh - var(--pch) - 20px - 1.6rem) !important;
    min-height: auto !important;
    padding-bottom: 0 !important;
  }
  #app .page.page-exam-quiz .quiz-scroll {
    flex: 1 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    max-height: none !important;
  }
  #app .page.page-exam-quiz .question-card {
    flex: 1 !important;
    min-height: 0 !important;
    overflow-y: auto !important;
  }
  #app .page.page-exam-quiz .answer-sheet { flex-shrink: 0 !important; margin-top: 0.16rem !important; }
  #app .page.page-exam-quiz .bottom-bar {
    position: relative !important;
    left: auto !important; right: auto !important;
    justify-content: space-between !important;
    gap: 0 !important;
    padding: 0.16rem 0.24rem !important;
    flex-shrink: 0 !important;
  }

  /* admin 批量底栏同理 */
  #page-admin .batch-bar { left: 0 !important; right: 0 !important; z-index: 650 !important;
    padding-left: max(24px, calc(50vw - var(--pc-max) / 2)) !important;
    padding-right: max(24px, calc(50vw - var(--pc-max) / 2)) !important;
    background: rgba(255,255,255,0.96) !important; backdrop-filter: blur(10px); }

  /* ===== 遮罩层级：全部压过顶部导航（760），修复弹层被导航穿透 ===== */
  .img-mask, .wm-mask, .qr-preview-mask { z-index: 940 !important; }
  .sheet-mask { z-index: 920 !important; }
  .swipe-mask { z-index: 700 !important; }

  /* 弹窗：居中、圆角、限宽 */
  .mask { align-items: center; }
  .modal-mask .pop, .mask .pop { width: auto; min-width: 320px; max-width: 560px; border-radius: 18px; }
  .daily-content { width: 600px; max-width: 92vw; height: auto; max-height: 82vh; border-radius: 18px; }

  /* 底部动作表 → 居中菜单卡片（桌面不该从底部滑出） */
  .mask.bottom { align-items: center !important; justify-content: center !important; }
  .mask.bottom .sheet { width: 400px !important; border-radius: 18px !important;
    padding: 10px 12px 12px !important; box-shadow: 0 24px 64px rgba(20,30,50,0.24); }
  .mask.bottom .pop.bottom { border-radius: 18px; }

  /* ===== 首页仪表盘（桌面主视觉 + 清晰层级） ===== */
  .pc-dashboard { display: block; margin: 0.06rem 0 0.32rem; padding: 0.28rem 0.44rem 0.36rem;
    border-radius: 26px; border: 1px solid rgba(44,123,176,0.12);
    background:
      radial-gradient(620px 300px at 10% 0%, rgba(44,123,176,0.12), transparent 60%),
      radial-gradient(480px 260px at 98% 100%, rgba(232,205,139,0.16), transparent 55%),
      linear-gradient(120deg, #FFFFFF 0%, #F5F9FC 55%, #FDF7F0 100%);
    box-shadow: 0 24px 64px rgba(30,60,90,0.11), inset 0 1px 0 rgba(255,255,255,0.8); }
  .pc-hero { display: flex; align-items: center; gap: 0.72rem; }
  .pc-hero-left { flex: 1; min-width: 0; }
  .pc-dash-kicker { display: flex; align-items: center; gap: 0.12rem;
    font-size: 0.22rem; font-weight: 700; letter-spacing: 0.09rem; color: var(--pc-blue);
    opacity: 0.85; margin-bottom: 0.18rem; text-transform: uppercase; }
  .pc-dash-kicker::before { content: ''; width: 0.38rem; height: 2px; background: var(--pc-blue); border-radius: 2px; opacity: 0.5; }
  .pc-hero-title { margin: 0; font-size: 0.66rem; font-weight: 800; color: var(--pc-ink); letter-spacing: 0.02rem;
    font-family: "Songti SC","STSong",serif; line-height: 1.18; }
  .pc-hero-sub { margin: 0.2rem 0 0; font-size: 0.26rem; color: #6E665A; line-height: 1.7; max-width: 6.8rem; }
  .pc-cta-row { display: flex; align-items: center; gap: 0.2rem; margin-top: 0.36rem; flex-wrap: wrap; }
  .pc-cta-primary, .pc-cta-ghost { display: inline-flex; align-items: center; gap: 0.12rem; cursor: pointer;
    font-size: 0.3rem; font-weight: 700; border-radius: 14px; padding: 0.18rem 0.4rem; transition: transform .16s, box-shadow .2s, background .2s; }
  .pc-cta-primary { color: #fff; border: 1px solid transparent;
    background: linear-gradient(135deg, var(--pc-blue), var(--pc-blue-d));
    box-shadow: 0 12px 28px rgba(44,123,176,0.34); }
  .pc-cta-primary:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(44,123,176,0.42); }
  .pc-cta-ghost { color: var(--pc-blue); background: #fff; border: 1px solid rgba(44,123,176,0.4); }
  .pc-cta-ghost:hover { background: rgba(44,123,176,0.08); transform: translateY(-3px); }
  .pc-cta-ico { display: inline-flex; width: 0.34rem; height: 0.34rem; }
  .pc-cta-ico svg { width: 100%; height: 100%; }
  .pc-search { display: flex; align-items: center; gap: 0.14rem; margin-top: 0.4rem; max-width: 6.8rem;
    background: #fff; border: 1px solid var(--pc-line); border-radius: 14px; padding: 0.18rem 0.26rem;
    box-shadow: 0 6px 18px rgba(30,60,90,0.06); transition: border-color .2s, box-shadow .2s; }
  .pc-search:focus-within { border-color: rgba(44,123,176,0.55); box-shadow: 0 6px 22px rgba(44,123,176,0.12); }
  .pc-search-ico { display: inline-flex; width: 0.3rem; height: 0.3rem; color: #948B7D; flex-shrink: 0; }
  .pc-search-ico svg { width: 100%; height: 100%; }
  .pc-search-input { flex: 1; min-width: 0; font-size: 0.26rem; color: var(--pc-ink); background: transparent; border: none; outline: none; height: 0.48rem; line-height: 0.48rem; }
  .pc-search-clear { font-size: 0.26rem; color: #948B7D; padding: 0 0.06rem; cursor: pointer; flex-shrink: 0; }
  .pc-hero-right { flex-shrink: 0; width: 5.8rem; max-width: 44%; }
  .pc-hero-img { width: 100%; border-radius: 20px; display: block; box-shadow: 0 20px 54px rgba(30,60,90,0.20);
    border: 1px solid rgba(255,255,255,0.8); object-fit: cover; aspect-ratio: 3 / 2; }

  /* ===== 首页两大板块：题库 / 考试（横向排布，各自成卡） ===== */
  .cat-section-mobile { display: none; }   /* 移动端题库列表，PC 隐藏（PC 用 pc-sec-bank 内列表） */

  .pc-sec { margin-top: 0.28rem; padding: 0.3rem 0.4rem; border-radius: 22px;
    border: 1px solid rgba(44,123,176,0.12); background: #fff;
    box-shadow: 0 16px 44px rgba(30,60,90,0.08); }
  .pc-sec-exam { background: linear-gradient(160deg, #FFFFFF 0%, #FBF7F1 100%); border-color: rgba(200,85,61,0.12); }
  .pc-sec-head { display: flex; align-items: center; gap: 0.18rem; margin-bottom: 0.2rem; }
  /* 小尺寸配图作图标：0.6rem(≈34px)，比初版 1.16rem(≈65px) 收敛一半。
     ⚠️ 尺寸约束不可删——pc-bank.png / pc-exam.png 原始 1024x1024，
     一旦丢失约束（如缓存新旧文件混用）会按原分辨率撑爆布局。 */
  .pc-sec-img { flex-shrink: 0; width: 0.6rem; height: 0.6rem; border-radius: 0.16rem; object-fit: cover;
    box-shadow: 0 4px 14px rgba(30,60,90,0.12); border: 1px solid rgba(255,255,255,0.75); }
  .pc-sec-titles { flex: 1; min-width: 0; }
  .pc-sec-title { font-size: 0.4rem; font-weight: 800; color: var(--pc-ink); font-family: "Songti SC","STSong",serif; letter-spacing: 0.02rem; }
  .pc-sec-sub { margin-top: 0.06rem; font-size: 0.22rem; color: #948B7D; }
  .pc-sec-btn { flex-shrink: 0; cursor: pointer; font-family: inherit; font-size: 0.23rem; font-weight: 700;
    color: #fff; border: none; border-radius: 999px; padding: 0.15rem 0.32rem;
    background: linear-gradient(135deg, var(--pc-blue), var(--pc-blue-d)); box-shadow: 0 10px 24px rgba(44,123,176,0.32);
    transition: transform .15s, box-shadow .2s; }
  .pc-sec-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(44,123,176,0.38); }

  /* 板块内空态 */
  .pc-empty { display: flex; flex-direction: column; align-items: center; gap: 0.1rem; padding: 0.5rem 0; text-align: center; }
  .pc-empty-ico { width: 0.7rem; height: 0.7rem; border-radius: 50%; background: rgba(200,85,61,0.08); display: inline-flex; align-items: center; justify-content: center; }
  .pc-empty-ico svg { width: 0.36rem; height: 0.36rem; }
  .pc-empty-text { font-size: 0.26rem; font-weight: 700; color: var(--pc-ink); margin-top: 0.06rem; }
  .pc-empty-sub { font-size: 0.2rem; color: #948B7D; }

  /* 考试网格 + 卡片（一行三列） */
  .pc-exam-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.16rem; }
  .pc-exam-card { position: relative; background: #FFFDFB; border: 1px solid rgba(200,85,61,0.16); border-radius: 16px;
    padding: 0.22rem 0.26rem; cursor: pointer; transition: transform .15s, box-shadow .2s, border-color .2s; }
  .pc-exam-card:hover { transform: translateY(-4px); box-shadow: 0 16px 38px rgba(200,85,61,0.14); border-color: rgba(200,85,61,0.32); }
  .pc-exam-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.14rem; }
  .pc-exam-name { font-size: 0.28rem; font-weight: 700; color: var(--pc-ink); line-height: 1.35; word-break: break-all;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
  .pc-exam-more { flex-shrink: 0; width: 0.54rem; height: 0.54rem; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    color: #948B7D; font-size: 0.36rem; cursor: pointer; transition: background .15s; }
  .pc-exam-more:hover { background: rgba(44,123,176,0.08); color: var(--pc-blue); }
  .pc-exam-tags { display: flex; gap: 0.12rem; margin-top: 0.12rem; }
  .pc-exam-mode, .pc-exam-status { font-size: 0.19rem; font-weight: 600; padding: 0.05rem 0.14rem; border-radius: 999px; }
  .pc-exam-mode.single { color: #3B8FC4; background: rgba(59,143,196,0.10); }
  .pc-exam-mode.multi { color: #D49A3F; background: rgba(212,154,63,0.12); }
  .pc-exam-status { color: #948B7D; background: rgba(148,139,125,0.10); }
  .pc-exam-status.ongoing { color: #2E8B57; background: rgba(46,139,87,0.12); }
  .pc-exam-status.ended { color: #C8553D; background: rgba(200,85,61,0.10); }
  .pc-exam-status.upcoming { color: #2C7BB0; background: rgba(44,123,176,0.10); }
  .pc-exam-meta { margin-top: 0.12rem; font-size: 0.2rem; color: #6E665A; display: flex; flex-wrap: wrap; gap: 0.08rem; align-items: center; }
  .pc-exam-meta .dot { color: #C8C2B8; }
  .pc-exam-wrong { margin-top: 0.1rem; display: inline-flex; align-items: center; font-size: 0.2rem; font-weight: 600; color: #C8553D;
    background: rgba(200,85,61,0.08); border: 1px solid rgba(200,85,61,0.18); padding: 0.05rem 0.14rem; border-radius: 999px; cursor: pointer; }

  /* 题库板块内列表头（buildCatSection 自带「题库列表」标题），与板块间距收敛 */
  .pc-sec-bank .header-row { padding: 0.12rem 0 0.08rem; }
  .pc-sec-bank .cat-list { padding: 0.1rem 0 0; }

  /* PC 题库列表：一题库占一行，卡片更舒展 */
  .pc-sec-bank .cat-list { display: flex; flex-direction: column; gap: 0.16rem; }
  .pc-sec-bank .cat-card { align-items: center; padding: 0.22rem 0.28rem; border-radius: 18px;
    background: #FFFCF8; border: 1px solid rgba(44,123,176,0.10); box-shadow: 0 10px 28px rgba(30,60,90,0.06);
    transition: transform .15s, box-shadow .2s, border-color .2s; }
  .pc-sec-bank .cat-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(30,60,90,0.12); border-color: rgba(44,123,176,0.22); }
  .pc-sec-bank .cat-bar { width: 0.06rem; border-radius: 0.06rem; margin-right: 0.28rem; }
  .pc-sec-bank .cat-content { display: flex; flex-direction: column; gap: 0.12rem; width: 100%; }
  .pc-sec-bank .cat-info { flex: 1; min-width: 0; }
  .pc-sec-bank .cat-header { align-items: center; }
  .pc-sec-bank .cat-name { font-size: 0.3rem; }
  .pc-sec-bank .cat-more-btn { font-size: 0.22rem; padding: 0.12rem 0.22rem; border-radius: 999px;
    background: #F7F4EC; border: 1px solid #E7E0D2; color: #6E665A; transition: background .15s, color .15s; }
  .pc-sec-bank .cat-more-btn:hover { background: rgba(44,123,176,0.10); color: var(--pc-blue); border-color: rgba(44,123,176,0.25); }

  /* PC 每题库专属 3 入口：与题数同一行，靠右横向排列 */
  .pc-sec-bank .cat-meta-row { margin-top: 0.14rem; align-items: center; }
  .pc-sec-bank .cat-actions { display: none !important; }
  .pc-sec-bank .cat-actions-pc { display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0.12rem; margin-top: 0; }
  .cat-action-pc { display: inline-flex; align-items: center; gap: 0.08rem; cursor: pointer; font-family: inherit;
    padding: 0.1rem 0.2rem; border-radius: 999px; font-size: 0.2rem; font-weight: 600;
    background: #fff; border: 1px solid #E7E0D2; transition: background .15s, transform .15s, border-color .2s, box-shadow .2s; }
  .cat-action-pc:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(30,60,90,0.08); }
  .cat-action-pc.practice { color: #3B8FC4; border-color: rgba(59,143,196,0.35); }
  .cat-action-pc.practice:hover { background: rgba(59,143,196,0.08); border-color: rgba(59,143,196,0.55); }
  .cat-action-pc.daily { color: #D49A3F; border-color: rgba(212,154,63,0.35); }
  .cat-action-pc.daily:hover { background: rgba(212,154,63,0.08); border-color: rgba(212,154,63,0.55); }
  .cat-action-pc.wrong { color: #C8553D; border-color: rgba(200,85,61,0.35); }
  .cat-action-pc.wrong:hover { background: rgba(200,85,61,0.08); border-color: rgba(200,85,61,0.55); }
  .cap-ico { display: inline-flex; width: 0.24rem; height: 0.24rem; flex-shrink: 0; }
  .cap-ico svg { width: 100%; height: 100%; }

  /* ===== 首页 Hero（与「网盘清洗 tc-hero」「专家抽取 td-hero」同款蓝渐变，无背景图、无暗色叠加） ===== */
  .pc-dash-hero { display: flex; flex-direction: column; gap: 0.14rem;
    background: linear-gradient(135deg, #2C7BB0 0%, #1E5A86 100%);
    color: #fff; border-radius: 0.26rem; padding: 0.32rem 0.44rem 0.30rem;
    box-shadow: 0 16px 42px rgba(44,123,176,0.22);
    border: 1px solid rgba(255,255,255,0.16);
    margin-bottom: 0.28rem; }
  .pc-dash-hero-brand { display: flex; align-items: center; gap: 0.22rem; }
  .pc-dash-hero-ico { width: 0.74rem; height: 0.74rem; border-radius: 0.2rem; background: rgba(255,255,255,0.16);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .pc-dash-hero-ico svg { width: 0.4rem; height: 0.4rem; stroke: #fff; }
  .pc-dash-kicker { font-size: 0.22rem; font-weight: 700; letter-spacing: 0.09rem; color: rgba(255,255,255,0.78); text-transform: uppercase; margin-bottom: 0.06rem; }
  .pc-dash-title { margin: 0; font-size: 0.48rem; font-weight: 800; color: #fff; letter-spacing: 0.02rem;
    font-family: "Songti SC","STSong",serif; line-height: 1.18; }
  .pc-dash-sub { margin: 0.08rem 0 0; font-size: 0.24rem; color: rgba(255,255,255,0.86); line-height: 1.6; }
  /* 搜索框：与 tc-search 一致的浅底白卡，置于 hero 最底部 */
  .pc-dash-hero-search .pc-search { margin-top: 0; max-width: none; background: #fff; border: 1px solid #fff;
    box-shadow: 0 8px 24px rgba(20,30,45,0.16); }
  .pc-dash-hero-search .pc-search-input { color: #2B2B33; }
  .pc-dash-hero-search .pc-search-input::placeholder { color: #948B7D; }

  /* 移动端蓝色 hero 在桌面端隐藏（主视觉与搜索已并入 pc-dashboard） */
  .hero { display: none; }
  .header-row { padding-left: 0; padding-right: 0; }

  /* ===== 列表多列网格 ===== */
  .cat-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: 0.24rem; padding: 0.24rem 0; }
  .cat-card-wrap { margin-bottom: 0; }
  .exam-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: 0.22rem; padding: 0.24rem 0; }
  .exam-card { margin-bottom: 0; }
  #view-wrong .wrong-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: 0.22rem; }
  .q-list, .rank-list, .help-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: 0.22rem; }
  .cat-card-wrap, .exam-card { transition: transform .15s, box-shadow .2s; }
  .cat-card-wrap:hover, .exam-card:hover { transform: translateY(-3px); }

  /* 表单 / 长文限宽居中 */
  .page > .card, .upload-card, .result-wrap, .result-box,
  .privacy .page > div, .help .page > div { max-width: 800px; margin-left: auto; margin-right: auto; }
  .step-content { max-width: 860px; margin-left: auto; margin-right: auto; }

  /* 桌面滚动条 */
  ::-webkit-scrollbar { width: 10px; height: 10px; }
  ::-webkit-scrollbar-track { background: transparent; }
  ::-webkit-scrollbar-thumb { background: rgba(44,123,176,0.28); border-radius: 6px; }
  ::-webkit-scrollbar-thumb:hover { background: rgba(44,123,176,0.45); }
  * { scrollbar-width: thin; scrollbar-color: rgba(44,123,176,0.3) transparent; }

  /* ===== 站点页脚（PC 全局，锚定全站；footer 在 #app 外，body 是 flex column+align-items:center，
     必须显式 width:100% 才能让 flex item 在交叉轴撑满到 max-width，避免收缩到内容宽度） ===== */
  .pc-footer { display: block; width: 100%; max-width: var(--pc-max); margin: 0.12rem auto 0; }
  .pc-footer-inner { position: relative; padding: 0.46rem 24px;
    display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
    background:
      radial-gradient(520px 260px at 0% 0%, rgba(44,123,176,0.10), transparent 55%),
      radial-gradient(420px 220px at 100% 100%, rgba(232,205,139,0.12), transparent 55%),
      linear-gradient(160deg, #FFFFFF 0%, #F8FAFC 100%);
    border: 1px solid rgba(44,123,176,0.14); border-radius: 26px;
    box-shadow: 0 20px 56px rgba(30,60,90,0.11), inset 0 1px 0 rgba(255,255,255,0.8);
    overflow: hidden; }
  .pc-footer-inner::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
    background: linear-gradient(180deg, var(--pc-blue), var(--pc-blue-d)); }
  .pc-footer-brand { display: flex; align-items: center; gap: 0.12rem; font-size: 0.3rem; font-weight: 800; color: var(--pc-ink);
    font-family: "Songti SC","STSong",serif; margin-bottom: 0.18rem; letter-spacing: 0.02rem; }
  .pc-footer-brand::after { content: ''; flex: 1; height: 1px; min-width: 0.6rem; background: linear-gradient(90deg, var(--pc-line), transparent); }
  .pc-footer-links { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; }
  .pc-footer-link-grid { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.16rem 0.42rem; }
  .pc-footer-link { display: flex; align-items: center; gap: 0.12rem; text-decoration: none;
    padding: 0.08rem 0.1rem; border-radius: 8px; margin: -0.08rem -0.1rem;
    color: #5C6672; transition: color .15s, transform .15s, background .15s, box-shadow .15s; }
  .pc-footer-link:hover { color: var(--pc-blue); transform: translateY(-2px); background: rgba(44,123,176,0.07);
    box-shadow: 0 6px 16px rgba(44,123,176,0.08); }
  .pc-fl-ico { display: inline-flex; align-items: center; justify-content: center; width: 0.38rem; height: 0.38rem;
    border-radius: 10px; font-size: 0.22rem; line-height: 1; background: rgba(44,123,176,0.08); }
  .pc-footer-link:hover .pc-fl-ico { background: rgba(44,123,176,0.14); }
  .pc-fl-text { display: flex; flex-direction: column; line-height: 1.28; }
  .pc-fl-name { font-size: 0.26rem; font-weight: 700; }
  .pc-fl-host { font-size: 0.18rem; color: #948B7D; }
  .pc-footer-qr { display: flex; gap: 0.38rem; flex-shrink: 0; }
  .pc-qr-item { display: flex; flex-direction: column; align-items: center; gap: 0.1rem; }
  .pc-qr-img { width: 1.72rem; height: 1.72rem; border-radius: 16px; border: 1px solid var(--pc-line);
    background: #fff; padding: 0.08rem; box-shadow: 0 10px 28px rgba(30,60,90,0.13);
    transition: transform .2s, box-shadow .2s; }
  .pc-qr-img:hover { transform: translateY(-4px) scale(1.03); box-shadow: 0 16px 40px rgba(30,60,90,0.18); }
  .pc-qr-label { font-size: 0.22rem; color: #6E665A; font-weight: 700; letter-spacing: 0.02rem; }
  .pc-footer-bottom { margin-top: 0.22rem; padding: 0.2rem 0 0.46rem;
    text-align: center; font-size: 0.24rem; color: #948B7D;
    border-top: 1px dashed rgba(34,48,63,0.10); }
  .pc-footer-bottom strong { color: var(--pc-blue); font-weight: 800; }
  .pc-footer-bottom .pc-footer-mp { text-decoration: none; }
  .pc-footer-bottom .pc-footer-mp strong { border-bottom: 1px solid currentColor; }
  .pc-footer-bottom .pc-footer-mp:hover strong { opacity: 0.72; }

  /* ===== 我的页面：PC 端统一功能面板，网格大卡片 ===== */
  #app:has(.page-me) { min-height: auto; padding-bottom: 0.2rem; }
  #app:has(.page-me) + .pc-footer { margin-top: 0.12rem; }
  .page-me { width: 100%; min-height: auto !important; padding-bottom: 0.2rem; }
  .page-me .me-hero { margin-bottom: 0.32rem; border-radius: 0.32rem; }
  .page-me .me-body { padding: 0; }
  .page-me .me-services { max-width: 920px; margin: 0 auto; border-radius: 0.32rem; }
  .page-me .me-services-head { padding: 0.28rem 0.32rem; }
  .page-me .me-grid { grid-template-columns: repeat(3, 1fr); gap: 0.16rem; padding: 0.24rem; }
  .page-me .me-cell { border: 0; border-radius: 0.2rem; padding: 0.28rem 0.24rem; background: #F8FAFC; }
  .page-me .me-cell:hover { background: #fff; box-shadow: 0 10px 28px rgba(44,123,176,0.11); transform: translateY(-2px); }
  .page-me .me-cell-ico { width: 0.6rem; height: 0.6rem; border-radius: 0.18rem; }
  .page-me .me-cell-ico svg { width: 0.3rem; height: 0.3rem; }
  .page-me .me-cell-title { font-size: 0.25rem; }
  .page-me .me-cell-desc { font-size: 0.19rem; }
  .page-me .me-version { margin-top: 0.2rem; padding: 0.16rem 0 0.06rem; }

  /* ===== 练习报告页（result.js）：PC 端卡片居中、精致圆环与按钮 ===== */
  #view-result .report { max-width: 560px; margin: 0.32rem auto; padding: 0.46rem 0.48rem 0.42rem; }
  #view-result .circle-wrap { width: 1.6rem; height: 1.86rem; margin-bottom: 0.16rem; }
  #view-result .circle-bg { border-width: 0.14rem; }
  #view-result .circle-score { font-size: 0.56rem; }
  #view-result .circle-label { font-size: 0.2rem; bottom: 0; }
  #view-result .bar-wrap { height: 0.14rem; margin: 0.32rem 0 0.28rem; }
  #view-result .stats { padding: 0.06rem 0; }
  #view-result .stat-n { font-size: 0.36rem; }
  #view-result .stat-l { font-size: 0.19rem; margin-top: 0.08rem; }
  #view-result .stat-divider { height: 0.44rem; }
  #view-result .btns { max-width: 560px; margin: 0 auto; padding: 0; justify-content: center; gap: 0.18rem; }
  #view-result .btns button { flex: 0 0 auto; min-width: 2rem; padding: 0.16rem 0.46rem; font-size: 0.24rem; border-radius: 999px; }
  #view-result .btns .btn-ghost { border-radius: 999px; }

  /* ===== 每日任务弹窗（index.js）：PC 端居中紧凑弹窗、去掉内部滚动、统一日历网格 ===== */
  .daily-mask .daily-content { width: 560px; max-width: 92vw; max-height: none; height: auto; border-radius: 0.24rem; }
  .daily-mask .daily-content .modal-header { padding: 0.32rem 0.36rem 0.24rem; }
  .daily-mask .daily-content .days-setter { padding: 0.16rem 0.36rem; }
  .daily-mask .daily-content .pop-desc { margin: 0.12rem 0.36rem !important; font-size: 0.24rem; }
  .daily-mask .daily-content .daily-cal { overflow-y: visible; padding: 0.1rem 0.32rem 0.16rem; gap: 0.08rem; grid-auto-rows: 0.72rem; }
  .daily-mask .daily-content .dc-h { font-size: 0.2rem; }
  .daily-mask .daily-content .dc-cell { min-height: 0; border-radius: 0.1rem; }
  .daily-mask .daily-content .dc-num { font-size: 0.22rem; line-height: 1.15; }
  .daily-mask .daily-content .dc-cnt { font-size: 0.17rem; margin-top: 0.04rem; line-height: 1.15; white-space: nowrap; }
  .daily-mask .daily-content .btn-row { padding: 0.2rem 0.32rem 0.28rem; }
  .daily-mask .daily-content .btn-row .btn { padding: 0.18rem 0; font-size: 0.26rem; border-radius: 0.12rem; }
}

/* 超大屏：网格更密 */
@media (min-width: 1400px) {
  .cat-list, .exam-list, #view-wrong .wrong-list, .q-list, .rank-list, .help-list {
    grid-template-columns: repeat(auto-fill, minmax(4.4rem, 1fr));
  }
}

/* 中等桌面（900–1180px）：板块收紧，避免溢出 */
@media (max-width: 1180px) and (min-width: 900px) {
  #app { padding: calc(var(--pch) + 14px) 20px 0.28rem; }
  .pc-dashboard { padding: 0.28rem 0.36rem 0.34rem; border-radius: 22px; }
  .pc-dash-hero { padding: 0.28rem 0.36rem 0.26rem; border-radius: 0.22rem; }
  .pc-dash-hero-ico { width: 0.62rem; height: 0.62rem; }
  .pc-dash-hero-ico svg { width: 0.34rem; height: 0.34rem; }
  .pc-dash-title { font-size: 0.42rem; }
  .pc-dash-sub { font-size: 0.21rem; }
  .pc-dash-kicker { font-size: 0.2rem; }
  .pc-sec { margin-top: 0.24rem; padding: 0.26rem 0.32rem; }
  .pc-sec-img { width: 0.52rem; height: 0.52rem; }
  .pc-sec-title { font-size: 0.36rem; }
  .pc-exam-grid { grid-template-columns: repeat(3, 1fr); gap: 0.14rem; }
  .pc-exam-card { padding: 0.18rem 0.2rem; }
  .pc-sec-bank .cat-card { padding: 0.2rem 0.24rem; }
  .pc-sec-bank .cat-actions-pc { flex-wrap: wrap; gap: 0.08rem; }
  .cat-action-pc { padding: 0.08rem 0.14rem; font-size: 0.18rem; }
}

/* ===== 顶部导航响应式收口（900–1180px 小视口） =====
   原 .pc-nav-inner gap:28px + 5 个导航项 + 品牌副标题，在 ~900px 宽时会被挤压：
   导航项文字换行、pill 圆角被压成圆形。此处缩小间距/字号、隐藏副标题、禁止文字换行。 */
@media (max-width: 1180px) and (min-width: 900px) {
  .pc-nav-inner { gap: 14px; padding: 0 16px; }
  .pc-brand { flex-shrink: 0; }
  .pc-brand-name { font-size: 16px; }
  .pc-brand-sub { display: none; }            /* 小视口隐藏副标题，避免换行占位 */
  .pc-logo { width: 34px; height: 34px; border-radius: 50%; }
  .pc-menu { gap: 2px; }
  .pc-nav-item { padding: 7px 12px; font-size: 13px; white-space: nowrap; flex-shrink: 0; }
  .pc-nav-ico { width: 15px; height: 15px; }
  .pc-right { flex-shrink: 0; gap: 8px; }
  .pc-mbtn { font-size: 12px; padding: 6px 11px; }
}

/* 极端小视口（900–1000px）：进一步收紧，确保 6 个导航项 + 品牌 + 个人主页按钮不溢出 */
@media (max-width: 1000px) and (min-width: 900px) {
  .pc-nav-inner { gap: 8px; padding: 0 12px; }
  .pc-nav-item { padding: 6px 9px; font-size: 12px; gap: 4px; }
  .pc-nav-ico { width: 14px; height: 14px; }
  .pc-brand-name { font-size: 15px; }
  .pc-mbtn { font-size: 11px; padding: 5px 9px; }
}
