/* 51pay 全终端适配层 v1（只做增强，不改原结构与原样式） */
:root {
  --saft: env(safe-area-inset-top, 0px);
  --safb: env(safe-area-inset-bottom, 0px);
  --safl: env(safe-area-inset-left, 0px);
  --safr: env(safe-area-inset-right, 0px);
  --tap: 44px;
}
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 84px; }
body { overflow-x: clip; }

/* 媒体与长内容兜底 */
img, svg, video, canvas, iframe { max-width: 100%; }
p, li, td, th, label, h1, h2, h3, h4, .val, .addr, .mono { overflow-wrap: anywhere; }
pre, code { overflow-wrap: anywhere; white-space: pre-wrap; }

/* 表格（账单/客户/付款单列表）窄屏横向可滑，不再挤成一团 */
table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
table th, table td { white-space: nowrap; }
@media (max-width: 820px) {
  table th, table td { padding-left: 12px; padding-right: 12px; }
}

/* 视口高度：先 vh 再 dvh（移动端地址栏收放不再抖） */
body, .login-wrap { min-height: 100vh; min-height: 100dvh; }
.hero { min-height: min(78vh, calc(100vh - 64px)); min-height: min(78dvh, calc(100dvh - 64px)); }

/* 顶部导航/顶栏：刘海屏不被挡 + 锚点跳转不被盖 */
nav, .topbar { padding-top: calc(var(--saft)) !important; }
section[id], [id].card, .sec { scroll-margin-top: 84px; }

/* 触控体验：文字链/小图标按钮全尺寸都能点中（不只在手机上） */
button, .btn, a.btn, [onclick], select, input[type="checkbox"], input[type="radio"] { touch-action: manipulation; }
a.hide-m, nav a, .topbar a, .navlinks a { padding-top: 9px !important; padding-bottom: 9px !important; }
#pwEye { min-width: var(--tap) !important; min-height: var(--tap) !important; }
@media (max-width: 820px) {
  /* iOS 聚焦自动放大：表单字号必须 ≥16px */
  input, textarea, select { font-size: 16px !important; min-height: var(--tap); }
  textarea { min-height: 84px; }
  button, .btn, a.btn { min-height: var(--tap); }
  /* 语言下拉在手机上别挤 */
  .lang, .langpill, .langbtn { font-size: 16px !important; min-height: 34px; padding: 4px 10px; }
}

/* 底部固定元素：统一抬到安全区之上，互不重叠 */
.toast { bottom: calc(26px + var(--safb)) !important; max-width: min(92vw, 640px) !important; }
#payToast { bottom: calc(32px + var(--safb)) !important; }
body > div[style*="bottom:12px"] { bottom: calc(12px + var(--safb)) !important; }
body > div[style*="bottom:16px"] { bottom: calc(16px + var(--safb)) !important; }
body { padding-bottom: calc(var(--safb)) !important; }

/* 横屏矮视口（手机横过来）：压缩纵向留白 */
@media (orientation: landscape) and (max-height: 560px) {
  section, .sec { padding-top: 26px !important; padding-bottom: 26px !important; }
  .hero { min-height: 60vh !important; min-height: 60dvh !important; }
  .card, .wrap { padding-top: 18px !important; padding-bottom: 18px !important; }
  nav, .topbar { padding-top: 6px !important; padding-bottom: 6px !important; }
}

/* 窄屏（≤480）再收一档 */
@media (max-width: 480px) {
  .wrap, .card { padding-left: 14px !important; padding-right: 14px !important; }
  h1 { font-size: clamp(22px, 7vw, 30px) !important; }
  .stat .vl, .amount, .kpi b { font-variant-numeric: tabular-nums; }
}

/* 大屏：正文别被拉太长 */
@media (min-width: 1600px) {
  .wrap, .container { max-width: 1320px; }
}

/* 触屏设备（平板、触屏笔记本）不看宽度，一律按手指标准：字号 16px + 目标 44px */
@media (hover: none) and (pointer: coarse) {
  input, textarea, select { font-size: 16px !important; min-height: var(--tap); }
  button, .btn, a.btn { min-height: var(--tap); }
  .lang, .langpill, .langbtn { font-size: 16px !important; min-height: 36px; }
  table { -webkit-overflow-scrolling: touch; }
}

/* 键盘/读屏可见焦点 */
:focus-visible { outline: 2px solid #993556; outline-offset: 2px; border-radius: 6px; }

/* 减少动效偏好 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* 打印/存档：隐藏浮层 */
@media print {
  .toast, #payToast, .lang, .langpill, body > div[style*="position:fixed"] { display: none !important; }
}
