/**
 * 响应式布局：手机（iPhone X 375px+）与平板（iPad 820px 竖屏）
 * 断点：1024 平板 / 768 手机 / 428 窄屏
 */

:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --mobile-panel-min-h: min(38vh, 320px);
}

/* ── 嵌套弹窗（如 glass-tip 上的微信选择器）── */
.alert-modal.alert-modal--elevated {
  z-index: 13001;
}

/* ── 可折叠面板（手机/平板）── */
.responsive-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  min-width: 0;
}
.responsive-panel-head-text {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.responsive-panel-chevron {
  display: none;
  flex-shrink: 0;
  width: .55rem;
  height: .55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s ease;
  opacity: .65;
  margin-top: -.15rem;
}
.responsive-collapsible-panel.responsive-collapsible--enabled .responsive-panel-head {
  cursor: pointer;
  user-select: none;
}
.responsive-collapsible-panel.responsive-collapsible--enabled .responsive-panel-chevron {
  display: inline-block;
}
.responsive-collapsible-panel.responsive-collapsible--enabled.is-collapsed .responsive-panel-chevron {
  transform: rotate(-135deg);
  margin-top: .15rem;
}
.responsive-collapsible-panel.responsive-collapsible--enabled.is-collapsed .responsive-panel-body {
  display: none;
}

.maintenance-panel-head {
  display: none;
}

/* ── 平板竖屏（≤1024px，含 iPad 820px）── */
@media (max-width: 1024px) {
  .sidebar {
    width: 72px;
  }

  .sidebar-brand {
    padding: 1rem .5rem;
    justify-content: center;
  }

  .sidebar-brand span:not(.brand-icon-sm),
  .nav-item span:not(.nav-icon),
  .nav-group-title-text,
  .nav-subgroup-title,
  .nav-subitem span:not(.nav-icon),
  .nav-subitem-l3 span:not(.nav-icon),
  .user-info > div {
    display: none;
  }

  .sidebar-theme {
    display: none;
  }

  #nav-menu {
    padding: .5rem .25rem;
  }

  .nav-item,
  .nav-group-head,
  .nav-subgroup-head {
    justify-content: center;
    padding-left: .5rem;
    padding-right: .5rem;
  }

  .nav-subitem,
  .nav-subitem-l3 {
    padding-left: .5rem;
    padding-right: .5rem;
    justify-content: center;
  }

  .sidebar-footer {
    padding: .5rem .375rem;
  }

  .user-info {
    justify-content: center;
    margin-bottom: .5rem;
    gap: 0;
  }

  .sidebar-auth-actions {
    flex-direction: column;
    align-items: stretch;
    gap: .375rem;
    flex-wrap: nowrap;
  }

  .sidebar-auth-actions .sidebar-auth-btn {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    min-height: 2.5rem;
    padding: .45rem;
    justify-content: center;
    gap: 0;
  }

  /* 顶栏与首行：避免被裁切 */
  .content {
    min-height: 0;
    overflow: hidden;
  }

  .topbar {
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: flex-start;
    overflow: visible;
    padding: .875rem 1rem;
    padding-top: calc(.875rem + var(--safe-top));
    gap: .5rem;
  }

  .topbar h2 {
    order: 1;
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
    font-size: 1.125rem;
    line-height: 1.35;
  }

  #topbar-actions {
    order: 2;
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .page-content {
    flex: 1 1 auto;
    min-height: 0;
    padding: 1rem;
    padding-bottom: calc(1rem + var(--safe-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .page-content:has(.property-page-root),
  .page-content:has(.maintenance-page-root),
  .page-content:has(.dashboard-page-root) {
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .page-toolbar {
    flex-shrink: 0;
    width: 100%;
    overflow: visible;
    gap: .5rem;
    margin-bottom: .75rem;
  }

  .page-toolbar .btn-primary,
  .page-toolbar .btn-ghost,
  .page-toolbar .btn-secondary {
    flex: 1 1 auto;
    min-width: 0;
  }

  /* 工作台：取消 50/50 固定分割，首行完整显示 */
  .dashboard-page-root {
    height: auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .dashboard-upper {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
    padding-bottom: .75rem;
  }

  .dashboard-lower {
    flex: 1 1 auto;
    min-height: min(42vh, 360px);
    flex-basis: auto;
  }

  .dashboard-top-row {
    flex-direction: column;
    align-items: stretch;
    gap: .75rem;
  }

  .dashboard-top-bar {
    max-width: 100%;
    width: 100%;
    padding-bottom: 0;
  }

  .dashboard-top-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .stats-grid--dashboard {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.32rem;
    align-content: start;
  }

  .dashboard-stats-body {
    --dashboard-stat-row-h: 3.675rem;
    --dashboard-stat-row-gap: 0.32rem;
    flex: 0 0 auto;
    min-height: 0;
    max-height: calc(4 * var(--dashboard-stat-row-h) + 3 * var(--dashboard-stat-row-gap));
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
  }

  .stats-grid--dashboard .stat-card,
  .stats-grid--dashboard .stat-card--clickable {
    min-width: 0;
    padding: 0.35rem 0.25rem;
  }

  .stats-grid--dashboard .stat-card .label {
    font-size: clamp(0.4375rem, 1.7vw, 0.5625rem);
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.15;
  }

  .stats-grid--dashboard .stat-card .value {
    font-size: clamp(0.656rem, 2.2vw, 0.7875rem);
    margin-top: 0.05rem;
  }

  .stats-grid--dashboard .stat-card .stat-sub {
    font-size: clamp(0.394rem, 1.4vw, 0.48rem);
    margin-top: 0.05rem;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.1;
  }

  /* 物业信息页：区域与列表等高、可折叠 */
  .property-page-root {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .property-page-root > .page-toolbar {
    flex-shrink: 0;
  }

  .property-page-layout {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    gap: .75rem;
    margin-top: 0;
    overflow: hidden;
  }

  .property-page-side,
  .property-page-main {
    flex: 1 1 0;
    min-height: var(--mobile-panel-min-h);
    height: auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .property-page-side.is-collapsed,
  .property-page-main.is-collapsed {
    flex: 0 0 auto;
    min-height: 0;
  }

  .property-side-scroll,
  .property-main-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 机电/物业维修 */
  .maintenance-page-root {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .maintenance-top-bar {
    flex-shrink: 0;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .65rem .75rem;
  }

  .maintenance-top-bar .finance-area-combo {
    flex: 1 1 100%;
    max-width: 100%;
  }

  .maintenance-body {
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    gap: .65rem;
  }

  .maintenance-property-col,
  .maintenance-form-col,
  .maintenance-list-panel {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .maintenance-property-col {
    flex: 1 1 auto;
    min-height: var(--mobile-panel-min-h);
    max-height: none;
  }

  .maintenance-property-col.is-collapsed {
    flex: 0 0 auto;
    min-height: 0;
  }

  .maintenance-property-col .responsive-panel-body,
  .maintenance-form-col .responsive-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: .5rem;
    -webkit-overflow-scrolling: touch;
  }

  .maintenance-form-col {
    min-height: 0;
  }

  .maintenance-list-panel {
    flex: 1 1 auto;
    min-height: var(--mobile-panel-min-h);
    max-height: none;
  }

  .maintenance-list-panel.is-collapsed {
    flex: 0 0 auto;
    min-height: 0;
  }

  .maintenance-list-panel .responsive-panel-body.maint-list-outer {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .maintenance-list-panel .maint-list-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .maintenance-left {
    flex: 0 0 auto;
    width: 100%;
    max-height: none;
    display: flex;
    flex-direction: column;
    gap: .65rem;
    min-height: 0;
  }

  .maintenance-panel-head,
  .maintenance-right-head.responsive-panel-head,
  .maintenance-form-col .maintenance-panel-head,
  .maintenance-list-panel .maintenance-right-head {
    display: flex;
    padding: .65rem .75rem;
    font-weight: 600;
    font-size: .875rem;
    border-bottom: 1px solid var(--border);
    background: color-mix(in srgb, var(--surface2) 55%, var(--surface));
  }

  .maintenance-left-top {
    flex: 1 1 auto;
    min-height: var(--mobile-panel-min-h);
    max-height: none;
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .maintenance-left-top.is-collapsed {
    flex: 0 0 auto;
    min-height: 0;
  }

  .maintenance-left-top .responsive-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: .5rem;
    -webkit-overflow-scrolling: touch;
  }

  .maintenance-left-bottom {
    flex: 0 0 auto;
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .maintenance-left-bottom .responsive-panel-body {
    padding: .75rem;
    overflow: visible;
  }

  .maintenance-right {
    flex: 1 1 auto;
    min-height: var(--mobile-panel-min-h);
    max-height: none;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .maintenance-right.is-collapsed {
    flex: 0 0 auto;
    min-height: 0;
  }

  .maintenance-right .responsive-panel-body.maint-list-outer {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .maintenance-right-head {
    padding: 0;
    border-bottom: none;
  }

  .maint-list-wrap {
    flex: 1 1 auto;
    min-height: min(32vh, 260px);
  }

  .maint-list-body {
    min-height: min(28vh, 220px);
  }

  /* 弹窗 */
  .form-modal-box,
  .form-modal-box.form-modal-wide,
  .form-modal-box.form-modal-wide.property-form-modal,
  .form-modal-box.property-form-edit,
  .form-modal-box.property-form-create {
    width: min(100%, calc(100vw - 1rem - var(--safe-left) - var(--safe-right)));
    max-height: calc(100dvh - 1rem - var(--safe-top) - var(--safe-bottom));
    border-radius: 14px;
  }

  .alert-modal {
    padding: calc(.5rem + var(--safe-top)) calc(.5rem + var(--safe-right))
      calc(.5rem + var(--safe-bottom)) calc(.5rem + var(--safe-left));
    align-items: flex-end;
  }

  .alert-modal .form-modal-box {
    margin-bottom: 0;
  }

  .form-modal-header {
    padding: .875rem 1rem;
  }

  .form-modal-body {
    padding: 1rem;
  }

  .form-modal-wide .form-modal-body {
    padding: 1rem;
  }

  .form-modal-footer {
    padding: .75rem 1rem calc(.75rem + var(--safe-bottom));
    flex-wrap: wrap;
    gap: .5rem;
  }

  .form-modal-footer .btn-primary,
  .form-modal-footer .btn-ghost {
    flex: 1 1 auto;
    min-width: 0;
  }

  .property-detail-leasing {
    grid-template-columns: 1fr;
  }

  .property-detail-side {
    order: 2;
  }

  .property-detail-main {
    max-height: none;
  }

  .stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .75rem;
  }

  .glass-tip-overlay {
    padding: calc(.75rem + var(--safe-top)) calc(.75rem + var(--safe-right))
      calc(.75rem + var(--safe-bottom)) calc(.75rem + var(--safe-left));
    align-items: flex-end;
  }

  .glass-tip-panel,
  .glass-tip-panel--anchored {
    position: static !important;
    top: auto !important;
    left: auto !important;
    max-width: 100%;
    width: 100%;
    max-height: min(78dvh, calc(100dvh - 2rem - var(--safe-top) - var(--safe-bottom)));
    overflow-y: auto;
    margin: 0;
  }

  .glass-tip-row {
    grid-template-columns: 4.5rem 1fr;
    font-size: .8125rem;
  }

  .wechat-userid-row {
    flex-direction: column;
    align-items: stretch;
    gap: .5rem;
  }

  .wechat-userid-row .wechat-userid-pick {
    width: 100%;
  }

  .login-page {
    padding: calc(1rem + var(--safe-top)) calc(1rem + var(--safe-right))
      calc(1rem + var(--safe-bottom)) calc(1rem + var(--safe-left));
  }

  .login-card {
    width: min(100%, 400px);
  }

  .leasing-form-grid {
    grid-template-columns: 1fr;
  }

  .leasing-field-span2 {
    grid-column: 1;
  }

  .group-member-columns {
    grid-template-columns: 1fr;
  }

  .doc-mgmt-split {
    flex-direction: column;
  }

  .doc-mgmt-left,
  .doc-mgmt-right {
    flex: 1 1 auto;
    max-width: 100%;
  }

  .finance-page-toolbar,
  .finance-toolbar-row {
    flex-wrap: wrap;
  }

  .dashboard-top-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .toast {
    bottom: calc(1.5rem + var(--safe-bottom));
    z-index: 13100;
  }

  .finance-collect-head-right,
  .finance-collect-head-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  /* 优惠券统计：iPad 紧凑卡片 */
  .coupon-page-stats {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .35rem;
  }
  .coupon-stat-card {
    padding: .45rem .5rem;
  }
  .coupon-stat-label {
    font-size: .625rem;
    margin-bottom: .08rem;
    line-height: 1.25;
  }
  .coupon-stat-value {
    font-size: .9rem;
  }
  .coupon-stat-amount {
    font-size: .6875rem;
    margin-top: .05rem;
  }

  /* 报修表单：iPad 等平板内可滚动，避免遮挡提交按钮 */
  .maintenance-tab-panel.maintenance-register-body:not([hidden]) {
    min-height: 0;
    align-content: stretch;
  }
  .maintenance-property-col,
  .maintenance-form-col {
    min-height: 0;
  }

  /* 保洁计划：保洁记录可折叠 */
  .cleaning-page-root {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
  .cleaning-body {
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    gap: .65rem;
  }
  .cleaning-left.responsive-collapsible-panel {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
  }
  .cleaning-left-head.responsive-panel-head {
    display: flex;
    padding: .65rem .75rem;
    font-weight: 600;
    font-size: .875rem;
    border-bottom: 1px solid var(--border);
    background: color-mix(in srgb, var(--surface2) 55%, var(--surface));
  }
  .cleaning-left.is-collapsed {
    flex: 0 0 auto;
    min-height: 0;
    max-height: none;
  }
  .cleaning-left .responsive-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .cleaning-left .cleaning-records-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .cleaning-left:not(.is-collapsed) {
    flex: 1 1 auto;
    min-height: var(--mobile-panel-min-h);
  }
  .cleaning-right {
    flex: 0 0 auto;
    width: 100%;
    max-height: none;
  }
}

/* ── 手机（≤768px）── */
@media (max-width: 768px) {
  .topbar h2 {
    font-size: 1.0625rem;
  }

  .stats-grid--dashboard {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.25rem;
    align-content: start;
    overflow: visible;
    scroll-snap-type: none;
    padding-bottom: 0;
  }
  .stats-grid--dashboard .stat-card,
  .stats-grid--dashboard .stat-card--clickable {
    flex: none;
    width: auto;
    min-width: 0;
    max-width: 100%;
    scroll-snap-align: none;
    padding: 0.32rem 0.18rem;
  }
  .stats-grid--dashboard .stat-card .label {
    font-size: clamp(0.4375rem, 1.8vw, 0.525rem);
    line-height: 1.15;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
  .stats-grid--dashboard .stat-card .value {
    font-size: clamp(0.6125rem, 2.4vw, 0.7rem);
    margin-top: 0.04rem;
  }
  .stats-grid--dashboard .stat-card .stat-sub {
    font-size: clamp(0.394rem, 1.5vw, 0.4375rem);
    margin-top: 0.04rem;
    line-height: 1.1;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
  .dashboard-upper {
    flex: 0 0 auto;
    overflow: visible;
  }
  .dashboard-stats-body {
    --dashboard-stat-row-gap: 0.25rem;
    flex: 0 0 auto;
    min-height: 0;
    max-height: calc(4 * var(--dashboard-stat-row-h, 3.675rem) + 3 * var(--dashboard-stat-row-gap));
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
  }
  .dashboard-lower {
    flex: 1 1 0;
    min-height: min(40vh, 320px);
  }

  /* 员工信息 / 积分 / 停车 / 个人中心：紧凑统计卡 */
  .hr-hero {
    padding: .65rem .85rem;
  }
  .hr-hero-icon {
    font-size: 1.35rem;
  }
  .hr-hero-value {
    font-size: 1.25rem;
  }
  .hr-dept-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: .4rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: .1rem;
  }
  .hr-dept-card {
    flex: 0 0 min(42vw, 7.5rem);
    scroll-snap-align: start;
    padding: .5rem .6rem;
  }
  .hr-dept-name {
    font-size: .75rem;
  }
  .hr-dept-count {
    font-size: .6875rem;
  }

  .point-hero--admin {
    flex-wrap: wrap;
    padding: .65rem .75rem;
    gap: .5rem;
  }
  .point-hero-metrics {
    flex: 1 1 100%;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    min-width: 0;
    gap: 0;
    padding-bottom: .05rem;
  }
  .point-hero--admin .point-stat {
    flex: 0 0 min(42vw, 7.5rem);
    scroll-snap-align: start;
    min-width: 0;
    padding: 0 .65rem;
  }
  .point-hero--admin .point-stat-label {
    font-size: .6875rem;
  }
  .point-hero--admin .point-stat-value {
    font-size: 1rem;
  }
  .point-hero--admin .point-stat--featured .point-stat-value {
    font-size: 1.15rem;
  }
  .point-hero-actions {
    padding-left: 0;
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
  }

  .park-stats-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: .4rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: .1rem;
  }
  .park-stats-grid .stat-card {
    flex: 0 0 min(44vw, 8.5rem);
    scroll-snap-align: start;
    padding: .5rem .55rem;
    min-width: 0;
  }
  .park-stats-grid .stat-card .label {
    font-size: .6875rem;
  }
  .park-stats-grid .stat-card .value {
    font-size: 1rem;
    margin-top: .1rem;
  }

  .profile-wallet-grid,
  .profile-commission-grid,
  .profile-record-summary {
    display: flex;
    flex-wrap: nowrap;
    gap: .45rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: .1rem;
  }
  .profile-stat-card {
    flex: 0 0 min(44vw, 8.5rem);
    scroll-snap-align: start;
    padding: .55rem .65rem;
    min-width: 0;
  }
  .profile-stat-label {
    font-size: .6875rem;
  }
  .profile-stat-value {
    font-size: 1rem;
  }

  /* 四害消杀 / 保洁计划：物业列表横向滑动 */
  .disinfection-left-top:not(:has(.app-empty-state)),
  .cleaning-right-top:not(:has(.app-empty-state)) {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    overflow-x: auto;
    overflow-y: hidden;
    gap: .45rem;
    min-height: 4.85rem;
    max-height: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .disinfection-left-top .maint-property-item,
  .cleaning-right-top .maint-property-item {
    flex: 0 0 min(72vw, 11rem);
    scroll-snap-align: start;
    margin-bottom: 0;
    min-height: 3.9rem;
    justify-content: center;
  }
  .disinfection-left-top:has(.app-empty-state--in-maint-property-list),
  .cleaning-right-top:has(.app-empty-state) {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 6rem;
    overflow: hidden;
  }

  /* 收租工作台：起止日期保持一行 */
  .finance-top-range {
    flex: 1 1 100%;
    flex-wrap: nowrap;
    margin-left: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: .25rem .35rem;
    align-items: center;
  }
  .finance-stats-range-start,
  .finance-stats-range-end {
    flex: 1 1 0;
    min-width: 7.25rem;
    max-width: none;
    font-size: .75rem;
    padding: .3rem .4rem;
  }
  .finance-range-sep {
    flex-shrink: 0;
  }

  /* 名片制作：手机端每行一项 */
  .h5-card-form-grid {
    grid-template-columns: 1fr;
  }
  .h5-card-form-grid .h5-span2 {
    grid-column: auto;
  }
  .h5-layout-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .h5-layout-toolbar label {
    width: 100%;
  }
  .h5-layout-hint {
    flex: none;
  }

  /* 录像回放：开始/结束时间保持一行 */
  .sec-playback-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .5rem;
  }
  .sec-playback-field:first-child {
    grid-column: 1 / -1;
  }
  .sec-playback-field input {
    min-width: 0;
    width: 100%;
    font-size: .75rem;
    padding: .45rem .5rem;
  }

  /* 创建优惠券：手机端两列输入 */
  .coupon-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .coupon-field-span2 {
    grid-column: 1 / -1;
  }

  /* 系统设置：手机端字段与注释对齐 */
  .settings-body {
    --settings-label-width: 100%;
    --settings-label-offset: 0;
    padding: .85rem .75rem;
  }
  .setting-field-line {
    flex-direction: column;
    align-items: stretch;
    gap: .35rem;
  }
  .setting-label {
    flex: none;
    max-width: none;
    white-space: normal;
  }
  .setting-control {
    min-width: 0;
    width: 100%;
  }
  .setting-control .setting-input,
  .setting-control .setting-select {
    max-width: none;
    width: 100%;
  }
  .setting-field-hint,
  .field-hint.setting-field-hint,
  .setting-field-wide .setting-field-hint,
  .settings-panel-fields .field-hint,
  .settings-pagination-modules-hint,
  .settings-share-reward .field-hint,
  .commission-policy-name-hint,
  .commission-policy-tabs-hint {
    margin-left: 0 !important;
    padding-left: 0 !important;
    width: 100%;
    text-align: left;
  }
  .setting-field-meter-read {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    align-items: stretch;
  }
  .setting-field-meter-read .setting-field-line {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .setting-field-meter-read .setting-label,
  .setting-field-meter-read .setting-control-meter-read,
  .setting-field-meter-read .setting-field-hint {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
    margin: 0;
    padding: 0;
  }
  .setting-control-meter-read {
    overflow-x: visible;
    flex-wrap: wrap;
  }
  .meter-read-schedule-inline {
    flex-wrap: wrap;
    row-gap: .35rem;
    line-height: 1.45;
    height: auto;
  }
  .utility-meter-setting .utility-pricing-widget {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    align-items: stretch;
    max-width: 100%;
    overflow-x: hidden;
  }
  .utility-meter-setting .utility-pricing-widget > .setting-field-line,
  .utility-meter-setting .utility-flat-row,
  .utility-meter-setting .utility-flat-row .setting-field-line-sub {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .utility-meter-setting .utility-pricing-widget .setting-label,
  .utility-meter-setting .utility-pricing-widget .setting-control,
  .utility-meter-setting .utility-pricing-mode-row,
  .utility-meter-setting .utility-tier-panel {
    grid-column: auto;
    width: 100%;
    max-width: 100%;
  }
  .utility-meter-setting .utility-tier-panel {
    overflow-x: auto;
  }
  .utility-meter-setting .utility-pricing-mode-row {
    flex-wrap: wrap;
  }
  .settings-share-reward .setting-field {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .35rem;
  }
  .settings-share-reward .setting-label {
    width: 100%;
  }

  /* 接口配置：邮箱 / 财务软件 */
  .settings-interface-section-body--cols2,
  .settings-interface-section-body--uniform {
    grid-template-columns: 1fr;
  }
  .settings-mail-actions-row {
    grid-column: 1 / -1;
  }
  .settings-mail-actions-line {
    flex-direction: column;
    align-items: stretch;
  }
  .settings-mail-actions-line .btn-secondary,
  .settings-mail-actions-line .btn-ghost {
    width: 100%;
  }
  .settings-interface-section {
    padding: 1.2rem .65rem .75rem;
  }
  .settings-finance-cols,
  .settings-finance-cols--erp,
  .settings-interface-page .settings-finance-cols--erp {
    grid-template-columns: 1fr !important;
  }
  .settings-pagination-modules-grid {
    grid-template-columns: 1fr;
  }

  .data-table {
    font-size: .8125rem;
  }

  .data-table th,
  .data-table td {
    padding: .45rem .5rem;
  }

  .room-tile {
    min-height: 4.5rem;
  }

  .floor-board-grid {
    grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
  }

  .captcha-row,
  .sms-row {
    flex-direction: column;
    align-items: stretch;
  }

  .captcha-row .captcha-img {
    align-self: flex-start;
  }

  .device-manage-row {
    flex-direction: column;
    align-items: stretch;
  }

  .device-manage-delete {
    align-self: flex-end;
  }

  /* 优惠券统计：手机横向滑动，减少占用高度 */
  .coupon-page-stats-wrap {
    flex-shrink: 0;
  }
  .coupon-page-stats {
    display: flex;
    flex-wrap: nowrap;
    gap: .4rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: .1rem;
  }
  .coupon-stat-card {
    flex: 0 0 min(42vw, 7.25rem);
    scroll-snap-align: start;
    padding: .4rem .45rem;
  }
  .coupon-stat-label {
    font-size: .625rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .coupon-stat-value {
    font-size: .8125rem;
  }
  .coupon-stat-amount {
    font-size: .65rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  :root {
    --mobile-panel-min-h: min(34vh, 280px);
  }

  .maint-list-wrap {
    min-height: min(36vh, 280px);
  }

  .maint-list-body {
    min-height: min(32vh, 240px);
  }
}

/* ── 窄屏手机 iPhone X 等（≤428px）── */
@media (max-width: 428px) {
  .sidebar {
    width: 64px;
  }

  .sidebar-footer {
    padding: .375rem .25rem;
  }

  .avatar {
    width: 36px;
    height: 36px;
    font-size: .8125rem;
  }

  .sidebar-auth-actions .sidebar-auth-btn {
    min-height: 2.35rem;
    padding: .4rem;
  }

  .page-content {
    padding: .75rem;
    padding-bottom: calc(.75rem + var(--safe-bottom));
  }

  .topbar {
    padding: .75rem;
    padding-top: calc(.75rem + var(--safe-top));
  }

  .stats-grid--centered .stat-card {
    flex: 1 1 100%;
    max-width: none;
  }

  .form-modal-header h3 {
    font-size: 1rem;
  }

  .glass-tip-title {
    font-size: .875rem;
  }

  :root {
    --mobile-panel-min-h: min(30vh, 240px);
  }
}

/* ── 宽屏侧栏命令区：有文字时缩小图标间距 ── */
@media (min-width: 1181px) {
  .sidebar-auth-btn {
    gap: .2rem;
  }

  .sidebar-auth-actions .sidebar-auth-btn {
    flex: 1 1 0;
    min-width: 0;
  }
}

/* ── 中等宽度：仅图标、等宽 ── */
@media (min-width: 1025px) and (max-width: 1180px) {
  .sidebar-auth-actions {
    flex-wrap: nowrap;
    gap: .375rem;
  }

  .sidebar-auth-actions .sidebar-auth-btn {
    flex: 1 1 0;
    min-width: 2.25rem;
    max-width: none;
    padding-left: .5rem;
    padding-right: .5rem;
    gap: 0;
    justify-content: center;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Web 管理端 · 手机/平板批量适配（命令平铺、面板内滚动）
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  /* 页面容器：外层滚动 or 内部 flex 分栏 */
  .page-content:has(.hr-wechat-approval-page),
  .page-content:has(.finance-approval-page),
  .page-content:has(.sec-page-root) {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .page-content:has(.finance-page-root),
  .page-content:has(.disinfection-page-root),
  .page-content:has(.cleaning-page-root),
  .page-content:has(.elev-page-root),
  .page-content:has(.iot-device-page),
  .page-content:has(.h5-page-root),
  .page-content:has(.doc-mgmt-page),
  .page-content:has(.perm-settings-page) {
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  /* 工作台：三个命令同一行平铺 */
  .dashboard-top-row {
    align-items: stretch;
  }
  .dashboard-top-actions {
    margin-left: 0;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .35rem;
    justify-content: stretch;
  }
  .dashboard-top-actions .btn-sm {
    width: 100%;
    justify-content: center;
    min-height: 2.35rem;
    padding: .4rem .25rem;
    font-size: .6875rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* 企业微信 / 财务审批：选项卡平铺 + 整页可滚动 */
  .hr-wechat-type-tabs,
  .hr-approval-type-tabs,
  .finance-approval-tabs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.25rem, 1fr));
    gap: .35rem;
    width: 100%;
  }
  .hr-wechat-template-tab--icon,
  .hr-approval-type-tabs .hr-approval-tab,
  .finance-approval-tab {
    width: 100%;
    min-height: 2.5rem;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
  }
  .hr-wechat-approval-page,
  .finance-approval-page {
    flex: 1 1 auto;
    min-height: 0 !important;
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
  }
  .hr-wechat-approval-body,
  .finance-approval-page .hr-approval-panel--wechat {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
  }
  .hr-wechat-query-grid {
    max-height: none;
  }
  .hr-wechat-list-shell,
  .finance-approval-page .hr-wechat-list-shell {
    flex: 0 0 auto;
    min-height: min(42vh, 360px);
    max-height: none;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .hr-wechat-table-scroll {
    flex: 1 1 auto;
    min-height: min(36vh, 300px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 新增物业：硬件每行最多 6 个 */
  .property-form-create .hardware-panel-block .hw-grid,
  .property-form-edit .hardware-panel-block .hw-grid,
  .property-form-modal .hw-grid,
  .property-form-side .hw-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .35rem;
  }
  .property-form-create .hw-chip,
  .property-form-edit .hw-chip,
  .property-form-modal .hw-chip {
    padding: .45rem .2rem;
    font-size: .625rem;
  }
  .property-form-create .hw-icon,
  .property-form-edit .hw-icon,
  .property-form-modal .hw-icon {
    font-size: 1.1rem;
  }

  /* 四害消杀 / 保洁：整页外层滚动，创建计划区不再被压扁 */
  .disinfection-page-root,
  .cleaning-page-root {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }
  .disinfection-body,
  .cleaning-body {
    flex: 0 0 auto;
    min-height: auto;
    flex-direction: column;
    overflow: visible;
    gap: .65rem;
  }
  .disinfection-left,
  .cleaning-left {
    flex: 0 0 auto;
    max-height: none !important;
    min-height: 0;
    overflow: visible;
    width: 100%;
  }
  .disinfection-left-top {
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }
  .disinfection-left-bottom {
    flex: 0 0 auto;
    max-height: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .disinfection-right,
  .cleaning-right {
    flex: 0 0 auto;
    max-height: none !important;
    min-height: min(42vh, 360px);
    overflow: visible;
    display: flex;
    flex-direction: column;
    width: 100%;
  }
  .dis-records-table-wrap,
  .dis-records-table-wrap.paginated-list-shell {
    flex: 1 1 auto;
    min-height: min(36vh, 320px) !important;
    max-height: none;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
  }
  .dis-records-table-wrap .dis-records-table-inner > .table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  .cleaning-left .cleaning-records-wrap,
  .cleaning-records-wrap {
    flex: 0 0 auto;
    min-height: min(28vh, 240px);
    max-height: min(36vh, 300px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .cleaning-right-top {
    flex: 0 0 auto;
  }
  .cleaning-right-bottom {
    flex: 0 0 auto;
    max-height: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 电梯：Tab 展示区延伸至屏幕底部，表格空态插图垂直居中 */
  .elev-page-root {
    flex: 1 1 auto;
    min-height: min(72vh, calc(100dvh - 9rem));
    overflow: visible;
    display: flex;
    flex-direction: column;
  }
  .elev-page-root .elev-tab-panel.active {
    flex: 1 1 auto;
    min-height: min(62vh, calc(100dvh - 12rem));
    max-height: none !important;
    display: flex;
    flex-direction: column;
  }
  .elev-page-root .elev-list-wrap,
  .elev-page-root .elev-list-wrap.paginated-list-shell {
    flex: 1 1 auto;
    min-height: min(52vh, calc(100dvh - 14rem)) !important;
    max-height: none !important;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .elev-page-root .elev-list-wrap > .app-empty-state,
  .elev-page-root .elev-list-wrap > .app-empty-state--page,
  .elev-page-root .elev-list-wrap > .app-empty-state--in-panel,
  .elev-page-root .elev-list-wrap > .app-error-state {
    flex: 1 1 auto;
    min-height: min(44vh, 360px);
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .elev-page-root .elev-list-wrap .table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  .elev-page-root .elev-list-wrap .table-wrap:has(.table-empty-cell) {
    flex: 1 1 auto;
    min-height: min(44vh, 360px);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    overflow: hidden;
  }
  .elev-page-root .elev-list-wrap .table-wrap:has(.table-empty-cell) table {
    width: 100%;
    flex: 1 1 auto;
    min-height: min(40vh, 320px);
    height: 100%;
  }
  .elev-page-root .elev-list-wrap .table-wrap:has(.table-empty-cell) thead {
    display: table-header-group;
  }
  .elev-page-root .elev-list-wrap .table-wrap:has(.table-empty-cell) tbody {
    display: table-row-group;
    height: 100%;
  }
  .elev-page-root .elev-list-wrap .table-wrap:has(.table-empty-cell) tr {
    display: table-row;
    height: 100%;
  }
  .elev-page-root .elev-list-wrap .table-empty-cell {
    height: min(38vh, 300px);
    vertical-align: top;
    padding: 0 !important;
  }
  .elev-page-root .elev-list-wrap .table-empty-cell .app-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    min-height: min(38vh, 300px);
    margin: 0;
    padding: .45rem 1rem 1rem;
    box-sizing: border-box;
  }
  .elev-page-root .elev-list-wrap .table-empty-cell .app-empty-state__text {
    order: -1;
    flex: 0 0 auto;
    align-self: stretch;
    text-align: center;
    padding: 0 0 .65rem;
  }
  .elev-page-root .elev-list-wrap .table-empty-cell .app-empty-state__illus {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 0;
    margin-bottom: 0;
  }

  /* 收租工作台：账期区撑满屏幕，整页外层滚动（上滑时侧栏/顶栏一并上移） */
  .finance-page-root {
    flex: 0 0 auto;
    min-height: auto;
    max-width: 100%;
    overflow: visible !important;
    display: flex;
    flex-direction: column;
  }
  .finance-layout {
    flex: 0 0 auto;
    min-height: auto;
    max-width: 100%;
    height: auto !important;
    overflow: visible !important;
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
    gap: .65rem;
  }
  .finance-side,
  .finance-main {
    height: auto !important;
    overflow: visible !important;
    flex: 0 0 auto;
    min-height: 0;
  }
  .finance-side-list-wrap {
    max-height: min(28vh, 220px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .finance-side-stats-body {
    max-height: none;
    overflow: visible;
  }
  .finance-main {
    min-height: min(72vh, calc(100dvh - 8rem));
    max-width: 100%;
    overflow-x: hidden;
  }
  .finance-main-body,
  .finance-collect-panel {
    flex: 0 0 auto;
    min-height: min(68vh, calc(100dvh - 10rem));
    max-width: 100%;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    display: flex;
    flex-direction: column;
  }
  .finance-collect-table-wrap {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-height: min(65vh, calc(100dvh - 11rem));
    max-height: none;
    overflow-x: auto !important;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }
  .finance-collect-table,
  .finance-collect-table--fixed3 {
    width: max-content;
    min-width: 100%;
  }
  .finance-collect-period-col {
    min-width: 7.5rem;
  }

  /* 收租账期：手机端仅显示总额 +「详细」浮动明细 */
  .finance-collect-table-wrap--mobile .finance-period-amount-panel,
  .finance-period-amount-panel--mobile-ready {
    height: auto;
    min-height: 4.25rem;
    max-height: none;
    overflow: visible;
    pointer-events: auto;
  }
  .finance-collect-table-wrap--mobile .finance-period-amount-total[aria-hidden="true"],
  .finance-period-amount-total[aria-hidden="true"] {
    display: none !important;
  }
  .finance-collect-table-wrap--mobile .finance-period-amount-mobile-summary,
  .finance-period-amount-mobile-summary {
    display: flex !important;
    position: relative;
    z-index: 2;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    width: 100%;
    min-height: 4.25rem;
    padding: .35rem .25rem;
    box-sizing: border-box;
    pointer-events: auto;
  }
  .finance-collect-table-wrap--mobile .finance-period-amount-mobile-total,
  .finance-period-amount-mobile-total {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .finance-collect-table-wrap--mobile .finance-period-detail-toggle,
  .finance-period-detail-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: .12rem .55rem;
    border: 1px solid color-mix(in srgb, var(--primary) 35%, var(--border));
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 8%, var(--surface));
    color: var(--primary, #2563eb);
    font-size: .6875rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    pointer-events: auto;
  }
  .finance-period-detail-toggle.is-active {
    background: color-mix(in srgb, var(--primary) 18%, var(--surface));
    border-color: color-mix(in srgb, var(--primary) 55%, var(--border));
  }
  .finance-collect-table-wrap--mobile .finance-period-amount-detail,
  .finance-period-amount-detail {
    display: none !important;
  }
  .finance-collect-table-wrap--mobile .finance-period-cell-body,
  .finance-period-cell-body {
    grid-template-rows: auto auto;
    overflow: visible;
  }
  .finance-collect-table-wrap--mobile .finance-period-cell-inner,
  .finance-collect-table-wrap--mobile .finance-period-cell-inner.has-amount-detail,
  .finance-period-cell-inner,
  .finance-period-cell-inner.has-amount-detail {
    min-height: 8.5rem;
  }
  .finance-collect-table-wrap--mobile .finance-period-notice-counts,
  .finance-period-notice-counts {
    display: none !important;
  }

  /* 积分 / 优惠券 / 停车：展示区内部滚动 */
  .point-page-root,
  .coupon-page-root,
  .park-page-root {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
  .point-table-wrap,
  .coupon-page-body,
  .coupon-list-panel,
  .coupon-redeem-list-shell,
  .park-page-root > .park-table-panel,
  .park-page-root > .park-sessions-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .point-table-wrap > .card > .table-wrap,
  .coupon-list-body,
  .coupon-redeem-list-shell .coupon-redeem-body,
  .park-page-root > .park-table-panel > .table-wrap,
  .park-page-root > .park-sessions-table-wrap > .park-table-panel > .table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  .coupon-page-body {
    grid-template-columns: 1fr;
  }

  /* 停车记录：三复选框一行 + 筛选栏对齐 */
  .park-toolbar--sessions {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .45rem .35rem;
    align-items: end;
  }
  .park-toolbar--sessions .park-toolbar-item:nth-child(1) {
    grid-column: 1 / -1;
  }
  .park-toolbar--sessions .park-toolbar-item:nth-child(2) {
    grid-column: 1 / 4;
  }
  .park-toolbar--sessions .park-toolbar-item:nth-child(3) {
    grid-column: 4 / -1;
  }
  .park-toolbar--sessions > .park-filter-check:nth-child(4) {
    grid-column: 1 / 3;
  }
  .park-toolbar--sessions > .park-filter-check:nth-child(5) {
    grid-column: 3 / 5;
  }
  .park-toolbar--sessions > .park-filter-check:nth-child(6) {
    grid-column: 5 / -1;
  }
  .park-toolbar--sessions .park-toolbar-actions {
    grid-column: 1 / -1;
    margin-left: 0;
    width: 100%;
  }
  .park-toolbar--sessions .park-filter-check {
    display: inline-flex;
    align-items: center;
    width: auto;
    padding: 0;
    margin: 0;
    font-size: .72rem;
    white-space: nowrap;
    justify-content: center;
  }
  .park-toolbar--sessions .park-toolbar-item .theme-select,
  .park-toolbar--sessions .park-toolbar-item input[type="text"] {
    width: 100%;
    min-width: 0;
  }

  /* 智能灯等设备：整页外层滚动，展示区自适应高度 */
  .iot-device-page {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }
  .iot-device-page > .iot-device-head {
    flex-shrink: 0;
  }
  #iot-meter-list-wrap,
  #iot-card-list-wrap,
  #iot-access-list-wrap {
    flex: 0 0 auto;
    min-height: min(52vh, calc(100dvh - 12rem));
    overflow: visible;
  }
  .iot-device-page > .app-empty-state--in-panel,
  .iot-device-page > .app-empty-state--centered,
  .iot-device-page > .iot-table-panel {
    flex: 0 0 auto;
    min-height: min(52vh, calc(100dvh - 12rem));
    max-height: none;
    overflow: visible;
  }
  .iot-device-page > .app-empty-state--in-panel,
  .iot-device-page > .app-empty-state--centered {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .iot-device-page > .iot-table-panel > .table-wrap,
  #iot-meter-list-wrap > .iot-table-panel > .table-wrap,
  #iot-card-list-wrap > .iot-table-panel > .table-wrap,
  #iot-access-list-wrap > .iot-table-panel > .table-wrap {
    overflow: visible;
    max-height: none;
  }

  /* 月租车位等内容区拉满 */
  .park-page-root > .empty-state,
  .park-page-root > .app-empty-state,
  .park-page-root > .app-error-state,
  .park-table-empty-body {
    flex: 1 1 auto;
    min-height: min(32vh, 260px);
  }

  /* 安保 / 来访 / 道闸 / 录像设备 */
  .sec-page-root,
  .visitor-page-root {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .sec-patrol-grid {
    grid-template-columns: 1fr;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .visitor-tab-panel.active {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .visitor-history-panel.active,
  .visitor-register-panel.active {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .visitor-history-list,
  .visitor-register-bottom {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sec-page-root > .card,
  .sec-page-root .paginated-list-shell,
  .sec-page-root .table-wrap {
    flex: 1 1 auto;
    min-height: 0;
  }
  .sec-page-root > .card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .sec-page-root .table-wrap {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* H5 名片制作 / 更新：预览区可滚动，整页自适应高度 */
  .h5-page-root {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding-bottom: .5rem;
  }
  .h5-page-grid {
    grid-template-columns: 1fr;
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
  }
  .h5-page-grid .h5-panel:first-child {
    max-height: none;
    overflow: visible;
  }
  .h5-page-grid .h5-panel:nth-child(2),
  .h5-page-grid .h5-panel:has(#h5-preview) {
    display: flex;
    flex-direction: column;
    max-height: min(52vh, calc(100dvh - 14rem));
    min-height: min(36vh, 320px);
    overflow: hidden;
  }
  .h5-page-grid .h5-panel:nth-child(2) #h5-preview,
  .h5-page-grid .h5-panel:has(#h5-preview) #h5-preview {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: .15rem;
  }
  .h5-page-root > .h5-panel:last-child {
    flex: 0 0 auto;
    min-height: min(22vh, 200px);
    max-height: min(32vh, 280px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .h5-page-root #h5-draft-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: .15rem 0;
  }
  .h5-draft-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-bottom: .5rem;
    padding: .7rem .85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: linear-gradient(180deg, var(--surface) 0%, var(--surface2) 100%);
    color: var(--text);
    font-size: .8125rem;
    text-align: left;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
  }
  .h5-draft-item:active {
    border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.12);
  }
  .h5-page-root #h5-update-list {
    flex: 0 0 auto;
    min-height: auto;
    max-height: none;
    overflow: visible;
  }
  .h5-page-root #h5-update-editor {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }
  .h5-page-root #h5-update-editor:not(.hidden) {
    min-height: min(68vh, calc(100dvh - 10rem));
  }
  .h5-page-root #h5-update-editor #h5-preview {
    max-height: min(48vh, calc(100dvh - 16rem));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .h5-update-editor-grid {
    grid-template-columns: 1fr;
    flex: 0 0 auto;
  }

  /* 文档管理：已上传文档区随整页滚动、自适应高度 */
  .doc-mgmt-page {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
    padding-bottom: .5rem;
  }
  .doc-mgmt-split {
    flex: 0 0 auto;
    min-height: auto;
    flex-direction: column;
    overflow: visible;
    gap: .75rem;
  }
  .doc-mgmt-left,
  .doc-mgmt-right {
    flex: 0 0 auto;
    max-width: none;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }
  .doc-mgmt-left .doc-mgmt-form {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
  }
  .doc-mgmt-right {
    min-height: min(48vh, calc(100dvh - 14rem));
  }
  .doc-mgmt-right .doc-mgmt-table-wrap {
    flex: 0 0 auto;
    min-height: min(42vh, calc(100dvh - 18rem));
    max-height: none;
    overflow: visible;
  }

  /* 权限设置：命令区加高、底部 sticky */
  .perm-settings-page {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6.5rem;
  }
  .perm-settings-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: stretch;
    gap: .4rem;
    position: sticky;
    bottom: 0;
    background: var(--bg, var(--surface));
    padding: 1rem 0 calc(1rem + var(--safe-bottom));
    min-height: 4.75rem;
    box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.1);
    z-index: 2;
  }
  .perm-settings-actions .btn-primary,
  .perm-settings-actions .btn-secondary,
  .perm-settings-actions .btn-ghost {
    width: 100%;
    justify-content: center;
    min-height: 2.85rem;
    padding: .6rem .35rem;
    font-size: .75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .perm-settings-actions:not(:has(#perm-settings-set-default)) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* 审批详情弹窗：垂直滚动 */
  .hr-approval-dialog.form-modal-wide .form-modal-body,
  .form-modal-box.hr-approval-dialog .form-modal-body {
    max-height: min(78dvh, calc(100dvh - 6rem));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .finance-approval-page .hr-approval-dialog .form-modal-body {
    max-height: min(78dvh, calc(100dvh - 6rem));
    overflow-y: auto;
  }

  /* 分页列表壳：取消过大 min-height，改为 flex 内滚动 */
  .paginated-list-shell,
  #hr-staff-list-wrap.paginated-list-shell,
  #parking-list-wrap.paginated-list-shell,
  #hr-approve-list-wrap.paginated-list-shell,
  #hr-log-list-wrap.paginated-list-shell,
  .elev-list-wrap.paginated-list-shell,
  #clean-records-body.paginated-list-shell,
  .dis-records-table-wrap.paginated-list-shell,
  .maint-list-wrap.paginated-list-shell {
    min-height: 0 !important;
    flex: 1 1 auto;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
}

@media (max-width: 768px) {
  .dashboard-top-actions .btn-sm {
    font-size: .625rem;
    padding: .38rem .15rem;
  }

  .finance-collect-table-wrap {
    min-height: min(72vh, calc(100dvh - 9rem));
  }

  .finance-main-body,
  .finance-collect-panel {
    min-height: min(75vh, calc(100dvh - 8rem));
  }

  .disinfection-left-bottom,
  .cleaning-right-bottom {
    max-height: none;
  }

  .h5-page-grid .h5-panel:nth-child(2),
  .h5-page-grid .h5-panel:has(#h5-preview) {
    max-height: min(56vh, calc(100dvh - 12rem));
    min-height: min(40vh, 340px);
  }

  .hr-wechat-type-tabs,
  .finance-approval-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .park-toolbar--sessions .park-filter-check {
    font-size: .68rem;
  }
}

/* 小程序 web-view 嵌入：同步手机布局 */
html[data-mp-embed="1"] .page-content,
html[data-mp-embed="native-nav"] .page-content {
  min-height: 0;
  flex: 1 1 auto;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
html[data-mp-embed="1"] .dashboard-top-actions,
html[data-mp-embed="native-nav"] .dashboard-top-actions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
html[data-mp-embed="1"] .stats-grid--dashboard,
html[data-mp-embed="native-nav"] .stats-grid--dashboard {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-content: start;
}
html[data-mp-embed="1"] .dashboard-stats-body,
html[data-mp-embed="native-nav"] .dashboard-stats-body {
  --dashboard-stat-row-h: 3.675rem;
  --dashboard-stat-row-gap: 0.25rem;
  flex: 0 0 auto;
  min-height: 0;
  max-height: calc(4 * var(--dashboard-stat-row-h) + 3 * var(--dashboard-stat-row-gap));
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}
html[data-mp-embed="1"] .stats-grid--dashboard .stat-card,
html[data-mp-embed="1"] .stats-grid--dashboard .stat-card--clickable,
html[data-mp-embed="native-nav"] .stats-grid--dashboard .stat-card,
html[data-mp-embed="native-nav"] .stats-grid--dashboard .stat-card--clickable {
  padding: 0.32rem 0.18rem;
}
html[data-mp-embed="1"] .stats-grid--dashboard .stat-card .label,
html[data-mp-embed="native-nav"] .stats-grid--dashboard .stat-card .label {
  font-size: clamp(0.4375rem, 1.8vw, 0.525rem);
  line-height: 1.15;
}
html[data-mp-embed="1"] .stats-grid--dashboard .stat-card .value,
html[data-mp-embed="native-nav"] .stats-grid--dashboard .stat-card .value {
  font-size: clamp(0.6125rem, 2.4vw, 0.7rem);
  margin-top: 0.04rem;
}
html[data-mp-embed="1"] .stats-grid--dashboard .stat-card .stat-sub,
html[data-mp-embed="native-nav"] .stats-grid--dashboard .stat-card .stat-sub {
  font-size: clamp(0.394rem, 1.5vw, 0.4375rem);
  line-height: 1.1;
  margin-top: 0.04rem;
}
html[data-mp-embed="1"] .stats-grid--dashboard .stat-card .label,
html[data-mp-embed="1"] .stats-grid--dashboard .stat-card .stat-sub,
html[data-mp-embed="native-nav"] .stats-grid--dashboard .stat-card .label,
html[data-mp-embed="native-nav"] .stats-grid--dashboard .stat-card .stat-sub {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}
