/* 优阁财务日报系统 - 核心样式 */
:root {
    --primary: #1a56db;
    --primary-light: #3b82f6;
    --primary-dark: #1e40af;
    --success: #22c55e;
    --warning: #f59e0b;
    --danger: #ef4444;
    --info: #06b6d4;
    --purple: #8b5cf6;
    --teal: #14b8a6;
    --gray-50: #f9fafb;
    --gray-100: #f3f4f6;
    --gray-200: #e5e7eb;
    --gray-300: #d1d5db;
    --gray-400: #9ca3af;
    --gray-500: #6b7280;
    --gray-600: #4b5563;
    --gray-700: #374151;
    --gray-800: #1f2937;
    --gray-900: #111827;
    --shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.05);
    --shadow: 0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px 0 rgba(0,0,0,0.06);
    --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
    --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
    --radius: 8px;
    --radius-lg: 12px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
    background: var(--gray-50);
    color: var(--gray-800);
    line-height: 1.6;
    min-height: 100vh;
}

/* ===== 登录页 ===== */
.login-body {
    background: linear-gradient(135deg, #1a56db 0%, #3b82f6 50%, #06b6d4 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
}

.login-container {
    width: 100%;
    max-width: 420px;
    padding: 20px;
}

.login-box {
    background: white;
    border-radius: var(--radius-lg);
    padding: 40px;
    box-shadow: var(--shadow-lg);
}

.login-header {
    text-align: center;
    margin-bottom: 32px;
}

.login-header h1 {
    font-size: 28px;
    font-weight: 700;
    color: var(--primary);
    letter-spacing: 2px;
}

.login-header p {
    color: var(--gray-500);
    margin-top: 8px;
    font-size: 15px;
}

.login-tips {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--gray-200);
    text-align: center;
}

.login-tips p {
    font-size: 12px;
    color: var(--gray-400);
}

/* ===== 导航栏 ===== */
.main-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 60px;
    background: white;
    border-bottom: 1px solid var(--gray-200);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    z-index: 1000;
    box-shadow: var(--shadow-sm);
}

.nav-brand {
    display: flex;
    align-items: center;
    gap: 8px;
}

.nav-brand .logo {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    letter-spacing: 1px;
}

.nav-brand .brand-text {
    font-size: 14px;
    color: var(--gray-500);
    font-weight: 500;
}

.nav-menu {
    display: flex;
    list-style: none;
    gap: 4px;
}

.nav-menu a {
    display: block;
    padding: 8px 14px;
    border-radius: var(--radius);
    color: var(--gray-600);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s;
}

.nav-menu a:hover, .nav-menu a.active {
    background: var(--gray-100);
    color: var(--primary);
}

.nav-user {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 14px;
    color: var(--gray-600);
}

.nav-user .logout {
    color: var(--danger);
    text-decoration: none;
    font-weight: 500;
}

.nav-user .logout:hover {
    text-decoration: underline;
}

/* ===== 主内容区 ===== */
.main-content {
    margin-top: 60px;
    padding: 24px 32px;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
}

.page-header {
    margin-bottom: 24px;
}

.page-header h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--gray-900);
}

.page-header .date-info {
    color: var(--gray-500);
    font-size: 14px;
    margin-top: 4px;
}

/* ===== 卡片 ===== */
.card-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.card-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.card-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.stat-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: var(--shadow);
    border-left: 4px solid;
    transition: transform 0.2s, box-shadow 0.2s;
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.stat-blue { border-left-color: var(--primary); }
.stat-green { border-left-color: var(--success); }
.stat-orange { border-left-color: var(--warning); }
.stat-red { border-left-color: var(--danger); }
.stat-purple { border-left-color: var(--purple); }
.stat-yellow { border-left-color: var(--warning); }
.stat-teal { border-left-color: var(--teal); }

.stat-icon {
    font-size: 32px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gray-100);
    border-radius: var(--radius);
}

.stat-info { flex: 1; }

.stat-label {
    font-size: 13px;
    color: var(--gray-500);
    margin-bottom: 4px;
}

.stat-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.2;
}

.stat-sub {
    font-size: 12px;
    color: var(--gray-400);
    margin-top: 2px;
}

/* ===== 面板 ===== */
.panel {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    margin-bottom: 24px;
    overflow: hidden;
}

.panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--gray-100);
}

.panel-header h3 {
    font-size: 16px;
    font-weight: 600;
    color: var(--gray-800);
}

/* ===== 表格 ===== */
.table-responsive {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.data-table thead {
    background: var(--gray-50);
}

.data-table th {
    padding: 12px 16px;
    text-align: left;
    font-weight: 600;
    color: var(--gray-600);
    font-size: 13px;
    border-bottom: 1px solid var(--gray-200);
    white-space: nowrap;
}

.data-table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--gray-100);
    color: var(--gray-700);
}

.data-table tbody tr:hover {
    background: var(--gray-50);
}

.data-table tbody tr:last-child td {
    border-bottom: none;
}

/* 预览表格特殊样式 */
.preview-table .row-sale { background: rgba(34,197,94,0.05); }
.preview-table .row-prepay { background: rgba(245,158,11,0.05); }
.preview-table .row-debt { background: rgba(139,92,246,0.05); }
.preview-table .row-payment { background: rgba(239,68,68,0.05); }

/* ===== 按钮 ===== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: var(--radius);
    border: none;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.2s;
    gap: 6px;
}

.btn-primary {
    background: var(--primary);
    color: white;
}

.btn-primary:hover {
    background: var(--primary-dark);
}

.btn-secondary {
    background: var(--gray-100);
    color: var(--gray-700);
    border: 1px solid var(--gray-300);
}

.btn-secondary:hover {
    background: var(--gray-200);
}

.btn-danger {
    background: var(--danger);
    color: white;
}

.btn-danger:hover {
    background: #dc2626;
}

.btn-sm {
    padding: 4px 10px;
    font-size: 13px;
}

.btn-block {
    width: 100%;
    padding: 12px;
    font-size: 15px;
}

/* ===== 表单 ===== */
.form-group {
    margin-bottom: 16px;
}

.form-group label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--gray-700);
    margin-bottom: 6px;
}

.form-control {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--gray-300);
    border-radius: var(--radius);
    font-size: 14px;
    color: var(--gray-800);
    background: white;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.form-control:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(26,86,219,0.1);
}

.form-hint {
    font-size: 12px;
    color: var(--gray-400);
    margin-top: 4px;
}

.form-inline {
    display: flex;
    gap: 12px;
    align-items: flex-end;
    padding: 16px 20px;
}

.form-inline .form-group {
    margin-bottom: 0;
    flex: 1;
}

/* ===== 上传区域 ===== */
.upload-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.upload-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: 24px;
    box-shadow: var(--shadow);
}

.upload-tips {
    background: white;
    border-radius: var(--radius-lg);
    padding: 24px;
    box-shadow: var(--shadow);
}

.upload-tips h4 {
    font-size: 16px;
    margin-bottom: 12px;
    color: var(--gray-800);
}

.upload-tips ul {
    padding-left: 20px;
    color: var(--gray-600);
    font-size: 14px;
    line-height: 2;
}

.file-drop-zone {
    border: 2px dashed var(--gray-300);
    border-radius: var(--radius-lg);
    padding: 32px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
}

.file-drop-zone:hover, .file-drop-zone.dragover {
    border-color: var(--primary);
    background: rgba(26,86,219,0.03);
}

.file-drop-zone input {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}

.drop-zone-content {
    pointer-events: none;
}

.drop-icon {
    font-size: 40px;
    margin-bottom: 8px;
}

.file-name {
    margin-top: 12px;
    padding: 8px 12px;
    background: var(--gray-100);
    border-radius: var(--radius);
    font-size: 13px;
    color: var(--gray-700);
    display: none;
}

/* ===== 确认区域 ===== */
.confirm-section {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.confirm-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: 32px;
    box-shadow: var(--shadow-lg);
    max-width: 480px;
    width: 100%;
    text-align: center;
}

.confirm-card h3 {
    margin-bottom: 12px;
    color: var(--gray-800);
}

.confirm-card p {
    color: var(--gray-500);
    margin-bottom: 8px;
}

.confirm-input {
    font-size: 20px;
    letter-spacing: 8px;
    text-align: center;
    padding: 14px;
    max-width: 200px;
    margin: 0 auto 16px;
}

.confirm-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
}

/* ===== 筛选栏 ===== */
.filter-bar {
    background: white;
    border-radius: var(--radius);
    padding: 16px 20px;
    margin-bottom: 20px;
    box-shadow: var(--shadow);
}

.filter-form {
    display: flex;
    gap: 12px;
    align-items: flex-end;
}

.filter-form .form-group {
    margin-bottom: 0;
}

.filter-form .form-group label {
    font-size: 12px;
    margin-bottom: 4px;
}

.filter-form .form-control {
    width: 160px;
    padding: 8px 12px;
}

/* ===== 分页 ===== */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
    padding: 16px;
}

.page-info {
    font-size: 14px;
    color: var(--gray-500);
}

/* ===== 徽章 ===== */
.badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.badge-green { background: rgba(34,197,94,0.1); color: #16a34a; }
.badge-red { background: rgba(239,68,68,0.1); color: #dc2626; }
.badge-blue { background: rgba(59,130,246,0.1); color: #2563eb; }
.badge-orange { background: rgba(245,158,11,0.1); color: #d97706; }
.badge-purple { background: rgba(139,92,246,0.1); color: #7c3aed; }
.badge-gray { background: var(--gray-100); color: var(--gray-500); }
.badge-warning { background: rgba(245,158,11,0.15); color: #b45309; }

/* ===== 警告 ===== */
.alert {
    padding: 12px 16px;
    border-radius: var(--radius);
    margin-bottom: 20px;
    font-size: 14px;
}

.alert-success { background: rgba(34,197,94,0.1); color: #16a34a; border: 1px solid rgba(34,197,94,0.2); }
.alert-error { background: rgba(239,68,68,0.1); color: #dc2626; border: 1px solid rgba(239,68,68,0.2); }
.alert-warning { background: rgba(245,158,11,0.1); color: #b45309; border: 1px solid rgba(245,158,11,0.2); }

/* ===== 弹窗 ===== */
.modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 2000;
    align-items: center;
    justify-content: center;
}

.modal-content {
    background: white;
    border-radius: var(--radius-lg);
    padding: 24px;
    width: 100%;
    max-width: 480px;
    box-shadow: var(--shadow-lg);
}

.modal-content h3 {
    margin-bottom: 20px;
    font-size: 18px;
}

.modal-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin-top: 20px;
}

/* ===== 图表区域 ===== */
.chart-section {
    margin-bottom: 24px;
}

.chart-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: 24px;
    box-shadow: var(--shadow);
}

.chart-card h3 {
    font-size: 16px;
    margin-bottom: 16px;
    color: var(--gray-800);
}

/* ===== 两栏布局 ===== */
.two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

/* ===== 文字工具类 ===== */
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-gray { color: var(--gray-400); }
.text-red { color: var(--danger); }
.text-green { color: var(--success); }
.font-bold { font-weight: 700; }

/* ===== 响应式 ===== */
@media (max-width: 1200px) {
    .card-grid-4 { grid-template-columns: repeat(2, 1fr); }
    .two-column { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .card-grid-4, .card-grid-3, .card-grid-2 { grid-template-columns: 1fr; }
    .main-content { padding: 16px; }
    .nav-menu { display: none; }
    .upload-container { grid-template-columns: 1fr; }
    .filter-form { flex-wrap: wrap; }
    .form-inline { flex-direction: column; align-items: stretch; }
    .form-inline .form-group { width: 100%; }
    .confirm-actions { flex-direction: column; }
}

/* ===== 操作栏 ===== */
.actions-bar {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}


/* ===== 步骤指示器 ===== */
.upload-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 24px;
    padding: 16px;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.step {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: var(--radius);
    background: var(--gray-100);
    color: var(--gray-500);
}

.step.active {
    background: var(--primary);
    color: white;
}

.step.completed {
    background: rgba(34,197,94,0.15);
    color: var(--success);
}

.step-num {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: currentColor;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
}

.step.active .step-num,
.step.completed .step-num {
    background: white;
    color: var(--primary);
}

.step.completed .step-num {
    color: var(--success);
}

.step-text {
    font-size: 14px;
    font-weight: 500;
}

.step-arrow {
    color: var(--gray-400);
    font-size: 18px;
}

/* ===== 确认卡片优化 ===== */
.confirm-card {
    text-align: center;
    padding: 40px;
}

.confirm-icon {
    font-size: 48px;
    margin-bottom: 16px;
}

.confirm-card h3 {
    font-size: 20px;
    margin-bottom: 8px;
}

.confirm-info {
    background: var(--gray-50);
    border-radius: var(--radius);
    padding: 16px;
    margin: 16px 0;
    text-align: left;
}

.confirm-info p {
    margin: 4px 0;
    color: var(--gray-600);
    font-size: 14px;
}

.confirm-code {
    font-size: 20px;
    color: var(--primary);
    letter-spacing: 2px;
}

.confirm-input {
    font-size: 24px;
    letter-spacing: 12px;
    text-align: center;
    padding: 16px;
    max-width: 200px;
    margin: 0 auto 20px;
    font-weight: 700;
}

/* ===== 文件上传区域优化 ===== */
.drop-zone-content .drop-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--gray-700);
    margin-bottom: 4px;
}

.drop-zone-content .drop-sub {
    font-size: 13px;
    color: var(--gray-400);
}

.file-name.show {
    background: rgba(34,197,94,0.1);
    color: var(--success);
    border: 1px solid rgba(34,197,94,0.3);
}

/* ===== 必填标记 ===== */
.required {
    color: var(--danger);
}

/* ===== 提示区域优化 ===== */
.tip-section {
    margin-bottom: 20px;
}

.tip-section h5 {
    font-size: 14px;
    color: var(--gray-700);
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--gray-200);
}

.tip-section ul {
    padding-left: 18px;
    color: var(--gray-600);
    font-size: 13px;
    line-height: 1.9;
}

/* ===== 面板头部操作区 ===== */
.panel-actions {
    display: flex;
    gap: 8px;
}

/* ===== 响应式优化 ===== */
@media (max-width: 768px) {
    .upload-steps {
        flex-wrap: wrap;
        gap: 4px;
    }
    .step-arrow {
        display: none;
    }
    .confirm-card {
        padding: 24px;
    }
}


/* ===== 物流代收行样式 ===== */
.preview-table .row-logistics {
    background: rgba(139, 92, 246, 0.08);
}

.preview-table .row-logistics:hover {
    background: rgba(139, 92, 246, 0.15);
}

/* ===== 抹零金额高亮 ===== */
.text-orange {
    color: #f97316;
}

/* ===== 确认卡片优化 ===== */
.confirm-card {
    text-align: center;
    padding: 40px;
    max-width: 520px;
}

.confirm-icon {
    font-size: 48px;
    margin-bottom: 16px;
}

.confirm-card h3 {
    font-size: 20px;
    margin-bottom: 8px;
}

.confirm-info {
    background: var(--gray-50);
    border-radius: var(--radius);
    padding: 16px 20px;
    margin: 16px 0;
    text-align: left;
}

.confirm-info p {
    margin: 4px 0;
    color: var(--gray-600);
    font-size: 14px;
}

.confirm-code {
    font-size: 20px;
    color: var(--primary);
    letter-spacing: 2px;
}

.confirm-input {
    font-size: 24px;
    letter-spacing: 12px;
    text-align: center;
    padding: 16px;
    max-width: 200px;
    margin: 0 auto 20px;
    font-weight: 700;
}

/* ===== 步骤指示器 ===== */
.upload-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 24px;
    padding: 16px;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.step {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: var(--radius);
    background: var(--gray-100);
    color: var(--gray-500);
}

.step.active {
    background: var(--primary);
    color: white;
}

.step.completed {
    background: rgba(34, 197, 94, 0.15);
    color: var(--success);
}

.step-num {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: currentColor;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
}

.step.active .step-num,
.step.completed .step-num {
    background: white;
    color: var(--primary);
}

.step.completed .step-num {
    color: var(--success);
}

.step-text {
    font-size: 14px;
    font-weight: 500;
}

.step-arrow {
    color: var(--gray-400);
    font-size: 18px;
}

/* ===== 文件上传区域优化 ===== */
.drop-zone-content .drop-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--gray-700);
    margin-bottom: 4px;
}

.drop-zone-content .drop-sub {
    font-size: 13px;
    color: var(--gray-400);
}

.file-name.show {
    background: rgba(34, 197, 94, 0.1);
    color: var(--success);
    border: 1px solid rgba(34, 197, 94, 0.3);
}

/* ===== 必填标记 ===== */
.required {
    color: var(--danger);
}

/* ===== 提示区域优化 ===== */
.tip-section {
    margin-bottom: 20px;
}

.tip-section h5 {
    font-size: 14px;
    color: var(--gray-700);
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--gray-200);
}

.tip-section ul {
    padding-left: 18px;
    color: var(--gray-600);
    font-size: 13px;
    line-height: 1.9;
}

/* ===== 面板头部操作区 ===== */
.panel-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* ===== 响应式优化 ===== */
@media (max-width: 768px) {
    .upload-steps {
        flex-wrap: wrap;
        gap: 4px;
    }
    .step-arrow {
        display: none;
    }
    .confirm-card {
        padding: 24px;
    }
    .panel-actions {
        margin-top: 8px;
    }
}

/* ===== V1.0.6 数据预览固定列 + 行编辑 ===== */
.wide-preview { max-width: 1560px; }
.card-grid-5 {
    display: grid;
    grid-template-columns: repeat(5, minmax(160px, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}
.stat-teal { border-left: 4px solid var(--teal); }
.compact-policy { font-size: 13px; line-height: 1.7; }
.preview-scroll-hint {
    padding: 10px 14px;
    color: var(--gray-600);
    background: var(--gray-50);
    border-bottom: 1px solid var(--gray-200);
    font-size: 13px;
}
.sticky-table-wrap {
    overflow: auto;
    max-height: 78vh;
    position: relative;
    border-radius: var(--radius);
}
.small-table-wrap { overflow-x: auto; }
.sticky-preview-table {
    min-width: 1680px;
    border-collapse: separate;
    border-spacing: 0;
}
.sticky-preview-table th,
.sticky-preview-table td {
    white-space: nowrap;
    font-size: 12px;
    min-width: 92px;
}
.sticky-preview-table .account-col { min-width: 96px; }
.sticky-col {
    position: sticky;
    z-index: 6;
    background: #fff;
    box-shadow: 1px 0 0 var(--gray-200);
}
.sticky-preview-table thead .sticky-col { z-index: 16; }
.sticky-preview-table tbody tr:nth-child(even) .sticky-col { background: #fbfdff; }
.sticky-preview-table tbody tr.row-sale .sticky-col { background: #f0fdf4; }
.sticky-preview-table tbody tr.row-debt .sticky-col { background: #f5f3ff; }
.sticky-preview-table tbody tr.row-advance .sticky-col { background: #eff6ff; }
.sticky-preview-table tbody tr.row-prepay .sticky-col { background: #fff7ed; }
.sticky-preview-table tbody tr.row-logistics .sticky-col { background: #fff7ed; }
.sticky-seq { left: 0; min-width: 58px !important; width: 58px; }
.sticky-name { left: 58px; min-width: 178px !important; width: 178px; max-width: 178px; overflow: hidden; text-overflow: ellipsis; }
.sticky-doc { left: 236px; min-width: 142px !important; width: 142px; }
.sticky-sales { left: 378px; min-width: 118px !important; width: 118px; }
.sticky-action {
    position: sticky;
    right: 0;
    z-index: 7;
    background: #fff;
    box-shadow: -1px 0 0 var(--gray-200);
    min-width: 76px !important;
}
thead .sticky-action { z-index: 17; }
.amount-cell.has-money,
.amount-cell.has-unpaid,
.amount-cell.has-advance,
.amount-cell.has-logistics,
.amount-cell.has-zero {
    font-weight: 700;
}
.amount-cell.has-money { background: rgba(34, 197, 94, 0.08); }
.amount-cell.has-unpaid { background: rgba(245, 158, 11, 0.12); }
.amount-cell.has-advance { background: rgba(59, 130, 246, 0.10); }
.amount-cell.has-logistics { background: rgba(249, 115, 22, 0.12); }
.amount-cell.has-zero { background: rgba(239, 68, 68, 0.10); color: var(--danger); }
.btn-sm { padding: 5px 10px; font-size: 12px; border-radius: 6px; }
.btn-outline { background: white; border: 1px solid var(--primary); color: var(--primary); }
.btn-outline:hover { background: var(--primary); color: white; }
.badge-yellow { background: rgba(245,158,11,0.14); color: #b45309; }
.row-sale { background: #f0fdf4; }
.row-debt { background: #f5f3ff; }
.row-advance { background: #eff6ff; }
.row-prepay, .row-logistics { background: #fff7ed; }
.edit-modal { position: fixed; inset: 0; z-index: 3000; }
.edit-modal-mask { position: absolute; inset: 0; background: rgba(15, 23, 42, 0.45); }
.edit-modal-card {
    position: relative;
    width: min(920px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    overflow: auto;
    margin: 24px auto;
    background: white;
    border-radius: 14px;
    box-shadow: var(--shadow-lg);
}
.edit-modal-header, .edit-modal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--gray-200);
}
.edit-modal-footer { border-bottom: none; border-top: 1px solid var(--gray-200); justify-content: flex-end; gap: 10px; }
.edit-modal-body { padding: 18px 20px; }
.modal-close { border: none; background: transparent; font-size: 26px; cursor: pointer; color: var(--gray-500); }
.edit-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 12px; margin-bottom: 18px; }
.edit-grid label { font-size: 12px; color: var(--gray-600); font-weight: 600; }
.edit-grid input, .edit-grid select {
    width: 100%; margin-top: 5px; padding: 9px 10px;
    border: 1px solid var(--gray-300); border-radius: 8px; font-size: 14px;
}
.edit-grid .full-line { grid-column: 1 / -1; }
.edit-modal-body h4 { margin: 8px 0 10px; color: var(--gray-800); }
@media (max-width: 900px) {
    .card-grid-5 { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .edit-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* ===== V1.0.7 预收货款 + 退货单分离 ===== */
.card-grid-7 {
    display: grid;
    grid-template-columns: repeat(7, minmax(140px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.stat-cyan { border-left: 4px solid #06b6d4; }
.badge-cyan { background: rgba(6,182,212,0.12); color: #0891b2; }
.sticky-preview-table tbody tr.row-return .sticky-col { background: #fef2f2; }
.row-return { background: #fef2f2; }
@media (max-width: 1200px) {
    .card-grid-7 { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 900px) {
    .card-grid-7 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* V1.0.8.4 上传组件稳定性增强 */
.file-name.show {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #166534;
    font-size: 14px;
}
button:disabled,
.btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* V1.0.9 summary grids */
.report-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:18px 0;}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:18px 0;}
.hint-panel{font-size:14px;line-height:1.8;color:#374151;}
.table-scroll{overflow-x:auto;}
.text-muted{color:#6b7280;font-size:14px;margin-top:6px;}

/* V1.0.9.5 */
.clickable-card { cursor: pointer; }
.clickable-card:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(15, 23, 42, .12); }
.account-breakdown-panel { margin-top: 16px; }
.compact-table th, .compact-table td { padding: 10px 14px; }
.summary-row { background: #f8fafc; }
.page-actions { margin: 12px 0 16px; }
.grid-form { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 14px; align-items: end; }
.grid-form .full-width { grid-column: 1 / -1; }
.grid-form .form-actions { grid-column: 1 / -1; display: flex; gap: 10px; }
.table-scroll { overflow-x: auto; }
@media (max-width: 900px) { .grid-form { grid-template-columns: 1fr; } }

/* V1.0.9.6 付款账户明细展开 */
.clickable-card, .clickable-row { cursor: pointer; }
.clickable-row:hover { background: #f8fafc; }
.inner-table { margin: 8px 0; background: #fff; }
.inner-table th, .inner-table td { font-size: 13px; }

/* V1.0.9.9 报表汇总全卡片明细展开 + 标签高度统一 */
.badge,
.status-badge,
.tag,
.type-badge,
.label-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 24px !important;
    line-height: 24px !important;
    padding: 0 8px !important;
    border-radius: 6px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
}
.summary-detail-panel { margin-top: 16px; }
.summary-detail-panel .data-table th,
.summary-detail-panel .data-table td { vertical-align: middle; }
.summary-detail-panel .btn-sm { white-space: nowrap; }
.report-summary-grid .stat-label .text-muted { display: inline; font-size: 12px; margin-left: 4px; }

/* V1.1.0 账户余额大标签 + 月度明细 */
.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;}
.month-filter-form{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #eef2f7;border-radius:12px;padding:12px 14px;box-shadow:0 2px 10px rgba(15,23,42,.04);}
.month-filter-form label{font-size:13px;color:#64748b;white-space:nowrap;}
.month-filter-form select{min-width:130px;}
.account-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:18px 0 20px;}
.account-big-card{display:block;text-decoration:none;color:#0f172a;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:16px;box-shadow:0 4px 14px rgba(15,23,42,.05);transition:.15s ease;position:relative;overflow:hidden;}
.account-big-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#94a3b8;}
.account-big-card.account-type-blue:before{background:#2563eb;}
.account-big-card.account-type-red:before{background:#ef4444;}
.account-big-card.account-type-purple:before{background:#8b5cf6;}
.account-big-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.12);}
.account-big-card.active{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12),0 10px 24px rgba(15,23,42,.12);}
.account-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;}
.account-card-top strong{font-size:16px;}
.account-current{font-size:24px;font-weight:800;margin:8px 0 12px;letter-spacing:-.02em;}
.account-card-meta{display:grid;gap:6px;color:#64748b;font-size:13px;}
.account-card-meta span{display:flex;justify-content:space-between;gap:8px;}
.account-card-meta b{color:#334155;}
.account-detail-panel{margin-top:18px;}
.account-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.account-month-summary{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:16px;}
.account-tabs{display:flex;gap:8px;margin:12px 0 14px;border-bottom:1px solid #e5e7eb;padding-bottom:8px;}
.tab-btn{border:none;background:#f1f5f9;color:#475569;border-radius:999px;padding:9px 14px;cursor:pointer;font-weight:600;}
.tab-btn.active{background:#2563eb;color:#fff;}
.empty-cell{text-align:center;color:#94a3b8;padding:24px!important;}
@media (max-width: 900px){.page-header-row{display:block}.month-filter-form{margin-top:12px}.account-card-grid{grid-template-columns:1fr}.account-detail-header{display:block}.account-detail-header .btn{margin-top:10px}}

/* V1.1.1 日报报表查询按月筛选优化 */
.month-filter-bar .month-filter-form {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.month-input-group input[type="month"] {
  min-width: 180px;
  height: 38px;
  padding: 6px 10px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
}
.month-input-group small {
  display: block;
  margin-top: 4px;
  white-space: nowrap;
}
.btn-light {
  background: #f3f4f6;
  color: #374151;
  border: 1px solid #e5e7eb;
}
.btn-light:hover {
  background: #e5e7eb;
}

/* ===== V1.1.2 记账员独立上传通道 ===== */
.portal-body {
    background: linear-gradient(180deg, #f8fafc 0%, #eef2ff 100%);
    min-height: 100vh;
}
.portal-shell {
    width: min(1280px, calc(100% - 32px));
    margin: 0 auto;
    padding: 32px 0 48px;
}
.portal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}
.portal-header h1 {
    font-size: 28px;
    color: var(--gray-900);
    margin-bottom: 6px;
}
.portal-header p { color: var(--gray-500); }
.portal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    gap: 24px;
}
.portal-card, .portal-tips, .portal-confirm-card, .portal-success {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: 18px;
    box-shadow: var(--shadow-md);
}
.portal-card { padding: 24px; }
.portal-tips { padding: 28px; }
.portal-tips h3 { margin-bottom: 14px; }
.portal-tips ul { padding-left: 20px; color: var(--gray-600); line-height: 1.9; }
.portal-link-box {
    margin-top: 20px;
    padding: 14px;
    border-radius: 12px;
    background: var(--gray-50);
    border: 1px dashed var(--gray-300);
}
.portal-link-box code {
    display: block;
    margin-top: 6px;
    color: var(--primary-dark);
    word-break: break-all;
}
.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.portal-steps {
    margin-bottom: 22px;
}
.portal-summary { margin: 18px 0 20px; }
.portal-preview-table { max-height: 620px; overflow: auto; }
.mini-line { display: block; white-space: nowrap; }
.portal-confirm-card {
    width: min(520px, 100%);
    margin: 28px auto 0;
    padding: 30px;
    text-align: center;
}
.portal-confirm-card h3 { font-size: 24px; margin-bottom: 8px; }
.confirm-info {
    margin: 18px 0;
    padding: 14px;
    background: var(--gray-50);
    border-radius: 12px;
    display: grid;
    gap: 6px;
    color: var(--gray-600);
}
.confirm-input {
    width: 220px;
    max-width: 100%;
    height: 56px;
    border: 1px solid var(--gray-300);
    border-radius: 12px;
    text-align: center;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 8px;
    margin-bottom: 18px;
}
.confirm-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}
.portal-success {
    width: min(560px, calc(100% - 32px));
    margin: 80px auto;
    padding: 46px 36px;
    text-align: center;
}
.portal-success .success-icon { font-size: 58px; margin-bottom: 12px; }
.portal-success h1 { font-size: 30px; margin-bottom: 10px; }
.portal-success p { color: var(--gray-500); margin-bottom: 22px; }
@media (max-width: 900px) {
    .portal-grid { grid-template-columns: 1fr; }
    .portal-header { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 640px) {
    .form-row-2 { grid-template-columns: 1fr; }
    .portal-shell { width: min(100% - 20px, 1280px); padding-top: 20px; }
    .portal-card, .portal-tips { padding: 18px; }
    .portal-header h1 { font-size: 22px; }
}

/* V1.1.2.4：预览页抹零即时确认按钮 */
.action-inline {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
}
.action-inline .btn {
  white-space: nowrap;
}
.zero-status-cell .badge {
  min-width: 52px;
  text-align: center;
}


/* V1.1.2.5: confirmed zero buttons should be visually disabled to avoid repeated clicks */
.btn-disabled,
.btn-disabled:hover,
button:disabled.btn-disabled {
  background: #e5e7eb !important;
  border-color: #d1d5db !important;
  color: #6b7280 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}
.zero-row-confirmed { opacity: .55; transition: opacity .25s ease; }

/* V1.1.2.6 物流代收调账 */
.badge-teal { background: rgba(20,184,166,0.12); color: #0f766e; }
.account-type-teal { border-left-color: var(--teal); }
.form-grid.logistics-adjust-form { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 16px; align-items: end; }
.form-grid .form-group-wide { grid-column: 1 / -1; }
@media (max-width: 900px) { .form-grid.logistics-adjust-form { grid-template-columns: 1fr; } }

/* V1.1.2.7 报表查询大标签卡片显示修复版
   只修复日报报表查询页汇总卡片版式，不修改任何金额计算逻辑。 */
.report-summary-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin: 18px 0 20px !important;
    align-items: stretch !important;
}

.report-summary-grid .stat-card {
    min-width: 0 !important;
    min-height: 150px !important;
    height: 150px !important;
    padding: 18px 18px 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 10px !important;
    border-radius: 16px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.report-summary-grid .stat-label {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    color: #64748b !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

.report-summary-grid .stat-label .text-muted {
    display: block !important;
    margin: 5px 0 0 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    color: #94a3b8 !important;
    font-weight: 400 !important;
    white-space: nowrap !important;
}

.report-summary-grid .stat-value {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 24px !important;
    line-height: 1.18 !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

.report-summary-grid .clickable-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .12) !important;
}

@media (max-width: 1280px) {
    .report-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 820px) {
    .report-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .report-summary-grid .stat-card {
        min-height: 132px !important;
        height: 132px !important;
        padding: 16px !important;
    }
    .report-summary-grid .stat-value {
        font-size: 22px !important;
    }
}

@media (max-width: 520px) {
    .report-summary-grid {
        grid-template-columns: 1fr !important;
    }
    .report-summary-grid .stat-card {
        min-height: 118px !important;
        height: auto !important;
    }
}

/* V1.1.2.8 数据核对页大标签卡片显示修复版
   作用范围：后台上传日报预览页 + 记账员上传通道预览页。
   仅修复顶部汇总卡片显示，不修改金额计算、提交、抹零、物流代收等业务逻辑。 */
.card-grid-7 {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin: 18px 0 20px !important;
    align-items: stretch !important;
}

.card-grid-7 .stat-card {
    min-width: 0 !important;
    min-height: 138px !important;
    height: 138px !important;
    padding: 18px 18px 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 10px !important;
    border-radius: 16px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.card-grid-7 .stat-label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    color: #64748b !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

.card-grid-7 .stat-value {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 24px !important;
    line-height: 1.18 !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

.card-grid-7 .stat-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .12) !important;
}

@media (max-width: 1280px) {
    .card-grid-7 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 820px) {
    .card-grid-7 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .card-grid-7 .stat-card {
        min-height: 126px !important;
        height: 126px !important;
        padding: 16px !important;
    }
    .card-grid-7 .stat-value {
        font-size: 22px !important;
    }
}

@media (max-width: 520px) {
    .card-grid-7 {
        grid-template-columns: 1fr !important;
    }
    .card-grid-7 .stat-card {
        min-height: 112px !important;
        height: auto !important;
    }
}

/* V1.1.2.9 客户收款查询：日期选择/月度快捷/预收来源追踪 */
.customer-receipt-filter .filter-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 14px;
}
.customer-receipt-filter input[type="date"],
.customer-receipt-filter input[type="month"],
.customer-receipt-filter input[type="text"] {
  min-height: 38px;
}
.customer-receipt-filter .form-group-wide input {
  min-width: 220px;
}
.date-range-tip {
  margin-top: 10px;
  color: #6b7280;
  font-size: 13px;
}
.customer-receipt-summary-grid {
  grid-template-columns: repeat(5, minmax(170px, 1fr));
}
.customer-receipt-summary-grid .stat-card {
  min-height: 130px;
}
.clickable-card { cursor: pointer; }
.clickable-card:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(15,23,42,.12); }
.stat-hint {
  display: block;
  margin-top: 8px;
  color: #64748b;
  font-size: 12px;
}
.compact-table th,
.compact-table td {
  white-space: nowrap;
  font-size: 13px;
}
@media (max-width: 1180px) {
  .customer-receipt-summary-grid { grid-template-columns: repeat(3, minmax(160px, 1fr)); }
}
@media (max-width: 720px) {
  .customer-receipt-summary-grid { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .customer-receipt-filter .filter-form { align-items: stretch; }
  .customer-receipt-filter .form-group,
  .customer-receipt-filter .form-group-wide,
  .customer-receipt-filter button,
  .customer-receipt-filter a { width: 100%; }
}

/* V1.1.3.0 金额来源追踪增强版 */
.traceable-summary-grid .clickable-card{
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.traceable-summary-grid .clickable-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(15,23,42,.12);
}
.amount-source-wrapper{ margin-top:18px; }
.amount-source-panel{ border-left:4px solid #2563eb; }
.panel-title-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.btn-sm{ padding:6px 12px; font-size:13px; }
.alert-info{
  background:#eff6ff;
  color:#1e40af;
  border:1px solid #bfdbfe;
  border-radius:10px;
  padding:12px 14px;
  margin:14px 0;
}
.compact-table td,.compact-table th{ white-space:nowrap; }
.compact-table td:nth-child(6){ white-space:normal; min-width:260px; }

/* V1.1.3.2 客户欠款搜索 + 看板跳转 + 日报详情查找 */
.clickable-row { cursor: pointer; }
.clickable-row:hover { background: #f8fafc; }
.link-primary { color: #2563eb; text-decoration: none; font-weight: 600; }
.link-muted { color: #64748b; text-decoration: none; }
.link-danger { color: #dc2626; text-decoration: none; }
.link-primary:hover, .link-muted:hover, .link-danger:hover { text-decoration: underline; }
.detail-search-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid #e5e7eb;
    background: #fbfdff;
    flex-wrap: wrap;
}
.detail-search-bar input {
    min-width: 280px;
    max-width: 520px;
    flex: 1;
    height: 38px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 0 12px;
    font-size: 14px;
}
.detail-search-bar input:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}
.search-hit { background: #fff7ed !important; }
.text-center { text-align: center; }
@media (max-width: 640px) {
    .detail-search-bar input { min-width: 100%; }
}

/* V1.1.3.3 客户期初应收款识别确认 */
.opening-candidate-panel { border-left: 4px solid #f59e0b; }
.opening-candidate-panel .text-orange { color: #d97706; }
.opening-row-saved { background: #ecfdf5 !important; }
.muted-row { opacity: .55; }

/* V1.1.3.4 客户别名归并 + 客户欠款搜索栏优化 */
.customer-debt-filter .filter-form {
    align-items: center;
    flex-wrap: wrap;
}
.customer-debt-filter .customer-search-input {
    width: 460px;
    max-width: 100%;
    height: 42px;
    padding: 9px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 14px;
}
.customer-debt-filter .btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.alias-form {
    display: grid;
    grid-template-columns: 1.2fr 1.2fr 1fr .7fr auto;
    gap: 12px;
    align-items: end;
}
.alias-form .form-group { margin-bottom: 0; }
.alias-panel h3, .help-panel h3 { margin-bottom: 12px; }
@media (max-width: 900px) {
    .customer-debt-filter .customer-search-input { width: 100%; }
    .alias-form { grid-template-columns: 1fr; }
}

/* V1.1.3.5 日报报表批量选择 + 一键删除 */
.bulk-action-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 14px 0;
    padding: 12px 16px;
    border: 1px solid #fee2e2;
    border-radius: 12px;
    background: #fff7f7;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
}
.bulk-action-info {
    color: #334155;
    font-size: 14px;
    margin-right: auto;
}
.bulk-action-info strong { color: #dc2626; }
.report-list-table .select-col {
    width: 44px;
    text-align: center;
    vertical-align: middle;
}
.report-list-table input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}
@media (max-width: 768px) {
    .bulk-action-bar { flex-wrap: wrap; }
    .bulk-action-info { width: 100%; }
}

/* V1.1.3.7 账户余额管理页面版式优化 */
.account-card-grid-v1137{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.account-card-grid-v1137 .account-big-card{
  min-height:168px;
  padding:18px 18px 16px;
}
.account-card-grid-v1137 .account-card-top{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  min-height:28px;
}
.account-card-grid-v1137 .account-card-top strong{
  max-width:100%;
  line-height:1.25;
  word-break:keep-all;
  white-space:normal;
}
.account-card-grid-v1137 .badge{
  white-space:nowrap;
  margin-left:4px;
}
.account-card-grid-v1137 .account-current{
  font-size:26px;
  line-height:1.1;
  white-space:nowrap;
}
.account-big-card.active{
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
}
.account-month-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
.account-month-summary .summary-card{
  min-height:82px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.account-tabs-v1137{
  flex-wrap:wrap;
}
.account-tabs-v1137 .tab-btn{
  min-height:38px;
  padding:0 16px;
}
.account-flow-hint{
  padding:10px 12px;
  margin-bottom:12px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:10px;
  color:#64748b;
  font-size:13px;
}
.account-inline-sections{
  display:grid;
  gap:16px;
}
.account-inline-section h4{
  margin:8px 0 10px;
  font-size:15px;
  color:#0f172a;
}
.table-scroll-mini{
  overflow-x:auto;
  border:1px solid #eef2f7;
  border-radius:12px;
}
.account-adjust-empty{
  padding:22px;
  background:#f8fafc;
  border-radius:12px;
}
@media (max-width: 1280px){
  .account-card-grid-v1137{grid-template-columns:repeat(4,minmax(0,1fr));}
  .account-month-summary{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 980px){
  .account-card-grid-v1137{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 720px){
  .account-card-grid-v1137{grid-template-columns:repeat(2,minmax(0,1fr));}
  .account-month-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 520px){
  .account-card-grid-v1137{grid-template-columns:1fr;}
  .account-month-summary{grid-template-columns:1fr;}
}

/* V1.1.3.8 日报分类切换 */
.report-type-tabs { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:14px 0; padding:14px 16px; }
.report-type-tabs .btn { min-width: 110px; text-align:center; }
.report-list-table th, .report-list-table td { white-space: nowrap; }
@media (max-width: 768px) { .report-type-tabs .btn { flex:1 1 30%; min-width:90px; } }

/* V1.1.3.8.2 客户期初余额页面版式 */
.opening-topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}.compact-header{margin-bottom:0}.opening-search-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.opening-search-form input{width:min(420px,42vw);min-height:42px}.opening-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.opening-summary-grid .summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px 20px;box-shadow:0 3px 10px rgba(15,23,42,.05)}.opening-summary-grid span{display:block;color:#64748b;font-size:14px;margin-bottom:8px}.opening-summary-grid strong{font-size:24px}.opening-form-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr .9fr;gap:14px;align-items:end}.opening-form-grid .remark-field{grid-column:1/4}.opening-actions{display:flex;gap:10px;align-items:end}.opening-list-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.filter-pills{display:flex;gap:8px;flex-wrap:wrap}.filter-pill{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid #dbe3ef;border-radius:999px;color:#475569;background:#fff;text-decoration:none}.filter-pill.active{background:#2563eb;border-color:#2563eb;color:#fff}.sort-form{display:flex;align-items:center;gap:8px}.sort-form select{min-height:38px;border:1px solid #dbe3ef;border-radius:8px;padding:0 10px}.bulk-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:10px}.opening-table .check-col{width:42px}.opening-table .action-col{width:150px;white-space:nowrap}.opening-table .amount-cell{white-space:nowrap;font-weight:600}.source-short{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editing-row{background:#eff6ff!important;box-shadow:inset 4px 0 #2563eb}.edit-status{background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:5px 10px;font-size:12px}.empty-state{text-align:center;padding:35px;color:#94a3b8}.duplicate-report-alert{margin-bottom:18px}.duplicate-report-alert p{margin:6px 0}.duplicate-meta{font-size:13px;color:#64748b}.duplicate-choice-box{display:grid;gap:10px;padding:14px;border:1px solid #fed7aa;background:#fff7ed;border-radius:12px;margin-bottom:14px}.duplicate-choice{display:flex;gap:8px;align-items:center}.duplicate-choice.danger{color:#b91c1c;font-weight:600}
@media(max-width:980px){.opening-topbar{align-items:stretch;flex-direction:column}.opening-search-form input{width:100%}.opening-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.opening-form-grid .remark-field{grid-column:1/-1}.opening-actions{grid-column:1/-1}.opening-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.opening-summary-grid,.opening-form-grid{grid-template-columns:1fr}.opening-form-grid .remark-field,.opening-actions{grid-column:auto}.opening-actions .btn{flex:1}.opening-search-form>*{width:100%!important}.opening-list-toolbar{align-items:stretch}.sort-form{justify-content:space-between}.source-short{max-width:140px}}

/* V1.1.3.8.3 账户月度对账与差异定位 */
.panel-title-row,.reconcile-header{display:flex;align-items:center;justify-content:space-between;gap:18px}.account-reconcile-link{display:flex;justify-content:space-between;align-items:center;gap:12px;color:inherit;text-decoration:none}.account-reconcile-link span{font-size:12px;color:#2563eb}.reconcile-account-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.reconcile-account-card{display:block;border:1px solid #e5e7eb;border-left:4px solid #94a3b8;border-radius:12px;padding:14px;background:#fff;color:#111827;text-decoration:none;box-shadow:0 2px 8px rgba(15,23,42,.04)}.reconcile-account-card:hover,.reconcile-account-card.active{border-color:#2563eb;box-shadow:0 5px 16px rgba(37,99,235,.13)}.reconcile-account-card.ok{border-left-color:#22c55e}.reconcile-account-card.mismatch{border-left-color:#ef4444}.reconcile-account-card.unavailable{border-left-color:#f59e0b}.reconcile-card-head,.reconcile-card-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.reconcile-card-line{margin-top:8px;color:#64748b}.reconcile-card-line b{color:#111827}.reconcile-card-line.difference b{color:#dc2626}.reconcile-account-card small{display:block;margin-top:7px;color:#b45309}.reconcile-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.reconcile-mismatch-row{background:#fff7ed}.block-note{display:block;margin-top:4px;max-width:260px}.table-scroll{overflow-x:auto}
@media(max-width:1100px){.reconcile-account-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.panel-title-row,.reconcile-header{align-items:stretch;flex-direction:column}.reconcile-account-grid,.reconcile-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.reconcile-account-grid,.reconcile-summary-grid{grid-template-columns:1fr}}

/* V1.1.3.8.3.3 日报详情账户筛选 */
.detail-account-filter {
    margin: 0 0 14px;
    padding: 14px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f8fafc;
}
.detail-account-filter-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 10px;
}
.detail-account-filter-head .text-muted { margin-left: 10px; font-size: 13px; }
.detail-account-summary { font-weight: 700; color: #1d4ed8; text-align: right; }
.detail-account-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.account-filter-btn {
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    color: #374151;
    min-height: 34px;
    padding: 6px 12px;
    cursor: pointer;
    transition: all .15s ease;
}
.account-filter-btn:hover { border-color: #2563eb; color: #1d4ed8; }
.account-filter-btn.active { background: #2563eb; border-color: #2563eb; color: #fff; box-shadow: 0 2px 7px rgba(37,99,235,.22); }
.detail-filter-options { display: flex; gap: 18px; margin-top: 10px; color: #4b5563; font-size: 14px; }
.detail-filter-options label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.account-cell-selected { font-weight: 700; color: #1d4ed8; }
@media (max-width: 768px) {
    .detail-account-filter-head { align-items: flex-start; flex-direction: column; gap: 5px; }
    .detail-account-filter-head .text-muted { display: block; margin: 3px 0 0; }
    .detail-account-summary { text-align: left; }
    .detail-filter-options { flex-direction: column; gap: 8px; }
}

/* ===== V1.1.3.8.4.2 左侧导航栏 ===== */
:root { --sidebar-width: 232px; --sidebar-collapsed-width: 72px; }
.main-nav.sidebar-nav {
    position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); height: 100vh;
    padding: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start;
    background: #fff; border-right: 1px solid var(--gray-200); border-bottom: 0; box-shadow: 2px 0 10px rgba(15,23,42,.05); z-index: 1100;
    transition: width .22s ease, transform .22s ease;
}
.sidebar-brand { min-height: 68px; padding: 0 16px; justify-content: space-between; border-bottom: 1px solid var(--gray-100); flex-shrink: 0; }
.brand-main { display:flex; align-items:center; gap:8px; min-width:0; }
.sidebar-toggle { border: 0; background: var(--gray-100); color: var(--gray-600); width:34px; height:34px; border-radius:8px; cursor:pointer; font-size:18px; }
.sidebar-toggle:hover { color:var(--primary); background:#eaf1ff; }
.sidebar-scroll { overflow-y:auto; overflow-x:hidden; flex:1; padding:14px 10px; }
.nav-menu.sidebar-menu { display:block; list-style:none; width:100%; }
.sidebar-menu > li { margin-bottom:6px; }
.sidebar-menu a, .nav-group-title { width:100%; min-height:42px; display:flex; align-items:center; text-decoration:none; border-radius:9px; color:var(--gray-600); font-size:14px; font-weight:600; transition:.18s ease; }
.sidebar-menu .nav-single > a { padding:0 12px; gap:11px; }
.sidebar-menu a:hover, .sidebar-menu a.active, .nav-group-title:hover { background:#eef4ff; color:var(--primary); }
.sidebar-menu a.active { box-shadow: inset 3px 0 0 var(--primary); }
.nav-icon { width:24px; min-width:24px; text-align:center; font-size:17px; }
.nav-group-title { border:0; background:transparent; padding:0 12px; justify-content:space-between; cursor:pointer; font-family:inherit; }
.nav-group-title > span:first-child { display:flex; align-items:center; gap:11px; min-width:0; }
.group-arrow { font-size:16px; transition:transform .2s; }
.nav-group.group-open .group-arrow { transform:rotate(180deg); }
.nav-submenu { display:none; list-style:none; padding:4px 0 2px 36px; }
.nav-group.group-open .nav-submenu, .nav-group.group-active .nav-submenu { display:block; }
.nav-submenu li { margin:2px 0; }
.nav-submenu a { min-height:36px; padding:7px 10px; font-size:13px; font-weight:500; }
.pending-link::after { content:'待办'; margin-left:auto; padding:1px 6px; border-radius:10px; background:#fff1dc; color:#c66a00; font-size:10px; }
.sidebar-user { min-height:70px; padding:12px 14px; border-top:1px solid var(--gray-200); display:flex; align-items:center; justify-content:space-between; gap:8px; flex-shrink:0; }
.user-meta { display:flex; align-items:center; gap:9px; min-width:0; }
.user-avatar { width:34px; height:34px; border-radius:50%; background:#e8efff; color:var(--primary); display:grid; place-items:center; font-weight:700; flex-shrink:0; }
.user-text { min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.user-text strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.user-text small { color:var(--gray-400); font-size:11px; }
.sidebar-user .logout { flex-shrink:0; font-size:12px; }
body:not(.login-body) .main-content { margin-top:0; margin-left:var(--sidebar-width); margin-right:0; max-width:none; min-height:100vh; transition:margin-left .22s ease; }
.mobile-nav-bar, .sidebar-mask { display:none; }

body.sidebar-collapsed .sidebar-nav { width:var(--sidebar-collapsed-width); }
body.sidebar-collapsed .main-content { margin-left:var(--sidebar-collapsed-width); }
body.sidebar-collapsed .sidebar-brand { padding:0 10px; justify-content:center; }
body.sidebar-collapsed .brand-main .brand-text, body.sidebar-collapsed .brand-main .logo, body.sidebar-collapsed .nav-label, body.sidebar-collapsed .group-arrow, body.sidebar-collapsed .nav-submenu, body.sidebar-collapsed .user-text, body.sidebar-collapsed .sidebar-user .logout { display:none; }
body.sidebar-collapsed .desktop-toggle { display:block; }
body.sidebar-collapsed .sidebar-menu .nav-single > a, body.sidebar-collapsed .nav-group-title { padding:0; justify-content:center; }
body.sidebar-collapsed .nav-group-title > span:first-child { gap:0; }
body.sidebar-collapsed .nav-icon { width:42px; min-width:42px; }
body.sidebar-collapsed .sidebar-user { justify-content:center; padding:12px 8px; }

@media (max-width: 820px) {
    body:not(.login-body) { padding-top:56px; }
    .mobile-nav-bar { position:fixed; top:0; left:0; right:0; height:56px; padding:0 12px; background:#fff; border-bottom:1px solid var(--gray-200); display:flex; align-items:center; gap:12px; z-index:1050; box-shadow:var(--shadow-sm); }
    .mobile-brand { display:flex; gap:7px; align-items:baseline; flex:1; }
    .mobile-brand strong { color:var(--primary); }
    .mobile-brand span, .mobile-user { color:var(--gray-500); font-size:12px; }
    .main-nav.sidebar-nav, body.sidebar-collapsed .sidebar-nav { width:min(82vw, 280px); transform:translateX(-105%); }
    body.sidebar-mobile-open .sidebar-nav { transform:translateX(0); }
    .sidebar-mask { display:block; position:fixed; inset:0; background:rgba(15,23,42,.38); z-index:1090; opacity:0; visibility:hidden; transition:.2s; }
    body.sidebar-mobile-open .sidebar-mask { opacity:1; visibility:visible; }
    body:not(.login-body) .main-content, body.sidebar-collapsed .main-content { margin:0; padding:16px; }
    body.sidebar-collapsed .brand-main .brand-text, body.sidebar-collapsed .brand-main .logo, body.sidebar-collapsed .nav-label, body.sidebar-collapsed .group-arrow, body.sidebar-collapsed .user-text, body.sidebar-collapsed .sidebar-user .logout { display:initial; }
    body.sidebar-collapsed .nav-submenu { display:none; }
    body.sidebar-collapsed .nav-group.group-open .nav-submenu, body.sidebar-collapsed .nav-group.group-active .nav-submenu { display:block; }
    body.sidebar-collapsed .sidebar-brand { padding:0 16px; justify-content:space-between; }
    body.sidebar-collapsed .sidebar-menu .nav-single > a, body.sidebar-collapsed .nav-group-title { padding:0 12px; justify-content:space-between; }
    body.sidebar-collapsed .nav-group-title > span:first-child { gap:11px; }
    body.sidebar-collapsed .nav-icon { width:24px; min-width:24px; }
    body.sidebar-collapsed .sidebar-user { justify-content:space-between; padding:12px 14px; }
    .desktop-toggle { display:none; }
}

/* V1.1.3.8.4.3 左侧导航适配与宽表格优化 */
body:not(.login-body) .page-container,
body:not(.login-body) > .page-container {
    margin-left: var(--sidebar-width);
    width: auto;
    max-width: none;
    min-width: 0;
    padding: 22px 28px 40px;
    box-sizing: border-box;
    transition: margin-left .22s ease;
}
body.sidebar-collapsed:not(.login-body) .page-container,
body.sidebar-collapsed:not(.login-body) > .page-container {
    margin-left: var(--sidebar-collapsed-width);
}
body:not(.login-body) .main-content {
    width: auto;
    min-width: 0;
    padding: 22px 28px 40px;
    box-sizing: border-box;
}
.main-content > *, .page-container > * { min-width: 0; }
.table-responsive, .account-detail-panel, .panel { max-width: 100%; min-width: 0; }
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-responsive .data-table { min-width: 980px; width: 100%; }
.pending-table-wrap .data-table { min-width: 1080px; }
.account-detail-panel { padding: 18px 22px 26px; }
.account-detail-panel .table-responsive { margin-top: 10px; border-radius: 10px; }
.account-detail-panel .data-table th,
.account-detail-panel .data-table td { padding-left: 14px; padding-right: 14px; white-space: nowrap; }
.account-detail-panel .data-table th:first-child,
.account-detail-panel .data-table td:first-child { position: sticky; left: 0; background: #fff; z-index: 1; }
.backup-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.backup-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; flex-wrap:wrap; }
.backup-toolbar form { margin:0; }
@media (max-width: 820px) {
    body:not(.login-body) .page-container,
    body.sidebar-collapsed:not(.login-body) .page-container,
    body:not(.login-body) > .page-container,
    body.sidebar-collapsed:not(.login-body) > .page-container {
        margin-left: 0;
        width: 100%;
        padding: 76px 14px 28px;
    }
    body:not(.login-body) .main-content { padding:76px 14px 28px; }
}

/* ===== V1.1.3.8.4.4 页面阅读宽度与老板看板布局优化 ===== */
.dashboard-page {
    width: auto;
    min-width: 0;
}
.dashboard-page > * {
    width: 100%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
.dashboard-page .card-grid-4 {
    grid-template-columns: repeat(4, minmax(220px, 1fr));
    gap: 16px;
}
.dashboard-page .card-grid-3 {
    grid-template-columns: repeat(3, minmax(240px, 1fr));
    gap: 16px;
}
.dashboard-page .chart-card {
    height: 430px;
    padding: 20px 22px 24px;
    overflow: hidden;
}
.dashboard-page .chart-card canvas {
    width: 100% !important;
    height: 360px !important;
    max-height: 360px;
}
.dashboard-page .two-column {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 20px;
}
.dashboard-page .panel {
    overflow: hidden;
}
.dashboard-page .panel .data-table {
    width: 100%;
    table-layout: fixed;
}
.dashboard-page .panel .data-table th,
.dashboard-page .panel .data-table td {
    padding-left: 14px;
    padding-right: 14px;
}
@media (max-width: 1500px) {
    .dashboard-page .card-grid-4 { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
    .dashboard-page .card-grid-3 { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
}
@media (max-width: 1180px) {
    .dashboard-page .card-grid-4,
    .dashboard-page .card-grid-3 { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
    .dashboard-page .two-column { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .dashboard-page .card-grid-4,
    .dashboard-page .card-grid-3 { grid-template-columns: 1fr; }
    .dashboard-page .chart-card { height: 340px; padding: 16px; }
    .dashboard-page .chart-card canvas { height: 280px !important; max-height: 280px; }
}

/* ===== V1.1.3.8.4.5 全站框架居中与内容间距统一 ===== */
:root {
    --app-shell-max-width: 1680px;
    --app-shell-edge-gap: 16px;
    --app-shell-left: max(var(--app-shell-edge-gap), calc((100vw - var(--app-shell-max-width)) / 2));
    --app-shell-width: min(calc(100vw - (var(--app-shell-edge-gap) * 2)), var(--app-shell-max-width));
}

html, body { max-width: 100%; overflow-x: hidden; }

/* 导航栏和内容区共用同一个居中框架，二者之间不留额外空白 */
.main-nav.sidebar-nav {
    left: var(--app-shell-left);
    right: auto;
}

body:not(.login-body) .main-content,
body:not(.login-body) .page-container,
body:not(.login-body) > .page-container {
    margin-left: calc(var(--app-shell-left) + var(--sidebar-width));
    margin-right: 0;
    width: calc(var(--app-shell-width) - var(--sidebar-width));
    max-width: none;
    min-width: 0;
    padding: 22px 28px 40px;
    box-sizing: border-box;
}

body.sidebar-collapsed:not(.login-body) .main-content,
body.sidebar-collapsed:not(.login-body) .page-container,
body.sidebar-collapsed:not(.login-body) > .page-container {
    margin-left: calc(var(--app-shell-left) + var(--sidebar-collapsed-width));
    width: calc(var(--app-shell-width) - var(--sidebar-collapsed-width));
}

/* 页面内部不再单独二次居中，避免导航栏和内容区之间出现空白 */
body:not(.login-body) .main-content > .dashboard-inner,
body:not(.login-body) .main-content > .content-inner,
body:not(.login-body) .page-container > .content-inner {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

/* 所有宽表格只在自己的容器内滚动 */
body:not(.login-body) .table-responsive,
body:not(.login-body) .pending-table-wrap,
body:not(.login-body) .account-detail-panel,
body:not(.login-body) .panel {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

@media (max-width: 820px) {
    :root {
        --app-shell-left: 0px;
        --app-shell-width: 100vw;
    }
    .main-nav.sidebar-nav,
    body.sidebar-collapsed .sidebar-nav {
        left: 0;
    }
    body:not(.login-body) .main-content,
    body.sidebar-collapsed:not(.login-body) .main-content,
    body:not(.login-body) .page-container,
    body.sidebar-collapsed:not(.login-body) .page-container,
    body:not(.login-body) > .page-container,
    body.sidebar-collapsed:not(.login-body) > .page-container {
        margin-left: 0;
        width: 100%;
        padding: 76px 14px 28px;
    }
}


/* ===== V1.1.3.8.4.6 重点页面版式精修与统一适配 ===== */
body:not(.login-body) .main-content.focus-page {
    padding: 20px 24px 36px;
}
body:not(.login-body) .main-content.focus-page > * {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
body:not(.login-body) .main-content.focus-page .page-header {
    margin-bottom: 16px;
}
body:not(.login-body) .main-content.focus-page .panel,
body:not(.login-body) .main-content.focus-page .filter-bar {
    border-radius: 14px;
}

/* 日报日历：修复左侧遮挡并收窄阅读宽度 */
.report-calendar-page {
    max-width: none !important;
    margin: 0 !important;
    padding: 20px 24px 36px !important;
}
.report-calendar-page > * { max-width: 1280px; }
.report-calendar-page .calendar-toolbar { margin-top: 14px; }
.report-calendar-page .calendar-shell { width: 100%; }
.report-calendar-page .report-calendar { min-width: 960px; }
.report-calendar-page .report-calendar td { height: 118px; padding: 8px; }
.report-calendar-page .report-status { padding: 8px 9px; margin-top: 6px; }

/* 客户别名：表单与列表控制在舒适阅读宽度 */
.alias-page-v11406 .alias-panel,
.alias-page-v11406 .filter-bar,
.alias-page-v11406 > .panel,
.alias-page-v11406 .help-panel { max-width: 1120px; }
.alias-page-v11406 .alias-form {
    grid-template-columns: minmax(240px,1.2fr) minmax(220px,1fr) minmax(260px,1.1fr) 140px auto;
    gap: 14px;
    align-items: end;
}
.alias-page-v11406 .alias-form .btn { min-width: 104px; }
.alias-page-v11406 .filter-form { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.alias-page-v11406 .customer-search-input { width:min(420px,100%); }
.alias-page-v11406 .data-table th,
.alias-page-v11406 .data-table td { padding: 12px 14px; }
.alias-page-v11406 .data-table th:last-child,
.alias-page-v11406 .data-table td:last-child { width: 110px; text-align:center; }

/* 客户期初：顶部、表单和列表密度统一 */
.opening-page-v11406 > * { max-width: 1280px; }
.opening-page-v11406 .opening-topbar { align-items:center; }
.opening-page-v11406 .opening-search-form input { width: 380px; }
.opening-page-v11406 .opening-summary-grid { gap: 12px; }
.opening-page-v11406 .opening-summary-grid .summary-card { padding: 16px 18px; }
.opening-page-v11406 .opening-form-grid {
    grid-template-columns: 1.35fr 1fr 1fr .9fr;
    gap: 12px;
}
.opening-page-v11406 .opening-editor,
.opening-page-v11406 .opening-list-panel { padding: 18px 20px; }
.opening-page-v11406 .opening-table th,
.opening-page-v11406 .opening-table td { padding: 11px 13px; }

/* 物流代收：三段式紧凑布局 */
.logistics-page-v11406 > * { max-width: 1280px; }
.logistics-page-v11406 .panel { padding: 18px 20px; margin-bottom: 16px; }
.logistics-page-v11406 .compact-table th,
.logistics-page-v11406 .compact-table td { padding: 10px 12px; }
.logistics-page-v11406 .form-grid.logistics-adjust-form {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 14px 18px;
}
.logistics-page-v11406 .form-grid .form-group-wide { grid-column: 1 / -1; }
.logistics-page-v11406 .logistics-adjust-form .form-group:last-child { margin-top: 0; }
.logistics-page-v11406 .table-scroll { max-height: 560px; overflow:auto; }
.logistics-page-v11406 .table-scroll .data-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8fafc;
}

@media (max-width: 1100px) {
    .alias-page-v11406 .alias-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .alias-page-v11406 .alias-form .btn { width: fit-content; }
    .opening-page-v11406 .opening-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .opening-page-v11406 .opening-form-grid .remark-field,
    .opening-page-v11406 .opening-actions { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
    body:not(.login-body) .main-content.focus-page,
    .report-calendar-page { padding: 76px 14px 28px !important; }
    .alias-page-v11406 .alias-form,
    .opening-page-v11406 .opening-form-grid,
    .logistics-page-v11406 .form-grid.logistics-adjust-form { grid-template-columns: 1fr; }
    .alias-page-v11406 .alias-form .btn,
    .opening-page-v11406 .opening-actions,
    .logistics-page-v11406 .form-grid .form-group-wide { grid-column: auto; }
    .opening-page-v11406 .opening-search-form input { width: 100%; }
    .report-calendar-page .calendar-toolbar { align-items:flex-start; flex-direction:column; }
}


/* ===== V1.1.3.8.4.6.1 左侧导航定位与日历遮挡修复 ===== */
/* 桌面端：侧栏与主内容使用同一套壳层坐标，禁止日历页再次独立居中。 */
body:not(.login-body) .main-content.report-calendar-page {
    margin-left: calc(var(--app-shell-left) + var(--sidebar-width)) !important;
    width: calc(var(--app-shell-width) - var(--sidebar-width)) !important;
    max-width: none !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}
body.sidebar-collapsed:not(.login-body) .main-content.report-calendar-page {
    margin-left: calc(var(--app-shell-left) + var(--sidebar-collapsed-width)) !important;
    width: calc(var(--app-shell-width) - var(--sidebar-collapsed-width)) !important;
}
body:not(.login-body) .main-content.report-calendar-page > * {
    width: 100%;
    max-width: 1280px;
    margin-left: 0;
    margin-right: auto;
}
@media (max-width: 820px) {
    body:not(.login-body) .main-content.report-calendar-page,
    body.sidebar-collapsed:not(.login-body) .main-content.report-calendar-page {
        margin-left: 0 !important;
        width: 100% !important;
        padding: 76px 14px 28px !important;
    }
}
\n\n/* V1.1.3.8.4.6.2 日报详情前后跳转 */\n.report-detail-header {\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 18px;\n}\n.report-day-navigation {\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n    gap: 10px;\n    flex-wrap: wrap;\n    padding-top: 2px;\n}\n.report-day-navigation .btn {\n    min-width: 94px;\n    text-align: center;\n    white-space: nowrap;\n}\n.report-day-navigation .report-list-btn {\n    border: 1px solid #d7dce5;\n    background: #fff;\n    color: #344054;\n}\n.report-day-navigation .disabled {\n    opacity: .45;\n    cursor: not-allowed;\n    pointer-events: none;\n}\n@media (max-width: 760px) {\n    .report-detail-header {\n        display: block;\n    }\n    .report-day-navigation {\n        justify-content: flex-start;\n        margin-top: 12px;\n    }\n    .report-day-navigation .btn {\n        flex: 1 1 auto;\n        min-width: 86px;\n    }\n}\n
/* V1.1.3.8.4.6.3 待确认日报新旧差异对比 */
.pending-diff-page{max-width:1440px;margin:0 auto}.pending-diff-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.pending-diff-actions{display:flex;gap:8px;flex-wrap:wrap}.pending-diff-actions form{margin:0}.pending-diff-stats{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;margin-bottom:18px}.pending-diff-stats .stat-card{background:#fff;border:1px solid #e8ecf3;border-radius:12px;padding:16px 18px;box-shadow:0 4px 14px rgba(31,45,61,.05)}.pending-diff-stats span{display:block;color:#7a8495;font-size:13px;margin-bottom:8px}.pending-diff-stats strong{font-size:20px}.pending-tabs{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pending-tabs>div{display:flex;gap:8px;flex-wrap:wrap}.pending-tab{display:none}.pending-tab.active{display:block}.pending-diff-table{min-width:1180px}.diff-added{background:#f0fbf5}.diff-modified{background:#fff9e8}.diff-deleted{background:#fff1f1}.diff-badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px}.diff-badge.added{background:#dff6e8;color:#16834a}.diff-badge.modified{background:#fff0bd;color:#9b6a00}.diff-badge.deleted{background:#ffdede;color:#bc2f2f}.text-success{color:#159957}.text-danger{color:#dc3f45}.compact-table td,.compact-table th{padding:10px 12px}.btn-outline{background:#fff;border:1px solid #2673e8;color:#2673e8}.btn-outline:hover{background:#eef5ff}
@media(max-width:900px){.pending-diff-header{display:block}.pending-diff-actions{margin-top:12px}.pending-diff-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pending-diff-stats{grid-template-columns:1fr}}


/* ===== V1.1.3.8.4.6.4 重复日报提交说明与横向确认区 ===== */
.confirm-section-wide{display:block;margin-top:24px;width:100%;}
.confirm-card-wide{max-width:none;width:100%;text-align:left;padding:24px 28px;box-shadow:var(--shadow);}
.confirm-wide-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px;}
.confirm-wide-head h3{margin:0 0 6px;font-size:20px;}
.confirm-wide-head p{margin:0;}
.confirm-clerk-meta{display:flex;gap:18px;flex-wrap:wrap;align-items:center;background:var(--gray-50);padding:10px 14px;border-radius:var(--radius);white-space:nowrap;}
.change-reason-block{margin-bottom:18px;}
.change-reason-block label,.confirm-code-field label{display:block;font-weight:700;color:var(--gray-700);margin-bottom:8px;}
.change-reason-block textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--gray-300);border-radius:var(--radius);padding:12px 14px;font:inherit;line-height:1.55;background:#fff;}
.change-reason-block textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.field-help{display:flex;justify-content:space-between;gap:16px;color:var(--gray-500);font-size:12px;margin-top:6px;}
.required-mark{color:var(--danger);}
.confirm-wide-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;}
.confirm-code-field{min-width:280px;max-width:360px;}
.confirm-card-wide .confirm-input{max-width:none;width:100%;margin:0;font-size:18px;letter-spacing:8px;text-align:center;padding:12px 14px;}
.confirm-card-wide .confirm-actions{display:flex;gap:12px;justify-content:flex-end;background:transparent;color:inherit;}
.pending-reason-cell{max-width:320px;white-space:normal;line-height:1.5;color:var(--gray-600);}
.pending-change-reason{margin-bottom:16px;}
.pending-change-reason-body{padding:16px 20px;line-height:1.7;white-space:pre-wrap;color:var(--gray-700);background:#fffdf4;border-top:1px solid #f3e7b3;}
@media(max-width:768px){.confirm-wide-head,.confirm-wide-row{flex-direction:column;align-items:stretch}.confirm-clerk-meta{white-space:normal}.confirm-code-field{min-width:0;max-width:none}.confirm-card-wide .confirm-actions{justify-content:stretch}.confirm-card-wide .confirm-actions .btn{flex:1}.confirm-card-wide{padding:20px}.field-help{flex-direction:column;gap:4px}}


/* ===== V1.1.3.8.4.6.5 客户欠款明细固定表头 ===== */
.debt-detail-page-v114065 > * {
    width: 100%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
.debt-detail-page-v114065 .debt-table-scroll {
    position: relative;
    max-height: calc(100vh - 190px);
    min-height: 360px;
    overflow: auto;
    padding: 0;
    scrollbar-gutter: stable;
}
.debt-detail-page-v114065 .debt-detail-table {
    min-width: 1320px;
    border-collapse: separate;
    border-spacing: 0;
}
.debt-detail-page-v114065 .debt-detail-table thead th {
    position: sticky;
    top: 0;
    z-index: 8;
    background: #f8fafc;
    box-shadow: inset 0 -1px 0 #e5e7eb, 0 2px 6px rgba(15, 23, 42, .06);
    white-space: nowrap;
}
.debt-detail-page-v114065 .debt-detail-table th,
.debt-detail-page-v114065 .debt-detail-table td {
    padding: 12px 14px;
    vertical-align: middle;
}
.debt-detail-page-v114065 .debt-detail-table .sticky-col {
    position: sticky;
    background: #fff;
}
.debt-detail-page-v114065 .debt-detail-table .sticky-col-date {
    left: 0;
    width: 116px;
    min-width: 116px;
    max-width: 116px;
    z-index: 5;
}
.debt-detail-page-v114065 .debt-detail-table .sticky-col-customer {
    left: 116px;
    width: 190px;
    min-width: 190px;
    max-width: 190px;
    z-index: 5;
    box-shadow: 3px 0 6px rgba(15, 23, 42, .05);
}
.debt-detail-page-v114065 .debt-detail-table thead .sticky-col {
    z-index: 12;
    background: #f8fafc;
}
.debt-detail-page-v114065 .debt-detail-table tbody tr:nth-child(even) .sticky-col {
    background: #fbfcfe;
}
.debt-detail-page-v114065 .debt-detail-table tbody tr:hover td,
.debt-detail-page-v114065 .debt-detail-table tbody tr:hover .sticky-col {
    background: #f4f8ff;
}
.debt-detail-page-v114065 .debt-detail-table th:nth-child(10),
.debt-detail-page-v114065 .debt-detail-table td:nth-child(10) {
    background: #fffaf0;
}
.debt-detail-page-v114065 .debt-detail-table tbody tr:hover td:nth-child(10) {
    background: #fff3d8;
}
.debt-detail-page-v114065 > .btn {
    margin-top: 16px;
}
@media (max-width: 820px) {
    .debt-detail-page-v114065 .debt-table-scroll {
        max-height: calc(100vh - 210px);
        min-height: 320px;
    }
    .debt-detail-page-v114065 .debt-detail-table .sticky-col-customer {
        position: static;
        box-shadow: none;
    }
    .debt-detail-page-v114065 .debt-detail-table .sticky-col-date {
        left: 0;
    }
}

/* V1.1.3.8.4.6.6：客户欠款月度明细与精简表格 */
.debt-detail-page-v114066 { max-width: 1320px; }
.debt-month-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:16px; }
.debt-month-header h2 { margin:0 0 6px; }
.debt-month-toolbar { display:flex; align-items:center; justify-content:center; gap:18px; padding:12px 16px; margin-bottom:16px; }
.debt-month-title { min-width:130px; text-align:center; font-size:18px; }
.btn.is-disabled { opacity:.45; cursor:not-allowed; pointer-events:none; }
.debt-month-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.debt-month-summary-grid .summary-card { background:#fff; border:1px solid #e8edf4; border-radius:12px; padding:14px 16px; box-shadow:0 2px 8px rgba(15,23,42,.04); }
.debt-month-summary-grid .summary-card span { display:block; color:#64748b; font-size:13px; margin-bottom:8px; }
.debt-month-summary-grid .summary-card strong { display:block; font-size:20px; color:#172033; }
.debt-month-summary-grid .summary-card-emphasis { background:#fff9e8; border-color:#f4df9c; }
.debt-month-table-scroll { max-height:calc(100vh - 320px); min-height:360px; }
.debt-month-table { min-width:1180px; }
.debt-month-table th,.debt-month-table td { padding:12px 10px; vertical-align:top; }
.debt-month-table .sticky-col-date { left:0; min-width:104px; width:104px; }
.debt-month-table .debt-doc-col { min-width:180px; max-width:230px; white-space:normal; line-height:1.55; }
.debt-month-table .debt-note-col { min-width:320px; width:34%; white-space:normal; line-height:1.55; }
.debt-month-table .debt-end-col { background:#fff9e8; }
.debt-month-table tfoot th { position:sticky; bottom:0; z-index:4; background:#f5f8fc; border-top:2px solid #dce4ee; }
.debt-month-table tfoot .sticky-col-date { z-index:6; }
.empty-cell { text-align:center; color:#94a3b8; padding:48px 16px !important; }
@media (max-width: 1100px) { .debt-month-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 720px) {
  .debt-month-header { display:block; }
  .debt-month-header .btn { margin-top:10px; }
  .debt-month-summary-grid { grid-template-columns:1fr; }
  .debt-month-toolbar { gap:8px; }
  .debt-month-title { min-width:100px; font-size:16px; }
}

/* V1.1.3.8.4.6.7 客户收款查询分页与性能修复 */
.customer-receipts-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin: 16px 0 28px;
}
.customer-receipts-pagination .pagination-actions {
    display: flex;
    gap: 10px;
}
.customer-receipts-pagination .disabled {
    opacity: .45;
    pointer-events: none;
}
@media (max-width: 768px) {
    .customer-receipts-pagination {
        align-items: stretch;
        flex-direction: column;
    }
}

/* V1.1.3.8.4.6.8 客户欠款缓存与分页 */
.customer-cache-time{margin-top:4px;font-size:13px;}
.customer-debt-filter .compact-select{width:120px;min-width:120px;}

/* V1.1.3.8.4.7.0 账户余额按需加载与月度账页 */
.account-summary-page-v114070,.account-ledger-page-v114070{max-width:1440px;margin:0 auto;}
.account-card-link-hint{margin-top:12px;padding-top:10px;border-top:1px dashed #e5e7eb;color:#2563eb;font-size:13px;font-weight:600;}
.account-summary-empty-panel{margin-top:18px;}
.empty-state-compact{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:110px;padding:24px;text-align:center;color:#64748b;}
.empty-state-compact strong{color:#1f2937;font-size:16px;}
.account-ledger-head-cards{grid-template-columns:repeat(3,minmax(0,1fr));}
.account-ledger-month-panel,.account-ledger-detail-panel{margin-top:18px;}
.account-ledger-month-table th,.account-ledger-month-table td{white-space:nowrap;}
.account-ledger-month-table .active-month-row{background:#eff6ff;}
.account-ledger-month-table tbody tr:hover{background:#f8fafc;}
.account-ledger-detail-panel{scroll-margin-top:20px;}
.account-month-summary.compact{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px;}
@media(max-width:900px){.account-ledger-head-cards,.account-month-summary.compact{grid-template-columns:1fr;}.page-actions{display:flex;gap:8px;flex-wrap:wrap;}}

/* ==================== V1.1.3.8.4.7.1 账户月度账页嵌入与分级明细 ==================== */
.account-summary-page-v114071 .account-card-selected {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .12), 0 10px 24px rgba(15, 23, 42, .08);
}
.account-summary-page-v114071 .account-card-badges { display:flex; gap:6px; align-items:center; }
.embedded-account-ledger-panel { margin-top:18px; }
.embedded-ledger-header { align-items:center; }
.embedded-ledger-head-cards { grid-template-columns:repeat(3,minmax(180px,1fr)); margin-bottom:16px; }
.account-ledger-table-wrap { width:100%; overflow-x:auto; }
.account-ledger-month-table-v114071 { width:100%; table-layout:fixed; min-width:980px; }
.account-ledger-month-table-v114071 col.col-month { width:15%; }
.account-ledger-month-table-v114071 col.col-money { width:14%; }
.account-ledger-month-table-v114071 col.col-action { width:15%; }
.account-ledger-month-table-v114071 th,
.account-ledger-month-table-v114071 td { vertical-align:middle; }
.account-ledger-month-table-v114071 th:not(:first-child),
.account-ledger-month-table-v114071 td.money-cell { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.account-ledger-month-table-v114071 th:last-child,
.account-ledger-month-table-v114071 td:last-child { text-align:center; }
.account-daily-modal { z-index:2200; }
.account-daily-modal .modal-content-wide { width:min(1100px, calc(100vw - 48px)); max-width:1100px; max-height:78vh; overflow:hidden; padding:22px; }
.modal-title-row { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:14px; }
.modal-close-btn { border:0; background:#f1f5f9; width:34px; height:34px; border-radius:8px; cursor:pointer; font-size:22px; }
.daily-summary-table-wrap { max-height:58vh; overflow:auto; }
.daily-summary-table thead th { position:sticky; top:0; z-index:2; background:#f8fafc; }
.daily-summary-table th:not(:first-child), .daily-summary-table td.money-cell { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.daily-summary-table th:last-child, .daily-summary-table td:last-child { text-align:center; }
.account-day-detail-page-v114071 .panel { margin-top:16px; }
@media (max-width: 900px) {
  .embedded-ledger-head-cards { grid-template-columns:1fr; }
  .account-daily-modal .modal-content-wide { width:100vw; max-width:none; height:100vh; max-height:none; border-radius:0; }
  .daily-summary-table-wrap { max-height:calc(100vh - 150px); }
}


/* ===== V1.1.3.8.4.7.2 左上品牌区对齐精修版 ===== */
.sidebar-brand {
    min-height: 72px;
    padding: 7px 14px 7px 16px;
    align-items: center;
}
.sidebar-brand .brand-main-stacked {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    line-height: 1;
}
.sidebar-brand .brand-main-stacked .logo {
    display: block;
    font-size: 19px;
    line-height: 1.05;
    letter-spacing: .8px;
    white-space: nowrap;
}
.sidebar-brand .brand-main-stacked .brand-text {
    display: block;
    margin: 0;
    padding-left: 1px;
    font-size: 12px;
    line-height: 1.15;
    font-weight: 500;
    color: var(--gray-500);
    white-space: nowrap;
}
.sidebar-brand .desktop-toggle {
    flex: 0 0 34px;
    align-self: center;
}
body.sidebar-collapsed .sidebar-brand {
    min-height: 68px;
    padding: 0 10px;
}
@media (max-width: 820px) {
    .sidebar-brand { min-height: 68px; padding: 7px 16px; }
    .sidebar-brand .brand-main-stacked { display:flex; }
}


/* ===== V1.1.3.8.4.7.3 左上品牌名称与字号优化版 ===== */
.sidebar-brand .brand-main-stacked {
    gap: 3px;
}
.sidebar-brand .brand-main-stacked .brand-text {
    padding-left: 0;
    font-size: 17px;
    line-height: 1.05;
    font-weight: 700;
    color: var(--gray-700);
    letter-spacing: .15px;
    white-space: nowrap;
}
@media (max-width: 820px) {
    .mobile-brand { min-width: 0; white-space: nowrap; }
    .mobile-brand strong { font-size: 16px; line-height: 1; }
    .mobile-brand span { font-size: 14px; line-height: 1; font-weight: 700; color: var(--gray-600); }
}

/* ===== V1.1.3.8.4.7.4 老板看板资金优先与加载提速版 ===== */
.dashboard-funds-first .dashboard-section {
    background: #fff;
    border: 1px solid #e8edf5;
    border-radius: 14px;
    box-shadow: 0 5px 18px rgba(31, 45, 61, .045);
    padding: 18px;
    margin-bottom: 18px;
}
.dashboard-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 15px;
}
.dashboard-section-header.compact { margin-bottom: 13px; }
.dashboard-section-header h3 { margin: 0; font-size: 17px; color: #1f2937; }
.dashboard-section-header p { margin: 5px 0 0; color: #7b8494; font-size: 13px; }

.balance-priority-section {
    background: linear-gradient(180deg, #fbfdff 0%, #fff 100%) !important;
    border-color: #dbe8ff !important;
}
.account-balance-tags {
    display: grid;
    grid-template-columns: repeat(5, minmax(170px, 1fr));
    gap: 12px;
}
.account-balance-tag {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 15px;
    border: 1px solid #dce7f8;
    border-left: 4px solid #3b82f6;
    border-radius: 11px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.account-balance-tag:hover {
    transform: translateY(-2px);
    border-color: #9fc1f8;
    box-shadow: 0 8px 20px rgba(59, 130, 246, .12);
}
.account-balance-tag.is-negative { border-left-color: #ef4444; background: #fffafa; }
.account-tag-topline { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
.account-tag-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; font-size: 14px; color: #283447; }
.account-tag-type { flex: 0 0 auto; border-radius: 999px; padding: 2px 7px; font-size: 11px; }
.account-tag-type-receipt { color: #2563eb; background: #eaf2ff; }
.account-tag-type-payment { color: #dc2626; background: #fff0f0; }
.account-tag-amount { font-size: 20px; line-height: 1.2; color: #14804a; white-space: nowrap; }
.account-balance-tag.is-negative .account-tag-amount { color: #dc2626; }
.account-tag-hint { font-size: 11px; color: #9aa3b2; }

.today-summary-section .card-grid-4,
.today-summary-section .card-grid-3 { margin-bottom: 14px; }
.today-summary-section .card-grid-3 { margin-bottom: 0; }

.dashboard-funds-first .chart-section { padding: 0; background: transparent; border: 0; box-shadow: none; }
.dashboard-funds-first .chart-card { margin: 0; }
.chart-loading {
    height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8a94a5;
    font-size: 14px;
    background: linear-gradient(90deg, #f7f9fc 25%, #fbfcfe 50%, #f7f9fc 75%);
    border-radius: 10px;
}
.chart-loading[hidden] {
    display: none !important;
}

.debt-top-tags {
    display: grid;
    grid-template-columns: repeat(5, minmax(180px, 1fr));
    gap: 12px;
}
.debt-top-tag {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 14px 15px;
    border: 1px solid #f1d7d9;
    border-radius: 11px;
    background: linear-gradient(180deg, #fff 0%, #fffafa 100%);
    color: inherit;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.debt-top-tag:hover {
    transform: translateY(-2px);
    border-color: #efadb2;
    box-shadow: 0 8px 20px rgba(220, 38, 38, .09);
}
.debt-rank { width: max-content; font-size: 11px; padding: 2px 8px; border-radius: 999px; color: #b4232d; background: #ffe8ea; }
.debt-customer-name { min-height: 38px; font-size: 14px; line-height: 1.35; color: #235fb4; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.debt-amount { font-size: 18px; font-weight: 800; color: #dc2626; white-space: nowrap; }
.debt-last-date { font-size: 11px; color: #929baa; }
.dashboard-empty { grid-column: 1 / -1; padding: 24px; text-align: center; color: #8b95a5; background: #f8fafc; border-radius: 10px; }

@media (max-width: 1480px) {
    .account-balance-tags,
    .debt-top-tags { grid-template-columns: repeat(4, minmax(170px, 1fr)); }
}
@media (max-width: 1120px) {
    .account-balance-tags,
    .debt-top-tags { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
}
@media (max-width: 780px) {
    .dashboard-funds-first .dashboard-section { padding: 14px; }
    .dashboard-section-header { align-items: flex-start; }
    .account-balance-tags,
    .debt-top-tags { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    .account-balance-tag,
    .debt-top-tag { padding: 12px; }
    .account-tag-amount { font-size: 17px; }
    .debt-amount { font-size: 16px; }
    .chart-loading { height: 250px; }
}
@media (max-width: 460px) {
    .account-balance-tags,
    .debt-top-tags { grid-template-columns: 1fr; }
}

/* V1.1.3.8.4.7.5 费用管理 */
.expense-page{padding-bottom:48px}.expense-page .page-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.expense-page .page-header h1{margin:0 0 5px}.expense-page .page-header p{margin:0;color:#7b8494}.expense-form-card{margin-bottom:18px}.expense-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.expense-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#596273}.expense-form-grid input,.expense-form-grid select{height:40px;border:1px solid #dfe4ec;border-radius:8px;padding:0 10px;background:#fff}.expense-form-grid .span-2{grid-column:span 2}.check-row{flex-direction:row!important;align-items:center}.check-row input{height:auto}.form-actions{display:flex;gap:10px}.section-head,.month-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.month-nav a{color:#356bd8;text-decoration:none}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid #e3e7ee;border-radius:12px;padding:18px;box-shadow:0 2px 10px rgba(30,50,80,.04)}.stat-card small{display:block;color:#7a8494;margin-bottom:8px}.stat-card b{font-size:23px}.expense-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px}.category-list>div{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:11px 0;border-bottom:1px solid #edf0f4}.category-list small{color:#8a93a1}.money{font-weight:700;color:#d64045}.status-pill{padding:3px 8px;border-radius:999px;font-size:12px}.status-pill.confirmed{background:#e8f7ee;color:#1f9254}.status-pill.pending{background:#fff3d9;color:#a86b00}.actions{display:flex;gap:8px}.actions form{display:inline}.link-btn{border:0;background:none;color:#356bd8;cursor:pointer}.link-btn.danger{color:#d64045}.empty{text-align:center;color:#929aa8;padding:28px!important}
@media(max-width:1000px){.expense-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-layout{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.expense-page .page-header{align-items:flex-start;flex-direction:column}.expense-form-grid{grid-template-columns:1fr}.expense-form-grid .span-2{grid-column:span 1}.stat-grid{grid-template-columns:1fr}.month-nav{flex-wrap:wrap}}

/* ===== V1.1.3.8.4.7.5.1 费用管理页面布局统一 ===== */
body:not(.login-body) .main-content.expense-management-page {
    width: auto;
    max-width: none;
    min-width: 0;
    padding: 24px 28px 42px;
    background: #f7f9fc;
}
.expense-management-page * { min-width: 0; }
.expense-management-page .expense-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}
.expense-management-page .expense-page-header h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.35;
    color: #172033;
}
.expense-management-page .expense-page-subtitle {
    margin: 6px 0 0;
    color: #7a8495;
    font-size: 14px;
}
.expense-management-page .expense-month-nav,
.expense-management-page .expense-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.expense-management-page .expense-current-month {
    min-width: 88px;
    text-align: center;
    font-size: 16px;
    color: #25304a;
}
.expense-management-page .expense-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(210px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.expense-management-page .expense-summary-grid-3 {
    grid-template-columns: repeat(3, minmax(220px, 1fr));
}
.expense-management-page .expense-summary-card {
    display: block;
    min-height: 94px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid #e5eaf2;
    border-left: 4px solid #4c8df6;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(31, 45, 61, .045);
}
.expense-management-page .expense-summary-card:hover {
    transform: none;
    box-shadow: 0 5px 16px rgba(31, 45, 61, .07);
}
.expense-management-page .expense-summary-card span {
    display: block;
    color: #778194;
    font-size: 13px;
    margin-bottom: 8px;
}
.expense-management-page .expense-summary-card strong {
    display: block;
    color: #182238;
    font-size: 23px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.expense-management-page .expense-summary-total { border-left-color: #7b61e8; }
.expense-management-page .expense-panel {
    width: 100%;
    margin: 0 0 18px;
    padding: 0;
    background: #fff;
    border: 1px solid #e5eaf2;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(31, 45, 61, .045);
    overflow: hidden;
}
.expense-management-page .expense-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 17px 20px;
    border-bottom: 1px solid #edf1f6;
}
.expense-management-page .expense-panel-header h3 {
    margin: 0;
    color: #202b40;
    font-size: 17px;
}
.expense-management-page .expense-panel-header p {
    margin: 3px 0 0;
    color: #8992a2;
    font-size: 12px;
}
.expense-management-page .expense-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 0;
    padding: 8px 20px 18px;
}
.expense-management-page .expense-category-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
    padding: 14px 12px;
    border-bottom: 1px solid #eef1f5;
}
.expense-management-page .expense-category-item span {
    color: #4f596b;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.expense-management-page .expense-category-item strong { color: #263247; }
.expense-management-page .expense-category-item small {
    grid-column: 2;
    color: #929baa;
    text-align: right;
}
.expense-management-page .expense-table-wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.expense-management-page .expense-data-table {
    width: 100%;
    min-width: 920px;
    border-collapse: collapse;
    table-layout: auto;
}
.expense-management-page .expense-data-table th,
.expense-management-page .expense-data-table td {
    padding: 12px 16px;
    border-bottom: 1px solid #edf1f5;
    color: #4a5568;
    font-size: 13px;
    line-height: 1.45;
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
}
.expense-management-page .expense-data-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f7f9fc;
    color: #5b6577;
    font-weight: 600;
}
.expense-management-page .expense-data-table tbody tr:hover { background: #fafcff; }
.expense-management-page .expense-text-right { text-align: right !important; }
.expense-management-page .expense-money { color: #dd3f45; font-weight: 700; }
.expense-management-page .expense-source-badge,
.expense-management-page .expense-rank-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    background: #eef4ff;
    color: #3972cf;
    font-size: 12px;
}
.expense-management-page .expense-rank-badge { background: #fff1f2; color: #d94b55; }
.expense-management-page .expense-supplier-name { min-width: 210px; white-space: normal; }
.expense-management-page .expense-empty-state,
.expense-management-page .expense-empty-cell {
    padding: 30px !important;
    color: #949dac !important;
    text-align: center !important;
}
.expense-management-page .expense-entry-panel { overflow: visible; }
.expense-management-page .expense-entry-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 16px;
    padding: 20px;
}
.expense-management-page .expense-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    color: #596376;
    font-size: 13px;
}
.expense-management-page .expense-field > span { font-weight: 500; }
.expense-management-page .expense-field em { color: #e2484d; font-style: normal; }
.expense-management-page .expense-field input,
.expense-management-page .expense-field select,
.expense-management-page .expense-field textarea {
    width: 100%;
    border: 1px solid #dfe5ed;
    border-radius: 8px;
    background: #fff;
    color: #273247;
    font: inherit;
    outline: none;
    transition: border-color .18s, box-shadow .18s;
}
.expense-management-page .expense-field input,
.expense-management-page .expense-field select { height: 42px; padding: 0 11px; }
.expense-management-page .expense-field textarea { min-height: 82px; padding: 10px 11px; resize: vertical; }
.expense-management-page .expense-field input:focus,
.expense-management-page .expense-field select:focus,
.expense-management-page .expense-field textarea:focus {
    border-color: #4c8df6;
    box-shadow: 0 0 0 3px rgba(76, 141, 246, .12);
}
.expense-management-page .expense-field-wide { grid-column: span 2; }
.expense-management-page .expense-field-full { grid-column: 1 / -1; }
.expense-management-page .expense-duplicate-option {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 9px;
    color: #6f7889;
    font-size: 13px;
}
.expense-management-page .expense-duplicate-option input { width: 16px; height: 16px; }
.expense-management-page .expense-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 2px;
}
.expense-management-page .expense-status-pill {
    display: inline-flex;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 12px;
}
.expense-management-page .expense-status-confirmed { background: #e7f7ed; color: #19864a; }
.expense-management-page .expense-status-pending { background: #fff2d9; color: #a56900; }
.expense-management-page .expense-row-actions { display: flex; gap: 10px; align-items: center; }
.expense-management-page .expense-row-actions form { margin: 0; }
.expense-management-page .expense-action-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: #2f6ed5;
    cursor: pointer;
    font: inherit;
}
.expense-management-page .expense-action-danger { color: #d94147; }

@media (max-width: 1280px) {
    .expense-management-page .expense-summary-grid { grid-template-columns: repeat(2, minmax(210px, 1fr)); }
    .expense-management-page .expense-category-grid { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
    .expense-management-page .expense-entry-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}
@media (max-width: 900px) {
    body:not(.login-body) .main-content.expense-management-page { padding: 76px 14px 30px; }
    .expense-management-page .expense-page-header { flex-direction: column; align-items: stretch; }
    .expense-management-page .expense-month-nav,
    .expense-management-page .expense-header-actions { justify-content: flex-start; }
    .expense-management-page .expense-category-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
}
@media (max-width: 640px) {
    .expense-management-page .expense-summary-grid,
    .expense-management-page .expense-summary-grid-3,
    .expense-management-page .expense-entry-grid,
    .expense-management-page .expense-category-grid { grid-template-columns: 1fr; }
    .expense-management-page .expense-field-wide,
    .expense-management-page .expense-field-full { grid-column: span 1; }
    .expense-management-page .expense-form-actions { justify-content: stretch; flex-direction: column; }
    .expense-management-page .expense-form-actions .btn { width: 100%; }
    .expense-management-page .expense-month-nav .btn,
    .expense-management-page .expense-header-actions .btn { flex: 1 1 auto; text-align: center; }
}

/* ===== V1.1.3.8.4.7.5.2 手工费用日报标准宽度统一 ===== */
.expense-management-page.expense-manual-page .expense-standard-width {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

@media (max-width: 1360px) {
    .expense-management-page.expense-manual-page .expense-standard-width {
        max-width: 100%;
    }
}


/* ===== V1.1.3.8.4.7.5.3 费用管理页面标准宽度统一 ===== */
body:not(.login-body) .main-content.expense-management-page > .expense-standard-container {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

/* 取消上一版仅针对手工费用日报的独立宽度控制，统一由标准容器管理 */
.expense-management-page.expense-manual-page .expense-standard-width {
    max-width: none;
    margin: 0;
}

@media (max-width: 1360px) {
    body:not(.login-body) .main-content.expense-management-page > .expense-standard-container {
        max-width: 100%;
    }
}

/* ===== V1.1.3.8.4.7.5.4 费用管理页面导航间距与宽度统一 ===== */
body:not(.login-body) .main-content.expense-management-page {
    padding-left: 24px;
    padding-right: 24px;
}
body:not(.login-body) .main-content.expense-management-page > .expense-standard-container {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    body:not(.login-body) .main-content.expense-management-page {
        padding-left: 14px;
        padding-right: 14px;
    }
}

/* ===== V1.1.3.8.4.7.5.5 费用管理页面宽度与导航间距平衡 ===== */
body:not(.login-body) .main-content.expense-management-page > .expense-standard-container {
    width: 100%;
    max-width: 1320px;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}
@media (max-width: 1380px) {
    body:not(.login-body) .main-content.expense-management-page > .expense-standard-container {
        max-width: 100%;
    }
}

/* ===== V1.1.3.8.4.7.7 其它费用管理与系统版本中心 ===== */
body:not(.login-body) .main-content.version-page {
    width: auto;
    max-width: none;
    min-width: 0;
    padding: 24px 28px 42px;
    background: #f7f9fc;
}
body:not(.login-body) .main-content.version-page > .version-standard-container {
    width: 100%;
    max-width: 1320px;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}
.version-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}
.version-page-header h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.35;
    color: #172033;
}
.version-page-subtitle {
    margin: 6px 0 0;
    color: #7a8495;
    font-size: 14px;
}
.version-panel {
    background: #fff;
    border: 1px solid #e5eaf2;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(31, 45, 61, .045);
    margin-bottom: 18px;
    overflow: hidden;
}
.version-panel-header {
    padding: 18px 20px;
    border-bottom: 1px solid #edf1f6;
}
.version-panel-header h3,
.version-detail-block h3,
.version-history-item h4 {
    margin: 0;
    color: #1d2740;
}
.version-panel-header p,
.version-history-head p {
    margin: 5px 0 0;
    color: #7b8495;
    font-size: 13px;
}
.version-current-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    gap: 14px;
    padding: 20px;
    border-bottom: 1px solid #edf1f6;
}
.version-card {
    min-height: 94px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid #e5eaf2;
    border-left: 4px solid #4c8df6;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(31, 45, 61, .045);
}
.version-card-highlight { border-left-color: #7b61e8; }
.version-card span {
    display: block;
    color: #778194;
    font-size: 13px;
    margin-bottom: 8px;
}
.version-card strong {
    display: block;
    color: #182238;
    font-size: 22px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.version-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    gap: 14px;
    padding: 20px;
}
.version-detail-block {
    background: #fafcff;
    border: 1px solid #e7edf5;
    border-radius: 12px;
    padding: 16px 18px;
}
.version-detail-block ul,
.version-history-body ul {
    margin: 12px 0 0;
    padding-left: 18px;
    color: #4d5667;
}
.version-detail-block li,
.version-history-body li {
    margin-bottom: 8px;
    line-height: 1.5;
}
.version-history-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
}
.version-history-item {
    border: 1px solid #e8edf5;
    border-radius: 12px;
    padding: 16px 18px;
    background: #fafcff;
}
.version-history-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.version-history-head span {
    color: #657089;
    font-size: 13px;
    white-space: nowrap;
}
.version-history-body {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 14px;
}
.version-empty-state {
    padding: 32px 20px;
    text-align: center;
    color: #9099a8;
}
@media (max-width: 1280px) {
    .version-current-grid,
    .version-detail-grid,
    .version-history-body {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }
}
@media (max-width: 900px) {
    body:not(.login-body) .main-content.version-page {
        padding: 76px 14px 30px;
    }
    .version-page-header,
    .version-history-head {
        flex-direction: column;
        align-items: stretch;
    }
}
@media (max-width: 640px) {
    .version-current-grid,
    .version-detail-grid,
    .version-history-body {
        grid-template-columns: 1fr;
    }
}

/* ===== V1.1.3.8.4.7.7.1 其它费用名称汇总与明细弹窗 ===== */
.other-expense-summary-table {
    min-width: 860px;
}
.other-expense-summary-table .other-expense-name {
    min-width: 240px;
    white-space: normal;
}
.other-expense-detail-btn {
    font-weight: 600;
}
.other-expense-modal[hidden] {
    display: none !important;
}
.other-expense-modal {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.other-expense-modal-mask {
    position: absolute;
    inset: 0;
    background: rgba(20, 30, 48, .42);
    backdrop-filter: blur(2px);
}
.other-expense-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1080px, 100%);
    max-height: min(82vh, 760px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(18, 31, 53, .24);
    overflow: hidden;
}
.other-expense-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid #e9edf4;
}
.other-expense-modal-header h3 {
    margin: 0;
    color: #1c2740;
    font-size: 19px;
}
.other-expense-modal-header p {
    margin: 6px 0 0;
    color: #798396;
    font-size: 13px;
}
.other-expense-modal-close {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 9px;
    background: #f2f5f9;
    color: #526075;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.other-expense-modal-close:hover {
    background: #e8edf5;
}
.other-expense-modal-body {
    min-height: 0;
    overflow: auto;
}
.other-expense-detail-table {
    min-width: 900px;
}
.other-expense-detail-summary {
    min-width: 220px;
    white-space: normal !important;
}
body.other-expense-modal-open {
    overflow: hidden;
}
@media (max-width: 768px) {
    .other-expense-modal {
        padding: 12px;
        align-items: flex-end;
    }
    .other-expense-modal-dialog {
        width: 100%;
        max-height: 88vh;
        border-radius: 14px 14px 0 0;
    }
}

/* ===== V1.1.3.8.4.7.7.2 账户资金归集手工录入 ===== */
body:not(.login-body) .main-content.transfer-management-page{width:auto;max-width:none;min-width:0;padding:24px 28px 42px;background:#f7f9fc}
body:not(.login-body) .main-content.transfer-management-page>.transfer-standard-container{width:100%;max-width:1320px;margin:0;box-sizing:border-box}
.transfer-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.transfer-page-header h2{margin:0;font-size:24px;color:#172033}.transfer-page-subtitle{margin:6px 0 0;color:#7a8495;font-size:14px}.transfer-month-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.transfer-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px;margin-bottom:18px}.transfer-summary-card{min-height:94px;padding:18px 20px;background:#fff;border:1px solid #e5eaf2;border-left:4px solid #4c8df6;border-radius:12px;box-shadow:0 3px 12px rgba(31,45,61,.045)}.transfer-summary-total{border-left-color:#7b61e8}.transfer-summary-card span{display:block;color:#778194;font-size:13px;margin-bottom:8px}.transfer-summary-card strong{display:block;color:#182238;font-size:23px}.transfer-panel{background:#fff;border:1px solid #e5eaf2;border-radius:12px;box-shadow:0 3px 12px rgba(31,45,61,.045);margin-bottom:18px;overflow:hidden}.transfer-entry-panel{overflow:visible}.transfer-panel-header{padding:17px 20px;border-bottom:1px solid #edf1f6}.transfer-panel-header h3{margin:0;color:#202b40;font-size:17px}.transfer-panel-header p{margin:3px 0 0;color:#8992a2;font-size:12px}.transfer-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px;padding:20px}.transfer-field{display:flex;flex-direction:column;gap:7px;color:#596376;font-size:13px}.transfer-field em{color:#e2484d;font-style:normal}.transfer-field input,.transfer-field select,.transfer-field textarea{width:100%;border:1px solid #dfe5ed;border-radius:8px;background:#fff;color:#273247;font:inherit;outline:none}.transfer-field input,.transfer-field select{height:42px;padding:0 11px}.transfer-field textarea{min-height:82px;padding:10px 11px;resize:vertical}.transfer-field-full{grid-column:1/-1}.transfer-duplicate-option{display:flex;align-items:center;gap:9px;color:#6f7889;font-size:13px}.transfer-duplicate-option input{width:16px;height:16px}.transfer-form-actions{display:flex;justify-content:flex-end;gap:10px}.transfer-table-wrapper{width:100%;overflow-x:auto}.transfer-data-table{width:100%;min-width:1050px;border-collapse:collapse}.transfer-data-table th,.transfer-data-table td{padding:12px 14px;border-bottom:1px solid #edf1f5;color:#4a5568;font-size:13px;white-space:nowrap;text-align:left}.transfer-data-table th{background:#f7f9fc;color:#5b6577}.transfer-money{font-weight:700;color:#d64045}.text-right{text-align:right!important}.transfer-status{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:12px}.transfer-status-confirmed{background:#e7f7ed;color:#19864a}.transfer-status-pending{background:#fff2d9;color:#a56900}.transfer-status-cancelled{background:#f1f3f6;color:#7a8492}.transfer-actions{display:flex;gap:10px;align-items:center}.transfer-actions form{margin:0}.transfer-link{border:0;background:transparent;color:#2f6ed5;cursor:pointer;padding:0}.transfer-danger{color:#d94147}.transfer-empty{text-align:center!important;color:#949dac!important;padding:30px!important}
@media(max-width:1280px){.transfer-summary-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.transfer-entry-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:900px){body:not(.login-body) .main-content.transfer-management-page{padding:76px 14px 30px}.transfer-page-header{flex-direction:column}.transfer-month-nav{justify-content:flex-start}}
@media(max-width:640px){.transfer-summary-grid,.transfer-entry-grid{grid-template-columns:1fr}.transfer-field-full{grid-column:span 1}.transfer-form-actions{flex-direction:column}.transfer-form-actions .btn{width:100%}}

/* V1.1.3.8.4.7.7.3 库房主管日报 */
body:not(.login-body) .main-content.warehouse-page{width:auto;max-width:none;min-width:0;padding:24px 28px 42px;background:#f7f9fc}.warehouse-container{width:100%;max-width:1320px;margin:0}.warehouse-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.warehouse-header h2{margin:0;color:#172033;font-size:24px}.warehouse-header p{margin:6px 0 0;color:#7a8495}.warehouse-panel{background:#fff;border:1px solid #e5eaf2;border-radius:12px;box-shadow:0 3px 12px rgba(31,45,61,.045);margin-bottom:18px;overflow:hidden}.warehouse-panel-head{padding:17px 20px;border-bottom:1px solid #edf1f6}.warehouse-panel-head h3{margin:0;color:#202b40}.warehouse-panel-head p{margin:5px 0 0;color:#8992a2;font-size:13px}.warehouse-upload-form{display:flex;gap:12px;align-items:center;padding:20px}.warehouse-upload-form input{flex:1;padding:12px;border:1px dashed #bfc9d8;border-radius:8px;background:#fafcff}.warehouse-form-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px;padding:20px}.warehouse-form-grid label{display:flex;flex-direction:column;gap:7px;color:#596376;font-size:13px}.warehouse-form-grid input,.warehouse-form-grid textarea{width:100%;border:1px solid #dfe5ed;border-radius:8px;padding:10px 11px;font:inherit;box-sizing:border-box}.warehouse-form-grid input{height:42px}.warehouse-form-grid textarea{min-height:84px;resize:vertical}.warehouse-form-grid .wide{grid-column:span 2}.warehouse-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 20px 20px}.warehouse-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:14px;margin-bottom:18px}.warehouse-stat-grid>div{background:#fff;border:1px solid #e5eaf2;border-left:4px solid #4c8df6;border-radius:12px;padding:16px 18px}.warehouse-stat-grid span{display:block;color:#778194;font-size:13px;margin-bottom:7px}.warehouse-stat-grid strong{font-size:22px;color:#182238}.warehouse-summary{padding:18px 20px;color:#3f4b5f;line-height:1.7}.warehouse-risk{padding:12px 14px;background:#fff7e8;border-radius:8px;color:#a46500}.warehouse-page .expense-data-table{min-width:900px}.warehouse-dashboard-section .stat-card{min-height:110px}@media(max-width:1000px){.warehouse-form-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.warehouse-stat-grid{grid-template-columns:repeat(2,minmax(170px,1fr))}}@media(max-width:820px){body:not(.login-body) .main-content.warehouse-page{padding:76px 14px 30px}.warehouse-header{flex-direction:column}.warehouse-upload-form{align-items:stretch;flex-direction:column}.warehouse-upload-form .btn{width:100%}}@media(max-width:640px){.warehouse-form-grid,.warehouse-stat-grid{grid-template-columns:1fr}.warehouse-form-grid .wide{grid-column:span 1}}

/* ===== V1.1.3.8.4.7.7.3.1 库房主管日报页面版式优化 ===== */
body:not(.login-body) .main-content.warehouse-page{width:auto;max-width:none;min-width:0;padding:24px 28px 42px;background:#f7f9fc}.warehouse-page .warehouse-container{width:100%;max-width:1320px;margin:0;box-sizing:border-box}.warehouse-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.warehouse-header h2{margin:0;color:#172033;font-size:25px}.warehouse-header p{margin:6px 0 0;color:#7a8495;font-size:14px}.warehouse-month-nav,.warehouse-header-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.warehouse-month-nav strong{min-width:82px;text-align:center;color:#25304a}.warehouse-month-grid{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:14px;margin-bottom:18px}.warehouse-kpi-card,.warehouse-stat-card{min-height:92px;padding:18px 20px;background:#fff;border:1px solid #e4e9f1;border-left:4px solid #4c8df6;border-radius:12px;box-shadow:0 3px 12px rgba(31,45,61,.045)}.warehouse-kpi-card span,.warehouse-stat-card span{display:block;color:#778194;font-size:13px;margin-bottom:9px}.warehouse-kpi-card strong,.warehouse-stat-card strong{display:block;color:#182238;font-size:23px;line-height:1.25}.warehouse-kpi-success,.warehouse-stat-card.success{border-left-color:#27a465}.warehouse-kpi-warning,.warehouse-stat-card.warning{border-left-color:#e6a23c}.warehouse-kpi-score,.warehouse-stat-card.score{border-left-color:#7b61e8}.warehouse-stat-card.danger{border-left-color:#db4a55}.warehouse-panel{background:#fff;border:1px solid #e5eaf2;border-radius:12px;box-shadow:0 3px 12px rgba(31,45,61,.045);margin-bottom:18px;overflow:hidden}.warehouse-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:17px 20px;border-bottom:1px solid #edf1f6}.warehouse-panel-head h3{margin:0;color:#202b40;font-size:17px}.warehouse-panel-head p{margin:4px 0 0;color:#8992a2;font-size:12px}.warehouse-upload-panel{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(420px,1.3fr);align-items:center}.warehouse-upload-panel .warehouse-panel-head{border-bottom:0}.warehouse-upload-compact{display:flex;align-items:center;gap:12px;padding:18px 20px 18px 0}.warehouse-upload-compact input[type=file]{flex:1;min-width:0;height:42px;padding:8px 10px;border:1px dashed #cdd6e3;border-radius:8px;background:#fbfcfe}.warehouse-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.warehouse-data-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:auto}.warehouse-data-table th,.warehouse-data-table td{padding:12px 14px;border-bottom:1px solid #edf1f5;color:#4a5568;font-size:13px;line-height:1.45;text-align:left;vertical-align:middle}.warehouse-data-table th{background:#f6f8fc;color:#5b6577;font-weight:600;white-space:nowrap}.warehouse-data-table .num{text-align:right;font-variant-numeric:tabular-nums}.warehouse-data-table .center{text-align:center}.warehouse-list-table{min-width:1180px}.warehouse-row-warning{background:#fffaf0}.warehouse-row-note{display:block;max-width:230px;margin-top:4px;color:#a36b13;font-size:11px;white-space:normal}.warehouse-rate-badge{display:inline-flex;padding:3px 9px;border-radius:999px;background:#eaf8f0;color:#238652;font-size:12px}.warehouse-status{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:12px;white-space:nowrap}.warehouse-status.success{background:#e8f7ee;color:#1f9254}.warehouse-status.warning{background:#fff3d9;color:#a86b00}.warehouse-status.muted{background:#eef1f5;color:#6f7785}.warehouse-negative{color:#d45a37!important;font-weight:700}.warehouse-view-link{color:#356bd8;font-weight:600;text-decoration:none}.warehouse-view-link:hover{text-decoration:underline}.warehouse-meta-list{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin-top:10px;color:#6d7687;font-size:13px}.warehouse-meta-list span{position:relative}.warehouse-stat-grid-v2{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;margin-bottom:18px}.warehouse-conclusion-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px;padding:18px 20px}.warehouse-conclusion{padding:16px 18px;border-radius:10px;border:1px solid transparent}.warehouse-conclusion h4{margin:0 0 9px;color:#263247}.warehouse-conclusion p,.warehouse-conclusion ul{margin:0;color:#4c5668;line-height:1.65}.warehouse-conclusion ul{padding-left:18px}.warehouse-conclusion.summary{background:#eef6ff;border-color:#dcecff}.warehouse-conclusion.risk{background:#fff7e5;border-color:#f5e4b6}.warehouse-conclusion.advice{background:#f5f0ff;border-color:#e7dcff}.warehouse-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.warehouse-two-column .warehouse-panel{margin-bottom:0}.warehouse-total-row td{background:#eef5ff;font-weight:700;color:#263247}.warehouse-field-grid,.warehouse-plan-kpis{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:0;padding:8px 20px 18px}.warehouse-field-grid>div,.warehouse-plan-kpis>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 12px;border-bottom:1px solid #eef1f5}.warehouse-field-grid span,.warehouse-plan-kpis span{color:#6d7687}.warehouse-field-grid strong,.warehouse-plan-kpis strong{color:#263247}.warehouse-warning-text{color:#c47a16!important}.warehouse-text-block{margin:0 20px 20px;padding:14px 16px;border-radius:9px;background:#f8fafc;color:#596376;white-space:pre-wrap;line-height:1.7}.warehouse-empty-box{padding:34px 20px;text-align:center;color:#9099a8}.warehouse-detail-page .warehouse-data-table{min-width:680px}.warehouse-detail-page .warehouse-panel:nth-child(3),.warehouse-detail-page .warehouse-panel:nth-child(4){min-height:100%}
@media(max-width:1180px){.warehouse-month-grid{grid-template-columns:repeat(2,minmax(210px,1fr))}.warehouse-stat-grid-v2{grid-template-columns:repeat(2,minmax(180px,1fr))}.warehouse-two-column{grid-template-columns:1fr}.warehouse-upload-panel{grid-template-columns:1fr}.warehouse-upload-compact{padding:0 20px 18px}}
@media(max-width:900px){body:not(.login-body) .main-content.warehouse-page{padding:76px 14px 30px}.warehouse-header,.warehouse-detail-header{flex-direction:column;align-items:stretch}.warehouse-month-nav,.warehouse-header-actions{justify-content:flex-start}.warehouse-conclusion-grid{grid-template-columns:1fr}}
@media(max-width:640px){.warehouse-month-grid,.warehouse-stat-grid-v2,.warehouse-field-grid,.warehouse-plan-kpis{grid-template-columns:1fr}.warehouse-upload-compact{flex-direction:column;align-items:stretch}.warehouse-upload-compact .btn{width:100%}.warehouse-kpi-card,.warehouse-stat-card{min-height:82px}.warehouse-meta-list{display:grid;grid-template-columns:1fr 1fr}.warehouse-conclusion-grid{padding:14px}}

/* ===== V1.1.3.8.4.7.7.3.3 库房日报标签高度统一与记录删除 ===== */
.warehouse-detail-page .warehouse-two-column {
    align-items: stretch;
    grid-auto-rows: 1fr;
}
.warehouse-detail-page .warehouse-two-column > .warehouse-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 320px;
}
.warehouse-detail-page .warehouse-two-column > .warehouse-panel .warehouse-panel-head {
    min-height: 72px;
    box-sizing: border-box;
}
.warehouse-detail-page .warehouse-two-column > .warehouse-panel .warehouse-table-wrap,
.warehouse-detail-page .warehouse-two-column > .warehouse-panel .warehouse-field-grid,
.warehouse-detail-page .warehouse-two-column > .warehouse-panel .warehouse-plan-kpis,
.warehouse-detail-page .warehouse-two-column > .warehouse-panel .warehouse-empty-box,
.warehouse-detail-page .warehouse-two-column > .warehouse-panel .warehouse-text-block {
    flex: 1 1 auto;
}
.warehouse-detail-page .warehouse-two-column > .warehouse-panel .warehouse-empty-box {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 190px;
}
.warehouse-row-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
}
.warehouse-row-actions form { margin: 0; }
.warehouse-delete-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: #d9444d;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}
.warehouse-delete-link:hover { text-decoration: underline; }
@media(max-width:1180px){
    .warehouse-detail-page .warehouse-two-column {
        grid-auto-rows: auto;
    }
    .warehouse-detail-page .warehouse-two-column > .warehouse-panel {
        min-height: 0;
    }
}

/* ===== V1.1.3.8.4.7.7.3.4 库房月度绩效 ===== */
body:not(.login-body) .main-content.warehouse-performance-page{padding:24px;background:#f6f8fc;min-width:0}.warehouse-performance-container{max-width:1320px;margin-left:0}.warehouse-perf-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.warehouse-perf-header h2{margin:0 0 6px;color:#172033}.warehouse-perf-header p{margin:0;color:#7d8798}.warehouse-perf-header>div:last-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.warehouse-perf-grid.cards{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;margin-bottom:18px}.warehouse-perf-grid.cards>div{background:#fff;border:1px solid #e5eaf2;border-left:4px solid #4f8ff7;border-radius:12px;padding:18px}.warehouse-perf-grid.cards span{display:block;color:#7d8798;font-size:13px;margin-bottom:8px}.warehouse-perf-grid.cards b{font-size:22px;color:#1c2740}.warehouse-perf-panel{background:#fff;border:1px solid #e5eaf2;border-radius:12px;padding:18px;margin-bottom:18px;box-shadow:0 3px 12px rgba(31,45,61,.04)}.warehouse-perf-panel h3{margin:0 0 14px}.warehouse-perf-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.warehouse-perf-panel table{width:100%;border-collapse:collapse;min-width:720px}.warehouse-perf-panel th,.warehouse-perf-panel td{padding:11px 12px;border-bottom:1px solid #edf1f5;text-align:left;font-size:13px;vertical-align:middle}.warehouse-perf-panel th{background:#f7f9fc;color:#566175}.warehouse-perf-panel input,.warehouse-perf-panel select,.warehouse-perf-panel textarea{width:100%;box-sizing:border-box;border:1px solid #dfe5ed;border-radius:8px;padding:9px 10px;background:#fff}.warehouse-perf-panel textarea{min-height:90px}.warehouse-upload-row{display:flex;gap:12px;align-items:center}.warehouse-upload-row input{flex:1}.table-scroll{overflow-x:auto}.warehouse-perf-panel tr.warn{background:#fff9eb}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.warehouse-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.warehouse-review-grid label{display:flex;flex-direction:column;gap:7px;color:#566175}.source-tag{display:inline-flex;padding:3px 8px;border-radius:999px;background:#eef4ff;color:#3972cf}.muted{color:#8d96a5}@media(max-width:1000px){.warehouse-perf-grid.cards{grid-template-columns:repeat(2,minmax(160px,1fr))}.warehouse-perf-two,.warehouse-review-grid{grid-template-columns:1fr}}@media(max-width:760px){body:not(.login-body) .main-content.warehouse-performance-page{padding:76px 14px 28px}.warehouse-perf-header{flex-direction:column}.warehouse-perf-grid.cards{grid-template-columns:1fr}.warehouse-upload-row{flex-direction:column;align-items:stretch}}

/* V1.1.3.8.4.7.7.3.5 库房日报多文件批量导入 */
.warehouse-batch-tip{font-size:12px;color:#7b8495;white-space:nowrap}
.warehouse-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.warehouse-batch-actions{display:flex;gap:8px;flex-wrap:wrap}
.warehouse-batch-table{min-width:1180px}
.warehouse-batch-table td{vertical-align:middle}
.warehouse-batch-select{min-width:130px;padding:7px 9px;border:1px solid #dce3ed;border-radius:8px;background:#fff}
.warehouse-row-error{background:#fff4f4}
.warehouse-status.danger{background:#fde8e8;color:#c33}
.warehouse-batch-note{max-width:260px;color:#697386;font-size:12px}
@media(max-width:900px){.warehouse-batch-toolbar{align-items:flex-start;flex-direction:column}.warehouse-batch-tip{white-space:normal}}

/* ===== V1.1.3.8.4.7.7.3.7 保存状态反馈 ===== */
.warehouse-save-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
    color: #7a8494;
    font-size: 13px;
}
.save-state-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    font-weight: 600;
}
.save-state-badge.is-saved {
    color: #23845a;
    background: #e8f7ef;
    border: 1px solid #bfe8d1;
}
.save-state-badge.is-unsaved {
    color: #9a6a16;
    background: #fff6df;
    border: 1px solid #f0ddb0;
}
.warehouse-save-button.is-saved,
.warehouse-save-button:disabled {
    cursor: not-allowed;
    opacity: 1;
    color: #667085;
    background: #e9edf3;
    border-color: #d9dfe8;
    box-shadow: none;
}
.warehouse-save-button:not(:disabled) {
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}


/* ===== V1.1.3.8.4.7.7.3.11 库房月度汇总表格自适应 ===== */
.warehouse-perf-two {
    align-items: start;
    min-width: 0;
}
.warehouse-perf-two .warehouse-summary-table-wrap {
    min-width: 0;
    width: 100%;
    overflow-x: auto;
    border: 1px solid #edf1f5;
    border-radius: 10px;
}
.warehouse-perf-two .warehouse-summary-table-wrap table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}
.warehouse-summary-metrics .col-label { width: 55%; }
.warehouse-summary-metrics .col-value { width: 45%; }
.warehouse-summary-suppliers .col-supplier { width: 40%; }
.warehouse-summary-suppliers .col-batches,
.warehouse-summary-suppliers .col-actual,
.warehouse-summary-suppliers .col-difference { width: 20%; }
.warehouse-summary-suppliers th,
.warehouse-summary-suppliers td {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.warehouse-staff-table-wrap {
    width: 100%;
    min-width: 0;
    overflow-x: auto;
}
.warehouse-staff-table-wrap table {
    width: 100%;
    min-width: 720px;
}
@media (max-width: 1000px) {
    .warehouse-perf-two .warehouse-summary-table-wrap table {
        min-width: 0;
    }
}
@media (max-width: 640px) {
    .warehouse-summary-suppliers .col-supplier { width: 46%; }
    .warehouse-summary-suppliers .col-batches,
    .warehouse-summary-suppliers .col-actual,
    .warehouse-summary-suppliers .col-difference { width: 18%; }
    .warehouse-perf-panel th,
    .warehouse-perf-panel td { padding: 10px 8px; }
}

/* V1.1.3.8.4.7.7.3.13 记账员上传通道：紧凑日报日历 */
.clerk-calendar-card{margin-top:18px;padding-top:18px;border-top:1px solid #e8edf5}.clerk-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.clerk-calendar-head h3{margin:0 0 3px;font-size:16px}.clerk-calendar-head p{margin:0;color:#7b8496;font-size:12px}.clerk-calendar-nav{display:flex;align-items:center;gap:7px;white-space:nowrap}.clerk-calendar-nav a{display:inline-flex;width:25px;height:25px;align-items:center;justify-content:center;border:1px solid #dce3ef;border-radius:7px;background:#fff;color:#344054;text-decoration:none;font-size:18px}.clerk-calendar-nav strong{font-size:13px}.clerk-calendar-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:9px}.clerk-calendar-stats span{padding:6px 4px;border-radius:7px;background:#f5f7fb;text-align:center;color:#667085;font-size:11px}.clerk-calendar-stats b{color:#1d2939}.clerk-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:4px}.clerk-calendar-weekdays span{text-align:center;color:#98a2b3;font-size:11px}.clerk-calendar-day{position:relative;min-height:35px;padding:4px;border:1px solid #edf0f5;border-radius:7px;background:#fff}.clerk-calendar-day.is-empty{border-color:transparent;background:transparent}.clerk-calendar-day.is-today{outline:2px solid #f4b740;outline-offset:-2px}.clerk-calendar-day.is-complete{background:#f3efff;border-color:#d9ccff}.day-number{display:block;color:#475467;font-size:11px;line-height:1}.day-marks{display:flex;gap:2px;justify-content:center;margin-top:5px}.day-marks i,.clerk-calendar-legend i{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:5px;font-style:normal;font-size:9px;line-height:1}.mark-receipt{background:#e8f7ee;color:#16804c}.mark-payment{background:#e9f1ff;color:#2867d7}.clerk-calendar-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;color:#7b8496;font-size:10px}.clerk-calendar-legend span{display:flex;align-items:center;gap:4px}.legend-complete{background:#f3efff;border:1px solid #d9ccff}@media(max-width:900px){.portal-grid{grid-template-columns:1fr}.clerk-calendar-day{min-height:39px}}

/* V1.1.3.8.4.7.7.3.14 库房主管独立上传通道 */
.warehouse-portal-head-actions{display:flex;gap:10px;align-items:center}.warehouse-portal-head-actions .btn{white-space:nowrap}.warehouse-review-shell .warehouse-header{margin-bottom:18px}@media(max-width:760px){.portal-header{align-items:flex-start}.warehouse-portal-head-actions{flex-wrap:wrap}.portal-grid{grid-template-columns:1fr!important}.portal-tips{order:2}.clerk-calendar-card{margin-top:18px}}

/* V1.1.3.8.4.7.7.3.15 库房重复日报管理员审批 */
.nav-count-badge{display:inline-flex;min-width:18px;height:18px;padding:0 5px;margin-left:6px;align-items:center;justify-content:center;border-radius:10px;background:#ef4444;color:#fff;font-size:11px;font-weight:700}.wh-change-reason{padding:16px;border:1px solid #f1d39a;background:#fffaf0;border-radius:12px}.wh-change-reason textarea,.approval-actions textarea{width:100%;min-height:90px;box-sizing:border-box;padding:12px;border:1px solid #d9e1ec;border-radius:8px}.filter-bar{display:flex;justify-content:flex-end;margin-bottom:14px}.filter-bar select{padding:9px 34px 9px 12px;border:1px solid #d9e1ec;border-radius:8px}.reason-cell{max-width:340px;white-space:normal}.status-badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#eef2f7}.status-pending_admin_approval{background:#fff4d6;color:#9a6700}.status-approved{background:#dcfce7;color:#166534}.status-rejected{background:#fee2e2;color:#991b1b}.status-returned{background:#dbeafe;color:#1e40af}.approval-summary{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:18px;align-items:start}.approval-summary p{margin:7px 0 0}.approval-file-links{display:flex;gap:8px;flex-wrap:wrap}.diff-table tr.changed td{background:#fff8e8}.diff-table tr.changed td:first-child{border-left:3px solid #f59e0b}.approval-actions{margin-top:18px}.action-row{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.btn-danger{background:#dc2626;color:#fff;border-color:#dc2626}@media(max-width:900px){.approval-summary{grid-template-columns:1fr 1fr}.approval-file-links{grid-column:1/-1}}@media(max-width:600px){.approval-summary{grid-template-columns:1fr}.action-row{flex-direction:column}.action-row .btn{width:100%}}

/* V1.1.3.8.4.7.7.3.15.1 库房待确认日报对比与排版 */
.wh-approval-page,.wh-review-page{max-width:1440px;margin:0 auto;padding-bottom:36px}.wh-approval-header,.wh-review-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.wh-approval-stats,.wh-diff-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.wh-stat-card,.wh-diff-summary>div{background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:18px 20px;box-shadow:0 4px 16px rgba(35,55,80,.05)}.wh-stat-card span,.wh-diff-summary span{display:block;color:#7b8798;font-size:13px;margin-bottom:8px}.wh-stat-card strong,.wh-diff-summary strong{font-size:26px;color:#14233b}.wh-stat-card.is-pending{border-left:4px solid #f4b740}.wh-stat-card.is-approved{border-left:4px solid #2fb36f}.wh-stat-card.is-returned{border-left:4px solid #4f83e3}.wh-stat-card.is-rejected{border-left:4px solid #e45a5a}.wh-filter-card{padding:16px 18px}.wh-filter-grid{display:grid;grid-template-columns:170px 180px 180px minmax(240px,1fr) auto;gap:12px;align-items:end}.wh-filter-grid label span{display:block;font-size:13px;color:#667085;margin-bottom:6px}.wh-filter-grid input,.wh-filter-grid select{width:100%;height:40px;border:1px solid #d9e1ec;border-radius:8px;padding:0 11px;box-sizing:border-box;background:#fff}.wh-filter-actions{display:flex;gap:8px}.wh-approval-table-card{padding:0;overflow:hidden}.wh-approval-table{min-width:1220px}.wh-approval-table th{background:#f7f9fc;white-space:nowrap}.wh-approval-table td{vertical-align:top;padding-top:14px;padding-bottom:14px}.wh-reason-preview{max-width:240px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.wh-diff-preview{min-width:260px;font-size:13px;line-height:1.6}.wh-diff-preview div{white-space:nowrap}.wh-diff-preview b{font-weight:600}.wh-diff-preview span{color:#98a2b3;margin:0 4px}.wh-diff-preview small{color:#d97706}.nowrap{white-space:nowrap}.strong-cell{font-weight:700}.muted{color:#98a2b3}.wh-application-card{padding:20px}.wh-application-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.wh-application-grid>div{background:#f8fafc;border:1px solid #edf1f6;border-radius:10px;padding:13px 14px}.wh-application-grid span,.wh-reason-box span{display:block;color:#7b8798;font-size:13px;margin-bottom:6px}.wh-reason-box{margin-top:16px;background:#fffaf0;border:1px solid #f1d39a;border-radius:10px;padding:14px 16px}.wh-reason-box p{margin:0;line-height:1.7}.wh-file-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.card-title-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.card-title-row h2{margin:0}.card-title-row p,.card-title-row>span{margin:4px 0 0;color:#7b8798;font-size:13px}.wh-key-diff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wh-key-diff-item{border:1px solid #f0dfb2;background:#fffaf0;border-radius:10px;padding:13px 14px}.wh-key-diff-item>span{display:block;font-size:13px;color:#7b8798;margin-bottom:7px}.wh-key-diff-item div{display:flex;align-items:center;gap:9px}.wh-key-diff-item i{font-style:normal;color:#98a2b3}.wh-key-diff-item em,.wh-delta{font-style:normal;font-size:12px;padding:2px 7px;border-radius:999px;background:#eef2f7}.positive{color:#14844c!important;background:#e7f8ee!important}.negative{color:#c93b3b!important;background:#fdecec!important}.wh-diff-card{margin-top:18px}.wh-view-switch{display:flex;gap:8px}.wh-diff-section{margin-top:18px}.wh-diff-section h3{font-size:16px;margin:0 0 9px;padding-left:10px;border-left:3px solid #3b82f6}.wh-compare-table{table-layout:fixed;min-width:900px}.wh-compare-table th:nth-child(1){width:18%}.wh-compare-table th:nth-child(2),.wh-compare-table th:nth-child(3){width:34%}.wh-compare-table th:nth-child(4){width:14%}.wh-compare-table tr.is-changed td{background:#fffaf0}.wh-compare-table tr.is-changed td:first-child{border-left:3px solid #f59e0b;font-weight:700}.wh-value-cell{white-space:pre-wrap;word-break:break-word}.wh-value-cell.long-text{line-height:1.65;min-width:260px}.wh-review-actions{margin-top:18px}.wh-review-actions label>span{display:block;font-weight:700;margin-bottom:8px}.wh-review-actions textarea{width:100%;min-height:100px;border:1px solid #d9e1ec;border-radius:9px;padding:12px;box-sizing:border-box}.wh-action-tip{text-align:right;color:#7b8798;font-size:13px;margin:10px 0 0}.wh-reviewed-card{margin-top:18px}.wh-reviewed-card h2{margin-top:0}@media(max-width:1100px){.wh-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wh-filter-actions{grid-column:1/-1}.wh-application-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.wh-approval-stats,.wh-diff-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.wh-key-diff-grid{grid-template-columns:1fr}.wh-review-header,.card-title-row{flex-direction:column;align-items:stretch}.wh-application-grid,.wh-filter-grid{grid-template-columns:1fr}.wh-filter-actions{grid-column:auto}.wh-view-switch{width:100%}.wh-view-switch .btn{flex:1}.wh-approval-page,.wh-review-page{padding:0 8px 28px}}

/* V1.1.3.8.4.7.7.3.15.2 库房审批列表精修与提交确认跳转修复 */
.wh-approval-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}
.wh-approval-table .c-time{width:145px}.wh-approval-table .c-date{width:110px}.wh-approval-table .c-user{width:100px}.wh-approval-table .c-reason{width:240px}.wh-approval-table .c-diff{width:auto}.wh-approval-table .c-status{width:125px}.wh-approval-table .c-reviewer{width:90px}.wh-approval-table .c-action{width:90px}
.wh-approval-table th,.wh-approval-table td{padding:14px 12px;vertical-align:middle;text-align:left;border-bottom:1px solid #edf1f6}
.wh-approval-table th{white-space:nowrap;color:#344054;font-weight:700;background:#f8fafc}
.wh-approval-table td:nth-child(2),.wh-approval-table td:nth-child(3),.wh-approval-table td:nth-child(6),.wh-approval-table td:nth-child(7),.wh-approval-table td:nth-child(8){text-align:center}
.wh-reason-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.55;word-break:break-word;white-space:normal}
.wh-diff-preview{line-height:1.55;word-break:break-word;white-space:normal}.wh-diff-preview>div{margin:2px 0}.wh-diff-preview small{display:block;margin-top:4px;color:#667085}.wh-approval-table .status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:88px;white-space:nowrap}.wh-approval-table .btn{white-space:nowrap}
.wh-table-wrap{overflow:auto;background:#fff;border-radius:14px;padding:12px;box-shadow:0 8px 24px rgba(31,45,61,.05)}.wh-table{width:100%;min-width:1120px;border-collapse:collapse}.wh-table th,.wh-table td{padding:13px 12px;border-bottom:1px solid #edf1f6;white-space:nowrap;text-align:left;vertical-align:middle}.wh-file-cell{max-width:260px;overflow:hidden;text-overflow:ellipsis}
.wh-submit-result-body{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:64px 20px;background:#f4f7fb}.wh-submit-result-card{width:min(760px,100%);margin:0 auto;background:#fff;border:1px solid #e7ebf1;border-radius:22px;box-shadow:0 14px 38px rgba(31,45,61,.08);padding:56px 54px;text-align:center}.wh-submit-result-icon{width:86px;height:86px;border-radius:18px;margin:0 auto 28px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#5bd68d,#2fbd70);color:#fff;font-size:58px;line-height:1;box-shadow:0 8px 18px rgba(47,189,112,.28)}.wh-submit-result-card h1{margin:0 0 14px;font-size:36px;color:#15243a}.wh-submit-result-meta{margin:0 0 28px;font-size:18px;color:#667085}.wh-submit-result-note{padding:20px 24px;border:1px solid #f0d49d;background:#fff8e8;border-radius:12px;color:#a96112;line-height:1.75}.wh-submit-result-reason{margin-top:16px;padding:14px 18px;border-radius:10px;background:#f8fafc;text-align:left;color:#475467;line-height:1.65}.wh-submit-result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}
@media(max-width:900px){.wh-approval-table{min-width:1100px}.wh-submit-result-card{padding:40px 24px}.wh-submit-result-card h1{font-size:30px}}

/* V1.1.3.8.4.7.7.3.16 工资条 */
.payslip-public{margin:0;min-height:100vh;background:linear-gradient(160deg,#eef4ff,#f8fafc);display:flex;align-items:center;justify-content:center;font-family:Arial,"Microsoft YaHei",sans-serif}.payslip-login-card{width:min(88vw,420px);background:#fff;border-radius:22px;padding:32px;box-shadow:0 18px 55px rgba(26,48,90,.12)}.payslip-brand{font-weight:800;color:#145dcc;font-size:20px}.payslip-brand span{color:#172b4d;font-weight:700}.payslip-login-card h1{font-size:26px;margin:20px 0 8px}.payslip-login-card p{color:#64748b;line-height:1.7}.payslip-login-card label{display:block;margin:18px 0 8px;font-weight:600}.payslip-login-card input{width:100%;box-sizing:border-box;padding:14px;border:1px solid #dbe3ee;border-radius:12px;font-size:16px;margin-top:8px}.payslip-login-card .btn{width:100%;margin:18px 0}.payslip-alert{padding:12px;border-radius:10px;background:#fff4e5;color:#9a5b00}.payslip-center{text-align:center}.payslip-done{font-size:60px;color:#32b875}.payslip-secure{margin:0;background:#eef3f9;font-family:Arial,"Microsoft YaHei",sans-serif;-webkit-user-select:none;user-select:none}.mobile-payslip{max-width:560px;margin:auto;min-height:100vh;padding:20px 16px 36px;position:relative;z-index:2}.mobile-payslip header{padding:8px 4px 18px}.mobile-payslip h1{font-size:25px;margin:18px 0 10px}.employee-meta{display:flex;gap:10px;flex-wrap:wrap;color:#64748b}.employee-meta span{background:#fff;padding:7px 10px;border-radius:9px}.salary-hero{background:linear-gradient(135deg,#1867d8,#478eea);color:white;border-radius:22px;padding:24px;box-shadow:0 15px 35px rgba(24,103,216,.22)}.salary-hero small{opacity:.85}.salary-hero>strong{display:block;font-size:40px;margin:8px 0 20px}.salary-hero>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.salary-hero span{font-size:12px;background:rgba(255,255,255,.12);padding:12px;border-radius:12px}.salary-hero b{display:block;font-size:17px;margin-top:5px}.payslip-section{background:#fff;border-radius:18px;padding:18px;margin-top:16px;box-shadow:0 8px 24px rgba(25,45,80,.06)}.payslip-section h2{font-size:18px;margin:0 0 10px}.salary-row{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #edf1f6}.salary-row:last-child{border-bottom:0}.deduction{color:#d94848}.zero-item{display:none}.show-zero .zero-item{display:flex}.text-btn{border:0;background:none;color:#1768d7;padding:12px 0}.full{width:100%;margin-top:18px;padding:15px}.secure-tip{text-align:center;color:#718096;font-size:13px}.watermark-layer{position:fixed;inset:0;display:grid;grid-template-columns:repeat(2,1fr);gap:60px;overflow:hidden;z-index:1;pointer-events:none;opacity:.045;transform:rotate(-24deg) scale(1.3)}.watermark-layer span{white-space:nowrap;font-size:16px}.privacy-cover{display:none;position:fixed;inset:0;z-index:99;background:#edf2f7;align-items:center;justify-content:center;font-size:18px;font-weight:700}.privacy-hidden .privacy-cover{display:flex}.token-result{max-width:650px}.token-code{font-size:38px;letter-spacing:8px;font-weight:800;color:#1768d7;background:#eef5ff;padding:20px;text-align:center;border-radius:14px;margin:20px 0}.token-result textarea{width:100%;min-height:160px;padding:14px;box-sizing:border-box}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions form{margin:0}.payslip-admin-form h2{grid-column:1/-1;border-bottom:1px solid #eef1f5;padding-bottom:10px}.span-full{grid-column:1/-1}@media(max-width:600px){.salary-hero>strong{font-size:34px}.payslip-login-card{padding:24px}.salary-hero>div{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr!important}}
@media print{body{display:none!important}}

/* V1.1.3.8.4.7.7.3.16.1 工资条后台月度管理与页面精修 */
.payslip-admin-head{align-items:flex-end}.payslip-month-nav{display:flex;align-items:center;justify-content:center;gap:32px;padding:18px 22px;margin-bottom:18px;position:relative}.payslip-month-nav>div{text-align:center}.payslip-month-nav strong{display:block;font-size:22px;color:#17233c}.payslip-month-nav span{display:block;margin-top:3px;color:#8791a5;font-size:13px}.month-arrow{font-weight:700;color:#2563d8;text-decoration:none;padding:8px 14px;border-radius:8px}.month-arrow:hover{background:#eef4ff}.month-picker{position:absolute;right:20px;display:flex;gap:8px;align-items:center}.month-picker input{height:38px;border:1px solid #d9e0ea;border-radius:8px;padding:0 10px}.payslip-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.payslip-stat-card{background:#fff;border:1px solid #e7ebf1;border-radius:12px;padding:18px 20px;box-shadow:0 2px 8px rgba(20,40,80,.04)}.payslip-stat-card span{display:block;color:#7d8798;font-size:13px;margin-bottom:10px}.payslip-stat-card strong{font-size:22px;color:#16233d}.payslip-list-card{padding:0;overflow:hidden}.payslip-admin-table{width:100%;table-layout:fixed;border-collapse:collapse}.payslip-admin-table th{background:#f7f9fc;color:#526077;font-weight:700;padding:14px 12px;text-align:left}.payslip-admin-table td{padding:14px 12px;border-top:1px solid #edf0f5;vertical-align:middle}.payslip-admin-table th:nth-child(1){width:90px}.payslip-admin-table th:nth-child(2){width:85px}.payslip-admin-table th:nth-child(3){width:125px}.payslip-admin-table th:nth-child(4),.payslip-admin-table th:nth-child(5){width:120px}.payslip-admin-table th:nth-child(6),.payslip-admin-table th:nth-child(7){width:105px}.payslip-admin-table th:nth-child(8){width:145px}.payslip-admin-table th:nth-child(9){width:300px}.payslip-admin-table .money{text-align:right;font-variant-numeric:tabular-nums}.payslip-admin-table .net{font-weight:700;color:#2563d8}.payslip-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.payslip-actions form{margin:0}.btn-danger{background:#fff;color:#d14343;border:1px solid #efb6b6}.btn-danger:hover{background:#fff1f1}.is-voided{opacity:.65}.payslip-form-page{display:flex;flex-direction:column;gap:16px}.payslip-form-section{padding:22px}.payslip-form-section h2{margin:0 0 16px;font-size:18px;color:#17233c}.section-note{margin:-8px 0 16px;color:#8a93a5;font-size:13px}.payslip-form-grid{display:grid;gap:16px}.payslip-form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.payslip-form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.payslip-form-grid label,.payslip-summary-grid label,.full-width{display:flex;flex-direction:column;gap:7px;color:#4a566c;font-weight:600;font-size:14px}.payslip-form-grid input,.payslip-summary-grid input,.payslip-form-section textarea{width:100%;box-sizing:border-box;border:1px solid #d9e0ea;border-radius:8px;min-height:42px;padding:9px 11px;background:#fff}.money-input{display:flex;align-items:center;border:1px solid #d9e0ea;border-radius:8px;background:#fff;overflow:hidden}.money-input span{padding-left:11px;color:#8a93a5}.money-input input{border:0!important;border-radius:0!important;box-shadow:none!important}.payslip-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end}.payslip-summary-grid>div{background:#f7f9fc;border-radius:10px;padding:14px}.payslip-summary-grid>div span{display:block;color:#7c8799;font-size:13px;margin-bottom:8px}.payslip-summary-grid>div strong{font-size:20px;color:#17233c}.payslip-summary-grid small{color:#8a93a5;font-weight:400}.full-width{margin-top:16px}.payslip-form-actions{position:sticky;bottom:0;background:rgba(248,250,253,.95);backdrop-filter:blur(8px);padding:14px 0;display:flex;justify-content:flex-end;gap:10px;z-index:5}
@media(max-width:900px){.payslip-stat-grid{grid-template-columns:repeat(2,1fr)}.payslip-month-nav{justify-content:space-between}.month-picker{position:static}.payslip-form-grid.cols-3,.payslip-form-grid.cols-4,.payslip-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.payslip-stat-grid{grid-template-columns:1fr}.payslip-month-nav{flex-wrap:wrap;gap:8px}.month-picker{width:100%;justify-content:center}.payslip-form-grid.cols-3,.payslip-form-grid.cols-4,.payslip-summary-grid{grid-template-columns:1fr}.payslip-form-section{padding:16px}}

/* V1.1.3.8.4.7.7.3.16.2 工资条手机预览 */
.payslip-preview-layout{display:grid;grid-template-columns:minmax(360px,430px) minmax(320px,1fr);gap:28px;align-items:start;max-width:1180px;margin:0 auto}.phone-preview-shell{display:flex;justify-content:center}.phone-preview-screen{position:relative;width:390px;min-height:720px;padding:18px;background:#eef3fb;border:10px solid #172033;border-radius:38px;box-shadow:0 20px 50px rgba(15,23,42,.18);overflow:hidden}.phone-preview-screen:before{content:"";display:block;width:110px;height:20px;margin:-10px auto 14px;background:#172033;border-radius:0 0 14px 14px}.preview-watermark{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%) rotate(-25deg);width:150%;text-align:center;color:rgba(40,90,180,.08);font-size:18px;font-weight:700;pointer-events:none}.preview-mobile-head{position:relative;z-index:1;text-align:center;margin-bottom:14px}.preview-mobile-head h2{margin:12px 0 8px}.payslip-preview-panel{position:sticky;top:20px;padding:24px}.preview-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.preview-summary div{padding:12px;border:1px solid #e5e7eb;border-radius:10px;background:#fafcff}.preview-summary dt{font-size:12px;color:#64748b}.preview-summary dd{margin:5px 0 0;font-weight:700}.calc-check{padding:14px;border-radius:10px;margin:18px 0}.calc-check.is-ok{background:#ecfdf3;border:1px solid #a7f3d0}.calc-check.is-warning{background:#fff7ed;border:1px solid #fed7aa}.calc-check p{margin:6px 0 0;color:#475569}.preview-confirm{display:flex;align-items:flex-start;gap:8px;margin:18px 0;line-height:1.5}.preview-confirm input{margin-top:4px}.phone-preview-screen .payslip-section,.phone-preview-screen .salary-hero{position:relative;z-index:1}.phone-preview-screen .salary-hero{margin-bottom:14px}.phone-preview-screen .payslip-section{margin-bottom:12px}.phone-preview-screen .btn.full{position:relative;z-index:1}@media(max-width:900px){.payslip-preview-layout{grid-template-columns:1fr}.payslip-preview-panel{position:static}.phone-preview-screen{width:min(390px,100%)}}

/* V1.1.3.8.4.7.7.3.17.1 销售日报 PDF 识别与页面精修 */
.sales-upload-card{max-width:900px}.sales-upload-form{display:grid;grid-template-columns:1fr minmax(260px,420px) auto;gap:18px;align-items:center}.sales-import-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.sales-import-summary>div{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px 20px;box-shadow:0 4px 16px rgba(15,23,42,.04);display:flex;flex-direction:column;gap:4px}.sales-import-summary strong{font-size:24px}.sales-import-summary span,.muted{color:#64748b}.sales-form-grid,.followup-edit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.sales-form-grid label,.followup-edit-grid label,.review-card label{display:flex;flex-direction:column;gap:7px;font-weight:600}.sales-form-grid input,.sales-form-grid select,.followup-edit-grid input,.followup-edit-grid select,.followup-edit-card textarea,.review-card textarea{width:100%;border:1px solid #d8dee8;border-radius:9px;padding:10px 12px;background:#fff;font:inherit}.section-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.section-title-row h2{margin:0 0 5px}.section-title-row p{margin:0;color:#64748b}.sales-performance-table input{width:100%;min-width:90px;border:1px solid #d8dee8;border-radius:8px;padding:9px}.money-input{display:flex;align-items:center;gap:7px}.money-input span{font-weight:700}.monthly-cumulative-row{background:#f8fafc}.inline-progress{display:flex;align-items:center;gap:7px;margin-top:8px;color:#64748b}.inline-progress input{max-width:90px}.followup-card-list{display:grid;gap:16px}.followup-edit-card,.followup-detail-card{border:1px solid #e2e8f0;border-radius:13px;padding:18px;background:#fff}.followup-edit-card>label{display:flex;flex-direction:column;gap:7px;margin-top:14px;font-weight:600}.btn-danger-light{margin-top:12px;color:#b42318;background:#fff5f5;border-color:#fecaca}.sticky-submit-bar{position:sticky;bottom:12px;display:flex;justify-content:flex-end;gap:10px;padding:13px 16px;margin-top:16px;background:rgba(255,255,255,.94);border:1px solid #e2e8f0;border-radius:13px;box-shadow:0 10px 30px rgba(15,23,42,.12);backdrop-filter:blur(8px);z-index:5}.page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sales-detail-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.followup-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.followup-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.followup-detail-card p{margin:12px 0 0;line-height:1.75;white-space:pre-wrap}.status-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#eef4ff;color:#2563eb;font-size:12px;white-space:nowrap}.sales-monthly-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.sales-filter{justify-content:flex-end}.text-warning{color:#b54708}.alert-warning{background:#fff8e6;border:1px solid #fedf89;color:#93370d;border-radius:10px;padding:12px 16px;margin-bottom:16px}
@media(max-width:1100px){.sales-detail-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.sales-form-grid,.followup-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sales-monthly-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.sales-upload-form{grid-template-columns:1fr}.sales-import-summary,.sales-form-grid,.followup-edit-grid,.sales-detail-stats,.sales-monthly-stats,.followup-detail-list{grid-template-columns:1fr}.section-title-row{flex-direction:column}.sticky-submit-bar{bottom:6px}.table-card{overflow-x:auto}}

/* V1.1.3.8.4.7.7.3.17.2 销售日报 PDF 核对页布局精修 */
.sales-import-form{width:100%;max-width:1400px}.sales-import-summary.compact>div{padding:14px 18px;min-height:72px}.sales-import-summary.compact strong{font-size:21px}.sales-import-section{padding:20px 22px;margin-bottom:16px}.sales-basic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.sales-basic-grid label,.followup-edit-grid label,.communication-field{display:flex;flex-direction:column;gap:7px;font-weight:600;color:#3f4b5f}.sales-basic-grid input,.sales-basic-grid select,.followup-edit-grid input,.followup-edit-grid select,.communication-field textarea{width:100%;box-sizing:border-box;border:1px solid #d7dee8;border-radius:9px;background:#fff;font:inherit;outline:none;transition:border-color .18s,box-shadow .18s}.sales-basic-grid input,.sales-basic-grid select,.followup-edit-grid input,.followup-edit-grid select{height:42px;padding:0 11px}.sales-basic-grid input:focus,.sales-basic-grid select:focus,.followup-edit-grid input:focus,.followup-edit-grid select:focus,.communication-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}.needs-review select{border-color:#f59e0b;background:#fffbeb}.sales-money-field{height:42px;display:flex;align-items:center;border:1px solid #d7dee8;border-radius:9px;background:#fff;overflow:hidden}.sales-money-field span{padding-left:11px;color:#7b8798;font-weight:700}.sales-money-field input{height:40px!important;border:0!important;box-shadow:none!important;padding-left:8px!important}.sales-performance-wrap{overflow-x:auto;border:1px solid #e4e9f0;border-radius:12px}.sales-performance-edit-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:760px}.sales-performance-edit-table th,.sales-performance-edit-table td{padding:12px 14px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:middle}.sales-performance-edit-table th{background:#f7f9fc;color:#526076;font-size:13px}.sales-performance-edit-table th:nth-child(1){width:25%}.sales-performance-edit-table th:nth-child(2){width:18%}.sales-performance-edit-table th:nth-child(3){width:27%}.sales-performance-edit-table th:nth-child(4){width:30%}.sales-performance-edit-table tr:last-child td{border-bottom:0}.sales-performance-edit-table input{width:100%;box-sizing:border-box;height:40px;border:1px solid #d7dee8;border-radius:8px;padding:0 10px;font:inherit}.number-input{text-align:right;font-variant-numeric:tabular-nums}.sales-performance-edit-table .sales-money-field{height:40px}.sales-total-row{background:#eef6ff}.sales-total-row td:first-child{color:#1d4ed8}.sales-monthly-row{background:#f7f5ff}.sales-monthly-row td:first-child{color:#6d28d9}.is-zero-row{color:#8b95a5}.is-zero-row input{background:#fafbfc;color:#7d8795}.table-note{color:#7a8495}.progress-field{display:flex;align-items:center;gap:8px;color:#596579;font-weight:600}.progress-field input{max-width:90px;text-align:right}.followup-card-list.compact-list{gap:12px}.followup-edit-card.compact-card{padding:16px 18px;border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.035)}.followup-edit-grid.five-cols{grid-template-columns:1.15fr .85fr .85fr 1fr 1fr;gap:12px}.communication-field{margin-top:13px}.communication-field textarea{min-height:88px;padding:11px 12px;line-height:1.65;resize:vertical;overflow:hidden}.followup-card-actions{display:flex;justify-content:flex-end;margin-top:10px}.followup-card-actions .btn-danger-light{margin:0}.sales-import-actions{align-items:center;justify-content:space-between}.action-hint{color:#5f6b7c;font-size:13px;line-height:1.5}.action-buttons{display:flex;gap:10px;align-items:center}.btn-light{background:#f7f9fc;border-color:#dce3ec}.btn-light:hover{background:#eef3f8}
@media(max-width:1180px){.sales-basic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.followup-edit-grid.five-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.sales-import-section{padding:16px}.sales-basic-grid,.followup-edit-grid.five-cols{grid-template-columns:1fr 1fr}.sales-performance-wrap{border:0;overflow:visible}.sales-performance-edit-table{min-width:0;display:block}.sales-performance-edit-table thead{display:none}.sales-performance-edit-table tbody,.sales-performance-edit-table tr,.sales-performance-edit-table td{display:block;width:100%;box-sizing:border-box}.sales-performance-edit-table tr{border:1px solid #e4e9f0;border-radius:10px;margin-bottom:10px;padding:10px;background:#fff}.sales-performance-edit-table td{border:0;padding:6px 0;display:grid;grid-template-columns:105px 1fr;gap:10px;align-items:center}.sales-performance-edit-table td:before{content:attr(data-label);font-size:12px;color:#7b8798;font-weight:600}.sales-total-row,.sales-monthly-row{background:#fff}.sales-import-actions{flex-direction:column;align-items:stretch}.action-buttons{width:100%}.action-buttons .btn{flex:1}}
@media(max-width:520px){.sales-basic-grid,.followup-edit-grid.five-cols{grid-template-columns:1fr}.sales-import-summary.compact{grid-template-columns:1fr}.followup-title-row{align-items:stretch}.followup-title-row .btn{width:100%}}
