    /* 工资表格固定表头和姓名列 */
    .salary-table-container {
      max-height: calc(100vh - 300px);
      min-height: 400px;
      overflow: auto;
      position: relative;
    }

    .salary-table thead {
      position: sticky;
      top: 0;
      z-index: 20;
    }

    .salary-table thead th {
      background: #f9fafb;
    }

    .salary-table .sticky-col {
      position: sticky;
      left: 0;
      z-index: 10;
      background: inherit;
    }

    .salary-table thead .sticky-col {
      z-index: 25;
      background: #f9fafb;
    }

    .salary-table tbody tr:hover .sticky-col {
      background: #f9fafb;
    }

    .salary-table tbody tr.editing .sticky-col {
      background: #fefce8;
    }

    /* 汇总行固定列背景 */
    .salary-table tfoot tr .sticky-col,
    .salary-table tbody tr.summary-row .sticky-col {
      background: #f3f4f6;
    }

    /* 模态框样式 */
    .modal-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.5);
      z-index: 100;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 16px;
    }

    .modal-content {
      background: white;
      border-radius: 8px;
      width: 100%;
      max-width: 40rem;
      max-height: calc(100vh - 120px);
      display: flex;
      flex-direction: column;
    }

    .modal-header {
      padding: 12px 16px;
      border-bottom: 1px solid #e5e7eb;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-shrink: 0;
    }

    .modal-body {
      padding: 16px;
      overflow-y: auto;
      flex: 1;
    }

    .modal-footer {
      padding: 12px 16px;
      border-top: 1px solid #e5e7eb;
      display: flex;
      justify-content: flex-end;
      gap: 8px;
      flex-shrink: 0;
    }

    /* ===================== 移动端适配 ===================== */
    /* 桌面端：隐藏卡片，显示表格 */
    .emp-mobile-cards { display: none; }
    .recv-mobile-cards { display: none; }
    .tx-mobile-cards { display: none; }

    /* 应收/应付表格容器：限制最大宽度，防止撑破页面 */
    .recv-desktop-table {
      max-width: 100%;
    }
    .recv-desktop-table table {
      min-width: max-content;
    }

    @media (max-width: 767px) {
      /* 员工页面：隐藏桌面表格，显示卡片 */
      .emp-desktop-table { display: none !important; }
      .emp-mobile-cards { display: block !important; }

      /* 筛选栏可换行，紧凑间距 */
      #page-employee .flex[style*="flex-wrap:nowrap"] {
        flex-wrap: wrap !important;
      }
      #page-employee select,
      #page-employee input[type="text"] {
        width: auto !important;
        min-width: 5rem;
        flex: 1 1 auto;
      }

      /* 公司标签横向滚动 */
      #employee-tabs {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 0.5rem;
        gap: 0.4rem !important;
      }
      #employee-tabs button {
        flex-shrink: 0;
        font-size: 0.75rem;
        padding: 0.35rem 0.5rem;
      }

      /* 隐藏管理按钮 */
      #manage-companies-btn,
      #manage-field-options-btn {
        display: none !important;
      }

      /* 卡片列表样式 */
      .emp-mobile-cards {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
      }
      .emp-card {
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 0.5rem;
        padding: 0.75rem;
        display: flex;
        flex-direction: column;
        gap: 0.35rem;
      }
      .emp-card-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
      }
      .emp-card-name {
        font-weight: 600;
        font-size: 0.9375rem;
        color: #2563eb;
        cursor: pointer;
      }
      .emp-card-company {
        font-size: 0.75rem;
        color: #6b7280;
      }
      .emp-card-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 0.25rem 0.6rem;
        font-size: 0.75rem;
        color: #4b5563;
      }
      .emp-card-meta span {
        white-space: nowrap;
      }
      .emp-card-tag {
        display: inline-block;
        background: #eff6ff;
        color: #2563eb;
        border-radius: 0.25rem;
        padding: 0.1rem 0.4rem;
        font-size: 0.6875rem;
      }
      .emp-card-actions {
        display: flex;
        gap: 0.5rem;
        margin-top: 0.25rem;
      }
      .emp-card-actions button {
        font-size: 0.75rem;
        padding: 0.25rem 0.6rem;
      }

      /* 页面容器减少内边距 */
      #page-employee > .bg-white {
        padding: 0.5rem !important;
      }

      /* ===== 应收款页移动端 ===== */
      .recv-desktop-table { display: none !important; }
      .recv-mobile-cards { display: block !important; }

      #page-receivable .bg-white {
        padding: 0.5rem !important;
      }
      /* 汇总栏紧凑 */
      #page-receivable .recv-summary {
        gap: 0.5rem !important;
        padding: 0.5rem !important;
      }
      #page-receivable .recv-summary span {
        font-size: 0.75rem;
      }
      #page-receivable .recv-summary strong {
        font-size: 0.9375rem !important;
      }
      /* 筛选栏 */
      #page-receivable .recv-filter {
        gap: 0.35rem !important;
      }
      #page-receivable .recv-filter input[type="date"] {
        width: 6.5rem !important;
        font-size: 0.75rem;
        padding: 0.3rem 0.4rem;
      }

      /* 应收款卡片 */
      .recv-mobile-cards {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
      }
      .recv-card {
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 0.5rem;
        padding: 0.6rem 0.75rem;
      }
      .recv-card-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 0.25rem;
      }
      .recv-card-name {
        font-weight: 600;
        font-size: 0.875rem;
        color: #2563eb;
      }
      .recv-card-date {
        font-size: 0.6875rem;
        color: #9ca3af;
      }
      .recv-card-row {
        display: flex;
        justify-content: space-between;
        font-size: 0.75rem;
        color: #4b5563;
        line-height: 1.6;
      }
      .recv-card-row .label { color: #6b7280; }
      .recv-card-row .value { font-weight: 500; }
      .recv-card-remaining { color: #ea580c; font-weight: 600; }
      .recv-card-received { color: #16a34a; }
      .recv-card-tags {
        display: flex;
        gap: 0.3rem;
        flex-wrap: wrap;
        margin-top: 0.2rem;
      }

      /* ===== 流水页移动端 ===== */
      .tx-desktop-table { display: none !important; }
      .tx-mobile-cards { display: flex !important; flex-direction: column; gap: 0.5rem; }

      #page-transaction .bg-white { padding: 0.5rem !important; }
      /* 顶部筛选/按钮：紧凑 */
      #page-transaction .flex.flex-wrap.gap-4 { gap: 0.4rem !important; }
      #page-transaction select { padding: 0.3rem 0.5rem !important; font-size: 0.8125rem; }
      #page-transaction button { padding: 0.4rem 0.6rem !important; font-size: 0.75rem; }
      #page-transaction label { font-size: 0.75rem; }
      /* 汇总栏 */
      #tx-summary .text-sm { font-size: 0.75rem; }

      /* 流水卡片 */
      .tx-card {
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 0.5rem;
        padding: 0.6rem 0.75rem;
      }
      .tx-card.reversed { background: #f3f4f6; opacity: 0.65; }
      .tx-card.fee-marked { background: #fefce8; border-color: #fde047; }
      .tx-card-top {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        margin-bottom: 0.25rem;
      }
      .tx-card-amount {
        font-size: 1.05rem;
        font-weight: 700;
      }
      .tx-card-date {
        font-size: 0.75rem;
        color: #6b7280;
      }
      .tx-card-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem 0.75rem;
        font-size: 0.75rem;
        color: #4b5563;
        margin-bottom: 0.25rem;
      }
      .tx-card-meta .label { color: #9ca3af; margin-right: 0.15rem; }
      .tx-card-summary {
        font-size: 0.75rem;
        color: #4b5563;
        word-break: break-all;
        line-height: 1.5;
      }
      .tx-card-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.3rem;
        margin-top: 0.4rem;
      }
      .tx-card-actions button {
        padding: 0.25rem 0.5rem !important;
        font-size: 0.6875rem !important;
      }
      .tx-card-id {
        font-family: ui-monospace, monospace;
        font-size: 0.6875rem;
        color: #9ca3af;
      }
      /* 分页按钮紧凑 */
      #tx-pagination button { padding: 0.3rem 0.5rem !important; font-size: 0.75rem; }

      /* 流水页：按钮图标和文字紧凑 */
      #page-transaction button i { margin-right: 0.15rem !important; font-size: 0.875rem; }
      /* 工具栏按钮统一更小 */
      #tx-add-btn, #tx-import-btn, #tx-closing-btn {
        padding: 0.4rem 0.55rem !important;
        font-size: 0.75rem !important;
      }

      /* ===== 账户页移动端 ===== */
      /* 标题栏：允许换行 */
      #page-account .flex.justify-between {
        flex-wrap: wrap;
        gap: 0.5rem;
      }
      #page-account h2 { font-size: 1rem !important; }
      #page-account button {
        padding: 0.4rem 0.6rem !important;
        font-size: 0.75rem !important;
      }
      #page-account button i { margin-right: 0.15rem !important; }
      /* 汇总栏紧凑 */
      #account-summary-bar .flex { gap: 0.25rem !important; padding: 0.5rem !important; }
      #account-summary-bar .text-sm,
      #account-summary-bar .text-base { font-size: 0.7rem !important; }
      #account-summary-bar .font-bold { font-size: 0.8125rem !important; }
      /* 账户卡片：每行 2 个 */
      #page-account .grid { gap: 0.5rem !important; }
      #page-account .grid > div .text-xl { font-size: 1.05rem !important; }
      /* 分组管理：输入框+按钮在窄屏更紧凑 */
      #page-account input[type="text"] { font-size: 0.8125rem; min-width: 0; flex: 1; }
      /* 月末余额面板 */
      #account-monthly-balance-panel select,
      #account-monthly-balance-panel button {
        padding: 0.3rem 0.5rem !important;
        font-size: 0.75rem !important;
      }
      #page-account .bg-white { padding: 0.5rem !important; }
    }

/* ===================== FileBrowser 组件 modal 适配 ===================== */
/* 解决弹窗内 cw-* 样式缺失（原样式仅限 #page-company-workspace 作用域）*/
.modal-body .cw-card { background: #fff; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0,0,0,0.06); border: 1px solid #f3f4f6; }
.modal-body .cw-empty { text-align: center; padding: 2rem 1rem; color: #9ca3af; }
.modal-body .cw-empty i { font-size: 2rem; margin-bottom: 0.5rem; display: block; }
.modal-body .cw-loading { text-align: center; padding: 2rem 1rem; color: #9ca3af; }
.modal-body .cw-loading .spinner { width: 28px; height: 28px; border: 3px solid #e5e7eb; border-top-color: #3b82f6; border-radius: 50%; animation: cw-spin 0.7s linear infinite; margin: 0 auto 0.5rem; }
@keyframes cw-spin { to { transform: rotate(360deg); } }
.modal-body .cw-file-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 160px)); gap: 0.5rem; }
.modal-body .cw-file-card { position: relative; border-radius: 0.375rem; overflow: hidden; cursor: pointer; transition: box-shadow 0.15s; background: #fff; }
.modal-body .cw-file-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.modal-body .cw-file-card .cw-file-thumb { position: relative; height: 48px; background: #f9fafb; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.modal-body .cw-file-card .cw-file-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.modal-body .cw-file-card .cw-file-thumb > i { font-size: 1.75rem; }
.modal-body .cw-file-card .cw-file-name { padding: 0.2rem 0.35rem; font-size: 0.6875rem; color: #4b5563; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-all; }
.modal-body .cw-file-card .cw-file-card-meta { padding: 0 0.35rem 0.2rem; font-size: 0.625rem; color: #9ca3af; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.modal-body .cw-file-card .cw-file-card-overlay { position: absolute; top: 0; left: 0; right: 0; height: 48px; background: rgba(0,0,0,0.45); display: none; align-items: center; justify-content: center; gap: 0.4rem; }
.modal-body .cw-file-card:hover .cw-file-card-overlay { display: flex; }
.modal-body .cw-file-card .cw-file-card-overlay i { font-size: 0.95rem; color: #fff; cursor: pointer; padding: 0.2rem; border-radius: 0.25rem; transition: background 0.12s; }
.modal-body .cw-file-card .cw-file-card-overlay i:hover { background: rgba(255,255,255,0.2); }
/* 大缩略图模式 */
.modal-body .cw-thumb-large .cw-file-card .cw-file-thumb { height: 96px; }
.modal-body .cw-thumb-large .cw-file-card .cw-file-card-overlay { height: 96px; }
.modal-body .cw-thumb-large { grid-template-columns: repeat(auto-fill, minmax(200px, 320px)); }
.modal-body .cw-doc-toolbar-btn.active { background: #eff6ff; color: #2563eb; border-color: #bfdbfe; }
.modal-body .cw-file-row { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 0.75rem; border-bottom: 1px solid #f3f4f6; }
.modal-body .cw-file-row:last-child { border-bottom: none; }
.modal-body .cw-file-row:hover { background: #f9fafb; }
.modal-body .cw-file-row .cw-file-info { flex: 1; min-width: 0; }
.modal-body .cw-file-row .cw-file-info .cw-file-title { font-size: 0.875rem; color: #374151; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; transition: color 0.12s; }
.modal-body .cw-file-row .cw-file-info .cw-file-title:hover { color: #2563eb; text-decoration: underline; }
.modal-body .cw-file-row .cw-file-info .cw-file-meta { font-size: 0.75rem; color: #9ca3af; margin-top: 0.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.modal-body .cw-file-row .cw-file-actions { flex-shrink: 0; margin-left: 0.75rem; }
.modal-body .cw-file-row .cw-file-actions a { font-size: 0.75rem; color: #2563eb; margin-left: 0.5rem; }
.modal-body .cw-file-row .cw-file-actions a:hover { text-decoration: underline; }
