/**
 * 响应式布局：手机（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;
}

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

  .sidebar-brand {
    padding: 0 .5rem;
    min-height: var(--app-header-height);
    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) {
    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;
  }

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

  .topbar {
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: center;
    overflow: visible;
    padding: 0 1rem;
    padding-top: var(--safe-top);
    min-height: var(--app-header-height);
    gap: .5rem;
  }

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

  .topbar-right {
    flex: 1 1 100%;
    width: 100%;
    justify-content: flex-start;
    gap: .5rem .75rem;
  }

  .topbar-user-text {
    display: none;
  }

  .topbar-theme .theme-select-label {
    display: none;
  }

  .topbar-theme .theme-select {
    min-width: 5.5rem;
  }

  .topbar-auth-actions .sidebar-auth-label {
    display: none;
  }

  #page-footer-actions,
  .page-footer-actions {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    padding: .75rem 1rem;
    padding-bottom: calc(.75rem + var(--safe-bottom));
  }

  .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-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;
  }

  /* 研学工作台：窄屏改为上下堆叠 */
  .study-dashboard {
    flex-direction: column;
    height: auto;
    min-height: 0;
  }
  .study-dashboard-nav {
    flex: 0 0 auto;
    max-width: none;
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
  .study-dashboard-tabs {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .study-dashboard-tab {
    flex: 1 1 calc(50% - 0.35rem);
    min-width: 8.5rem;
  }
  .study-dashboard-main {
    flex: 1 1 auto;
  }
  .sd-bar-row {
    grid-template-columns: 4.5rem 1fr 2.2rem;
  }

  /* 工作台：取消 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;
  }

  /* 弹窗 */
  

  .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;
  }

  

  

  

  .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);
  }

  

  

  .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 {
    top: calc(1rem + var(--safe-top));
    z-index: 13100;
  }

  

  /* 优惠券统计：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;
  }
}

/* ── 手机（≤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;
  }

  
  
  
  

  .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;
  }

  /* 创建优惠券：手机端两列输入 */
  .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;
  }
  
  
  
  
  
  
  
  
  
  
  .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;
  }

  

  

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

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

  

  

  /* 优惠券统计：手机横向滑动，减少占用高度 */
  .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);
  }
}

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

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

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

  .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) {
/* 接口配置：平板（iPad）单列布局，避免三列字段重叠 */
  .settings-sms-tencent-grid,
  .settings-sms-tencent-grid--cols3 {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
  .settings-interface-section-body--cols2 {
    grid-template-columns: 1fr;
  }
  .settings-interface-page .settings-interface-section-body--uniform .setting-field-line,
  .settings-interface-stack .settings-interface-section-body--uniform .setting-field-line {
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
  }
  .settings-interface-page .settings-interface-section-body--uniform .setting-label,
  .settings-interface-stack .settings-interface-section-body--uniform .setting-label {
    flex: none;
    max-width: none;
    width: 100%;
    white-space: normal;
  }
  .settings-interface-page .settings-interface-section-body--uniform .setting-control,
  .settings-interface-stack .settings-interface-section-body--uniform .setting-control {
    flex: none;
    min-width: 0;
    width: 100%;
  }
  .settings-interface-page .settings-interface-section-body--uniform .field-hint,
  .settings-interface-stack .settings-interface-section-body--uniform .field-hint {
    margin-top: 0.15rem;
  }
  .settings-sms-enabled-row {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
    padding: 0.5rem 0;
  }
  .settings-sms-enabled-row .setting-field-line {
    flex-wrap: wrap;
  }

  /* 页面容器：外层滚动 or 内部 flex 分栏 */
  

  

  /* 工作台：三个命令同一行平铺 */
  .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-query-grid {
    max-height: none;
  }
  
  .hr-wechat-table-scroll {
    flex: 1 1 auto;
    min-height: min(36vh, 300px);
    overflow: auto;
    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;
  }
  

  /* 分页列表壳：取消过大 min-height，改为 flex 内滚动 */
}

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

/* 小程序 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;
}
