/* 学术星轨 — 应用壳层补丁（app shell patch）
 *
 * 为什么独立于打包样式：src/styles/index.css 长期处于多会话共享在制状态（语义色
 * 清扫等批量修改进行中），壳级首屏修正需要一条与之解耦的冷路径——由 index.html
 * 以 <link rel="stylesheet"> 直连本文件。CSP style-src 'self' 允许同源样式表；
 * sw.js 对导航请求网络优先，更新可达。选择器一律带 .app-header 祖先前缀压过
 * 基类特异性（0-2-0 > 基类 0-1-0），与打包 CSS 的注入顺序无关。
 * 职责边界：只收「壳层」（顶栏/首屏视口）跨端修正；组件级样式仍归打包 CSS。
 * 若日后 index.css 可稳定编辑，可把对应段落并入其媒体查询后删除本文件与 link。
 */

/* —— 手机顶栏溢出修复 ——
 * 390px 实测（2026-09-20 线上）：顶栏动作区 7 个在流控件 + 6×6px 间距 = 416px，
 * 而顶栏内容盒仅 ~324px（两侧 28px 内边距 + 竖滚条）；flex 项 min-width:auto
 * 使 .header-actions 撑破 sticky 顶栏，主 CTA「登录」被裁出视口外且不可横滑。
 * 双管齐下：
 *   ① 收紧两侧内边距与控件间距/内边距（中文场景 ~344px 完全放下，无需滚动）；
 *   ② overflow-x:auto 作兜底（英文标签更宽、未来加控件时不再裁切，可横滑达）。
 * 弹层安全：view-mode 下拉在 ≤900px 已由 index.css 隐藏，此处 overflow 裁剪
 * 不会伤到任何顶栏弹层；.global-progress 为 position:fixed 不受影响。
 * 断点沿用 M3 惯例 480dp（compact window 上限），与既有 ≤640/≤900 收敛层叠兼容。
 *
 * 夜巡五修订（2026-10-05，375 实测）：nowrap 单行已装不下——.lang-toggle 自带
 * overflow:hidden → 自动最小尺寸=0，被 flex-shrink 压成 W2（中/EN 不可见）；
 * overflow-x 兜底也从未生效（scrollable=false，溢出全被 shrink 吃掉，无物可滑）。
 * 修订为两行化：首行 CTA/图标件，二行次级件（lang/world order:10 右对齐），
 * 全部控件零剥夺可见可达；flex:none 反收缩保险（换行而非收缩承担溢出）。
 * overflow-x:auto 保留为极端宽标签兜底（wrap 后无溢出则不滚动，无害）。 */
@media (max-width: 480px) {
  .app-header {
    padding-left: 10px;
    padding-right: 10px;
  }
  .app-header .header-actions {
    gap: 4px;
    flex-wrap: wrap;
    row-gap: 6px;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .app-header .header-actions .lang-toggle,
  .app-header .header-actions .world-switch {
    flex: none;
    order: 10;
  }
  .app-header .header-actions::-webkit-scrollbar {
    display: none;
  }
  /* 双世界切换胶囊：两枚 tiny 按钮 4px 10px → 4px 7px（一枚各省 6px，共 12px） */
  .app-header .world-switch .btn {
    padding-left: 7px;
    padding-right: 7px;
  }
  /* 主 CTA（登录）：9px 18px → 9px 12px（省 12px），文字不折行由既有规则保证 */
  .app-header .header-actions .btn.primary {
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* —— 语义色文本令牌兼容垫片（色清扫过渡期专用）——
 * index.css 在制清扫删除了 --ok-text / --warn-text / --danger-text / --info-text
 * 四个「文本对比度优化色」令牌定义，但 JSX 内联样式仍有 31 处无兜底 var 引用
 * （CitationGraph / DiscoverPanel / IntelPanel / LabInventoryPanel 等，2026-09-21
 * 清点）。清扫会话 JSX 侧收口前，此处按清扫前原值恢复定义，渲染逐字节不变；
 * 收口后（JSX 全部改带兜底或改用新令牌）本段可随壳层清理一并移除。
 * 注意：这里刻意不别名到 --ok/--warn/--danger——原 *-text 值是为浅色底小字
 * AA 对比度调过的深变体，直接用主色会掉到 ~2.2:1。 */
:root {
  --ok-text: #047857;
  --warn-text: #92400e;
  --danger-text: #b91c1c;
  --info-text: #1d4ed8;
}
[data-theme='dark'] {
  --ok-text: #30d158;
  --warn-text: #ffb340;
  --danger-text: #ff6961;
  --info-text: #6cb0ff;
}
