/* 星空：多机型 / 大小屏 / 横竖屏 / 安全区适配 */
:root {
  /* 竖屏 IM 不需要左右安全区；部分安卓会误报超大 inset-left 把整页顶到右边 */
  --sal: 0px;
  --sar: 0px;
  /* 动态可视高度：JS 写入 --vvh，兜底 100dvh / 100% */
  --app-h: var(--vvh, 100dvh);
}
@media (orientation: landscape) {
  :root {
    --sal: min(24px, env(safe-area-inset-left, 0px));
    --sar: min(24px, env(safe-area-inset-right, 0px));
  }
}

html {
  height: 100%;
  height: 100dvh;
  overflow: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  height: 100%;
  height: var(--app-h);
  max-height: var(--app-h);
  overflow: hidden;
  overscroll-behavior: none;
  -webkit-overflow-scrolling: touch;
}
.screen {
  width: 100%;
  max-width: 100%;
  height: var(--app-h);
  max-height: var(--app-h);
  left: 0;
  right: 0;
  top: 0;
  bottom: auto;
  /* 竖屏不左右 padding，避免误报 safe-area 把聊天整体挤偏右 */
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
@media (orientation: landscape) {
  .screen {
    padding-left: var(--sal);
    padding-right: var(--sar);
  }
}

/* 防止横向撑破 */
.screen, .main-page, .chat-body, .list, .auth-wrap {
  max-width: 100%;
}
img, video, canvas {
  max-width: 100%;
}

/* 触摸热区：避免小屏难点 */
.nav-back, .nav-right, .tab, .ci-btn, .cp-item, .cell {
  min-height: 44px;
}
.ci-btn {
  min-width: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ---------- 小屏手机（≤360，如 SE / 部分安卓） ---------- */
@media (max-width: 360px) {
  body { font-size: 15px; }
  .nav-title { font-size: 16px; }
  .nav-back { width: 42px; font-size: 24px; }
  .cell { padding: 10px 12px; }
  .cell-icon { margin-right: 10px; }
  .avatar { width: 42px; height: 42px; }
  .avatar.sm { width: 34px; height: 34px; }
  .chat-body { padding: 10px 8px 4px; }
  .msg-content { max-width: 78%; margin: 0 6px; }
  .bubble.video { max-width: min(200px, 48vw); max-height: 220px; }
  .bubble.loc { min-width: 150px; max-width: 200px; }
  .bubble.voice { max-width: 180px; }
  .auth-wrap { padding: 20px 16px calc(24px + var(--sab)); }
  .auth-title { font-size: 18px; }
  .cp-page {
    grid-template-columns: repeat(4, 1fr);
    padding: 12px 4px 8px;
    row-gap: 10px;
  }
  .cp-item { font-size: 11px; }
  .cp-ico { width: 52px; height: 52px; }
  .emoji-grid { grid-template-columns: repeat(7, 1fr); }
  .emoji-grid span { font-size: 24px; padding: 5px 0; }
  .emoji-body { height: 200px; }
  .tab { font-size: 10px; }
  .me-head { padding: calc(28px + var(--sat)) 14px 22px; gap: 12px; }
  .search-fake { margin: 6px 8px; padding: 8px; font-size: 14px; }
  .modal-card { width: 90%; }
}

/* 超窄（≤320）再收紧 */
@media (max-width: 320px) {
  .msg-content { max-width: 82%; }
  .cp-ico { width: 48px; height: 48px; }
  .nav-title { font-size: 15px; }
  #btn-chat-more { padding-right: 10px; margin-right: 2px; }
}

/* ---------- 中大屏手机 / 折叠外屏 ---------- */
@media (min-width: 414px) and (max-width: 767px) {
  .msg-content { max-width: 70%; }
  .bubble.video { max-width: min(200px, 48vw); max-height: 220px; }
}

/* ---------- 平板 / 大屏（可读性：气泡不要拉太宽） ---------- */
@media (min-width: 768px) {
  .chat-body {
    padding-left: max(16px, calc((100% - 720px) / 2 + 16px));
    padding-right: max(16px, calc((100% - 720px) / 2 + 16px));
  }
  .msg-content { max-width: min(66%, 420px); }
  .chat-input-bar, .reply-bar, .emoji-panel, .chat-panel {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
  }
  .list .cell, .search-fake, .me-head, .contact-section {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }
  .search-fake { width: calc(100% - 20px); }
  .auth-form { max-width: 420px; }
  .tabbar {
    max-width: 720px;
    margin: 0 auto;
    width: 100%;
  }
  #page-chats .list, #page-contacts .contacts-body, #page-discover .list, #page-me .list {
    max-width: 720px;
    margin: 0 auto;
    width: 100%;
  }
  .nav-bar {
    padding-left: max(8px, var(--sal));
    padding-right: max(12px, var(--sar));
  }
}

/* 超大屏：内容区居中，两侧留白更自然 */
@media (min-width: 1024px) {
  .chat-body {
    padding-left: max(24px, calc((100% - 780px) / 2 + 24px));
    padding-right: max(24px, calc((100% - 780px) / 2 + 24px));
  }
  .chat-input-bar, .reply-bar, .emoji-panel, .chat-panel,
  .tabbar, #page-chats .list, #page-contacts .contacts-body {
    max-width: 780px;
  }
  .msg-content { max-width: min(60%, 460px); }
}

/* ---------- 矮屏 / 横屏 ---------- */
@media (max-height: 500px), (orientation: landscape) and (max-height: 480px) {
  .tabbar { height: calc(48px + var(--sab)); }
  .tab { font-size: 10px; gap: 0; }
  .cam-tip { bottom: calc(96px + var(--sab)); font-size: 14px; }
  .cam-bottom { bottom: calc(12px + var(--sab)); }
  .cam-shutter { width: 68px; height: 68px; }
  .auth-wrap { padding-top: 12px; }
  .splash-bottom { bottom: calc(24px + var(--sab)); }
}

/* 横屏聊天：输入区紧凑 */
@media (orientation: landscape) and (max-height: 420px) {
  .chat-input-bar { padding-top: 4px; padding-bottom: 4px; }
  .emoji-panel, .chat-panel { max-height: 42vh; overflow: auto; }
}

/* 键盘弹出时（--kb-open 由 JS 设置）：减少底部多余空白 */
html.fl-kb-open .tabbar,
html.fl-kb-open .chat-panel,
html.fl-kb-open .emoji-panel {
  padding-bottom: 0;
}
html.fl-kb-open {
  --sab: 0px;
}
