/*
 * Mobile UI/UX Patch — Sprint 1
 * 关联审计: .claude/docs/audits/mobile-ui-2026-05-11.md
 * 关联路线图: .claude/docs/exec-plans/mobile-ui-roadmap.md
 * 修复项: C1 (table 横滚提示) / C3 (navbar-brand 触摸) / H1 (btn 高度) / H5 (modal-lg 留白)
 * 回滚: 删除本文件 + 撤销 include/header.php 一行 link
 */

/* C1 — 表格横滚视觉提示 */
@media (max-width: 768px) {
  .fixed-table-body {
    box-shadow: inset -8px 0 6px -6px rgba(0,0,0,.15);
  }
}

/* C3 — navbar-brand 触摸尺寸（仅移动端；桌面端豁免，避免撑高 navbar）
 * 红队 review 反馈 (Reviewer B / a92fc985)：a_nav.php / nav.php 桌面 navbar 紧凑 brand
 * 不应被强制 44×44，故加 @media (max-width:768px) 包住 */
@media (max-width: 768px) {
  .navbar-brand {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* H1 — 移动端 btn 高度
 * 排除 btn-link（文本链接式按钮）
 * 排除 btn-sm（BS4 约定的密集场景标记，modalVariant 矩阵步进按钮依赖此） */
@media (max-width: 768px) {
  .btn:not(.btn-link):not(.btn-sm) {
    min-height: 44px;
  }
}

/* H5 — modal-lg/xl 在 xs 视口去除浪费白边 */
@media (max-width: 575.98px) {
  .modal-lg .modal-dialog,
  .modal-xl .modal-dialog {
    max-width: calc(100% - 1rem);
    margin: 0.5rem auto;
  }
}

/* H2 — mobile 端收窄 input-group caption（仅 lg/xl，标准 caption 80px 已合理）
 * 红队 review 反馈 (Reviewer B / a48c5e60)：480px 漏掉 iPhone 14/15 Pro 393 / Plus 430 / Pixel 8 412
 * 改 BS4 sm 断点 576px，覆盖全部主流移动设备
 * 注：德语长 label（Bestellungen 等）在 70/84px 容器会触发 BS4 input-group 默认 wrap 到第二行，
 * 不截断、信息完整，作为可接受代价 */
@media (max-width: 575.98px) {
  .caption-lg {
    width: 70px;
  }
  .caption-xl {
    width: 84px;
  }
}

/* ============================================================
 * Sprint 3 — 微优化批
 * 关联: .claude/docs/exec-plans/mobile-ui-roadmap.md Sprint 3
 * ============================================================ */

/* M3 — safe-area-inset 适配（iOS 全面屏 / Dynamic Island） */
body {
  padding-top: calc(4rem + env(safe-area-inset-top, 0px));
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

/* M4 — navbar #myTitle 长公司名截断（防破版）
 * 红队 review (Reviewer B / a554f4e3) P1：calc(100vw - 200px) 在 <320px 设备变负值
 * (iPhone SE1 320 / Galaxy Fold 外屏 280) CSS 规范化为 0 → 标题消失
 * 用 max(140px, ...) 保底：140px 容纳 5-6 中文字符，最小屏可读 */
#myTitle {
  max-width: max(140px, calc(100vw - 200px));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
}

/* M5 — 移动端表格行收紧（节省垂直空间） */
@media (max-width: 768px) {
  .table-sm td,
  .table-sm th {
    padding: 0.3rem 0.25rem;
  }
}

/* L3 — 尊重用户 reduced-motion 偏好（a11y）
 * 红队 review (Reviewer B / a554f4e3) P1：0.01ms 在 Safari < 15 不派发 transitionend
 * → BS4 modal/dropdown shown/hidden 回调不触发 → backdrop 残留
 * 用 1ms：仍是"瞬时"用户感知，但保证 transitionend 触发兼容 WebKit bug */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
}
