/*
 * 大监手机版布局
 * 仅在 <= 768px 且 mobile.js 已确认移动视口时生效。
 * 桌面端不复用本文件中的任何布局规则。
 */

/* 具体是否启用由 html.mobile-ui 控制；这样电脑端的手机预览进入全屏后也不会丢失手机布局。 */
@media (min-width: 0px) {
  html.mobile-ui {
    --mobile-topbar-h: 54px;
    --mobile-bottom-h: 66px;
    --mobile-page-pad: 12px;
  }

  html.mobile-ui,
  html.mobile-ui body {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
  }

  html.mobile-ui body { font-size: 15px; }
  html.mobile-ui .mobile-only:not([hidden]) { display: flex !important; }

  /* 顶栏：只保留品牌、消息和账户；搜索通过底栏展开。 */
  html.mobile-ui .topbar {
    height: var(--mobile-topbar-h);
    min-height: var(--mobile-topbar-h);
    padding: 0 10px;
    gap: 8px;
    z-index: 1200;
    box-sizing: border-box;
  }
  html.mobile-ui .mobile-top-action {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 11px;
    color: #fff;
    background: rgba(255,255,255,.055);
    font-size: 20px;
    padding: 0;
  }
  html.mobile-ui .brand { flex: 1 1 auto; min-width: 0; gap: 7px; }
  html.mobile-ui .brand .logo-img { width: 34px; height: 34px; }
  html.mobile-ui .brand .logo-text-img { width: auto; height: 22px; max-width: 70px; object-fit: contain; }
  html.mobile-ui .brand-slogan,
  html.mobile-ui .user-expiry,
  html.mobile-ui #presence { display: none !important; }
  html.mobile-ui .topbar-right { gap: 7px; flex: 0 0 auto; }
  html.mobile-ui .device-mode-switch {
    position: absolute;
    left: 50%;
    top: 10px;
    transform: translateX(-50%);
    z-index: 2;
    padding: 2px;
  }
  html.mobile-ui .device-mode-switch button { min-width: 54px; height: 30px; padding: 0 7px; font-size: 12px; }
  html.mobile-ui .mobile-search-action {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.055);
    font-size: 21px;
    padding: 0;
  }
  html.mobile-preview-frame .mobile-search-action { margin-left: auto; }
  html.mobile-ui .notif-wrap { display: none !important; }
  html.mobile-ui .topbar-right .user-chip {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    flex: 0 0 40px;
    justify-content: center;
    padding: 2px !important;
    border-radius: 50% !important;
    box-sizing: border-box;
  }
  html.mobile-ui .user-chip > #userName { display: none; }
  html.mobile-ui .user-chip .avatar {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
  }
  html.mobile-ui .user-menu { position: fixed; top: 50px; right: 8px; min-width: 150px; z-index: 1600; }
  html.mobile-ui .notif-panel {
    position: fixed;
    top: calc(var(--mobile-topbar-h) - 2px);
    left: 10px;
    right: 10px;
    width: auto;
    max-height: min(62dvh, 520px);
    z-index: 1600;
  }

  html.mobile-ui .global-search {
    display: none;
    position: fixed;
    top: calc(var(--mobile-topbar-h) + 8px);
    left: 10px;
    right: 10px;
    width: auto;
    max-width: none;
    z-index: 1500;
    box-shadow: 0 16px 42px rgba(0,0,0,.48);
  }
  html.mobile-ui body.mobile-search-open .global-search { display: flex; }
  html.mobile-ui .global-search .gs-input { height: 46px; font-size: 15px; }
  html.mobile-ui .gs-panel { position: fixed; top: 108px; left: 10px; right: 10px; width: auto; max-height: 58dvh; }

  /* 主体区域 */
  html.mobile-ui .layout {
    display: block;
    height: calc(100dvh - var(--mobile-topbar-h));
    padding-bottom: calc(var(--mobile-bottom-h) + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
  }
  html.mobile-ui .main {
    width: 100%;
    height: 100%;
    min-width: 0;
    overflow: hidden;
    background:
      linear-gradient(180deg,rgba(7,10,28,.12) 0%,rgba(8,8,24,.32) 48%,rgba(7,7,20,.82) 100%),
      url('/images/mobile-background-v2.webp') center top / cover no-repeat;
  }

  /* 手机端背景属于整个屏幕，不跟随首页或小组内容滚动。 */
  html.mobile-ui body {
    position: relative;
    background:
      linear-gradient(180deg,rgba(8,10,28,.12),rgba(8,8,23,.48) 52%,rgba(7,7,20,.86)),
      #080817 url('/images/mobile-background-v2.webp') center center / cover no-repeat fixed !important;
  }
  html.mobile-ui body::before {
    display: none !important;
  }
  html.mobile-ui body:has(#projectHub:not(.hidden)) .main,
  html.mobile-ui body:has(#projectHub:not(.hidden)) #projectHub {
    background: transparent !important;
  }
  html.mobile-ui body:has(#projectHub:not(.hidden)) #projectHub::before,
  html.mobile-ui body:has(#projectHub:not(.hidden)) #projectHub::after {
    display: none !important;
  }
  /* 兼容不支持 :has() 的浏览器：彻底移除旧内容区背景，只保留 body 的整屏背景。 */
  html.mobile-ui .main,
  html.mobile-ui #projectHub {
    background: transparent !important;
  }
  /* 仅小组页加深背景：在上一版基础上再叠加 50% 黑色，直接与背景合成，不产生点击层。 */
  html.mobile-ui body:has(#projectWorkspace:not(.hidden)) {
    background:
      linear-gradient(180deg,rgba(8,10,28,.59),rgba(8,8,23,.86) 52%,rgba(7,7,20,1)),
      #080817 url('/images/mobile-background-v2.webp') center center / cover no-repeat fixed !important;
  }
  html.mobile-ui #projectHub::before,
  html.mobile-ui #projectHub::after {
    display: none !important;
  }

  /* 小组列表改为左侧抽屉，不再伪装成底栏。 */
  html.mobile-ui .sidebar,
  html.mobile-ui .layout.sidebar-collapsed .sidebar {
    display: flex !important;
    position: fixed;
    top: var(--mobile-topbar-h);
    bottom: 0;
    left: 0;
    right: auto;
    width: min(86vw, 340px) !important;
    min-width: 0 !important;
    height: auto;
    padding: 0 0 calc(8px + env(safe-area-inset-bottom, 0px));
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    overflow: hidden;
    border: 0;
    border-right: 1px solid var(--line);
    border-radius: 0 18px 18px 0;
    transform: translateX(-104%);
    transition: transform .22s ease;
    z-index: 1450;
    box-shadow: 18px 0 54px rgba(0,0,0,.45);
  }
  html.mobile-ui body.mobile-sidebar-open .sidebar { transform: translateX(0); }
  html.mobile-ui .layout.sidebar-collapsed .sidebar-head,
  html.mobile-ui .layout.sidebar-collapsed .project-list,
  html.mobile-ui .layout.sidebar-collapsed .sidebar-foot { display: flex; }
  html.mobile-ui .layout.sidebar-collapsed .project-list { display: block; }
  html.mobile-ui .layout.sidebar-collapsed .sidebar-expand-btn,
  html.mobile-ui .sidebar-expand-btn,
  html.mobile-ui #collapseSidebarBtn,
  html.mobile-ui .sidebar-resizer { display: none !important; }
  html.mobile-ui .sidebar-head { padding: 14px 14px 12px; min-height: 50px; box-sizing: border-box; }
  html.mobile-ui .sidebar-home { font-size: 17px; }
  html.mobile-ui .sidebar-sizebar { padding: 7px 12px; }
  html.mobile-ui .project-list { padding: 9px; overflow-y: auto; }
  html.mobile-ui .proj-card { margin-bottom: 8px; padding: 10px; transform: none !important; }
  html.mobile-ui .sidebar-foot { margin-top: auto; padding: 8px; gap: 7px; flex-direction: column; }
  html.mobile-ui .sidebar-foot > button { width: 100%; min-height: 43px; }
  html.mobile-ui .mobile-overlay {
    position: fixed;
    inset: var(--mobile-topbar-h) 0 0;
    z-index: 1100;
    background: rgba(4,3,12,.68);
    backdrop-filter: blur(3px);
  }
  html.mobile-ui body:not(.mobile-sidebar-open):not(.mobile-search-open) .mobile-overlay,
  html.mobile-ui .mobile-overlay[hidden] {
    display: none !important;
    pointer-events: none !important;
  }

  /* 底部主导航 */
  html.mobile-ui .mobile-bottom-nav {
    position: fixed;
    left: 8px;
    right: 8px;
    bottom: calc(7px + env(safe-area-inset-bottom, 0px));
    height: 58px;
    z-index: 1300;
    align-items: center;
    justify-content: space-around;
    padding: 4px 5px;
    border: 1px solid rgba(255,143,199,.24);
    border-radius: 18px;
    background: rgba(24,20,38,.94);
    box-shadow: 0 10px 35px rgba(0,0,0,.4);
    backdrop-filter: blur(18px);
  }
  html.mobile-ui .mobile-nav-btn {
    min-width: 54px;
    min-height: 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    color: var(--text-3);
    background: transparent;
    border: 0;
    border-radius: 14px;
    padding: 2px 8px;
  }
  html.mobile-ui .mobile-nav-btn span { font-size: 22px; line-height: 1; }
  html.mobile-ui .mobile-nav-btn small { font-size: 12px; line-height: 1.2; }
  html.mobile-ui .mobile-nav-btn.active { color: #fff; background: linear-gradient(135deg,rgba(255,126,179,.25),rgba(124,58,237,.28)); }
  html.mobile-ui .mobile-nav-create {
    width: 58px;
    min-width: 58px;
    height: 58px;
    min-height: 58px;
    transform: translateY(-8px);
    background: var(--grad-accent);
    color: #fff;
    border-radius: 50%;
    box-shadow: 0 7px 22px rgba(124,58,237,.45);
  }
  html.mobile-ui .mobile-nav-create span { font-size: 31px; font-weight: 300; }
  html.mobile-ui .mobile-nav-create small { display: none; }
  html.mobile-ui body.mobile-review-active .mobile-bottom-nav,
  html.mobile-ui body.mobile-auth-active .mobile-bottom-nav,
  html.mobile-ui body.mobile-auth-active .mobile-top-action { display: none !important; }
  html.mobile-ui body.mobile-review-active .layout { padding-bottom: 0; }

  /* 首页：桌面自由拖动卡片在手机上改为正常单列信息流。 */
  html.mobile-ui .project-hub {
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    padding: 18px var(--mobile-page-pad) 90px;
    box-sizing: border-box;
  }
  /* 手机首页使用完整 9:16 原图，不再用 cover 裁掉下半部分。 */
  html.mobile-ui .project-hub::before {
    background-size: contain !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
    background-color: #080817 !important;
  }
  html.mobile-ui .project-hub::before,
  html.mobile-ui .project-workspace::before,
  html.mobile-ui .admin-view::before,
  html.mobile-ui .boss-view::before { display: none !important; }
  html.mobile-ui .project-hub::before {
    background-image: url('/images/mobile-background-v2.webp') !important;
    background-size: 100% 100% !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-color: #080817 !important;
  }
  html.mobile-ui .project-hub::after,
  html.mobile-ui .project-workspace::after,
  html.mobile-ui .admin-view::after,
  html.mobile-ui .boss-view::after {
    background: linear-gradient(180deg,rgba(8,10,28,.12),rgba(8,8,23,.48) 52%,rgba(7,7,20,.86)) !important;
  }
  /* 黑色效果直接和整屏背景合成，不再创建覆盖工作区的点击层。 */
  html.mobile-ui .project-workspace::after {
    display: none !important;
  }
  html.mobile-ui .project-hub::after { background: transparent !important; }
  html.mobile-ui .hub-head { align-items: flex-start; gap: 10px; }
  html.mobile-ui .hub-welcome h1 { font-size: 24px; margin: 0 0 5px; }
  html.mobile-ui .hub-welcome p { font-size: 15px !important; }
  html.mobile-ui .hub-head-actions {
    position: static;
    inset: auto;
    z-index: auto;
    flex-direction: row;
    align-items: center;
    gap: 6px;
  }
  html.mobile-ui .hub-float-btn { width: 40px; height: 40px; }
  html.mobile-ui .hub-stats-bar { width: 100%; display: grid; grid-template-columns: repeat(4,1fr); margin: 16px 0 12px; }
  html.mobile-ui .hs-item { min-width: 0; padding: 8px 4px; }
  html.mobile-ui .hs-item b { font-size: 20px; }
  html.mobile-ui .hs-item span { font-size: 12px; }
  html.mobile-ui .hub-create-btn { width: 100%; min-height: 46px; margin-bottom: 14px; }
  /* 首页只保留欢迎区、数据概览和“新建围读小组”。 */
  html.mobile-ui .mobile-home-section.mobile-only:not([hidden]),
  html.mobile-ui .hub-widget-layer { display: none !important; }
  html.mobile-ui .mobile-section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
  html.mobile-ui .mobile-section-head h2 { margin: 0; font-size: 21px; }
  html.mobile-ui .mobile-section-head button { border: 0; background: transparent; color: var(--text-2); font-size: 15px; padding: 8px 0 8px 12px; }
  html.mobile-ui .mobile-project-strip {
    display: flex;
    gap: 10px;
    width: calc(100% + var(--mobile-page-pad));
    overflow-x: auto;
    padding: 1px var(--mobile-page-pad) 7px 0;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  html.mobile-ui .mobile-project-strip::-webkit-scrollbar { display: none; }
  html.mobile-ui .mobile-project-card {
    flex: 0 0 156px;
    min-height: 174px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 13px;
    color: #fff;
    text-align: left;
    border: 1px solid rgba(255,143,199,.25);
    border-radius: 17px;
    background: linear-gradient(150deg,rgba(43,35,63,.94),rgba(25,21,39,.93));
    scroll-snap-align: start;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
  }
  html.mobile-ui .mobile-project-logo {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    background-position: center;
    background-size: cover;
  }
  html.mobile-ui .mobile-project-card strong { width: 100%; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
  html.mobile-ui .mobile-project-card small { color: var(--text-2); font-size: 13px; }
  html.mobile-ui .mobile-project-card time { margin-top: auto; color: #bdb3cb; font-size: 12px; white-space: nowrap; }
  html.mobile-ui .hub-widget[data-wid="recent"] { display: none !important; }
  html.mobile-ui .hub-widget[data-wid="pending"] { order: 2; }
  html.mobile-ui .hub-widget[data-wid="activity"] { order: 3; }
  html.mobile-ui .hub-widget[data-wid="pending"],
  html.mobile-ui .hub-widget[data-wid="activity"] { background: transparent; border: 0; box-shadow: none; }
  html.mobile-ui .hub-widget[data-wid="pending"] .hw-head,
  html.mobile-ui .hub-widget[data-wid="activity"] .hw-head { padding-inline: 0; background: transparent; border: 0; }
  html.mobile-ui .hub-widget[data-wid="pending"] .hw-title,
  html.mobile-ui .hub-widget[data-wid="activity"] .hw-title { font-size: 21px; }
  html.mobile-ui .hub-widget[data-wid="pending"] .hw-body,
  html.mobile-ui .hub-widget[data-wid="activity"] .hw-body { border: 1px solid rgba(255,143,199,.18); border-radius: 16px; background: rgba(20,17,33,.76); }
  html.mobile-ui .project-hub > .hub-widget-layer {
    position: static !important;
    inset: auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column;
    gap: 12px;
    overflow: visible;
    pointer-events: auto;
  }
  html.mobile-ui .project-hub > .hub-widget-layer,
  html.mobile-ui .project-hub > .hub-all-projects { display: none !important; }
  html.mobile-ui .project-hub > .hub-widget-layer > .hub-widget {
    position: static !important;
    left: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    box-sizing: border-box;
  }
  html.mobile-ui .hub-widget .hw-head { min-height: 43px; touch-action: pan-y; }
  html.mobile-ui .hub-widget .hw-grip,
  html.mobile-ui .hub-widget .hw-resize { display: none !important; }
  html.mobile-ui .hub-widget .hw-body { min-height: 96px; max-height: 260px; overflow-y: auto; }
  html.mobile-ui .hub-all-projects { margin-top: 14px; }
  html.mobile-ui .hub-grid { grid-template-columns: 1fr !important; gap: 10px; }

  /* 小组工作区 */
  html.mobile-ui .project-workspace { height: 100%; min-height: 0; overflow-y: auto; }
  html.mobile-ui .ws-head { position: sticky; top: 0; z-index: 50; display: block; padding: 4px 4px 0; background: rgba(15,14,30,.96); }
  html.mobile-ui .ws-title { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
  html.mobile-ui .ws-title h2 { max-width: calc(100vw - 132px); font-size: 22px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.mobile-ui .ws-members { margin-left: 0; }
  html.mobile-ui .ws-push-btn { max-width: 100%; }
  html.mobile-ui .ws-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    width: calc(100% + 8px);
    margin: 4px -4px 0;
    padding: 0 4px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  html.mobile-ui .ws-tabs::-webkit-scrollbar { display: none; }
  html.mobile-ui .ws-tab { flex: 0 0 auto; min-height: 43px; padding: 8px 12px; white-space: nowrap; }
  html.mobile-ui .ws-main { display: flex; flex-direction: column; min-height: 0; }
  html.mobile-ui .ws-content { order: 1; width: 100%; padding: 4px; box-sizing: border-box; overflow: visible; }
  html.mobile-ui .ws-side { order: 2; width: auto !important; flex: none; margin: 0 4px 72px; max-height: none; }
  html.mobile-ui .ws-panel-head { align-items: flex-start; gap: 8px; }
  html.mobile-ui .asset-tools {
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    gap: 7px;
    overflow-x: auto;
    padding: 3px 0 7px;
    scrollbar-width: none;
  }
  html.mobile-ui .asset-tools::-webkit-scrollbar { display: none; }
  html.mobile-ui .asset-tools > * { flex: 0 0 auto; min-height: 42px; }
  html.mobile-ui .asset-tools .search-input { width: min(68vw,260px); }
  html.mobile-ui .type-filter-pills { display: none !important; }
  html.mobile-ui #assetTypeSelect { display: block !important; }
  html.mobile-ui .mobile-folder-filter {
    display: inline-flex !important;
    width: 42px;
    min-width: 42px;
    padding: 0;
    align-items: center;
    justify-content: center;
    font-size: 18px;
  }
  html.mobile-ui .mobile-folder-filter.active { border-color: var(--accent); background: rgba(255,126,179,.12); }
  html.mobile-ui .batch-toolbar { overflow-x: auto; flex-wrap: nowrap; }
  html.mobile-ui .batch-toolbar > * { flex: 0 0 auto; }
  html.mobile-ui .ws-assets-body { display: flex; flex-direction: column; gap: 9px; }
  html.mobile-ui .folder-tree { display: none !important; }
  html.mobile-ui .asset-main { min-width: 0; width: 100%; }
  html.mobile-ui .media-grid { grid-template-columns: 1fr !important; gap: 10px; }
  html.mobile-ui .media-card { min-width: 0; }
  html.mobile-ui .media-table-wrap,
  html.mobile-ui .report-body,
  html.mobile-ui .admin-panel { max-width: 100%; overflow-x: auto; }
  html.mobile-ui .media-table { min-width: 760px; }
  html.mobile-ui .board-container { flex-direction: row; overflow-x: auto; }
  html.mobile-ui .board-col { min-width: 250px; flex: 0 0 250px; }

  /* 审阅页：播放器优先，批注位于下方，控件横向滑动。 */
  html.mobile-ui .review-view { height: 100%; background: #06050a; }
  html.mobile-ui .review-head { flex: 0 0 auto; display: block; padding: 7px 8px; max-height: 116px; overflow-y: auto; }
  html.mobile-ui .rh-left,
  html.mobile-ui .rh-right { display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  html.mobile-ui .rh-left::-webkit-scrollbar,
  html.mobile-ui .rh-right::-webkit-scrollbar { display: none; }
  html.mobile-ui .rh-left > *,
  html.mobile-ui .rh-right > * { flex: 0 0 auto; }
  html.mobile-ui .rh-left { margin-bottom: 6px; }
  html.mobile-ui .rh-left h2 { max-width: 110px; font-size: 17px; align-self: center; }
  html.mobile-ui .review-head .ghost-btn,
  html.mobile-ui .review-head select { min-height: 38px; padding: 5px 9px; font-size: 15px; }
  html.mobile-ui .review-head .media-meta { font-size: 13px; padding: 5px 8px; }
  html.mobile-ui .review-body { display: block !important; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; --side-w: 100% !important; }
  html.mobile-ui .review-stage { width: 100% !important; min-width: 0; height: auto !important; min-height: 0 !important; overflow: visible; }
  html.mobile-ui .stage-wrap {
    /* vh 是旧版手机浏览器兜底；支持 dvh 的浏览器再用动态视口高度覆盖。 */
    flex: 0 0 56vh !important; width: 100%; height: 56vh !important; min-height: 56vh !important;
    flex-basis: 56dvh !important; height: 56dvh !important; min-height: 56dvh !important;
    padding: 0 !important; box-sizing: border-box; overflow: hidden;
  }
  html.mobile-ui .stage { width: 100%; height: 100%; min-height: 0; position: relative; overflow: hidden; }
  html.mobile-ui #mobileOriginalDownloadBtn:not([hidden]) {
    display: inline-flex !important;
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 12;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 5px 11px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 9px;
    background: rgba(16,12,29,.66);
    color: #fff;
    box-shadow: 0 4px 16px rgba(0,0,0,.3);
    backdrop-filter: blur(7px);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
  }
  html.mobile-ui .stage video,
  html.mobile-ui .stage .media-img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain !important; object-position: center; background: #000; }
  html.mobile-ui .stage.fit-contain video,
  html.mobile-ui .stage.fit-cover video { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain !important; background: #000; }
  html.mobile-ui #reviewStage.img-consolidated .stage-wrap,
  html.mobile-ui #reviewStage.review-type-image .stage-wrap,
  html.mobile-ui #reviewStage.review-type-script .stage-wrap,
  html.mobile-ui .stage-wrap:has(.stage.script-mode) {
    flex: 0 0 58vh !important; height: 58vh !important; min-height: 58vh !important;
    flex-basis: 58dvh !important; height: 58dvh !important; min-height: 58dvh !important;
  }
  html.mobile-ui #reviewStage.img-consolidated .stage .media-img { object-fit: contain !important; background: rgba(6,5,10,.96); }
  html.mobile-ui #reviewStage.img-consolidated .stage .media-img:not(.hidden) { display: block !important; z-index: 2; }
  html.mobile-ui #reviewStage.review-type-audio .stage-wrap,
  html.mobile-ui .stage-wrap:has(.stage.audio-mode) {
    flex: 0 0 48vh !important; height: 48vh !important; min-height: 48vh !important;
    flex-basis: 48dvh !important; height: 48dvh !important; min-height: 48dvh !important;
    padding: 6px !important; background: rgba(9,8,24,.94);
  }
  html.mobile-ui #reviewStage.review-type-image .stage,
  html.mobile-ui #reviewStage.review-type-script .stage,
  html.mobile-ui #reviewStage.review-type-audio .stage { display: flex !important; height: 100% !important; min-height: 100% !important; }
  html.mobile-ui #reviewStage.review-type-image #imgEl:not(.hidden) { display: block !important; }
  html.mobile-ui #reviewStage.review-type-script #scriptReader:not(.hidden) { display: block !important; }
  html.mobile-ui #reviewStage.review-type-audio #waveCanvas:not(.hidden),
  html.mobile-ui #reviewStage.review-type-audio #spectrumCanvas:not(.hidden) { display: block !important; }
  html.mobile-ui .stage.audio-mode { height: 100% !important; padding: 0 !important; gap: 6px !important; justify-content: stretch !important; }
  html.mobile-ui .stage.audio-mode .wave-canvas { flex: 3 1 0; height: auto !important; min-height: 0 !important; margin: 0 !important; }
  html.mobile-ui .stage.audio-mode .spectrum-canvas { flex: 2 1 0; height: auto !important; min-height: 0 !important; margin: 0 !important; }
  html.mobile-ui .stage.script-mode .script-reader { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; min-height: 100%; overflow-y: auto; touch-action: pan-y; background: #151225; }
  html.mobile-ui .stage.script-mode .script-reader:not(.hidden) { display: block !important; }
  /* 剧本行号只占自身数字所需宽度；去掉桌面端预留的 44px 与大间隔。 */
  html.mobile-ui .script-reader .sr-row { gap: 5px; padding-left: 7px; padding-right: 9px; }
  html.mobile-ui .script-reader .sr-num { flex: 0 0 max-content; width: max-content; min-width: 0; padding: 0; margin: 0; }
  html.mobile-ui .script-reader .sr-row .sr-text { margin-left: 0 !important; }
  /* 手机版剧本：删除字号缩放，播放与下移速度移到顶部审阅状态右侧。 */
  html.mobile-ui #scriptToolbar {
    position: static;
    inset: auto;
    z-index: auto;
    flex: 0 0 auto;
    padding: 0;
    margin: 0;
    gap: 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  html.mobile-ui #scriptFontOutBtn,
  html.mobile-ui #scriptFontLevel,
  html.mobile-ui #scriptFontInBtn,
  html.mobile-ui #scriptToolbar .script-tb-sep,
  html.mobile-ui #scriptAutoSpeedLabel { display: none !important; }
  html.mobile-ui #scriptAutoScrollBtn { width: 34px; min-width: 34px; height: 34px; min-height: 34px; padding: 0; }
  html.mobile-ui #scriptAutoSpeed {
    width: 68px;
    min-width: 68px;
    height: 34px;
    padding: 3px 6px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--bg-2);
    color: var(--text);
    font-size: 15px;
  }
  html.mobile-ui #mobileScriptBodyBtn {
    display: inline-flex !important;
    width: auto;
    min-width: 48px;
    height: 34px;
    min-height: 34px;
    padding: 0 8px;
    white-space: nowrap;
  }
  html.mobile-ui #mobileScriptEpisodeSelect {
    display: inline-block !important;
    width: 68px;
    min-width: 68px;
    height: 34px;
    padding: 3px 6px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--bg-2);
    color: var(--text);
    font-size: 15px;
  }
  html.mobile-ui #mediaMeta .mm-ep-btn,
  html.mobile-ui #mediaMeta .mm-ep-dd { display: none !important; }
  /* 剧本顶部控制排：拆成同一级元素，左右留白一致，中间间距一致。 */
  html.mobile-ui .rh-right.mobile-script-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0 !important;
    width: 100%;
    padding: 0 6px;
    box-sizing: border-box;
    overflow: visible;
  }
  html.mobile-ui .rh-right.mobile-script-row .status-select,
  html.mobile-ui .rh-right.mobile-script-row #scriptToolbar:not(.hidden) { display: contents; }
  html.mobile-ui .rh-right.mobile-script-row .status-select select,
  html.mobile-ui .rh-right.mobile-script-row #scriptAutoScrollBtn,
  html.mobile-ui .rh-right.mobile-script-row #scriptAutoSpeed,
  html.mobile-ui .rh-right.mobile-script-row #mobileScriptBodyBtn,
  html.mobile-ui .rh-right.mobile-script-row #mobileScriptEpisodeSelect {
    height: 30px;
    min-height: 30px;
    padding-top: 2px;
    padding-bottom: 2px;
  }
  html.mobile-ui .rh-right.mobile-script-row #scriptAutoScrollBtn { width: 30px; min-width: 30px; }
  html.mobile-ui .rh-right.mobile-script-row #scriptAutoSpeed { width: 64px; min-width: 64px; }
  html.mobile-ui .rh-right.mobile-script-row #mobileScriptBodyBtn { min-width: 46px; padding-left: 7px; padding-right: 7px; }
  html.mobile-ui .rh-right.mobile-script-row #mobileScriptEpisodeSelect { width: 64px; min-width: 64px; }

  /* 空白剧本行仅保留普通行高的四分之一。 */
  html.mobile-ui .script-reader .sr-row.empty {
    height: 2px;
    min-height: 2px;
    margin: 0;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 2px;
  }
  html.mobile-ui .script-reader .sr-row.empty .sr-num { visibility: hidden; }
  html.mobile-ui .script-reader .sr-row.empty .sr-text { height: 2px; min-height: 0; line-height: 2px; }
  html.mobile-ui #backBtn { position: relative; z-index: 6; pointer-events: auto; }
  html.mobile-ui .review-divider { display: none !important; }
  html.mobile-ui .video-wave-track { flex: 0 0 34px; height: 34px; }
  html.mobile-ui .timeline-bar { min-height: 16px; height: 16px; }
  html.mobile-ui .controls {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 5px;
    padding: 5px 7px;
    overflow-x: auto;
    scrollbar-width: none;
    min-height: 45px;
  }
  html.mobile-ui .review-body,
  html.mobile-ui .project-hub,
  html.mobile-ui .project-workspace,
  html.mobile-ui .mobile-native-page,
  html.mobile-ui .admin-content,
  html.mobile-ui .boss-content { scrollbar-width: none; -ms-overflow-style: none; }
  html.mobile-ui .review-body::-webkit-scrollbar,
  html.mobile-ui .project-hub::-webkit-scrollbar,
  html.mobile-ui .project-workspace::-webkit-scrollbar,
  html.mobile-ui .mobile-native-page::-webkit-scrollbar,
  html.mobile-ui .admin-content::-webkit-scrollbar,
  html.mobile-ui .boss-content::-webkit-scrollbar { display: none; }
  html.mobile-ui .controls::-webkit-scrollbar { display: none; }
  html.mobile-ui .controls > * { flex: 0 0 auto; }
  html.mobile-ui .controls .seek-wrap { order: 0; width: 150px; }
  html.mobile-ui #reviewStage.review-type-video .controls .seek-wrap { display: none !important; }
  html.mobile-ui .controls .ctrl-btn { width: 38px; height: 38px; min-width: 38px; padding: 0; }
  html.mobile-ui .controls .timecode,
  html.mobile-ui .controls .dur { font-size: 13px; }
  html.mobile-ui .comment-input-bar {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 6px;
    padding: 3px 7px;
    min-height: 45px;
    background: rgba(29,26,43,.80) !important;
  }
  html.mobile-ui .cib-tools { grid-column: 1; display: flex; flex-wrap: nowrap; gap: 4px; }
  html.mobile-ui .cib-input { grid-column: 2; width: 100% !important; min-width: 0; height: 35px; min-height: 35px; padding: 5px 8px; }
  html.mobile-ui #cibSend { grid-column: 3; min-width: 54px; height: 35px; min-height: 35px; padding: 0 11px; }
  html.mobile-ui .comment-input-bar > :not(.cib-tools):not(.cib-input):not(#cibSend):not(.mention-popup) { display: none; }
  html.mobile-ui #imgCtrlGroup { display: none !important; }
  html.mobile-ui .comments-panel.review-side {
    width: 100% !important;
    max-width: 100%;
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    flex: none;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 0;
    border-top: 1px solid var(--line);
    background: rgba(29,26,43,.80) !important;
  }
  html.mobile-ui .comments-panel.review-side .cp-head {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 4px;
    height: 34px;
    min-height: 34px;
    padding: 2px 6px;
    background: rgba(24,20,38,.76);
  }
  html.mobile-ui .comments-panel.review-side .cp-head > span,
  html.mobile-ui #cpFilterToggle,
  html.mobile-ui #exportBtn,
  html.mobile-ui #sideToggle,
  html.mobile-ui #searchInput,
  html.mobile-ui #filterVersion { display: none !important; }
  html.mobile-ui .comments-panel.review-side .cp-filters { display: contents; }
  html.mobile-ui .comments-panel.review-side .cp-filters > select {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    height: 25px;
    min-height: 25px;
    padding: 2px 4px;
  }
  html.mobile-ui .mobile-comment-panel-toggle {
    display: inline-flex !important;
    flex: 0 0 25px;
    width: 25px;
    height: 25px;
    min-height: 25px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border-color: rgba(255,143,199,.55);
    color: #ffd5eb;
  }
  html.mobile-ui .comment-list { display: none; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
  html.mobile-ui .review-view.mobile-comments-expanded .comments-panel.review-side {
    position: absolute;
    inset: 0;
    z-index: 40;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
  }
  html.mobile-ui .review-view.mobile-comments-expanded .comments-panel.review-side .comment-list { display: block; }
  html.mobile-ui .mobile-review-exit-fullscreen { display: none !important; }
  html.mobile-ui .mobile-fullscreen-comment-hotzone { display: none !important; }
  html.mobile-ui .review-stage.mobile-stage-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-width: 0 !important;
    max-width: none !important;
    overflow: hidden !important;
    background: #000;
  }
  html.mobile-ui .review-stage.mobile-stage-fullscreen > :not(.stage-wrap):not(.mobile-review-exit-fullscreen):not(.mobile-fullscreen-comment-hotzone):not(.comment-input-bar) { display: none !important; }
  html.mobile-ui .review-stage.mobile-stage-fullscreen .stage-wrap {
    position: absolute !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: 0 !important;
    background: #000 !important;
  }
  html.mobile-ui .review-stage.mobile-stage-fullscreen .stage,
  html.mobile-ui .review-stage.mobile-stage-fullscreen video,
  html.mobile-ui .review-stage.mobile-stage-fullscreen .media-img,
  html.mobile-ui .review-stage.mobile-stage-fullscreen .script-reader { width: 100% !important; height: 100% !important; object-fit: contain !important; }
  html.mobile-ui .review-stage.mobile-stage-fullscreen .img-zoom-tools,
  html.mobile-ui .review-stage.mobile-stage-fullscreen .anno-tools,
  html.mobile-ui .review-stage.mobile-stage-fullscreen .script-toolbar,
  html.mobile-ui .review-stage.mobile-stage-fullscreen .minimap { display: none !important; }
  html.mobile-ui .review-stage.mobile-stage-fullscreen .mobile-review-exit-fullscreen {
    display: inline-flex !important;
    position: absolute;
    top: max(10px, env(safe-area-inset-top));
    right: 10px;
    z-index: 10050;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 5px 10px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 9px;
    background: rgba(18,14,30,.82);
    color: #fff;
  }
  html.mobile-ui .review-stage.mobile-stage-fullscreen .mobile-fullscreen-comment-hotzone {
    display: block !important;
    position: fixed;
    z-index: 10060;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 20px;
    padding: 0;
    border: 0;
    background: transparent;
  }
  html.mobile-ui .review-stage.mobile-stage-fullscreen .comment-input-bar { display: none !important; }
  html.mobile-ui .review-stage.mobile-stage-fullscreen.mobile-fullscreen-comment-open .comment-input-bar {
    display: grid !important;
    position: fixed;
    z-index: 10055;
    left: 0;
    right: 0;
    bottom: 20px;
    width: 100%;
    box-sizing: border-box;
    background: rgba(20,16,34,.92) !important;
  }
  html.mobile-ui .mobile-swipe-progress {
    display: none;
    position: absolute;
    z-index: 25;
    left: 6%;
    right: 6%;
    bottom: 18px;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    border-radius: 10px;
    background: rgba(8,6,14,.78);
    pointer-events: none;
  }
  html.mobile-ui .mobile-swipe-progress.visible { display: flex; }
  html.mobile-ui .mobile-swipe-progress-track { flex: 1; height: 4px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.22); }
  html.mobile-ui .mobile-swipe-progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#ff77c8,#9a4dff); }
  html.mobile-ui .mobile-swipe-progress span { flex: none; color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; }
  html.mobile-ui #reviewStage.review-type-video .stage { touch-action: pan-y; }
  html.mobile-ui .anno-tools { max-width: calc(100vw - 12px); overflow-x: auto; justify-content: flex-start; }
  html.mobile-ui .version-dropdown { position: fixed; left: 8px; right: 8px; top: 60px; min-width: 0; width: auto; max-width: none; }
html.mobile-ui .guide-panel {
  left: 8px;
  right: 8px;
  bottom: 136px;
  z-index: 220;
  width: auto;
  isolation: isolate;
}
  html.mobile-ui .review-view.collapsed-side .comments-panel { display: none; }
  html.mobile-ui .review-view.collapsed-side .rv-side-edge { display: none; }

  /* 用户中心、网站后台：分类横向滚动，内容单列。 */
  html.mobile-ui .admin-view,
  html.mobile-ui .boss-view {
    display: flex !important;
    flex-direction: column !important;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }
  html.mobile-ui .admin-view.hidden,
  html.mobile-ui .boss-view.hidden { display: none !important; }
  html.mobile-ui .admin-sidebar,
  html.mobile-ui .boss-sidebar {
    position: static;
    width: 100% !important;
    height: auto !important;
    flex: 0 0 auto;
    padding: 0 8px;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    overflow-x: auto;
    scrollbar-width: none;
    background: rgba(15,14,30,.96);
  }
  html.mobile-ui .admin-sidebar::-webkit-scrollbar,
  html.mobile-ui .boss-sidebar::-webkit-scrollbar { display: none; }
  html.mobile-ui .admin-brand,
  html.mobile-ui .boss-mode-tag { display: none; }
  html.mobile-ui .admin-nav { display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; width: max-content; }
  html.mobile-ui .admin-group { flex: 0 0 auto; }
  html.mobile-ui .admin-link { min-height: 46px; padding: 8px 12px; white-space: nowrap; }
  html.mobile-ui .admin-main { flex: 1; min-width: 0; min-height: 0; overflow: hidden; }
  html.mobile-ui .admin-topbar { min-height: 48px; overflow-x: auto; overflow-y: hidden; flex-wrap: nowrap; scrollbar-width: none; }
  html.mobile-ui .admin-topbar::-webkit-scrollbar { display: none; }
  html.mobile-ui .admin-tab { flex: 0 0 auto; min-height: 44px; white-space: nowrap; }
  html.mobile-ui .admin-content { height: calc(100% - 48px); padding: 12px 10px 88px !important; overflow-y: auto; overflow-x: hidden; box-sizing: border-box; }
  html.mobile-ui .admin-toolbar,
  html.mobile-ui .fin-toolbar,
  html.mobile-ui .member-toolbar { gap: 7px; }
  html.mobile-ui .admin-toolbar,
  html.mobile-ui .fin-toolbar,
  html.mobile-ui .member-toolbar,
  html.mobile-ui .member-filters { display: flex; flex-wrap: wrap !important; align-items: center; }
  html.mobile-ui .admin-toolbar > *,
  html.mobile-ui .member-filters > * { max-width: 100%; }
  html.mobile-ui .admin-cards,
  html.mobile-ui .fin-summary,
  html.mobile-ui .member-grid { grid-template-columns: 1fr !important; }
  html.mobile-ui .admin-table-wrap,
  html.mobile-ui .boss-table-wrap,
  html.mobile-ui .file-find-table-wrap { width: 100%; overflow-x: auto; }
  html.mobile-ui .admin-table,
  html.mobile-ui .boss-table,
  html.mobile-ui .member-table,
  html.mobile-ui .file-find-table,
  html.mobile-ui .pm-table { min-width: 720px; }
  html.mobile-ui .site-tabs { flex-wrap: nowrap; overflow-x: auto; }
  html.mobile-ui .theme-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  html.mobile-ui .admin-content .two-col,
  html.mobile-ui .admin-content .two-cols,
  html.mobile-ui .admin-content .form-grid,
  html.mobile-ui .admin-content .site-grid,
  html.mobile-ui .admin-content .settings-grid,
  html.mobile-ui .admin-content .um-send-row,
  html.mobile-ui .admin-content .detail-grid,
  html.mobile-ui .boss-view .two-col,
  html.mobile-ui .boss-view .form-grid { grid-template-columns: minmax(0,1fr) !important; }
  html.mobile-ui .admin-content input:not([type="checkbox"]):not([type="radio"]),
  html.mobile-ui .admin-content select,
  html.mobile-ui .admin-content textarea,
  html.mobile-ui .boss-content input:not([type="checkbox"]):not([type="radio"]),
  html.mobile-ui .boss-content select,
  html.mobile-ui .boss-content textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
  html.mobile-ui .admin-content .admin-panel,
  html.mobile-ui .boss-content .admin-panel { padding: 12px !important; border-radius: 15px; background: rgba(24,20,39,.88); }
  html.mobile-ui .admin-content .action-row,
  html.mobile-ui .boss-content .action-row { display: flex; flex-wrap: wrap; gap: 7px; }

  /* 弹窗与表单：始终完整落在手机视口内。 */
  html.mobile-ui .modal-mask,
  html.mobile-ui .dialog-mask {
    padding: 30px 10px 12px;
    align-items: flex-start;
    overflow-y: auto;
    box-sizing: border-box;
  }
  html.mobile-ui .modal,
  html.mobile-ui .modal-card,
  html.mobile-ui .dialog-card,
  html.mobile-ui .modal.modal-perm,
  html.mobile-ui .detail-ear-wrap,
  html.mobile-ui .q-rename-wrap {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 42px) !important;
    box-sizing: border-box;
  }
  html.mobile-ui .modal,
  html.mobile-ui .modal-card { overflow-x: hidden; overflow-y: auto; }
  /* 通用小耳朵位于弹窗卡片上沿之外；仅放开带耳朵的外层，内容仍在 modal-card 内滚动。 */
  html.mobile-ui .modal:not(.q-rename-modal) { overflow: visible !important; }
  html.mobile-ui .modal > *,
  html.mobile-ui .modal-card > *,
  html.mobile-ui .np-form-body { max-width: 100%; box-sizing: border-box; }
  html.mobile-ui .modal-perm .member-left,
  html.mobile-ui .modal-perm .member-right,
  html.mobile-ui .modal-perm .perm-cols,
  html.mobile-ui .modal-perm .perm-items,
  html.mobile-ui .team-project-candidate-list,
  html.mobile-ui .rep-members { grid-template-columns: 1fr !important; }
  html.mobile-ui .np-form-body,
  html.mobile-ui .detail-grid,
  html.mobile-ui .cm-edit-row { grid-template-columns: 1fr !important; flex-direction: column; }
  html.mobile-ui .modal-actions { position: sticky; bottom: 0; padding-top: 10px; background: inherit; }
  html.mobile-ui .rep-member-add-pop { width: calc(100vw - 20px) !important; max-height: 82dvh; padding: 15px !important; overflow: visible auto; }

  /* 登录页 */
  html.mobile-ui .auth-screen { padding: 14px; align-items: center; overflow-y: auto; }
  html.mobile-ui .auth-card { width: 100%; max-width: 430px; padding: 22px 18px; box-sizing: border-box; }
  html.mobile-ui .auth-brand { margin-bottom: 16px; }
  html.mobile-ui .auth-form input,
  html.mobile-ui .auth-form button { min-height: 46px; }
  html.mobile-ui .auth-code-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; }

  /* 手机端不显示任何滚动条；触屏可直接滑动，电脑预览可按住空白处拖动。 */
  html.mobile-ui * { scrollbar-width: none !important; }
  html.mobile-ui *::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
  html.mobile-ui [data-mobile-drag-bound] { cursor: grab; }
  html.mobile-ui .mobile-dragging,
  html.mobile-ui .mobile-dragging * { cursor: grabbing !important; user-select: none !important; -webkit-user-select: none !important; }

  /* 底栏进入的三个手机版原生整页，不复用桌面侧栏。 */
  html.mobile-ui .mobile-native-hidden { display: none !important; }
  html.mobile-ui .mobile-native-page.mobile-only:not([hidden]) {
    display: block !important;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    padding: 18px 12px 92px;
    box-sizing: border-box;
    background: linear-gradient(180deg,rgba(10,12,32,.38),rgba(10,9,23,.91));
  }
  html.mobile-ui .mobile-native-head {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    margin: 0 2px 16px;
  }
  html.mobile-ui .mobile-native-head small { display: block; color: var(--text-3); font-size: 13px; margin-bottom: 2px; }
  html.mobile-ui .mobile-native-head h1 { margin: 0; font-size: 24px; }
  html.mobile-ui .mobile-native-create,
  html.mobile-ui .mobile-message-readall,
  html.mobile-ui .mobile-message-send {
    min-height: 38px; padding: 7px 13px; border: 0; border-radius: 999px; color: #fff;
    background: linear-gradient(135deg,#ff7eb3,#8b5cf6); box-shadow: 0 6px 18px rgba(139,92,246,.28);
  }
  html.mobile-ui .mobile-native-actions { display: flex; align-items: center; gap: 6px; }
  html.mobile-ui .mobile-message-send { background: rgba(255,255,255,.08); border: 1px solid rgba(255,143,199,.28); box-shadow: none; }
  html.mobile-ui .mobile-native-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
  html.mobile-ui .mobile-native-project {
    width: 100%; min-height: 78px; margin: 0 !important; padding: 12px !important;
    border: 1px solid rgba(255,143,199,.22); border-radius: 16px;
    background: linear-gradient(145deg,rgba(47,39,66,.92),rgba(27,23,42,.94));
    box-sizing: border-box; cursor: pointer;
  }
  html.mobile-ui .mobile-native-project .pc-tooltip { display: none !important; }
  html.mobile-ui .mobile-native-empty { padding: 38px 14px; text-align: center; color: var(--text-3); border: 1px dashed var(--line); border-radius: 16px; }
  html.mobile-ui .mobile-segmented {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 12px; padding: 4px;
    border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.045);
  }
  html.mobile-ui .mobile-segmented button { min-height: 40px; border: 0; border-radius: 11px; color: var(--text-2); background: transparent; }
  html.mobile-ui .mobile-segmented button.active { color: #fff; background: linear-gradient(135deg,rgba(255,126,179,.30),rgba(124,58,237,.34)); }
  html.mobile-ui .mobile-message-pane { display: flex; flex-direction: column; gap: 9px; }
  html.mobile-ui .mobile-message-pane[hidden] { display: none !important; }
  html.mobile-ui .mobile-message-pane .activity-item,
  html.mobile-ui .mobile-message-pane .notif-item {
    margin: 0; padding: 12px; border: 1px solid rgba(255,143,199,.18); border-radius: 14px;
    background: rgba(31,26,47,.88); box-sizing: border-box;
  }
  html.mobile-ui .mobile-message-pane .notif-item.unread { border-color: rgba(255,126,179,.55); box-shadow: inset 3px 0 #ff7eb3; }
  html.mobile-ui .mobile-account-card {
    display: flex; align-items: center; gap: 14px; padding: 18px; margin-bottom: 12px;
    border: 1px solid rgba(255,143,199,.27); border-radius: 18px;
    background: linear-gradient(140deg,rgba(73,43,92,.82),rgba(29,25,47,.94));
  }
  html.mobile-ui .mobile-account-avatar {
    flex: 0 0 64px; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center;
    border-radius: 19px; background: #7c5cff center/cover no-repeat; font-size: 25px; font-weight: 700;
  }
  html.mobile-ui .mobile-account-copy { min-width: 0; }
  html.mobile-ui .mobile-account-name-row { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
  html.mobile-ui .mobile-account-copy h1 { margin: 0 0 5px; font-size: 21px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.mobile-ui .mobile-account-id { flex: 0 1 auto; max-width: 45%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #d7c9e6; font-size: 10px; line-height: 1; }
  html.mobile-ui .mobile-account-copy p { margin: 0; color: var(--text-2); font-size: 13px; line-height: 1.45; }
  html.mobile-ui .mobile-account-copy p span,
  html.mobile-ui .mobile-account-copy p strong { display: block; }
  html.mobile-ui .mobile-account-copy p strong { margin-top: 1px; color: #ff9dcc; font-weight: 600; }
  html.mobile-ui .mobile-backend-entry {
    width: 100%; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px;
    margin-bottom: 12px; padding: 12px; text-align: left; color: #fff; border: 1px solid rgba(255,126,179,.38);
    border-radius: 15px; background: linear-gradient(135deg,rgba(255,126,179,.18),rgba(124,58,237,.22));
  }
  html.mobile-ui .mobile-backend-entry > span { font-size: 26px; text-align: center; }
  html.mobile-ui .mobile-backend-entry strong,
  html.mobile-ui .mobile-backend-entry small { display: block; }
  html.mobile-ui .mobile-backend-entry small { margin-top: 2px; color: var(--text-2); font-size: 12px; }
  html.mobile-ui .mobile-backend-entry b { font-size: 25px; font-weight: 400; }
  html.mobile-ui .mobile-directory-card { margin-bottom: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 17px; background: rgba(27,23,42,.88); }
  html.mobile-ui .mobile-directory-title { display: flex; align-items: baseline; justify-content: space-between; padding: 0 3px 9px; }
  html.mobile-ui .mobile-directory-title span { font-size: 18px; font-weight: 700; }
  html.mobile-ui .mobile-directory-title small { color: var(--text-3); font-size: 12px; }
  html.mobile-ui .mobile-directory-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  html.mobile-ui .mobile-directory-item {
    min-height: 48px; display: grid; grid-template-columns: 25px minmax(0,1fr) auto; align-items: center; gap: 5px;
    padding: 8px 9px; text-align: left; color: #fff; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(255,255,255,.045);
  }
  html.mobile-ui .mobile-directory-item span { color: #ff8fc7; text-align: center; }
  html.mobile-ui .mobile-directory-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
  html.mobile-ui .mobile-directory-item b { color: var(--text-3); font-size: 20px; font-weight: 400; }

  /* 工作区首屏压缩：目录保持一行并可拖动，素材默认平铺。 */
  html.mobile-ui .ws-head { padding: 4px 8px 0; }
  html.mobile-ui .ws-title { gap: 4px; flex-wrap: nowrap; min-height: 34px; overflow-x: auto; }
  html.mobile-ui .ws-title h2 { flex: 0 1 auto; max-width: 44vw; font-size: 19px; }
  html.mobile-ui .ws-title .ws-dot { flex: 0 0 auto; }
  html.mobile-ui .ws-title .ws-status { flex: 0 0 auto; min-height: 31px; height: 31px; padding: 3px 7px; font-size: 13px; }
  html.mobile-ui .ws-title .star-btn { flex: 0 0 30px; width: 30px; height: 30px; }
  html.mobile-ui .ws-title .ws-cat,
  html.mobile-ui .ws-title .ws-members,
  html.mobile-ui .ws-title .ws-push-btn { display: none !important; }
  html.mobile-ui .ws-tabs { margin-top: 2px; padding-inline: 8px; width: calc(100% + 16px); margin-inline: -8px; }
  html.mobile-ui .ws-tab { min-height: 35px; padding: 5px 10px; font-size: 14px; }
  html.mobile-ui .ws-content { padding: 6px 8px; }
  html.mobile-ui .ws-panel-head { gap: 4px; }
  html.mobile-ui .ws-panel-head > span { font-size: 16px; white-space: nowrap; }
  html.mobile-ui .asset-tools { gap: 5px; padding: 1px 0 4px; }
  html.mobile-ui .asset-tools > * { min-height: 36px; }
  html.mobile-ui #assetSearch,
  html.mobile-ui .asset-tools .mobile-remove { display: none !important; }
  html.mobile-ui .media-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px; }
  html.mobile-ui .media-card { min-height: 166px; }
  html.mobile-ui .media-card .mc-cover { height: 98px; }
  html.mobile-ui .media-card .mc-body { padding: 8px; }
  html.mobile-ui .media-table-wrap { overflow-x: auto !important; }
  html.mobile-ui .media-grid.list-mode {
    display: block !important;
    overflow-x: auto;
    overflow-y: hidden;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }
  html.mobile-ui #projectWorkspace .media-table {
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  html.mobile-ui #projectWorkspace .media-table th:first-child,
  html.mobile-ui #projectWorkspace .media-table td:first-child { width: 34px !important; min-width: 34px !important; padding-inline: 5px !important; text-align: center; }
  html.mobile-ui #projectWorkspace .media-table th:nth-child(2),
  html.mobile-ui #projectWorkspace .media-table td:nth-child(2) { width: auto !important; min-width: 220px !important; text-align: left; }
  html.mobile-ui #projectWorkspace .media-table th:nth-child(n+3):nth-child(-n+7),
  html.mobile-ui #projectWorkspace .media-table td:nth-child(n+3):nth-child(-n+7) { width: auto !important; min-width: max-content !important; white-space: nowrap; }
  html.mobile-ui #projectWorkspace .media-table th:last-child,
  html.mobile-ui #projectWorkspace .media-table td:last-child { width: 48px !important; min-width: 48px !important; padding-inline: 4px !important; text-align: center; }
  html.mobile-ui #projectWorkspace .media-table th,
  html.mobile-ui #projectWorkspace .media-table td { max-width: none !important; padding-block: 7px; white-space: nowrap !important; }
  /* 列表切换时只布局首屏行；屏外行滚动到附近时再参与布局。 */
  html.mobile-ui #projectWorkspace .media-table tbody tr {
    content-visibility: auto;
    contain-intrinsic-size: auto 54px;
  }
  /* 平铺也只布局临近首屏的卡片；离屏卡片滚动到附近时再参与绘制。 */
  html.mobile-ui #projectWorkspace .media-grid:not(.list-mode) .media-card {
    content-visibility: auto;
    contain-intrinsic-size: auto 166px;
  }
  html.mobile-ui .media-table .mt-name { min-width: 210px; gap: 7px; }
  html.mobile-ui .media-table .mt-thumb { flex: 0 0 52px; width: 52px; height: 38px; object-fit: cover; }
  html.mobile-ui .media-table .mt-name-text,
  html.mobile-ui .media-table .mt-ellipsis { min-width: 0; max-width: none; overflow: visible; text-overflow: clip; white-space: nowrap; }
  /* 本轮仅手机端：小组列表文件名按内容自适应，但最长只占六个汉字宽度。 */
  html.mobile-ui #projectWorkspace .media-table .mt-file-name {
    display:inline-block;
    width:auto;
    max-width:6em;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    vertical-align:middle;
  }

  /* 本轮仅手机端：全站表格按标题和内容自然定列宽，超出部分在各自容器内横向拖看。 */
  html.mobile-ui :is(.contained-table-wrap,.admin-table-wrap,.boss-table-wrap,.file-find-table-wrap,.media-table-wrap,.table-wrap,.dt-table-wrap) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }
  html.mobile-ui table {
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  html.mobile-ui table :is(th,td) {
    width: auto !important;
    min-width: max-content !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }
  html.mobile-ui table .col-resizer { display: none !important; }

  html.mobile-ui .mobile-folder-picker-modal .modal-card { overflow: visible; }
  html.mobile-ui .mobile-folder-picker-title { margin: 0 0 12px; text-align: center; }
  html.mobile-ui .mobile-folder-picker-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: min(58dvh,460px);
    overflow-y: auto;
    padding: 2px;
  }
  html.mobile-ui .mobile-folder-choice {
    width: 100%;
    min-height: 44px;
    display: grid;
    grid-template-columns: 24px minmax(0,1fr) 24px;
    align-items: center;
    gap: 8px;
    padding: 8px 10px 8px calc(10px + var(--folder-indent,0px));
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--bg-3);
    color: var(--text);
    text-align: left;
  }
  html.mobile-ui .mobile-folder-choice.active { border-color: var(--accent); background: rgba(255,126,179,.12); }
  html.mobile-ui .mobile-folder-choice-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.mobile-ui .mobile-folder-choice-check { color: var(--accent); font-weight: 700; text-align: center; }

  /* 审阅页手机精简：保留审阅核心，隐藏桌面管理型或重复工具。 */
  html.mobile-ui .review-head { padding: 4px 6px; max-height: 82px; }
  html.mobile-ui .rh-left { width: 100%; padding: 0 6px; box-sizing: border-box; margin-bottom: 5px; gap: 4px; }
  html.mobile-ui .rh-right { width: 100%; padding-left: 6px; padding-right: 6px; box-sizing: border-box; gap: 4px; }
  html.mobile-ui .rh-left h2 { flex: 1 1 auto; min-width: 28px; max-width: none; font-size: 16px; }
  html.mobile-ui #backBtn {
    min-width: 64px;
    min-height: 34px;
    height: 34px;
    padding-left: 11px;
    padding-right: 11px;
    border-color: transparent;
    background: var(--grad-accent);
    color: #fff;
    font-size: 17px;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(167,76,255,.24);
  }
  html.mobile-ui .rh-left .version-select-wrap {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
  }
  html.mobile-ui .rh-left #previousFileBtn,
  html.mobile-ui .rh-left #nextFileBtn { margin-left: 4px; }
  html.mobile-ui .review-head .ghost-btn,
  html.mobile-ui .review-head select { min-height: 32px; height: 32px; padding: 3px 7px; font-size: 13px; }
  html.mobile-ui .review-head .media-meta,
  html.mobile-ui #compareBtn,
  html.mobile-ui #shareBtn,
  html.mobile-ui #coverBtn,
  html.mobile-ui #visSelect,
  html.mobile-ui #linkBtn,
  html.mobile-ui #simpleModeBtn,
  html.mobile-ui #subtitleBtn,
  html.mobile-ui #headToggle { display: none !important; }
  html.mobile-ui .controls #videoZoomOut,
  html.mobile-ui .controls #videoZoomFit,
  html.mobile-ui .controls #videoZoomIn,
  html.mobile-ui .controls #abLoopBtn,
  html.mobile-ui .controls #videoFitToggle,
  html.mobile-ui .controls #shortcutsBtn { display: none !important; }
  html.mobile-ui .controls #guideBtn { display: inline-flex !important; }

  /* 新建小组弹窗：给耳朵留出真实空间，缩短各字段间距。 */
  html.mobile-ui .modal-mask { padding-top: 40px; }
  html.mobile-ui .modal.q-rename-modal,
  html.mobile-ui .modal-card.q-rename-modal { overflow: visible !important; }
  html.mobile-ui .new-project-wrap {
    width: calc(100vw - 20px) !important; max-width: calc(100vw - 20px) !important;
    padding: 16px 15px 12px; overflow: visible; max-height: calc(100dvh - 54px);
  }
  html.mobile-ui .new-project-wrap > .q-rename-header,
  html.mobile-ui .new-project-wrap > .np-form-body,
  html.mobile-ui .new-project-wrap > .q-rename-actions { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
  html.mobile-ui .new-project-wrap .q-rename-header { gap: 2px; margin-bottom: 7px; }
  html.mobile-ui .new-project-wrap .q-rename-title { font-size: 19px; }
  html.mobile-ui .new-project-wrap .q-rename-sub { font-size: 13px; line-height: 1.35; text-align: center; }
  html.mobile-ui .new-project-wrap .np-form-body { gap: 7px; margin-top: 0; padding: 1px 0; max-height: calc(100dvh - 178px); overflow-y: auto; }
  html.mobile-ui .new-project-wrap .np-form-col { gap: 3px; }
  html.mobile-ui .new-project-wrap .np-form-label { margin: 2px 0 0; font-size: 14px; line-height: 1.25; }
  html.mobile-ui .new-project-wrap .np-form-label .np-form-hint { font-size: 12px; }
  html.mobile-ui .new-project-wrap .np-form-input,
  html.mobile-ui .new-project-wrap .np-form-select,
  html.mobile-ui .new-project-wrap .np-form-textarea { margin: 0; padding: 7px 9px; font-size: 15px; border-radius: 9px; }
  html.mobile-ui .new-project-wrap .np-form-input,
  html.mobile-ui .new-project-wrap .np-form-select { min-height: 38px; }
  html.mobile-ui .new-project-wrap .np-form-textarea { min-height: 52px; }
  html.mobile-ui .new-project-wrap .np-logo-preview { width: 44px; height: 44px; flex-basis: 44px; }
  html.mobile-ui .new-project-wrap .np-form-ghost { padding: 6px 10px; font-size: 14px; }
  html.mobile-ui .new-project-wrap .np-select-all { min-height: 31px; padding: 1px 8px; }
  html.mobile-ui .new-project-wrap .np-members { max-height: 128px; padding: 4px; }
  html.mobile-ui .new-project-wrap .np-member { min-height: 29px; padding: 2px 5px; font-size: 14px; }
  html.mobile-ui .new-project-wrap .q-rename-actions { margin-top: 7px; gap: 7px; }
  html.mobile-ui .new-project-wrap .q-rename-btn { min-height: 36px; padding: 6px 13px; font-size: 14px; }

  /* 公告通知：仅重排手机竖屏版面，不改变公告数据和桌面端。 */
  html.mobile-ui #wsTasks .announcement-summary {
    grid-template-columns: repeat(6,minmax(0,1fr)) !important;
    gap: 7px;
  }
  html.mobile-ui #wsTasks .announcement-summary-card { grid-column: span 2; }
  html.mobile-ui #wsTasks .announcement-sync-btn,
  html.mobile-ui #wsTasks .announcement-add-btn { grid-column: span 3; }
  html.mobile-ui #wsTasks .announcement-summary:has(.announcement-sync-btn.hidden) .announcement-add-btn { grid-column: 1 / -1; }
  html.mobile-ui #wsTasks .task-item {
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-rows: auto auto auto;
  }
  html.mobile-ui #wsTasks .tk-status-col {
    grid-column: 1;
    grid-row: 1;
    flex-direction: row;
    justify-content: flex-start;
    padding: 10px 13px;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.055);
  }
  html.mobile-ui #wsTasks .tk-main { grid-column: 1; grid-row: 2; }
  html.mobile-ui #wsTasks .tk-title-row {
    flex-direction: row;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 9px;
  }
  html.mobile-ui #wsTasks .tk-title { flex: 0 1 auto; max-width: 100%; }
  html.mobile-ui #wsTasks .tk-title-time { flex: 0 0 auto; }
  html.mobile-ui #wsTasks .tk-published-label { display: none !important; }
  html.mobile-ui #wsTasks .tk-title-time span + span { display: none !important; }
  html.mobile-ui #wsTasks .tk-info-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  html.mobile-ui #wsTasks .tk-info-grid > span { justify-content: flex-start; }
  html.mobile-ui #wsTasks .tk-info-grid > span:nth-child(3) { grid-column: 1 / -1; }
  html.mobile-ui #wsTasks .tk-people-row { align-items: flex-start; }
  html.mobile-ui #wsTasks .tk-people-row b {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 0;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    line-height: 1.55;
  }
  html.mobile-ui #wsTasks .tk-actions {
    grid-column: 1;
    grid-row: 3;
    flex-direction: row;
    justify-content: flex-end;
    min-width: 0;
    padding: 0 12px 12px;
    border-left: 0;
  }
  html.mobile-ui .task-create-wrap {
    max-height: calc(100dvh - 54px) !important;
    padding: 16px 14px 12px !important;
  }
  html.mobile-ui .task-create-wrap > .task-create-form {
    width: 100% !important;
    min-height: 0;
    max-height: calc(100dvh - 146px);
    grid-template-columns: minmax(0,1fr) !important;
    overflow-y: auto;
  }
  html.mobile-ui .task-create-wrap .task-title-row { grid-template-columns: minmax(0,1fr) !important; }
  html.mobile-ui .task-create-wrap .task-people > div:last-child {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  html.mobile-ui .task-create-wrap > .q-rename-actions {
    display: flex !important;
    width: 100% !important;
    flex: 0 0 auto;
    margin: 9px 0 0 !important;
    padding-top: 9px;
    border-top: 1px solid rgba(255,255,255,.07);
    background: linear-gradient(180deg,rgba(23,21,35,.72),#171523 38%);
    z-index: 2;
  }
  html.mobile-ui .task-create-wrap #taskCreate { display: inline-flex !important; }
  html.mobile-ui .task-create-wrap .announcement-color-confirm { display: none !important; }

  /* 顶部不再提供抽屉入口；小组统一由底部“小组”进入整页列表。 */
  html.mobile-ui #mobileSidebarBtn { display: none !important; }

  /* 用户中心 / 后台均采用手机应用式纵向页面，目录横滑、内容纵向拖动。 */
  html.mobile-ui .admin-view,
  html.mobile-ui .boss-view { height: 100%; min-height: 0; overflow: hidden; }
  html.mobile-ui .admin-layout,
  html.mobile-ui .boss-layout { height: 100%; min-height: 0; display: flex; flex-direction: column; }
  html.mobile-ui .admin-sidebar,
  html.mobile-ui .boss-sidebar { width: 100% !important; min-width: 0 !important; height: 46px; flex: 0 0 46px; overflow-x: auto; overflow-y: hidden; }
  html.mobile-ui .admin-main,
  html.mobile-ui .boss-main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
  html.mobile-ui .admin-topbar,
  html.mobile-ui .boss-topbar { flex: 0 0 auto; overflow-x: auto; overflow-y: hidden; }
  html.mobile-ui .admin-content,
  html.mobile-ui .boss-content { flex: 1; height: auto !important; min-height: 0; overflow: auto; touch-action: pan-x pan-y; }
}

@media (max-width: 390px) {
  html.mobile-ui .brand .logo-text-img { display: none; }
  html.mobile-ui .mobile-nav-btn { min-width: 48px; padding-inline: 5px; }
  html.mobile-ui .hub-welcome h1 { font-size: 22px; }
  html.mobile-ui .ws-title h2 { font-size: 20px; }
  html.mobile-ui .stage-wrap {
    flex-basis: 54vh !important; height: 54vh !important; min-height: 54vh !important;
    flex-basis: 54dvh !important; height: 54dvh !important; min-height: 54dvh !important;
  }
}

@media (max-width: 920px) and (max-height: 500px) and (orientation: landscape) {
  html.mobile-ui { --mobile-bottom-h: 54px; }
  html.mobile-ui .mobile-bottom-nav { height: 48px; bottom: 3px; }
  html.mobile-ui .mobile-nav-btn { min-height: 40px; flex-direction: row; gap: 4px; }
  html.mobile-ui .mobile-nav-btn span { font-size: 18px; }
  html.mobile-ui .stage-wrap {
    flex-basis: 72vh !important; height: 72vh !important; min-height: 72vh !important;
    flex-basis: 72dvh !important; height: 72dvh !important; min-height: 72dvh !important;
  }
}

/* 手机端应用内全屏：不调用桌面浏览器全屏，只在应用视口内独占文件画面。 */
html.mobile-ui body.mobile-review-fullscreen { overflow: hidden !important; }
html.mobile-ui body.mobile-review-fullscreen > .topbar,
html.mobile-ui body.mobile-review-fullscreen .sidebar,
html.mobile-ui body.mobile-review-fullscreen .mobile-bottom-nav,
html.mobile-ui body.mobile-review-fullscreen #reviewView > .review-head,
html.mobile-ui body.mobile-review-fullscreen #reviewView .comments-panel,
html.mobile-ui body.mobile-review-fullscreen #reviewView .review-divider { display: none !important; }
html.mobile-ui body.mobile-review-fullscreen .layout,
html.mobile-ui body.mobile-review-fullscreen #reviewView,
html.mobile-ui body.mobile-review-fullscreen #reviewView .review-body {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9990 !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen,
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen .stage-wrap,
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen .stage {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  max-height: 100dvh !important;
  flex: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #000 !important;
}
html.mobile-ui body.mobile-review-fullscreen #mobileOriginalDownloadBtn,
html.mobile-ui #reviewStage.mobile-stage-fullscreen #mobileOriginalDownloadBtn,
html.mobile-ui #stage:fullscreen #mobileOriginalDownloadBtn,
html.mobile-ui #stage:-webkit-full-screen #mobileOriginalDownloadBtn { display: none !important; }

html.mobile-ui #mobileOriginalDownloadBtn { font-family:inherit; cursor:pointer; }
@media (max-width: 768px) {
  html.mobile-ui body:has(#uploadProgressTray) #pushProgressTray { right:18px; bottom:230px; }
}

/* 2026-08-29 手机端精修：审阅底栏、小组信息与各业务页的手机布局。 */
html.mobile-ui {
  --mobile-workspace-gap: 2px;
}

/* 审阅页：文件展示区占满剩余高度，批注按钮栏始终贴底。 */
html.mobile-ui body.mobile-review-active #reviewView {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: calc(100dvh - var(--mobile-topbar-h)) !important;
  min-height: calc(100dvh - var(--mobile-topbar-h)) !important;
  max-height: calc(100dvh - var(--mobile-topbar-h)) !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewView .review-head { flex: 0 0 auto; }
html.mobile-ui body.mobile-review-active #reviewView .review-body {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  min-height: 0 !important;
  position: relative !important;
  padding-bottom: 35px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewView .review-stage {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewView .stage-wrap,
html.mobile-ui body.mobile-review-active #reviewView .review-stage.type-image .stage-wrap,
html.mobile-ui body.mobile-review-active #reviewView .review-stage.type-script .stage-wrap,
html.mobile-ui body.mobile-review-active #reviewView .review-stage.type-audio .stage-wrap {
  flex: 1 1 auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  position: relative !important;
  width: 100% !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewView:not(.mobile-comments-expanded) .comments-panel.review-side {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 1350 !important;
  flex: 0 0 35px !important;
  height: 35px !important;
  min-height: 35px !important;
  max-height: 35px !important;
  margin-top: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewView.mobile-comments-expanded .comments-panel.review-side {
  position: fixed !important;
  top: var(--mobile-topbar-h) !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  z-index: 1500 !important;
}
/* 非视频文件明确占满展示区，避免弹性计算后画布或正文高度归零。 */
html.mobile-ui body.mobile-review-active #reviewStage.review-type-image .stage,
html.mobile-ui body.mobile-review-active #reviewStage.review-type-script .stage,
html.mobile-ui body.mobile-review-active #reviewStage.review-type-audio .stage {
  position: relative !important;
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewStage.review-type-image #imgEl:not(.hidden) {
  display: block !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
}
html.mobile-ui body.mobile-review-active #reviewStage.review-type-script #scriptReader:not(.hidden) {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow-y: auto !important;
}
html.mobile-ui body.mobile-review-active #reviewStage.review-type-audio #waveCanvas:not(.hidden),
html.mobile-ui body.mobile-review-active #reviewStage.review-type-audio #spectrumCanvas:not(.hidden) {
  display: block !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  min-height: 120px !important;
}
html.mobile-ui body.mobile-review-active #reviewView .comments-panel.review-side .cp-head {
  display: grid !important;
  grid-template-columns: 26px repeat(4, minmax(0, 1fr)) !important;
  align-items: center !important;
  gap: 3px !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 2px 4px !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewView .comments-panel.review-side .cp-filters { display: contents !important; }
html.mobile-ui body.mobile-review-active #reviewView .comments-panel.review-side .cp-filters > select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding-inline: 3px !important;
}
html.mobile-ui body.mobile-review-active #reviewView .comment-input-bar {
  grid-template-columns: auto minmax(0, 1fr) 30px 54px !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui body.mobile-review-active #reviewView .comment-input-bar .cib-tools,
html.mobile-ui body.mobile-review-active #reviewView .comment-input-bar .cib-input { min-width: 0 !important; }
html.mobile-ui body.mobile-review-active #reviewView #imgGuideBtn { grid-column: 3 !important; }
html.mobile-ui body.mobile-review-active #reviewView #cibSend { grid-column: 4 !important; }
html.mobile-ui body.mobile-review-active #reviewView #duration { display: none !important; }

/* 小组页面外边距统一压缩为 2px。 */
html.mobile-ui .project-workspace .ws-head { padding: var(--mobile-workspace-gap) var(--mobile-workspace-gap) 0 !important; }
html.mobile-ui .project-workspace .ws-tabs {
  width: calc(100% + (var(--mobile-workspace-gap) * 2)) !important;
  margin-inline: calc(var(--mobile-workspace-gap) * -1) !important;
  padding-inline: var(--mobile-workspace-gap) !important;
}
html.mobile-ui .project-workspace .ws-content { padding: var(--mobile-workspace-gap) !important; }
html.mobile-ui .project-workspace .ws-panel,
html.mobile-ui .project-workspace .report-body { min-width: 0 !important; max-width: 100% !important; }

/* 小组信息成为独立页签。 */
html.mobile-ui .mobile-project-info-panel { padding: 0 !important; }
html.mobile-ui .mobile-project-info-panel #wsSide {
  display: block !important;
  position: static !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 8px !important;
}

/* 时间节点：标题独占一行，工具按钮另起一行。 */
html.mobile-ui #projectNodesBody > .rep-box:first-child > .rep-box-head {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 6px !important;
}
html.mobile-ui #projectNodesBody > .rep-box:first-child > .rep-box-head > .rep-h3 {
  flex: 0 0 100% !important;
  width: 100% !important;
  margin: 0 !important;
  white-space: nowrap !important;
  writing-mode: horizontal-tb !important;
}
html.mobile-ui #projectNodesBody .rep-gantt-tools-inline {
  display: flex !important;
  flex: 1 1 100% !important;
  flex-wrap: wrap !important;
  gap: 5px !important;
  margin: 0 !important;
}

/* 小组详情：手机端自适应、统一内边距，避免孤立图标。 */
html.mobile-ui #projectDetailBody { padding: 0 !important; overflow: hidden !important; }
html.mobile-ui #projectDetailBody .rep-box { width: 100% !important; min-width: 0 !important; margin: 0 0 7px !important; padding: 8px !important; }
html.mobile-ui #projectDetailBody .rep-box-head { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 5px !important; }
html.mobile-ui #projectDetailBody .rep-h3 { white-space: nowrap !important; writing-mode: horizontal-tb !important; }
html.mobile-ui #projectDetailBody .rep-stat-row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px !important; }
html.mobile-ui #projectDetailBody .rep-info-line { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px !important; }
html.mobile-ui #projectDetailBody .rep-kv { min-width: 0 !important; width: 100% !important; padding: 7px !important; }
html.mobile-ui #projectDetailBody .rep-detail-layout,
html.mobile-ui #projectDetailBody .rep-layout-wide-link,
html.mobile-ui #projectDetailBody .rep-link-layout,
html.mobile-ui #projectDetailBody .rep-link-left,
html.mobile-ui #projectDetailBody .rep-link-right { display: block !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
html.mobile-ui #projectDetailBody .rep-link-card { width: 100% !important; min-width: 0 !important; margin-bottom: 6px !important; padding: 8px !important; }
html.mobile-ui #projectDetailBody .rep-link-icon,
html.mobile-ui #projectDetailBody .rep-child-icon { display: none !important; }
html.mobile-ui #projectDetailBody input,
html.mobile-ui #projectDetailBody select,
html.mobile-ui #projectDetailBody textarea { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
html.mobile-ui #projectDetailBody button { max-width: 100% !important; white-space: normal !important; }

/* 更新动态：标题一行，分类筛选单独一行。 */
html.mobile-ui #projectActivityBody .rep-box-head { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 6px !important; }
html.mobile-ui #projectActivityBody .rep-box-head > .rep-h3 { width: 100% !important; margin: 0 !important; white-space: nowrap !important; writing-mode: horizontal-tb !important; }
html.mobile-ui #projectActivityBody .rep-act-filters { display: flex !important; width: 100% !important; min-width: 0 !important; flex-wrap: wrap !important; align-items: center !important; gap: 5px !important; margin: 0 !important; }
html.mobile-ui #projectActivityBody .rep-act-cats { display: flex !important; min-width: 0 !important; flex-wrap: wrap !important; gap: 4px !important; }

/* 添加成员：身份选择独占下一行，按钮不再被切边。 */
html.mobile-ui #projectMemberAddPanel .bm-row { display: flex !important; flex-wrap: wrap !important; min-width: 0 !important; }
html.mobile-ui #projectMemberAddPanel .bm-info { flex: 1 1 150px !important; min-width: 0 !important; }
html.mobile-ui #projectMemberAddPanel .rep-mem-role-toggle {
  order: 20 !important;
  flex: 0 0 100% !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 5px 0 0 !important;
  gap: 4px !important;
}
html.mobile-ui #projectMemberAddPanel .rep-mem-role-toggle[hidden] { display: none !important; }
html.mobile-ui #projectMemberAddPanel .rep-mem-role-toggle button { min-width: 0 !important; padding: 5px 2px !important; overflow: hidden !important; text-overflow: ellipsis !important; }
html.mobile-ui #projectMemberAddPanel #addMemBtn { min-width: 0 !important; max-width: 100% !important; padding-inline: 10px !important; }

/* 回收站操作按钮并排等宽。 */
html.mobile-ui #recycleBody .trash-row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px !important; }
html.mobile-ui #recycleBody .trash-row > span { grid-column: 1 / -1 !important; min-width: 0 !important; }
html.mobile-ui #recycleBody .trash-row > button { width: 100% !important; min-width: 0 !important; margin: 0 !important; }

/* 首页手机端：隐藏桌面布局控制，欢迎区域下移并拉开文案行距。 */
html.mobile-ui .project-hub .hub-head-actions { display: none !important; }
html.mobile-ui .project-hub .hub-welcome { padding-top: 20px !important; }
html.mobile-ui .project-hub .hub-welcome h1 { margin-bottom: 35px !important; }
html.mobile-ui .project-hub #hubSubtitle {
  display: block !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  line-height: 24px !important;
  overflow: hidden !important;
  transform: translateY(-20px) !important;
}

/* 手机审阅底部控制坞：波形、时间轴、播放、输入和筛选整体贴底。 */
html.mobile-ui body.mobile-review-active #reviewView .review-body {
  padding-bottom: 0 !important;
}
html.mobile-ui body.mobile-review-active #reviewView .review-stage {
  padding: 0 !important;
}
html.mobile-ui body.mobile-review-active #reviewView .mobile-review-dock {
  display: flex !important;
  flex: 0 0 auto !important;
  flex-direction: column !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin-top: auto !important;
  padding: 0 !important;
  position: relative !important;
  z-index: 20 !important;
  overflow: visible !important;
  background: rgba(18,15,31,.94) !important;
}
html.mobile-ui body.mobile-review-active #reviewView .mobile-review-dock > * {
  flex-shrink: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
html.mobile-ui body.mobile-review-active #reviewView:not(.mobile-comments-expanded) .mobile-review-dock .comments-panel.review-side {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  flex: 0 0 35px !important;
  height: 35px !important;
  min-height: 35px !important;
  max-height: 35px !important;
  margin: 0 !important;
}
html.mobile-ui body.mobile-review-active #reviewView .review-stage > .stage-wrap {
  flex: 1 1 auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen > .mobile-review-dock {
  display: none !important;
}
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen.mobile-fullscreen-comment-open > .mobile-review-dock {
  display: contents !important;
}
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen.mobile-fullscreen-comment-open > .mobile-review-dock > :not(.comment-input-bar) {
  display: none !important;
}

@media (max-width: 360px) {
  html.mobile-ui #projectDetailBody .rep-info-line,
  html.mobile-ui #projectDetailBody .rep-stat-row { grid-template-columns: 1fr !important; }
}

/*
 * 手机审阅页最终布局：不再依赖 body 的瞬时状态类。
 * 审阅页固定占满顶部栏以下的整块视口，文件区吃掉全部剩余高度，
 * 波形、播放、批注输入和筛选作为一个整体控制坞贴住屏幕底边。
 */
html.mobile-ui #reviewView:not(.hidden) {
  display: flex !important;
  position: fixed !important;
  inset: var(--mobile-topbar-h) 0 0 0 !important;
  z-index: 920 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  flex-direction: column !important;
  overflow: hidden !important;
  background: #080711 !important;
}
html.mobile-ui #reviewView:not(.hidden) > .review-head {
  flex: 0 0 auto !important;
}
html.mobile-ui #reviewView:not(.hidden) > .review-body {
  display: flex !important;
  flex: 1 1 0 !important;
  flex-direction: column !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage {
  display: flex !important;
  flex: 1 1 0 !important;
  flex-direction: column !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage > .stage-wrap,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-image > .stage-wrap,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-script > .stage-wrap,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-audio > .stage-wrap {
  display: flex !important;
  position: relative !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  overflow: hidden !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage > .stage-wrap > .stage {
  position: relative !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-script #scriptReader:not(.hidden) {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-image #imgEl:not(.hidden) {
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #000 !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-script #scriptReader:not(.hidden) {
  overflow-y: auto !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage > .mobile-review-dock {
  display: flex !important;
  position: relative !important;
  inset: auto !important;
  z-index: 30 !important;
  flex: 0 0 auto !important;
  flex-direction: column !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: auto 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: rgba(18,15,31,.94) !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage > .mobile-review-dock > * {
  position: relative !important;
  flex-shrink: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) .mobile-review-dock .comments-panel.review-side {
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  flex: 0 0 35px !important;
  height: 35px !important;
  min-height: 35px !important;
  max-height: 35px !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* 展开批注：保留三行审阅页头，隐藏文件与输入控件，批注列表占满其余屏幕。 */
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #reviewStage > .stage-wrap,
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #reviewStage > .mobile-review-dock > #videoWaveTrack,
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #reviewStage > .mobile-review-dock > #timelineBar,
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #reviewStage > .mobile-review-dock > #controls,
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #reviewStage > .mobile-review-dock > #commentInputBar,
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #reviewStage > .mobile-review-dock > .rv-bottom-edge {
  display: none !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #reviewStage > .mobile-review-dock {
  display: flex !important;
  position: relative !important;
  inset: auto !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: rgba(18,15,31,.94) !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded .mobile-review-dock .comments-panel.review-side {
  display: flex !important;
  position: relative !important;
  inset: auto !important;
  z-index: 1 !important;
  flex: 1 1 0 !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: rgba(18,15,31,.94) !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded .comments-panel.review-side .cp-head {
  display: grid !important;
  grid-template-columns: 28px repeat(4, minmax(0, 1fr)) !important;
  flex: 0 0 35px !important;
  align-items: center !important;
  width: 100% !important;
  height: 35px !important;
  min-height: 35px !important;
  max-height: 35px !important;
  gap: 3px !important;
  margin: 0 !important;
  padding: 2px 5px !important;
  overflow: hidden !important;
  border-bottom: 1px solid rgba(255,125,192,.2) !important;
  background: rgba(18,15,31,.96) !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded .comments-panel.review-side .cp-head > :not(#mobileCommentPanelToggle):not(.cp-filters) {
  display: none !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded .comments-panel.review-side .cp-filters {
  display: contents !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded .comments-panel.review-side #searchInput,
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded .comments-panel.review-side #filterVersion {
  display: none !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded .comments-panel.review-side .cp-filters > select:not(#filterVersion) {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 2px 3px !important;
  margin: 0 !important;
  font-size: 15px !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #mobileCommentPanelToggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  margin: 0 !important;
}
html.mobile-ui #reviewView:not(.hidden).mobile-comments-expanded #commentList {
  display: block !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 6px 6px max(6px, env(safe-area-inset-bottom)) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}

/* 手机端文件全屏只保留文件本身；批注热区、输入条及整套控制坞全部隐藏。 */
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen > .mobile-review-dock,
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen.mobile-fullscreen-comment-open > .mobile-review-dock,
html.mobile-ui body.mobile-review-fullscreen #reviewView:not(.hidden) #reviewStage.mobile-stage-fullscreen > .mobile-review-dock,
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen .mobile-fullscreen-comment-hotzone,
html.mobile-ui body.mobile-review-fullscreen #reviewStage.mobile-stage-fullscreen .comment-input-bar {
  display: none !important;
}

/* 首页数据概览与新建按钮整体上移 10px。 */
html.mobile-ui .project-hub .hub-stats-bar,
html.mobile-ui .project-hub .hub-create-btn {
  transform: translateY(-10px) !important;
}

/* 小组页面整体占满手机视口：原 32px 边距各缩减 22px，左右统一剩 10px。 */
html.mobile-ui .project-workspace {
  overflow-x: hidden !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: calc(100% + 44px) !important;
  margin: -22px 0 !important;
  padding: 22px 10px !important;
}
html.mobile-ui .project-workspace .ws-content {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 2px !important;
}
html.mobile-ui .project-workspace .ws-tabs {
  width: 100% !important;
  margin-inline: 0 !important;
  padding-inline: 2px !important;
}

/* 手机端视频控制行：红框内的细碎控件换成一条进度条，并显示缓冲层。 */
html.mobile-ui #reviewStage.review-type-video .controls {
  gap: 6px !important;
  justify-content: flex-start !important;
  align-items: center !important;
  padding: 4px 7px !important;
  overflow: visible !important;
}
html.mobile-ui #reviewStage.review-type-video .controls #vwtToggleBtn,
html.mobile-ui #reviewStage.review-type-video .controls #playBtn {
  width: 37px !important;
  min-width: 37px !important;
  height: 37px !important;
  padding: 0 !important;
}
html.mobile-ui #reviewStage.review-type-video .controls #prevFrameBtn,
html.mobile-ui #reviewStage.review-type-video .controls #nextFrameBtn,
html.mobile-ui #reviewStage.review-type-video .controls #timecode,
html.mobile-ui #reviewStage.review-type-video .controls #duration,
html.mobile-ui #reviewStage.review-type-video .controls #speedSelect,
html.mobile-ui #reviewStage.review-type-video .controls #guideBtn {
  display: none !important;
}
html.mobile-ui #reviewStage.review-type-video .controls .seek-wrap {
  display: flex !important;
  position: relative !important;
  order: 20 !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 96px !important;
  height: 37px !important;
  align-items: center !important;
  padding-left: 7px !important;
  padding-right: 7px !important;
  overflow: visible !important;
}
html.mobile-ui #reviewStage.review-type-video .controls #vwtToggleBtn,
html.mobile-ui #reviewStage.review-type-video .controls #guideBtn,
html.mobile-ui #reviewStage.review-type-video .comment-input-bar #cibDrawBtn {
  margin-left: 0 !important;
}
html.mobile-ui #reviewStage.review-type-video .comment-input-bar {
  padding-left: 7px !important;
  padding-right: 7px !important;
}
html.mobile-ui #reviewStage.review-type-video .controls #fullscreenBtn {
  display: none !important;
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  min-width: 32px !important;
  height: 37px !important;
  margin-left: 0 !important;
  order: 99 !important;
  overflow: visible !important;
  z-index: 12;
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  cursor: pointer;
  touch-action: manipulation;
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider {
  display: none !important;
  position: absolute !important;
  left: 50% !important;
  bottom: 68px !important;
  width: 112px !important;
  min-width: 112px !important;
  height: 24px !important;
  margin: 0 !important;
  transform: translateX(-50%) rotate(-90deg) !important;
  transform-origin: center !important;
  z-index: 13;
  appearance: none !important;
  -webkit-appearance: none !important;
  border-radius: 999px !important;
  background: transparent !important;
  accent-color: #ff72bd !important;
  --mobile-volume-percent: 100%;
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider:focus,
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider:focus-visible,
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider:active {
  outline: none !important;
  outline-offset: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider::-webkit-slider-runnable-track {
  height: 15px;
  border-radius: 999px;
  background:
    linear-gradient(#ff72bd, #ff72bd) left center / var(--mobile-volume-percent) 4px no-repeat,
    var(--bg-3);
  box-shadow: inset 0 0 0 1px var(--line);
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider::-webkit-slider-thumb {
  width: 13px;
  height: 13px;
  margin-top: 1px;
  border: 2px solid #ffd0e9;
  border-radius: 50%;
  background: #ff72bd;
  box-shadow: 0 0 8px rgba(255,114,189,.65);
  -webkit-appearance: none;
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider::-moz-range-track {
  height: 15px;
  border-radius: 999px;
  background: var(--bg-3);
  box-shadow: inset 0 0 0 1px var(--line);
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider::-moz-range-progress {
  height: 4px;
  border-radius: 999px;
  background: #ff72bd;
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-slider::-moz-range-thumb {
  width: 13px;
  height: 13px;
  border: 2px solid #ffd0e9;
  border-radius: 50%;
  background: #ff72bd;
  box-shadow: 0 0 8px rgba(255,114,189,.65);
}
html.mobile-ui #reviewStage.review-type-video .controls .vol-wrap.mobile-volume-open .vol-slider {
  display: block !important;
}

/* 手机端审阅页工具精简：只调整手机审阅页，不改变网页端和其他手机页面。 */
html.mobile-ui #reviewView:not(.hidden) #uploadVersionBtn,
html.mobile-ui #reviewView:not(.hidden) .version-select-wrap .status-select > label {
  display: none !important;
}
html.mobile-ui #reviewView:not(.hidden) .version-select-wrap .status-select {
  display: flex !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  margin-left: auto !important;
}
html.mobile-ui #reviewView:not(.hidden) .version-select-wrap #statusSelect {
  width: auto !important;
  max-width: 88px !important;
  min-width: 76px !important;
}
html.mobile-ui #reviewView:not(.hidden) .version-select-wrap #nextFileBtn {
  margin-left: 4px !important;
}
html.mobile-ui #reviewView:not(.hidden) .version-select-wrap #previousFileBtn {
  margin-left: 4px !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) .mobile-review-dock .comments-panel.review-side {
  display: none !important;
  flex-basis: 0 !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  border: 0 !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar #mobileCommentPanelToggle {
  display: inline-flex !important;
  grid-column: 1 !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  margin: 0 !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar {
  grid-template-columns: 32px auto minmax(0, 1fr) 30px 54px !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar .cib-tools { grid-column: 2 !important; }
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar .cib-input { grid-column: 3 !important; }
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar #imgGuideBtn { grid-column: 4 !important; }
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar #cibSend { grid-column: 5 !important; }
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls .ctrl-btn {
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #speedSelect,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls .vol-wrap {
  height: 32px !important;
  min-height: 32px !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #vwtToggleBtn,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #playBtn,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls .vol-wrap {
  width: 37px !important;
  min-width: 37px !important;
  height: 37px !important;
  min-height: 37px !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls .seek-wrap {
  display: flex !important;
  flex: 1 1 auto !important;
  min-width: 96px !important;
  height: 37px !important;
  order: 20 !important;
}
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #prevFrameBtn,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #nextFrameBtn,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #timecode,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #duration,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #speedSelect,
html.mobile-ui #reviewView:not(.hidden) #reviewStage.review-type-video .controls #guideBtn {
  display: none !important;
}

/* 构图菜单是跟随按钮的悬浮层，不参与底部控制坞排版。 */
html.mobile-ui #reviewView:not(.hidden) #reviewStage > .mobile-review-dock > #guidePanel {
  position: absolute !important;
  inset: auto var(--mobile-guide-right, 7px) var(--mobile-guide-bottom, 84px) auto !important;
  z-index: 240 !important;
  width: min(260px, calc(100% - 14px)) !important;
  max-width: calc(100% - 14px) !important;
  flex: none !important;
  margin: 0 !important;
}

/* 2026-08-29 手机端账户、审阅标题与独立消息发送页精修。 */
html.mobile-ui #pfAvatarPreview,
html.mobile-ui .team-avatar-preview#pfAvatarPreview {
  flex: 0 0 86px !important;
  width: 86px !important;
  min-width: 86px !important;
  max-width: 86px !important;
  height: 86px !important;
  min-height: 86px !important;
  max-height: 86px !important;
  aspect-ratio: 1 / 1 !important;
  align-self: center;
  box-sizing: border-box;
}
html.mobile-ui .team-avatar-row { align-items: center !important; }
html.mobile-ui .team-avatar-actions { flex: 0 0 auto !important; width: auto !important; max-width: 50% !important; }
html.mobile-ui .team-avatar-actions label[for="pfAvatarInput"] {
  display: inline-flex !important;
  width: auto !important;
  min-width: 92px !important;
  max-width: 116px !important;
  padding-inline: 12px !important;
  justify-content: center;
  white-space: nowrap;
}
html.mobile-ui .team-avatar-actions label[for="pfAvatarInput"] ~ .admin-hint { display: none !important; }
html.mobile-ui .rh-left h2 {
  flex: 0 1 auto !important;
  max-width: 40% !important;
  margin-right: 0 !important;
}
html.mobile-ui .rh-left .version-select-wrap {
  flex: 1 1 auto !important;
  margin-left: 0 !important;
}
html.mobile-ui .mobile-account-name-row { flex-wrap: wrap; align-items: baseline; }
html.mobile-ui .mobile-account-id {
  flex: 0 0 auto !important;
  max-width: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}
html.mobile-ui .admin-sidebar,
html.mobile-ui .boss-sidebar {
  height: 42px !important;
  flex-basis: 42px !important;
  min-height: 42px !important;
  padding-block: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: flex-start !important;
  align-items: center !important;
  position: relative;
  z-index: 15;
}
html.mobile-ui .admin-sidebar .admin-nav,
html.mobile-ui .boss-sidebar .admin-nav {
  height: 42px !important;
  min-height: 42px !important;
  display: flex !important;
  flex: 0 0 auto !important;
  width: max-content !important;
  min-width: max-content !important;
  justify-content: flex-start !important;
  align-items: center !important;
  padding-block: 0 !important;
}
html.mobile-ui .admin-topbar,
html.mobile-ui .boss-topbar {
  height: 42px !important;
  min-height: 42px !important;
  padding-block: 0 !important;
  display: flex !important;
  align-items: center !important;
  position: relative;
  z-index: 14;
}
html.mobile-ui .admin-tabs,
html.mobile-ui .boss-tabs { height: 100% !important; display: flex !important; align-items: center !important; }
html.mobile-ui .admin-tab,
html.mobile-ui .boss-tab { min-height: 34px !important; height: 34px !important; display: inline-flex !important; align-items: center !important; }
html.mobile-ui body.mobile-message-compose-mode #adminView .admin-sidebar,
html.mobile-ui body.mobile-message-compose-mode #adminView .admin-topbar { display: none !important; }
html.mobile-ui body.mobile-message-compose-mode #adminView .admin-main { height: 100% !important; min-height: 0 !important; }
html.mobile-ui body.mobile-message-compose-mode #adminView .admin-content {
  height: 100% !important;
  min-height: 0 !important;
  padding: 52px 10px 86px !important;
  overflow-y: auto !important;
}
html.mobile-ui .mobile-message-compose-back {
  position: absolute;
  z-index: 120;
  top: 8px;
  left: 10px;
  min-height: 34px;
  padding: 5px 13px;
  color: #fff;
  border: 1px solid rgba(255,143,199,.48);
  border-radius: 999px;
  background: linear-gradient(135deg,#ff7eb3,#8b5cf6);
  box-shadow: 0 5px 15px rgba(139,92,246,.24);
}
html.mobile-ui #projectTrashClear { margin-left: auto; white-space: nowrap; }

/* 手机端审阅输入排：移除隐藏控件预留空列，并把可用宽度均分给输入区。 */
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar {
  grid-template-columns: 32px auto minmax(0, 1fr) 54px !important;
  column-gap: 8px !important;
  padding-inline: 8px !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar .cib-tools {
  grid-column: 2 !important;
  gap: 6px !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar .cib-input {
  grid-column: 3 !important;
  width: 100% !important;
  min-width: 0 !important;
}
html.mobile-ui #reviewView:not(.hidden):not(.mobile-comments-expanded) #commentInputBar #cibSend {
  grid-column: 4 !important;
  width: 54px !important;
  min-width: 54px !important;
  margin: 0 !important;
}

/* 手机端素材列表连续下拉；返回顶部按钮只在素材页向下滚动后出现。 */
html.mobile-ui #wsAssets #assetPageBar { display: none !important; }
html.mobile-ui #mobileAssetsTopBtn:not([hidden]) {
  position: fixed !important;
  right: 14px !important;
  bottom: calc(78px + env(safe-area-inset-bottom)) !important;
  z-index: 880 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  border: 1px solid rgba(255,180,225,.68) !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg,#ff77b8,#8b4cf4) !important;
  box-shadow: 0 8px 22px rgba(139,76,244,.42) !important;
}

/* 手机端审阅输入浮层：一键批注和 @ 候选不能被输入栏裁切或压到下层。 */
html.mobile-ui #reviewView:not(.hidden) #reviewStage > .mobile-review-dock,
html.mobile-ui #reviewView:not(.hidden) #commentInputBar,
html.mobile-ui #reviewView:not(.hidden) #commentInputBar .cib-tools {
  overflow: visible !important;
}
html.mobile-ui #reviewView:not(.hidden) #commentInputBar {
  position: relative !important;
  z-index: 320 !important;
}
html.mobile-ui #reviewView:not(.hidden) #quickAnnoPanel.quick-anno-panel,
html.mobile-ui #reviewView:not(.hidden) #mentionPopup.mention-popup {
  z-index: 340 !important;
  max-width: calc(100vw - 24px) !important;
}
html.mobile-ui #reviewView:not(.hidden) #quickAnnoPanel.quick-anno-panel {
  left: 0 !important;
  bottom: calc(100% + 8px) !important;
  width: min(320px, calc(100vw - 24px)) !important;
}
html.mobile-ui #reviewView:not(.hidden) #mentionPopup.mention-popup {
  left: 8px !important;
  right: auto !important;
  bottom: calc(100% + 8px) !important;
  width: min(320px, calc(100vw - 24px)) !important;
  min-width: min(260px, calc(100vw - 24px)) !important;
  max-height: min(42vh, 260px) !important;
}

/* 本轮仅限手机端的用户中心布局；桌面端规则保留在 style.css。 */
html.mobile-ui #adminOverview #adminCards {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
html.mobile-ui #adminOverview #adminCards .admin-card-wide { grid-column:1 / -1!important; }
html.mobile-ui #adminOverview .admin-capacity-overview-panel { display:none!important; }
html.mobile-ui #adminOverview .admin-grid-2 { grid-template-columns:minmax(0,1fr)!important; }
html.mobile-ui #adminOverview .overview-project-table-wrap { width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* 手机端所有用户中心表格按标题和内容自然定宽，并在容器内横向拖动。 */
html.mobile-ui #adminOverview table,
html.mobile-ui #adminModule table {
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
  table-layout:auto!important;
}
html.mobile-ui #adminOverview table th,
html.mobile-ui #adminOverview table td,
html.mobile-ui #adminModule table th,
html.mobile-ui #adminModule table td {
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
}
html.mobile-ui #adminModule { min-width:0; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
html.mobile-ui #adminModule .member-table-wrap,
html.mobile-ui #adminModule .capacity-detail-table-wrap,
html.mobile-ui #adminModule .file-find-table-wrap,
html.mobile-ui #adminModule .project-manage-table-wrap,
html.mobile-ui #adminModule .trash-table-wrap,
html.mobile-ui #adminModule .supplier-table-panel,
html.mobile-ui #adminModule .profit-table-wrap { width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* 成员管理：两个筛选各半宽；操作名精简后的按钮保持整齐。 */
html.mobile-ui #adminModule[data-page="members"] .member-toolbar {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
}
html.mobile-ui #adminModule[data-page="members"] #addMemberBtn,
html.mobile-ui #adminModule[data-page="members"] #inviteProjectMembersBtn { width:100%; min-width:0; }
html.mobile-ui #adminModule[data-page="members"] .member-view-switch { margin:0!important; gap:6px; }
html.mobile-ui #adminModule[data-page="members"] .member-filters {
  grid-column:1 / -1;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%;
}
html.mobile-ui #adminModule[data-page="members"] #mSearch { grid-column:1 / -1; }
html.mobile-ui #adminModule[data-page="members"] #mRoleFilter,
html.mobile-ui #adminModule[data-page="members"] #mStatusFilter { width:100%!important; min-width:0; }
html.mobile-ui #adminModule[data-page="members"] .member-batchbar { flex-wrap:nowrap!important; overflow-x:auto; -webkit-overflow-scrolling:touch; }
html.mobile-ui #adminModule[data-page="members"] .member-batchbar > * { flex:none; }

/* 存储明细：总容量与剩余容量同排；已用容量独占下一排。 */
html.mobile-ui #adminModule[data-page="capacity"] > .admin-cards { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px!important; }
html.mobile-ui #adminModule[data-page="capacity"] .capacity-total-card { grid-column:1; grid-row:1; }
html.mobile-ui #adminModule[data-page="capacity"] .capacity-free-card { grid-column:2; grid-row:1; }
html.mobile-ui #adminModule[data-page="capacity"] .capacity-used-card { grid-column:1 / -1; grid-row:2; }

/* 文件查找：两个下拉框各半宽，结果表横向拖动。 */
html.mobile-ui #adminModule[data-page="files"] .file-find-bar { display:block!important; }
html.mobile-ui #adminModule[data-page="files"] .file-find-bar > .search-input { width:100%!important; min-width:0!important; margin-bottom:8px; }
html.mobile-ui #adminModule[data-page="files"] .file-find-filter-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:8px; }
html.mobile-ui #adminModule[data-page="files"] .file-find-filter-pair select { width:100%!important; min-width:0; }
html.mobile-ui #adminModule[data-page="files"] .file-find-bar > .muted { display:block; }

/* 小组管理：解散、删除两个批量按钮始终在同一行。 */
html.mobile-ui #adminModule[data-page="projects"] .admin-project-batchbar { flex-wrap:wrap!important; }
html.mobile-ui #adminModule[data-page="projects"] .project-batch-actions { display:inline-flex; align-items:center; gap:8px; margin-left:auto; white-space:nowrap; }

/* 流程管理、企业信息登记根据手机宽度单列，不改变电脑端排版。 */
html.mobile-ui #adminModule[data-page="workflow"] .workflow-template-card { align-items:flex-start; flex-direction:column; }
html.mobile-ui #adminModule[data-page="workflow"] .workflow-template-card .row-btns { align-self:flex-end; }
html.mobile-ui #adminModule[data-page="enterprise"] .enterprise-smart-actions { align-items:stretch; flex-direction:column; }
html.mobile-ui #adminModule[data-page="enterprise"] .enterprise-smart-actions button { width:100%; }

/* 供应商总数和合作中各占半行；添加入口、专长各自占整行。 */
html.mobile-ui #adminModule[data-page="suppliers"] .supplier-kpis { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; }
html.mobile-ui #adminModule[data-page="suppliers"] .supplier-add-card,
html.mobile-ui #adminModule[data-page="suppliers"] .supplier-specialty-kpi { grid-column:1 / -1; }

/* 回收站三个主操作同排，内容统一为可横向拖动的表格。 */
html.mobile-ui #adminModule[data-page="recycle"] .trash-tabs { display:flex!important; flex-wrap:nowrap!important; align-items:center; gap:7px; }
html.mobile-ui #adminModule[data-page="recycle"] .trash-spacer { display:none; }
html.mobile-ui #adminModule[data-page="recycle"] .trash-tab,
html.mobile-ui #adminModule[data-page="recycle"] #trashClear { flex:1 1 0; min-width:0; padding-left:8px; padding-right:8px; white-space:nowrap; }
html.mobile-ui #adminModule[data-page="recycle"] #trashClear {
  border-color:rgba(255,160,220,.64)!important;
  background:linear-gradient(135deg,#ff72b7,#8b4cf4)!important;
  color:#fff!important;
  box-shadow:0 6px 18px rgba(139,76,244,.28)!important;
}

/* 财务管理：按 1080×1920 竖屏的信息节奏重排，表格仍可横向拖动。 */
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-head { align-items:flex-start; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-pets { display:none; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-entry { display:grid!important; grid-template-columns:minmax(0,1fr)!important; gap:12px!important; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-basic { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-basic > #pfName { grid-column:1 / -1; min-height:42px; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-cols { grid-template-columns:minmax(0,1fr)!important; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-field { position:relative; display:block!important; min-width:0; height:42px; margin:0; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-field .pf-date { width:100%!important; height:42px; min-height:42px; margin:0; box-sizing:border-box; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-hint { position:absolute; z-index:2; left:12px; top:50%; display:block; transform:translateY(-50%); color:var(--text-3); font-size:15px; line-height:1; pointer-events:none; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-field:focus-within .profit-date-hint,
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-field:has(.pf-date:valid) .profit-date-hint { opacity:0; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-field .pf-date:required:invalid::-webkit-datetime-edit { color:transparent; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-field .pf-date:focus::-webkit-datetime-edit,
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-date-field .pf-date:valid::-webkit-datetime-edit { color:var(--text); }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-rows { gap:16px!important; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-row { margin:0!important; padding:0 0 3px!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-side { width:100%!important; min-width:0!important; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-filter { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-filter #pfQ,
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-filter #pfExport { grid-column:1 / -1; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-quick { display:flex; flex-wrap:nowrap; overflow-x:auto; padding-bottom:5px; }
html.mobile-ui #adminModule[data-page="financeProfit"] .profit-quick > * { flex:none; }
html.mobile-ui #adminModule[data-page="financeOrders"] .fin-summary { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:9px; }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-cats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-cat { width:100%; min-width:0; }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-batchbar { display:grid!important; grid-template-columns:minmax(0,1fr)!important; align-items:stretch; gap:8px; }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-sum { margin-right:0; }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-list,
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-table-wrap { width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-table { width:max-content!important; min-width:100%!important; table-layout:auto!important; }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-table th,
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-table td { min-width:max-content!important; white-space:nowrap!important; }
html.mobile-ui #adminModule[data-page="financeOrders"] .bill-table-row.on { background:rgba(255,126,179,.10); }

/* 手机端流程状态编辑保持单列可读，电脑端列布局不受影响。 */
html.mobile-ui .workflow-step-row { grid-template-columns:24px minmax(100px,.8fr) minmax(135px,1.2fr) 36px 32px; gap:6px; min-width:470px; }
html.mobile-ui .workflow-step-editor { overflow-x:auto; -webkit-overflow-scrolling:touch; }
