/* ============================================================
   ScholarAI 响应式适配 — 仅移动端 / 平板规则
   ------------------------------------------------------------
   设计约束（见 docs/feature-briefs/web-responsive-adaptation.md）：
   - 本文件只含 max-width 媒体查询；桌面端（≥961px）基础样式完全不被触及。
   - 本文件须在页面 <head> 中最后加载（晚于各页内联 <style>），
     以便移动端规则以源顺序覆盖内联写死的多列栅格。
   - 功能不缺失：导航、表单、表格、图表、弹窗、语言切换、账户菜单在移动端均保留。

   统一断点基准（所有页面必须对齐，禁止再出现 600/640/800/860/900/1100 等散点）：
     ≤960px  平板 + 手机（抽屉导航、双列栅格）
     ≤768px  手机（单列栅格、表单堆叠、触控 44px）
     ≤480px  小屏手机
     ≤390px  最小手机（视觉回归底线，纯增量收紧）
     桌面基准 1440px（桌面端样式，不在本移动文件内）
   ============================================================ */

/* ── 移动专属元素默认态（桌面隐藏） ── */
.mobile-nav-toggle { display: none; }

.nav-backdrop {
  position: fixed; inset: 0;
  background: rgba(8, 14, 26, 0.5);
  z-index: 90;
  opacity: 0; visibility: hidden;
  transition: opacity 0.3s var(--ease-expo);
}
.nav-backdrop.show { opacity: 1; visibility: visible; }

/* 汉堡按钮外观（仅 ≤960 显示，见下） */
.mobile-nav-toggle {
  width: 40px; height: 40px; flex-shrink: 0;
  display: none; align-items: center; justify-content: center;
  border-radius: var(--r-md);
  border: 1px solid var(--paper-border);
  background: #FFF; color: var(--ink);
  cursor: pointer; padding: 0;
}
.mobile-nav-toggle svg { width: 22px; height: 22px; }

/* ============================================================
   ≤960px：平板 + 手机
   ============================================================ */
@media (max-width: 960px) {

  /* ── App 端侧边栏 → 离屏抽屉（覆盖 v2-style 中 display:none） ── */
  .sidebar {
    transform: translateX(-100%);
    transition: transform 0.3s var(--ease-expo);
    display: flex;
    width: min(280px, 82vw);
    min-width: min(280px, 82vw);
    z-index: 100;
    box-shadow: 0 0 40px rgba(8, 14, 26, 0.3);
  }
  .app-shell.nav-open .sidebar { transform: none; }
  .sidebar-toggle-btn { display: none !important; }

  .header {
    margin-left: 0; max-width: 100vw;
    padding-left: var(--sp-4); padding-right: var(--sp-4);
    gap: var(--sp-3);
  }
  .header-breadcrumb {
    min-width: 0; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
  }
  .header-actions { gap: var(--sp-2); flex-shrink: 0; }

  .main { margin-left: 0; max-width: 100vw; }

  .mobile-nav-toggle { display: inline-flex; }

  /* ── Landing 顶部导航汉堡（启用 v2-style 中已禁用按钮） ── */
  .site-nav .mobile-menu-btn,
  .nav .mobile-menu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;              /* 触摸友好最小尺寸，避免按钮塌陷为 8×0px 不可点击 */
    height: 44px;
    margin-left: auto;        /* 顶栏仅留 Logo + 汉堡，账号操作收进抽屉 */
    flex-shrink: 0;
    padding: 0;
    border: none;
    background: none;
    color: var(--ink);
    cursor: pointer;
  }
  .site-nav .mobile-menu-btn svg,
  .nav .mobile-menu-btn svg {
    width: 24px;
    height: 24px;
    display: block;
  }
  .site-nav .nav-inner,
  .nav .nav-inner { padding: 0 16px; gap: 12px; }
  .site-nav .nav-links,
  .nav .nav-links {
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--paper);
    border-bottom: 1px solid var(--paper-border);
    padding: var(--sp-2) 0;
    box-shadow: var(--shadow-lg);
    display: none;
    max-height: calc(100vh - 60px);
    overflow-y: auto;
  }
  .site-nav .nav-links.open,
  .nav .nav-links.open { display: flex; }
  .site-nav .nav-links a:not(.btn),
  .nav .nav-links a:not(.btn) { padding: var(--sp-3) var(--sp-4); }
  .site-nav .nav-links a::after,
  .nav .nav-links a::after { display: none; }

  /* 顶栏账号区（登录 / 免费试用）在移动端收进抽屉，避免 390px 截断 */
  .site-nav .nav-actions,
  .site-nav .nav-user,
  .nav .nav-actions,
  .nav .nav-user { display: none; }
  .site-nav .nav-links.open .nav-actions,
  .site-nav .nav-links.open .nav-user,
  .nav .nav-links.open .nav-actions,
  .nav .nav-links.open .nav-user { display: flex; }
  .site-nav .nav-links.open .nav-actions,
  .site-nav .nav-links.open .nav-user,
  .nav .nav-links.open .nav-actions,
  .nav .nav-links.open .nav-user {
    flex-direction: column; align-items: stretch; gap: 8px;
    padding: 12px 16px; border-top: 1px solid var(--paper-border);
  }
  .site-nav .nav-links.open .nav-actions .btn,
  .site-nav .nav-links.open .nav-user .btn,
  .nav .nav-links.open .nav-actions .btn,
  .nav .nav-links.open .nav-user .btn { width: 100%; justify-content: center; }
  .site-nav .nav-links.open .nav-user .user-dropdown,
  .nav .nav-links.open .nav-user .user-dropdown { width: 100%; }
  /* 移动端抽屉：避开 nav-links 的 overflow 裁切，下拉改为点击展开 + 静态定位，随抽屉滚动 */
  .site-nav .nav-links.open .user-dropdown .dropdown-menu,
  .nav .nav-links.open .user-dropdown .dropdown-menu {
    position: static; display: block; box-shadow: none;
    margin-top: 8px; width: 100%; border: 1px solid var(--paper-border);
  }

  /* ── 多列栅格：平板降为 2 列 ── */
  .features-grid,
  .stats-grid,
  .quick-stats,
  .rd-stats,
  .testimonial-grid,
  .quick-actions,
  .footer-links,
  .pf-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  /* ── 复杂表格：横向滚动，列与操作按钮全部保留 ── */
  .table-shell { overflow-x: auto; }
  .table-shell > table { min-width: 640px; }

  /* ── 触控友好 ── */
  .nav-actions { gap: 6px; }
}

/* ============================================================
   ≤768px：手机
   ============================================================ */
@media (max-width: 768px) {

  /* 栅格单列 */
  .features-grid,
  .stats-grid,
  .quick-stats,
  .rd-stats,
  .testimonial-grid,
  .quick-actions,
  .footer-links,
  .pf-stats {
    grid-template-columns: 1fr;
  }

  /* 表单 / 双列布局堆叠（功能不缺失，仅重排） */
  .upload-wall { grid-template-columns: 1fr; min-height: 0; }
  .upload-dropzone {
    border-right: none;
    border-bottom: 1px solid var(--paper-border);
  }
  .pf-banner-inner { flex-wrap: wrap; }
  .pf-edit-btn { width: 100%; justify-content: center; }

  /* 任务卡片（reviewer 工作台）堆叠，操作按钮换行可见 */
  .ws-task { grid-template-columns: 1fr; }
  .ws-task-right {
    align-items: flex-start; text-align: left;
    flex-direction: row; flex-wrap: wrap;
  }

  /* 主内容内边距收紧（覆盖部分页面内联 padding） */
  .main { padding: var(--sp-4) !important; }
  .header { padding-top: var(--sp-3); padding-bottom: var(--sp-3); }

  /* 标题缩放，避免溢出 */
  .section-heading { font-size: var(--text-2xl); }
  .page-hero h1 { font-size: var(--text-2xl); }
  .section-title-lg { font-size: 24px; }

  /* 触控目标 & 输入（input 16px 防 iOS 聚焦缩放） */
  input, select, textarea { font-size: 16px; }
  .btn, .btn-primary, .btn-outline, .btn--primary, .btn--ghost,
  .filter-chip, .page-btn, .ws-page-btn, .rd-btn, .bm-btn,
  .site-nav .lang-switch {
    min-height: 44px;
  }
  .btn-block, .bm-btn.block, .bp-side .bm-btn.block { width: 100%; }

  /* 弹窗收紧 */
  .modal { padding: var(--sp-5); width: auto; }
  .modal h3 { font-size: 20px; }
  .modal .btn, .modal .btn-primary, .modal .btn-outline { width: 100%; }

  /* Toast 在窄屏避免被遮挡 / 键盘顶起 */
  .toast-container { top: auto; bottom: 16px; left: 12px; right: 12px; }
  .toast { width: 100%; }

  /* 雷达图容器自适应 */
  .radar-container { max-width: 100%; }
  .radar-container canvas { max-width: 100%; height: auto; }
}

/* ============================================================
   ≤480px：小屏手机
   ============================================================ */
@media (max-width: 480px) {
  .section-heading { font-size: var(--text-xl); }
  .page-hero h1 { font-size: var(--text-xl); }
  .stats-section { padding: 48px 16px; }
  .footer-content { flex-direction: column; gap: 32px; }
  .header-actions .credits-badge { font-size: 12px; padding: 5px 10px; }
}

/* ============================================================
   任务详情：评分区 4 → 2 → 1（覆盖行内写死的 grid-template-columns）
   ============================================================ */
@media (max-width: 960px) {
  .score-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
  .score-grid { grid-template-columns: 1fr !important; }
}

/* ============================================================
   ≤390px：最小手机（视觉回归底线，纯增量收紧，不影响以上各档）
   ============================================================ */
@media (max-width: 390px) {
  .nav-inner { padding: 0 12px; }
  .footer { padding: 32px 12px; }
  .section-heading { font-size: var(--text-lg); }
  .page-hero h1 { font-size: var(--text-xl); }
  .btn, .btn--primary, .btn--ghost { padding-left: var(--sp-3); padding-right: var(--sp-3); }
  .modal { padding: var(--sp-4); }
}
