/* ============================================================
   枕星妖楼 · 移动端公共补充适配（2026-09-09）
   加载顺序：theme.css / perf.css / macao.css 之后（最后一个加载），
   只做"不溢出、点得到、尊重安全区"的基础能力，不破坏游戏舞台配色。
   生效断点：≤860px（与全站既有断点一致）。
   ============================================================ */

/* ---------- 全局防溢出 ---------- */
img, canvas, video, svg { max-width: 100%; }
/* 嵌入式 SVG 图标（spark 折线等）豁免：等比缩放即可，无需额外处理 */
p, li, td, th, dd, dt { overflow-wrap: anywhere; }
.row-flex > * { min-width: 0; }
.row-flex > input, .row-flex > select, .row-flex > textarea { min-width: 140px; }

/* ---------- 视口高度：兼容移动地址栏动态伸缩 ---------- */
body { min-height: 100vh; min-height: 100dvh; }
.auth-wrap { min-height: calc(100vh - 74px); min-height: calc(100dvh - 74px); }

/* ---------- 安全区（刘海/底部手势条） ---------- */
.navbar {
    padding-left: max(13px, env(safe-area-inset-left)) !important;
    padding-right: max(13px, env(safe-area-inset-right)) !important;
    padding-top: max(8px, env(safe-area-inset-top));
}
.container, .content {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
    padding-bottom: max(26px, calc(env(safe-area-inset-bottom) + 18px));
}
#sfxToggle {
    bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
    right: calc(14px + env(safe-area-inset-right, 0px)) !important;
}

/* ---------- 表格：统一由 .tbl-wrap 管横向滚动 ----------
   覆盖 compact.css 的 `table { display:block }`——块级表格会破坏
   列宽语义，统一改回 table 布局、外层容器滚动。
   注：compact.css 在 body 末尾加载、同优先级会后来居上，故此处加 !important。 */
@media (max-width: 860px) {
    table { display: table !important; max-width: 100%; overflow-x: visible; }
    /* 管理后台 #utable/#ktable 已卡片化（admin.html 自带规则），整表放行不再强制表格布局 */
    #utable, #utable tbody, #utable tr, #utable td,
    #ktable, #ktable tbody, #ktable tr, #ktable td { display: revert !important; }
    #utable thead, #ktable thead { display: none !important; }
    /* 未被 .tbl-wrap 包裹的裸表格就地可滚（base.html 页面无自动包裹脚本） */
    .card > table, .dcard > table, .container > table {
        display: block !important; max-width: 100%; overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .tbl-wrap { -webkit-overflow-scrolling: touch; }
    .tbl-wrap table { min-width: 100%; }
    .tbl-wrap table.tbl-wide { min-width: 560px; }
    /* 审计页裸表格容器（自带 overflow-x，补 touch 滚动与列宽下限） */
    .audit-table { -webkit-overflow-scrolling: touch; }
    .audit-table table { min-width: 560px; }

    /* ---------- 触控目标与 iOS 输入字号 ---------- */
    input, select, textarea { font-size: 16px; }   /* ≥16px 防 iOS 聚焦自动放大 */
    .btn, button { min-height: 42px; }
    button.small, .btn.small { min-height: 36px; }
    .chip, .pill { min-height: 30px; }
    .navbar .nav-right a { padding: 12px 12px; font-size: 13px; }
    .side-group a, .side-foot .btn-logut { padding: 12px 13px; }
    .icon-btn { min-width: 40px; min-height: 40px; }

    /* ---------- 仪表盘图表：标签可换行不重叠 ---------- */
    .bar-col .lb { white-space: normal; text-align: center; line-height: 1.2; }

    /* ---------- 长内容截断 ---------- */
    .dcard .kv .v, .stat .num { overflow-wrap: anywhere; }
    .api-item .lnk, .key-text { word-break: break-all; }
}

/* ---------- 卡片网格：360px 级窄屏单列（拉平避免嵌套 @media 兼容问题） ---------- */
@media (max-width: 390px) {
    .game-grid { grid-template-columns: 1fr; }
    .stat { min-width: 100%; }
}

/* ---------- 焦点可见性（键盘/读屏可达） ---------- */
a:focus-visible, button:focus-visible, .btn:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--seal); outline-offset: 2px;
}

/* reduced-motion 已在 theme.css 定义，此处不重复 */
