/* ===== 中国斯奔运营系统 - 全局样式（红色主题企业风格） ===== */
:root {
    --primary: #c41230;
    --primary-dark: #a00e26;
    --primary-light: #fff0f0;
    --bg: #f5f6fa;
    --white: #ffffff;
    --text: #333333;
    --text-secondary: #666666;
    --border: #e0e0e0;
    --danger: #e74c3c;
    --danger-hover: #c0392b;
    --success: #27ae60;
    --warning: #f39c12;
    --shadow: 0 2px 8px rgba(0,0,0,0.08);
    --radius: 6px;
}

/* ===== 财务管理 ===== */
.finance-filter-bar {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px;
    margin-bottom: 16px;
}

.finance-filter-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.finance-dashboard-segments {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.finance-segment-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.finance-segment-label {
    width: 56px;
    flex: 0 0 56px;
    color: var(--text-secondary);
    font-size: 13px;
}

.finance-period-control,
.finance-category-control,
.finance-status-control {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    flex-shrink: 0;
}

.finance-period-btn,
.finance-category-btn,
.finance-status-btn {
    min-width: 64px;
    min-height: 34px;
    padding: 6px 14px;
    border: none;
    border-right: 1px solid var(--border);
    background: var(--white);
    color: var(--text-secondary);
    cursor: pointer;
    font-size: 13px;
    white-space: nowrap;
}

.finance-period-btn:last-child,
.finance-category-btn:last-child,
.finance-status-btn:last-child { border-right: none; }
.finance-period-btn:hover,
.finance-category-btn:hover,
.finance-status-btn:hover { color: var(--primary); background: var(--primary-light); }
.finance-period-btn.active,
.finance-category-btn.active,
.finance-status-btn.active { background: var(--primary); color: #fff; }

.finance-category-btn,
.finance-status-btn { min-width: 86px; }

.finance-scope {
    color: var(--text-secondary);
    font-size: 13px;
    text-align: right;
}

.finance-filter-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(200px, 1fr) auto;
    align-items: end;
    gap: 12px;
}

.finance-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    color: var(--text-secondary);
    font-size: 13px;
}

.finance-field input,
.finance-field select,
.finance-field textarea {
    width: 100%;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
    color: var(--text);
    font-size: 13px;
    outline: none;
}

.finance-field input:focus,
.finance-field select:focus,
.finance-field textarea:focus { border-color: var(--primary); }
.finance-field input[readonly] { background: #f8f9fb; color: var(--text-secondary); }

.finance-filter-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
}

.finance-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.finance-kpi {
    min-width: 0;
    min-height: 104px;
    padding: 16px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.finance-kpi-label,
.finance-kpi-context { color: var(--text-secondary); font-size: 12px; }
.finance-kpi-value { font-size: 21px; font-weight: 600; color: var(--text); white-space: nowrap; }

.finance-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 18px 0 10px;
}

.finance-section-header > div {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
}

.finance-section-header h3 { font-size: 16px; font-weight: 600; }
.finance-section-header span { color: var(--text-secondary); font-size: 12px; }

.finance-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.finance-order-table { min-width: 1420px; }
.finance-payment-table { min-width: 1120px; }
.finance-completed-table { min-width: 1280px; }
.data-table.finance-detail-table { min-width: 660px; box-shadow: none; }
.finance-money { text-align: right !important; white-space: nowrap; }
.finance-positive { color: var(--success); }
.finance-outstanding { color: var(--primary); font-weight: 600; }

.finance-status {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 3px;
    font-size: 12px;
    white-space: nowrap;
}

.finance-status.unpaid { background: #fff1f0; color: var(--primary); }
.finance-status.partial { background: #fef3e2; color: #a65d00; }
.finance-status.paid { background: #eaf7ef; color: #176b45; }
.finance-status.overpaid { background: #eef3fb; color: #285c9d; }
.finance-status.pending { background: #eef3fb; color: #285c9d; }
.finance-status.overdue { background: #fff1f0; color: #9e1730; font-weight: 600; }

.finance-category-tag {
    display: inline-block;
    padding: 3px 7px;
    border: 1px solid var(--border);
    border-radius: 3px;
    background: #f6f7f9;
    color: var(--text-secondary);
    font-size: 12px;
    white-space: nowrap;
}

.finance-category-tag.equipment { background: #fff1f0; border-color: #f3c3ca; color: #9e1730; }
.finance-category-tag.parts { background: #eef5ff; border-color: #c8dbf5; color: #255d9a; }
.finance-category-tag.consumables { background: #fff7e8; border-color: #efd6a5; color: #8a5a00; }
.finance-category-tag.parts_consumables { background: #eef5ff; border-color: #c8dbf5; color: #255d9a; }
.finance-category-tag.other { background: #f4f4f5; border-color: #d8d8de; color: #4f4f5a; }
.finance-category-tag.service { background: #eaf7ef; border-color: #bee2ca; color: #176b45; }
.finance-document-time { white-space: nowrap; }

.finance-row-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.modal.finance-detail-modal { width: 920px; max-width: 94vw; }
.finance-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(130px, 1fr));
    gap: 12px;
}

.finance-detail-value {
    padding: 10px 12px;
    background: #f8f9fb;
    border-radius: var(--radius);
    min-width: 0;
}

.finance-detail-value.wide {
    grid-column: 1 / -1;
}

.finance-detail-value span {
    display: block;
    margin-bottom: 5px;
    color: var(--text-secondary);
    font-size: 12px;
}

.finance-detail-value strong {
    display: block;
    color: var(--text);
    font-size: 14px;
    overflow-wrap: anywhere;
}

.finance-detail-heading { margin: 20px 0 10px; font-size: 14px; font-weight: 600; }

.table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.product-master-table { min-width: 1580px; }
.supplier-master-table { min-width: 1180px; }
.muted { color: var(--text-secondary); font-size: 12px; }

.product-library-tip,
.product-form-tip {
    padding: 10px 12px;
    border-left: 3px solid var(--primary);
    background: #fff6f7;
    color: #71303b;
    font-size: 13px;
    line-height: 1.6;
}

.product-library-tip { margin: -4px 0 14px; }
.product-form-tip { margin-bottom: 16px; }
.modal.product-master-modal { width: 780px; max-width: 94vw; }
.product-master-modal .form-group input:disabled {
    background: #f3f4f6;
    color: var(--text-secondary);
    cursor: not-allowed;
}

.supplier-agreement-upload {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.supplier-agreement-upload input[type="file"] {
    flex: 1;
    min-width: 220px;
}

.supplier-agreement-list {
    margin-top: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #f8f9fb;
    overflow: hidden;
}

.supplier-agreement-empty {
    padding: 10px 12px;
}

.supplier-agreement-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    background: #fff;
}

.supplier-agreement-item:last-child { border-bottom: none; }
.supplier-agreement-item a { color: var(--primary); font-weight: 500; text-decoration: none; }
.supplier-agreement-item a:hover { text-decoration: underline; }
.supplier-agreement-item .muted { display: block; margin-top: 3px; }

.quality-layout { display: flex; flex-direction: column; gap: 16px; }
.quality-form-card { margin-bottom: 0; }
.quality-upload-tip {
    margin-bottom: 14px;
    padding: 10px 12px;
    border: 1px solid #f2d58b;
    border-radius: var(--radius);
    background: #fff8e1;
    color: #7a4a00;
    font-size: 13px;
    line-height: 1.6;
}
.quality-form-grid {
    display: grid;
    grid-template-columns: minmax(160px, 0.7fr) minmax(220px, 1fr) minmax(260px, 1.2fr);
    gap: 12px;
    margin-bottom: 12px;
}
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.quality-wide-field { margin-bottom: 12px; }
.quality-filter-grid {
    grid-template-columns: minmax(160px, 0.7fr) minmax(220px, 1fr) minmax(240px, 1.2fr) auto;
}
.quality-table { min-width: 760px; }
.quality-table a { color: var(--primary); font-weight: 500; text-decoration: none; }
.quality-table a:hover { text-decoration: underline; }
.quality-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

.customer-tertiary-section {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}
.customer-tertiary-section .toolbar h3 {
    font-size: 15px;
}
.claim-review-card {
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: var(--shadow);
}
.claim-review-card.error {
    color: var(--danger);
}
.claim-review-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.claim-review-head h3 {
    margin: 0;
    font-size: 15px;
}
.claim-review-head span {
    color: var(--text-secondary);
    font-size: 12px;
}

/* 大客户经理个人看板 */
.manager-dashboard {
    background: #f4f7fb;
    border: 1px solid #e4e9f1;
    border-radius: 10px;
    padding: 18px;
    margin-bottom: 16px;
    box-shadow: var(--shadow);
}
.manager-dashboard.loading,
.manager-dashboard.error {
    color: var(--text-secondary);
    box-shadow: none;
}
.manager-dashboard.error { color: var(--danger); }
.manager-dashboard-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}
.manager-dashboard-head h3 { font-size: 19px; margin-bottom: 5px; color: #172033; }
.manager-dashboard-head span { color: var(--text-secondary); font-size: 12px; }
.manager-dashboard-head-actions { justify-content:flex-end; }
.manager-view-tabs {
    display: flex;
    gap: 4px;
    margin: 0 -16px 16px;
    padding: 0 16px;
    border-bottom: 1px solid #e3e8f0;
    background: #fff;
    overflow-x: auto;
}
.manager-view-tab {
    min-height: 40px;
    padding: 0 14px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: 13px;
    white-space: nowrap;
    cursor: pointer;
}
.manager-view-tab.active {
    border-bottom-color: var(--primary);
    color: var(--primary);
    font-weight: 600;
}
.manager-view-content { min-height: 260px; }
.manager-kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 10px;
}
.dashboard-metric-strip {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    margin-bottom: 14px;
}
.manager-kpi {
    min-width: 0;
    min-height: 122px;
    padding: 17px 18px;
    border: 1px solid #e7ebf2;
    border-radius: 8px;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(31, 43, 68, .04);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.manager-kpi::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #2f80ed;
}
.manager-kpi:hover { transform: translateY(-2px); border-color: #cfd9e8; box-shadow: 0 8px 22px rgba(31,43,68,.09); }
.manager-kpi span,
.manager-kpi em { color: var(--text-secondary); font-size: 12px; font-style: normal; }
.manager-kpi strong {
    color: #172033;
    font-size: 25px;
    font-weight: 700;
    white-space: nowrap;
}
.manager-kpi.accent { background: #fff; border-color: #cfe0fb; }
.manager-kpi.accent::before { background: #2f80ed; }
.manager-kpi.accent strong { color: #2f80ed; }
.manager-kpi.score { background:#fff; border-color:#efcbd2; }
.manager-kpi.score::before { background:var(--primary); }
.manager-kpi.score strong { color:var(--primary); }
.manager-kpi.warn { background: #fff8e1; border-color: #f2d58b; }
.manager-kpi.warn::before { background: #f5a623; }
.manager-kpi.warn strong { color: #a65d00; }
.manager-progress-block {
    margin: 14px 0;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
}
.dashboard-progress { position: relative; padding-right: 140px; background: #fff; }
.dashboard-progress .dashboard-detail-link { position: absolute; right: 14px; top: 13px; }
.manager-progress-block > div:first-child {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    color: var(--text-secondary);
    font-size: 13px;
}
.manager-progress {
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    background: #eef0f4;
}
.manager-progress i {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--primary), #ef6b7d);
}
.manager-panel-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    gap: 10px;
}
.manager-panel-grid.manager-panel-grid-2 { grid-template-columns: repeat(2, minmax(280px, 1fr)); }
.manager-panel {
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px;
    background: #fff;
}
.dashboard-chart-card,
.dashboard-list-card {
    background: #fff;
    border-color: #e4e9f1;
    box-shadow: 0 2px 10px rgba(31,43,68,.04);
}
.dashboard-chart-card { min-height: 265px; padding: 16px; }
.dashboard-list-card { padding: 16px; border-radius: 8px; background: #fff; }
.dashboard-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.dashboard-card-head h4 { margin: 0; color: #172033; }
.dashboard-detail-link {
    border: 0;
    padding: 4px 0;
    background: none;
    color: #2f80ed;
    font-size: 12px;
    cursor: pointer;
}
.dashboard-detail-link:hover { color: #145cb8; text-decoration: underline; }
.today-action-reminders { margin: -2px 0 16px; }
.today-action-reminder-list { display: grid; grid-template-columns: 1fr; gap: 9px; }
.today-action-reminder { display: flex; align-items: center; gap: 14px; min-width: 0; min-height: 58px; padding: 12px 15px; border: 1px solid #e0e6ef; border-left: 3px solid #2f80ed; border-radius: 5px; background: #fff; color: #172033; text-align: left; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.today-action-reminder:hover { border-color: #9dbce9; box-shadow: 0 4px 12px rgba(31,43,68,.08); transform: translateY(-1px); }
.today-action-reminder > span { display: grid; min-width: 0; flex: 1; gap: 5px; }
.today-action-reminder > span strong { overflow: hidden; color: #25324a; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.today-action-reminder > span small { overflow: hidden; color: var(--text-secondary); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.today-action-reminder > b { min-width: 28px; color: #2f80ed; font-size: 20px; text-align: right; }
.today-action-reminder > i { min-width: 46px; color: #2f80ed; font-size: 11px; font-style: normal; text-align: right; white-space: nowrap; }
.today-action-reminder.warning { border-left-color: #d89000; }
.today-action-reminder.warning > b,.today-action-reminder.warning > i { color: #a65d00; }
.today-action-reminder.danger { border-left-color: #c41230; }
.today-action-reminder.danger > b,.today-action-reminder.danger > i { color: #c41230; }
.today-action-reminders-empty { padding: 8px 0 2px; color: var(--text-secondary); font-size: 12px; }
.manager-donut-row { display: grid; grid-template-columns: 180px minmax(150px, 1fr); align-items: center; gap: 24px; min-height: 190px; }
.manager-donut {
    width: 158px;
    height: 158px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin: 0 auto;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}
.manager-donut > div {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #172033;
    font-size: 24px;
    font-weight: 700;
    box-shadow: 0 2px 12px rgba(31,43,68,.12);
}
.manager-donut small { margin-top: 2px; color: #8a94a6; font-size: 11px; font-weight: 400; }
.manager-legend { display: grid; gap: 9px; }
.manager-legend > div { display: grid; grid-template-columns: 9px minmax(0,1fr) auto; align-items: center; gap: 8px; font-size: 12px; }
.manager-legend i { width: 9px; height: 9px; border-radius: 50%; }
.manager-legend span { color: #657086; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manager-legend b { color: #172033; }
.manager-panel h4 {
    font-size: 14px;
    margin-bottom: 10px;
}
.manager-team-table {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.manager-team-table h4 {
    font-size: 14px;
    margin-bottom: 10px;
}
.manager-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.manager-section-head h4 { margin: 0; }
.manager-section-head span { color: var(--text-secondary); font-size: 12px; }
.manager-table-empty { padding: 24px !important; text-align: center; color: var(--text-secondary); }
.manager-link {
    border: 0;
    padding: 0;
    background: none;
    color: var(--primary);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}
.manager-risk-tag {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 3px;
    background: #fff4e5;
    color: #9a5700;
    font-size: 12px;
}
.manager-risk-tag.risk-receivable { background: #fdecef; color: var(--danger); }
.manager-order-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 1px;
    margin-bottom: 14px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--border);
}
.manager-order-flow > button {
    min-width: 0;
    padding: 14px;
    background: #fff;
    border: 0;
    text-align: left;
    cursor: pointer;
    transition: background .18s ease;
}
.manager-order-flow > button:hover { background: #f0f6ff; }
.manager-order-flow span,
.manager-order-flow em { display: block; color: var(--text-secondary); font-size: 12px; font-style: normal; }
.manager-order-flow strong { display: block; margin: 6px 0 2px; font-size: 22px; }
.manager-order-flow small { display: block; margin-top: 9px; color: #2f80ed; font-size: 11px; }
.text-danger { color: var(--danger); }
.manager-bar-row {
    display: grid;
    grid-template-columns: 58px 1fr 28px;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 12px;
}
.manager-bar-row div {
    height: 8px;
    border-radius: 999px;
    background: #eef0f4;
    overflow: hidden;
}
.manager-bar-row i {
    display: block;
    height: 100%;
    background: var(--primary);
}
.manager-list-item {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}
.manager-list-item:last-child { border-bottom: none; }
.manager-list-item div { min-width: 0; }
.manager-list-item strong {
    display: block;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.manager-list-item span {
    display: block;
    margin-top: 3px;
    color: var(--text-secondary);
    font-size: 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.manager-list-item b {
    flex-shrink: 0;
    color: var(--primary);
    font-size: 13px;
}
.manager-empty {
    color: var(--text-secondary);
    font-size: 12px;
    padding: 8px 0;
}
.sub-tabs-level3 { display: flex; align-items: center; gap: 4px; margin: -4px 0 14px; padding: 6px; border-radius: 6px; background: #f5f7fa; }
.sub-tab-level3 { min-height: 32px; padding: 0 14px; border: 0; border-radius: 4px; background: transparent; font-size: 12px; color: var(--text-secondary); }
.sub-tab-level3:hover,
.sub-tab-level3.active { color: var(--primary); background: #fff; box-shadow: 0 1px 4px rgba(31,43,68,.1); border-bottom-color: transparent; }
.growth-page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:4px 0 16px; }
.growth-page-head h3 { margin:0; color:#172033; font-size:20px; }
.growth-page-head p { margin:6px 0 0; color:var(--text-secondary); font-size:13px; }
.growth-search { width:280px; padding:9px 12px; border:1px solid var(--border); border-radius:5px; }
.growth-card-grid, .growth-product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.growth-card, .growth-product-card { padding:20px; border:1px solid var(--border); border-radius:8px; background:#fff; box-shadow:0 2px 8px rgba(31,43,68,.05); }
.growth-card-icon { width:36px; height:36px; display:flex; align-items:center; justify-content:center; margin-bottom:12px; border-radius:50%; background:#fff1d6; color:#b66a00; font-weight:700; }
.growth-card h4, .growth-product-card h4 { margin:0 0 8px; font-size:16px; color:#172033; }
.growth-card p, .growth-product-card p { min-height:42px; margin:0 0 16px; color:var(--text-secondary); font-size:13px; line-height:1.7; }
.growth-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.growth-product-type { display:inline-block; margin-bottom:10px; padding:3px 8px; border-radius:3px; background:#f4f8ff; color:var(--primary); font-size:11px; }
.growth-empty { grid-column:1/-1; padding:38px 16px; text-align:center; color:var(--text-secondary); border:1px dashed var(--border); border-radius:8px; background:#fff; }
@media (max-width: 900px) { .growth-page-head { align-items:stretch; flex-direction:column; } .growth-search { width:100%; } .growth-card-grid, .growth-product-grid { grid-template-columns:1fr; } }
.work-admin-panel { margin-top:16px; }
.work-admin-panel .admin-panel-title > div p { margin:4px 0 0; color:var(--text-secondary); font-size:12px; }
.work-rating-editor { margin-top:16px; padding-top:14px; border-top:1px solid var(--border); }
.work-rating-editor > strong { display:block; margin-bottom:10px; }
.work-rating-row { display:inline-flex; gap:6px; margin:0 8px 8px 0; }
.work-rating-row input { width:110px; padding:7px 8px; border:1px solid var(--border); border-radius:4px; }
.work-calendar-controls { display:flex; gap:8px; }
.work-calendar-controls input { padding:7px 8px; border:1px solid var(--border); border-radius:4px; }
.work-calendar-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.work-calendar-day { display:flex; min-width:0; flex-direction:column; gap:7px; padding:10px; border:1px solid var(--border); border-radius:6px; background:#fff; }
.work-calendar-day > span { color:var(--text-secondary); font-size:11px; }
.work-calendar-day img { width:100%; aspect-ratio:3/4; object-fit:cover; border:1px solid #eef1f5; }
.work-calendar-empty { display:flex; align-items:center; justify-content:center; aspect-ratio:3/4; background:#f5f7fa; color:var(--text-secondary); font-size:12px; }
.work-task-modal { max-width:720px; }
.work-task-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.work-task-wide { grid-column:1/-1; }
.work-evidence-options { display:flex; gap:16px; flex-wrap:wrap; }
.work-center { margin-bottom:16px; padding:16px; border:1px solid #dce3ed; border-radius:6px; background:#fff; }
.work-center-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.work-center-head h4 { margin:0; color:#172033; font-size:16px; }
.work-center-head p { margin:5px 0 0; color:var(--text-secondary); font-size:12px; }
.work-center-head > strong { color:#c41230; font-size:24px; text-align:right; }
.work-center-head > strong small { display:block; margin-top:3px; color:var(--text-secondary); font-size:11px; font-weight:400; }
.work-type-tabs { display:flex; align-items:center; gap:4px; margin:0 0 12px; padding:6px; border:0; border-radius:6px; background:#f5f7fa; }
.work-type-tabs button { position:relative; min-height:32px; padding:0 14px; border:0; border-bottom:2px solid transparent; border-radius:4px; background:transparent; color:var(--text-secondary); font-size:12px; font-weight:400; cursor:pointer; transition:all .2s; }
.work-type-tabs button::after { display:none; }
.work-type-tabs button:hover { color:var(--primary); background:#fff; }
.work-type-tabs button.active,
.work-type-tabs button[data-task-type="growth"].active { color:var(--primary); background:#fff; border-bottom-color:var(--primary); box-shadow:0 1px 4px rgba(31,43,68,.1); font-weight:600; }
.manager-kpi-grid.data-score-strip { grid-template-columns:minmax(240px,320px); }
.work-cycle-tabs { display:flex; gap:4px; margin-bottom:12px; padding:4px; background:#f5f7fa; }
.work-cycle-tabs button { min-width:74px; padding:7px 12px; border:0; border-radius:3px; background:transparent; color:var(--text-secondary); cursor:pointer; }
.work-cycle-tabs button.active { background:#fff; color:var(--primary); box-shadow:0 1px 4px rgba(31,43,68,.1); font-weight:600; }
.work-task-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.work-task-card { padding:16px; border:1px solid #dce3ed; border-left:4px solid #c41230; border-radius:5px; background:#fff; }
.work-task-card.growth { border-left-color:#2563eb; }
.work-task-title { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.work-task-title span { color:var(--primary); font-size:11px; }
.work-task-card.growth .work-task-title span { color:#2563eb; }
.work-task-title h5 { margin:4px 0 0; font-size:15px; }
.work-task-status { padding:4px 8px; border-radius:3px; background:#eef1f5; color:#64748b; font-size:11px; }
.work-task-status.complete { background:#e8f7ee; color:#16803c; }.work-task-status.progress { background:#fff4d8; color:#9a6500; }.work-task-status.danger { background:#fdebed; color:#c41230; }
.work-task-card > p { min-height:38px; margin:10px 0; color:var(--text-secondary); font-size:12px; line-height:1.6; }
.work-task-numbers { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
.work-task-numbers strong { font-size:24px; }.work-task-numbers strong small,.work-task-numbers span { color:var(--text-secondary); font-size:11px; }
.work-task-progress { height:7px; margin:9px 0; overflow:hidden; border-radius:2px; background:#e8edf5; }.work-task-progress i { display:block; height:100%; background:#c41230; }.work-task-card.growth .work-task-progress i { background:#2563eb; }
.work-task-meta,.work-task-actions { display:flex; justify-content:space-between; gap:8px; color:var(--text-secondary); font-size:11px; }
.work-task-actions { justify-content:flex-end; margin-top:12px; }
.work-task-calendar { display:flex; align-items:flex-end; gap:10px; margin-top:12px; }.work-task-calendar img { width:82px; aspect-ratio:3/4; object-fit:cover; border:1px solid var(--border); }
.work-task-empty { grid-column:1/-1; padding:28px 18px; border:1px dashed #cfd7e3; background:#f8fafc; color:var(--text-secondary); text-align:center; font-size:13px; }
.work-task-late { display:block; margin-top:8px; color:#a16207; font-size:11px; }
.work-task-evidence { margin-top:12px; padding:10px; border-left:3px solid #dce3ed; background:#f8fafc; font-size:12px; }
.work-task-evidence p { margin:0 0 6px; color:#334155; line-height:1.6; }
.work-task-evidence a { color:#2563eb; }
.work-task-review { display:flex; gap:8px; }
.work-task-customers { margin-top:12px; border-top:1px solid #eef1f5; }.work-task-customers summary { padding:10px 0 4px; color:var(--primary); cursor:pointer; font-size:12px; }.work-task-customers > div { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; border-top:1px solid #f1f3f6; }.work-task-customers span strong,.work-task-customers span small { display:block; }.work-task-customers span small { margin-top:2px; color:var(--text-secondary); font-size:10px; }
.work-team-actions,.work-settings-toolbar { display:flex; align-items:center; gap:8px; margin-top:10px; }.work-settings-toolbar { justify-content:space-between; margin:0 0 12px; color:var(--text-secondary); font-size:12px; }.work-settings-toolbar input { padding:7px 9px; border:1px solid var(--border); border-radius:4px; }.work-settings-modal { max-width:820px; }.calendar-settings-modal { max-width:1060px; }
.work-review-section { margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }
.work-review-section h4 { margin:0 0 10px; font-size:14px; }.work-review-section h4 span { color:var(--primary); }
.work-month-summary { grid-column:1/-1; margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.work-month-summary-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px; background:#f8fafc; }
.work-month-summary-head h5 { margin:0 0 5px; font-size:15px; }.work-month-summary-head span { color:var(--text-secondary); font-size:11px; }
.work-month-summary-head > strong { color:var(--primary); font-size:26px; text-align:right; }.work-month-summary-head > strong small { display:block; color:var(--text-secondary); font-size:11px; font-weight:400; }
.work-score-trend,.work-score-details { margin-top:16px; }.work-score-trend h6,.work-score-details h6 { margin:0 0 10px; font-size:13px; }
.work-score-trend-row { display:grid; grid-template-columns:68px minmax(120px,1fr) 60px 64px; align-items:center; gap:10px; margin:8px 0; font-size:11px; }
.work-score-trend-row > div { height:8px; overflow:hidden; background:#e8edf5; }.work-score-trend-row i { display:block; height:100%; background:#16803c; }.work-score-trend-row i.negative { background:#c41230; }
.work-score-trend-row b { text-align:right; }.work-score-trend-row em { color:var(--text-secondary); font-style:normal; }
@media (max-width:1100px){.work-calendar-week{grid-template-columns:repeat(4,1fr)}.work-task-grid{grid-template-columns:1fr}}@media (max-width:700px){.work-calendar-week,.work-task-form-grid{grid-template-columns:1fr}.work-task-wide{grid-column:auto}.work-center-head{align-items:flex-start;flex-direction:column}}
.data-dashboard-grid { align-items: stretch; }
.data-dashboard-grid .dashboard-chart-card { min-height: 238px; }
.data-dashboard-grid .data-wide-card { grid-column: 1 / -1; }
.data-performance-card { min-height: 330px !important; }
.data-score-card .dashboard-card-head { align-items: center; }
.data-score-status { padding: 4px 8px; border-radius: 999px; background: #f1eafe; color: #7c3aed; font-size: 11px; white-space: nowrap; }
.data-score-donut { --score-color: #8b5cf6; }
.data-score-donut.is-negative { --score-color: #ef4444; }
.data-score-donut:hover { box-shadow: 0 12px 28px rgba(139,92,246,.22); }
.data-score-donut.is-negative:hover { box-shadow: 0 12px 28px rgba(239,68,68,.22); }
.data-stat-list { display: grid; gap: 0; margin-top: 8px; }
.data-stat-list > div { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid #eef1f5; }
.data-stat-list > div:last-child { border-bottom: 0; }
.data-stat-list span { color: var(--text-secondary); font-size: 13px; }
.data-stat-list b { color: #172033; font-size: 15px; }
.data-donut-wrap { display: flex; align-items: center; justify-content: center; gap: 24px; min-height: 176px; }
.data-donut { width: 142px; height: 142px; flex-shrink: 0; }
.data-donut > div { width: 82px; height: 82px; font-size: 22px; }
.data-donut-legend { display: grid; gap: 10px; color: var(--text-secondary); font-size: 12px; }
.data-donut-wrap-large { min-height: 250px; gap: 54px; }
.data-donut-large { width: 230px; height: 230px; }
.data-donut-large > div { width: 132px; height: 132px; font-size: 34px; }
.data-donut-large > div small { font-size: 13px; }
.data-donut-interactive { cursor: pointer; transition: transform .22s ease, box-shadow .22s ease, filter .22s ease; }
.data-donut-interactive:hover { transform: scale(1.08); box-shadow: 0 12px 28px rgba(37,99,235,.22); filter: saturate(1.15); }
.data-donut-interactive:hover > div { box-shadow: 0 4px 18px rgba(31,43,68,.2); }
.data-performance-detail { min-width: 250px; gap: 12px; font-size: 14px; }
.data-performance-detail strong { color: #172033; font-size: 28px; }

@media (max-width: 1100px) {
    .manager-kpi-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
    .manager-panel-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}

@media (max-width: 700px) {
    .manager-dashboard { padding: 12px; }
    .manager-dashboard-head { align-items: flex-start; }
    .manager-view-tabs { margin-left: -12px; margin-right: -12px; padding: 0 12px; }
    .manager-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .manager-kpi { min-height: 88px; padding: 10px; }
    .manager-kpi strong { font-size: 17px; }
    .manager-panel-grid { grid-template-columns: 1fr; }
    .manager-panel-grid-2 { grid-template-columns: 1fr; }
    .manager-order-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .manager-donut-row { grid-template-columns: 1fr; gap: 12px; }
    .manager-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-progress { padding-right: 12px; padding-bottom: 42px; }
    .dashboard-progress .dashboard-detail-link { top: auto; bottom: 9px; }
    .today-action-reminder { min-height: 54px; padding: 11px 12px; }
}

/* 客户查重与详情 */
.customer-duplicate-box {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(360px, auto);
    gap: 12px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 14px;
    margin-bottom: 12px;
}
.customer-duplicate-box strong { display: block; font-size: 14px; margin-bottom: 4px; }
.customer-duplicate-box span { color: var(--text-secondary); font-size: 12px; }
.customer-duplicate-controls { display: flex; gap: 8px; align-items: center; justify-content: flex-end; }
.customer-duplicate-controls input {
    width: 230px;
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.customer-duplicate-result {
    grid-column: 1 / -1;
    min-height: 18px;
    font-size: 13px;
    color: var(--text-secondary);
}
.customer-duplicate-result.success { color: #1f7a3d; }
.customer-duplicate-result.danger { color: var(--danger); }
.customer-duplicate-result.warn { color: #a65d00; }
.customer-expand-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.customer-expand-head strong { font-size: 14px; }
.customer-expand-head > div { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.customer-expand-grid {
    display: grid;
    grid-template-columns: minmax(240px, 0.75fr) minmax(360px, 1.25fr);
    gap: 12px;
}
.customer-expand-card {
    min-width: 0;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px;
}
.customer-expand-card h4,
.customer-detail-section h4,
.customer-detail-grid h4 {
    margin-bottom: 10px;
    font-size: 14px;
}
.pool-eval-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px;
}
.pool-eval-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}
.pool-eval-summary div {
    min-width: 0;
    padding: 10px 12px;
    background: #f8f9fb;
    border: 1px solid #edf0f4;
    border-radius: var(--radius);
}
.pool-eval-summary span {
    display: block;
    margin-bottom: 5px;
    color: var(--text-secondary);
    font-size: 12px;
}
.pool-eval-summary strong {
    display: block;
    color: var(--primary);
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pool-eval-grid {
    grid-template-columns: minmax(360px, 0.9fr) minmax(520px, 1.1fr);
    margin-bottom: 12px;
}
.pool-eval-stack .customer-detail-section {
    margin-bottom: 12px;
}
.customer-followup-preview-item {
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}
.customer-followup-preview-item:last-child { border-bottom: none; }
.customer-followup-preview-item strong { display: block; font-size: 13px; margin-bottom: 4px; }
.customer-followup-preview-item p {
    margin: 0 0 4px;
    color: var(--text);
    font-size: 13px;
    line-height: 1.5;
}
.customer-followup-preview-item span,
.customer-empty-line {
    color: var(--text-secondary);
    font-size: 12px;
}
#followup-modal #fu-form-date[readonly] {
    border-color: #d8dce3;
    background: #f5f6f8;
    color: var(--text-secondary);
    cursor: not-allowed;
}
#followup-modal .followup-date-hint { margin-top: 5px; line-height: 1.4; }
.modal.customer-master-modal {
    width: min(94vw, 1080px);
    max-width: 1080px;
    height: 92vh;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.customer-master-modal .modal-header,
.customer-master-modal .modal-footer { flex-shrink: 0; }
.customer-master-modal .modal-header > div { min-width: 0; }
.customer-master-modal .modal-header h3 { margin: 0; }
.customer-modal-subtitle {
    display: block;
    margin-top: 3px;
    color: var(--text-secondary);
    font-size: 12px;
}
.customer-master-modal #customer-form {
    min-height: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.modal.customer-master-modal .modal-body {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    padding: 4px 28px 28px;
}
.customer-form-section {
    padding: 22px 0 6px;
    border-top: 1px solid var(--border);
}
.customer-form-section:first-child { border-top: none; }
.customer-form-section h4 {
    margin: 0 0 16px;
    color: var(--text);
    font-size: 14px;
}
.customer-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 20px;
}
.customer-form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.customer-form-grid .form-group { min-width: 0; }
.customer-location-grid {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 20px;
}
.customer-filter-region {
    width: 142px;
    min-width: 0;
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: #fff;
}
.customer-grid-full { grid-column: 1 / -1; }
.required-mark { color: var(--danger); }
.customer-invoice-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: -2px 0 18px;
    padding: 11px 14px;
    border-left: 3px solid #d48806;
    background: #fff8e8;
    color: #6b4b00;
    font-size: 13px;
    line-height: 1.5;
}
.customer-invoice-notice strong { white-space: nowrap; }
.customer-invoice-notice span { color: #7a6434; }
.customer-contact-row {
    margin-bottom: 14px;
    padding: 16px 18px 2px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
}
.customer-contact-row.is-primary {
    border-left: 3px solid var(--primary);
    background: #fffdfd;
}
.customer-contact-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 13px;
}
.customer-contact-heading strong { font-size: 13px; }
.customer-contact-heading .btn-remove-contact { color: var(--danger); }
.customer-contact-remark { margin-bottom: 14px; }
.modal.customer-detail-modal {
    width: min(96vw, 1360px);
    max-width: 1360px;
    height: 92vh;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.modal.customer-detail-modal .modal-header { flex-shrink: 0; }
.modal.customer-detail-modal .modal-body {
    flex: 1;
    max-height: none;
    overflow: auto;
    padding: 22px 24px 28px;
}
.customer-detail-loading {
    padding: 24px;
    text-align: center;
    color: var(--text-secondary);
}
.customer-detail-loading.error { color: var(--danger); }
.customer-detail-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 14px;
}
.customer-detail-hero h2 { margin: 0 0 6px; font-size: 20px; }
.customer-detail-hero p { margin: 0; color: var(--text-secondary); font-size: 13px; }
.customer-detail-tags { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.customer-detail-tags span {
    background: var(--primary-light);
    color: var(--primary);
    border-radius: var(--radius);
    padding: 5px 8px;
    font-size: 12px;
}
.customer-detail-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}
.customer-detail-summary div {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    min-width: 0;
    padding: 12px 14px;
    background: #f8f9fb;
}
.customer-detail-summary span { display: block; color: var(--text-secondary); font-size: 12px; margin-bottom: 5px; }
.customer-detail-summary strong {
    display: block;
    font-size: 20px;
    color: var(--primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.customer-detail-grid {
    display: grid;
    grid-template-columns: minmax(420px, 1.1fr) minmax(360px, .9fr);
    gap: 14px;
    margin-bottom: 16px;
}
.customer-detail-grid section,
.customer-detail-section {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    min-width: 0;
    padding: 14px;
    background: #fff;
    margin-bottom: 14px;
}
.customer-kv {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid #f5f5f5;
    font-size: 13px;
}
.customer-kv:last-child { border-bottom: none; }
.customer-kv span { color: var(--text-secondary); }
.customer-kv strong { font-weight: 500; overflow-wrap: anywhere; }
.customer-detail-section .table-scroll {
    border: 1px solid #f0f0f0;
    border-radius: var(--radius);
}
.customer-detail-table {
    min-width: 980px;
    margin: 0;
}
.customer-detail-table td { vertical-align: top; line-height: 1.5; }

@media (max-width: 1180px) {
    .customer-duplicate-box,
    .customer-expand-grid,
    .customer-detail-grid,
    .customer-detail-summary,
    .pool-eval-summary {
        grid-template-columns: 1fr;
    }
    .customer-duplicate-controls { justify-content: flex-start; flex-wrap: wrap; }
    .customer-duplicate-controls input { width: min(100%, 320px); }
    .customer-detail-hero { flex-direction: column; }
    .customer-detail-tags { justify-content: flex-start; }
}

.finance-payment-form {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px;
    margin-bottom: 18px;
}

.finance-payment-form .finance-section-header { margin-top: 0; }
.finance-payment-order-row {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) 1.4fr;
    align-items: end;
    gap: 16px;
    margin-bottom: 14px;
}

.finance-inline-control { display: flex; align-items: stretch; gap: 8px; }
.finance-inline-control input { flex: 1; min-width: 0; }

.finance-payment-order-summary {
    min-height: 36px;
    display: flex;
    align-items: center;
    padding: 7px 10px;
    background: #f8f9fb;
    border-radius: var(--radius);
    color: var(--text-secondary);
    font-size: 13px;
    overflow-wrap: anywhere;
}

.finance-payment-fields {
    display: grid;
    grid-template-columns: minmax(180px, 1.2fr) minmax(150px, .8fr) minmax(150px, .8fr) minmax(150px, .8fr) minmax(180px, 1.2fr) auto;
    align-items: end;
    gap: 12px;
}

.finance-submit-payment { justify-content: flex-end; }
.finance-submit-payment .btn:disabled { opacity: .5; cursor: not-allowed; }
.finance-payment-filter { margin-top: 0; }
.finance-payment-list-header > strong { color: var(--success); font-size: 15px; }

.finance-completed-filter-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.25fr) minmax(180px, 1fr) minmax(180px, 1fr) 150px 150px auto;
    align-items: end;
    gap: 12px;
}

.modal.finance-payment-modal {
    width: 660px;
    max-width: 94vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.finance-payment-modal .modal-header,
.finance-payment-modal .modal-footer { flex: 0 0 auto; }
.finance-payment-modal .modal-body { overflow-y: auto; }
.finance-payment-modal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.finance-payment-modal-remark { grid-column: 1 / -1; }

.modal.finance-review-modal { width: 780px; max-width: 94vw; }
.finance-review-summary {
    margin-bottom: 14px;
    padding: 10px 12px;
    background: #f8f9fb;
    border-left: 3px solid var(--primary);
    color: var(--text-secondary);
    font-size: 13px;
}
.finance-review-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.finance-review-agreement,
.finance-review-remark { grid-column: 1 / -1; }
.finance-review-state {
    margin-top: 14px;
    padding: 10px 12px;
    background: #fef3e2;
    color: #7d4b00;
    font-size: 13px;
}

/* ===== 发票申请与开票 ===== */
.invoice-workspace-alert {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    min-height: 44px;
    margin-bottom: 14px;
    padding: 10px 14px;
    border: 1px solid #d8d8de;
    border-left: 4px solid #777985;
    border-radius: var(--radius);
    background: var(--white);
    color: var(--text-secondary);
    font-size: 13px;
}
.invoice-workspace-alert strong { color: var(--text); }
.invoice-workspace-alert.has-pending { border-left-color: var(--primary); background: #fffafa; }
.invoice-filter-bar {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto auto;
    align-items: end;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--white);
}
.invoice-finance-filter .finance-filter-grid { grid-template-columns: minmax(260px, 1.5fr) minmax(180px, .7fr) auto; }
.invoice-order-table { min-width: 1280px; }
.invoice-application-table { min-width: 1120px; }
.finance-invoice-table { min-width: 1540px; }
.invoice-history-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
}
.invoice-status-filter { width: 180px; margin-bottom: 10px; }
.invoice-type-tag {
    display: inline-block;
    padding: 3px 7px;
    border: 1px solid #c9d9ec;
    border-radius: 3px;
    background: #eef5ff;
    color: #255d9a;
    font-size: 12px;
    white-space: nowrap;
}
.invoice-type-tag.receivable { border-color: #efd6a5; background: #fff7e8; color: #8a5a00; }
.invoice-type-tag.paid_completed { border-color: #bee2ca; background: #eaf7ef; color: #176b45; }
.invoice-path-notice {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding: 10px 12px;
    border-left: 3px solid #255d9a;
    background: #eef5ff;
    color: #285c9d;
    font-size: 13px;
}
.invoice-path-notice.receivable { border-left-color: #d48806; background: #fff7e8; color: #7d4b00; }
.invoice-path-notice.paid_completed { border-left-color: var(--success); background: #eaf7ef; color: #176b45; }
.invoice-path-notice span { text-align: right; }
.invoice-application-fields,
.invoice-issue-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}
.invoice-profile-warning {
    margin-top: 12px;
    padding: 9px 11px;
    border: 1px solid #f0c1c8;
    border-radius: var(--radius);
    background: #fff1f0;
    color: #9e1730;
    font-size: 13px;
}
.invoice-profile-warning.complete { border-color: #bee2ca; background: #eaf7ef; color: #176b45; }
.invoice-confirm-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 14px;
    color: var(--text);
    font-size: 13px;
    cursor: pointer;
}
.invoice-confirm-check input { width: 16px; height: 16px; margin-top: 1px; flex: 0 0 auto; accent-color: var(--primary); }
.invoice-review-remark { margin-top: 16px; }
.invoice-file-field,
.invoice-issue-remark { grid-column: 1 / -1; }
.invoice-file-field small { color: var(--text-secondary); font-size: 12px; }
.invoice-modal-items { min-width: 620px; box-shadow: none; }
.modal.invoice-application-modal,
.modal.invoice-detail-modal,
.modal.finance-invoice-review-modal,
.modal.finance-invoice-issue-modal {
    width: 920px;
    max-width: 94vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.modal.finance-invoice-issue-modal { width: 680px; }
.invoice-application-modal .modal-header,
.invoice-application-modal .modal-footer,
.invoice-detail-modal .modal-header,
.invoice-detail-modal .modal-footer,
.finance-invoice-review-modal .modal-header,
.finance-invoice-review-modal .modal-footer,
.finance-invoice-issue-modal .modal-header,
.finance-invoice-issue-modal .modal-footer { flex: 0 0 auto; }
.invoice-application-modal .modal-body,
.invoice-detail-modal .modal-body,
.finance-invoice-review-modal .modal-body,
.finance-invoice-issue-modal .modal-body { overflow-y: auto; }

/* ===== 销售制单联系资料与提交确认 ===== */
.sales-order-base-row {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 10px;
}
.sales-customer-profile-grid {
    display: grid;
    grid-template-columns: minmax(170px, .75fr) minmax(180px, .8fr) minmax(300px, 1.8fr);
    gap: 12px;
    margin-bottom: 10px;
}
.sales-customer-profile-grid .form-group { min-width: 0; margin-bottom: 0; }
.sales-customer-profile-grid input { width: 100%; }
.sales-payment-method-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 7px;
    padding: 7px 9px;
    border-left: 3px solid var(--primary);
    background: #fff4f4;
    color: #7f1d2d;
    font-size: 12px;
}
.sales-payment-method-note[hidden] { display: none; }
.sales-payment-method-note span { min-width: 0; overflow-wrap: anywhere; }
.sales-payment-method-note .btn { flex: 0 0 auto; }
.modal.sales-payment-method-remark-modal { width: 560px; max-width: calc(100vw - 24px); }
.sales-payment-method-remark-modal .modal-header > div { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.sales-payment-method-remark-modal .modal-header h3 { margin: 0; }
.sales-payment-method-remark-modal .modal-header span { color: var(--text-secondary); font-size: 13px; }
.sales-payment-method-notice {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
    padding: 10px 12px;
    border-left: 3px solid var(--primary);
    background: #fff1f0;
    color: #7f1d2d;
}
.sales-payment-method-notice span { color: var(--text-secondary); font-size: 12px; }
.sales-payment-method-error { min-height: 18px; margin-top: 5px; color: var(--primary); font-size: 12px; }
.modal.sales-order-confirm-modal {
    width: 900px;
    max-width: 94vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.sales-order-confirm-modal .modal-header,
.sales-order-confirm-modal .modal-footer { flex: 0 0 auto; }
.sales-order-confirm-modal .modal-body { overflow-y: auto; }
.order-confirm-notice {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding: 10px 12px;
    border-left: 3px solid var(--primary);
    background: #fff1f0;
    color: #7f1d2d;
    font-size: 13px;
}
.order-confirm-notice span { color: var(--text-secondary); text-align: right; }
.order-confirm-items { min-width: 660px; box-shadow: none; }
.order-profile-sync {
    margin-top: 16px;
    padding: 12px;
    border: 1px solid #efd6a5;
    border-radius: var(--radius);
    background: #fffaf0;
}
.order-profile-sync > div:first-child { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.order-profile-sync > div:first-child span { color: var(--text-secondary); font-size: 12px; }
.order-profile-sync-option {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 9px 0;
    border-top: 1px solid #f2e4c8;
    cursor: pointer;
}
.order-profile-sync-option input { width: 16px; height: 16px; margin-top: 2px; flex: 0 0 auto; accent-color: var(--primary); }
.order-profile-sync-option span { min-width: 0; }
.order-profile-sync-option > div { min-width: 0; flex: 1; }
.order-profile-sync-option label { display: block; cursor: pointer; }
.order-profile-sync-option strong,
.order-profile-sync-option small { display: block; }
.order-profile-sync-option small { margin-top: 3px; color: var(--text-secondary); overflow-wrap: anywhere; }
.order-profile-sync-option input[type="text"] { display: block; width: 100%; max-width: 420px; margin-top: 8px; padding: 7px 9px; border: 1px solid #decda9; border-radius: 4px; box-sizing: border-box; background: #fff; }
.order-profile-current {
    margin-top: 16px;
    padding: 10px 12px;
    border: 1px solid #bee2ca;
    border-radius: var(--radius);
    background: #eaf7ef;
    color: #176b45;
    font-size: 13px;
}

/* ===== 驳回订单只读详情 ===== */
.sales-rejected-status-btn {
    display: inline-flex;
    align-items: center;
    padding: 2px 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: transparent;
    color: var(--primary);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}
.sales-rejected-status-btn:hover { color: #8f0d24; }
.sales-rejected-status-hint { display: block; margin-top: 3px; color: var(--text-secondary); font-size: 11px; }
.sales-historical-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 2px 7px;
    border: 1px solid #d8b84d;
    border-radius: 999px;
    background: #fff8d6;
    color: #7a5a00;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}
.summary-order-row { cursor: pointer; }
.summary-order-row:hover { background: #fff8f8; }
.summary-order-row:focus { outline: 2px solid rgba(196,18,48,.28); outline-offset: -2px; }
.summary-order-link {
    padding: 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: transparent;
    color: var(--primary);
    font: inherit;
    cursor: pointer;
}
.summary-order-link:hover { color: #8f0d24; }
.summary-filter-bar {
    display: grid;
    grid-template-columns: 150px 150px minmax(240px, 1fr) auto auto auto;
    align-items: end;
    gap: 10px;
    margin-bottom: 8px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--white);
}
.summary-filter-field { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.summary-filter-field span { color: var(--text-secondary); font-size: 12px; }
.summary-filter-field input {
    width: 100%;
    height: 36px;
    box-sizing: border-box;
    border: 1px solid var(--border);
    border-radius: 5px;
    background: var(--white);
    padding: 7px 9px;
    color: var(--text);
}
.summary-filter-field input:focus { border-color: var(--primary); outline: 2px solid rgba(196,18,48,.1); }
.summary-filter-status { margin: 0 2px 12px; color: var(--text-secondary); font-size: 12px; }
.summary-view-tabs {
    display: inline-flex;
    gap: 4px;
    margin-bottom: 16px;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #f7f7f8;
}
.summary-view-tab {
    min-width: 112px;
    padding: 8px 15px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .16s ease, color .16s ease, box-shadow .16s ease;
}
.summary-view-tab:hover { color: var(--primary); }
.summary-view-tab.active {
    background: var(--white);
    color: var(--primary);
    box-shadow: 0 1px 5px rgba(37, 38, 43, .12);
}
.summary-view-tab:focus-visible { outline: 2px solid rgba(196,18,48,.25); outline-offset: 2px; }
.summary-view-panel[hidden] { display: none; }
.summary-operator-groups { margin-bottom: 16px; }
.summary-content-card {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--white);
}
.summary-content-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.summary-content-heading h4 { margin: 0; }
.summary-content-heading span { color: var(--text-secondary); font-size: 12px; }
.summary-table-wrap { overflow-x: auto; }
.summary-receivable-filter.active {
    border-color: var(--primary);
    background: var(--primary);
    color: var(--white);
}
.summary-receivable-value { color: var(--primary); font-weight: 700; }
.summary-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}
.summary-kpi-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--white);
    text-align: center;
}
.summary-kpi-label { margin-bottom: 8px; color: var(--text-secondary); font-size: 13px; }
.summary-kpi-amount { color: var(--primary); font-size: 25px; font-weight: 700; line-height: 1.25; }
.summary-kpi-count { margin-top: 7px; color: var(--text-secondary); font-size: 12px; }
.summary-kpi-count strong { color: var(--text); font-size: 15px; }
.summary-kpi-range { margin-top: 5px; color: var(--text-secondary); font-size: 11px; }
.summary-kpi-alert {
    border-color: #e49aa6;
    background: #fff4f5;
    box-shadow: inset 0 0 0 1px rgba(196,18,48,.05);
}
.summary-kpi-alert .summary-kpi-label,
.summary-kpi-alert .summary-kpi-amount,
.summary-kpi-alert .summary-kpi-count,
.summary-kpi-alert .summary-kpi-count strong,
.summary-kpi-alert .summary-kpi-range { color: var(--primary); }
.modal.sales-summary-detail-modal .modal-header > div { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.modal.sales-summary-detail-modal .modal-header h3 { margin: 0; }
.modal.sales-summary-detail-modal .modal-header span { color: var(--text-secondary); font-size: 13px; }
@media (max-width: 820px) {
    .summary-filter-bar { grid-template-columns: 1fr 1fr; }
    .summary-filter-customer { grid-column: 1 / -1; }
    .summary-kpi-grid { grid-template-columns: 1fr; gap: 10px; }
    .summary-view-tabs { display: flex; }
    .summary-view-tab { flex: 1; min-width: 0; }
    .summary-content-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
}
.modal.sales-rejected-detail-modal {
    width: 1040px;
    max-width: 96vw;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.sales-rejected-detail-modal .modal-header,
.sales-rejected-detail-modal .modal-footer { flex: 0 0 auto; }
.sales-rejected-detail-modal .modal-header > div { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.sales-rejected-detail-modal .modal-header h3 { margin: 0; }
.sales-rejected-detail-modal .modal-header span { color: var(--text-secondary); font-size: 13px; }
.sales-rejected-detail-modal .modal-body { overflow-y: auto; }
.sales-void-notice {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
    padding: 13px 15px;
    border-left: 4px solid var(--primary);
    background: #fff1f0;
    color: #7f1d2d;
}
.sales-void-notice strong { font-size: 15px; }
.sales-void-notice span { color: var(--text-secondary); font-size: 12px; }
.sales-rejection-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid #ead7d9;
    background: #fff;
}
.sales-rejection-notice > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.sales-rejection-notice strong { color: #7f1d2d; font-size: 14px; }
.sales-rejection-notice span { color: var(--text-secondary); font-size: 12px; }
.sales-rejection-notice p { margin: 8px 0 0; font-size: 14px; font-weight: 600; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.sales-rejected-detail-section { padding: 18px 0; border-top: 1px solid var(--border); }
.sales-rejected-detail-section h4 { margin: 0 0 12px; font-size: 15px; }
.sales-rejected-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 18px; }
.sales-rejected-detail-grid .finance-detail-value { min-width: 0; }
.sales-rejected-detail-table { min-width: 760px; box-shadow: none; }
.sales-rejected-detail-table td strong,
.sales-rejected-detail-table td small { display: block; }
.sales-rejected-detail-table td small { margin-top: 3px; color: var(--text-secondary); font-size: 11px; }

.modal.outbound-order-detail-modal { width: 980px; max-width: 95vw; max-height: 90vh; display: flex; flex-direction: column; }
.outbound-order-detail-modal .modal-header > div { display: flex; align-items: baseline; gap: 12px; }
.outbound-order-detail-modal .modal-header h3 { margin: 0; }
.outbound-detail-order-no { color: var(--text-secondary); font-size: 13px; }
.outbound-order-detail-modal .modal-body { overflow-y: auto; }
.outbound-detail-notice { display: flex; justify-content: space-between; gap: 16px; padding: 10px 12px; border-left: 3px solid #2f855a; background: #edf8f2; color: #176b45; font-size: 13px; }
.outbound-detail-notice.is-overdue { border-left-color: #d97706; background: #fff8e8; color: #8a5200; }
.outbound-detail-section { padding: 16px 0; border-bottom: 1px solid var(--border); }
.outbound-detail-section:last-child { border-bottom: 0; }
.outbound-detail-section h4 { margin: 0 0 10px; font-size: 15px; }
.outbound-detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 20px; }
.outbound-detail-grid > div { min-width: 0; }
.outbound-detail-grid span { display: block; margin-bottom: 4px; color: var(--text-secondary); font-size: 12px; }
.outbound-detail-grid strong { display: block; color: var(--text-primary); font-size: 14px; overflow-wrap: anywhere; }
.outbound-detail-grid .outbound-detail-wide { grid-column: span 2; }
.outbound-detail-table-wrap { overflow-x: auto; }
.outbound-detail-table { min-width: 760px; }
.outbound-detail-table td strong,
.outbound-detail-table td small { display: block; }
.outbound-detail-table td small { margin-top: 3px; color: var(--text-secondary); }
.outbound-detail-table tr.outbound-stock-shortage { background: #fff4f4; }
.outbound-stock-state { color: #176b45; font-size: 12px; font-weight: 600; }
.outbound-stock-state.is-shortage { color: #c41230; }

@media (max-width: 1200px) {
    .finance-kpi-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
    .finance-payment-fields { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
    .finance-submit-payment { justify-content: flex-start; }
}

@media (max-width: 820px) {
    .finance-filter-topline,
    .finance-section-header { align-items: flex-start; flex-direction: column; }
    .finance-scope { text-align: left; }
    .finance-filter-grid,
    .finance-completed-filter-grid,
    .finance-payment-order-row,
    .finance-payment-fields { grid-template-columns: 1fr; }
    .form-grid { grid-template-columns: 1fr; }
    .customer-form-grid,
    .customer-form-grid-3,
    .customer-location-grid { grid-template-columns: 1fr; }
    .customer-filter-region { width: 100%; }
    .customer-grid-full { grid-column: auto; }
    .modal.customer-master-modal { width: 94vw; height: 90vh; max-height: 90vh; }
    .modal.customer-master-modal .modal-body { padding: 2px 18px 22px; }
    .customer-invoice-notice { align-items: flex-start; flex-direction: column; gap: 3px; }
    .customer-invoice-notice strong { white-space: normal; }
    .finance-detail-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
    .finance-dashboard-segments,
    .finance-segment-row { width: 100%; }
    .finance-segment-row { align-items: flex-start; flex-direction: column; gap: 6px; }
    .finance-segment-label { width: auto; flex-basis: auto; }
    .finance-period-control,
    .finance-category-control,
    .finance-status-control { width: 100%; overflow-x: auto; }
    .finance-period-btn,
    .finance-category-btn,
    .finance-status-btn { flex: 1; min-width: 72px; padding: 6px 8px; }
    .finance-category-btn,
    .finance-status-btn { flex: 0 0 auto; min-width: 86px; }
    .finance-review-grid { grid-template-columns: 1fr; }
    .finance-payment-modal-grid { grid-template-columns: 1fr; }
    .finance-review-agreement,
    .finance-review-remark,
    .finance-payment-modal-remark { grid-column: auto; }
    .invoice-finance-filter .finance-filter-grid,
    .invoice-application-fields,
    .invoice-issue-grid { grid-template-columns: 1fr; }
    .invoice-file-field,
    .invoice-issue-remark { grid-column: auto; }
    .invoice-path-notice { flex-direction: column; gap: 6px; }
    .invoice-path-notice span { text-align: left; }
    .sales-customer-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sales-address-field { grid-column: 1 / -1; }
    .order-confirm-notice { flex-direction: column; gap: 5px; }
    .order-confirm-notice span { text-align: left; }
    .sales-rejected-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sales-void-notice,
    .sales-rejection-notice > div { align-items: flex-start; flex-direction: column; gap: 4px; }
    .outbound-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .outbound-detail-notice { align-items: flex-start; flex-direction: column; gap: 5px; }
}

@media (max-width: 560px) {
    .finance-filter-bar,
    .finance-payment-form { padding: 12px; }
    .finance-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .finance-kpi { min-height: 96px; padding: 12px; }
    .finance-kpi-value { font-size: 18px; white-space: normal; overflow-wrap: anywhere; }
    .finance-detail-grid { grid-template-columns: 1fr; }
    .finance-filter-actions { flex-wrap: wrap; }
    .invoice-filter-bar { grid-template-columns: 1fr 1fr; }
    .invoice-filter-bar .finance-field { grid-column: 1 / -1; }
    .invoice-history-head { align-items: stretch; flex-direction: column; gap: 0; }
    .invoice-status-filter { width: 100%; }
    .modal.invoice-application-modal,
    .modal.invoice-detail-modal,
    .modal.finance-invoice-review-modal,
    .modal.finance-invoice-issue-modal { width: calc(100% - 16px); max-width: none; max-height: calc(100vh - 20px); }
    .modal.outbound-order-detail-modal { width: calc(100% - 16px); max-width: none; max-height: calc(100vh - 20px); }
    .outbound-order-detail-modal .modal-header > div { align-items: flex-start; flex-direction: column; gap: 2px; }
    .outbound-detail-grid { grid-template-columns: 1fr; }
    .outbound-detail-grid .outbound-detail-wide { grid-column: auto; }
    .sales-order-base-row { align-items: stretch; flex-direction: column; }
    .sales-order-base-row .form-group { width: 100% !important; }
    .sales-customer-profile-grid { grid-template-columns: 1fr; }
    .sales-address-field { grid-column: auto; }
    .modal.sales-order-confirm-modal { width: calc(100% - 16px); max-width: none; max-height: calc(100vh - 20px); }
    .order-profile-sync > div:first-child { align-items: flex-start; flex-direction: column; gap: 3px; }
    .modal.sales-rejected-detail-modal { width: calc(100% - 16px); max-width: none; max-height: calc(100vh - 20px); }
    .sales-rejected-detail-modal .modal-header > div { align-items: flex-start; flex-direction: column; gap: 2px; }
    .sales-rejected-detail-grid { grid-template-columns: 1fr; }
    .sales-rejected-detail-modal .modal-footer { flex-wrap: wrap; }
}

* { margin: 0; padding: 0; box-sizing: border-box; }
[hidden] { display: none !important; }

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
}

/* ===== 登录页 ===== */
.login-container {
    display: flex; justify-content: center; align-items: center;
    min-height: 100vh; background: linear-gradient(135deg, #c41230 0%, #6b1111 100%);
}
.login-box {
    background: var(--white); padding: 40px; border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15); width: min(420px, calc(100vw - 32px));
}
.login-box h1 { text-align: center; font-size: 24px; color: var(--primary); margin-bottom: 8px; }
.login-box .subtitle { text-align: center; color: var(--text-secondary); font-size: 14px; margin-bottom: 30px; }
.login-box .login-security-note { margin-bottom: 4px; color: #4f5965; font-size: 13px; }
.login-box .login-lan-tip { min-height: 17px; margin-bottom: 18px; color: #7d858f; font-size: 11px; }
.login-method-title { margin: 0 0 16px; color: var(--text); font-size: 16px; font-weight: 600; text-align: left; }
.login-box label { display: block; font-size: 14px; color: var(--text-secondary); margin-bottom: 6px; }
.login-box input {
    width: 100%; padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--radius);
    font-size: 14px; margin-bottom: 18px; outline: none; transition: border-color 0.2s;
}
.login-box input:focus { border-color: var(--primary); }
.phone-input-group {
    display: flex; align-items: stretch; width: 100%; margin-bottom: 18px;
    border: 1px solid var(--border); border-radius: var(--radius); background: var(--white);
    transition: border-color 0.2s, box-shadow 0.2s; overflow: hidden;
}
.phone-input-group:focus-within { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(196,18,48,0.08); }
.phone-prefix {
    display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 12px;
    border-right: 1px solid var(--border); background: #f8f9fb; color: #424a55; font-size: 14px;
}
.phone-input-group input,
.form-group .phone-input-group input {
    min-width: 0; margin: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent;
}
.phone-input-group input:focus,
.form-group .phone-input-group input:focus { border-color: transparent; }
.sms-code-group { display: grid; grid-template-columns: minmax(0, 1fr) 126px; gap: 10px; margin-bottom: 18px; }
.login-box .sms-code-group input { margin: 0; }
.sms-send-btn { min-height: 40px; padding: 7px 8px; white-space: nowrap; }
.login-box .btn-login,
.login-box .sms-login-submit {
    width: 100%; padding: 11px; background: var(--primary); color: #fff;
    border: none; border-radius: var(--radius); font-size: 16px; cursor: pointer;
    transition: background 0.2s;
}
.login-box .btn-login:hover,
.login-box .sms-login-submit:hover { background: var(--primary-dark); }
.login-box button:disabled { cursor: not-allowed; opacity: 0.6; }
.login-box .error-msg { color: var(--danger); font-size: 13px; text-align: center; margin-top: 10px; min-height: 20px; }
.login-box .error-msg.success-msg { color: var(--success); }
.login-fallback-toggle {
    display: block; width: 100%; margin-top: 18px; padding: 10px 0 0; border: 0;
    border-top: 1px solid #eceef1; background: transparent; color: var(--text-secondary);
    font-size: 12px; text-align: center; cursor: pointer;
}
.login-fallback-toggle:hover { color: var(--primary); }
.password-login-panel { margin-top: 18px; padding-top: 2px; }
.login-logo { text-align: center; margin-bottom: 16px; }
.login-logo img { width: 72px; height: 72px; border-radius: 12px; object-fit: cover; }

/* ===== 主布局 ===== */
.layout { display: flex; min-height: 100vh; }

/* 侧边栏 */
.sidebar {
    width: 220px; background: linear-gradient(180deg, #2c0a0f 0%, #1a0508 100%);
    color: #fff; display: flex; flex-direction: column; flex-shrink: 0;
}
.sidebar .logo {
    padding: 20px; font-size: 18px; font-weight: 700;
    border-bottom: 1px solid rgba(255,255,255,0.1); text-align: center;
    letter-spacing: 1px;
}
.sidebar .nav-list { list-style: none; padding: 10px 0; flex: 1; }
.sidebar .nav-item { padding: 12px 24px; cursor: pointer; font-size: 14px;
    transition: background 0.2s; display: flex; align-items: center; gap: 10px;
    color: rgba(255,255,255,0.75);
}
.sidebar .nav-item:hover { background: rgba(255,255,255,0.08); color: #fff; }
.sidebar .nav-item.active { background: var(--primary); color: #fff; }

/* 顶部栏 */
.topbar {
    height: 56px; background: var(--white); border-bottom: 1px solid var(--border);
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.topbar .page-title { font-size: 16px; font-weight: 600; }
.topbar .user-info { font-size: 14px; color: var(--text-secondary); }
.topbar .user-info strong { color: var(--text); }
.topbar-actions { display: flex; align-items: center; min-width: 0; }
.trial-help-button {
    width: 32px; height: 32px; margin-right: 14px; padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--border); border-radius: 50%;
    background: var(--white); color: var(--text-secondary);
    font-size: 16px; font-weight: 700; line-height: 1; cursor: pointer;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.trial-help-button:hover,
.trial-help-button:focus-visible {
    border-color: var(--primary); color: var(--primary); background: var(--primary-light); outline: none;
}
.topbar .btn-logout {
    margin-left: 16px; padding: 6px 16px; background: none; border: 1px solid var(--border);
    border-radius: var(--radius); cursor: pointer; font-size: 13px; color: var(--text-secondary);
    transition: all 0.2s;
}
.topbar .btn-logout:hover { border-color: var(--danger); color: var(--danger); }
.topbar-logo { width: 34px; height: 34px; border-radius: 6px; object-fit: cover; }

/* 主内容区 */
.main-content { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
.content-area { padding: 24px; overflow-y: auto; flex: 1; }
.module-section { display: none; }
.module-section.active { display: block; }

/* ===== 试用引导与操作帮助 ===== */
.trial-context-bar {
    margin: 12px 24px 0;
    min-height: 48px;
    padding: 9px 10px 9px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border: 1px solid #d9dee7;
    border-left: 3px solid #2f6f62;
    border-radius: var(--radius);
    box-shadow: 0 1px 3px rgba(31, 43, 55, 0.04);
}
.trial-context-bar[hidden] { display: none; }
.trial-context-mark {
    width: 24px; height: 24px; flex: 0 0 24px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: #e9f4f1; color: #246457;
    font-family: Georgia, serif; font-size: 15px; font-weight: 700;
}
.trial-context-copy {
    min-width: 0; flex: 1;
    display: flex; align-items: baseline; gap: 10px;
}
.trial-context-copy strong { flex: 0 0 auto; color: var(--text); font-size: 13px; }
.trial-context-copy span {
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    color: var(--text-secondary); font-size: 12px;
}
.trial-context-action {
    flex: 0 0 auto; padding: 6px 10px;
    border: none; background: transparent; color: var(--primary);
    font-size: 12px; font-weight: 600; cursor: pointer;
}
.trial-context-action:hover { text-decoration: underline; }
.trial-context-close,
.trial-guide-close {
    width: 30px; height: 30px; flex: 0 0 30px;
    display: inline-flex; align-items: center; justify-content: center;
    border: none; border-radius: 50%; background: transparent;
    color: #7a818c; font-size: 21px; line-height: 1; cursor: pointer;
}
.trial-context-close:hover,
.trial-guide-close:hover { background: #f1f3f6; color: var(--text); }

.trial-guide-overlay,
.trial-welcome-overlay {
    position: fixed; inset: 0; z-index: 3200;
    background: rgba(18, 23, 31, 0.38);
    opacity: 0; transition: opacity 0.18s ease;
}
.trial-guide-overlay.show,
.trial-welcome-overlay.show { opacity: 1; }
.trial-guide-drawer {
    position: absolute; top: 0; right: 0;
    width: min(440px, 92vw); height: 100%;
    display: flex; flex-direction: column;
    background: #fff; box-shadow: -12px 0 36px rgba(18, 23, 31, 0.16);
    transform: translateX(24px); transition: transform 0.2s ease;
    outline: none;
}
.trial-guide-overlay.show .trial-guide-drawer { transform: translateX(0); }
.trial-guide-header {
    flex: 0 0 auto; padding: 20px 22px 17px;
    display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
    border-bottom: 1px solid var(--border);
}
.trial-guide-header h3 { margin: 4px 0 0; font-size: 20px; color: var(--text); }
.trial-guide-breadcrumb {
    display: flex; gap: 7px; color: #7b828d;
    font-size: 12px; line-height: 1.4;
}
.trial-guide-breadcrumb span { color: #b4b8bf; }
.trial-guide-role {
    flex: 0 0 auto; padding: 15px 22px;
    display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 10px;
    background: #f7f8fa; border-bottom: 1px solid var(--border);
}
.trial-guide-role > span {
    padding: 3px 7px; border-radius: 3px;
    background: #e9f4f1; color: #246457; font-size: 11px; font-weight: 600;
}
.trial-guide-role p { margin: 1px 0 0; color: #555d68; font-size: 13px; line-height: 1.65; }
.trial-guide-body { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 22px 20px; }
.trial-guide-section { padding: 18px 0; border-bottom: 1px solid #eceff3; }
.trial-guide-section:last-child { border-bottom: none; }
.trial-guide-section h4 {
    margin: 0 0 12px; color: #626a75;
    font-size: 12px; font-weight: 600;
}
.trial-guide-flow { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.trial-guide-flow-step {
    padding: 6px 8px; border: 1px solid #dfe3e9; border-radius: 4px;
    background: #fafbfc; color: #414852; font-size: 12px;
}
.trial-guide-flow-arrow { color: #9ca3ad; font-size: 13px; }
.trial-guide-steps { margin: 0; padding: 0; list-style: none; }
.trial-guide-steps li + li { border-top: 1px solid #eef0f3; }
.trial-guide-step {
    width: 100%; padding: 13px 0;
    display: grid; grid-template-columns: 28px 1fr 18px; align-items: start; gap: 9px;
    border: none; background: transparent; text-align: left; cursor: pointer;
}
.trial-guide-step:hover .trial-guide-step-copy strong { color: var(--primary); }
.trial-guide-step-index {
    width: 24px; height: 24px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: #f0f2f5; color: #505864;
    font-size: 11px; font-weight: 700;
}
.trial-guide-step-copy { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.trial-guide-step-copy strong { color: #303640; font-size: 13px; transition: color 0.2s; }
.trial-guide-step-copy small { color: #6c7480; font-size: 12px; line-height: 1.6; }
.trial-guide-locate { padding-top: 2px; color: #9ca3ad; font-size: 15px; }
.trial-guide-notices ul { margin: 0; padding-left: 18px; color: #7d5612; }
.trial-guide-notices li { padding-left: 2px; font-size: 12px; line-height: 1.65; }
.trial-guide-footer {
    flex: 0 0 auto; padding: 13px 22px;
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    border-top: 1px solid var(--border); background: #fff;
}
.trial-guide-footer span { color: #8a919b; font-size: 11px; }
.trial-guide-focus {
    position: relative; z-index: 2;
    outline: 3px solid rgba(196, 18, 48, 0.35) !important;
    outline-offset: 5px;
    animation: trialGuidePulse 0.85s ease-in-out 3;
}
@keyframes trialGuidePulse {
    0%, 100% { outline-color: rgba(196, 18, 48, 0.22); }
    50% { outline-color: rgba(196, 18, 48, 0.65); }
}

.trial-welcome-overlay {
    display: flex; align-items: center; justify-content: center; padding: 20px;
}
.trial-welcome {
    width: min(560px, 94vw); max-height: 90vh; overflow-y: auto;
    background: #fff; border-radius: 8px;
    box-shadow: 0 20px 60px rgba(18, 23, 31, 0.22);
    transform: translateY(10px); transition: transform 0.2s ease;
}
.trial-welcome-overlay.show .trial-welcome { transform: translateY(0); }
.trial-welcome-header {
    padding: 24px 26px 18px;
    display: flex; align-items: center; gap: 14px;
    border-bottom: 1px solid var(--border);
}
.trial-welcome-mark {
    width: 42px; height: 42px; flex: 0 0 42px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--primary); color: #fff;
    font-size: 20px; font-weight: 700;
}
.trial-welcome-header span { color: #2f6f62; font-size: 12px; font-weight: 600; }
.trial-welcome-header h2 { margin: 3px 0 0; color: var(--text); font-size: 20px; }
.trial-welcome-summary {
    margin: 0; padding: 18px 26px 4px;
    color: #555d68; font-size: 13px; line-height: 1.75;
}
.trial-welcome-points { padding: 10px 26px 20px; }
.trial-welcome-points > div {
    padding: 13px 0; display: grid; grid-template-columns: 30px 1fr; gap: 10px;
    border-bottom: 1px solid #eceff3;
}
.trial-welcome-points > div:last-child { border-bottom: none; }
.trial-welcome-points > div > strong {
    width: 26px; height: 26px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: #f0f2f5; color: #505864; font-size: 11px;
}
.trial-welcome-points span { display: flex; flex-direction: column; gap: 3px; }
.trial-welcome-points b { color: #343a43; font-size: 13px; }
.trial-welcome-points small { color: #737b86; font-size: 12px; line-height: 1.55; }
.trial-welcome-footer {
    padding: 15px 26px; display: flex; justify-content: flex-end; gap: 10px;
    border-top: 1px solid var(--border); background: #fafbfc;
}

/* ===== 通用组件 ===== */
.toolbar {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 16px;
}
.toolbar h3 { font-size: 16px; font-weight: 600; }

.btn {
    padding: 7px 16px; border: none; border-radius: var(--radius);
    font-size: 13px; cursor: pointer; transition: all 0.2s;
}
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-danger:hover { background: var(--danger-hover); }
.btn-outline { background: none; border: 1px solid var(--border); color: var(--text-secondary); }
.btn-outline:hover { border-color: var(--primary); color: var(--primary); }
.btn-sm { padding: 4px 10px; font-size: 12px; }

/* 表格 */
.data-table {
    width: 100%; border-collapse: collapse; background: var(--white);
    border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow);
}
.data-table th {
    background: #f8f9fb; padding: 12px 14px; text-align: left;
    font-size: 13px; font-weight: 600; color: var(--text-secondary);
    border-bottom: 2px solid var(--border);
}
.data-table td {
    padding: 11px 14px; font-size: 13px; border-bottom: 1px solid #f0f0f0;
}
.data-table tr:hover td { background: var(--primary-light); }
.data-table .actions { display: flex; gap: 8px; }

.empty-state { text-align: center; padding: 40px; color: var(--text-secondary); font-size: 14px; }

.user-row-disabled td { color: var(--text-secondary); background: #fafafa; }
.user-status-tag {
    display: inline-block;
    min-width: 48px;
    padding: 2px 8px;
    border: 1px solid transparent;
    border-radius: 3px;
    font-size: 12px;
    text-align: center;
}
.user-status-tag.active { color: #176b45; background: #eaf7ef; border-color: #bee2ca; }
.user-status-tag.disabled { color: #8a3b44; background: #fff1f0; border-color: #f3c3ca; }
.user-status-detail,
.user-history-detail {
    margin-top: 4px;
    max-width: 240px;
    color: var(--text-secondary);
    font-size: 11px;
    line-height: 1.35;
}
.user-history-empty,
.user-protected-label { color: var(--text-secondary); font-size: 12px; }
.user-phone-value { color: var(--text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.user-phone-empty { color: var(--danger); font-size: 12px; }
.user-phone-status {
    display: inline-block; margin-top: 4px; padding: 1px 6px; border-radius: 3px;
    background: #fff7e8; color: #9a5a00; font-size: 11px;
}
.user-phone-status.verified { background: #eaf7ef; color: #176b45; }
.user-phone-status.unbound { background: #fff1f0; color: #8a3b44; }
.user-phone-hint { display: block; margin-top: 5px; color: var(--text-secondary); font-size: 11px; line-height: 1.4; }

#management-sub-tabs {
    overflow-x: auto;
    overflow-y: hidden;
}
#management-sub-tabs .sub-tab { flex: 0 0 auto; white-space: nowrap; }
.admin-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 16px;
}
.admin-section-heading h3 { margin: 0; font-size: 16px; }
.admin-section-heading p {
    margin: 4px 0 0;
    color: var(--text-secondary);
    font-size: 12px;
}
.admin-heading-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.admin-config-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.admin-panel {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--white);
}
.admin-panel-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}
.admin-panel-title h4 { margin: 0; font-size: 14px; }
.status-badge {
    display: inline-block;
    min-width: 48px;
    padding: 2px 8px;
    border: 1px solid #c9d0d6;
    border-radius: 3px;
    background: #f4f6f8;
    color: #4b5862;
    font-size: 12px;
    text-align: center;
    white-space: nowrap;
}
.status-badge.success { color: #176b45; background: #eaf7ef; border-color: #bee2ca; }
.status-badge.danger { color: #8a3b44; background: #fff1f0; border-color: #f3c3ca; }
.admin-inline-form {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin: 16px 0;
}
.admin-inline-form .form-group { flex: 1; margin: 0; }
.admin-number-control { display: flex; align-items: center; gap: 8px; }
.admin-number-control input { max-width: 140px; }
.admin-number-control span { color: var(--text-secondary); font-size: 13px; }
.admin-definition-list { margin: 0; }
.admin-definition-list > div {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid #eef0f2;
}
.admin-definition-list > div:last-child { border-bottom: 0; }
.admin-definition-list dt { color: var(--text-secondary); font-size: 12px; }
.admin-definition-list dd { margin: 0; font-size: 13px; overflow-wrap: anywhere; }
.admin-backup-notice,
.admin-restore-warning {
    margin-bottom: 14px;
    padding: 10px 12px;
    border: 1px solid #e6c46a;
    border-radius: 4px;
    background: #fff8e6;
    color: #6f5311;
    font-size: 12px;
    line-height: 1.5;
}
.admin-backup-table { min-width: 1120px; }
.admin-backup-table th,
.admin-backup-table td { vertical-align: top; }
.backup-filename-cell { min-width: 245px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 11px; }
.backup-hash-cell {
    max-width: 170px;
    overflow: hidden;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-backup-actions { display: flex; gap: 6px; white-space: nowrap; }
.modal.admin-restore-modal { width: min(640px, 94vw); }
.admin-restore-summary { margin: 8px 0 18px; }
.admin-restore-summary dd { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 11px; }

.audit-filter-bar {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr)) minmax(220px, 1.6fr) auto auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 12px;
}
.audit-filter-field { min-width: 0; }
.audit-filter-field label {
    display: block;
    margin-bottom: 4px;
    color: var(--text-secondary);
    font-size: 12px;
}
.audit-filter-field input,
.audit-filter-field select {
    width: 100%;
    height: 34px;
    padding: 6px 9px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--white);
    font-size: 13px;
}
.audit-summary-row,
.audit-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    color: var(--text-secondary);
    font-size: 12px;
}
.audit-summary-row { margin-bottom: 8px; }
.audit-pagination { justify-content: flex-end; margin-top: 12px; }
.audit-log-table { min-width: 1080px; }
.audit-log-table th,
.audit-log-table td { vertical-align: top; }
.audit-log-table th:first-child,
.audit-log-table td:first-child {
    position: sticky;
    left: 0;
    width: 154px;
    min-width: 154px;
    box-shadow: 6px 0 8px -8px rgba(28, 35, 39, 0.45);
}
.audit-log-table th:first-child {
    z-index: 3;
    background: #f8f9fb;
}
.audit-log-table td:first-child {
    z-index: 2;
    background: var(--white);
}
.audit-log-table tr:hover td:first-child { background: var(--primary-light); }
.audit-time-cell { white-space: nowrap; }
.audit-reference-cell { min-width: 170px; max-width: 280px; overflow-wrap: anywhere; }
.audit-module-tag {
    display: inline-block;
    min-width: 38px;
    padding: 2px 7px;
    border: 1px solid #c9d8d1;
    border-radius: 3px;
    background: #eef6f2;
    color: #176b45;
    text-align: center;
    font-size: 12px;
}
.audit-secondary-text {
    margin-top: 3px;
    max-width: 250px;
    overflow: hidden;
    color: var(--text-secondary);
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.modal.audit-detail-modal {
    width: min(1120px, 96vw);
    max-height: 92vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.audit-detail-modal .modal-header,
.audit-detail-modal .modal-footer { flex: 0 0 auto; }
.audit-detail-modal .modal-header > div { min-width: 0; }
.audit-detail-modal .modal-header h3 { margin: 0; }
#audit-detail-subtitle {
    display: block;
    margin-top: 3px;
    color: var(--text-secondary);
    font-size: 12px;
}
.audit-detail-modal .modal-body { overflow-y: auto; }
.audit-detail-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border);
}
.audit-detail-meta div { min-width: 0; }
.audit-detail-meta span {
    display: block;
    margin-bottom: 3px;
    color: var(--text-secondary);
    font-size: 11px;
}
.audit-detail-meta strong { display: block; overflow-wrap: anywhere; font-size: 13px; }
.audit-request-summary { margin: 14px 0; }
.audit-request-summary summary { cursor: pointer; color: var(--primary); font-size: 13px; }
.audit-request-summary pre,
.audit-before-after pre {
    margin: 8px 0 0;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: #f7f8fa;
    color: #263238;
    font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    overflow: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.audit-change-block {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}
.audit-change-heading {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.audit-change-heading strong { font-size: 13px; }
.audit-change-heading span { color: var(--text-secondary); font-size: 12px; overflow-wrap: anywhere; }
.audit-before-after {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.audit-before-after h4 { margin: 0; color: var(--text-secondary); font-size: 12px; }

.type-tag { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: 12px; }
.type-tag.machine { background: var(--primary-light); color: var(--primary); }
.type-tag.parts { background: #fef3e2; color: #d48806; }

/* 低库存预警 */
.data-table tr.low-stock td { background: #fff1f0; color: #cf1322; font-weight: 500; }
.data-table tr.low-stock:hover td { background: #ffe7e5; }

/* 产品入库明细列 */
.inb-col-prod { flex: 2; }
.inb-col-spec { flex: 1.2; }
.inb-col-model { flex: 1; }
.inbound-item-row { display: flex; gap: 8px; padding: 10px 0; border-bottom: 1px dashed var(--border); align-items: center; }
.inbound-item-row select, .inbound-item-row input { font-size: 13px; padding: 6px 8px; border: 1px solid var(--border); border-radius: 4px; background: var(--white); }
.inbound-items-header { display: flex; gap: 8px; padding: 6px 0; font-size: 12px; color: var(--text-secondary); font-weight: 600; }

/* 产品搜索自定义下拉 */
.inb-dropdown-item {
    padding: 8px 12px;
    cursor: pointer;
    font-size: 13px;
    border-bottom: 1px solid #f0f0f0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.inb-dropdown-item:last-child { border-bottom: none; }
.inb-dropdown-item:hover { background: var(--primary-light); }

/* 表单卡片 */
.form-card { background: var(--white); border: 1px solid var(--border); border-radius: 8px; padding: 20px; margin-bottom: 0; }

/* 弹窗 */
.modal-overlay {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.4); z-index: 1000; justify-content: center; align-items: center;
}
.modal-overlay.show { display: flex; }
.modal {
    background: var(--white); border-radius: 10px; width: 520px; max-height: 85vh;
    overflow-y: auto; box-shadow: 0 10px 40px rgba(0,0,0,0.2);
}
.modal-header {
    padding: 18px 24px; border-bottom: 1px solid var(--border);
    display: flex; justify-content: space-between; align-items: center;
}
.modal-header h3 { font-size: 16px; }
.modal-close { background: none; border: none; font-size: 20px; cursor: pointer; color: var(--text-secondary); }
.modal-body { padding: 24px; }
.modal-footer { padding: 16px 24px; border-top: 1px solid var(--border); display: flex; justify-content: flex-end; gap: 10px; }

/* 表单 */
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-size: 13px; color: var(--text-secondary); margin-bottom: 5px; }
.form-group input, .form-group select, .form-group textarea {
    width: 100%; padding: 8px 12px; border: 1px solid var(--border);
    border-radius: var(--radius); font-size: 13px; outline: none;
    transition: border-color 0.2s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--primary); }
.form-group textarea { resize: vertical; min-height: 60px; }
.form-row { display: flex; gap: 16px; }
.form-row .form-group { flex: 1; }

/* Toast */
.toast {
    position: fixed; top: 20px; right: 20px; padding: 12px 24px;
    border-radius: var(--radius); color: #fff; font-size: 14px;
    z-index: 2000; animation: slideIn 0.3s ease; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.toast.success { background: var(--success); }
.toast.error { background: var(--danger); }
@keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* ===== 响应式布局 ===== */

/* 平板端：768px ~ 1024px */
@media screen and (max-width: 1024px) {
    .sidebar { width: 180px; }
    .sidebar .logo { font-size: 15px; padding: 16px 12px; }
    .sidebar .nav-item { padding: 10px 16px; font-size: 13px; }
    .content-area { padding: 16px; }
    .data-table th, .data-table td { padding: 8px 10px; font-size: 12px; }
    .modal { width: 480px; }
    .audit-filter-bar { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
    .admin-config-grid { grid-template-columns: 1fr; }
}

/* 手机端：≤ 768px */
@media screen and (max-width: 768px) {
    /* 布局改为纵向 */
    .layout { flex-direction: column; }

    /* 侧边栏 → 顶部固定导航 */
    .sidebar {
        width: 100%; height: auto; flex-direction: row;
        background: linear-gradient(90deg, #2c0a0f 0%, #1a0508 100%);
        position: fixed; top: 0; left: 0; z-index: 999;
        align-items: center; padding: 0 8px; overflow-x: auto;
    }
    .audit-filter-bar { grid-template-columns: 1fr 1fr; }
    .audit-filter-keyword { grid-column: 1 / -1; }
    .audit-detail-meta,
    .audit-before-after { grid-template-columns: 1fr; }
    .audit-change-heading { flex-direction: column; gap: 3px; }
    .admin-section-heading { align-items: stretch; flex-direction: column; }
    .admin-heading-actions { width: 100%; }
    .admin-heading-actions .btn { flex: 1; }
    .admin-inline-form { align-items: stretch; flex-direction: column; }
    .admin-inline-form .btn { width: 100%; }
    .admin-definition-list > div { grid-template-columns: 92px minmax(0, 1fr); }
    .sidebar .logo {
        font-size: 14px; padding: 0 12px; border-bottom: none;
        white-space: nowrap; flex-shrink: 0;
    }
    .sidebar .nav-list {
        display: flex; flex-direction: row; list-style: none;
        padding: 0; margin: 0; flex-shrink: 0;
    }
    .sidebar .nav-item {
        padding: 10px 10px; font-size: 12px; white-space: nowrap;
        border-bottom: 2px solid transparent;
    }
    .sidebar .nav-item.active { border-bottom-color: var(--primary); background: none; }

    /* 主区域顶部留出导航栏空间 */
    .main-content { margin-top: 48px; }

    /* 顶部栏 */
    .topbar {
        height: auto; padding: 10px 12px; flex-wrap: wrap; gap: 8px;
    }
    .topbar .page-title { font-size: 14px; }
    .topbar .user-info { font-size: 12px; }
    .topbar .btn-logout { font-size: 12px; padding: 4px 10px; }
    .topbar-logo { width: 28px; height: 28px; }
    .topbar-actions { margin-left: auto; }
    .trial-help-button { width: 30px; height: 30px; margin-right: 8px; }

    .trial-context-bar {
        margin: 8px 12px 0; min-height: 0; padding: 9px 8px 9px 10px;
        align-items: flex-start; gap: 8px;
    }
    .trial-context-copy { flex-direction: column; align-items: flex-start; gap: 3px; }
    .trial-context-copy span { white-space: normal; line-height: 1.45; }
    .trial-context-action { align-self: center; padding: 5px 3px; white-space: nowrap; }
    .trial-context-close { width: 28px; height: 28px; flex-basis: 28px; }
    .trial-guide-drawer { width: 100vw; max-width: none; }
    .trial-guide-header { padding: 16px; }
    .trial-guide-role { padding: 13px 16px; }
    .trial-guide-body { padding: 2px 16px 16px; }
    .trial-guide-footer { padding: 11px 16px; }
    .trial-guide-footer span { display: none; }
    .trial-guide-footer .btn { margin-left: auto; }
    .trial-welcome-overlay { padding: 10px; }
    .trial-welcome-header { padding: 18px 18px 15px; }
    .trial-welcome-summary { padding: 15px 18px 2px; }
    .trial-welcome-points { padding: 8px 18px 15px; }
    .trial-welcome-footer { padding: 13px 18px; }

    /* 内容区 */
    .content-area { padding: 12px; }

    /* 表格水平滚动 */
    .data-table {
        display: block; overflow-x: auto; white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }
    .data-table th, .data-table td { padding: 8px 10px; font-size: 12px; }

    /* 弹窗 */
    .modal { width: 90%; max-height: 80vh; margin: 0 auto; }
    .modal-header { padding: 14px 16px; }
    .modal-header h3 { font-size: 15px; }
    .modal-body { padding: 16px; }
    .modal-footer { padding: 12px 16px; }

    /* 表单 */
    .form-row { flex-direction: column; gap: 0; }
    .form-group { margin-bottom: 12px; }
    .form-group label { font-size: 13px; }
    .form-group input, .form-group select, .form-group textarea {
        padding: 10px 12px; font-size: 14px;
    }

    /* 按钮 */
    .btn { padding: 8px 16px; font-size: 14px; }
    .btn-sm { padding: 6px 12px; font-size: 13px; }

    /* 工具栏 */
    .toolbar { flex-direction: column; align-items: flex-start; gap: 10px; }
    .toolbar h3 { font-size: 15px; }

    /* 登录页 */
    .login-box { width: 90%; padding: 30px 20px; }
    .login-box h1 { font-size: 20px; }
    .login-logo img { width: 60px; height: 60px; }
}
