/* ========== 全局变量 ========== */
:root {
    --primary: #4f46e5;
    --primary-light: #818cf8;
    --primary-dark: #3730a3;
    --success: #10b981;
    --warning: #f59e0b;
    --danger: #ef4444;
    --gray-100: #f3f4f6;
    --gray-200: #e5e7eb;
    --gray-300: #d1d5db;
    --gray-600: #6b7280;
    --gray-800: #1f2937;
    --card-shadow: 0 10px 25px rgba(0, 0, 0, 0.05), 0 4px 8px rgba(0, 0, 0, 0.03);
    --sidebar-width: 260px;
    --radius: 16px;
    --transition: 0.25s ease;
}

/* ========== 基础重置 ========== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: #f8fafc;
    min-height: 100vh;
    overflow-x: hidden;
    color: #1e293b;
}

/* ========== 侧边栏 ========== */
.sidebar {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: var(--sidebar-width);
    background: #0f172a;
    color: #e2e8f0;
    z-index: 1040;
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
    box-shadow: 4px 0 20px rgba(0, 0, 0, 0.15);
}

.sidebar-brand {
    padding: 24px 20px;
    font-size: 1.25rem;
    font-weight: 700;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    align-items: center;
    gap: 12px;
    letter-spacing: -0.3px;
}

.sidebar-brand i {
    font-size: 1.8rem;
    color: var(--primary-light);
}

.sidebar-nav {
    flex: 1;
    padding: 16px 12px;
    overflow-y: auto;
}

.sidebar-nav a {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: all var(--transition);
    border-radius: 10px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    margin-bottom: 2px;
}

.sidebar-nav a:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.sidebar-nav a.active {
    background: rgba(99, 102, 241, 0.2);
    color: #fff;
    box-shadow: inset 3px 0 0 var(--primary-light);
}

.sidebar-nav a i {
    font-size: 1.2rem;
    width: 24px;
    text-align: center;
}

.sidebar-user {
    padding: 16px 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 12px;
    background: rgba(0, 0, 0, 0.2);
}

.sidebar-user .avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #fff;
    font-size: 0.9rem;
}

.sidebar-user button {
    border-radius: 8px;
}

/* ========== 主内容区 ========== */
.main-content {
    margin-left: var(--sidebar-width);
    padding: 24px 32px;
    min-height: 100vh;
    transition: margin-left 0.3s ease;
}

/* ========== 响应式 ========== */
@media (max-width: 768px) {
    .sidebar {
        transform: translateX(-100%);
    }
    .sidebar.mobile-show {
        transform: translateX(0);
    }
    .main-content {
        margin-left: 0;
        padding: 16px;
    }
    .sidebar-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        backdrop-filter: blur(2px);
        z-index: 1035;
    }
    .sidebar-overlay.show {
        display: block;
    }
}
.sidebar-overlay {
    display: none;
}

/* ========== 统计卡片 ========== */
.stat-card {
    border: none;
    border-radius: var(--radius);
    box-shadow: var(--card-shadow);
    transition: transform 0.2s, box-shadow 0.2s;
    background: #fff;
    padding: 24px 20px;
    display: flex;
    align-items: center;
    gap: 18px;
    cursor: default;
}

.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.06);
}

.stat-card .icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    flex-shrink: 0;
}

.stat-card .value {
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.stat-card .label {
    color: var(--gray-600);
    font-size: 0.85rem;
    font-weight: 500;
}

/* ========== 货架卡片区域 ========== */
.shelf-section {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--card-shadow);
    margin-bottom: 24px;
    overflow: hidden;
    transition: box-shadow 0.2s;
}

.shelf-section:hover {
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
}

.shelf-header {
    padding: 16px 24px;
    background: linear-gradient(135deg, #1e293b, #334155);
    color: #fff;
    font-weight: 600;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

.shelf-header .badge {
    font-size: 0.75rem;
    font-weight: 500;
    background: rgba(255, 255, 255, 0.15);
    color: #e2e8f0;
    padding: 4px 12px;
    border-radius: 20px;
}

.shelf-body {
    padding: 20px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 14px;
}

.shelf-card {
    border: 2px solid var(--gray-200);
    border-radius: 12px;
    padding: 14px 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
    background: #fff;
    min-height: 110px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    user-select: none;
}

.shelf-card:hover:not(.missing) {
    border-color: var(--primary-light);
    box-shadow: 0 6px 20px rgba(79, 70, 229, 0.15);
    transform: translateY(-2px);
}

.shelf-card.gift {
    background: #fef9e7;
    border-color: #fcd34d;
}

.shelf-card.gift .position-label {
    color: #92400e;
}

.shelf-card.missing {
    background: #fee2e2;
    border-color: #fca5a5;
    cursor: not-allowed;
    opacity: 0.7;
    border-style: dashed;
}

.shelf-card .position-label {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--gray-600);
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

.shelf-card .stock-num {
    font-size: 1.6rem;
    font-weight: 700;
    color: #0f172a;
    margin: 4px 0;
}

.shelf-card .product-name {
    font-size: 0.8rem;
    color: var(--gray-600);
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    word-break: break-word;
}

.shelf-card .gift-badge,
.shelf-card .missing-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    font-size: 0.6rem;
    padding: 2px 10px;
    border-radius: 20px;
    font-weight: 700;
    color: #fff;
}

.shelf-card .gift-badge {
    background: #f59e0b;
}

.shelf-card .missing-badge {
    background: #ef4444;
}

/* ========== 表格 ========== */
.table-responsive {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--card-shadow);
}

.table {
    margin-bottom: 0;
}

.table th {
    background: #1e293b;
    color: #f1f5f9;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 14px 16px;
    border: none;
}

.table td {
    vertical-align: middle;
    font-size: 0.85rem;
    padding: 12px 16px;
    border-bottom: 1px solid var(--gray-200);
}

.table-hover tbody tr:hover {
    background: #f1f5f9;
}

/* ========== 模态框 ========== */
.modal-content {
    border: none;
    border-radius: 20px;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

.modal-header {
    border-bottom: 1px solid var(--gray-200);
    padding: 20px 28px;
    background: #f8fafc;
}

.modal-header .modal-title {
    font-weight: 700;
    font-size: 1.2rem;
}

.modal-body {
    padding: 28px;
}

.modal-footer {
    border-top: 1px solid var(--gray-200);
    padding: 16px 28px;
    background: #f8fafc;
}

/* ========== 按钮 ========== */
.btn {
    font-weight: 500;
    border-radius: 10px;
    padding: 8px 20px;
    transition: all var(--transition);
}

.btn-primary {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.btn-primary:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(79, 70, 229, 0.3);
}

.btn-success {
    background: var(--success);
    border-color: var(--success);
}

.btn-success:hover {
    background: #059669;
    border-color: #059669;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(16, 185, 129, 0.3);
}

.btn-outline-primary {
    color: var(--primary);
    border-color: var(--primary);
}

.btn-outline-primary:hover {
    background: var(--primary);
    color: #fff;
}

/* ========== 表单 ========== */
.form-control,
.form-select {
    border-radius: 10px;
    border: 1.5px solid var(--gray-300);
    padding: 10px 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
    font-size: 0.9rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--primary-light);
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.1);
}

.form-label {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 4px;
    color: var(--gray-800);
}

/* ========== 上传区域 ========== */
.upload-zone {
    border: 2px dashed var(--gray-300);
    border-radius: var(--radius);
    padding: 48px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    background: #fafcff;
}

.upload-zone:hover,
.upload-zone.dragover {
    border-color: var(--primary-light);
    background: #eef2ff;
}

.upload-zone i {
    font-size: 3.5rem;
    color: var(--gray-300);
}

/* ========== 加载动画 ========== */
.spinner-overlay {
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    display: none;
}

.spinner-overlay.show {
    display: flex;
}

/* ========== 页头 ========== */
.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
}

.page-header h4 {
    font-weight: 700;
    margin: 0;
    font-size: 1.4rem;
    letter-spacing: -0.02em;
}

/* ========== 搜索框 ========== */
.search-box {
    max-width: 280px;
}

/* ========== 权限标签 ========== */
.role-badge {
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.role-admin {
    background: #dbeafe;
    color: #1d4ed8;
}

.role-manager {
    background: #d1fae5;
    color: #065f46;
}

.role-staff {
    background: #fef3c7;
    color: #92400e;
}

/* ========== 登录页面 ========== */
.login-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 20px;
}

.login-card {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    border: none;
    border-radius: 28px;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.15);
    padding: 40px 36px;
    max-width: 420px;
    width: 100%;
    transition: transform 0.3s;
}

.login-card .brand-icon {
    font-size: 3rem;
    color: var(--primary);
    margin-bottom: 8px;
}

.login-card h3 {
    font-weight: 700;
    letter-spacing: -0.02em;
}

.login-card .form-control {
    background: rgba(255, 255, 255, 0.8);
    border: 1.5px solid var(--gray-200);
}

.login-card .btn-primary {
    padding: 12px;
    font-weight: 600;
}

/* ========== 系统设置卡片 ========== */
.setting-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--card-shadow);
    padding: 24px;
    margin-bottom: 20px;
}

.setting-card .setting-label {
    font-weight: 600;
    font-size: 1rem;
    margin-bottom: 4px;
}

.setting-card .setting-desc {
    color: var(--gray-600);
    font-size: 0.85rem;
    margin-bottom: 12px;
}

/* ========== 移动端适配 ========== */
@media (max-width: 576px) {
    .shelf-body {
        grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
        gap: 10px;
        padding: 12px;
    }
    .shelf-card {
        min-height: 90px;
        padding: 10px 6px;
    }
    .shelf-card .stock-num {
        font-size: 1.2rem;
    }
    .shelf-card .product-name {
        font-size: 0.7rem;
        -webkit-line-clamp: 1;
    }
    .stat-card {
        padding: 16px;
        gap: 12px;
    }
    .stat-card .value {
        font-size: 1.4rem;
    }
    .stat-card .icon {
        width: 44px;
        height: 44px;
        font-size: 1.2rem;
    }
    .login-card {
        padding: 28px 20px;
        margin: 0 16px;
    }
}

/* 辅助类 */
.sidebar-hidden {
    display: none !important;
}

.text-muted {
    color: var(--gray-600) !important;
}

.bg-light-soft {
    background: #f8fafc;
}

.rounded-4 {
    border-radius: var(--radius);
}

.shadow-hover {
    transition: box-shadow 0.2s;
}

.shadow-hover:hover {
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
}
/* ========== 2026 布局优化 ========== */
:root {
    --page-max-width: 1440px;
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --border: #e5e7eb;
}

.main-content {
    padding: 28px clamp(16px, 3vw, 40px);
}

#pageContainer {
    width: min(100%, var(--page-max-width));
    margin: 0 auto;
}

.page-header {
    padding: 4px 0 18px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--border);
}

.page-header > div,
.page-header > .d-flex {
    align-items: center;
}

.card,
.setting-card,
.shelf-section,
.login-card,
.stat-card {
    border: 1px solid rgba(226, 232, 240, .9) !important;
}

.table-responsive {
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: var(--card-shadow);
}

.table {
    margin-bottom: 0;
    vertical-align: middle;
}

.table thead th {
    background: #f8fafc;
    color: #475569;
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
    border-bottom: 1px solid var(--border);
    padding: 12px 14px;
}

.table tbody td {
    padding: 11px 14px;
}

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

.shelf-body {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
}

.shelf-card {
    min-width: 0;
    border-radius: 14px;
    padding: 14px 10px;
    transition: transform .18s ease, box-shadow .18s ease;
}

.shelf-card:hover {
    transform: translateY(-2px);
}

.login-container {
    position: relative;
    min-height: calc(100vh - 0px);
    background-color: #eef2ff;
}

.login-container::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(15,23,42,.25), rgba(79,70,229,.12));
    pointer-events: none;
}

.login-card {
    position: relative;
    z-index: 1;
}

@media (max-width: 768px) {
    .main-content {
        padding: 14px;
    }

    .page-header {
        align-items: flex-start;
        padding-bottom: 14px;
    }

    .page-header h4 {
        font-size: 1.2rem;
    }

    .page-header .d-flex {
        width: 100%;
    }

    .page-header select,
    .page-header .search-box {
        max-width: none !important;
        flex: 1 1 0;
    }

    .table-responsive {
        box-shadow: none;
    }

    .table {
        min-width: 760px;
    }
}

@media (max-width: 480px) {
    .login-card {
        border-radius: 20px;
        padding: 26px 20px;
    }
}

/* 未登录状态：主内容不受隐藏侧边栏影响，登录卡始终位于视口正中心 */
body.auth-guest .main-content {
    margin-left: 0 !important;
    padding: 0 !important;
    width: 100%;
    min-height: 100vh;
}
body.auth-guest #pageContainer {
    width: 100%;
    max-width: none;
    margin: 0;
}
.login-policy-footer {
    margin-top: 22px;
    text-align: center;
    font-size: .78rem;
    color: #64748b;
    line-height: 1.8;
}
.login-policy-footer a { color: #475569; text-decoration: none; }
.login-policy-footer a:hover { text-decoration: underline; }
.policy-sep { margin: 0 7px; color: #cbd5e1; }
.copyright-text { margin-top: 5px; color: #94a3b8; }
.system-setting-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.system-setting-help { font-size:.78rem; color:#64748b; margin-top:6px; }
.login-bg-preview { width:100%; max-height:240px; object-fit:cover; border-radius:14px; border:1px solid #e2e8f0; }


/* ========== 提取标题与全局交互优化 ========== */
.page-subtitle { color: var(--gray-600); margin: 6px 0 0; font-size: .88rem; max-width: 760px; }
.title-config-card { border: 1px solid #e8edf5; border-radius: 18px; box-shadow: 0 12px 32px rgba(15,23,42,.06); overflow:hidden; }
.title-config-card .card-body { padding: 22px; }
.eyebrow { color: var(--gray-600); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; }
.status-dot { width:32px;height:32px;border-radius:10px;background:#ecfdf5;color:#059669;display:inline-flex;align-items:center;justify-content:center; }
.title-group { margin-top:20px; padding-top:16px; border-top:1px solid #eef2f7; }
.title-group-label { display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px;font-weight:700;font-size:.88rem; }
.title-group-label small { color:var(--gray-600);font-weight:400; }
.title-chips { display:flex;flex-wrap:wrap;gap:7px;min-height:25px; }
.title-chip { display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:.76rem;font-weight:600;max-width:100%;word-break:break-word; }
.empty-state { text-align:center;padding:70px 20px;color:var(--gray-600);background:#fff;border-radius:18px;box-shadow:var(--card-shadow); }
.empty-state i { display:block;font-size:3rem;margin-bottom:12px;color:#94a3b8; }
.empty-state div { color:#334155;font-weight:700;font-size:1.05rem; }
.empty-state small { display:block;margin-top:5px; }
.form-section { margin-bottom:18px; }
.form-help,.system-setting-help { color:#94a3b8;font-size:.76rem;margin-top:6px;line-height:1.5; }
.required { color:#ef4444; }.optional { color:#94a3b8;font-weight:400;font-size:.78rem; }

.global-toast-container { position:fixed; top:20px; right:20px; z-index:12000; display:flex;flex-direction:column;gap:10px; width:min(390px,calc(100vw - 40px)); pointer-events:none; }
.global-toast { pointer-events:auto; display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:14px;background:rgba(255,255,255,.97);border:1px solid #e2e8f0;box-shadow:0 16px 40px rgba(15,23,42,.16);transform:translateX(30px);opacity:0;transition:.22s ease;font-size:.9rem; }
.global-toast.show { transform:translateX(0);opacity:1; }.global-toast>i{font-size:1.15rem}.global-toast-text{flex:1;line-height:1.45}.global-toast button{border:0;background:transparent;color:#94a3b8;font-size:1rem;padding:2px;}.toast-success>i{color:#10b981}.toast-error>i{color:#ef4444}.toast-warning>i{color:#f59e0b}.toast-info>i{color:#4f46e5}
.global-confirm-backdrop { position:fixed;inset:0;background:rgba(15,23,42,.46);backdrop-filter:blur(6px);z-index:11900;display:flex;align-items:center;justify-content:center;padding:20px; }
.global-confirm-backdrop[hidden]{display:none}.global-dialog{width:min(560px,100%);background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(15,23,42,.25);padding:24px;display:grid;grid-template-columns:auto 1fr;gap:16px;animation:dialogIn .18s ease}.global-dialog-icon{width:44px;height:44px;border-radius:14px;background:#eef2ff;color:#4f46e5;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.global-dialog-icon.danger{background:#fef2f2;color:#dc2626}.global-dialog-content h5{margin:2px 0 7px;font-weight:750}.global-dialog-content p{margin:0;color:#64748b;line-height:1.55}.global-confirm-html{grid-column:1/-1;max-height:55vh;overflow:auto}.global-dialog-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;padding-top:6px}.modal-open-custom{overflow:hidden}
@keyframes dialogIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
body.auth-guest { overflow:hidden; }
body.auth-guest .main-content { margin-left:0 !important; padding:0 !important; min-height:100vh; width:100vw; }
body.auth-guest #pageContainer { min-height:100vh; width:100%; }
body.auth-guest .login-container { width:100vw; min-height:100vh; }
.sidebar.sidebar-hidden { transform:translateX(-110%); pointer-events:none; }

/* 防止首屏与鉴权异步期间出现登录页闪动/横向跳动 */
html, body { min-height: 100%; }
body.auth-guest { width: 100%; overflow-x: hidden; }
body.auth-guest .login-container { display:flex; align-items:center; justify-content:center; width:100%; min-height:100vh; padding:32px 20px; }
body.auth-guest .login-card { flex:0 1 420px; width:min(420px,100%); }

/* ========== 用户 / 门店管理增强 ========== */
.page-subtitle { margin: 6px 0 0; color: var(--gray-600); font-size: .86rem; }
.users-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.users-search { position:relative; width:min(360px,100%); }
.users-search > i { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--gray-600); z-index:2; }
.users-search input { padding-left:40px; border-radius:12px; border:1px solid var(--gray-200); background:#fff; }
.users-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:16px; }
.user-card,.store-card { background:#fff; border:1px solid var(--gray-200); border-radius:18px; padding:20px; box-shadow:0 6px 20px rgba(15,23,42,.04); transition:transform .2s,box-shadow .2s,border-color .2s; }
.user-card:hover,.store-card:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(15,23,42,.08); border-color:#c7d2fe; }
.user-card-head,.store-card-top { display:flex; align-items:flex-start; gap:14px; justify-content:space-between; }
.user-card-head { justify-content:flex-start; }
.user-card-avatar,.store-avatar { width:48px;height:48px;border-radius:14px;background:#eef2ff;color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex:none; }
.store-avatar { width:52px;height:52px;font-size:1.25rem; }
.user-name-row { display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap; }
.user-name-row h5 { margin:0;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.protected-badge { display:inline-flex;align-items:center;gap:4px;font-size:.72rem;padding:4px 8px;border-radius:999px;background:#fef3c7;color:#92400e;white-space:nowrap; }
.user-info-row { display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid #f1f5f9;color:var(--gray-600);font-size:.82rem;min-height:42px; }
.user-info-row i { color:#94a3b8;margin-top:2px; }
.user-card-actions,.store-card-actions { display:flex;gap:8px;align-items:center;margin-top:16px; }
.action-note { color:#64748b;font-size:.78rem;display:inline-flex;gap:5px;align-items:center; }
.form-help-box,.permission-tip { padding:11px 13px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#64748b;font-size:.82rem;display:flex;gap:8px;align-items:flex-start; }
.form-help-box i,.permission-tip i { color:var(--primary);margin-top:2px; }
.modern-modal { border:0;border-radius:20px;box-shadow:0 24px 60px rgba(15,23,42,.2);overflow:hidden; }
.modern-modal .modal-header { padding:20px 22px 14px;border-bottom:1px solid #eef2f7; }
.modern-modal .modal-body { padding:22px; }
.modern-modal .modal-footer { padding:14px 22px 20px;border-top:1px solid #eef2f7; }
.modal-subtitle { color:var(--gray-600);font-size:.8rem;margin-top:4px; }
.required { color:var(--danger); }
.permission-list { display:flex;flex-direction:column;gap:10px;margin-top:14px; }
.permission-row { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff; }
.permission-row.disabled { background:#f8fafc;opacity:.65; }
.permission-store { display:flex;align-items:center;gap:10px;min-width:190px; }
.permission-store-icon { width:38px;height:38px;border-radius:10px;background:#eef2ff;color:var(--primary);display:flex;align-items:center;justify-content:center; }
.permission-store strong,.permission-store small { display:block; }
.permission-store small { color:#94a3b8;font-size:.72rem;margin-top:2px; }
.permission-checks { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 14px; }
.permission-checks label { font-size:.8rem;color:#475569;white-space:nowrap;display:flex;align-items:center;gap:5px; }
.permission-checks input { accent-color:var(--primary); }
.store-summary { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px; }
.store-summary-card { background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:16px;display:flex;align-items:center;gap:12px; }
.summary-icon { width:42px;height:42px;border-radius:12px;background:#eef2ff;color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:1.15rem; }
.summary-icon.success { background:#ecfdf5;color:#059669; }.summary-icon.muted { background:#f1f5f9;color:#64748b; }
.summary-value { font-size:1.25rem;font-weight:700;line-height:1.1; }.summary-label { color:#64748b;font-size:.75rem;margin-top:3px; }
.store-card.inactive { opacity:.78; }.store-card h5 { margin:16px 0 5px;font-size:1.05rem; }.store-meta { color:#64748b;font-size:.78rem;margin-top:5px;display:flex;gap:7px;align-items:center; }
.status-pill { padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:600; }.status-pill.active { background:#ecfdf5;color:#047857; }.status-pill.inactive { background:#f1f5f9;color:#64748b; }
/* 货架：明确展示货架号、货架层、位置，避免把三段编码混成一个“货架号”。 */
.shelf-title { font-size:1.02rem;font-weight:700; }.shelf-layer-label { margin-top:5px;color:#cbd5e1;font-size:.78rem; }.shelf-count { padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:.75rem;color:#e2e8f0; }
.shelf-position-top { width:100%;display:flex;align-items:center;justify-content:space-between;gap:6px; }.shelf-location-hint { margin-top:7px;font-size:.68rem;color:#94a3b8; }
.shelf-card { min-height:135px; }
@media (max-width: 768px) {
  .users-toolbar { align-items:stretch;flex-direction:column; }.users-search { width:100%; }.store-summary { grid-template-columns:1fr; }.permission-row { align-items:flex-start;flex-direction:column; }.permission-checks { justify-content:flex-start; }.user-card-actions,.store-card-actions { flex-wrap:wrap; }.user-card-actions .btn,.store-card-actions .btn { flex:1; }
}

/* ========== 货架视图：货架号 -> 层 -> 完整货架位 ========== */
.shelf-layers { padding: 16px 20px 20px; }
.shelf-layer { border: 1px solid var(--gray-200); border-radius: 14px; overflow: hidden; background: #f8fafc; margin-bottom: 14px; }
.shelf-layer:last-child { margin-bottom: 0; }
.shelf-layer-header { padding: 10px 14px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:#f1f5f9; border-bottom:1px solid var(--gray-200); font-weight:700; color:#334155; }
.shelf-layer-count { font-size:.72rem; color:#64748b; font-weight:500; }
.shelf-layer .shelf-body { background:#fff; }
.shelf-card .position-code { font-size:.95rem; font-weight:800; color:#0f172a; letter-spacing:.03em; font-variant-numeric: tabular-nums; }
.shelf-card .shelf-location-hint { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.table-shelf-sub { margin-top:3px; font-size:.7rem; color:#64748b; font-weight:400; }
@media (max-width:576px) {
  .shelf-layers { padding:10px; }
  .shelf-layer-header { padding:9px 11px; }
  .shelf-card .position-code { font-size:.82rem; }
}


/* 货架卡片：默认只显示货架位编号和库存；其它字段由标题配置控制 */
.shelf-card { min-height: 120px; }
.shelf-card .shelf-position-top { margin-bottom: 6px; }
.shelf-card .position-code { font-size: 1rem; font-weight: 800; color: #0f172a; letter-spacing: .03em; }
.shelf-card .stock-num { margin: 8px 0 0; font-size: 2rem; line-height: 1; font-weight: 800; }
.shelf-card .card-extra { margin-top: 8px; font-size: .82rem; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-display-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.card-display-options label { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc; cursor:pointer; }
.card-display-options input { width:16px; height:16px; }
@media(max-width:576px){.card-display-options{grid-template-columns:1fr;}}


/* ===== 货架视图新版：紧凑、清晰、少干扰 ===== */
.shelf-tip{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#64748b;font-size:.8rem;box-shadow:0 3px 12px rgba(15,23,42,.04)}
.shelf-section{margin-bottom:24px;padding:0;background:#fff;border:1px solid #e7ebf0;border-radius:20px;box-shadow:0 10px 30px rgba(15,23,42,.05);overflow:hidden}
.shelf-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #edf0f3;background:linear-gradient(180deg,#fff,#fafbfc)}
.shelf-title{font-size:1.05rem;font-weight:800;color:#111827;letter-spacing:-.01em}
.shelf-section-sub{margin-top:3px;font-size:.76rem;color:#94a3b8}
.shelf-section-icon{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#f1f5ff;color:var(--primary);font-size:1rem}
.shelf-layers{padding:18px 20px 20px}
.shelf-layer{border:0;border-radius:16px;overflow:visible;background:transparent;margin-bottom:18px}
.shelf-layer:last-child{margin-bottom:0}
.shelf-layer-header{padding:0 2px 10px;display:flex;align-items:center;justify-content:space-between;background:transparent;border:0;font-size:.82rem;color:#64748b}
.shelf-layer-header>span:first-child{font-weight:750;color:#334155}
.shelf-layer-header>span:last-child{padding:4px 8px;border-radius:999px;background:#f8fafc;color:#94a3b8;font-size:.72rem}
.shelf-layer .shelf-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;background:transparent}
.shelf-card{min-height:116px;border:1px solid #e6e9ee;border-radius:16px;background:#fff;padding:14px 14px 12px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;box-shadow:0 4px 14px rgba(15,23,42,.035);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.shelf-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.08);border-color:#d8def0}
.shelf-position-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
.position-code{font-size:.98rem;font-weight:800;letter-spacing:.01em;color:#172033}
.stock-num{font-size:1.55rem;font-weight:850;line-height:1.05;text-align:center;color:#111827;padding:13px 0 4px}
.card-extra{font-size:.74rem;color:#64748b;text-align:center;border-top:1px solid #f1f3f5;padding-top:8px;margin-top:5px;word-break:break-word}
.shelf-card.missing{background:#fff8f8;border:1px dashed #f2a8a8;cursor:default;box-shadow:none}
.shelf-card.missing .stock-num{color:#94a3b8;font-size:1.5rem}
.missing-badge{font-size:.68rem;font-weight:700;color:#fff;background:#f87171;padding:4px 7px;border-radius:999px}
@media (max-width:700px){.shelf-layer .shelf-body{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shelf-card{min-height:105px;padding:12px}.position-code{font-size:.9rem}.stock-num{font-size:1.35rem}}

/* ===== 登录背景可靠加载与登录页视觉 ===== */
body.auth-guest .main-content{padding:0}
body.auth-guest .login-container{min-height:100vh;position:relative;isolation:isolate;background-color:#eef2f7;background-image:linear-gradient(135deg,#eef2f7,#f8fafc)}
body.auth-guest .login-container::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,.10),rgba(15,23,42,.28));z-index:-1}
body.auth-guest .login-container:not(.has-login-background)::before{display:none}
body.auth-guest .login-container:not(.has-login-background){background-color:#fff;background-image:none !important}
.login-card{position:relative;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.72);border-radius:24px;box-shadow:0 28px 80px rgba(15,23,42,.20);padding:38px 36px;max-width:430px}

.title-config-card{background:#fff;border:1px solid #e7ebf0;border-radius:18px;box-shadow:0 8px 24px rgba(15,23,42,.045);overflow:hidden}
.title-card-head{padding:18px 18px 14px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #eef1f4}.title-card-head h5{margin:3px 0 2px;font-weight:800}.platform-state{font-size:.7rem;padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#64748b}.platform-state.master{background:#eef2ff;color:#4338ca}.title-card-body{padding:15px 18px}.title-mini-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid #f3f4f6;font-size:.82rem;color:#64748b}.title-mini-row>span:last-child{color:#334155;text-align:right}.title-card-actions{display:flex;gap:8px;margin-top:14px}.mapping-summary-wrap{display:flex;gap:12px;flex-wrap:wrap}.mapping-summary{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e7ebf0;border-radius:16px;padding:13px 15px;box-shadow:0 6px 20px rgba(15,23,42,.035)}.mapping-summary-icon{width:40px;height:40px;border-radius:12px;background:#eef2ff;color:#4f46e5;display:flex;align-items:center;justify-content:center}.mapping-empty{padding:13px 15px;border:1px dashed #d8dee8;border-radius:14px;background:#fafbfc;color:#64748b}.mapping-dialog-intro{display:flex;flex-direction:column;gap:3px;padding:13px 14px;border-radius:14px;background:#f8fafc;border:1px solid #e6eaf0;color:#64748b;margin-bottom:16px}.mapping-dialog-intro strong{color:#334155}.mapping-section{margin-top:18px;padding-top:16px;border-top:1px solid #edf0f3}.mapping-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.mapping-row{border:1px solid #e2e8f0;border-radius:14px;padding:12px;margin-bottom:10px;background:#fff}.mapping-row-top{display:flex;gap:8px;margin-bottom:10px}.mapping-row-top .mapping-name{flex:1}.mapping-platform-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px}.mapping-platform-grid label{display:flex;flex-direction:column;gap:5px;font-size:.74rem;color:#64748b}.mapping-empty-row{padding:12px;border-radius:12px;background:#f8fafc;color:#94a3b8;font-size:.8rem}@media(max-width:700px){.mapping-platform-grid{grid-template-columns:1fr}.mapping-row-top{flex-direction:column}}

/* ===== 2026 全站视觉优化 ===== */
:root{--primary:#4f46e5;--primary-dark:#3730a3;--ink:#172033;--muted:#718096;--line:#e8ecf2;--surface:#fff;--page:#f5f7fb;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--radius:18px;--shadow-sm:0 4px 16px rgba(15,23,42,.045);--shadow-md:0 14px 36px rgba(15,23,42,.07)}
body{background:var(--page);color:var(--ink);letter-spacing:-.01em}.main-content{padding:28px 34px}.page-header{margin-bottom:22px}.page-header h4{font-size:1.48rem;letter-spacing:-.035em}.page-subtitle{color:#8a94a6;margin-top:5px;font-size:.84rem}.app-card,.card.app-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}
.btn{min-height:40px;border-radius:11px}.form-control,.form-select{min-height:42px;border-color:#dfe4ec;background:#fff}.form-control:focus,.form-select:focus{box-shadow:0 0 0 4px rgba(79,70,229,.09)}
/* 货架视图 */
.shelf-section{border:1px solid #e5e9f0;border-radius:22px;box-shadow:var(--shadow-md);margin-bottom:22px;background:#fff}.shelf-header{padding:18px 22px;background:#fff;border-bottom:1px solid #eef1f5;color:var(--ink)}.shelf-title{font-size:1.12rem;font-weight:850}.shelf-section-sub{color:#98a2b3}.shelf-section-icon{background:#f0efff}.shelf-layers{padding:18px 20px 22px}.shelf-layer{padding:0;margin:0 0 20px}.shelf-layer:last-child{margin-bottom:0}.shelf-layer-header{position:relative;padding:0 2px 9px;color:#475467;font-size:.82rem}.shelf-layer-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#edf0f4}.shelf-layer-header>span:first-child{padding:0 9px 0 0;background:#fff;position:relative;z-index:1}.shelf-layer-header>span:last-child{background:#fff;position:relative;z-index:1;padding-left:9px}.shelf-layer .shelf-body{padding:14px 0 0;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}.shelf-card{min-height:112px;border:1px solid #e4e8ef;border-radius:17px;padding:13px 13px 12px;box-shadow:0 3px 10px rgba(15,23,42,.035);justify-content:space-between}.shelf-card:before{display:none!important;}.shelf-card:hover:not(.missing){border-color:#cfd5e8;box-shadow:0 12px 28px rgba(15,23,42,.09)}.shelf-card .position-code{font-size:.98rem}.shelf-card .stock-num{font-size:1.75rem;margin:0;padding:16px 0 3px}.shelf-card .card-extra{border-top:0;padding-top:0;margin-top:0}.shelf-card.missing{background:#fffafa}.shelf-card.missing:before{display:none!important}.missing-badge{font-size:.64rem}.shelf-tip{background:#fff;border-color:#e7eaf0;color:#667085}
/* 表格分组 */
.table-shelf-group{background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:18px;overflow:hidden;box-shadow:var(--shadow-sm)}.table-shelf-group-head{padding:14px 18px;background:#fafbfc;border-bottom:1px solid #edf0f4;display:flex;justify-content:space-between;align-items:center}.table-shelf-index{font-size:1rem;font-weight:800}.table-shelf-count{margin-left:10px;color:#98a2b3;font-size:.75rem}.table-group-inner{box-shadow:none;border-radius:0}.stock-badge{display:inline-flex;min-width:36px;justify-content:center;padding:5px 9px;border-radius:9px;font-weight:800;font-size:.78rem}.stock-badge.normal{background:#ecfdf3;color:#15803d}.stock-badge.warning{background:#fff7ed;color:#c2410c}.stock-badge.danger{background:#fef2f2;color:#b91c1c}.verify-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:700}.verify-badge.verified{background:#ecfdf3;color:#15803d}.verify-badge.pending{background:#fff7ed;color:#b45309}
/* 导入 */.step-title{display:flex;align-items:center;gap:10px;font-weight:800;margin-bottom:10px}.step-title:first-letter{color:var(--primary)}.upload-actions{display:flex;gap:9px;margin-top:16px}.reset-note{font-size:.74rem;color:#98a2b3;margin-top:11px;display:flex;gap:6px}.upload-file-summary{display:flex;gap:11px;align-items:center;padding:11px 13px;background:#f0fdf4;border:1px solid #d8f3df;border-radius:12px;color:#166534}.upload-file-summary i{font-size:1.1rem}.upload-file-summary small{display:block;color:#4b8060}.preview-caption{font-size:.76rem;color:#98a2b3;margin-bottom:7px}.preview-table{border:1px solid var(--line);border-radius:12px}.preview-table td,.preview-table th{white-space:nowrap;font-size:.72rem}
/* 采购价 */.purchase-help{background:#f7f8ff;border:1px solid #e6e8ff;color:#596174;padding:12px 15px;border-radius:14px;margin-bottom:14px;font-size:.8rem}.purchase-table-wrap{border-radius:20px}.purchase-input{min-width:120px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.empty-state.compact{padding:34px 12px}
/* 登录 */body.auth-guest .login-container{background-position:center;background-size:cover;background-repeat:no-repeat}.login-card{width:min(430px,calc(100% - 32px));padding:40px;border-radius:24px}.login-container:after{content:"";position:absolute;inset:0;background:rgba(15,23,42,.16);z-index:-1;pointer-events:none}
.shelf-verify-state{font-size:.68rem;color:#98a2b3;display:none}
@media(max-width:768px){.main-content{padding:18px 14px}.shelf-section{border-radius:18px}.shelf-layers{padding:14px}.shelf-layer .shelf-body{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.shelf-card{min-height:100px;padding:11px}.shelf-card .stock-num{font-size:1.45rem}.page-actions{width:100%}.page-actions .btn{flex:1}.login-card{padding:30px 24px}}

/* ===== v2 视觉与交互升级 ===== */
.auth-guest #mobileMenuButton,.auth-guest #sidebar,.auth-guest .sidebar-overlay,.auth-guest #mobileBottomNav{display:none!important}
.page-header{margin-bottom:22px;display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.page-header h4{font-weight:800;letter-spacing:-.02em}.page-subtitle{margin:.35rem 0 0;color:#7b8799;font-size:.88rem}.app-card{border:1px solid #e8edf5;background:#fff;border-radius:20px;box-shadow:0 8px 30px rgba(20,35,70,.055)}
.import-platform-panel{padding:18px 20px;margin-bottom:16px}.section-label{font-size:.78rem;font-weight:800;color:#7b8799;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.import-platform-list{display:grid;gap:8px}.import-platform-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:13px 14px;border:1px solid #edf0f5;border-radius:14px;background:#fbfcfe}.import-platform-row strong{display:inline-flex;align-items:center;gap:7px}.import-platform-row small{display:block;color:#8a94a6;margin-top:4px}.master-mini{font-size:.68rem;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#4f46e5}.import-status{font-size:.76rem;font-weight:700}.import-status.done{color:#0f9f6e}.import-status.empty{color:#98a2b3}.upload-main-card{padding:22px}.detected-platform-box{padding:12px 15px;border-radius:13px;background:#f6f8fc;margin-bottom:14px}.detect-ok{color:#0b8f67}.detect-manual{color:#a05a00}.platform-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}.platform-choice{border:1px solid #e4e9f2;background:#fff;border-radius:13px;padding:14px;text-align:left}.platform-choice.selected{border-color:#5b5bd6;box-shadow:0 0 0 3px rgba(79,70,229,.1);background:#f7f7ff}.platform-choice small{display:block;color:#8a94a6;margin-top:4px}.inventory-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inventory-action-grid label{border:1px solid #e5e9f1;border-radius:13px;padding:12px;display:flex;gap:10px;align-items:flex-start;cursor:pointer}.inventory-action-grid label:has(input:checked){border-color:#6366f1;background:#f7f7ff}.inventory-action-grid input{margin-top:4px}.inventory-action-grid small{display:block;color:#8a94a6;margin-top:3px}.inventory-product-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.inventory-product-head strong{font-size:1.35rem}.inventory-current-badge{font-weight:800;color:#334155}.verify-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800}.verify-badge.verified{background:#e8f8f1;color:#087f5b}.verify-badge.pending{background:#f1f3f6;color:#697386}.verify-badge.mismatch{background:#fff0ee;color:#c0392b}.verify-badge.modified{background:#eef3ff;color:#3f51b5;margin-left:5px}.verification-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.verify-stat{background:#fff;border:1px solid #e8edf5;border-radius:16px;padding:15px 18px}.verify-stat b{display:block;font-size:1.4rem}.verify-stat span{color:#7b8799;font-size:.8rem}.verify-stat.success b{color:#0b946d}.verify-stat.danger b{color:#d14a3e}
.shelf-section{border:1px solid #e8edf4;box-shadow:0 8px 26px rgba(23,36,65,.05)}.shelf-header{background:linear-gradient(135deg,#182338,#26344f);padding:18px 22px}.shelf-title{font-size:1.12rem;font-weight:850}.shelf-stats{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.shelf-stats span{font-size:.72rem;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.09);color:#dce4f2}.shelf-stats .ok{background:rgba(46,211,153,.13);color:#8af0ca}.shelf-stats .warn{background:rgba(255,193,7,.13);color:#ffd878}.shelf-stats .edit{background:rgba(126,151,255,.15);color:#b8c7ff}.shelf-layer{padding:14px 18px;border-top:1px solid #eef1f5}.shelf-layer-header{padding:4px 4px 10px;color:#64748b;font-weight:800;display:flex;justify-content:space-between}.shelf-body{padding:0;grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:11px}.shelf-card{min-height:112px;border:1px solid #e4e9f1;border-radius:16px;padding:14px 12px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 4px 12px rgba(20,35,70,.025)}.shelf-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(20,35,70,.09)}.shelf-card.verified{border-color:#bce8d9;background:#fbfffd}.shelf-card.pending{background:#fff}.shelf-card.mismatch{border-color:#ffc7c2;background:#fff9f8}.shelf-card.modified{border-color:#c8d4ff}.shelf-card.missing{background:#f7f8fa;border-style:dashed}.position-code{font-weight:850;font-size:1rem;color:#172033}.stock-num{font-size:1.45rem;font-weight:900;line-height:1.05;text-align:center;color:#101828}.shelf-verify-state{font-size:.68rem;color:#7c8799;text-align:center;margin-top:5px}.shelf-card.verified .shelf-verify-state{color:#0b946d}.shelf-card.mismatch .shelf-verify-state{color:#c0392b}.missing-badge{font-size:.65rem;padding:3px 7px;border-radius:999px;background:#fce8e7;color:#c0392b}.card-extra{font-size:.72rem;color:#697586;text-align:center}
@media(max-width:768px){.main-content{padding:12px}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:15px}.page-header .btn{width:100%}.import-platform-row{grid-template-columns:1fr auto}.import-platform-row button{grid-column:1/-1;width:100%}.shelf-header{padding:15px}.shelf-stats{justify-content:flex-start;margin-top:10px}.shelf-body{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.shelf-card{min-height:102px}.inventory-action-grid{grid-template-columns:1fr}.verification-stats{grid-template-columns:1fr 1fr 1fr;gap:7px}.verify-stat{padding:11px}.verify-stat b{font-size:1.15rem}}

.dashboard-status-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.status-summary-card{background:#fff;border:1px solid #e8edf5;border-radius:15px;padding:12px 14px}.status-summary-card span{display:block;color:#7b8799;font-size:.72rem}.status-summary-card b{font-size:1.25rem;color:#172033}.status-summary-card.success b{color:#0b946d}.status-summary-card.warning b{color:#b7791f}.status-summary-card.danger b{color:#c0392b}.status-summary-card.info b{color:#4f63b6}@media(max-width:900px){.dashboard-status-strip{grid-template-columns:repeat(3,1fr)}}
/* 采购管理二级菜单 */
.sidebar-nav-section{display:flex;align-items:center;gap:.65rem;padding:.7rem 1rem .35rem;color:#9aa4b2;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:none}
.sidebar-subnav{padding:0 0 .35rem}
.sidebar-subnav a{padding-left:2.35rem!important;font-size:.92rem}

/* 二级菜单默认折叠：避免侧栏首次进入时信息过载。 */
.sidebar-group-toggle{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;}
.sidebar-group-toggle>span{display:flex;align-items:center;gap:.65rem;}
.sidebar-group-chevron{margin-left:auto;transition:transform .2s ease;}
.sidebar-group.collapsed .sidebar-group-chevron{transform:rotate(-90deg);}
.sidebar-group.collapsed .sidebar-subnav{display:none;}
.sidebar-group:not(.collapsed) .sidebar-subnav{display:block;}

.setup-guide{padding:1.15rem 1.25rem;border:1px solid rgba(13,110,253,.10);}
.setup-guide-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}
.setup-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;}
.setup-step{min-width:0;padding:.8rem;border:1px solid #edf0f4;border-radius:12px;background:#fafbfc;display:flex;flex-direction:column;gap:.55rem;}
.setup-step.current{border-color:rgba(13,110,253,.35);box-shadow:0 0 0 2px rgba(13,110,253,.06);}
.setup-step.done{background:#f8fcf9;}
.setup-step-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#eef3f8;color:#4f6378;}
.setup-step.done .setup-step-icon{background:#eaf7ee;color:#198754;}
.setup-step-state{font-size:.72rem;font-weight:700;color:#198754;}
.setup-step-state.current{color:#0d6efd;}
@media (max-width:900px){.setup-steps{grid-template-columns:1fr 1fr;}.setup-guide-head{align-items:flex-start;flex-direction:column;}}
@media (max-width:520px){.setup-steps{grid-template-columns:1fr;}}

/* ===== 2026-08-31 业务稳定性与视觉统一 ===== */
.global-filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e8edf3;border-radius:16px;padding:10px 12px;margin-bottom:14px;box-shadow:0 4px 16px rgba(15,23,42,.035)}
.filter-field{position:relative;min-width:180px}.filter-field.grow{flex:1;min-width:240px}.filter-field>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#98a2b3;z-index:2}.filter-field input{padding-left:34px}.filter-field .form-control,.filter-field .form-select{height:40px;border-color:#e3e8ef;border-radius:11px;font-size:.82rem}.table-settings-strip{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;font-size:.8rem}.table-settings-strip label{display:flex;gap:7px;align-items:center;font-weight:700;color:#344054}.comparison-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.comparison-badge.good{background:#ecfdf3;color:#087443}.comparison-badge.warn{background:#fff7e6;color:#a15c00}.comparison-badge.bad{background:#fff0ef;color:#b42318}.comparison-badge.tiny{padding:3px 7px;font-size:.62rem}.source-mini{margin-top:5px;color:#98a2b3;font-size:.65rem;line-height:1.45}data-row{transition:background .15s ease}.data-row:hover{background:#f8fbff}.batch-action-bar{position:sticky;top:10px;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:11px 14px;margin-bottom:12px;border:1px solid #dbe7ff;background:#f8fbff;border-radius:14px;box-shadow:0 8px 24px rgba(15,23,42,.08)}
.shelf-card{position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.shelf-card:before{display:none!important;}.shelf-card.selected{border-color:#4f7cff!important;box-shadow:0 0 0 3px rgba(79,124,255,.14),0 10px 24px rgba(31,63,135,.12)!important;transform:translateY(-2px)}.shelf-card.selected:after{content:'✓';position:absolute;right:9px;top:8px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#4f7cff;color:#fff;font-size:.75rem;font-weight:800}.shelf-product-name{min-height:28px;padding:3px 4px;text-align:center;font-size:.72rem;font-weight:650;color:#344054;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shelf-header{background:linear-gradient(135deg,#182338 0%,#2c3d5e 100%)!important;color:#fff!important}.shelf-title{color:#fff}.shelf-section-sub{color:#c7d0df}.shelf-layer{background:#fff}.shelf-layer-header{color:#475467}.shelf-body{display:grid}.shelf-card .position-code{color:#172033}.shelf-card .stock-num{color:#101828}.shelf-card .shelf-verify-state{color:#667085}.shelf-card.verified .shelf-verify-state{color:#087443}.shelf-card.mismatch .shelf-verify-state{color:#b42318}.shelf-card.missing .position-code{color:#667085}.module-badge,.action-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:750}.module-badge{background:#f2f4f7;color:#475467}.action-badge{background:#eef4ff;color:#3657a8}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.role-card{background:#fff;border:1px solid #e6eaf0;border-radius:18px;padding:18px;box-shadow:0 5px 18px rgba(15,23,42,.035)}.role-card-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eef4ff;color:#3157c7;font-size:1.1rem;margin-bottom:14px}.role-card-icon.role-admin{background:#fff1f0;color:#c4322c}.role-card-icon.role-manager{background:#f3f0ff;color:#6941c6}.role-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.role-card h5{margin:0;font-weight:850;color:#182230}.role-code{font-size:.65rem;color:#98a2b3}.role-system-badge{font-size:.62rem;padding:4px 7px;border-radius:999px;background:#f2f4f7;color:#667085;white-space:nowrap}.role-card p{font-size:.78rem;color:#667085;line-height:1.6;min-height:50px}.role-permissions{display:flex;gap:6px;flex-wrap:wrap}.role-permissions span{font-size:.67rem;padding:5px 7px;border-radius:8px;background:#f8fafc;color:#475467}.role-permissions i{color:#12b76a;margin-right:3px}.role-note{display:flex;gap:10px;align-items:flex-start;color:#667085;font-size:.78rem}.role-note>i{color:#4f7cff;font-size:1.1rem}.upload-progress .progress{height:8px;border-radius:99px;background:#edf1f6}.upload-progress .progress-bar{border-radius:99px}.preview-caption{padding:9px 11px;border:1px solid #e8edf3;border-bottom:0;border-radius:12px 12px 0 0;background:#f8fafc;color:#667085}.preview-caption strong{color:#344054}.preview-table{border-radius:0 0 12px 12px}.sidebar-group{margin:2px 0}.sidebar-group .sidebar-nav-section{font-size:.92rem;color:#c9d1dc;padding:.72rem 1rem}.sidebar-subnav a{font-size:.88rem!important;color:#aeb8c7!important}.sidebar-subnav a:hover,.sidebar-subnav a.active{color:#fff!important}.sidebar-group.collapsed .sidebar-subnav{display:none}.sidebar-group:not(.collapsed) .sidebar-subnav{display:block}.sidebar-group-toggle>span i{width:20px;text-align:center}.sidebar-group-toggle{border-radius:10px}.sidebar-group-toggle:hover{background:rgba(255,255,255,.05)}
@media(max-width:900px){.role-grid{grid-template-columns:1fr}.global-filter-bar{align-items:stretch}.filter-field,.filter-field.grow{min-width:100%;}.table-settings-strip{align-items:flex-start;flex-direction:column}}
.table-column-options{display:flex;gap:10px;flex-wrap:wrap}.table-column-options label{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:650;color:#475467}.table-column-options input{accent-color:#4f7cff}
/* 菜单文字统一：采购二级菜单与其它导航保持相同字号和行高 */
.sidebar-nav a,.sidebar-subnav a{font-size:.92rem!important;line-height:1.25}.sidebar-subnav a i{font-size:1rem}.sidebar-group .sidebar-nav-section{font-size:.92rem!important;line-height:1.25}
/* 2026-08-31 latest UX refinements */
.dashboard-guide-desktop{display:block}
.mobile-bottom-nav{display:none}
.mapping-page-card{padding:22px}
.mapping-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:14px;align-items:end;margin-bottom:20px}
.mapping-toolbar-action{display:flex;justify-content:flex-end}
.master-reference{border:1px solid #e7ebf2;background:linear-gradient(180deg,#fbfcfe,#f7f9fc);border-radius:18px;padding:18px;margin-bottom:18px}
.reference-head h5{margin:3px 0 4px;font-weight:800;color:#172033}.reference-head p{margin:0;color:#7b8799;font-size:.78rem}.reference-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}.reference-item{background:#fff;border:1px solid #e9edf3;border-radius:13px;padding:12px}.reference-item>span{display:block;color:#7b8799;font-size:.72rem;margin-bottom:7px;font-weight:700}.title-chip{display:inline-flex;align-items:center;margin:2px 4px 2px 0;padding:4px 8px;border-radius:999px;background:#eef4ff;color:#3657a8;font-size:.68rem;font-weight:700}.advanced-field{border:1px solid #e8edf3;border-radius:16px;padding:16px;margin-top:12px;background:#fff}.advanced-field-head{margin-bottom:12px}.advanced-field-head strong{display:block;color:#172033}.advanced-field-head small{color:#98a2b3}.advanced-platform-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.advanced-platform-grid label span{display:block;font-size:.72rem;font-weight:700;color:#667085;margin-bottom:5px}.mapping-toolbar .form-select{height:42px;border-radius:12px}.settings-title{white-space:nowrap}
.shelf-stock-line{display:flex;align-items:baseline;justify-content:center;gap:7px;margin:10px 0 4px;color:#7a8698;font-size:.72rem;font-weight:700}.shelf-stock-line strong{font-size:1.05rem;line-height:1;font-weight:850;color:#172033}.shelf-card{min-height:104px;padding:12px 12px 10px!important;border-radius:15px!important;border:1px solid var(--shelf-pending-border)!important;background:var(--shelf-pending-fill)!important;box-shadow:0 5px 16px rgba(15,23,42,.045)!important}.shelf-card:hover{transform:translateY(-1px)!important;box-shadow:0 9px 20px rgba(15,23,42,.075)!important}.shelf-card-top{display:flex;justify-content:space-between;align-items:center;gap:6px}.shelf-card .position-code{font-size:.86rem;font-weight:850;color:#273449!important}.shelf-product-name{color:#475467!important}.shelf-extra{font-size:.68rem;color:#667085;text-align:center;margin-top:5px}.shelf-verify-state{font-size:.67rem!important}.mobile-menu-config{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.mobile-menu-config label{border:1px solid #e7ebf0;border-radius:11px;padding:10px;background:#fafbfc;font-size:.78rem;font-weight:700;color:#344054}.mobile-menu-config input{margin-right:5px}
.export-title-select{display:grid;grid-template-columns:1fr 1fr;gap:10px}.export-title-select label{padding:10px;border:1px solid #e7ebf0;border-radius:10px;font-size:.8rem;font-weight:650}
@media(max-width:768px){
 .dashboard-guide-desktop{display:none!important}
 .main-content{padding-bottom:78px!important}
 .mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(3,1fr);left:10px;right:10px;bottom:10px;z-index:1050;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border:1px solid #e4e8ef;border-radius:18px;box-shadow:0 10px 30px rgba(15,23,42,.13);padding:5px}
 .mobile-bottom-nav button{border:0;background:transparent;color:#7b8799;border-radius:13px;padding:7px 3px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.63rem;font-weight:700}.mobile-bottom-nav button i{font-size:1.05rem}.mobile-bottom-nav button.active{background:#eef4ff;color:#3157c7}
 .mapping-toolbar{grid-template-columns:1fr}.mapping-toolbar-action{justify-content:stretch}.mapping-toolbar-action .btn{width:100%}.reference-grid{grid-template-columns:1fr 1fr}.advanced-platform-grid{grid-template-columns:1fr}.export-title-select{grid-template-columns:1fr}
}
@media(max-width:420px){.reference-grid{grid-template-columns:1fr}.mobile-bottom-nav{left:6px;right:6px;bottom:6px}}

.shelf-card .shelf-card-top{justify-content:center!important;text-align:center;width:100%;}
.shelf-card .position-code{display:block;width:100%;text-align:center!important;}
.shelf-card .shelf-fixed-product-code{text-align:center!important;}

/* 最新业务稳定版视觉修正 */
.platform-manager{margin:18px 0;padding:16px;border:1px solid #e8edf3;border-radius:16px;background:#fbfcfe}.platform-manager-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.platform-manager-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #e7ebf0;border-radius:12px;background:#fff}.master-mini{display:inline-flex;margin-left:7px;padding:3px 7px;border-radius:999px;background:#eef4ff;color:#3157c7;font-size:.62rem;font-weight:800}.shelf-stock-line strong{font-size:1rem!important}.shelf-stock-line{font-size:.72rem!important}

/* 2026-08-31 业务稳定版：导入诊断、售罄、供应商历史、平台管理与货架视觉 */
.import-invalid-details{margin:12px 0;padding:12px 14px;border:1px solid #e5e7eb;border-radius:12px;background:#fafbfc}.import-invalid-details summary{cursor:pointer;font-weight:600;color:#475569}.invalid-reason-list{margin-top:10px;max-height:260px;overflow:auto}.invalid-reason-list>div{display:flex;gap:14px;padding:7px 0;border-top:1px solid #eef2f6;font-size:.86rem}.invalid-reason-list span{min-width:100px;color:#64748b}.invalid-reason-list strong{font-weight:500;color:#b42318}.stock-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#eef6ff;color:#245b9e;font-weight:600;font-size:.82rem}.stock-pill.soldout{background:#fff1f0;color:#b42318}.platform-manage-card{background:linear-gradient(180deg,#fff,#f8fafc)}.platform-manage-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid #eef2f6}.reference-title-list{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.purchase-best-price{font-size:.8rem;color:#64748b}.purchase-best-price.is-best{color:#13795b;font-weight:700}.shelf-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.shelf-card:hover{transform:translateY(-1px)}.shelf-stock-line{display:flex;align-items:baseline;gap:5px;margin-top:9px}.shelf-stock-line span{font-size:.78rem;color:#64748b}.shelf-stock-line strong{font-size:1rem;font-weight:650;color:#334155}.shelf-card.mismatch .shelf-stock-line strong{color:#b42318}
@media (max-width:767.98px){.platform-manage-row{padding:11px 0}.invalid-reason-list>div{display:block}.invalid-reason-list span{display:block;margin-bottom:3px}shelf-stock-line strong{font-size:.98rem}}
/* 货架状态视觉统一：颜色可在“卡片样式”中自定义 */
:root{
 --shelf-pending-fill:#fff;--shelf-pending-border:#e5e7eb;--shelf-pending-text:#334155;
 --shelf-verified-fill:#f7fcfa;--shelf-verified-border:#bfe8d5;--shelf-verified-text:#176b4f;
 --shelf-mismatch-fill:#fff8f7;--shelf-mismatch-border:#efb5af;--shelf-mismatch-text:#9f2f28;
 --shelf-missing-fill:#f8fafc;--shelf-missing-border:#d9dee7;--shelf-missing-text:#667085;
 --shelf-selected-fill:#f3f6ff;--shelf-selected-border:#7b9cff;--shelf-selected-text:#274690;
}
.shelf-card{color:var(--shelf-pending-text)!important;background:var(--shelf-pending-fill)!important;border-color:var(--shelf-pending-border)!important}
.shelf-card.pending{color:var(--shelf-pending-text)!important;background:var(--shelf-pending-fill)!important;border-color:var(--shelf-pending-border)!important}
.shelf-card.verified{color:var(--shelf-verified-text)!important;background:var(--shelf-verified-fill)!important;border-color:var(--shelf-verified-border)!important}
.shelf-card.mismatch{color:var(--shelf-mismatch-text)!important;background:var(--shelf-mismatch-fill)!important;border-color:var(--shelf-mismatch-border)!important}
.shelf-card.missing{color:var(--shelf-missing-text)!important;background:var(--shelf-missing-fill)!important;border-color:var(--shelf-missing-border)!important}
.shelf-card.selected{color:var(--shelf-selected-text)!important;background:var(--shelf-selected-fill)!important;border-color:var(--shelf-selected-border)!important}
.shelf-card .position-code,.shelf-card .shelf-product-name,.shelf-card .shelf-extra,.shelf-card .shelf-verify-state{color:inherit!important}
.shelf-card .shelf-stock-line span{color:#64748b!important}.shelf-card .shelf-stock-line strong{font-size:1rem!important;font-weight:650!important;color:inherit!important}.shelf-card .shelf-stock-line strong.soldout{font-weight:750!important}
.shelf-card .shelf-empty-reason{display:none;margin-top:6px;padding:5px 7px;border-radius:8px;background:rgba(255,255,255,.65);font-size:.67rem;line-height:1.35;color:inherit;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.shelf-card.missing .shelf-empty-reason{display:-webkit-box}
.shelf-card.missing:not(.missing-edited) .shelf-empty-reason{display:none}
.shelf-card.missing-edited{box-shadow:inset 0 0 0 1px rgba(79,70,229,.08)!important}
.shelf-card.missing-edited .missing-badge{background:#eef2ff;color:#4338ca}
.shelf-fallback-notice{display:flex;align-items:flex-start;gap:9px;padding:11px 14px;margin-bottom:13px;border:1px solid #d9e3ff;border-radius:13px;background:#f5f8ff;color:#3b4f7a;font-size:.8rem;line-height:1.55}.shelf-fallback-notice i{margin-top:2px;color:#4f63b6}
.card-style-row{display:grid;grid-template-columns:110px repeat(3,minmax(110px,1fr));gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f4}.card-style-row:last-child{border-bottom:0}.card-style-row label{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:.76rem;color:#667085}.card-style-row input[type=color]{width:42px;height:30px;border:1px solid #d8dee8;border-radius:7px;padding:2px;background:#fff}
@media(max-width:600px){.card-style-row{grid-template-columns:1fr 1fr}.card-style-row strong{grid-column:1/-1}.shelf-fallback-notice{font-size:.74rem}.shelf-card .shelf-empty-reason{display:none}.shelf-card.missing-edited .shelf-empty-reason{display:-webkit-box}}

/* ===== v7 货架卡片与主平台数据视觉修正 ===== */
.shelf-card:before,.shelf-card.pending:before,.shelf-card.verified:before,.shelf-card.mismatch:before,.shelf-card.missing:before{display:none!important}
.shelf-card{position:relative;overflow:hidden}
.shelf-card .shelf-stock-line{margin-top:10px;display:flex;align-items:center}
.shelf-card .shelf-stock-line strong{font-size:.96rem!important;font-weight:650!important}
.shelf-card .shelf-stock-line strong.soldout{font-weight:700!important}
.shelf-card.selected:after{content:'✓';position:absolute;right:9px;top:8px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-size:.72rem}
.shelf-master-notice{border-color:#dbe4ff!important;background:#f7f9ff!important;color:#3d4f7a!important}
.shelf-stats,.layer-stats{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.shelf-stat-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #e9edf3;border-radius:999px;background:#fff;color:#667085;font-size:.68rem;white-space:nowrap}
.shelf-stat-chip b{font-size:.75rem;color:#344054}
.shelf-stat-chip.success{border-color:#d8eee3;background:#f6fcf9}.shelf-stat-chip.success b{color:#13795b}
.shelf-stat-chip.modified{border-color:#dce3ff;background:#f7f9ff}.shelf-stat-chip.modified b{color:#465fc2}
.shelf-stat-chip.empty{border-color:#e6e9ee;background:#f8fafc}.shelf-stat-chip.empty b{color:#667085}
.shelf-stat-chip.pending{border-color:#f0e3c5;background:#fffaf0}.shelf-stat-chip.pending b{color:#946200}
.shelf-load-more{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 0;color:#667085;font-size:.78rem}
.table-load-more{display:flex;align-items:center;justify-content:center;gap:12px;padding:18px;border-top:1px solid #edf0f4;color:#667085;font-size:.78rem}
.master-data-notice{display:flex;align-items:center;gap:9px;padding:11px 14px;border-radius:13px;border:1px solid #e4e7ec;background:#f8fafc;color:#475467;font-size:.82rem;margin-bottom:16px}
.master-data-notice.ok{border-color:#d8eee3;background:#f6fcf9;color:#176b4f}.master-data-notice.warning{border-color:#f0dfb5;background:#fffaf0;color:#8a5a00}
.module-settings-card{overflow:hidden}.module-settings-head,.module-setting-row{display:grid;grid-template-columns:1.1fr 1.2fr 1.4fr 1fr;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid #edf0f4}
.module-settings-head{font-size:.75rem;font-weight:700;color:#667085;background:#f8fafc}.module-setting-row:last-child{border-bottom:0}
.module-name-original{display:flex;align-items:center;gap:8px;color:#344054}.module-name-original i{font-size:1rem;color:var(--primary)}.module-name-original span{font-size:.75rem;color:#98a2b3}
.module-icon-wrap{display:flex;align-items:center;gap:8px}.module-preview-icon{font-size:1.15rem;min-width:22px;color:var(--primary)}
@media(max-width:760px){.module-settings-head{display:none}.module-setting-row{grid-template-columns:1fr 1fr}.module-name-original{grid-column:1/-1}.module-icon-wrap{grid-column:1/-1}.shelf-header{align-items:flex-start!important;flex-direction:column!important}.shelf-stats{justify-content:flex-start}.layer-stats{justify-content:flex-end}.shelf-stat-chip{font-size:.62rem;padding:3px 6px}}

.shelf-card.pending{background:var(--shelf-pending-fill)!important;border-color:var(--shelf-pending-border)!important;color:var(--shelf-pending-text)!important}
.shelf-card.verified{background:var(--shelf-verified-fill)!important;border-color:var(--shelf-verified-border)!important;color:var(--shelf-verified-text)!important}
.shelf-card.mismatch{background:var(--shelf-mismatch-fill)!important;border-color:var(--shelf-mismatch-border)!important;color:var(--shelf-mismatch-text)!important}
.shelf-card.missing{background:var(--shelf-missing-fill)!important;border-color:var(--shelf-missing-border)!important;color:var(--shelf-missing-text)!important}
.shelf-card.selected{background:var(--shelf-selected-fill)!important;border-color:var(--shelf-selected-border)!important;color:var(--shelf-selected-text)!important}

/* v8 module/editor refinements */
.module-setting-row{display:grid;grid-template-columns:42px minmax(150px,1fr) minmax(180px,1.2fr) minmax(210px,1.2fr) 150px;gap:12px;align-items:center;padding:12px;border-bottom:1px solid var(--border-color,#edf0f4);background:#fff}.module-setting-row.dragging{opacity:.55;box-shadow:0 8px 24px rgba(15,23,42,.12)}.module-drag{cursor:grab}.module-icon-wrap{display:flex;gap:8px;align-items:center}.module-icon-picker{min-width:42px}.icon-picker-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-height:360px;overflow:auto}.icon-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px}.icon-choice i{font-size:22px}.icon-choice small{font-size:10px;color:#64748b;overflow:hidden;text-overflow:ellipsis;max-width:100%}.shelf-card{border-left:1px solid var(--shelf-pending-border)!important;border-right:1px solid var(--shelf-pending-border)!important}.shelf-card.verified{border-left-color:var(--shelf-verified-border)!important;border-right-color:var(--shelf-verified-border)!important}.shelf-card.mismatch{border-left-color:var(--shelf-mismatch-border)!important;border-right-color:var(--shelf-mismatch-border)!important}.shelf-card.missing{border-left-color:var(--shelf-missing-border)!important;border-right-color:var(--shelf-missing-border)!important}.shelf-stock-line strong{font-size:1rem!important}.shelf-card .shelf-stock-line{line-height:1.35}.shelf-card{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.shelf-card input,.shelf-card textarea{user-select:text;-webkit-user-select:text}
@media(max-width:768px){
  .shelf-layer-header{padding:12px 12px 7px;align-items:flex-start;flex-direction:column;gap:7px}
  .shelf-layer-stats{justify-content:flex-start}
}
@media(max-width:768px){.module-setting-row{grid-template-columns:34px 1fr;}.module-setting-row .module-label,.module-setting-row .module-icon-wrap,.module-setting-row .module-parent{grid-column:2}.icon-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* v9: 货号作为货架卡片稳定的标准识别信息；不使用夸张大字号。 */
.shelf-code-line{display:flex;align-items:baseline;gap:.45rem;margin:.35rem 0 .1rem;line-height:1.35}.shelf-code-line .shelf-code-label{font-size:.72rem;color:var(--muted,#64748b);font-weight:500}.shelf-code-line strong{font-size:.86rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.readonly-platform{cursor:not-allowed;opacity:.82}.readonly-platform .shelf-stock-line{opacity:.9}

.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.permission-grid label{display:flex;gap:8px;align-items:center;padding:10px 12px;border:1px solid #e6eaf0;border-radius:11px;background:#fafbfc;font-size:.82rem}.permission-grid input{margin:0}@media(max-width:700px){.permission-grid{grid-template-columns:1fr}}

/* v10 UI/interaction refinements */
.shelf-filter-bar,.table-filter-bar{align-items:end;gap:9px}
.shelf-filter-bar .filter-field,.table-filter-bar .filter-field{min-width:145px}
.shelf-filter-bar .filter-field.grow,.table-filter-bar .filter-field.grow{min-width:220px}
.shelf-stats{align-items:center}
.shelf-stat-chip{font-weight:700;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.shelf-stat-chip.success{color:#166534;border-color:#b7e6ca;background:#ecfdf3}.shelf-stat-chip.success b{color:#166534}
.shelf-stat-chip.pending{color:#92400e;border-color:#f5d9a6;background:#fffbeb}.shelf-stat-chip.pending b{color:#92400e}
.shelf-stat-chip.modified{color:#3730a3;border-color:#c7d2fe;background:#eef2ff}.shelf-stat-chip.modified b{color:#3730a3}
.shelf-stat-chip.empty{color:#475467;border-color:#d0d5dd;background:#f8fafc}.shelf-stat-chip.empty b{color:#344054}
.shelf-card{touch-action:manipulation;will-change:transform,box-shadow;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,filter .16s ease}
.shelf-card.pressing{transform:scale(.965);box-shadow:0 0 0 3px rgba(79,70,229,.12),0 8px 18px rgba(16,24,40,.12)!important}
.shelf-card.double-tap{animation:shelfDoubleTap .36s ease-out}
@keyframes shelfDoubleTap{0%{transform:scale(1)}35%{transform:scale(.94)}70%{transform:scale(1.025)}100%{transform:scale(1)}}
.card-style-help{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;border:1px solid #dbe4ff;border-radius:11px;background:#f5f8ff;color:#344054;font-size:.78rem;font-weight:700}
.card-style-preview{display:grid;place-items:center;width:38px;height:30px;border:1px solid;border-radius:8px;font-weight:800}
.shelf-mobile-size-setting{display:flex!important;justify-content:space-between;gap:12px;align-items:center;padding-top:8px;border-top:1px solid #edf0f4}
.shelf-mobile-size-setting select{max-width:190px}
.shelf-load-more,.table-load-more{min-height:54px}
.shelf-load-more span,.table-load-more span{color:#667085}
.table-layer-block{border-top:1px solid #eef1f5}.table-layer-block:first-child{border-top:0}
.table-layer-head{padding:9px 18px 7px;color:#475467;font-size:.78rem;font-weight:800;background:#fff}
.table-group-inner table{min-width:680px}
#shelfContainer[data-mobile-card-size="compact"] .shelf-card{min-height:88px;padding:9px 10px;border-radius:13px}
#shelfContainer[data-mobile-card-size="compact"] .shelf-card .position-code{font-size:.82rem}
#shelfContainer[data-mobile-card-size="compact"] .shelf-card .shelf-code-line{margin:.2rem 0}.shelf-card .shelf-code-line strong{font-size:.8rem}
#shelfContainer[data-mobile-card-size="large"] .shelf-card{min-height:132px;padding:15px;border-radius:18px}
#shelfContainer[data-mobile-card-size="large"] .shelf-card .position-code{font-size:1.02rem}
#shelfContainer[data-mobile-card-size="large"] .shelf-card .shelf-code-line strong{font-size:.92rem}
@media(max-width:768px){
 .shelf-filter-bar,.table-filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
 .shelf-filter-bar .filter-field.grow,.table-filter-bar .filter-field.grow{grid-column:1/-1;min-width:0}
 .shelf-filter-bar .filter-field,.table-filter-bar .filter-field{min-width:0}
 #shelfContainer[data-mobile-card-size="compact"] .shelf-body{gap:7px}
 #shelfContainer[data-mobile-card-size="standard"] .shelf-card{min-height:102px;padding:11px}
 #shelfContainer[data-mobile-card-size="large"] .shelf-body{grid-template-columns:repeat(1,minmax(0,1fr));gap:10px}
 #shelfContainer[data-mobile-card-size="large"] .shelf-card{min-height:138px}
 .card-style-row{grid-template-columns:1fr 1fr!important}.card-style-row strong{grid-column:1/-1}.card-style-preview{display:none}
 .table-layer-head{padding-left:12px}.table-group-inner{overflow-x:auto}
}

/* 货架视图：严格按“货架号 -> 货架层 -> 位置”分层展示。 */
.shelf-layers{background:#fff}
.shelf-layer-block{border-top:1px solid #eef2f6;background:#fff}
.shelf-layer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px 8px;background:#fff}
.shelf-layer-title{font-size:.92rem;font-weight:750;color:#27364f;letter-spacing:.01em}
.shelf-layer-stats{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.shelf-rack-body{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;padding:10px 20px 22px;background:#fff;}
.shelf-rack-body .shelf-card{margin:0;min-width:0;}
@media (max-width:768px){
  .shelf-rack-body{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;}
}
@media (min-width:769px) and (max-width:1200px){
  .shelf-rack-body{grid-template-columns:repeat(4,minmax(0,1fr));}
}
/* v11完整版：货架卡片业务视觉。赠品不改变货架位文字，只在卡片底部用颜色标识。 */
.shelf-card.gift{padding-bottom:28px!important}
.shelf-card .gift-indicator{position:absolute;left:0;right:0;bottom:0;height:24px;display:flex;align-items:center;justify-content:center;gap:5px;background:rgba(236,72,153,.12);color:#be185d;font-size:.68rem;font-weight:800;border-top:1px solid rgba(236,72,153,.20)}
.shelf-card.gift .position-code{font-weight:850}
.shelf-card.gift .gift-indicator i{font-size:.72rem}
.table-shelf-group .table-layer-block{margin:0}
.table-shelf-group .table-layer-head{display:none}
.table-shelf-group .table-group-inner{border-top:1px solid #eef2f6}
.table-shelf-group .gift-row{background:rgba(236,72,153,.055)}
.table-shelf-group .gift-row td:first-child{border-left:3px solid #ec4899}
.table-shelf-group .gift-mark{color:#be185d;font-size:.78rem;margin-left:4px}

/* 货架/表格视图：赠品不在位置编号上显示“赠”，仅使用颜色和图标区分。 */
.shelf-card.gift{padding-bottom:28px!important}
.shelf-card .gift-indicator{position:absolute;left:0;right:0;bottom:0;height:24px;display:flex;align-items:center;justify-content:center;gap:5px;background:rgba(236,72,153,.12);color:#be185d;font-size:.68rem;font-weight:800;border-top:1px solid rgba(236,72,153,.20)}
.shelf-card.gift .gift-indicator i{font-size:.72rem}
.table-shelf-group .table-layer-block{margin:0}
.table-shelf-group .table-layer-head{display:none}
.table-shelf-group .table-group-inner{border-top:1px solid #eef2f6}
.table-shelf-group .gift-row{background:rgba(236,72,153,.055)}
.table-shelf-group .gift-row td:first-child{border-left:3px solid #ec4899}
.table-shelf-group .gift-mark{color:#be185d;font-size:.78rem;margin-left:4px}
.shelf-position-cell{white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums}

.purchase-load-more{display:flex;justify-content:center;align-items:center;padding:14px;color:#667085;font-size:.78rem}.purchase-load-more i{margin-right:5px}.purchase-load-more button{border:0;background:transparent;color:#3157c7;font-weight:700}
/* 表格视图保持单表格，货架编码仅用于业务排序与分组，不作为独立展示列。 */
.table-shelf-flat{overflow:hidden;border-radius:20px}
.table-shelf-flat .table{margin:0;min-width:720px}
.table-shelf-flat thead th{background:#f8fafc;color:#475467;font-size:.76rem;font-weight:800;border-bottom:1px solid #e6ebf2;white-space:nowrap}
.table-shelf-flat tbody td{font-size:.78rem;border-color:#eef2f6;vertical-align:middle}
.table-shelf-flat tbody tr.empty-row{background:#fafbfc}
.table-shelf-flat tbody tr.gift-row{background:rgba(236,72,153,.055)}
.table-shelf-flat tbody tr.gift-row td:first-child{border-left:3px solid #ec4899}
.table-shelf-flat .gift-mark{color:#be185d;font-size:.78rem;margin-left:4px}
@media(max-width:768px){.table-shelf-flat .table{min-width:680px}.table-shelf-flat .table-responsive{overflow-x:auto}.table-shelf-flat tbody td,.table-shelf-flat thead th{padding:10px 9px}}

/* Shelf view final polish: global statistics and state-driven card colors */
.shelf-global-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 14px;padding:10px 12px;border:1px solid #e6ebf2;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 4px 14px rgba(15,23,42,.035)}
.shelf-global-stats[hidden]{display:none!important}
.shelf-global-stat{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid #e5eaf1;background:#f8fafc;color:#475467;font-size:.74rem;font-weight:750;white-space:nowrap}
.shelf-global-stat strong{font-size:.82rem;font-variant-numeric:tabular-nums}
.shelf-global-stat.rack{background:#f5f7fb;border-color:#dfe5ee;color:#344054}
.shelf-global-stat.pending{background:#fffbeb;border-color:#f5d9a6;color:#92400e}
.shelf-global-stat.success{background:#ecfdf3;border-color:#b7e6ca;color:#166534}
.shelf-global-stat.modified{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}
.shelf-global-stat.empty{background:#f8fafc;border-color:#d0d5dd;color:#475467}
.shelf-card.modified{background:var(--shelf-modified-fill)!important;border-color:var(--shelf-modified-border)!important;color:var(--shelf-modified-text)!important}
.shelf-card.modified .position-code,.shelf-card.modified .shelf-product-name,.shelf-card.modified .shelf-extra,.shelf-card.modified .shelf-verify-state{color:inherit!important}
.shelf-card.modified .shelf-stock-line span{color:inherit!important;opacity:.72}
@media(max-width:768px){.shelf-global-stats{margin:8px 0 12px;padding:8px;gap:6px}.shelf-global-stat{padding:5px 8px;font-size:.68rem}}

/* v11.33 shelf layout final: each layer is one horizontal rail. */
.shelf-layers{display:flex;flex-direction:column;gap:18px}
.shelf-layer-block{min-width:0;border-top:1px solid #eef2f6;padding-top:2px}
.shelf-layer-header{min-height:42px;padding:8px 4px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.shelf-layer-title{font-size:.98rem;font-weight:850;color:#344054;white-space:nowrap}
.shelf-layer-stats{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.shelf-card-row{display:flex!important;flex-direction:row;flex-wrap:wrap!important;align-items:stretch;gap:14px;padding:2px 4px 14px;overflow:visible}.shelf-card-row .shelf-card{flex:0 1 184px;min-width:160px;max-width:220px}.shelf-selection-box{position:fixed;z-index:2000;border:1px solid rgba(79,124,255,.75);background:rgba(79,124,255,.10);pointer-events:none;border-radius:6px}.shelf-card.drag-target{box-shadow:0 0 0 3px rgba(79,124,255,.18),0 10px 24px rgba(31,63,135,.12)!important}.shelf-card.pending{background:var(--shelf-pending-fill)!important;border-color:var(--shelf-pending-border)!important;color:var(--shelf-pending-text)!important}.shelf-card.verified{background:var(--shelf-verified-fill)!important;border-color:var(--shelf-verified-border)!important;color:var(--shelf-verified-text)!important}.shelf-card.mismatch{background:var(--shelf-mismatch-fill)!important;border-color:var(--shelf-mismatch-border)!important;color:var(--shelf-mismatch-text)!important}.shelf-card.missing{background:var(--shelf-missing-fill)!important;border-color:var(--shelf-missing-border)!important;color:var(--shelf-missing-text)!important}.shelf-card.selected{background:var(--shelf-selected-fill)!important;border-color:var(--shelf-selected-border)!important;color:var(--shelf-selected-text)!important}.shelf-card.gift{box-shadow:inset 0 -3px 0 #f59e0b,0 5px 16px rgba(15,23,42,.045)!important}
.shelf-card-row .shelf-card{flex:0 0 184px;width:184px;min-width:184px;scroll-snap-align:start}
.shelf-card-row::-webkit-scrollbar{height:7px}
.shelf-card-row::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px}
.shelf-card-row::-webkit-scrollbar-track{background:#f1f5f9;border-radius:99px}
@media(max-width:768px){
  .shelf-card-row{gap:10px;padding-left:2px;padding-right:2px}
  .shelf-card-row .shelf-card{flex-basis:160px;width:160px;min-width:160px}
}


/* Auth guard: mobile bottom navigation is an authenticated shortcut only.
   The initial HTML contains the nav for hydration, so auth-guest must win over
   the mobile media-query display rule. */
body.auth-guest .mobile-bottom-nav,
body.auth-guest #mobileBottomNav {
    display: none !important;
}

/* v11.45 shelf layout: each layer flows left-to-right and wraps naturally.
   Do not create a horizontal page scrollbar; cards wrap to the next row when needed. */
.shelf-layer-block{width:100%;min-width:0;}
.shelf-rack-body.shelf-card-row{
 display:flex!important;
 flex-direction:row!important;
 flex-wrap:wrap!important;
 align-items:stretch!important;
 justify-content:flex-start!important;
 gap:14px!important;
 overflow:visible!important;
 width:100%!important;
 padding:10px 4px 22px!important;
}
.shelf-rack-body.shelf-card-row .shelf-card{
 flex:0 0 184px!important;
 width:184px!important;
 min-width:184px!important;
 max-width:184px!important;
}
@media(max-width:768px){
 .shelf-rack-body.shelf-card-row{gap:10px!important;padding:10px 2px 18px!important;}
 .shelf-rack-body.shelf-card-row .shelf-card{
   flex:0 0 var(--shelf-mobile-card-width,142px)!important;
   width:var(--shelf-mobile-card-width,142px)!important;
   min-width:var(--shelf-mobile-card-width,142px)!important;
   max-width:var(--shelf-mobile-card-width,142px)!important;
 }
}
.shelf-card .position-code{word-break:break-all}
.inventory-product-code{margin-top:3px;font-size:.72rem;color:#667085;font-weight:700}.custom-table-cell{max-width:240px;white-space:normal;word-break:break-word}.shelf-card .position-code{word-break:break-all}


/* v11.46 authoritative shelf layout: each layer wraps cards naturally; no horizontal page scrolling. */
.shelf-layer-block .shelf-card-row, .shelf-layer .shelf-body.shelf-card-row {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:stretch;
  align-content:flex-start;
  gap:14px;
  overflow:visible !important;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.shelf-layer-block .shelf-card-row .shelf-card {
  flex:0 1 150px !important;
  width:150px;
  min-width:150px;
  max-width:220px;
  box-sizing:border-box;
}
@media (max-width:768px){
  .shelf-layer-block .shelf-card-row, .shelf-layer .shelf-body.shelf-card-row {gap:9px;}
  .shelf-layer-block .shelf-card-row .shelf-card {flex:1 1 calc(50% - 9px) !important;width:auto;min-width:0;max-width:none;}
}
/* v11.52: final shelf card layout - never create horizontal page scrolling */
.shelf-layer-block .shelf-card-row,
.shelf-layer .shelf-body.shelf-card-row,
.shelf-rack-body.shelf-card-row{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;overflow:visible!important;width:100%;max-width:100%;}
.shelf-rack-body.shelf-card-row .shelf-card,
.shelf-layer-block .shelf-card-row .shelf-card{flex:0 1 184px!important;width:184px!important;min-width:0!important;max-width:220px!important;box-sizing:border-box;}
@media(max-width:768px){
  #shelfContainer{--shelf-card-width:calc((100% - 10px)/2);}
  .shelf-rack-body.shelf-card-row .shelf-card,
  .shelf-layer-block .shelf-card-row .shelf-card{flex:0 0 var(--shelf-card-width)!important;width:var(--shelf-card-width)!important;max-width:none!important;}
  #shelfContainer[data-mobile-card-size="compact"]{--shelf-card-width:calc((100% - 7px)/2)}
  #shelfContainer[data-mobile-card-size="standard"]{--shelf-card-width:calc((100% - 10px)/2)}
  #shelfContainer[data-mobile-card-size="large"]{--shelf-card-width:100%}
}
.shelf-card,.shelf-card *{user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none!important;}
.shelf-card input,.shelf-card textarea{user-select:text!important;-webkit-user-select:text!important;}

.module-setting-group{padding:16px 18px;border-bottom:1px solid #edf0f4}.module-setting-group:last-child{border-bottom:0}.module-setting-group-title{display:flex;justify-content:space-between;align-items:center;padding:0 0 10px;color:#344054}.module-setting-group-title span{font-size:.72rem;color:#98a2b3}.module-setting-group-list{display:grid;gap:8px}.module-setting-group .module-setting-row{border:1px solid #edf0f4;border-radius:12px}.
.setup-first-card{max-width:720px;margin:42px auto;padding:42px 28px;text-align:center;border:1px solid #e7ebf2;border-radius:22px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 16px 40px rgba(15,23,42,.06)}
.setup-first-icon{width:68px;height:68px;margin:0 auto 16px;border-radius:20px;background:#eef2ff;color:#4f46e5;display:flex;align-items:center;justify-content:center;font-size:30px}.setup-first-card h5{font-weight:800;margin-bottom:8px}.setup-first-card p{max-width:560px;margin:0 auto;color:#64748b;line-height:1.7}.setup-first-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}

/* v11.52.2 interaction hardening */
.shelf-card,.shelf-card *{user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none!important}
.shelf-card input,.shelf-card textarea{user-select:text!important;-webkit-user-select:text!important}
#shelfContainer{touch-action:pan-y;overscroll-behavior-y:auto}
.shelf-card{touch-action:manipulation;cursor:pointer}
.shelf-card.pressing{transform:scale(.985)!important}
.shelf-setting-hint{grid-column:1/-1;padding:10px 12px;border-radius:10px;background:#f6f8fc;color:#667085;font-size:.78rem;line-height:1.5}
.shelf-card-row{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;overflow:visible!important;align-items:stretch!important}
.shelf-card-row .shelf-card{flex:0 1 184px;min-width:160px;max-width:220px}
@media (max-width:768px){
  #shelfContainer{overflow-x:hidden}
  .shelf-card-row{gap:10px;padding-left:0;padding-right:0}
  .shelf-card-row .shelf-card{flex:1 1 calc(50% - 5px);min-width:0;max-width:none}
  #shelfContainer[data-mobile-card-size="compact"] .shelf-card-row .shelf-card{flex-basis:calc(33.333% - 7px);font-size:.82rem}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-card-row .shelf-card{flex-basis:calc(50% - 5px)}
  #shelfContainer[data-mobile-card-size="large"] .shelf-card-row .shelf-card{flex-basis:100%}
}

.shelf-card.soldout{background:var(--shelf-soldout-fill)!important;border-color:var(--shelf-soldout-border)!important;color:var(--shelf-soldout-text)!important}
.shelf-stat-chip.soldout{background:#fff7ed;color:#9a3412}
.shelf-custom-field{display:flex;justify-content:center;gap:5px;flex-wrap:wrap}.shelf-custom-label{font-weight:800}

/* V11.52.3：人工导入映射与全局视觉细节 */
.manual-import-dialog{display:flex;flex-direction:column;gap:10px;max-height:62vh;overflow:auto;padding-right:3px}
.manual-map-row{display:grid;grid-template-columns:minmax(150px,0.8fr) minmax(260px,1.5fr);gap:12px;align-items:center;padding:12px 14px;border:1px solid #e6ebf3;border-radius:14px;background:#fbfcfe}
.manual-map-row strong{display:block;color:#1f2937;font-size:.88rem}.manual-map-row small{display:block;color:#94a3b8;margin-top:3px;line-height:1.4}
.manual-map-row .form-select{min-height:42px;border-radius:11px}
.setup-container{background-position:center;background-size:cover;background-repeat:no-repeat}
.setup-card{max-width:470px}
.purchase-table-wrap{overflow-x:auto}
.custom-table-cell{min-width:120px;max-width:280px;white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){.manual-map-row{grid-template-columns:1fr;gap:7px}.manual-import-dialog{max-height:68vh}.setup-card{width:min(470px,calc(100% - 24px))}}
/* V11.52.5: non-blocking purchase import progress and touch safety */
.purchase-inline-progress{margin-top:10px;padding:10px 12px;border:1px solid #e6ebf2;border-radius:12px;background:#fff;min-width:260px;box-shadow:0 5px 18px rgba(15,23,42,.05)}
.purchase-inline-progress .progress{height:7px;border-radius:99px;background:#edf1f6}.purchase-inline-progress .progress-bar{border-radius:99px}
.shelf-card,.shelf-card *{user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none!important}
.shelf-card{touch-action:manipulation}
@media (max-width:767.98px){.purchase-inline-progress{width:100%;margin-top:8px}.shelf-selection-box{display:none!important}}

/* V11.53 final table UX: first barcode/货号 column and last action column remain visible while the middle columns scroll. */
.table-shelf-flat .table-responsive{overflow:auto;position:relative;-webkit-overflow-scrolling:touch}
.table-shelf-flat .table{min-width:max-content}
.table-shelf-flat th.table-sticky-first,.table-shelf-flat td.table-sticky-first{position:sticky;left:0;z-index:4;background:#fff;box-shadow:2px 0 7px rgba(15,23,42,.08)}
.table-shelf-flat thead th.table-sticky-first{z-index:7;background:#f8fafc}
.table-shelf-flat th:last-child,.table-shelf-flat td:last-child{position:sticky;right:0;z-index:4;background:#fff;box-shadow:-2px 0 7px rgba(15,23,42,.08);white-space:nowrap}
.table-shelf-flat thead th:last-child{z-index:7;background:#f8fafc}
.table-column-options label.required-column{opacity:.82}
@media(max-width:768px){.table-shelf-flat th.table-sticky-first,.table-shelf-flat td.table-sticky-first{min-width:105px}.table-shelf-flat th:last-child,.table-shelf-flat td:last-child{min-width:68px}}
/* Non-blocking import progress: never covers the whole application. */
.purchase-inline-progress{position:fixed;right:18px;bottom:18px;z-index:1500;width:min(390px,calc(100vw - 36px));padding:12px 14px;border:1px solid #dfe6ef;border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 12px 36px rgba(15,23,42,.14);backdrop-filter:blur(10px)}
.purchase-inline-progress[hidden]{display:none!important}
@media(max-width:768px){.purchase-inline-progress{right:10px;bottom:72px;width:calc(100vw - 20px)}}

/* Final import header-row picker: full row reference, not just first/second columns. */
.header-preview-wrap{max-width:100%;overflow:auto;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.header-preview-wrap table{min-width:max-content;font-size:.78rem}.header-preview-wrap th,.header-preview-wrap td{white-space:nowrap;min-width:96px;padding:7px 9px}.header-preview-wrap th:first-child,.header-preview-wrap td:first-child{position:sticky;left:0;background:#fff;z-index:2;min-width:52px}.header-preview-wrap th:nth-child(2),.header-preview-wrap td:nth-child(2){position:sticky;left:52px;background:#fff;z-index:2;min-width:78px}.header-row-picker .manual-map-row{align-items:center}.purchase-supplier-compare{cursor:help;border-bottom:1px dashed #98a2b3}.purchase-supplier-best{cursor:help}.purchase-inline-progress{margin-top:12px;padding:10px 12px;border:1px solid #dbe7ff;border-radius:12px;background:#f8fbff}.purchase-inline-progress .progress{height:7px}.purchase-inline-progress .d-flex{align-items:center}.purchase-inline-progress #purchaseImportCancel{margin-left:10px}.manual-import-dialog .manual-map-row{align-items:center}.manual-import-dialog .manual-map-row>div:first-child{min-width:180px}.secondary-global-map{min-width:260px}
.purchase-plan-dialog{max-height:78vh;overflow:auto;padding-right:2px}.purchase-plan-section{margin:12px 0;padding:14px;border:1px solid #e7edf5;border-radius:16px;background:linear-gradient(180deg,#fff,#fbfcff);box-shadow:0 2px 8px rgba(15,23,42,.03)}.purchase-plan-title{font-weight:700;color:#1f2937;margin-bottom:10px}.purchase-sheet-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-bottom:12px}.purchase-sheet-item{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid #e5eaf2;border-radius:12px;background:#fff}.purchase-sheet-index{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;font-weight:700;background:#eef4ff;color:#2563eb}.purchase-sheet-mode{display:flex;gap:18px;flex-wrap:wrap}.purchase-sheet-mode label{cursor:pointer;padding:8px 10px;border-radius:10px;background:#f8fafc}.purchase-plan-dialog .manual-map-row{margin-bottom:9px}.purchase-plan-dialog .alert-danger{white-space:normal;line-height:1.6}

/* 供应商导入统计与最优价提示 */
.supplier-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.supplier-stat-grid>div{padding:10px 8px;border:1px solid var(--line);border-radius:12px;background:var(--page);text-align:center}.supplier-stat-grid strong{display:block;font-size:1rem;font-weight:800}.supplier-stat-grid span{display:block;margin-top:2px;font-size:.7rem;color:#7b8799}.purchase-supplier-best,.purchase-supplier-compare{cursor:help;border-bottom:1px dashed currentColor}.purchase-supplier-best{font-weight:700}.purchase-supplier-compare{font-weight:700}@media(max-width:576px){.supplier-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 采购价管理：明确区分当前供应商采购价与全供应商最优价 */
.purchase-current-supplier,.purchase-current-price,.purchase-best-box{display:flex;flex-direction:column;gap:2px}.purchase-current-supplier strong{font-size:.86rem;color:#1f2937}.purchase-current-supplier small,.purchase-current-price small{font-size:.68rem;color:#98a2b3}.purchase-current-price{font-size:1.05rem;font-weight:800;color:#334155}.purchase-best-box{min-width:150px;padding:7px 9px;border:1px solid #e4e7ec;border-radius:10px;background:#fafbfc}.purchase-best-box strong{font-size:.82rem;color:#1d4ed8}.purchase-best-box span{font-size:1rem;font-weight:850;color:#111827}.purchase-best-box em{font-style:normal;font-size:.66rem;color:#13795b}.purchase-saving{font-size:.68rem;color:#b54708;font-weight:700}.purchase-table-wrap th{white-space:nowrap}.purchase-table-wrap td{vertical-align:middle}

/* v11.60 fixes: mobile shortcut hidden state, clean shelf multi-select, compact product table. */
.mobile-bottom-nav[hidden],#mobileBottomNav[hidden]{display:none!important}
.shelf-selection-box{display:none!important}
.shelf-card{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y}
.shelf-card.pressing{transform:none!important}
.table-shelf-flat .table-action-header,.table-shelf-flat td:last-child{width:74px;min-width:74px;text-align:center}
.table-shelf-flat .table-price-cell{width:110px;min-width:110px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.table-shelf-flat .table-custom-header{min-width:120px}
.table-shelf-flat tbody td.custom-table-cell{max-width:220px}
@media(max-width:768px){
 .table-shelf-flat .table-price-cell{width:96px;min-width:96px}
 .table-shelf-flat .table-action-header,.table-shelf-flat td:last-child{width:62px;min-width:62px}
 .shelf-card{touch-action:pan-y}
}

/* v11.61 shelf rail stability: grid layout avoids flex reflow glitches during rapid scrolling. */
.shelf-rack-body.shelf-card-row{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))!important;grid-auto-rows:minmax(116px,auto)!important;align-items:stretch!important;gap:14px!important;overflow:visible!important;}
.shelf-rack-body.shelf-card-row .shelf-card{width:auto!important;min-width:0!important;max-width:none!important;flex:none!important;}
@media(max-width:768px){
 .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
 .shelf-rack-body.shelf-card-row .shelf-card{width:auto!important;min-width:0!important;}
}

/* 商品导入：紧凑布局，避免上传页出现超大留白。 */
.upload-page-shell{max-width:1180px;margin:0 auto}
.upload-main-card{padding:16px 18px;max-width:1180px}
.import-platform-panel{padding:13px 16px;margin-bottom:12px}
.import-platform-list{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:7px}
.import-platform-row{padding:9px 11px;gap:10px}
.upload-zone{min-height:132px;padding:22px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.upload-zone i{font-size:2rem}
.upload-file-summary{padding:9px 11px}
.upload-title-mapping-wrap{max-width:1180px;margin:0 auto 12px}
.upload-title-mapping-wrap .mapping-page-card{padding:14px 16px}
.upload-mapping-embedded .mapping-page-card{box-shadow:none;border:0;padding:0}
.upload-mapping-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 10px}
.upload-mapping-head strong{font-size:.92rem;color:#182230}
.upload-mapping-head small{display:block;color:#8a94a6;margin-top:3px}
.import-map-chip{display:inline-flex;align-items:center;gap:3px;padding:4px 8px;margin:2px 3px 2px 0;border:1px solid #dfe7f4;background:#f7f9fc;border-radius:8px;color:#475467;font-size:.72rem;font-weight:650}
.import-preview-table{table-layout:fixed;min-width:760px}
.import-preview-table th,.import-preview-table td{vertical-align:middle;overflow:hidden;text-overflow:ellipsis}
.import-preview-table th small{display:block;margin-top:2px;font-size:.65rem;font-weight:500;color:#98a2b3;white-space:normal;line-height:1.35}
.import-preview-table .col-row{width:70px}.import-preview-table .col-code{width:150px}.import-preview-table .col-custom{width:150px}.import-preview-table .col-stock{width:105px}.import-preview-table .col-barcode{width:150px}
.table-shelf-flat .table{table-layout:fixed;width:max-content;min-width:100%;}
.table-shelf-flat th,.table-shelf-flat td{box-sizing:border-box;vertical-align:middle}
.table-shelf-flat thead th{overflow:visible;text-overflow:clip}
.table-shelf-flat td{overflow:hidden;text-overflow:ellipsis}
.table-shelf-flat .table-custom-header{min-width:120px;width:150px}
.table-shelf-flat .custom-table-cell{width:150px;white-space:nowrap}
@media(max-width:768px){
 .upload-main-card{padding:12px}
 .import-platform-list{grid-template-columns:1fr}
 .upload-zone{min-height:118px}
 .upload-title-mapping-wrap{margin-bottom:10px}
 .upload-mapping-head{align-items:flex-start}
 .table-shelf-flat .table{min-width:760px}
}

/* 模块设置重构：层级、排序、图标配置 */
.module-settings-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 16px;margin-bottom:10px;border:1px solid #e7ebf2;border-radius:12px;background:#f8fafc}.module-settings-toolbar span{margin-left:10px;color:#98a2b3;font-size:.78rem}.module-config-list{display:grid;gap:12px}.module-config-group{overflow:hidden;border:1px solid #e5eaf1;border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.035)}.module-config-group-head{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:#f8fafc;border-bottom:1px solid #edf0f4}.module-config-group-title{display:flex;align-items:center;gap:10px}.module-config-group-title>i{font-size:18px;color:#3b6ff5}.module-config-group-title strong{display:block;font-size:.86rem;color:#253047}.module-config-group-title small,.module-name-preview small{display:block;font-size:.68rem;color:#98a2b3;margin-top:2px}.module-config-group-actions{display:flex;gap:5px}.module-setting-row{display:grid;grid-template-columns:36px minmax(150px,1.05fr) minmax(150px,1fr) minmax(210px,1.25fr) 110px minmax(170px,1.1fr) 72px;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf0f4;background:#fff}.module-setting-row:last-child{border-bottom:0}.module-setting-child{padding-left:28px;background:#fcfdff}.module-setting-child .module-name-preview{position:relative}.module-setting-child .module-name-preview:before{content:'↳';position:absolute;left:-20px;color:#98a2b3}.module-name-preview{display:flex;align-items:center;gap:9px;min-width:0}.module-name-preview>i{font-size:18px;color:#426ef2}.module-name-preview strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-icon-wrap{display:flex;gap:6px;align-items:center}.module-icon-picker{min-width:38px;height:31px;padding:4px 8px}.module-icon-picker i{font-size:16px}.module-drag{cursor:grab}.module-setting-row.dragging{opacity:.55;box-shadow:0 8px 22px rgba(15,23,42,.12)}.module-row-actions{display:flex;gap:4px;justify-content:flex-end}.module-row-actions .btn,.module-config-group-actions .btn{width:32px;height:30px;padding:0}.icon-picker-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;max-height:360px;overflow:auto}.icon-choice{min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.icon-choice i{font-size:20px}.icon-choice small{font-size:9px;color:#667085;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media(max-width:900px){.module-setting-row{grid-template-columns:34px minmax(130px,1fr) minmax(130px,1fr);}.module-setting-row .module-icon-wrap,.module-setting-row .module-level,.module-setting-row .module-parent,.module-setting-row .module-row-actions{grid-column:2/-1}.module-setting-row .module-icon-wrap{grid-row:auto}.module-settings-toolbar{align-items:flex-start;flex-direction:column}.icon-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* v-final: supplier + verification unified compact admin template */
.supplier-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.supplier-summary-card{background:#fff;border:1px solid #e8edf3;border-radius:16px;padding:13px 16px;box-shadow:0 4px 14px rgba(15,23,42,.03)}.supplier-summary-card strong{display:block;font-size:1.35rem;line-height:1.1}.supplier-summary-card span{display:block;margin-top:4px;color:#7b8799;font-size:.72rem}.supplier-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.supplier-card{padding:16px}.supplier-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.supplier-card-head h5{margin:3px 0 6px;font-weight:850;color:#172033}.supplier-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.66rem;font-weight:800}.supplier-status.active{background:#ecfdf3;color:#087443}.supplier-status.disabled{background:#f2f4f7;color:#667085}.supplier-card-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eef4ff;color:#3157c7;font-size:1.1rem}.supplier-remark{min-height:34px;margin:11px 0;color:#667085;font-size:.74rem;line-height:1.5}.supplier-card-actions{display:flex;gap:7px;margin-top:12px}.supplier-card-actions .btn{min-height:34px}.supplier-empty{grid-column:1/-1}.supplier-history-modal .modal-content{border:0;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(15,23,42,.18)}.supplier-history-modal .modal-header{padding:16px 18px;border-bottom:1px solid #edf0f4}.supplier-history-modal .modal-body{padding:16px 18px}.supplier-history-modal .supplier-batch-list{display:grid;gap:7px}.supplier-history-modal .supplier-batch-row{width:100%;border:1px solid #e7ebf0;background:#fff;border-radius:12px;padding:10px 12px;display:flex;justify-content:space-between;gap:12px;text-align:left}.supplier-history-modal .supplier-batch-row.active{border-color:#7da2ff;background:#f7faff;box-shadow:0 0 0 2px rgba(79,124,255,.08)}.supplier-history-modal .supplier-batch-row small{display:block;color:#98a2b3;margin-top:3px}.supplier-history-modal .supplier-batch-stats{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.supplier-history-modal .supplier-batch-stats span{font-size:.66rem;font-weight:800;padding:4px 7px;border-radius:999px;background:#f2f4f7;color:#667085}.supplier-history-modal .supplier-batch-stats .new{background:#ecfdf3;color:#087443}.supplier-history-modal .supplier-batch-stats .changed{background:#eef4ff;color:#3157c7}.supplier-history-modal .supplier-batch-stats .missing{background:#fff1f0;color:#b42318}.supplier-history-modal .supplier-row-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:.64rem;font-weight:800}.supplier-history-modal .supplier-row-status.new{background:#ecfdf3;color:#087443}.supplier-history-modal .supplier-row-status.changed{background:#eef4ff;color:#3157c7}.supplier-history-modal .supplier-row-status.missing{background:#fff1f0;color:#b42318}.supplier-history-modal .supplier-row-status.unchanged{background:#f2f4f7;color:#667085}.verification-table-card{overflow:hidden}.verification-table{min-width:980px}.verification-table th{white-space:nowrap;background:#fafbfc;color:#475467;font-size:.74rem}.verification-table td{font-size:.78rem}.table-pager{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-top:1px solid #edf0f4;color:#667085;font-size:.72rem}.button-settings-card{padding:16px}.settings-section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.settings-section-title span{font-size:.7rem;color:#98a2b3}.button-settings-actions{display:flex;gap:8px;margin-top:12px}
@media(max-width:1000px){.supplier-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.supplier-card-grid{grid-template-columns:1fr}.supplier-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-history-modal .modal-dialog{margin:8px}.supplier-history-modal .supplier-batch-row{align-items:flex-start;flex-direction:column}.supplier-history-modal .supplier-batch-stats{justify-content:flex-start}.settings-section-title{align-items:flex-start;flex-direction:column}.button-settings-actions{flex-direction:column}.button-settings-actions .btn{width:100%}}

.image-manager-summary{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0;color:#667085;font-size:13px}.image-manager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.image-manager-card{background:#fff;border:1px solid #e4e7ec;border-radius:12px;padding:12px}.image-manager-card-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:13px}.image-manager-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.image-manager-thumb{border:1px solid #eaecf0;background:#fff;border-radius:8px;padding:4px;min-width:0}.image-manager-thumb img{display:block;width:100%;height:100px;object-fit:contain;border-radius:5px;background:#f8fafc}.image-manager-thumb small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 2px 1px;font-size:11px;color:#475467}.image-manager-gallery figure{position:relative}.image-manager-gallery img{max-height:300px}.purchase-col-code{width:150px}.purchase-management-table .table-product-image-btn img{width:48px;height:48px;object-fit:contain}.soldout-image-btn img{width:48px;height:48px;object-fit:contain}
@media(max-width:767px){.image-manager-grid{grid-template-columns:1fr}.image-manager-thumbs{grid-template-columns:repeat(3,1fr)}.image-manager-thumb img{height:80px}.purchase-table-wrap{overflow-x:auto}.purchase-management-table{min-width:1050px}.soldout-purchase-table{min-width:900px}.shelf-layer-header,.shelf-rack-header{flex-wrap:wrap}.shelf-stat-chip{font-size:11px}}

/* 最终货架布局兜底：分页追加后始终按层独立网格渲染，避免历史样式覆盖导致卡片堆叠。 */
#shelfContainer .shelf-section{width:100%;box-sizing:border-box;}
#shelfContainer .shelf-layers{display:flex!important;flex-direction:column!important;gap:18px!important;}
#shelfContainer .shelf-layer-block{display:block!important;width:100%!important;box-sizing:border-box!important;}
#shelfContainer .shelf-rack-body.shelf-card-row{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important;gap:12px!important;width:100%!important;box-sizing:border-box!important;align-items:stretch!important;overflow:visible!important;}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{width:auto!important;min-width:0!important;max-width:none!important;flex:none!important;box-sizing:border-box!important;}
.image-manager-thumb-wrap{position:relative;min-width:0}.image-manager-delete{position:absolute;right:5px;top:5px;border:0;border-radius:6px;background:rgba(255,255,255,.92);color:#b42318;width:28px;height:28px}.image-manager-delete:hover{background:#fff1f2}
@media(max-width:767px){#shelfContainer .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{min-height:96px!important}.purchase-table-wrap,.soldout-purchase-card .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.purchase-management-table{min-width:1080px}.soldout-purchase-table{min-width:940px}.image-manager-summary{font-size:12px}}

/* 表格视图：图片与店内码一起锁定；移动端保留横向滚动，不挤坏表格。 */
.table-shelf-flat th.table-sticky-image,.table-shelf-flat td.table-sticky-image{position:sticky;left:0;z-index:5;width:120px;min-width:120px;background:#fff;box-shadow:2px 0 7px rgba(15,23,42,.06)}
.table-shelf-flat th.table-sticky-code,.table-shelf-flat td.table-sticky-code{position:sticky;left:120px;z-index:4;background:#fff;box-shadow:2px 0 7px rgba(15,23,42,.08)}
.table-shelf-flat .table-product-image-btn,.table-shelf-flat .table-product-image-empty{display:inline-flex;align-items:center;justify-content:center;width:92px;height:92px;max-width:100%;box-sizing:border-box;vertical-align:middle}
.table-shelf-flat th.table-sticky-image{white-space:nowrap}
.table-shelf-flat thead th.table-sticky-image,.table-shelf-flat thead th.table-sticky-code{z-index:8;background:#f8fafc}
@media(max-width:768px){.table-shelf-flat th.table-sticky-image,.table-shelf-flat td.table-sticky-image{left:0;min-width:112px;width:112px}.table-shelf-flat th.table-sticky-code,.table-shelf-flat td.table-sticky-code{left:112px;min-width:110px;width:110px}.table-shelf-flat table{min-width:980px}}

/* v11.70 purchase management visual refinement: spacious hierarchy, stable column widths, readable price cards. */
.purchase-page-header{margin-bottom:16px}.purchase-page-header .page-subtitle{max-width:760px}.purchase-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.purchase-summary-grid>div{min-height:72px;padding:13px 16px;border:1px solid #e8edf4;border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.035)}.purchase-summary-grid span{display:block;color:#7a8699;font-size:12px;margin-bottom:5px}.purchase-summary-grid strong{display:block;color:#243047;font-size:14px;line-height:1.35}.purchase-filter-card{margin-bottom:14px}.purchase-filter-card .card-body{padding:16px 18px}.purchase-filter-grid{display:grid;grid-template-columns:minmax(260px,1.45fr) repeat(3,minmax(150px,1fr));gap:12px}.purchase-filter-grid .form-label{font-size:12px;color:#667085;margin-bottom:6px}.purchase-filter-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:13px;padding-top:13px;border-top:1px solid #edf1f5;font-size:13px;color:#475467}.purchase-filter-options label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.purchase-sort-note{margin-left:auto;color:#98a2b3;font-size:12px}.purchase-price-legend{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:10px 14px;margin-bottom:10px;border:1px dashed #d9e0ea;border-radius:12px;background:#f9fbfd;color:#667085;font-size:12px}.purchase-price-legend b{color:#344054;margin-right:4px}.purchase-list-card{overflow:hidden}.purchase-table-wrap{overflow-x:auto}.purchase-management-table{table-layout:fixed;min-width:1480px}.purchase-management-table thead th{height:48px;padding:10px 12px;background:#f8fafc;border-bottom:1px solid #dfe5ec;color:#475467;font-size:12px;font-weight:800;white-space:nowrap}.purchase-management-table tbody td{height:92px;padding:12px;vertical-align:middle;border-bottom:1px solid #edf1f5;color:#344054;font-size:13px}.purchase-management-table tbody tr:hover{background:#fbfcfe}.purchase-col-image{width:76px}.purchase-col-code{width:112px}.purchase-col-barcode{width:178px}.purchase-col-name{width:170px}.purchase-col-spec{width:105px}.purchase-col-current{width:190px}.purchase-col-best{width:205px}.purchase-col-sale{width:112px}.purchase-col-lead{width:88px}.purchase-col-action{width:74px}.purchase-management-table .table-product-image-btn{width:56px;height:56px;padding:3px;border:1px solid #e3e8ef;border-radius:10px;background:#fff;position:relative}.purchase-management-table .table-product-image-btn img{width:48px;height:48px;object-fit:contain;border-radius:7px}
/* 全站统一商品图片单元格：固定盒模型，图片不参与表格列宽计算，不拉伸原图。 */
.table-product-image-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 56px;width:56px;height:56px;min-width:56px;max-width:56px;overflow:hidden;box-sizing:border-box}
.table-product-image-btn img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;flex:0 0 auto}
.table-product-image-btn.is-empty{min-width:56px}
.table-product-image-btn.image-load-failed{color:#98a2b3;background:#f8fafc}
.purchase-management-table .table-product-image-btn>span{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:1px 4px;border-radius:10px;background:#4f46e5;color:#fff;font-size:10px;line-height:17px}.purchase-code-text{font-weight:750;color:#273449;letter-spacing:.1px}.purchase-barcode-input{font-variant-numeric:tabular-nums}.purchase-product-name{display:flex;flex-direction:column;gap:4px}.purchase-product-name strong{font-size:13px;color:#1f2937;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-product-name small{font-size:10px;color:#98a2b3}.purchase-spec{max-width:100%;padding:7px 9px;border-radius:9px;background:#f7f8fc;color:#475467;line-height:1.35;word-break:break-word}.purchase-spec span{display:block;font-weight:650}.purchase-current-supplier strong{font-size:13px}.purchase-current-supplier small,.purchase-current-price small{font-size:10px;color:#98a2b3}.purchase-current-price{font-size:16px;font-weight:850;color:#182230;line-height:1.15}.purchase-price-cell .purchase-input{max-width:105px}.purchase-best-box{min-width:0;width:100%;padding:9px 11px;border:1px solid #e2e8f0;border-radius:11px;background:#fafcff;display:flex;flex-direction:column;gap:3px}.purchase-best-box strong{font-size:12px;color:#3157c7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-best-box span{font-size:16px;font-weight:850;color:#172033;line-height:1.1}.purchase-best-box em{font-style:normal;font-size:10px;color:#15805d}.purchase-saving{font-size:10px;color:#b54708;font-weight:750}.status-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}.status-sale{background:#ecfdf3;color:#16805d}.status-off{background:#f2f4f7;color:#667085}.purchase-delete-btn{width:38px;height:38px;border-radius:10px}.purchase-load-more{padding:14px;text-align:center;color:#98a2b3;font-size:12px}
@media(max-width:1100px){.purchase-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-sort-note{width:100%;margin-left:0}}
@media(max-width:767px){.purchase-summary-grid{grid-template-columns:1fr 1fr;gap:8px}.purchase-summary-grid>div{min-height:64px;padding:10px 12px}.purchase-filter-grid{grid-template-columns:1fr}.purchase-filter-card .card-body{padding:13px}.purchase-filter-options{gap:12px}.purchase-price-legend{gap:10px}.purchase-management-table{min-width:1480px}.purchase-management-table tbody td{height:84px;padding:10px}.purchase-col-image{width:70px}.purchase-col-barcode{width:168px}.purchase-col-name{width:155px}.purchase-col-best{width:190px}}

/* v11.70 purchase management visual refinement */
.purchase-page-header{margin-bottom:16px}.purchase-page-header .page-subtitle{max-width:760px}.purchase-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.purchase-summary-grid>div{min-height:72px;padding:13px 16px;border:1px solid #e8edf4;border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.035)}.purchase-summary-grid span{display:block;color:#7a8699;font-size:12px;margin-bottom:5px}.purchase-summary-grid strong{display:block;color:#243047;font-size:14px;line-height:1.35}.purchase-filter-card{margin-bottom:14px}.purchase-filter-card .card-body{padding:16px 18px}.purchase-filter-grid{display:grid;grid-template-columns:minmax(260px,1.45fr) repeat(3,minmax(150px,1fr));gap:12px}.purchase-filter-grid .form-label{font-size:12px;color:#667085;margin-bottom:6px}.purchase-filter-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:13px;padding-top:13px;border-top:1px solid #edf1f5;font-size:13px;color:#475467}.purchase-filter-options label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.purchase-sort-note{margin-left:auto;color:#98a2b3;font-size:12px}.purchase-price-legend{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:10px 14px;margin-bottom:10px;border:1px dashed #d9e0ea;border-radius:12px;background:#f9fbfd;color:#667085;font-size:12px}.purchase-price-legend b{color:#344054;margin-right:4px}.purchase-list-card{overflow:hidden}.purchase-table-wrap{overflow-x:auto}.purchase-management-table{table-layout:fixed;min-width:1480px}.purchase-management-table thead th{height:48px;padding:10px 12px;background:#f8fafc;border-bottom:1px solid #dfe5ec;color:#475467;font-size:12px;font-weight:800;white-space:nowrap}.purchase-management-table tbody td{height:92px;padding:12px;vertical-align:middle;border-bottom:1px solid #edf1f5;color:#344054;font-size:13px}.purchase-management-table tbody tr:hover{background:#fbfcfe}.purchase-col-image{width:76px}.purchase-col-code{width:112px}.purchase-col-barcode{width:178px}.purchase-col-name{width:170px}.purchase-col-spec{width:105px}.purchase-col-current{width:190px}.purchase-col-best{width:205px}.purchase-col-sale{width:112px}.purchase-col-lead{width:88px}.purchase-col-action{width:74px}.purchase-management-table .table-product-image-btn{width:56px;height:56px;padding:3px;border:1px solid #e3e8ef;border-radius:10px;background:#fff;position:relative}.purchase-management-table .table-product-image-btn img{width:48px;height:48px;object-fit:contain;border-radius:7px}.purchase-management-table .table-product-image-btn>span{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:1px 4px;border-radius:10px;background:#4f46e5;color:#fff;font-size:10px;line-height:17px}.purchase-code-text{font-weight:750;color:#273449}.purchase-barcode-input{font-variant-numeric:tabular-nums}.purchase-product-name{display:flex;flex-direction:column;gap:4px}.purchase-product-name strong{font-size:13px;color:#1f2937;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-product-name small{font-size:10px;color:#98a2b3}.purchase-spec{max-width:100%;padding:7px 9px;border-radius:9px;background:#f7f8fc;color:#475467;line-height:1.35;word-break:break-word}.purchase-spec span{display:block;font-weight:650}.purchase-current-supplier strong{font-size:13px}.purchase-current-supplier small,.purchase-current-price small{font-size:10px;color:#98a2b3}.purchase-current-price{font-size:16px;font-weight:850;color:#182230;line-height:1.15}.purchase-price-cell .purchase-input{max-width:105px}.purchase-best-box{min-width:0;width:100%;padding:9px 11px;border:1px solid #e2e8f0;border-radius:11px;background:#fafcff;display:flex;flex-direction:column;gap:3px}.purchase-best-box strong{font-size:12px;color:#3157c7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-best-box span{font-size:16px;font-weight:850;color:#172033;line-height:1.1}.purchase-best-box em{font-style:normal;font-size:10px;color:#15805d}.purchase-saving{font-size:10px;color:#b54708;font-weight:750}.status-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}.status-sale{background:#ecfdf3;color:#16805d}.status-off{background:#f2f4f7;color:#667085}.purchase-delete-btn{width:38px;height:38px;border-radius:10px}.purchase-load-more{padding:14px;text-align:center;color:#98a2b3;font-size:12px}
@media(max-width:1100px){.purchase-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-sort-note{width:100%;margin-left:0}}
@media(max-width:767px){.purchase-summary-grid{grid-template-columns:1fr 1fr;gap:8px}.purchase-summary-grid>div{min-height:64px;padding:10px 12px}.purchase-filter-grid{grid-template-columns:1fr}.purchase-filter-card .card-body{padding:13px}.purchase-filter-options{gap:12px}.purchase-price-legend{gap:10px}.purchase-management-table{min-width:1480px}.purchase-management-table tbody td{height:84px;padding:10px}.purchase-col-image{width:70px}.purchase-col-barcode{width:168px}.purchase-col-name{width:155px}.purchase-col-best{width:190px}}
/* 货架视图：按需显示，默认减少统计和层内容的视觉噪音 */
.shelf-layer-toggle{width:100%;border:0;background:transparent;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;color:inherit}
.shelf-layer-toggle:hover{background:rgba(79,70,229,.035)}
.shelf-layer-title{display:flex;align-items:center;gap:4px;font-weight:700;min-width:0}
.shelf-layer-count{font-size:12px;font-weight:500;color:#98a2b3;margin-left:4px}
.shelf-layer-actions{display:flex;align-items:center;gap:10px;min-width:0}
.shelf-layer-stats{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.shelf-layer-block:not(.is-open) .shelf-layer-stats{display:none}
.shelf-stats-trigger{border:1px solid #d9def0;background:#fff;border-radius:9px;padding:5px 10px;color:#667085;font-size:12px;white-space:nowrap;cursor:pointer}
.shelf-stats-trigger.active{border-color:#7b7cf6;color:#4f46e5;background:#f7f7ff}
.shelf-rack-summary{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 10px;border-bottom:1px solid #edf0f5}
.shelf-load-more{display:flex;width:100%;min-height:48px;align-items:center;justify-content:center;margin:12px 0;border:1px dashed #b8c1d9;background:#fff;border-radius:12px;color:#4f46e5;cursor:pointer}
.shelf-load-more:hover{background:#f7f8ff}
.resume-highlight{animation:shelfResumePulse 1.8s ease both}
@keyframes shelfResumePulse{0%,100%{box-shadow:0 0 0 0 rgba(79,70,229,0)}30%,70%{box-shadow:0 0 0 4px rgba(79,70,229,.22)}}
@media(max-width:767px){.shelf-layer-toggle{padding:11px 10px}.shelf-layer-title{font-size:13px}.shelf-layer-actions{gap:6px}.shelf-layer-stats{gap:4px}.shelf-rack-summary{padding-left:10px;padding-right:10px}}

/* 货架视图最终规则：按需显示、核对后定位、已修改状态优先、空位原因可见 */
#shelfContainer .shelf-layer-block .shelf-card-row[hidden]{display:none!important;}
#shelfContainer .shelf-card.modified,
#shelfContainer .shelf-card.modified.verified,
#shelfContainer .shelf-card.modified.mismatch,
#shelfContainer .shelf-card.modified.soldout{background:var(--shelf-modified-fill)!important;border-color:var(--shelf-modified-border)!important;color:var(--shelf-modified-text)!important;}
#shelfContainer .shelf-card.modified .position-code,
#shelfContainer .shelf-card.modified .shelf-product-name,
#shelfContainer .shelf-card.modified .shelf-extra,
#shelfContainer .shelf-card.modified .shelf-stock-line,
#shelfContainer .shelf-card.modified .shelf-verify-state{color:var(--shelf-modified-text)!important;}
#shelfContainer .shelf-card.missing.missing-edited .shelf-empty-reason{display:flex!important;visibility:visible!important;opacity:1!important;}
#shelfContainer .shelf-empty-reason{min-height:20px;align-items:flex-start;gap:5px;line-height:1.45;}
#shelfContainer .shelf-empty-reason span{display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}
.resume-highlight{animation:shelfResumePulse 1.8s ease both!important;}
@keyframes shelfResumePulse{0%,100%{box-shadow:0 0 0 0 rgba(79,70,229,0)}35%{box-shadow:0 0 0 5px rgba(79,70,229,.28),0 12px 28px rgba(79,70,229,.15)}}


/* ===== 货架视图按需版：与设计示例一致，避免大面积深色空白 ===== */
#shelfContainer .shelf-section{border:1px solid #e6ebf2!important;border-radius:16px!important;background:#fff!important;box-shadow:0 6px 22px rgba(15,23,42,.045)!important;overflow:hidden!important;margin-bottom:16px!important}
#shelfContainer .shelf-header{min-height:58px!important;padding:12px 16px!important;background:linear-gradient(135deg,#172b55,#284d91)!important;color:#fff!important;border:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;box-sizing:border-box!important}
#shelfContainer .shelf-title{font-size:16px!important;font-weight:850!important;color:#fff!important;line-height:1.2!important}
#shelfContainer .shelf-section-sub{font-size:11px!important;color:#dbe6ff!important;margin-top:4px!important}
#shelfContainer .shelf-rack-stats-trigger{border-color:rgba(255,255,255,.32)!important;background:rgba(255,255,255,.10)!important;color:#fff!important}
#shelfContainer .shelf-rack-summary{padding:9px 14px!important;border-bottom:1px solid #eef2f6!important;background:#fbfcfe!important}
#shelfContainer .shelf-layers{padding:0 16px 14px!important;background:#fff!important;gap:12px!important}
#shelfContainer .shelf-layer-block{border-top:1px solid #eef2f6!important;padding-top:0!important}
#shelfContainer .shelf-layer-header{min-height:46px!important;padding:8px 4px!important;background:#fff!important}
#shelfContainer .shelf-layer-title{font-size:13px!important;color:#27364f!important}
#shelfContainer .shelf-layer-actions{font-size:12px!important}
#shelfContainer .shelf-card-row{gap:10px!important;padding:8px 2px 14px!important}
#shelfContainer .shelf-card{flex:0 1 160px!important;width:160px!important;min-width:150px!important;max-width:190px!important;min-height:104px!important;padding:11px!important;border-radius:13px!important;box-shadow:0 2px 9px rgba(15,23,42,.035)!important}
#shelfContainer .shelf-card:hover{transform:translateY(-1px)!important}
#shelfContainer .shelf-load-more{min-height:58px!important;margin:12px 0 4px!important;border:1px solid #d9e2f3!important;background:#fff!important;border-radius:14px!important;color:#3157c7!important;font-weight:750!important;box-shadow:0 3px 12px rgba(15,23,42,.035)!important}
#shelfContainer .shelf-load-more small{display:block!important;margin-top:2px!important;color:#98a2b3!important;font-weight:500!important}
.shelf-page-head{margin-bottom:14px!important}.shelf-page-actions .btn{border-radius:10px!important}.shelf-page-actions .btn.active{background:#eef2ff!important;border-color:#6366f1!important;color:#4338ca!important}
.shelf-resume-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:9px 12px;border:1px solid #d9e3ff;border-radius:12px;background:#f6f8ff;color:#475467;font-size:12px}.shelf-resume-bar[hidden]{display:none!important}.shelf-resume-bar strong{color:#3157c7}.shelf-global-stats{margin:0 0 12px!important}
@media(max-width:768px){#shelfContainer .shelf-header{min-height:52px!important;padding:10px 12px!important}#shelfContainer .shelf-layers{padding:0 10px 10px!important}#shelfContainer .shelf-card{flex:0 0 calc((100% - 10px)/2)!important;width:auto!important;min-width:0!important;max-width:none!important}.shelf-page-actions{width:100%}.shelf-page-actions .btn{flex:1}.shelf-resume-bar{align-items:flex-start;flex-direction:column}.shelf-global-stats{overflow:auto;flex-wrap:nowrap}}


/* 货架视图重构：严格按“全部货架摘要 + 按需展开详情”设计，禁止4号架截断。 */
#shelfContainer .shelf-section{margin-bottom:10px!important;border:1px solid #e4e9f2!important;border-radius:14px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 2px 10px rgba(15,23,42,.035)!important}
#shelfContainer .shelf-header.shelf-rack-toggle{width:100%!important;border:0!important;min-height:66px!important;padding:11px 16px!important;background:#fff!important;color:#24324a!important;display:flex!important;align-items:center!important;justify-content:space-between!important;text-align:left!important;cursor:pointer!important}
#shelfContainer .shelf-section.is-open .shelf-header.shelf-rack-toggle{background:linear-gradient(135deg,#172b55,#284d91)!important;color:#fff!important}
#shelfContainer .shelf-section:not(.is-open) .shelf-title{color:#24324a!important}
#shelfContainer .shelf-section.is-open .shelf-title,#shelfContainer .shelf-section.is-open .shelf-section-sub{color:#fff!important}
#shelfContainer .shelf-section-sub{font-size:11px!important;color:#7b879a!important;margin-top:4px!important}
#shelfContainer .shelf-header-right{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;justify-content:flex-end!important}
#shelfContainer .shelf-header-right .shelf-stat-chip{font-size:10px!important;padding:4px 7px!important}
#shelfContainer .shelf-section:not(.is-open) .shelf-header-right .shelf-stat-chip{display:none!important}
#shelfContainer .shelf-rack-detail{padding:0 14px 12px!important;background:#fff!important}
#shelfContainer .shelf-rack-detail .shelf-layers{padding:0!important;gap:8px!important}
#shelfContainer .shelf-rack-detail .shelf-layer-block{border-top:1px solid #edf1f5!important}
#shelfContainer .shelf-rack-detail .shelf-layer-header{min-height:46px!important}
#shelfContainer .shelf-rack-detail .shelf-layer-stats{display:flex!important;gap:5px!important;flex-wrap:wrap!important}
#shelfContainer .shelf-rack-detail .shelf-stat-chip{font-size:10px!important;padding:3px 6px!important}
#shelfContainer .shelf-rack-detail .shelf-card-row{padding:8px 0 12px!important}
#shelfContainer .shelf-rack-detail .shelf-card-row[hidden]{display:none!important}
#shelfContainer .shelf-rack-detail .shelf-card{min-height:96px!important}
#shelfContainer .shelf-rack-detail .shelf-card.modified,#shelfContainer .shelf-rack-detail .shelf-card.modified.verified,#shelfContainer .shelf-rack-detail .shelf-card.modified.mismatch,#shelfContainer .shelf-rack-detail .shelf-card.modified.soldout{background:var(--shelf-modified-fill)!important;border-color:var(--shelf-modified-border)!important;color:var(--shelf-modified-text)!important}
@media(max-width:768px){
  #shelfContainer .shelf-header.shelf-rack-toggle{min-height:58px!important;padding:10px 11px!important}
  #shelfContainer .shelf-header-right{gap:4px!important;max-width:52%}
  #shelfContainer .shelf-header-right .shelf-stat-chip{display:none!important}
  #shelfContainer .shelf-rack-detail{padding:0 8px 9px!important}
}
/* 货架视图：全局展开/折叠按钮，与按需显示方案保持一致 */
.shelf-page-actions #shelfGlobalExpandToggle{min-width:104px}
@media(max-width:768px){.shelf-page-actions #shelfGlobalExpandToggle{min-width:0}}

/* 库存核对移动端：紧凑、单手可操作，移除已弃用的站位/位置字段展示。 */
.inventory-modal .modal-content{border:0;border-radius:20px;overflow:hidden;box-shadow:0 18px 55px rgba(15,23,42,.18)}
.inventory-modal-header{padding:16px 18px;background:#fff;border-bottom:1px solid #edf1f6}
.inventory-modal-subtitle{font-size:.72rem;color:#98a2b3;margin-top:3px}
.inventory-modal-body{padding:16px 18px;background:#f8fafc}
.inventory-summary-card{padding:14px 15px;border:1px solid #e6ebf2;border-radius:15px;background:#fff}
.inventory-product-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.inventory-product-head strong{font-size:1.18rem;color:#182230}
.inventory-product-code{font-size:.72rem;color:#667085;margin-top:3px}
.inventory-product-name{font-size:.82rem;font-weight:700;color:#344054;margin-top:7px;line-height:1.4}
.inventory-stock-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.inventory-stock-summary>div{padding:12px;border-radius:14px;background:#fff;border:1px solid #e8edf4;text-align:center}
.inventory-stock-summary span{display:block;font-size:.68rem;color:#98a2b3;margin-bottom:3px}
.inventory-stock-summary strong{font-size:1.35rem;color:#172033}
.inventory-stock-summary>div:last-child strong{color:#3157c7}
.inventory-action-grid.compact{grid-template-columns:1fr 1fr;margin-bottom:12px}
.inventory-action-grid.compact label{padding:10px 11px;border-radius:13px;background:#fff}
.inventory-count-editor{padding:13px;border:1px solid #e3e9f2;border-radius:16px;background:#fff}
.inventory-count-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.inventory-count-label>span{font-size:.82rem;font-weight:800;color:#344054}
.inventory-count-label small{font-size:.68rem;color:#98a2b3}
.inventory-stepper{display:grid;grid-template-columns:52px 1fr 52px;gap:8px;align-items:center}
.inventory-step-btn{height:52px;border:1px solid #dbe3ef;border-radius:13px;background:#f8fafc;color:#3157c7;font-size:1.6rem;font-weight:800;line-height:1;touch-action:manipulation}
.inventory-step-btn:active{transform:scale(.97);background:#eef4ff}
.inventory-stepper input{height:52px;text-align:center;font-size:1.45rem;font-weight:850;border-radius:13px;border-color:#cfd8e6}
.inventory-quick-actions{display:flex;gap:7px;margin-top:8px}
.inventory-quick-actions button{flex:1;border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:7px 4px;color:#475467;font-size:.7rem;font-weight:700}
.inventory-remark-field{margin-top:12px}.inventory-remark-field label{display:flex;justify-content:space-between;font-size:.78rem;font-weight:750;color:#344054;margin-bottom:6px}.inventory-remark-field label span{font-weight:500;color:#98a2b3}
.inventory-modal-footer{padding:12px 14px;background:#fff;border-top:1px solid #edf1f6;gap:8px}.inventory-confirm-btn{min-width:110px}
@media(max-width:576px){.inventory-modal .modal-dialog{margin:0 8px;min-height:calc(100% - 16px)}.inventory-modal .modal-content{border-radius:18px}.inventory-modal .modal-body{padding:12px}.inventory-modal-header{padding:13px 14px}.inventory-stock-summary{gap:7px}.inventory-stock-summary>div{padding:10px}.inventory-stepper{grid-template-columns:58px 1fr 58px}.inventory-step-btn,.inventory-stepper input{height:56px}.inventory-modal-footer{padding:10px}.inventory-modal-footer .btn{min-height:44px}.inventory-modal-footer .me-auto{margin-right:0!important}.inventory-product-head strong{font-size:1.05rem}}

/* ===== 货架视图移动端最终优化 =====
   目标：一行完成“货架号 + 货位/层数 + 展开状态”，避免标题和“收起”上下挤压。
   同时移除无效的“统计”控制文案；统计数字仍在展开状态显示。 */
.shelf-copy-short{display:none}
#shelfContainer .shelf-rack-heading{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}
#shelfContainer .shelf-rack-heading .shelf-title{display:flex;align-items:center;min-width:0;gap:0;white-space:nowrap}
#shelfContainer .shelf-rack-heading .shelf-title span{overflow:hidden;text-overflow:ellipsis}
#shelfContainer .shelf-rack-detail-hint{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px;font-weight:750;line-height:1;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.10);color:inherit}
#shelfContainer .shelf-rack-detail-hint i{font-size:10px}
#shelfContainer .shelf-layer-actions .shelf-stats-trigger{display:none!important}
@media(max-width:768px){
  #shelfContainer .shelf-header.shelf-rack-toggle{min-height:54px!important;height:auto!important;padding:8px 10px!important;gap:8px!important;flex-wrap:nowrap!important;align-items:center!important}
  #shelfContainer .shelf-rack-heading{flex:1 1 auto;min-width:0}
  #shelfContainer .shelf-rack-heading .shelf-title{font-size:15px!important;line-height:1.15!important}
  #shelfContainer .shelf-rack-heading .shelf-title .bi-grid-3x3-gap-fill{margin-right:5px!important}
  #shelfContainer .shelf-rack-heading .shelf-title .bi-chevron-down,#shelfContainer .shelf-rack-heading .shelf-title .bi-chevron-right{margin-right:5px!important}
  #shelfContainer .shelf-section-sub{margin-top:2px!important;font-size:10px!important;line-height:1.15!important}
  #shelfContainer .shelf-copy-full{display:none!important}
  #shelfContainer .shelf-copy-short{display:inline!important}
  #shelfContainer .shelf-header-right{flex:0 0 auto!important;width:auto!important;max-width:none!important;margin-left:auto!important;display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:0!important}
  #shelfContainer .shelf-header-right .shelf-stat-chip{display:none!important}
  #shelfContainer .shelf-rack-detail-hint{width:30px;height:30px;padding:0!important;justify-content:center;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.10)}
  #shelfContainer .shelf-section:not(.is-open) .shelf-rack-detail-hint{background:#f3f6fb;color:#667085;border-color:#e2e8f0}
  #shelfContainer .shelf-rack-detail{padding:0 7px 8px!important}
  #shelfContainer .shelf-rack-detail .shelf-layer-header{min-height:42px!important;padding:7px 3px!important;gap:6px!important}
  #shelfContainer .shelf-rack-detail .shelf-layer-title{font-size:12px!important;line-height:1.2!important}
  #shelfContainer .shelf-rack-detail .shelf-layer-count{font-size:10px!important}
  #shelfContainer .shelf-rack-detail .shelf-layer-stats{gap:3px!important}
  #shelfContainer .shelf-rack-detail .shelf-stat-chip{font-size:9px!important;padding:3px 5px!important}
  #shelfContainer .shelf-rack-detail .shelf-card-row{gap:8px!important;padding:6px 0 10px!important}
  #shelfContainer .shelf-rack-detail .shelf-card{min-height:88px!important;padding:9px!important;border-radius:11px!important}
  #shelfContainer .shelf-rack-detail .shelf-card .position-code{font-size:13px!important}
  #shelfContainer .shelf-rack-detail .shelf-product-name{font-size:11px!important;line-height:1.25!important;margin-top:4px!important}
  #shelfContainer .shelf-rack-detail .shelf-stock-line{font-size:11px!important}
  #shelfContainer .shelf-rack-detail .shelf-verify-state,#shelfContainer .shelf-rack-detail .shelf-extra{font-size:10px!important;line-height:1.25!important}
}
@media(max-width:380px){#shelfContainer .shelf-rack-detail .shelf-card{min-height:84px!important;padding:8px!important}#shelfContainer .shelf-rack-detail .shelf-card .position-code{font-size:12px!important}}
.pricing-rule-card,.pricing-toolbar,.pricing-summary{margin-bottom:14px}.pricing-rule-card{border:0;background:linear-gradient(135deg,#fff 0%,#f7f9fc 100%);box-shadow:0 8px 28px rgba(31,41,55,.06)}.pricing-rule-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.pricing-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid rgba(0,0,0,.06);border-radius:14px;background:rgba(255,255,255,.86);box-shadow:0 4px 18px rgba(31,41,55,.04)}.pricing-toolbar .input-group{flex:1;min-width:260px}.pricing-check{white-space:nowrap;padding:8px 10px;border-radius:10px;background:#f6f7f9}.pricing-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pricing-summary>div{background:var(--bs-light,#f8f9fa);border:1px solid rgba(0,0,0,.06);border-radius:14px;padding:14px 16px}.pricing-summary span{display:block;color:#6c757d;font-size:12px}.pricing-summary strong{display:block;font-size:21px;margin-top:3px}.pricing-table th{white-space:nowrap}.pricing-excluded{opacity:.6}.pricing-report{min-width:min(900px,80vw)}
.pricing-candidate-backdrop{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.56);backdrop-filter:blur(5px)}.pricing-candidate-dialog{width:min(1080px,96vw);max-height:91vh;display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.7);border-radius:22px;box-shadow:0 24px 80px rgba(15,23,42,.28)}.pricing-candidate-head{display:flex;justify-content:space-between;gap:18px;padding:22px 24px 16px;border-bottom:1px solid #eef0f3}.pricing-candidate-title{display:flex;gap:14px;align-items:flex-start}.pricing-candidate-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#fff4e5;color:#d97706;font-size:22px}.pricing-candidate-title .eyebrow{font-size:10px;letter-spacing:.14em;color:#9aa1ab}.pricing-candidate-title h4{margin:2px 0 3px;font-size:20px}.pricing-candidate-title p{margin:0;color:#707783;font-size:12px}.pricing-candidate-close{width:34px;height:34px;flex:0 0 auto}.pricing-candidate-stats{display:grid;grid-template-columns:repeat(3,1fr) 1.8fr;gap:10px;padding:14px 24px;background:#fafbfc}.pricing-candidate-stats>div{padding:11px 13px;border:1px solid #eceff3;border-radius:13px;background:#fff}.pricing-candidate-stats span{display:block;color:#7a818c;font-size:11px}.pricing-candidate-stats strong{display:inline-block;font-size:22px;margin:2px 8px 0 0}.pricing-candidate-stats small{color:#9aa1ab;font-size:10px}.pricing-candidate-note{display:flex!important;align-items:center;gap:9px;color:#6b7280;font-size:12px}.pricing-candidate-note i{font-size:17px;color:#64748b}.pricing-candidate-tools{display:flex;justify-content:space-between;align-items:center;padding:12px 24px 8px}.pricing-candidate-tools>span{font-size:12px;color:#8a919c}.pricing-candidate-list{overflow:auto;padding:0 24px 8px}.pricing-candidate-row{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:14px 12px;margin:7px 0;border:1px solid #edf0f3;border-radius:14px;cursor:pointer;transition:.15s ease;background:#fff}.pricing-candidate-row:hover{border-color:#d9dee6;box-shadow:0 4px 14px rgba(15,23,42,.05);transform:translateY(-1px)}.pricing-candidate-row.is-disabled{opacity:.55;cursor:default}.pricing-candidate-check input{width:18px;height:18px}.pricing-candidate-code{font-weight:700;font-size:14px;word-break:break-all}.pricing-candidate-reason{margin-top:3px;color:#a15c00;font-size:12px}.pricing-candidate-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:7px;color:#8b929d;font-size:11px}.pricing-candidate-meta i{margin-right:4px}.pricing-candidate-status{align-self:start;padding-top:2px}.pricing-candidate-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;border-top:1px solid #eef0f3;background:#fafbfc}.pricing-candidate-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:220px;color:#7b8490}.pricing-candidate-empty i{font-size:42px;color:#22a06b}.pricing-candidate-empty strong{color:#374151}.pricing-candidate-empty span{font-size:12px}
@media(max-width:768px){.pricing-summary{grid-template-columns:repeat(2,1fr)}.pricing-toolbar{align-items:stretch}.pricing-toolbar>*{width:100%!important}.pricing-rule-head{display:block}.pricing-rule-head .text-muted{display:block;margin-top:4px}.pricing-report{min-width:0}.pricing-table{font-size:13px}.pricing-candidate-backdrop{padding:8px}.pricing-candidate-dialog{width:100%;max-height:95vh;border-radius:18px}.pricing-candidate-head{padding:16px}.pricing-candidate-stats{grid-template-columns:repeat(2,1fr);padding:10px 16px}.pricing-candidate-note{grid-column:1/-1}.pricing-candidate-tools,.pricing-candidate-list,.pricing-candidate-foot{padding-left:16px;padding-right:16px}.pricing-candidate-foot{align-items:flex-end;flex-direction:column}.pricing-candidate-foot>div{width:100%;display:flex;justify-content:flex-end}.pricing-candidate-row{grid-template-columns:28px 1fr}.pricing-candidate-status{grid-column:2}.pricing-candidate-meta{gap:8px}}


/* pricing v22: 经营参数 / 起送保本控制台 */
.pricing-hero{display:flex;justify-content:space-between;align-items:center;gap:20px}.pricing-hero-badge{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #dbe7ff;border-radius:14px;background:#f5f8ff;color:#2459b8;font-weight:700;font-size:13px}.pricing-settings-shell{border:0;background:linear-gradient(135deg,#fff,#f7faff);box-shadow:0 10px 32px rgba(31,41,55,.07)}.pricing-settings-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.pricing-settings-title strong{display:block;font-size:17px}.pricing-settings-title span{display:block;color:#7b8490;font-size:12px;margin-top:3px}.pricing-setting-help{display:flex;gap:9px;align-items:flex-start;padding:11px 13px;border-radius:12px;background:#f7f9fc;color:#68717d;font-size:12px;line-height:1.7}.pricing-setting-help i{color:#e59b22;font-size:16px;margin-top:2px}.pricing-economics{margin-bottom:14px;border:1px solid #e8edf4;border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(31,41,55,.05);overflow:hidden}.pricing-economics-head{display:flex;justify-content:space-between;gap:16px;padding:18px 20px 13px;background:linear-gradient(135deg,#f8fbff,#fff)}.pricing-economics-head h5{margin:2px 0 3px;font-size:18px}.pricing-economics-head p{margin:0;color:#7b8490;font-size:12px}.pricing-economics-status{align-self:flex-start;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.pricing-economics-status.ok{background:#eaf8f0;color:#197a47}.pricing-economics-status.warn{background:#fff1e8;color:#b94b15}.pricing-economics-status i{margin-right:5px}.pricing-economics-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;padding:0 20px 14px}.pricing-economics-grid>div{padding:12px;border:1px solid #edf0f4;border-radius:12px;background:#fbfcfd}.pricing-economics-grid span{display:block;color:#7b8490;font-size:11px}.pricing-economics-grid strong{display:block;font-size:19px;margin:4px 0}.pricing-economics-grid small{display:block;color:#9aa1ab;font-size:10px;line-height:1.4}.pricing-order-rule{display:flex;gap:10px;align-items:center;margin:0 20px 10px;padding:12px 14px;border-radius:12px;background:#f5f8ff;color:#536071;font-size:12px}.pricing-order-rule>i{font-size:20px;color:#356bd8}.pricing-order-rule div{display:flex;gap:6px;flex-wrap:wrap}.pricing-economics-message{padding:0 20px 15px;color:#6b7280;font-size:11px}.pricing-economics-message.danger{color:#b34d23;font-weight:600}.pricing-table td small{line-height:1.35}
@media(max-width:900px){.pricing-economics-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.pricing-hero{align-items:flex-start}.pricing-hero-badge{display:none}.pricing-settings-title{align-items:flex-start;flex-direction:column}.pricing-settings-title .btn{width:100%}.pricing-economics-head{padding:15px;flex-direction:column}.pricing-economics-grid{grid-template-columns:repeat(2,1fr);padding:0 15px 12px}.pricing-order-rule{margin-left:15px;margin-right:15px}.pricing-economics-message{padding-left:15px;padding-right:15px}.pricing-setting-help{font-size:11px}}

/* pricing v2.0: 批量定价 + 订单保本模拟 */
.pricing-summary{grid-template-columns:repeat(6,1fr)}
.pricing-summary>div{min-width:0}
.pricing-table th{font-size:12px;color:#596273;background:#f8fafc}
.pricing-table td{font-size:13px;white-space:nowrap}
.pricing-table td:nth-child(4){white-space:normal;min-width:160px;max-width:240px}
.pricing-table td:nth-child(5){white-space:normal;min-width:90px}
.pricing-simulator-card{margin-bottom:14px;border:1px solid #e8edf4;border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(31,41,55,.05);overflow:hidden}
.pricing-simulator-head{display:flex;justify-content:space-between;gap:16px;padding:17px 20px 13px;background:linear-gradient(135deg,#fbfcff,#fff)}
.pricing-simulator-head h5{margin:2px 0 3px;font-size:18px}.pricing-simulator-head p{margin:0;color:#7b8490;font-size:12px}.pricing-simulator-tip{padding:7px 11px;border-radius:999px;background:#f3f7ff;color:#356bd8;font-size:11px;font-weight:700;white-space:nowrap;height:max-content}.pricing-simulator-add{display:grid;grid-template-columns:minmax(220px,1fr) 100px auto auto;gap:9px;padding:13px 20px;border-top:1px solid #eef0f3;border-bottom:1px solid #eef0f3}.pricing-sim-list{padding:4px 20px}.pricing-sim-row{display:grid;grid-template-columns:minmax(220px,1fr) 90px 100px 36px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px dashed #e8ebef}.pricing-sim-row>div strong,.pricing-sim-row>div small{display:block}.pricing-sim-row small{margin-top:2px;color:#8a919c;font-size:11px}.pricing-sim-empty{padding:18px 0;color:#8b929d;font-size:12px;text-align:center}.pricing-sim-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 20px}.pricing-sim-metrics>div{padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid #edf0f4}.pricing-sim-metrics span,.pricing-sim-metrics small{display:block;color:#7b8490;font-size:10px}.pricing-sim-metrics strong{display:block;font-size:16px;margin-top:4px}.pricing-sim-metrics .good{color:#198754}.pricing-sim-metrics .bad{color:#c0392b}.pricing-sim-verdict{margin:0 20px 15px;padding:11px 13px;border-radius:12px;font-size:12px;display:flex;gap:8px;align-items:flex-start}.pricing-sim-verdict.good{background:#eaf8f0;color:#197a47}.pricing-sim-verdict.bad{background:#fff1e8;color:#b34b1b}.pricing-sim-verdict i{font-size:16px;margin-top:1px}
@media(max-width:1100px){.pricing-summary{grid-template-columns:repeat(3,1fr)}.pricing-sim-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.pricing-summary{grid-template-columns:repeat(2,1fr)}.pricing-simulator-head{padding:15px;flex-direction:column}.pricing-simulator-tip{display:none}.pricing-simulator-add{grid-template-columns:1fr 86px; padding:12px 15px}.pricing-simulator-add button{width:100%}.pricing-sim-list{padding:4px 15px}.pricing-sim-row{grid-template-columns:1fr 72px 80px 30px}.pricing-sim-metrics{grid-template-columns:repeat(2,1fr);padding:10px 15px}.pricing-sim-verdict{margin-left:15px;margin-right:15px}.pricing-table{min-width:1450px}}

/* pricing v2.1: 大气经营控制台视觉重构 */
#mainContent:has(.pricing-hero){background:linear-gradient(180deg,#f4f7fb 0%,#f8fafc 34%,#f3f6fa 100%)}
.pricing-hero{position:relative;min-height:150px;margin:0 0 18px!important;padding:30px 34px!important;border:1px solid rgba(255,255,255,.7);border-radius:26px!important;overflow:hidden;color:#fff;background:radial-gradient(circle at 85% 15%,rgba(108,145,255,.28),transparent 28%),linear-gradient(135deg,#111b35 0%,#1d315d 52%,#263e73 100%);box-shadow:0 20px 48px rgba(27,47,91,.18)!important;align-items:center!important}
.pricing-hero:before,.pricing-hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none}
.pricing-hero:before{width:260px;height:260px;right:-65px;top:-130px}.pricing-hero:after{width:170px;height:170px;right:70px;bottom:-120px}
.pricing-hero>div:first-child{position:relative;z-index:1}.pricing-hero .eyebrow{color:#a9c1ff;font-size:11px;font-weight:800;letter-spacing:.18em}.pricing-hero h4{margin:7px 0 4px!important;font-size:30px!important;letter-spacing:-.045em!important;color:#fff}.pricing-hero h4 i{color:#a9c1ff!important}.pricing-hero .page-subtitle{max-width:780px;color:rgba(235,241,255,.76);font-size:13px;line-height:1.7}.pricing-hero-badge{position:relative;z-index:1;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.09);backdrop-filter:blur(12px);color:#fff;border-radius:16px;padding:12px 16px;box-shadow:0 8px 25px rgba(0,0,0,.08)}
.pricing-settings-shell{position:relative;margin-bottom:16px!important;padding:22px!important;border-radius:22px!important;background:rgba(255,255,255,.92)!important;box-shadow:0 12px 34px rgba(30,45,75,.07)!important}
.pricing-settings-shell:before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#5478e8,#8b9ff5)}
.pricing-settings-title{padding-left:5px;padding-bottom:15px;border-bottom:1px solid #edf1f6}.pricing-settings-title strong{font-size:19px;color:#1b2942;letter-spacing:-.02em}.pricing-settings-title span{font-size:11px;color:#8490a3}
.pricing-settings-shell .row{margin-top:14px!important}.pricing-settings-shell .form-label{font-size:11px;font-weight:800;color:#68758a;margin-bottom:6px}.pricing-settings-shell .form-control,.pricing-settings-shell .form-select{height:43px;border-color:#dfe5ee;border-radius:11px;color:#26344d;background:#fbfcfe;font-size:13px;font-weight:600;box-shadow:none;transition:.18s ease}.pricing-settings-shell .form-control:focus,.pricing-settings-shell .form-select:focus{border-color:#7793e9;background:#fff;box-shadow:0 0 0 3px rgba(91,116,224,.10)}.pricing-settings-shell .input-group-text{height:43px;border-color:#dfe5ee;background:#f1f4f8;color:#738096;font-size:12px}.pricing-settings-shell .input-group>.form-control:first-child,.pricing-settings-shell .input-group>.form-select:first-child{border-radius:11px 0 0 11px}.pricing-settings-shell .input-group-text:last-child{border-radius:0 11px 11px 0}
.pricing-setting-help{margin-top:2px!important;border:1px solid #e8edf5;background:linear-gradient(90deg,#f5f8ff,#fbfcfe);color:#68758a;padding:12px 14px;border-radius:12px}.pricing-setting-help b{color:#34445f}
.pricing-economics{border:0!important;border-radius:22px!important;box-shadow:0 12px 34px rgba(30,45,75,.07)!important;background:#fff}.pricing-economics-head{padding:22px 24px 16px!important;background:linear-gradient(135deg,#fff,#f5f8ff)!important;border-bottom:1px solid #edf1f6}.pricing-economics-head .eyebrow{font-size:10px;letter-spacing:.17em;color:#7890c8;font-weight:800}.pricing-economics-head h5{font-size:21px!important;color:#1c2b45!important;letter-spacing:-.03em}.pricing-economics-head p{font-size:11px!important;color:#8792a4!important}.pricing-economics-status{padding:8px 12px!important;border-radius:999px!important}
.pricing-economics-grid{gap:10px!important;padding:16px 24px 18px!important}.pricing-economics-grid>div{min-height:92px;padding:14px!important;border:1px solid #e9edf3!important;border-radius:15px!important;background:linear-gradient(180deg,#fff,#fafbfd)!important}.pricing-economics-grid span{font-size:10px!important;font-weight:700;color:#7c8799!important}.pricing-economics-grid strong{font-size:21px!important;color:#17243b!important}.pricing-economics-grid small{font-size:9px!important;color:#98a2b3!important}.pricing-order-rule{margin:0 24px 12px!important;background:#f5f8ff!important;border:1px solid #e4ebfb}.pricing-economics-message{padding:0 24px 18px!important;font-size:11px!important}
.pricing-simulator-card{border:0!important;border-radius:22px!important;box-shadow:0 12px 34px rgba(30,45,75,.07)!important}.pricing-simulator-head{padding:21px 24px 16px!important;background:linear-gradient(135deg,#fff,#f8faff)!important;border-bottom:1px solid #edf1f6}.pricing-simulator-head h5{font-size:20px!important;color:#1c2b45!important}.pricing-simulator-head p{font-size:11px!important}.pricing-simulator-tip{background:#edf3ff!important;color:#4164c2!important}
.pricing-toolbar{position:sticky;top:8px;z-index:30;margin:18px 0 12px!important;padding:11px 12px!important;border:1px solid rgba(218,225,236,.9)!important;border-radius:16px!important;background:rgba(255,255,255,.92)!important;backdrop-filter:blur(14px);box-shadow:0 8px 24px rgba(30,45,75,.08)!important}.pricing-toolbar .input-group{min-width:300px}.pricing-toolbar .input-group-text{border-color:#dfe5ee;background:#f7f9fc;color:#738096}.pricing-toolbar .form-control{height:40px;border-color:#dfe5ee;box-shadow:none}.pricing-toolbar .btn{height:40px;border-radius:10px;font-size:12px;font-weight:700}.pricing-check{height:40px;display:flex;align-items:center;border:1px solid #e4e9f0;background:#f8fafc!important;color:#5e6b80;font-size:12px;font-weight:650}
.pricing-summary{gap:10px!important;margin-bottom:14px!important}.pricing-summary>div{position:relative;min-height:82px;padding:15px 16px!important;border:1px solid #e7ebf1!important;border-radius:16px!important;background:rgba(255,255,255,.96)!important;box-shadow:0 6px 20px rgba(30,45,75,.045)}.pricing-summary>div:after{content:"";position:absolute;right:13px;top:14px;width:6px;height:6px;border-radius:50%;background:#9aa9c3}.pricing-summary span{font-size:10px!important;font-weight:700;color:#8994a6!important}.pricing-summary strong{margin-top:6px!important;font-size:23px!important;color:#1b2941!important;letter-spacing:-.03em}
.pricing-table-card,.pricing-table{background:#fff}.pricing-table{min-width:1540px}.pricing-table thead th{height:50px!important;padding:11px 12px!important;background:#f5f7fb!important;color:#637086!important;border-bottom:1px solid #dce3ed!important;font-size:10px!important;font-weight:800!important;letter-spacing:.02em}.pricing-table tbody td{height:76px;padding:11px 12px!important;border-bottom:1px solid #edf1f5!important;color:#344054!important;font-size:12px!important}.pricing-table tbody tr{transition:.16s ease}.pricing-table tbody tr:hover{background:#f8faff!important}.pricing-table tbody td:first-child{position:relative}.pricing-table tbody td:nth-child(2) strong{font-size:13px;color:#22304a}.pricing-table tbody td:nth-child(3){font-variant-numeric:tabular-nums;color:#536178}.pricing-table tbody td:nth-child(7) strong,.pricing-table tbody td:nth-child(10) strong,.pricing-table tbody td:nth-child(11) strong{font-size:14px;color:#1e2c43}.pricing-table tbody td:nth-child(8),.pricing-table tbody td:nth-child(9){color:#59667a}.pricing-table tbody td:nth-child(13) strong{font-size:14px}.pricing-table .badge{padding:6px 8px;border-radius:999px;font-size:10px;font-weight:800}.pricing-excluded{opacity:.52}.pricing-table .btn{border-radius:10px;font-size:11px;font-weight:750;padding:8px 12px}
.pricing-sim-metrics>div{border-color:#e8edf4!important;background:#f9fbfd!important}.pricing-sim-verdict{font-weight:650}
@media(max-width:1100px){.pricing-hero{padding:25px!important}.pricing-settings-shell{padding:18px!important}.pricing-economics-grid{grid-template-columns:repeat(3,1fr)!important}.pricing-summary{grid-template-columns:repeat(3,1fr)!important}.pricing-toolbar{position:static}.pricing-toolbar .input-group{flex:1 1 100%}}
@media(max-width:768px){#mainContent:has(.pricing-hero){background:#f5f7fa}.pricing-hero{min-height:135px;padding:22px 20px!important;border-radius:20px!important}.pricing-hero h4{font-size:25px!important}.pricing-hero .page-subtitle{font-size:11px}.pricing-settings-shell{padding:16px!important;border-radius:18px!important}.pricing-settings-title{padding-bottom:12px}.pricing-settings-shell .form-control,.pricing-settings-shell .form-select,.pricing-settings-shell .input-group-text{height:41px}.pricing-economics{border-radius:18px!important}.pricing-economics-head{padding:17px!important}.pricing-economics-grid{padding:12px 15px 14px!important;gap:8px!important}.pricing-economics-grid>div{min-height:82px;padding:11px!important}.pricing-order-rule{margin-left:15px!important;margin-right:15px!important}.pricing-economics-message{padding-left:15px!important;padding-right:15px!important}.pricing-simulator-card{border-radius:18px!important}.pricing-simulator-head{padding:17px!important}.pricing-toolbar{border-radius:14px!important}.pricing-summary{grid-template-columns:repeat(2,1fr)!important}.pricing-summary>div{min-height:72px;padding:12px!important}.pricing-summary strong{font-size:20px!important}.pricing-table{min-width:1540px}}

/* pricing v2.2: 完整信息可见 + 表格结构收敛 */
.pricing-table-card{overflow:hidden!important;padding:0!important}
.pricing-table-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border-bottom:1px solid #e8edf3;background:linear-gradient(180deg,#fff,#fafbfd)}
.pricing-table-head strong{display:block;color:#1d2b43;font-size:15px;letter-spacing:-.01em}
.pricing-table-head span{display:block;margin-top:3px;color:#8994a6;font-size:10px}
.pricing-table-scroll-hint{display:flex!important;align-items:center;gap:6px;margin:0!important;padding:7px 10px;border:1px solid #e4e9f0;border-radius:999px;background:#f7f9fc;color:#6b7890!important;font-weight:700;white-space:nowrap}
.pricing-table-wrap{width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.pricing-table{min-width:1380px!important;table-layout:auto}
.pricing-table th,.pricing-table td{vertical-align:middle!important}
.pricing-table th:nth-child(4),.pricing-table td:nth-child(4){min-width:180px;max-width:260px}
.pricing-table td:nth-child(4){white-space:normal!important}
.pricing-product-name{display:block;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#253550!important}
.pricing-table th:nth-child(7),.pricing-table td:nth-child(7){min-width:125px}
.pricing-table th:nth-child(8),.pricing-table td:nth-child(8){min-width:125px}
.pricing-table th:nth-child(9),.pricing-table td:nth-child(9){min-width:110px}
.pricing-table th:nth-child(10),.pricing-table td:nth-child(10){min-width:110px}
.pricing-table th:nth-child(11),.pricing-table td:nth-child(11){min-width:95px}
.pricing-table th:nth-child(12),.pricing-table td:nth-child(12){min-width:110px}
.pricing-table th:nth-child(13),.pricing-table td:nth-child(13){min-width:105px}
.pricing-table th:last-child,.pricing-table td:last-child{min-width:170px}
.pricing-sticky-check,.pricing-table .pricing-sticky-check,.pricing-table tbody td:first-child{position:sticky;left:0;z-index:5;background:#f5f7fb!important}
.pricing-sticky-code,.pricing-table .pricing-sticky-code{position:sticky;left:40px;z-index:5;background:#fff!important;box-shadow:8px 0 12px -12px rgba(28,43,69,.35)}
.pricing-table thead .pricing-sticky-code{background:#f5f7fb!important}
.pricing-table tbody tr:hover .pricing-sticky-code{background:#f8faff!important}
@media(max-width:768px){.pricing-table-head{padding:13px 14px}.pricing-table-head span:not(.pricing-table-scroll-hint){display:none}.pricing-table-scroll-hint{font-size:10px}.pricing-table{min-width:1380px!important}.pricing-product-name{max-width:190px}}

.purchase-import-monitor{position:static;width:100%;max-height:none;overflow:visible;margin-top:18px;padding:18px 20px;border:1px solid #dbe4ef;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.07);box-sizing:border-box}.purchase-import-monitor[hidden]{display:none!important}
.purchase-monitor-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;min-width:0}.purchase-monitor-title{display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap}.purchase-monitor-title strong{font-size:21px;line-height:1.2;color:#172033;letter-spacing:-.3px}.purchase-monitor-live{font-size:13px;color:#16a34a;white-space:nowrap}.purchase-monitor-current-label{font-size:14px;color:#475467;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-monitor-head-right{display:flex;align-items:center;gap:12px;flex:0 0 auto;white-space:nowrap;color:#64748b;font-size:14px}.purchase-monitor-head-right>b{font-size:17px;color:#334155}.purchase-monitor-state{display:inline-flex;align-items:center;gap:5px;font-size:13px}.purchase-monitor-state.running{color:#2563eb}.purchase-monitor-state.done{color:#16a34a}.purchase-monitor-state i{font-size:14px}
.purchase-monitor-progress{padding:0 0 15px}.purchase-monitor-progress>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#667085;margin-bottom:7px}.purchase-monitor-progress b{font-size:20px;color:#1d4ed8}.purchase-monitor-progress .progress{height:10px;border-radius:99px;background:#edf1f6;overflow:hidden}.purchase-monitor-progress .progress-bar{border-radius:99px}
.purchase-monitor-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:15px}.purchase-monitor-summary>div{min-width:0;padding:12px 14px;border:1px solid #e6ebf2;border-radius:13px;background:#f8fafc}.purchase-monitor-summary small{display:block;font-size:12px;color:#667085;margin-bottom:4px}.purchase-monitor-summary b{display:block;font-size:19px;color:#172033;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-monitor-summary em{font-style:normal;font-size:12px;font-weight:500;color:#667085;margin-left:2px}
.purchase-monitor-current{display:flex;gap:12px;align-items:center;padding:12px 14px;margin-bottom:15px;border-radius:13px;background:#eff6ff;border:1px solid #d7e7ff}.purchase-monitor-current>i{font-size:20px;color:#2563eb;flex:0 0 auto}.purchase-monitor-current>i.bi-arrow-repeat{animation:purchaseMonitorSpin 1s linear infinite}.purchase-monitor-current div{min-width:0}.purchase-monitor-current b{display:block;font-size:14px;color:#172033;line-height:1.3}.purchase-monitor-current small{display:block;font-size:12px;color:#667085;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.purchase-monitor-body{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:14px}.purchase-monitor-queue{min-width:0}.purchase-monitor-log{min-width:0;border:1px solid #e6ebf2;border-radius:13px;background:#fafbfc;overflow:hidden;display:flex;flex-direction:column;max-height:360px}.purchase-monitor-section-head{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 12px;border-bottom:1px solid #e9edf2;color:#475467}.purchase-monitor-section-head strong{font-size:14px;color:#334155;white-space:nowrap}.purchase-monitor-section-head>span{font-size:11px;color:#98a2b3;white-space:nowrap}.purchase-monitor-legend{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10px;color:#667085;white-space:nowrap}.purchase-monitor-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;border:2px solid #98a2b3}.purchase-monitor-legend i.done{border-color:#16a34a;background:#16a34a}.purchase-monitor-legend i.running{border-color:#2563eb}.purchase-monitor-legend i.skipped{border-color:#ef4444}.purchase-monitor-table-wrap{border:1px solid #e6ebf2;border-radius:13px;overflow:auto;background:#fff}.purchase-monitor-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.purchase-monitor-table th{padding:9px 10px;text-align:left;font-weight:700;color:#667085;background:#f8fafc;border-bottom:1px solid #e6ebf2;white-space:nowrap}.purchase-monitor-table td{padding:9px 10px;border-bottom:1px solid #edf1f5;color:#475467;vertical-align:middle}.purchase-monitor-table tbody tr:last-child td{border-bottom:0}.purchase-monitor-table tbody tr.running{background:#f5f9ff}.purchase-monitor-table tbody tr.done{background:#f6fdf8}.purchase-monitor-table tbody tr.skipped{background:#fffaf5}.purchase-monitor-table th:nth-child(1),.purchase-monitor-table td:nth-child(1){width:48px;text-align:center}.purchase-monitor-table th:nth-child(2),.purchase-monitor-table td:nth-child(2){width:30%}.purchase-monitor-table th:nth-child(3),.purchase-monitor-table td:nth-child(3){width:75px}.purchase-monitor-table th:nth-child(4),.purchase-monitor-table td:nth-child(4){width:70px}.purchase-monitor-table th:nth-child(5),.purchase-monitor-table td:nth-child(5){width:105px}.purchase-monitor-table th:nth-child(6),.purchase-monitor-table td:nth-child(6){width:100px}.purchase-monitor-table td:nth-child(2){overflow:hidden}.purchase-monitor-table td:nth-child(2)>b{display:block;font-size:13px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-monitor-table td:nth-child(2)>small{display:block;margin-top:2px;font-size:10px;color:#98a2b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-monitor-status-icon{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center}.purchase-monitor-table tr.done .purchase-monitor-status-icon{color:#16a34a}.purchase-monitor-table tr.running .purchase-monitor-status-icon{color:#2563eb}.purchase-monitor-table tr.running .purchase-monitor-status-icon i{animation:purchaseMonitorSpin 1s linear infinite}.purchase-monitor-table tr.skipped .purchase-monitor-status-icon{color:#ef4444}.purchase-sheet-mini-progress{display:flex;align-items:center;gap:7px}.purchase-sheet-mini-progress>span{display:block;width:58px;height:6px;border-radius:99px;background:#e8edf3;overflow:hidden}.purchase-sheet-mini-progress>span i{display:block;height:100%;border-radius:99px;background:#2563eb}.purchase-monitor-table tr.done .purchase-sheet-mini-progress>span i{background:#16a34a}.purchase-sheet-mini-progress>b{font-size:10px;color:#667085}
.purchase-monitor-log-list{padding:8px 12px;overflow:auto;flex:1}.purchase-monitor-log-list>div{display:flex;gap:7px;padding:7px 0;border-bottom:1px dashed #e2e8f0;font-size:11px;line-height:1.45;color:#667085}.purchase-monitor-log-list>div:last-child{border-bottom:0}.purchase-monitor-log-list i{font-size:7px;color:#2563eb;margin-top:5px;flex:0 0 auto}.purchase-monitor-log-list>div:first-child i{color:#16a34a}.purchase-monitor-log-list span{min-width:0;overflow-wrap:anywhere}.purchase-monitor-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.purchase-monitor-detail{padding:11px 13px;border:1px solid #e6ebf2;border-radius:12px;background:#fff;min-width:0}.purchase-monitor-detail small{display:block;font-size:11px;color:#667085}.purchase-monitor-detail b{display:block;margin-top:3px;font-size:13px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-monitor-detail span{display:block;margin-top:3px;font-size:10px;color:#98a2b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-monitor-foot{display:flex;align-items:center;gap:9px;margin-top:12px;padding:10px 12px;border-radius:11px;font-size:11px}.purchase-monitor-foot i{font-size:16px;flex:0 0 auto}.purchase-monitor-foot div{min-width:0}.purchase-monitor-foot b{display:block;font-size:12px}.purchase-monitor-foot span{display:block;margin-top:2px}.purchase-monitor-foot.info{background:#eff6ff;color:#2563eb;border:1px solid #dbeafe}.purchase-monitor-foot.warning{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}@keyframes purchaseMonitorSpin{to{transform:rotate(360deg)}}
@media(max-width:1100px){.purchase-monitor-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.purchase-monitor-body{grid-template-columns:1fr}.purchase-monitor-log{max-height:240px}.purchase-monitor-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:768px){.purchase-import-monitor{padding:14px;border-radius:15px}.purchase-monitor-head{align-items:flex-start;flex-direction:column;gap:8px}.purchase-monitor-title{width:100%;align-items:flex-start;white-space:normal;flex-wrap:wrap}.purchase-monitor-title strong{font-size:18px}.purchase-monitor-current-label{flex-basis:100%;font-size:12px;white-space:normal}.purchase-monitor-head-right{width:100%;justify-content:space-between}.purchase-monitor-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-monitor-summary>div{padding:10px 11px}.purchase-monitor-summary b{font-size:17px}.purchase-monitor-section-head{flex-wrap:wrap;padding:8px 10px;height:auto}.purchase-monitor-legend{width:100%;margin-left:0}.purchase-monitor-table{min-width:640px}.purchase-monitor-detail-grid{grid-template-columns:1fr}.purchase-monitor-current small{white-space:normal}}
/* R17 导入任务中心 */
.import-task-monitor{margin-top:14px;border:1px solid #e5eaf1;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.06);overflow:hidden}.import-task-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:15px 16px 10px;background:linear-gradient(180deg,#f8fbff,#fff)}.import-task-head>div:first-child{display:flex;flex-direction:column;gap:3px}.import-task-head strong{font-size:15px;color:#172033}.import-task-head small{font-size:11px;color:#667085}.import-task-live{font-size:10px;color:#16a34a;margin-left:8px}.import-task-head-stats{font-size:11px;color:#667085}.import-task-head-stats b{font-size:18px;color:#1d4ed8}.import-task-progress{padding:0 16px 10px}.import-task-progress-top{display:flex;justify-content:space-between;font-size:11px;color:#667085;margin-bottom:5px}.import-task-progress-top b{color:#1d4ed8}.import-task-progress .progress,.purchase-monitor-progress .progress{height:7px;border-radius:99px;background:#edf1f6}.import-task-progress .progress-bar,.purchase-monitor-progress .progress-bar{border-radius:99px}.import-task-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:0 16px 13px}.import-task-kpis>div{padding:8px 9px;border:1px solid #e8edf3;border-radius:10px;background:#f8fafc;min-width:0}.import-task-kpis small{display:block;color:#667085;font-size:10px}.import-task-kpis b{display:block;margin-top:2px;color:#172033;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-task-body{display:grid;grid-template-columns:1.25fr .75fr;border-top:1px solid #edf0f4}.import-task-queue,.import-task-log{padding:12px 14px;min-width:0}.import-task-log{border-left:1px solid #edf0f4;background:#fafbfc;max-height:330px;overflow:auto}.import-task-section-title{font-size:11px;font-weight:800;color:#475467;margin-bottom:7px}.import-task-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:9px;margin-bottom:4px;background:#f8fafc;border:1px solid transparent}.import-task-row.running{background:#eff6ff;border-color:#bfdbfe}.import-task-row.done{background:#f0fdf4}.import-task-row.failed{background:#fff1f0}.import-task-dot{width:22px;text-align:center;font-weight:800;color:#98a2b3}.import-task-row.running .import-task-dot{color:#2563eb;animation:purchaseMonitorSpin 1s linear infinite}.import-task-row.done .import-task-dot{color:#16a34a}.import-task-row.failed .import-task-dot{color:#dc2626}.import-task-row>div{flex:1;min-width:0}.import-task-row b{display:block;font-size:11px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-task-row small{display:block;color:#667085;font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-task-row em{font-style:normal;font-size:9px;color:#667085;white-space:nowrap}.import-task-row.running em{color:#2563eb}.import-task-row.done em{color:#16a34a}.import-task-row.failed em{color:#dc2626}.import-task-log>div:not(.import-task-section-title){font-size:10px;line-height:1.55;padding:3px 0;border-bottom:1px dashed #e6eaf0;color:#667085}.import-task-log time{font-variant-numeric:tabular-nums;color:#98a2b3;margin-right:6px}.import-task-log .success{color:#15803d}.import-task-warning{padding:9px 14px;background:#fff7ed;color:#c2410c;font-size:10px;border-top:1px solid #fed7aa}.purchase-monitor-progress{padding:0 0 10px}.purchase-monitor-progress>div:first-child{display:flex;justify-content:space-between;font-size:11px;color:#667085;margin-bottom:5px}.purchase-monitor-progress b{color:#1d4ed8}.purchase-monitor-current{display:flex;gap:10px;align-items:center;padding:10px 11px;margin-bottom:10px;border-radius:11px;background:#eff6ff;border:1px solid #dbeafe}.purchase-monitor-current>i{font-size:17px;color:#2563eb}.purchase-monitor-current div{min-width:0}.purchase-monitor-current b{display:block;font-size:11px;color:#172033}.purchase-monitor-current small{display:block;font-size:9px;color:#667085;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.purchase-monitor-body{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.purchase-monitor-section-title{font-size:10px;font-weight:800;color:#475467;margin-bottom:6px}.purchase-monitor-log{padding:9px;border:1px solid #edf0f4;border-radius:10px;background:#fafbfc;max-height:260px;overflow:auto}.purchase-monitor-log>div:not(.purchase-monitor-section-title){font-size:9px;color:#667085;padding:3px 0;border-bottom:1px dashed #e6eaf0}.purchase-monitor-item{min-height:36px}.purchase-monitor-item.running .purchase-monitor-icon i{animation:purchaseMonitorSpin 1s linear infinite}@media(max-width:900px){.import-task-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.import-task-body,.purchase-monitor-body{grid-template-columns:1fr}.import-task-log{border-left:0;border-top:1px solid #edf0f4}.purchase-monitor-summary{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.import-task-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.import-task-head{flex-direction:column}.purchase-monitor-summary{grid-template-columns:repeat(2,1fr)}}
/* R18 production UI hardening: stable Chinese typography, no accidental label wrapping. */
.purchase-import-monitor,.purchase-import-monitor *{box-sizing:border-box}
.purchase-monitor-head{min-height:34px}
.purchase-monitor-title strong,.purchase-monitor-live,.purchase-monitor-current-label,.purchase-monitor-head-right,.purchase-monitor-head-right b{font-variant-numeric:tabular-nums}
.purchase-monitor-title strong{white-space:nowrap;flex:0 0 auto}
.purchase-monitor-live{flex:0 0 auto}
.purchase-monitor-current-label{min-width:0;flex:1}
.purchase-monitor-head-right{min-width:max-content}
.purchase-monitor-summary>div{overflow:hidden}
.purchase-monitor-summary b{font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.purchase-monitor-table th,.purchase-monitor-table td{font-variant-numeric:tabular-nums}
.purchase-monitor-table td:nth-child(n+3){white-space:nowrap}
.purchase-monitor-table td:nth-child(2)>b{word-break:keep-all}
.purchase-monitor-log-list span,.purchase-monitor-detail span,.purchase-monitor-current small{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:900px){.purchase-monitor-head-right{width:auto;min-width:0}.purchase-monitor-title{max-width:100%}}
@media(max-width:600px){.purchase-monitor-head-right{width:100%;justify-content:space-between}.purchase-monitor-title strong{font-size:18px}.purchase-monitor-current-label{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.purchase-monitor-table tr.running .purchase-monitor-status-icon i,.purchase-monitor-current>i.bi-arrow-repeat,.progress-bar-animated{animation:none!important}}


/* R18.2 global UX fixes */
body.auth-pending{overflow:hidden;background:#f7f9fc}
body.auth-pending #pageContainer{visibility:hidden}
body.auth-pending::before{content:'正在验证登录状态…';position:fixed;inset:0;display:flex;align-items:center;justify-content:center;color:#667085;font-size:14px;font-weight:650;letter-spacing:.02em;z-index:9998;background:linear-gradient(180deg,#f8fafc,#eef2f7)}
.pricing-sort-control{display:flex;align-items:center;gap:7px;height:40px;padding:0 7px 0 11px;border:1px solid #e4e9f0;border-radius:10px;background:#f8fafc;color:#667085;font-size:12px;font-weight:700;white-space:nowrap}
.pricing-sort-control .form-select{min-width:105px;height:34px;padding:4px 28px 4px 9px;border:0;background:#fff;font-size:12px;font-weight:700;box-shadow:none}
.cargo-table .cargo-image-col{width:76px}.cargo-image-cell{width:76px}.cargo-product-thumb{display:block;width:50px;height:50px;object-fit:cover;border-radius:10px;border:1px solid #e7ebf1;background:#f8fafc}.cargo-no-image{display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;border:1px dashed #d8dee8;border-radius:10px;background:#f8fafc;color:#98a2b3;font-size:10px}
@media(max-width:768px){.pricing-sort-control{flex:1 1 auto}.pricing-sort-control .form-select{min-width:95px}.cargo-product-thumb,.cargo-no-image{width:44px;height:44px}}

/* ========== R18.3 标题映射页面重构 ========== */
.title-mapping-page{max-width:1480px;margin:0 auto;padding-bottom:28px}.title-mapping-page.embedded{padding:0}.title-mapping-page-header{align-items:center;gap:24px}.title-mapping-header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.mapping-status-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;font-size:.76rem;font-weight:800;white-space:nowrap}.mapping-status-badge.clean{background:#ecfdf3;color:#16805a}.mapping-status-badge.dirty{background:#fff7ed;color:#b45309}.title-mapping-context-card{padding:18px 20px;margin-bottom:14px}.title-mapping-context-grid{display:grid;grid-template-columns:minmax(190px,1fr) minmax(210px,1fr) minmax(280px,1.4fr) auto;gap:14px;align-items:end}.title-mapping-context-info{min-height:42px;padding:0 4px;display:flex;flex-direction:column;justify-content:center}.context-label{font-size:.7rem;color:#8a94a6;font-weight:800;letter-spacing:.04em}.title-mapping-context-info strong{font-size:.88rem;color:#182230;margin:2px 0}.title-mapping-context-info small{font-size:.72rem;color:#7b8799}.title-mapping-context-actions{display:flex;gap:8px;justify-content:flex-end}.mapping-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.mapping-stat-card{display:flex;gap:12px;align-items:center;padding:15px 16px;border:1px solid #e8edf4;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.035)}.mapping-stat-icon{width:40px;height:40px;border-radius:12px;background:#eef4ff;color:#4267d8;display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto}.mapping-stat-card>div:last-child{min-width:0}.mapping-stat-card span,.mapping-stat-card small{display:block;color:#7b8799}.mapping-stat-card span{font-size:.72rem;font-weight:700}.mapping-stat-card strong{display:block;color:#172033;font-size:1.05rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapping-stat-card small{font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapping-section-card{padding:20px;margin-bottom:14px}.mapping-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.mapping-section-head h5{margin:3px 0 4px;color:#172033;font-weight:850}.mapping-section-head p{margin:0;color:#7b8799;font-size:.78rem;line-height:1.6;max-width:820px}.eyebrow{font-size:.65rem;font-weight:900;letter-spacing:.13em;color:#7690c9;text-transform:uppercase}.mapping-required-note,.mapping-progress-note{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#f4f7fb;color:#64748b;font-size:.72rem;font-weight:800;white-space:nowrap}.mapping-required-note{color:#b45309;background:#fff8eb}.master-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.master-field-card{border:1px solid #e5eaf2;border-radius:16px;padding:15px;background:#fbfcfe;transition:border-color .15s,box-shadow .15s}.master-field-card.is-ready{border-color:#d9eee4;background:#fbfffd}.master-field-card.is-missing{border-color:#f2dfc4;background:#fffdf9}.master-field-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:14px}.master-field-card-head strong{display:block;font-size:.72rem;color:#7b8799;font-weight:600;margin-top:3px}.mapping-field-key{display:block;font-size:.96rem;font-weight:850;color:#172033}.field-state{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:800;white-space:nowrap}.field-state.ready{color:#16805a}.field-state.missing{color:#b45309}.field-tip{font-size:.68rem;color:#98a2b3;margin-top:6px}.custom-title-editor{margin-top:14px;border-top:1px dashed #e3e8ef;padding-top:16px}.custom-title-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.custom-title-head strong{display:block;color:#172033;font-size:.86rem}.custom-title-head small{display:block;color:#8a94a6;font-size:.72rem;margin-top:3px}.mapping-count-badge{padding:4px 8px;border-radius:999px;background:#eef4ff;color:#4267d8;font-size:.68rem;font-weight:800}.custom-title-input-wrap textarea{resize:vertical;min-height:78px}.custom-title-help{font-size:.68rem;color:#98a2b3;margin-top:6px}.mapping-matrix-wrap{overflow-x:auto;border:1px solid #e5eaf1;border-radius:15px}.mapping-matrix{min-width:780px}.mapping-matrix-row{display:grid;grid-template-columns:180px 190px repeat(var(--mapping-others,1),minmax(180px,1fr));border-top:1px solid #edf0f4}.mapping-matrix-row:first-child{border-top:0}.mapping-matrix-row>div{padding:12px;border-left:1px solid #edf0f4;min-width:0}.mapping-matrix-row>div:first-child{border-left:0}.mapping-matrix-head{background:#f7f9fc;color:#64748b;font-size:.7rem;font-weight:850}.mapping-field-cell strong{display:block;color:#172033;font-size:.82rem}.mapping-field-cell small{display:block;color:#98a2b3;font-size:.67rem;margin-top:4px}.mapping-master-cell{display:flex;align-items:center}.mapping-input-cell{display:flex;align-items:center}.mapping-input-cell input{min-width:0}.mapping-platform-name-mobile{display:none}.mapping-no-other{display:flex;align-items:center;gap:12px;padding:22px;border:1px dashed #dbe2ec;border-radius:14px;background:#fafcff}.mapping-no-other>i{font-size:25px;color:#6c84d8}.mapping-no-other strong{display:block;color:#273247;font-size:.84rem}.mapping-no-other span{display:block;color:#8a94a6;font-size:.72rem;margin-top:4px}.custom-mapping-table{display:grid;gap:9px}.custom-map-row{display:grid;grid-template-columns:minmax(170px,1fr) repeat(var(--custom-platform-count,1),minmax(170px,1fr)) 40px;gap:9px;align-items:end;padding:12px;border:1px solid #e7ebf1;border-radius:14px;background:#fbfcfe}.custom-map-row label{display:block;color:#7b8799;font-size:.68rem;font-weight:750;margin-bottom:5px}.custom-map-row label span{font-weight:500;color:#a0a7b3}.custom-map-row .remove-custom{height:38px}.mapping-empty-row{padding:18px;border-radius:14px;background:#f8fafc;color:#98a2b3;text-align:center;font-size:.76rem}.mapping-preview-card{background:linear-gradient(180deg,#fff,#fbfcff)}.mapping-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mapping-preview-item{border:1px solid #e6ebf3;border-radius:14px;padding:13px;background:#fff}.mapping-preview-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}.mapping-preview-title strong{color:#172033;font-size:.82rem}.mapping-preview-title span{font-size:.64rem;color:#4267d8;background:#eef4ff;padding:4px 7px;border-radius:999px}.mapping-preview-values{display:grid;gap:7px}.mapping-preview-values span{display:flex;justify-content:space-between;gap:12px;color:#475569;font-size:.7rem;border-top:1px solid #f0f2f6;padding-top:7px}.mapping-preview-values span:first-child{border-top:0;padding-top:0}.mapping-preview-values b{color:#8a94a6;font-weight:700}.mapping-platform-management{padding:20px}.mapping-platform-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.mapping-platform-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;border:1px solid #e7ebf1;border-radius:14px;background:#fbfcfe}.mapping-platform-info{display:flex;align-items:center;gap:10px;min-width:0}.mapping-platform-info>i{font-size:.65rem}.mapping-platform-info>i.is-master{color:#4f63df}.mapping-platform-info>i.is-other{color:#a5afbd}.mapping-platform-info strong{display:block;color:#172033;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapping-platform-info span{display:block;color:#98a2b3;font-size:.65rem;margin-top:2px}.mapping-platform-actions{display:flex;gap:6px;flex:0 0 auto}.mapping-dialog-form{min-width:min(420px,78vw)}
@media (max-width:1100px){.title-mapping-context-grid{grid-template-columns:1fr 1fr}.title-mapping-context-info{grid-column:1/-1}.title-mapping-context-actions{grid-column:1/-1;justify-content:flex-start}.mapping-overview-grid{grid-template-columns:repeat(2,1fr)}.master-field-grid{grid-template-columns:1fr}.mapping-preview-grid{grid-template-columns:1fr 1fr}.mapping-platform-list{grid-template-columns:1fr}}
@media (max-width:767.98px){.title-mapping-page{padding-bottom:16px}.title-mapping-page-header{align-items:flex-start}.title-mapping-header-actions{width:100%;flex-wrap:wrap}.title-mapping-header-actions .btn{flex:1}.title-mapping-context-card,.mapping-section-card,.mapping-platform-management{padding:14px}.title-mapping-context-grid{grid-template-columns:1fr}.title-mapping-context-info,.title-mapping-context-actions{grid-column:auto}.title-mapping-context-actions{display:grid;grid-template-columns:1fr 1fr}.mapping-overview-grid{grid-template-columns:1fr 1fr;gap:8px}.mapping-stat-card{padding:11px}.mapping-stat-icon{width:34px;height:34px}.mapping-section-head{display:block}.mapping-section-head .mapping-required-note,.mapping-section-head .mapping-progress-note,.mapping-section-head .btn{margin-top:10px}.mapping-matrix{min-width:0}.mapping-matrix-row{display:block}.mapping-matrix-head{display:none}.mapping-matrix-row>div{border-left:0;border-top:1px solid #edf0f4;padding:10px}.mapping-matrix-row>div:first-child{border-top:0}.mapping-master-cell{display:none}.mapping-input-cell{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:center}.mapping-platform-name-mobile{display:block;font-size:.68rem;font-weight:800;color:#64748b}.custom-map-row{grid-template-columns:1fr;padding:12px}.custom-map-row .remove-custom{width:100%}.mapping-preview-grid{grid-template-columns:1fr}.mapping-platform-actions span{display:none}.mapping-platform-actions .btn{width:38px;padding-left:0;padding-right:0}.mapping-status-badge{font-size:.68rem}.mapping-dialog-form{min-width:0}}
@media (max-width:420px){.mapping-overview-grid{grid-template-columns:1fr}.title-mapping-context-actions{grid-template-columns:1fr}.mapping-stat-card strong{font-size:.95rem}}
.field-recommendations{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:8px}.field-recommendations>span{font-size:.66rem;color:#98a2b3}.title-recommend{border:0;background:#eef4ff;color:#4267d8;border-radius:999px;padding:3px 7px;font-size:.62rem;font-weight:700;cursor:pointer}.title-recommend:hover{background:#e4edff}


/* ============================================================
   R18.4 标题映射工作台 UI 重构
   仅作用于 .title-mapping-page，不影响其它页面。
   ============================================================ */
.title-mapping-page{
  --tm-primary:#4f46e5;
  --tm-primary-2:#6366f1;
  --tm-ink:#172033;
  --tm-muted:#718096;
  --tm-line:#e7ebf3;
  --tm-soft:#f7f9fc;
  max-width:1600px;
  margin:0 auto;
  padding:4px 0 36px;
}
.title-mapping-page .page-header{
  padding:4px 2px 18px;
  margin-bottom:12px;
  border-bottom:1px solid #edf0f5;
}
.title-mapping-page .page-header h4{
  margin:3px 0 5px;
  font-size:1.42rem;
  letter-spacing:-.025em;
  color:var(--tm-ink);
}
.title-mapping-page .page-header p{
  font-size:.76rem;
  color:#7b8799;
  max-width:900px;
}
.title-mapping-page .eyebrow{
  color:#7187c5;
  font-size:.62rem;
  letter-spacing:.14em;
}
.title-mapping-page .title-mapping-header-actions{
  gap:9px;
}
.title-mapping-page .mapping-status-badge{
  border:1px solid #d9eee3;
  padding:7px 10px;
}
.title-mapping-page .mapping-status-badge.clean{
  background:#f0fbf5;
  color:#16805a;
}
.title-mapping-page .mapping-status-badge.dirty{
  background:#fff8ed;
  border-color:#f5dfbb;
  color:#ad6812;
}
.title-mapping-page .title-mapping-context-card{
  padding:16px 18px;
  margin-bottom:12px;
  border:1px solid var(--tm-line);
  border-radius:15px;
  box-shadow:0 5px 18px rgba(20,32,55,.035);
}
.title-mapping-page .title-mapping-context-grid{
  grid-template-columns:minmax(210px,1fr) minmax(250px,1.15fr) minmax(300px,1.55fr) auto;
  gap:12px;
}
.title-mapping-page .title-mapping-context-info{
  min-height:40px;
  padding:0 6px;
}
.title-mapping-page .context-label{
  color:#98a2b3;
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.title-mapping-page .title-mapping-context-info strong{
  font-size:.8rem;
}
.title-mapping-page .title-mapping-context-info small{
  font-size:.67rem;
  line-height:1.45;
}
.title-mapping-page .title-mapping-context-actions .btn{
  height:38px;
  border-radius:9px;
  padding:0 13px;
  white-space:nowrap;
}
.title-mapping-page .mapping-overview-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.title-mapping-page .mapping-stat-card{
  min-height:72px;
  padding:12px 14px;
  border-radius:13px;
  box-shadow:none;
  background:#fff;
}
.title-mapping-page .mapping-stat-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  font-size:16px;
}
.title-mapping-page .mapping-stat-card span{
  font-size:.65rem;
}
.title-mapping-page .mapping-stat-card strong{
  font-size:.98rem;
}
.title-mapping-page .mapping-stat-card small{
  font-size:.63rem;
  margin-top:1px;
}
.title-mapping-page .mapping-section-card,
.title-mapping-page .mapping-platform-management{
  padding:17px 18px;
  margin-bottom:12px;
  border:1px solid var(--tm-line);
  border-radius:15px;
  box-shadow:0 5px 18px rgba(20,32,55,.028);
  background:#fff;
}
.title-mapping-page .mapping-section-head{
  margin-bottom:13px;
  gap:12px;
}
.title-mapping-page .mapping-section-head h5{
  font-size:.98rem;
  letter-spacing:-.01em;
}
.title-mapping-page .mapping-section-head p{
  font-size:.7rem;
  line-height:1.5;
  max-width:900px;
}
.title-mapping-page .mapping-required-note,
.title-mapping-page .mapping-progress-note{
  padding:6px 9px;
  font-size:.65rem;
}
.title-mapping-page .master-field-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.title-mapping-page .master-field-card{
  padding:12px;
  border-radius:12px;
  background:#fafbfd;
}
.title-mapping-page .master-field-card-head{
  margin-bottom:9px;
}
.title-mapping-page .mapping-field-key{
  font-size:.84rem;
}
.title-mapping-page .master-field-card-head strong{
  font-size:.65rem;
}
.title-mapping-page .field-state{
  font-size:.62rem;
}
.title-mapping-page .master-field-card .form-label{
  margin-bottom:4px;
  font-size:.64rem;
}
.title-mapping-page .master-field-card .form-control{
  min-height:35px;
  height:35px;
  border-radius:8px;
  font-size:.72rem;
}
.title-mapping-page .field-tip{
  font-size:.61rem;
  margin-top:4px;
}
.title-mapping-page .field-recommendations{
  gap:4px;
  margin-top:6px;
}
.title-mapping-page .title-recommend{
  padding:3px 6px;
  font-size:.58rem;
}
.title-mapping-page .custom-title-editor{
  margin-top:10px;
  padding-top:11px;
}
.title-mapping-page .custom-title-head strong{
  font-size:.75rem;
}
.title-mapping-page .custom-title-head small,
.title-mapping-page .custom-title-help{
  font-size:.63rem;
}
.title-mapping-page #masterCustomTitles{
  min-height:58px;
  border-radius:9px;
  font-size:.72rem;
}
.title-mapping-page .mapping-matrix-wrap{
  border-radius:11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.title-mapping-page .mapping-matrix{
  min-width:760px;
}
.title-mapping-page .mapping-matrix-row{
  grid-template-columns:150px 165px repeat(var(--mapping-others,1),minmax(165px,1fr));
}
.title-mapping-page .mapping-matrix-row>div{
  padding:10px;
}
.title-mapping-page .mapping-matrix-head{
  background:#f7f9fc;
  font-size:.64rem;
  color:#667085;
}
.title-mapping-page .mapping-field-cell strong{
  font-size:.74rem;
}
.title-mapping-page .mapping-field-cell small{
  font-size:.6rem;
  margin-top:3px;
}
.title-mapping-page .title-chip{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 8px;
  border-radius:7px;
  background:#eef4ff;
  color:#3e5fc7;
  font-size:.65rem;
  font-weight:750;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.title-mapping-page .mapping-input-cell .form-control{
  height:34px;
  min-height:34px;
  border-radius:8px;
  font-size:.67rem;
}
.title-mapping-page .mapping-input-cell .form-control:focus{
  border-color:#9aaaf5;
  box-shadow:0 0 0 3px rgba(79,70,229,.08);
}
.title-mapping-page .custom-mapping-table{
  display:block;
  overflow-x:auto;
  border:1px solid var(--tm-line);
  border-radius:11px;
}
.title-mapping-page .custom-map-row{
  grid-template-columns:minmax(150px,1fr) repeat(var(--custom-platform-count,1),minmax(155px,1fr)) 38px;
  gap:8px;
  padding:9px;
  border:0;
  border-bottom:1px solid #edf0f4;
  border-radius:0;
  background:#fff;
}
.title-mapping-page .custom-map-row:last-child{
  border-bottom:0;
}
.title-mapping-page .custom-map-row label{
  font-size:.62rem;
  margin-bottom:4px;
}
.title-mapping-page .custom-map-row .form-control{
  height:34px;
  min-height:34px;
  border-radius:8px;
  font-size:.67rem;
}
.title-mapping-page .mapping-preview-card{
  background:linear-gradient(180deg,#fff 0%,#fbfcff 100%);
}
.title-mapping-page .mapping-preview-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.title-mapping-page .mapping-preview-item{
  padding:11px;
  border-radius:11px;
}
.title-mapping-page .mapping-preview-title{
  margin-bottom:7px;
}
.title-mapping-page .mapping-preview-title strong{
  font-size:.72rem;
}
.title-mapping-page .mapping-preview-title span{
  padding:3px 6px;
  font-size:.58rem;
}
.title-mapping-page .mapping-preview-values{
  gap:5px;
}
.title-mapping-page .mapping-preview-values span{
  font-size:.62rem;
  padding-top:5px;
}
.title-mapping-page .mapping-platform-management{
  padding-top:14px;
}
.title-mapping-page .mapping-platform-management .mapping-section-head{
  margin-bottom:9px;
}
.title-mapping-page .mapping-platform-list{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.title-mapping-page .mapping-platform-row{
  min-height:48px;
  padding:8px 10px;
  border-radius:10px;
  background:#fbfcfe;
}
.title-mapping-page .mapping-platform-info{
  gap:8px;
}
.title-mapping-page .mapping-platform-info strong{
  font-size:.7rem;
}
.title-mapping-page .mapping-platform-info span{
  font-size:.59rem;
}
.title-mapping-page .mapping-platform-actions .btn{
  height:30px;
  padding:0 8px;
  border-radius:7px;
  font-size:.61rem;
}
.title-mapping-page .mapping-platform-actions{
  gap:4px;
}
/* 顶部保存按钮保持视觉主操作；嵌入模式不重复制造大标题 */
.title-mapping-page.embedded .title-mapping-context-card{
  margin-top:0;
}
.title-mapping-page.embedded .mapping-overview-grid{
  margin-top:0;
}
/* 防止中文被无意义拆字，数字/单位尽量保持在一起 */
.title-mapping-page .mapping-section-head h5,
.title-mapping-page .mapping-stat-card strong,
.title-mapping-page .mapping-platform-info strong,
.title-mapping-page .field-state,
.title-mapping-page .mapping-required-note{
  word-break:keep-all;
  overflow-wrap:normal;
}
.title-mapping-page input,
.title-mapping-page select,
.title-mapping-page button{
  word-break:keep-all;
}
/* 过窄窗口只在标题映射页面启用，不触碰全局布局 */
@media (max-width:1200px){
  .title-mapping-page .title-mapping-context-grid{
    grid-template-columns:1fr 1fr;
  }
  .title-mapping-page .title-mapping-context-info{
    grid-column:1/-1;
  }
  .title-mapping-page .title-mapping-context-actions{
    grid-column:1/-1;
    justify-content:flex-start;
  }
  .title-mapping-page .mapping-platform-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:900px){
  .title-mapping-page .mapping-overview-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .title-mapping-page .master-field-grid,
  .title-mapping-page .mapping-preview-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:767.98px){
  .title-mapping-page{
    padding-bottom:16px;
  }
  .title-mapping-page .page-header{
    padding-bottom:13px;
  }
  .title-mapping-page .page-header h4{
    font-size:1.15rem;
  }
  .title-mapping-page .title-mapping-context-card,
  .title-mapping-page .mapping-section-card,
  .title-mapping-page .mapping-platform-management{
    padding:12px;
    border-radius:12px;
  }
  .title-mapping-page .title-mapping-context-grid{
    grid-template-columns:1fr;
  }
  .title-mapping-page .title-mapping-context-info,
  .title-mapping-page .title-mapping-context-actions{
    grid-column:auto;
  }
  .title-mapping-page .title-mapping-context-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .title-mapping-page .mapping-overview-grid{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }
  .title-mapping-page .mapping-stat-card{
    padding:9px 10px;
    min-height:62px;
  }
  .title-mapping-page .mapping-stat-icon{
    width:30px;height:30px;font-size:14px;
  }
  .title-mapping-page .mapping-stat-card strong{
    font-size:.86rem;
  }
  .title-mapping-page .mapping-section-head{
    display:block;
  }
  .title-mapping-page .mapping-section-head .mapping-required-note,
  .title-mapping-page .mapping-section-head .mapping-progress-note,
  .title-mapping-page .mapping-section-head .btn{
    margin-top:8px;
  }
  .title-mapping-page .mapping-matrix{
    min-width:0;
  }
  .title-mapping-page .mapping-matrix-row{
    display:block;
  }
  .title-mapping-page .mapping-matrix-head{
    display:none;
  }
  .title-mapping-page .mapping-matrix-row>div{
    border-left:0;
    border-top:1px solid #edf0f4;
    padding:9px;
  }
  .title-mapping-page .mapping-matrix-row>div:first-child{
    border-top:0;
  }
  .title-mapping-page .mapping-master-cell{
    display:none;
  }
  .title-mapping-page .mapping-input-cell{
    display:grid;
    grid-template-columns:78px 1fr;
    gap:8px;
  }
  .title-mapping-page .mapping-platform-name-mobile{
    display:block;
    font-size:.62rem;
    font-weight:800;
    color:#667085;
  }
  .title-mapping-page .custom-mapping-table{
    overflow:visible;
    border:0;
  }
  .title-mapping-page .custom-map-row{
    grid-template-columns:1fr;
    border:1px solid #e7ebf1;
    border-radius:10px;
    margin-bottom:7px;
  }
  .title-mapping-page .custom-map-row:last-child{
    margin-bottom:0;
  }
  .title-mapping-page .mapping-platform-list{
    grid-template-columns:1fr;
  }
}
@media (max-width:420px){
  .title-mapping-page .mapping-overview-grid{
    grid-template-columns:1fr;
  }
  .title-mapping-page .title-mapping-context-actions{
    grid-template-columns:1fr;
  }
}


/* R18.9 标题映射：自定义标题重构，仅作用于标题映射页面 */
.title-mapping-page .master-config-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:16px;align-items:start}
.title-mapping-page .master-core-panel,.title-mapping-page .master-custom-panel{border:1px solid #e7ebf1;border-radius:16px;background:#fff;padding:15px}
.title-mapping-page .subsection-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.title-mapping-page .subsection-title strong{display:block;color:#172033;font-size:.86rem;font-weight:850}
.title-mapping-page .subsection-title span{display:block;color:#8a94a6;font-size:.68rem;margin-top:3px}
.title-mapping-page .master-custom-title-list{display:grid;gap:8px}
.title-mapping-page .master-custom-title-row{display:grid;grid-template-columns:26px minmax(0,1fr) 38px;gap:8px;align-items:center;padding:8px;border:1px solid #e7ebf1;border-radius:12px;background:#fbfcfe}
.title-mapping-page .custom-title-index{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#eef4ff;color:#4267d8;font-size:.66rem;font-weight:850}
.title-mapping-page .master-custom-title-input{height:38px;font-size:.78rem}
.title-mapping-page .master-custom-title-row .btn{width:38px;height:38px;padding:0}
.title-mapping-page .custom-title-empty{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px dashed #dbe2ec;border-radius:14px;background:#fafcff;color:#98a2b3}
.title-mapping-page .custom-title-empty i{font-size:24px;color:#7b8ed8}
.title-mapping-page .custom-title-empty span{font-size:.78rem;color:#667085;font-weight:750}
.title-mapping-page .custom-title-empty small{font-size:.68rem;color:#98a2b3}
.title-mapping-page .custom-title-empty.compact{min-height:70px;flex-direction:row;justify-content:flex-start;padding:12px}
.title-mapping-page .custom-title-empty.compact i{font-size:17px}
.title-mapping-page .custom-title-help{display:flex;align-items:flex-start;gap:6px;margin-top:10px;padding:9px 10px;border-radius:10px;background:#f8fafc;color:#7b8799;font-size:.67rem;line-height:1.5}
.title-mapping-page .custom-title-help i{color:#f59e0b;margin-top:1px}
.title-mapping-page .other-platform-config-list{display:grid;gap:12px}
.title-mapping-page .other-platform-config-card{border:1px solid #e5eaf1;border-radius:16px;background:#fbfcfe;overflow:hidden}
.title-mapping-page .other-platform-config-card.is-complete{border-color:#d8eee4}
.title-mapping-page .other-platform-config-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid #edf0f4;background:#fff}
.title-mapping-page .other-platform-config-title{display:flex;align-items:center;gap:9px;min-width:0}
.title-mapping-page .other-platform-config-title .platform-dot{width:9px;height:9px;border-radius:50%;background:#a8b2c2;box-shadow:0 0 0 4px #f1f3f7;flex:0 0 auto}
.title-mapping-page .other-platform-config-card.is-complete .platform-dot{background:#18a36f;box-shadow:0 0 0 4px #eaf8f1}
.title-mapping-page .other-platform-config-title strong{display:block;color:#172033;font-size:.86rem;font-weight:850}
.title-mapping-page .other-platform-config-title small{display:block;color:#98a2b3;font-size:.66rem;margin-top:2px}
.title-mapping-page .platform-config-state{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:.65rem;font-weight:800;white-space:nowrap}
.title-mapping-page .platform-config-state.ready{background:#ecfdf3;color:#16805a}.title-mapping-page .platform-config-state.pending{background:#fff7ed;color:#b45309}
.title-mapping-page .other-platform-core-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:13px 15px}
.title-mapping-page .other-core-item{min-width:0}.title-mapping-page .other-core-item label{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:5px;color:#344054;font-size:.7rem;font-weight:800}.title-mapping-page .other-core-item label span{font-weight:500;color:#98a2b3;font-size:.61rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .other-core-item .form-control{height:37px;font-size:.75rem}
.title-mapping-page .other-custom-block{margin:0 15px 12px;border-top:1px dashed #dfe5ed;padding-top:12px}
.title-mapping-page .other-custom-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.title-mapping-page .other-custom-head strong{display:block;color:#172033;font-size:.8rem;font-weight:850}.title-mapping-page .other-custom-head span{display:block;color:#8a94a6;font-size:.64rem;margin-top:2px}.title-mapping-page .custom-required-note{padding:4px 7px;border-radius:999px;background:#eef4ff;color:#4267d8!important;font-size:.62rem!important;font-weight:800;white-space:nowrap}
.title-mapping-page .other-custom-list{display:grid;gap:7px}.title-mapping-page .other-custom-row{display:grid;grid-template-columns:minmax(130px,.55fr) 22px minmax(180px,1fr);gap:8px;align-items:center;padding:8px;border:1px solid #e7ebf1;border-radius:11px;background:#fff}.title-mapping-page .other-custom-master-name{min-width:0}.title-mapping-page .custom-name-label{display:block;color:#273247;font-size:.73rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.title-mapping-page .other-custom-master-name small{display:block;color:#a0a7b3;font-size:.61rem;margin-top:2px}.title-mapping-page .custom-arrow{display:grid;place-items:center;color:#8b9bd8;font-size:.78rem}.title-mapping-page .other-custom-row .form-control{height:36px;font-size:.73rem}.title-mapping-page .other-platform-add-custom{display:flex;align-items:center;gap:9px;padding:0 15px 14px}.title-mapping-page .other-platform-add-custom .btn{white-space:nowrap}.title-mapping-page .other-platform-add-custom small{color:#98a2b3;font-size:.62rem;line-height:1.45}
@media(max-width:1100px){.title-mapping-page .master-config-layout{grid-template-columns:1fr}.title-mapping-page .other-platform-core-grid{grid-template-columns:1fr 1fr}}
@media(max-width:767.98px){.title-mapping-page .master-config-layout{grid-template-columns:1fr}.title-mapping-page .master-core-panel,.title-mapping-page .master-custom-panel{padding:12px}.title-mapping-page .other-platform-core-grid{grid-template-columns:1fr;padding:11px 12px}.title-mapping-page .other-custom-block{margin:0 12px 10px}.title-mapping-page .other-custom-row{grid-template-columns:1fr 18px 1.35fr}.title-mapping-page .other-platform-add-custom{padding:0 12px 12px;align-items:flex-start;flex-direction:column}.title-mapping-page .subsection-title{align-items:flex-start}.title-mapping-page .subsection-title .btn{flex:0 0 auto}}
@media(max-width:480px){.title-mapping-page .master-custom-title-row{grid-template-columns:24px minmax(0,1fr) 34px;padding:6px}.title-mapping-page .master-custom-title-row .btn{width:34px;height:36px}.title-mapping-page .master-custom-title-input{height:36px}.title-mapping-page .other-custom-row{grid-template-columns:1fr;gap:6px}.title-mapping-page .custom-arrow{display:none}.title-mapping-page .other-custom-row .form-control{height:36px}.title-mapping-page .other-custom-head{align-items:flex-start}}

/* R19 标题映射统一平台 UI：仅作用于标题映射页面 */
.title-mapping-page .mapping-platform-tabs{padding:14px 16px;margin-bottom:14px}
.title-mapping-page .mapping-platform-tabs-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}
.title-mapping-page .mapping-platform-tabs-head h5{margin:2px 0 3px;color:#172033;font-weight:850;font-size:.92rem}
.title-mapping-page .mapping-platform-tabs-head p{margin:0;color:#8a94a6;font-size:.68rem}
.title-mapping-page .mapping-platform-tab-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.title-mapping-page .mapping-platform-tab{appearance:none;border:1px solid #e5eaf1;background:#fff;border-radius:12px;padding:10px 11px;display:flex;align-items:center;gap:9px;text-align:left;color:#273247;transition:.18s ease;min-width:0}
.title-mapping-page .mapping-platform-tab:hover{border-color:#b8c4ff;box-shadow:0 4px 14px rgba(65,85,180,.08)}
.title-mapping-page .mapping-platform-tab.is-active{border-color:#6366f1;box-shadow:0 0 0 2px rgba(99,102,241,.08);background:#fbfbff}
.title-mapping-page .mapping-platform-tab.is-master{border-color:#b9a7ff;background:linear-gradient(135deg,#faf8ff,#fff);box-shadow:inset 0 0 0 1px rgba(112,82,240,.05)}
.title-mapping-page .mapping-platform-tab-mark{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#f0f3ff;color:#5968dc;font-weight:900;flex:0 0 auto}
.title-mapping-page .mapping-platform-tab.is-master .mapping-platform-tab-mark{background:#fff1cf;color:#c98500}
.title-mapping-page .mapping-platform-tab strong{display:block;font-size:.73rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .mapping-platform-tab small{display:block;color:#98a2b3;font-size:.59rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .mapping-platform-tab>i{margin-left:auto;color:#1b9a69;font-size:.72rem}
.title-mapping-page .platform-config-unified{scroll-margin-top:14px}
.title-mapping-page .platform-config-unified:not(.is-active-platform){border-color:#e7ebf1}
.title-mapping-page .platform-config-unified.is-master-platform{border:1.5px solid #8f7af7;box-shadow:0 0 0 3px rgba(111,86,232,.055),0 10px 30px rgba(40,50,90,.05);background:#fff}
.title-mapping-page .unified-platform-head{align-items:flex-start}
.title-mapping-page .unified-platform-title h5{font-size:.94rem;margin:3px 0 3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.title-mapping-page .master-highlight-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:#fff2d6;color:#b66b00;font-size:.58rem;font-weight:850;vertical-align:middle}
.title-mapping-page .mapping-required-note.is-complete{background:#ecfdf3;color:#16805a;border-color:#d7f1e4}
.title-mapping-page .unified-platform-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:14px}
.title-mapping-page .unified-core-panel,.title-mapping-page .unified-custom-panel{border:1px solid #e7ebf1;border-radius:15px;background:#fff;padding:14px}
.title-mapping-page .unified-custom-list{display:grid;gap:9px}
.title-mapping-page .unified-custom-field-card{border:1px solid #e3e8f0;border-radius:12px;background:#fbfcfe;padding:10px}
.title-mapping-page .unified-custom-field-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.title-mapping-page .unified-custom-field-head>div{display:flex;align-items:center;gap:8px;min-width:0}
.title-mapping-page .unified-custom-field-head>div>div{min-width:0}
.title-mapping-page .unified-custom-field-head strong{display:block;color:#273247;font-size:.75rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .unified-custom-field-head small{display:block;color:#98a2b3;font-size:.6rem;margin-top:2px}
.title-mapping-page .unified-custom-field-head .btn{width:34px;height:34px;padding:0;flex:0 0 auto}
.title-mapping-page .unified-custom-field-card>.form-label{display:flex;align-items:center;gap:4px;color:#344054;font-size:.66rem;font-weight:800;margin-bottom:5px}
.title-mapping-page .unified-custom-field-card>.form-label span{color:#98a2b3;font-weight:500}
.title-mapping-page .unified-alias-list{display:grid;gap:6px}
.title-mapping-page .unified-alias-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px;align-items:center}
.title-mapping-page .unified-alias-row .form-control{height:36px;font-size:.73rem;background:#fff}
.title-mapping-page .unified-alias-row .btn{width:34px;height:36px;padding:0}
.title-mapping-page .add-custom-alias{margin-top:7px;height:30px;font-size:.64rem}
.title-mapping-page .unified-custom-panel .custom-title-help{margin-top:9px}
.title-mapping-page .unified-core-panel .master-field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.title-mapping-page .unified-core-panel .master-field-card{min-width:0}
.title-mapping-page .platform-config-unified:not(.is-master-platform) .unified-core-panel,.title-mapping-page .platform-config-unified:not(.is-master-platform) .unified-custom-panel{background:#fcfdff}
.title-mapping-page .platform-config-unified:not(.is-master-platform) .master-field-card{background:#fff}
.title-mapping-page .platform-config-unified.is-active-platform{border-color:#c8c5ff}
@media(max-width:1100px){.title-mapping-page .unified-platform-layout{grid-template-columns:1fr}.title-mapping-page .unified-core-panel .master-field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767.98px){.title-mapping-page .mapping-platform-tabs-head{flex-direction:column}.title-mapping-page .mapping-platform-tab-list{grid-template-columns:1fr 1fr}.title-mapping-page .unified-core-panel .master-field-grid{grid-template-columns:1fr}.title-mapping-page .unified-core-panel,.title-mapping-page .unified-custom-panel{padding:11px}.title-mapping-page .unified-alias-row{grid-template-columns:minmax(0,1fr) 32px}}
@media(max-width:480px){.title-mapping-page .mapping-platform-tab-list{grid-template-columns:1fr}.title-mapping-page .unified-platform-title h5{font-size:.86rem}}

/* R19.2 标题映射统一 UI：严格限定在标题映射页面 */
.title-mapping-page .mapping-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.title-mapping-page .mapping-main-column{min-width:0}
.title-mapping-page .mapping-main-column>.platform-config-unified{display:none;margin-bottom:14px}
.title-mapping-page .mapping-main-column>.platform-config-unified.is-active-platform{display:block}
.title-mapping-page .mapping-platform-sidebar{position:sticky;top:14px;min-width:0}
.title-mapping-page .mapping-platform-sidebar-card{padding:14px}
.title-mapping-page .mapping-sidebar-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:11px}
.title-mapping-page .mapping-sidebar-head h5{margin:2px 0 3px;color:#172033;font-size:.9rem;font-weight:850}
.title-mapping-page .mapping-sidebar-head p{margin:0;color:#98a2b3;font-size:.62rem}
.title-mapping-page .mapping-sidebar-head .btn{width:32px;height:32px;padding:0;display:grid;place-items:center}
.title-mapping-page .mapping-platform-list{display:grid;gap:8px}
.title-mapping-page .mapping-platform-sidebar-row{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:4px;align-items:center;border:1px solid #e6eaf1;border-radius:12px;background:#fff;overflow:hidden;transition:.18s ease}
.title-mapping-page .mapping-platform-sidebar-row:hover{border-color:#c8cfff;box-shadow:0 4px 14px rgba(65,85,180,.07)}
.title-mapping-page .mapping-platform-sidebar-row.is-active{border-color:#6b63ee;box-shadow:0 0 0 2px rgba(99,102,241,.08);background:#fbfbff}
.title-mapping-page .mapping-platform-sidebar-row.is-master{border-color:#c7b7ff;background:linear-gradient(135deg,#fbf9ff,#fff)}
.title-mapping-page .mapping-platform-select{appearance:none;border:0;background:transparent;min-width:0;padding:10px 8px 10px 10px;display:flex;align-items:center;gap:8px;text-align:left;color:#273247}
.title-mapping-page .mapping-platform-tab-mark{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#f0f3ff;color:#5968dc;font-weight:900;flex:0 0 auto}
.title-mapping-page .mapping-platform-sidebar-row.is-master .mapping-platform-tab-mark{background:#fff1cf;color:#c98500}
.title-mapping-page .mapping-platform-sidebar-copy{min-width:0;flex:1}
.title-mapping-page .mapping-platform-sidebar-copy strong{display:block;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .mapping-platform-sidebar-copy small{display:block;margin-top:2px;color:#98a2b3;font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .mapping-platform-sidebar-row.is-master .mapping-platform-sidebar-copy small{color:#b66b00;font-weight:700}
.title-mapping-page .mapping-platform-sidebar-state{font-size:.7rem;color:#1b9a69;flex:0 0 auto}
.title-mapping-page .mapping-platform-sidebar-row:not(.is-active) .mapping-platform-sidebar-state.bi-chevron-right{color:#a6afbd}
.title-mapping-page .mapping-platform-sidebar-actions{display:flex;align-items:center;justify-content:flex-end;padding-right:5px}
.title-mapping-page .mapping-platform-sidebar-actions .btn{width:24px;height:28px;padding:0;display:grid;place-items:center;text-decoration:none}
.title-mapping-page .platform-config-unified{scroll-margin-top:14px}
.title-mapping-page .platform-config-unified.is-master-platform{border:1.5px solid #8f7af7;box-shadow:0 0 0 3px rgba(111,86,232,.055),0 10px 30px rgba(40,50,90,.05);background:#fff}
.title-mapping-page .unified-platform-layout{display:block}
.title-mapping-page .unified-core-panel,.title-mapping-page .unified-custom-panel{border:0;border-radius:0;background:transparent;padding:0}
.title-mapping-page .unified-core-panel{margin-bottom:15px}
.title-mapping-page .unified-custom-panel{border-top:1px solid #edf0f5;padding-top:14px}
.title-mapping-page .unified-core-panel .master-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.title-mapping-page .master-field-card{min-width:0}
.title-mapping-page .unified-custom-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.title-mapping-page .unified-custom-field-card{border:1px solid #dfe5ee;border-radius:12px;background:#fbfcff;padding:11px;min-width:0;transition:.18s ease}
.title-mapping-page .unified-custom-field-card:hover{border-color:#bcc7ff;box-shadow:0 5px 16px rgba(65,85,180,.06)}
.title-mapping-page .unified-custom-field-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}
.title-mapping-page .custom-card-title-wrap{display:flex;align-items:center;gap:8px;min-width:0}
.title-mapping-page .custom-card-title-wrap>div{min-width:0}
.title-mapping-page .custom-card-title-wrap strong{display:block;color:#273247;font-size:.75rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .custom-card-title-wrap small{display:block;color:#98a2b3;font-size:.58rem;margin-top:2px}
.title-mapping-page .custom-title-index{width:25px;height:25px;border-radius:8px;background:#eef2ff;color:#4964d5;display:grid;place-items:center;font-size:.65rem;font-weight:900;flex:0 0 auto}
.title-mapping-page .custom-card-actions{display:flex;gap:1px;flex:0 0 auto}
.title-mapping-page .custom-card-actions .btn{width:28px;height:28px;padding:0;display:grid;place-items:center;text-decoration:none}
.title-mapping-page .unified-alias-chip-list{display:flex;flex-wrap:wrap;gap:5px;min-height:26px}
.title-mapping-page .unified-alias-chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 7px;border-radius:7px;background:#eef3ff;color:#4662d4;font-size:.61rem;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-mapping-page .unified-alias-chip.is-empty{background:#f5f6f8;color:#98a2b3}
.title-mapping-page .custom-title-help{margin-top:10px;padding:8px 10px;border-radius:9px;background:#f7f9fc;color:#8a94a6;font-size:.61rem;line-height:1.5}
.title-mapping-page .custom-title-help i{color:#d59a21;margin-right:5px}
.title-mapping-page .custom-editor-modal{padding-top:2px}
.title-mapping-page .custom-editor-modal .form-label{display:flex;align-items:center;gap:4px;color:#344054;font-size:.68rem;font-weight:800;margin:9px 0 6px}
.title-mapping-page .custom-editor-modal .form-label span{color:#98a2b3;font-weight:500}
.title-mapping-page .custom-editor-name-box{height:38px;display:flex;align-items:center;padding:0 11px;border:1px solid #e1e6ef;border-radius:9px;background:#f7f9fc;color:#273247;font-size:.74rem;font-weight:800}
.title-mapping-page .custom-editor-aliases{display:grid;gap:6px}
.title-mapping-page .custom-editor-alias-row{display:grid;grid-template-columns:24px minmax(0,1fr) 34px;gap:6px;align-items:center}
.title-mapping-page .custom-editor-index{width:24px;height:34px;border-radius:7px;background:#eef2ff;color:#4964d5;display:grid;place-items:center;font-size:.62rem;font-weight:900}
.title-mapping-page .custom-editor-input{height:36px;font-size:.72rem}
.title-mapping-page .custom-editor-remove{width:34px;height:36px;padding:0}
.title-mapping-page .custom-editor-add{margin-top:8px;height:31px;font-size:.64rem}
.title-mapping-page .custom-editor-tip{margin-top:9px;padding:8px 9px;border-radius:8px;background:#f7f9fc;color:#8a94a6;font-size:.6rem;line-height:1.45}
.title-mapping-page .custom-editor-tip i{color:#d59a21;margin-right:4px}
.title-mapping-page .custom-editor-modal-new .custom-editor-alias-row{grid-template-columns:24px minmax(0,1fr) 34px}
@media(max-width:1100px){
  .title-mapping-page .mapping-workspace{grid-template-columns:1fr}
  .title-mapping-page .mapping-platform-sidebar{position:static;grid-row:1}
  .title-mapping-page .mapping-main-column{grid-row:2}
  .title-mapping-page .mapping-platform-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .title-mapping-page .unified-custom-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767.98px){
  .title-mapping-page .mapping-platform-list{grid-template-columns:1fr}
  .title-mapping-page .unified-core-panel .master-field-grid{grid-template-columns:1fr}
  .title-mapping-page .unified-custom-list{grid-template-columns:1fr}
  .title-mapping-page .mapping-platform-sidebar-card{padding:11px}
}

/* R20 标题映射最终版：减少重复信息，平台统一展示；仅作用于标题映射页面 */
.title-mapping-page .title-mapping-context-grid{grid-template-columns:minmax(180px,1fr) minmax(220px,1.15fr) auto;align-items:end}
.title-mapping-page .title-mapping-context-info{display:none}
.title-mapping-page .title-mapping-context-actions{grid-column:auto}
.title-mapping-page .platform-config-unified{padding:16px 18px}
.title-mapping-page .unified-platform-head{margin-bottom:14px}
.title-mapping-page .unified-platform-title .eyebrow{letter-spacing:.08em}
.title-mapping-page .unified-platform-title p{font-size:.68rem;color:#98a2b3;margin:3px 0 0}
.title-mapping-page .unified-core-panel{margin-bottom:13px}
.title-mapping-page .subsection-title{margin-bottom:9px}
.title-mapping-page .subsection-title strong{font-size:.82rem}
.title-mapping-page .subsection-title span{font-size:.62rem;color:#98a2b3}
.title-mapping-page .unified-custom-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.title-mapping-page .unified-custom-field-card{padding:10px}
.title-mapping-page .unified-alias-chip-list{gap:4px}
.title-mapping-page .unified-alias-chip{padding:3px 6px;font-size:.59rem}
.title-mapping-page .custom-title-help{padding:7px 9px;font-size:.59rem}
.title-mapping-page .mapping-platform-sidebar-card{padding:12px}
.title-mapping-page .mapping-sidebar-head{margin-bottom:9px}
.title-mapping-page .mapping-platform-sidebar-row{grid-template-columns:minmax(0,1fr) 48px}
.title-mapping-page .mapping-platform-select{padding:9px 7px 9px 9px}
.title-mapping-page .mapping-platform-sidebar-actions{padding-right:4px}
.title-mapping-page .mapping-preview-card{padding:14px 16px}
.title-mapping-page .mapping-preview-card .mapping-section-head{margin-bottom:10px}
@media(max-width:1100px){
  .title-mapping-page .title-mapping-context-grid{grid-template-columns:1fr 1fr}
  .title-mapping-page .title-mapping-context-actions{grid-column:1/-1;justify-content:flex-start}
  .title-mapping-page .unified-custom-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767.98px){
  .title-mapping-page .title-mapping-context-grid{grid-template-columns:1fr}
  .title-mapping-page .title-mapping-context-actions{grid-column:auto}
  .title-mapping-page .unified-custom-list{grid-template-columns:1fr}
}

/* R20.1 标题映射：自定义标题统一批量编辑、去除重复标题与标准字段常见推荐；仅作用于标题映射页面 */
.title-mapping-page .custom-title-section-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.title-mapping-page .custom-title-section-actions .btn{white-space:nowrap}
.title-mapping-page .unified-custom-field-card{min-height:96px}
.title-mapping-page .unified-custom-field-head{margin-bottom:8px}
.title-mapping-page .unified-alias-chip-list{min-height:22px;align-items:flex-start}
.title-mapping-page .unified-alias-empty{display:inline-flex;align-items:center;padding:3px 7px;border-radius:7px;background:#f6f7fa;color:#a0a8b5;font-size:.59rem}
.title-mapping-page .bulk-custom-editor{min-width:min(720px,82vw);max-height:68vh;overflow:auto;padding-right:2px}
.title-mapping-page .bulk-custom-list{display:grid;gap:9px}
.title-mapping-page .bulk-custom-row{border:1px solid #e4e9f1;border-radius:12px;background:#fbfcff;padding:10px}
.title-mapping-page .bulk-custom-row-head{display:grid;grid-template-columns:25px minmax(0,1fr) 34px;gap:7px;align-items:center}
.title-mapping-page .bulk-custom-row-head .custom-title-index{width:25px;height:25px}
.title-mapping-page .bulk-custom-name{height:36px;font-size:.72rem;font-weight:750}
.title-mapping-page .bulk-custom-delete{width:34px;height:36px;padding:0}
.title-mapping-page .bulk-custom-aliases{margin-top:7px;min-height:58px;resize:vertical;font-size:.7rem;line-height:1.55}
.title-mapping-page .bulk-custom-note{margin-top:4px;color:#98a2b3;font-size:.58rem}
.title-mapping-page .bulk-custom-add{margin-top:9px}
.title-mapping-page .custom-title-section-actions .btn-outline-secondary{border-color:#d8dee8;color:#536078;background:#fff}
.title-mapping-page .custom-title-section-actions .btn-outline-secondary:hover{border-color:#9ca8c0;color:#39455e;background:#f8faff}
@media(max-width:767.98px){
  .title-mapping-page .custom-title-section-actions{flex-wrap:wrap;justify-content:flex-end}
  .title-mapping-page .bulk-custom-editor{min-width:0;width:100%}
}

.mustsell-page{max-width:1500px;margin:0 auto;padding-bottom:30px}
.mustsell-header{margin-bottom:16px}.mustsell-header .page-subtitle{max-width:720px}
.mustsell-import-btn{box-shadow:0 8px 18px rgba(61,88,220,.16)}
.mustsell-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;margin-bottom:14px;background:linear-gradient(135deg,#fff,#f7f9ff);border:1px solid #e3e8f4;overflow:hidden;position:relative}
.mustsell-hero:after{content:"";position:absolute;right:-70px;top:-90px;width:220px;height:220px;border-radius:50%;background:rgba(93,105,255,.06);pointer-events:none}
.mustsell-hero-main{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.mustsell-hero-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#eef1ff;color:#5968e8;font-size:22px}.mustsell-kicker{font-size:11px;color:#7d8aa5;margin-bottom:3px}.mustsell-hero h5{margin:0;font-weight:750;color:#27334d}.mustsell-hero p{margin:4px 0 0;color:#7d8aa5;font-size:12px}.mustsell-hero-actions{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.mustsell-config-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:#7a869f}.mustsell-config-ok{color:#2e8b61;font-weight:700}.mustsell-config-warn{color:#b97821;font-weight:700}
.mustsell-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.mustsell-stat{min-height:92px;padding:14px 15px;border:1px solid #e4e9f2;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(45,63,105,.035)}.mustsell-stat span{display:block;font-size:12px;color:#77849d}.mustsell-stat strong{display:block;font-size:23px;line-height:1.25;color:#26334d;margin:5px 0 3px}.mustsell-stat small{font-size:10px;color:#a0a9ba}.mustsell-stat.is-sale strong{color:#2d8b61}.mustsell-stat.is-new strong{color:#5368d8}.mustsell-stat.is-total strong{color:#3f50c9;font-size:21px}
.mustsell-toolbar{margin-bottom:14px;padding:0;overflow:hidden}.mustsell-toolbar-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 16px}.mustsell-search{position:relative;flex:1 1 320px;max-width:520px}.mustsell-search i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#95a1b7}.mustsell-search input{padding-left:35px;height:38px}.mustsell-filter-group{display:flex;gap:6px}.mustsell-filter{height:36px;padding:0 13px;border:1px solid #dfe5ef;background:#fff;border-radius:9px;color:#67748d;font-size:12px}.mustsell-filter.active{border-color:#6171e8;background:#eef1ff;color:#4f61d7;font-weight:700}.mustsell-filter.sale.active{border-color:#69b48f;background:#eef9f3;color:#2e8b61}.mustsell-filter.new.active{border-color:#8290e9;background:#f0f2ff;color:#5368d8}.mustsell-source-note{display:flex;align-items:center;gap:7px;padding:0 16px 12px;color:#8994a8;font-size:11px}.mustsell-source-note i{font-size:15px;color:#6877d9}
.mustsell-list-card{overflow:hidden;padding:0}.mustsell-table-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid #edf0f5}.mustsell-table-head strong{font-size:14px;color:#2b3750}.mustsell-table-head span{margin-left:9px;font-size:11px;color:#98a2b3}.mustsell-table{min-width:980px}.mustsell-table th{white-space:nowrap;color:#7a879e;font-size:11px;font-weight:700;background:#fbfcfe;border-bottom:1px solid #e9edf4}.mustsell-table td{vertical-align:middle;font-size:12px;color:#44516a}.mustsell-table tbody tr{transition:background .15s}.mustsell-table tbody tr:hover{background:#fafbff}.mustsell-product-image{width:48px;height:48px;border-radius:11px;border:1px solid #e4e9f2;background:#f7f9fd;display:flex;align-items:center;justify-content:center;color:#a4adbd;overflow:hidden}.mustsell-product-image img{width:100%;height:100%;object-fit:cover}.mustsell-name{max-width:280px;font-weight:650;color:#2f3b54}.mustsell-statuses{display:flex;gap:5px;flex-wrap:wrap}.mustsell-badge{display:inline-flex;align-items:center;height:23px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700}.mustsell-badge.sale{background:#edf8f2;color:#2d8a60}.mustsell-badge.off{background:#f2f4f7;color:#8993a4}.mustsell-badge.new{background:#eef1ff;color:#5368d8}.mustsell-qty{width:82px;text-align:center}.mustsell-qty:focus{border-color:#6675e8;box-shadow:0 0 0 .18rem rgba(92,105,255,.1)}.mustsell-empty{display:flex;min-height:260px;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:#9aa5b8}.mustsell-empty i{font-size:34px;color:#c1c8d6}.mustsell-empty strong{font-size:14px;color:#65728b}.mustsell-empty span{font-size:11px}
.mustsell-title-dialog{width:min(760px,88vw);max-height:72vh;overflow:auto}.mustsell-title-dialog-note{display:flex;gap:8px;padding:10px 12px;border:1px solid #dfe5ff;background:#f6f8ff;color:#6573a1;border-radius:10px;font-size:11px;margin-bottom:12px}.mustsell-title-dialog-note i{color:#5b6ce0;font-size:15px}.mustsell-title-section{border:1px solid #e5e9f1;border-radius:13px;padding:13px;margin-bottom:10px;background:#fff}.mustsell-title-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.mustsell-title-section-head strong{display:block;font-size:13px;color:#2d3951}.mustsell-title-section-head span{display:block;color:#99a3b4;font-size:10px;margin-top:2px}.mustsell-title-row{display:grid;grid-template-columns:28px minmax(0,1fr) 36px;gap:7px;align-items:center;margin-top:7px}.mustsell-title-index{width:28px;height:32px;border-radius:8px;background:#eef1ff;color:#5669d9;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.mustsell-title-row input{height:34px;font-size:12px}.mustsell-title-row .btn-icon{width:36px;height:34px;padding:0}.mustsell-title-dialog .alert{margin-top:10px}
@media(max-width:1100px){.mustsell-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.mustsell-hero{align-items:flex-start;flex-direction:column}.mustsell-hero-actions{width:100%;justify-content:space-between}}
@media(max-width:767.98px){.mustsell-page{padding:0 4px 24px}.mustsell-summary{grid-template-columns:1fr 1fr}.mustsell-toolbar-top{align-items:stretch}.mustsell-search{max-width:none;flex-basis:100%}.mustsell-filter-group{flex:1}.mustsell-filter{flex:1}.mustsell-hero-actions{align-items:flex-start;flex-direction:column}.mustsell-title-dialog{width:100%}.mustsell-title-row{grid-template-columns:26px minmax(0,1fr) 34px}.mustsell-title-index{width:26px}.mustsell-table{min-width:980px}}
.mustsell-modal-backdrop{position:fixed;inset:0;z-index:2050;background:rgba(22,31,51,.38);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px}.mustsell-modal-card{width:min(760px,94vw);max-height:88vh;overflow:auto;background:#fff;border:1px solid #e1e6f0;border-radius:18px;box-shadow:0 24px 70px rgba(27,39,75,.2);padding:18px}.mustsell-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.mustsell-modal-head h5{margin:0;font-size:18px;color:#27334c;font-weight:780}.mustsell-modal-head p{margin:4px 0 0;color:#909bae;font-size:11px}.mustsell-modal-eyebrow{font-size:10px;color:#5b6cdb;font-weight:700;margin-bottom:3px}.mustsell-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid #edf0f5}.mustsell-modal-card .mustsell-title-section{background:#fbfcff}.mustsell-modal-card .btn-icon{width:34px;height:34px;padding:0}.mustsell-modal-card .mustsell-title-row:first-child{margin-top:0}


/* 定价管理：状态筛选 */
.pricing-status-filters{display:flex;align-items:center;gap:6px;flex:1 1 100%;min-width:100%;overflow-x:auto;padding:2px 0 1px;scrollbar-width:thin}
.pricing-status-chip{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 10px;border:1px solid #e3e8f0;border-radius:999px;background:#f8fafc;color:#667085;font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer;transition:.16s ease}
.pricing-status-chip b{min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#e9eef5;color:#526079;font-size:9px}
.pricing-status-chip:hover{border-color:#c8d2e2;background:#fff;color:#344054}
.pricing-status-chip.active{border-color:#4d63e8;background:#eef1ff;color:#3549bf;box-shadow:0 2px 8px rgba(70,87,210,.10)}
.pricing-status-chip.active b{background:#4d63e8;color:#fff}
.pricing-status-chip.risk:not(.active){color:#9b5b00}
.pricing-empty{padding:42px 20px;text-align:center;color:#8a95a8;font-size:12px}
@media(max-width:768px){.pricing-status-filters{order:3}.pricing-status-chip{height:32px;padding:0 9px}.pricing-toolbar{gap:7px!important}}
/* 定价管理：简洁的默认排序提示与参数区层级 */
.pricing-order-note{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 11px;border:1px solid #e5eaf1;border-radius:10px;background:#f8fafc;color:#657287;font-size:11px;font-weight:750;white-space:nowrap}
.pricing-order-note i{color:#5368dc;font-size:13px}
.pricing-settings-shell .pricing-setting-help{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border:1px solid #e7ebf3;border-radius:12px;background:#f8fafc;color:#667085;font-size:11px;line-height:1.55}
.pricing-settings-shell .pricing-setting-help i{color:#5368dc;margin-top:2px}
@media(max-width:768px){.pricing-order-note{flex:1 1 auto;justify-content:center}.pricing-toolbar .input-group{min-width:100%!important}}

/* 定价管理 · 设计稿 2026-09-08 */
#mainContent:has(.pricing-page){background:#f7f9fc;padding-top:0}
.pricing-page{max-width:1480px;margin:0 auto;padding:8px 0 34px;color:#25324a}
.pricing-headline{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:10px 0 18px;border-bottom:1px solid #e8edf5;margin-bottom:14px}
.pricing-kicker{font-size:11px;color:#72809a;font-weight:750;margin-bottom:3px}.pricing-headline h4{margin:0;font-size:28px;font-weight:800;letter-spacing:-.035em;color:#183a72}.pricing-headline p{margin:4px 0 0;color:#7886a0;font-size:12px}.pricing-head-actions{display:flex;align-items:center;gap:12px}.pricing-store-select{display:flex;align-items:center;gap:8px}.pricing-store-select>span{font-size:12px;color:#71809a}.pricing-store-select select{height:38px;min-width:145px;border:1px solid #dce4ef;border-radius:10px;background:#fff;padding:0 28px 0 11px;color:#31415e;font-size:12px;font-weight:700}.pricing-refresh{height:38px;padding:0 5px;color:#1769df!important;font-size:12px;font-weight:750;text-decoration:none}.pricing-refresh i{font-size:16px;margin-right:4px}
.pricing-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.pricing-kpi-card{min-width:0;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid #e1e8f2;border-radius:12px;background:#fff;padding:13px 14px;box-shadow:0 4px 14px rgba(38,58,92,.035);cursor:pointer;transition:.16s ease}.pricing-kpi-card:hover,.pricing-kpi-card.selected{border-color:#b8cdf2;box-shadow:0 8px 22px rgba(55,94,164,.08);transform:translateY(-1px)}.pricing-kpi-icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 42px;font-size:19px}.pricing-kpi-icon.blue{background:#e9f1ff;color:#2d7bf0}.pricing-kpi-icon.orange{background:#fff2df;color:#e69a32}.pricing-kpi-icon.red{background:#ffe7e7;color:#e34c4c}.pricing-kpi-icon.teal{background:#def8f5;color:#20aaa1}.pricing-kpi-icon.purple{background:#eee6ff;color:#8257df}.pricing-kpi-copy{min-width:0}.pricing-kpi-copy>span{display:block;font-size:11px;color:#65748e;font-weight:750}.pricing-kpi-copy strong{display:block;font-size:23px;line-height:1.15;color:#173b75;margin-top:3px;letter-spacing:-.025em}.pricing-kpi-copy small{display:block;font-size:10px;color:#9aa5b8;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pricing-rule-panel{padding:0!important;border:1px solid #e2e8f1!important;border-radius:12px!important;box-shadow:0 5px 18px rgba(38,58,92,.035)!important;overflow:hidden;margin-bottom:14px;background:#fff}.pricing-section-title{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #e8edf4}.pricing-section-title>div{display:flex;align-items:center;gap:9px}.pricing-section-title>div>i{width:30px;height:30px;border-radius:9px;background:#eef4ff;color:#2b7af0;display:flex;align-items:center;justify-content:center}.pricing-section-title strong{display:block;font-size:14px;color:#203b68}.pricing-section-title span{display:block;font-size:10px;color:#929db0;margin-top:2px}.pricing-section-title .btn{height:34px;border-radius:8px;font-size:11px;font-weight:750}
.pricing-rule-grid{display:grid;grid-template-columns:1.45fr .75fr 1.15fr;gap:9px;padding:10px 14px}.pricing-rule-block{border:1px solid #e7edf5;border-radius:9px;background:linear-gradient(180deg,#fbfcfe,#fff);padding:12px}.pricing-rule-block h6{margin:0 0 10px;font-size:11px;font-weight:800;color:#29466f}.pricing-rule-values{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.pricing-rule-block label>span,.pricing-rule-advanced>div>span{display:block;font-size:10px;color:#71809a;margin-bottom:5px}.pricing-rule-block .form-control,.pricing-rule-block .form-select,.pricing-rule-block .input-group-text{height:34px;border-color:#dfe6ef;font-size:11px;box-shadow:none}.pricing-rule-block .form-control,.pricing-rule-block .form-select{font-weight:700;color:#33425d}.pricing-rule-block .input-group-text{padding:0 8px;background:#f6f8fb;color:#7c889d}.pricing-rule-standard p{font-size:10px;line-height:1.55;color:#8793a8;margin:9px 0 0}.delivery-rule-values{display:grid;grid-template-columns:1fr 1fr;gap:9px}.pricing-delivery-note{display:flex;gap:6px;align-items:flex-start;margin-top:9px;padding:8px 9px;border-radius:7px;background:#edf5ff;color:#4772aa;font-size:10px;line-height:1.45}.pricing-delivery-note i{color:#4b8bea;margin-top:1px}.pricing-delivery-note b{color:#276fd2}.pricing-rule-advanced{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1.3fr;gap:9px;padding:0 14px 12px}.pricing-rule-advanced>div{min-width:0}.pricing-rule-advanced .form-control,.pricing-rule-advanced .form-select,.pricing-rule-advanced .input-group-text{height:33px;border-color:#e0e6ee;font-size:10px;box-shadow:none}.pricing-rule-advanced>div>span{margin-bottom:4px}
.pricing-products-panel{padding:0!important;border:1px solid #e2e8f1!important;border-radius:12px!important;box-shadow:0 5px 18px rgba(38,58,92,.035)!important;overflow:visible;background:#fff;position:relative}.pricing-products-title{padding:14px 16px 9px}.pricing-products-title strong{font-size:14px;color:#203b68}.pricing-products-title span{font-size:10px;color:#9aa4b5;margin-left:8px}.pricing-products-panel .pricing-status-filters{padding:0 16px 11px;min-width:0;flex:0 0 auto;gap:7px}.pricing-status-chip{height:32px;padding:0 11px;background:#fff;border-color:#dfe6ef;color:#66758d;font-size:10px}.pricing-status-chip .pricing-status-dot{width:13px;height:13px;border-radius:50%;background:#e8edf4;display:inline-block}.pricing-status-chip.pending .pricing-status-dot{background:#ffb44b}.pricing-status-chip.no-cost .pricing-status-dot{background:#20b4aa}.pricing-status-chip.manual .pricing-status-dot{background:#8a62df}.pricing-status-chip.normal .pricing-status-dot{background:#39b982}.pricing-status-chip.excluded .pricing-status-dot{background:#9ba6b8}.pricing-status-chip.active{border-color:#2778ee;background:#2d7ff2;color:#fff;box-shadow:0 5px 12px rgba(45,127,242,.18)}.pricing-status-chip.active .pricing-status-dot{background:rgba(255,255,255,.9)}.pricing-status-chip.active b{background:rgba(255,255,255,.2);color:#fff}
.pricing-toolbar-redesign{position:relative;top:auto;z-index:8;margin:0!important;border:0!important;border-top:1px solid #eef1f5!important;border-bottom:1px solid #e8edf4!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;backdrop-filter:none;padding:10px 16px!important}.pricing-search{position:relative;flex:1 1 300px;max-width:360px}.pricing-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#9aa7b9;font-size:14px}.pricing-search input{height:34px;padding-left:31px;border:1px solid #dfe6ef;border-radius:8px;font-size:11px;box-shadow:none}.pricing-select-filter{display:flex;align-items:center;height:34px;border:1px solid #dfe6ef;border-radius:8px;background:#fff;overflow:hidden}.pricing-select-filter>span{padding:0 6px 0 9px;color:#8a96a9;font-size:10px}.pricing-select-filter select{height:32px;border:0;min-width:85px;padding:0 25px 0 2px;color:#4b5c78;font-size:10px;font-weight:700;box-shadow:none;background-color:#fff}.pricing-only-risk{height:34px;border:0!important;background:#fff!important;padding:0 5px!important;font-size:10px}.pricing-toolbar-redesign .btn{height:34px;border-radius:8px;font-size:10px;font-weight:750;margin-left:auto}.pricing-batch-popover{position:absolute;right:16px;top:103px;z-index:20;width:160px;padding:6px;border:1px solid #dfe6ef;border-radius:9px;background:#fff;box-shadow:0 14px 32px rgba(28,45,79,.14)}.pricing-batch-popover button{display:block;width:100%;padding:8px 9px;border:0;border-radius:6px;background:#fff;text-align:left;color:#4a5a74;font-size:10px}.pricing-batch-popover button:hover{background:#f4f7fb;color:#236fda}.pricing-table-head-redesign{padding:12px 16px;background:#fff}.pricing-table-head-title{display:block!important;visibility:visible!important;opacity:1!important;flex:1 1 auto!important;min-width:0!important;color:#1d2b43!important}.pricing-table-title-text{display:block!important;visibility:visible!important;opacity:1!important;color:#1d2b43!important;font-size:12px!important;font-weight:800!important;line-height:1.45!important;white-space:nowrap!important}.pricing-table-title-subtitle{display:block!important;visibility:visible!important;opacity:1!important;color:#8994a6!important;font-size:10px!important;line-height:1.5!important;margin-top:3px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.pricing-table-head-redesign strong{font-size:12px}.pricing-table-head-redesign span{font-size:10px}.pricing-table-tools{display:flex;gap:6px}.pricing-table-tools .btn{font-size:10px;border-radius:7px}.pricing-table-redesign{min-width:900px!important}.pricing-table-redesign thead th{height:42px!important;padding:8px 11px!important;background:#f7f9fc!important;font-size:10px!important;color:#66758c!important}.pricing-table-redesign tbody td{height:58px;padding:8px 11px!important;font-size:11px!important;border-bottom:1px solid #eef1f5!important}.pricing-table-redesign th:first-child,.pricing-table-redesign td:first-child{position:static!important;background:inherit!important}.pricing-code-cell{font-size:11px;color:#243c65}.pricing-product-cell{display:flex;align-items:center;gap:8px;min-width:190px}.pricing-product-cell>img,.pricing-product-placeholder{width:32px;height:32px;flex:0 0 32px;border-radius:6px;object-fit:cover;border:1px solid #e4e9f0;background:#f7f9fc}.pricing-product-placeholder{display:flex;align-items:center;justify-content:center;color:#b1bac8;font-size:14px}.pricing-product-cell>div{min-width:0}.pricing-product-cell strong{display:block;max-width:205px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34445e;font-size:11px}.pricing-product-cell small{display:block;margin-top:2px;color:#a0a9b8;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:205px}.pricing-table-redesign td:nth-child(4) strong,.pricing-table-redesign td:nth-child(5) strong,.pricing-table-redesign td:nth-child(6) strong{font-size:11px;color:#2d3f5d}.suggested-price{color:#2879e9!important}.manual-text{display:block;color:#8760dc!important;font-size:8px!important;margin-top:2px}.pricing-status-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:9px;font-weight:800}.pricing-status-badge.pending{background:#fff1dc;color:#d98b25}.pricing-status-badge.no-cost{background:#dff8f6;color:#159d96}.pricing-status-badge.manual{background:#eee7ff;color:#7955ce}.pricing-status-badge.normal{background:#def8eb;color:#209765}.pricing-status-badge.excluded{background:#eef1f5;color:#7e899b}.pricing-row-actions{white-space:nowrap}.pricing-row-link{border:0;background:none;color:#2678df;padding:3px 5px;font-size:10px;font-weight:700}.pricing-row-link:hover{text-decoration:underline}.pricing-row-link.success{color:#20a06c}.pricing-row-link.danger{color:#d65353}.pricing-pagination{display:flex;justify-content:space-between;align-items:center;padding:9px 16px;border-top:1px solid #edf0f5;color:#8b96a8;font-size:10px}.pricing-pages{display:flex;align-items:center;gap:4px}.pricing-pages button{min-width:27px;height:27px;border:1px solid #e0e6ef;border-radius:6px;background:#fff;color:#65738a;font-size:10px}.pricing-pages button.active{border-color:#2d7ff2;background:#2d7ff2;color:#fff}.pricing-pages button:disabled{opacity:.4}.pricing-pages em{font-style:normal;color:#a5afbd;padding:0 2px}.pricing-page-size{height:27px;display:flex;align-items:center;padding:0 8px;border:1px solid #e0e6ef;border-radius:6px;background:#fff;color:#65738a}.pricing-sort-foot{margin:0 16px 10px;padding:8px 10px;border-radius:7px;background:#f2f7ff;color:#6e85a7;font-size:9px}.pricing-sort-foot i{margin-right:5px;color:#3c7fe1}.pricing-empty{padding:45px 20px!important;text-align:center;color:#a0aaba}
.pricing-drawer-backdrop{position:fixed;inset:0;z-index:2100;background:rgba(24,35,58,.28);display:flex;justify-content:flex-end;backdrop-filter:blur(2px)}.pricing-drawer{width:min(410px,94vw);height:100%;background:#fff;box-shadow:-16px 0 45px rgba(25,41,72,.18);display:flex;flex-direction:column}.pricing-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;padding:17px 18px 12px;border-bottom:1px solid #edf1f6}.pricing-drawer-head span{font-size:10px;color:#8390a5}.pricing-drawer-head h5{margin:3px 0 0;color:#203b68;font-size:17px}.pricing-drawer-head .btn{width:30px;height:30px;padding:0}.pricing-drawer-body{overflow:auto;padding:14px 18px;flex:1}.pricing-drawer-product{display:flex;gap:10px;align-items:center;padding-bottom:12px;border-bottom:1px solid #edf1f6}.pricing-drawer-product img,.pricing-drawer-product>span{width:48px;height:48px;border-radius:9px;object-fit:cover;border:1px solid #e4e9f0;background:#f7f9fc;display:flex;align-items:center;justify-content:center;color:#a7b0bd}.pricing-drawer-product strong{display:block;font-size:12px;color:#33445f}.pricing-drawer-product small{display:block;margin-top:3px;font-size:9px;color:#909bad}.pricing-drawer-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:14px 0}.pricing-drawer-metrics label{display:block}.pricing-drawer-metrics span,.pricing-drawer-rate span,.pricing-drawer-field>span{display:block;font-size:9px;color:#77869e;margin-bottom:4px}.pricing-drawer-metrics strong{font-size:14px;color:#223a60}.pricing-drawer-metrics strong.blue{color:#2679e8}.pricing-drawer-rate{padding:10px 11px;border-radius:8px;background:#f7f9fc;margin-bottom:13px}.pricing-drawer-rate.warning{background:#fff3e7}.pricing-drawer-rate strong{display:block;font-size:18px;color:#1e9a69}.pricing-drawer-rate.warning strong{color:#e45b27}.pricing-drawer-rate small{display:block;margin-top:2px;font-size:9px;color:#8b96a8}.pricing-drawer-field{display:block}.pricing-drawer-field .form-control,.pricing-drawer-field .input-group-text{height:38px;border-color:#dfe6ef;font-size:12px;box-shadow:none}.pricing-drawer-advice{display:flex;gap:9px;padding:11px;margin-top:12px;border-radius:8px;background:#f1f6ff;color:#58709a}.pricing-drawer-advice>i{font-size:18px;color:#e5a328}.pricing-drawer-advice strong{display:block;font-size:10px;color:#355985}.pricing-drawer-advice span{display:block;margin-top:3px;font-size:9px;line-height:1.5}.pricing-drawer-cost{margin-top:13px;border:1px solid #e5eaf1;border-radius:9px;overflow:hidden}.pricing-drawer-cost>strong{display:block;padding:10px 11px;background:#f6f9fd;color:#35557f;font-size:10px}.pricing-drawer-cost>div{display:flex;justify-content:space-between;padding:8px 11px;border-top:1px solid #edf1f5;font-size:9px}.pricing-drawer-cost span{color:#7d899d}.pricing-drawer-cost b{color:#3e4f68}.pricing-drawer-cost b.green{color:#1caa70}.pricing-drawer-foot{display:flex;gap:10px;padding:12px 18px;border-top:1px solid #edf1f6}.pricing-drawer-foot .btn{height:36px;flex:1;border-radius:8px;font-size:11px;font-weight:750}
@media(max-width:1100px){.pricing-kpi-grid{grid-template-columns:repeat(3,1fr)}.pricing-rule-grid{grid-template-columns:1fr 1fr}.pricing-rule-delivery{grid-column:1/-1}.pricing-rule-advanced{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.pricing-page{padding:4px 4px 24px}.pricing-headline{flex-direction:column;padding-bottom:12px}.pricing-head-actions{width:100%;justify-content:space-between}.pricing-kpi-grid{grid-template-columns:1fr 1fr}.pricing-kpi-card{padding:11px}.pricing-kpi-copy strong{font-size:19px}.pricing-rule-grid{grid-template-columns:1fr;padding:9px}.pricing-rule-delivery{grid-column:auto}.pricing-rule-values{grid-template-columns:1fr 1fr}.pricing-rule-advanced{grid-template-columns:1fr 1fr;padding:0 9px 10px}.pricing-toolbar-redesign{align-items:stretch!important}.pricing-search{max-width:none;flex-basis:100%}.pricing-select-filter{flex:1}.pricing-only-risk{justify-content:center}.pricing-toolbar-redesign .btn{margin-left:0}.pricing-batch-popover{top:145px;right:10px}.pricing-table-head-redesign{align-items:flex-start}.pricing-table-tools{flex-direction:column}.pricing-pagination{align-items:flex-start;gap:7px;flex-direction:column}.pricing-drawer{width:100%}}

/* 定价管理精简优化：规则区默认只展示真正影响售价/配送的核心参数；高级参数收起，避免信息重复堆叠。 */
.pricing-advanced-details{margin-top:10px;border-top:1px solid #edf1f6;padding-top:0}
.pricing-advanced-details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 2px 3px;color:#526784;font-size:10px;font-weight:750}
.pricing-advanced-details>summary::-webkit-details-marker{display:none}
.pricing-advanced-details>summary:after{content:'展开';font-size:9px;color:#8a98ad;font-weight:650}
.pricing-advanced-details[open]>summary:after{content:'收起'}
.pricing-advanced-details>summary small{margin-left:auto;color:#98a5b8;font-size:9px;font-weight:600;white-space:nowrap}
.pricing-advanced-details>summary>span{white-space:nowrap}
.pricing-advanced-details[open]>summary{padding-bottom:8px}
.pricing-advanced-details .pricing-rule-advanced{margin-top:0;padding-top:8px}
.pricing-toolbar-redesign .pricing-select-filter{min-width:116px}
@media(max-width:768px){.pricing-advanced-details>summary{align-items:flex-start;flex-wrap:wrap}.pricing-advanced-details>summary small{width:100%;margin-left:0;white-space:normal}.pricing-toolbar-redesign .pricing-select-filter{min-width:0;flex:1}}

/* 定价管理：设置项按“查看优先、编辑按需”重构 */
.pricing-rule-summary{display:grid;grid-template-columns:1.55fr .9fr 1.15fr;gap:10px;padding:12px 14px 10px;background:#fbfcfe}
.pricing-summary-group{min-width:0;border:1px solid #e6edf6;border-radius:10px;background:#fff;padding:11px 12px}
.pricing-summary-group h6{margin:0 0 9px;font-size:10px;font-weight:800;color:#2a4771}
.pricing-summary-items{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.pricing-summary-items.two{grid-template-columns:1fr 1fr}
.pricing-summary-items>div{min-width:0;padding-right:8px;border-right:1px solid #edf1f6}
.pricing-summary-items>div:last-child{border-right:0}
.pricing-summary-items span,.pricing-summary-main span{display:block;font-size:9px;color:#8491a5;margin-bottom:4px}
.pricing-summary-items strong{display:block;font-size:14px;color:#253e63;font-weight:800}
.pricing-summary-main{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.pricing-summary-main strong{font-size:22px;color:#2378e8;font-weight:850}
.pricing-summary-group>small{display:block;margin-top:8px;color:#929db0;font-size:9px;line-height:1.5}
.pricing-summary-delivery .pricing-delivery-note{margin-top:8px}
.pricing-rule-editor-backdrop{position:fixed;inset:0;z-index:2200;background:rgba(20,34,57,.3);display:flex;justify-content:flex-end;backdrop-filter:blur(2px)}
.pricing-rule-editor{width:min(600px,96vw);height:100%;background:#fff;box-shadow:-18px 0 48px rgba(24,40,70,.18);display:flex;flex-direction:column}
.pricing-rule-editor-head{display:flex;justify-content:space-between;gap:18px;padding:18px 20px 14px;border-bottom:1px solid #edf1f6}
.pricing-rule-editor-head>div{min-width:0}.pricing-rule-editor-head span{font-size:10px;color:#8190a7}.pricing-rule-editor-head h5{margin:3px 0 4px;font-size:17px;color:#213d68}.pricing-rule-editor-head small{display:block;color:#929db0;font-size:9px;line-height:1.5}.pricing-rule-editor-head .btn{width:30px;height:30px;padding:0;flex:0 0 30px}
.pricing-rule-editor-body{overflow:auto;flex:1;padding:16px 20px}.pricing-editor-section{border:1px solid #e5ebf3;border-radius:10px;padding:13px;margin-bottom:11px;background:#fff}.pricing-editor-section h6{margin:0 0 11px;font-size:11px;color:#2a4771;font-weight:800}.pricing-editor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pricing-editor-grid.two{grid-template-columns:1fr 1fr}.pricing-editor-section label>span,.pricing-editor-advanced .pricing-rule-advanced>div>span{display:block;margin-bottom:5px;font-size:9px;color:#78869c}.pricing-editor-section .form-control,.pricing-editor-section .input-group-text,.pricing-editor-section .form-select{height:36px;border-color:#dce5f0;box-shadow:none;font-size:11px}.pricing-editor-section .form-control,.pricing-editor-section .form-select{font-weight:700;color:#344661}
.pricing-editor-advanced{border-top:1px dashed #dfe6ef;padding-top:9px}.pricing-editor-advanced>summary{cursor:pointer;list-style:none;color:#687994;font-size:10px;font-weight:750}.pricing-editor-advanced>summary::-webkit-details-marker{display:none}.pricing-editor-advanced>summary i{float:right}.pricing-editor-advanced .pricing-rule-advanced{padding:12px 0 0;grid-template-columns:repeat(2,1fr)}
.pricing-rule-editor-foot{display:flex;gap:10px;padding:12px 20px;border-top:1px solid #edf1f6}.pricing-rule-editor-foot .btn{height:38px;border-radius:8px;font-size:11px;font-weight:750}.pricing-rule-editor-foot .btn-light{flex:1}.pricing-rule-editor-foot .btn-primary{flex:2}
@media(max-width:1100px){.pricing-rule-summary{grid-template-columns:1fr 1fr}.pricing-summary-delivery{grid-column:1/-1}.pricing-editor-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.pricing-rule-summary{grid-template-columns:1fr;padding:9px}.pricing-summary-delivery{grid-column:auto}.pricing-summary-items{grid-template-columns:1fr 1fr}.pricing-summary-items>div:nth-child(2){border-right:0}.pricing-summary-items>div{padding-bottom:6px}.pricing-rule-editor{width:100%}.pricing-editor-grid,.pricing-editor-grid.two{grid-template-columns:1fr}.pricing-editor-advanced .pricing-rule-advanced{grid-template-columns:1fr}}

/* 定价规则编辑抽屉：仅优化编辑层，保持主页面布局不变 */
.pricing-rule-editor-backdrop{position:fixed!important;inset:0!important;z-index:2200!important;display:flex!important;justify-content:flex-end!important;align-items:stretch!important;background:rgba(15,29,52,.34)!important;backdrop-filter:blur(3px)!important}
.pricing-rule-editor-backdrop[hidden]{display:none!important}
.pricing-rule-editor{width:min(560px,92vw)!important;height:100%!important;background:#fff!important;box-shadow:-24px 0 64px rgba(22,40,70,.20)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.pricing-rule-editor-head{padding:22px 24px 18px!important;border-bottom:1px solid #e9eef5!important;gap:18px!important;background:#fff!important}
.pricing-rule-editor-title{min-width:0}
.pricing-editor-eyebrow{display:flex;align-items:center;gap:7px;color:#3979e8;font-size:11px;font-weight:800;margin-bottom:6px}
.pricing-editor-eyebrow i{font-size:13px}
.pricing-rule-editor-head h5{margin:0 0 5px!important;font-size:19px!important;line-height:1.35!important;color:#18365f!important;letter-spacing:-.02em}
.pricing-rule-editor-head p{margin:0!important;color:#8795aa!important;font-size:11px!important;line-height:1.6!important}
.pricing-editor-close{width:34px;height:34px;border:1px solid #e4eaf2;background:#fff;border-radius:10px;color:#687990;display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;cursor:pointer}
.pricing-editor-close:hover{background:#f5f8fc;color:#213d68}
.pricing-rule-editor-body{padding:16px 20px 24px!important;background:#f7f9fc!important;overflow:auto!important}
.pricing-editor-notice{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;margin-bottom:12px;border:1px solid #dce9fb;border-radius:10px;background:#eef6ff;color:#55749d;font-size:10px;line-height:1.55}
.pricing-editor-notice i{color:#3780eb;margin-top:1px}
.pricing-editor-section{border:1px solid #e2e9f2!important;border-radius:12px!important;padding:15px!important;margin-bottom:12px!important;background:#fff!important;box-shadow:0 1px 2px rgba(30,50,80,.025)}
.pricing-editor-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.pricing-editor-section h6{margin:0 0 3px!important;font-size:12px!important;color:#24466f!important;font-weight:800!important}
.pricing-editor-section-head small{font-size:9px;color:#9aa7b8;line-height:1.4}
.pricing-editor-badge{padding:3px 7px;border-radius:999px;background:#f0f6ff;color:#4a7fd4;font-size:9px;font-weight:700;white-space:nowrap}
.pricing-editor-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.pricing-editor-grid.two{grid-template-columns:1fr 1fr!important}
.pricing-editor-section label{display:block!important;margin:0!important}
.pricing-editor-section label>span,.pricing-editor-advanced .pricing-rule-advanced>div>span{display:block;margin-bottom:6px;font-size:10px;color:#687a93;font-weight:650}
.pricing-editor-section .form-control,.pricing-editor-section .input-group-text,.pricing-editor-section .form-select{height:40px!important;border-color:#d9e2ee!important;box-shadow:none!important;font-size:12px!important;background:#fff!important}
.pricing-editor-section .form-control,.pricing-editor-section .form-select{font-weight:700!important;color:#253d5d!important}
.pricing-editor-section .form-control:focus,.pricing-editor-section .form-select:focus{border-color:#78a9f5!important;box-shadow:0 0 0 3px rgba(52,125,235,.10)!important}
.pricing-editor-section .input-group-text{background:#f6f8fb!important;color:#77869b!important;min-width:38px;justify-content:center}
.pricing-editor-single-field{max-width:240px}
.pricing-field-help{display:block;margin-top:4px;color:#9aa6b7;font-size:9px;line-height:1.4}
.pricing-field-help-block{padding-top:8px;margin-top:10px;border-top:1px dashed #e7edf4}
.pricing-delivery-rule-preview{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 11px;border-radius:9px;background:#f2f7ff;color:#56769f;font-size:10px;line-height:1.5}
.pricing-delivery-rule-preview i{color:#31a36f;margin-top:1px}
.pricing-delivery-rule-preview b{color:#286bc8}
.pricing-editor-advanced{border:1px solid #e2e9f2;border-radius:12px;background:#fff;overflow:hidden}
.pricing-editor-advanced>summary{display:flex!important;align-items:center!important;gap:8px!important;padding:13px 15px!important;cursor:pointer;list-style:none!important;color:#526782!important;font-size:10px!important;font-weight:750!important}
.pricing-editor-advanced>summary::-webkit-details-marker{display:none}
.pricing-editor-advanced>summary small{margin-left:auto;color:#a0acbb;font-size:9px;font-weight:500}
.pricing-advanced-chevron{font-size:10px;transition:transform .18s ease}
.pricing-editor-advanced[open] .pricing-advanced-chevron{transform:rotate(180deg)}
.pricing-editor-advanced .pricing-rule-advanced{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;padding:0 15px 15px!important;margin-top:0!important}
.pricing-editor-advanced .form-control,.pricing-editor-advanced .form-select,.pricing-editor-advanced .input-group-text{height:38px!important;font-size:11px!important}
.pricing-rule-editor-foot{padding:12px 20px!important;border-top:1px solid #e7edf4!important;background:#fff!important;display:block!important}
.pricing-editor-save-hint{display:flex;align-items:center;gap:6px;color:#9aa7b7;font-size:9px;margin-bottom:9px}
.pricing-editor-save-hint i{color:#4b89e8}
.pricing-editor-actions{display:flex;gap:10px}
.pricing-editor-actions .btn{height:42px!important;border-radius:9px!important;font-size:11px!important;font-weight:800!important}
.pricing-editor-actions .btn-light{flex:1;background:#f6f8fa!important;border:1px solid #edf0f4!important;color:#596a80!important}
.pricing-editor-actions .btn-primary{flex:2;background:#356fe5!important;border-color:#356fe5!important;box-shadow:0 5px 14px rgba(53,111,229,.18)}
@media(max-width:768px){.pricing-rule-editor{width:100%!important}.pricing-rule-editor-head{padding:18px 16px 15px!important}.pricing-rule-editor-body{padding:12px!important}.pricing-editor-grid,.pricing-editor-grid.two,.pricing-editor-advanced .pricing-rule-advanced{grid-template-columns:1fr!important}.pricing-editor-single-field{max-width:none}.pricing-rule-editor-foot{padding:11px 12px!important}}

/* pricing drawer purchase-price range editor */
.pricing-rule-editor-pro .pricing-range-section{padding-bottom:14px}.pricing-drawer-template-state{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;margin-bottom:10px;background:#f7faff;border:1px solid #e3ecf8;border-radius:9px}.pricing-drawer-template-state>div{display:flex;flex-direction:column;gap:2px}.pricing-drawer-template-state strong{font-size:11px;color:#28476f}.pricing-drawer-template-state span{font-size:9px;color:#8191a7}.pricing-range-editor{display:flex;flex-direction:column;gap:9px}.pricing-range-row{border:1px solid #e1e9f3;border-radius:10px;padding:10px;background:#fbfdff}.pricing-range-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.pricing-range-top strong{font-size:10px;color:#355477}.pricing-range-fields{display:grid;grid-template-columns:1fr 1fr 1.45fr 1fr 1.15fr .9fr;gap:7px}.pricing-range-fields label{position:relative;font-size:9px;color:#8392a8}.pricing-range-fields input,.pricing-range-fields select{margin-top:4px;height:34px;font-size:10px}.pricing-range-fields .range-suffix{position:absolute;right:8px;bottom:8px;color:#8a98ac}.pricing-range-fields input:has(+ .range-suffix){padding-right:25px}.pricing-editor-badge.muted{background:#f1f4f8;color:#7d8a9d}.pricing-fallback-section{background:#fafbfd}
@media(max-width:700px){.pricing-range-fields{grid-template-columns:1fr 1fr}.pricing-rule-editor-pro .pricing-range-section{padding:10px}.pricing-drawer-template-state{align-items:flex-start;flex-direction:column}}

/* Final repair: pricing rule drawer layout must never overflow horizontally. */
.pricing-rule-editor-pro{box-sizing:border-box!important;width:min(760px,96vw)!important;max-width:100vw!important}
.pricing-rule-editor-pro,.pricing-rule-editor-pro *{box-sizing:border-box!important}
.pricing-rule-editor-pro .pricing-rule-editor-body{min-width:0!important;overflow-x:hidden!important}
.pricing-rule-editor-pro .pricing-editor-section{min-width:0!important}
.pricing-rule-editor-pro .pricing-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.pricing-rule-editor-pro .pricing-editor-grid label,.pricing-rule-editor-pro .input-group{min-width:0!important;width:100%!important}
.pricing-rule-editor-pro .input-group .form-control{min-width:0!important;width:1%!important;flex:1 1 auto!important}
.pricing-rule-editor-pro .pricing-range-editor{min-width:0!important;width:100%!important}
.pricing-rule-editor-pro .pricing-range-row{min-width:0!important;overflow:hidden!important}
.pricing-rule-editor-pro .pricing-range-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important;min-width:0!important}
.pricing-rule-editor-pro .pricing-range-fields label{min-width:0!important}
.pricing-rule-editor-pro .pricing-range-fields input,.pricing-rule-editor-pro .pricing-range-fields select{width:100%!important;min-width:0!important;max-width:100%!important}
.pricing-rule-editor-pro input[type=number]{appearance:textfield!important;-moz-appearance:textfield!important}
.pricing-rule-editor-pro input[type=number]::-webkit-inner-spin-button,.pricing-rule-editor-pro input[type=number]::-webkit-outer-spin-button{margin:0!important}
@media(max-width:560px){.pricing-rule-editor-pro{width:100%!important}.pricing-rule-editor-pro .pricing-editor-grid,.pricing-rule-editor-pro .pricing-range-fields,.pricing-rule-editor-pro .pricing-editor-advanced .pricing-rule-advanced{grid-template-columns:1fr!important}}

/* 定价规则编辑器 2026-09-08：统一覆盖旧版全局表单样式，避免大号黑框/宽度异常 */
.pricing-rule-editor-backdrop.pricing-rule-editor-backdrop{padding:0!important}
.pricing-rule-editor-backdrop .pricing-rule-editor-pro{
  width:min(720px,94vw)!important;
  max-width:720px!important;
  height:100dvh!important;
  border-left:1px solid #e4ebf4!important;
  box-shadow:-20px 0 55px rgba(24,45,78,.16)!important;
}
.pricing-rule-editor-pro .pricing-rule-editor-head{
  padding:22px 24px 16px!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)!important;
}
.pricing-rule-editor-pro .pricing-editor-eyebrow{font-size:12px!important;letter-spacing:.02em}
.pricing-rule-editor-pro .pricing-rule-editor-head h5{font-size:22px!important;letter-spacing:-.025em!important}
.pricing-editor-store{display:flex;align-items:center;gap:7px;margin:7px 0 7px;color:#506782;font-size:11px}
.pricing-editor-store i{color:#3979e8;font-size:13px}
.pricing-editor-store em{font-style:normal;padding:3px 7px;border-radius:999px;background:#edf7f2;color:#279166;font-size:9px;font-weight:750}
.pricing-editor-store em:empty{display:none}
.pricing-rule-editor-pro .pricing-rule-editor-body{padding:15px 18px 28px!important;background:#f4f7fb!important}
.pricing-rule-editor-pro .pricing-editor-notice{padding:11px 13px!important;border-radius:12px!important;background:#eef6ff!important;font-size:10px!important}
.pricing-rule-editor-pro .pricing-editor-section,
.pricing-rule-editor-pro .pricing-editor-advanced{
  border:1px solid #e0e8f2!important;
  border-radius:14px!important;
  box-shadow:0 2px 8px rgba(38,63,96,.035)!important;
}
.pricing-rule-editor-pro .pricing-editor-section{padding:16px!important;margin-bottom:12px!important}
.pricing-rule-editor-pro .pricing-editor-section h6{font-size:13px!important;color:#1f416c!important}
.pricing-rule-editor-pro .pricing-editor-section-head{margin-bottom:14px!important}
.pricing-rule-editor-pro .pricing-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.pricing-rule-editor-pro .pricing-editor-section label>span{font-size:10px!important;color:#647892!important;margin-bottom:6px!important}
.pricing-rule-editor-pro .pricing-editor-section .form-control,
.pricing-rule-editor-pro .pricing-editor-section .form-select,
.pricing-rule-editor-pro .pricing-editor-section .input-group-text{
  height:44px!important;
  min-height:44px!important;
  border:1px solid #d6e0ec!important;
  border-radius:9px!important;
  font-size:13px!important;
  line-height:1.2!important;
  box-shadow:none!important;
}
.pricing-rule-editor-pro .pricing-editor-section .input-group>.input-group-text:first-child{border-radius:9px 0 0 9px!important}
.pricing-rule-editor-pro .pricing-editor-section .input-group>.form-control:last-child{border-radius:0 9px 9px 0!important}
.pricing-rule-editor-pro .pricing-editor-section .form-control,
.pricing-rule-editor-pro .pricing-editor-section .form-select{font-weight:700!important;color:#203a5e!important;background:#fff!important}
.pricing-rule-editor-pro .pricing-editor-section .form-control:focus,
.pricing-rule-editor-pro .pricing-editor-section .form-select:focus{border-color:#78a8ef!important;box-shadow:0 0 0 3px rgba(55,125,232,.10)!important}
.pricing-rule-editor-pro .pricing-editor-section .input-group-text{min-width:42px!important;padding:0 10px!important;background:#f5f8fc!important;color:#74859c!important}
.pricing-rule-editor-pro .pricing-field-help{font-size:9px!important;margin-top:5px!important}
.pricing-rule-editor-pro .pricing-range-row{padding:13px!important;border-radius:12px!important;background:#fbfdff!important}
.pricing-rule-editor-pro .pricing-range-top strong{font-size:11px!important;color:#294b75!important}
.pricing-rule-editor-pro .pricing-range-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.pricing-rule-editor-pro .pricing-range-fields label{font-size:9px!important;color:#71839b!important}
.pricing-rule-editor-pro .pricing-range-fields input,
.pricing-rule-editor-pro .pricing-range-fields select{
  height:40px!important;min-height:40px!important;margin-top:5px!important;
  border:1px solid #d8e2ed!important;border-radius:8px!important;
  background:#fff!important;font-size:11px!important;font-weight:700!important;color:#29415f!important;
}
.pricing-rule-editor-pro .pricing-range-fields input:focus,
.pricing-rule-editor-pro .pricing-range-fields select:focus{border-color:#78a8ef!important;box-shadow:0 0 0 3px rgba(55,125,232,.08)!important}
.pricing-rule-editor-pro .pricing-range-fields .range-suffix{right:9px!important;bottom:11px!important;font-size:10px!important}
.pricing-rule-editor-pro .pricing-rule-editor-foot{padding:12px 18px 14px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 -8px 24px rgba(31,53,84,.06)!important}
.pricing-rule-editor-pro .pricing-editor-save-hint{font-size:9px!important;margin-bottom:9px!important}
.pricing-rule-editor-pro .pricing-editor-actions .btn{height:44px!important;border-radius:10px!important;font-size:12px!important}
.pricing-rule-editor-pro .pricing-editor-actions .btn-primary{background:#2f6fe4!important;border-color:#2f6fe4!important}
.pricing-rule-editor-pro .pricing-editor-actions .btn-light{background:#f5f7fa!important;border-color:#e2e8ef!important}
@media(max-width:700px){
  .pricing-rule-editor-backdrop .pricing-rule-editor-pro{width:100%!important;max-width:none!important}
  .pricing-rule-editor-pro .pricing-rule-editor-head{padding:18px 16px 14px!important}
  .pricing-rule-editor-pro .pricing-rule-editor-body{padding:12px!important}
  .pricing-rule-editor-pro .pricing-editor-grid,.pricing-rule-editor-pro .pricing-range-fields{grid-template-columns:1fr!important}
  .pricing-rule-editor-pro .pricing-rule-editor-foot{padding:10px 12px 12px!important}
}

/* 定价规则编辑器重构 v20260908-r26：由“窄侧边抽屉”改为居中工作台，减少拥挤与重复信息 */
.pricing-rule-editor-backdrop.pricing-rule-editor-backdrop{
  position:fixed!important;inset:0!important;z-index:2200!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  padding:24px!important;background:rgba(18,31,51,.42)!important;
  backdrop-filter:blur(5px)!important;
}
.pricing-rule-editor-backdrop[hidden]{display:none!important}
.pricing-rule-editor-backdrop .pricing-rule-editor-modern{
  width:min(1040px,96vw)!important;max-width:1040px!important;height:min(900px,92vh)!important;
  border:1px solid #dfe7f1!important;border-radius:20px!important;overflow:hidden!important;
  background:#f6f8fb!important;box-shadow:0 24px 80px rgba(21,38,64,.24)!important;
  display:flex!important;flex-direction:column!important;
}
.pricing-rule-editor-modern *{box-sizing:border-box!important}
.pricing-rule-editor-modern .pricing-rule-editor-head{
  padding:20px 24px 17px!important;background:#fff!important;border-bottom:1px solid #e7edf4!important;
  display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:20px!important;
}
.pricing-editor-head-main{min-width:0;flex:1}
.pricing-editor-eyebrow{display:flex!important;align-items:center!important;gap:7px!important;color:#3575df!important;font-size:11px!important;font-weight:800!important;letter-spacing:.03em!important;margin-bottom:5px!important}
.pricing-editor-eyebrow i{font-size:13px!important}
.pricing-editor-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pricing-rule-editor-modern .pricing-rule-editor-head h5{margin:0!important;font-size:21px!important;line-height:1.3!important;color:#17385f!important;letter-spacing:-.025em!important}
.pricing-rule-editor-modern .pricing-editor-store{display:inline-flex!important;align-items:center!important;gap:6px!important;margin:0!important;padding:5px 9px!important;border:1px solid #e2eaf4!important;border-radius:999px!important;background:#f7faff!important;color:#55708f!important;font-size:10px!important}
.pricing-rule-editor-modern .pricing-editor-store i{color:#3979e8!important;font-size:12px!important}
.pricing-rule-editor-modern .pricing-editor-store em{padding:2px 6px!important;background:#eaf8f1!important;color:#23865d!important;font-size:8px!important}
.pricing-rule-editor-modern .pricing-rule-editor-head p{margin:7px 0 0!important;color:#8b98aa!important;font-size:10px!important;line-height:1.55!important}
.pricing-rule-editor-modern .pricing-editor-close{width:36px!important;height:36px!important;border:1px solid #dfe6ef!important;border-radius:10px!important;background:#fff!important;color:#6d7d93!important;flex:0 0 36px!important}
.pricing-rule-editor-modern .pricing-editor-close:hover{background:#f4f7fb!important;color:#26466e!important}
.pricing-editor-steps{height:46px;display:flex;align-items:center;padding:0 24px;background:#fbfcfe;border-bottom:1px solid #e8edf4;gap:10px;flex:0 0 46px}
.pricing-editor-steps span{display:flex;align-items:center;gap:6px;color:#9aa7b8;font-size:9px;font-weight:700;white-space:nowrap}
.pricing-editor-steps span b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#edf1f6;color:#8795a7;font-size:8px}
.pricing-editor-steps span.active{color:#376fda}.pricing-editor-steps span.active b{background:#e8f1ff;color:#3575df}
.pricing-editor-steps i{height:1px;background:#e3e9f1;flex:0 1 60px;max-width:60px}
.pricing-rule-editor-modern .pricing-rule-editor-body{padding:16px 20px 24px!important;background:#f5f7fa!important;overflow:auto!important;min-height:0!important}
.pricing-editor-notice-modern{display:flex!important;gap:10px!important;align-items:flex-start!important;padding:11px 13px!important;margin-bottom:12px!important;border:1px solid #dce8fa!important;border-radius:12px!important;background:#eef6ff!important;color:#597493!important;font-size:10px!important;line-height:1.5!important}
.pricing-editor-notice-modern>i{color:#3479e8!important;font-size:14px!important;margin-top:1px!important}
.pricing-editor-notice-modern div{display:flex;flex-direction:column;gap:2px}.pricing-editor-notice-modern strong{color:#2c5484;font-size:10px}.pricing-editor-notice-modern span{color:#6d819b}
.pricing-rule-editor-modern .pricing-editor-section{padding:15px!important;margin-bottom:12px!important;border:1px solid #e1e8f0!important;border-radius:14px!important;background:#fff!important;box-shadow:0 2px 8px rgba(32,55,84,.035)!important}
.pricing-rule-editor-modern .pricing-editor-section-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin-bottom:13px!important}
.pricing-rule-editor-modern .pricing-editor-section-head h6{margin:0 0 3px!important;color:#24466f!important;font-size:13px!important;font-weight:850!important}
.pricing-rule-editor-modern .pricing-editor-section-head small{color:#95a2b3!important;font-size:9px!important;line-height:1.4!important}
.pricing-section-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;background:#f0f5fd;color:#5b78a0;font-size:9px;font-weight:800}
.pricing-rule-editor-modern .pricing-editor-badge{padding:5px 8px!important;border-radius:999px!important;background:#edf6ff!important;color:#3474d9!important;font-size:9px!important;font-weight:800!important}
.pricing-rule-editor-modern .pricing-editor-badge.muted{background:#f1f4f7!important;color:#7c8999!important}
.pricing-cost-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pricing-cost-card{display:block!important;margin:0!important;padding:12px!important;border:1px solid #e5ebf2!important;border-radius:11px!important;background:#fbfcfe!important}
.pricing-cost-card>span{display:block;margin-bottom:7px;color:#647893;font-size:10px;font-weight:750}
.pricing-cost-card .form-control,.pricing-cost-card .input-group-text{height:42px!important;min-height:42px!important;border:1px solid #d7e1ec!important;box-shadow:none!important;font-size:13px!important;background:#fff!important}
.pricing-cost-card .form-control{font-weight:800!important;color:#203b60!important}
.pricing-cost-card .input-group-text{min-width:38px!important;justify-content:center!important;background:#f4f7fa!important;color:#73849a!important}
.pricing-cost-card .input-group>.input-group-text:first-child{border-radius:9px 0 0 9px!important}.pricing-cost-card .input-group>.form-control:last-child{border-radius:0 9px 9px 0!important}.pricing-cost-card .form-control:focus{border-color:#75a3ed!important;box-shadow:0 0 0 3px rgba(58,121,225,.09)!important}
.pricing-cost-card small{display:block;margin-top:6px;color:#9aa7b7;font-size:8px;line-height:1.4}.pricing-cost-card-accent{background:#fafdff!important;border-color:#dce9f9!important}
.pricing-delivery-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pricing-rule-card{display:grid!important;grid-template-columns:34px minmax(0,1fr) 150px;align-items:center;gap:10px;margin:0!important;padding:11px!important;border:1px solid #e4eaf2!important;border-radius:11px!important;background:#fbfcfe!important}
.pricing-rule-card-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#eef5ff;color:#4a7fda;font-size:14px}
.pricing-rule-card-copy{min-width:0}.pricing-rule-card-copy span{display:block;color:#304b70;font-size:11px;font-weight:800}.pricing-rule-card-copy small{display:block;margin-top:3px;color:#99a5b5;font-size:8px;white-space:nowrap}
.pricing-rule-card .form-control,.pricing-rule-card .input-group-text{height:40px!important;min-height:40px!important;border-color:#d7e1ec!important;box-shadow:none!important;font-size:12px!important;background:#fff!important}.pricing-rule-card .input-group-text{min-width:34px;justify-content:center;color:#74859a;background:#f4f7fa}.pricing-rule-card .form-control{font-weight:800;color:#203b60}.pricing-rule-card .input-group>.input-group-text:first-child{border-radius:8px 0 0 8px!important}.pricing-rule-card .form-control:last-child{border-radius:0 8px 8px 0!important}
.pricing-delivery-rule-preview-modern{display:flex!important;align-items:center!important;gap:8px!important;margin-top:10px!important;padding:9px 11px!important;border:1px dashed #d7e5f7!important;border-radius:9px!important;background:#f6faff!important;color:#637b99!important;font-size:9px!important;line-height:1.5!important}.pricing-delivery-rule-preview-modern>i{color:#2fa16d!important;font-size:12px!important}.pricing-delivery-rule-preview-modern b{color:#2e6fd2!important}.pricing-delivery-rule-preview-modern strong{color:#71839b!important}
.pricing-drawer-template-state-modern{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:9px 11px!important;margin-bottom:10px!important;border:1px solid #e0e9f3!important;border-radius:10px!important;background:#f8fbff!important}.pricing-drawer-template-state-modern strong{font-size:10px!important;color:#2b4d76!important}.pricing-drawer-template-state-modern span{font-size:8px!important;color:#8594a8!important}
.pricing-range-editor-modern{display:flex!important;flex-direction:column!important;gap:9px!important}.pricing-range-editor-modern .pricing-range-row{padding:12px!important;border:1px solid #e0e7ef!important;border-radius:11px!important;background:#fcfdff!important}.pricing-range-editor-modern .pricing-range-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-bottom:9px!important}.pricing-range-editor-modern .pricing-range-top strong{font-size:10px!important;color:#2d4d73!important}.pricing-range-editor-modern .pricing-range-top .btn{font-size:9px!important;padding:2px 5px!important}
.pricing-range-editor-modern .pricing-range-fields{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}.pricing-range-editor-modern .pricing-range-fields label{display:block!important;position:relative!important;min-width:0!important;color:#7c8ca1!important;font-size:8px!important}.pricing-range-editor-modern .pricing-range-fields input,.pricing-range-editor-modern .pricing-range-fields select{width:100%!important;height:38px!important;min-height:38px!important;margin-top:4px!important;padding:0 9px!important;border:1px solid #d9e2ec!important;border-radius:8px!important;background:#fff!important;color:#2c4565!important;font-size:10px!important;font-weight:750!important;box-shadow:none!important}.pricing-range-editor-modern .pricing-range-fields input:focus,.pricing-range-editor-modern .pricing-range-fields select:focus{border-color:#76a6ee!important;box-shadow:0 0 0 3px rgba(58,121,225,.08)!important}.pricing-range-editor-modern .pricing-range-fields .range-suffix{right:8px!important;bottom:10px!important;color:#8b99aa!important;font-size:9px!important}.pricing-range-editor-modern .pricing-range-fields input:has(+ .range-suffix){padding-right:24px!important}
.pricing-editor-inline-note-modern{display:flex!important;gap:8px!important;align-items:flex-start!important;padding:9px 10px!important;border:1px dashed #e0e6ee!important;border-radius:9px!important;background:#fafbfd!important;color:#7d8999!important;font-size:9px!important;line-height:1.5!important}.pricing-editor-inline-note-modern i{color:#5b86c9!important;font-size:12px!important}
.pricing-editor-advanced-modern{border:1px solid #e1e8f0!important;border-radius:14px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 2px 8px rgba(32,55,84,.025)!important}.pricing-editor-advanced-modern>summary{display:flex!important;align-items:center!important;gap:8px!important;padding:13px 15px!important;cursor:pointer!important;list-style:none!important;color:#536b87!important;font-size:10px!important;font-weight:800!important}.pricing-editor-advanced-modern>summary::-webkit-details-marker{display:none}.pricing-editor-advanced-modern>summary small{margin-left:auto;color:#9ba7b6;font-size:8px;font-weight:500}.pricing-editor-advanced-modern .pricing-rule-advanced{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;padding:0 15px 15px!important}.pricing-editor-advanced-modern .pricing-rule-advanced>div>span{display:block;margin-bottom:5px;color:#718198;font-size:9px;font-weight:700}.pricing-editor-advanced-modern .form-control,.pricing-editor-advanced-modern .form-select,.pricing-editor-advanced-modern .input-group-text{height:38px!important;min-height:38px!important;border-color:#d8e1ec!important;box-shadow:none!important;font-size:10px!important}.pricing-editor-advanced-modern .form-control{font-weight:700;color:#29425f}
.pricing-rule-editor-foot-modern{padding:12px 20px 14px!important;border-top:1px solid #e4eaf1!important;background:rgba(255,255,255,.98)!important;box-shadow:0 -8px 24px rgba(32,52,78,.06)!important;flex:0 0 auto!important}.pricing-rule-editor-foot-modern .pricing-editor-save-hint{margin-bottom:9px!important;color:#8997a8!important;font-size:8px!important}.pricing-rule-editor-foot-modern .pricing-editor-save-hint i{color:#4a82df!important}.pricing-rule-editor-foot-modern .pricing-editor-actions{display:flex!important;gap:10px!important}.pricing-rule-editor-foot-modern .pricing-editor-actions .btn{height:42px!important;border-radius:9px!important;font-size:11px!important;font-weight:800!important}.pricing-rule-editor-foot-modern .pricing-editor-actions .btn-light{flex:0 0 180px!important;background:#f5f7fa!important;border:1px solid #e1e7ee!important;color:#5c6d82!important}.pricing-rule-editor-foot-modern .pricing-editor-actions .btn-primary{flex:1!important;background:#3473e5!important;border-color:#3473e5!important;box-shadow:0 6px 16px rgba(52,115,229,.18)!important}
@media(max-width:900px){.pricing-rule-editor-backdrop.pricing-rule-editor-backdrop{padding:12px!important}.pricing-rule-editor-backdrop .pricing-rule-editor-modern{width:100%!important;height:94vh!important}.pricing-cost-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-range-editor-modern .pricing-range-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important}.pricing-editor-advanced-modern .pricing-rule-advanced{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){.pricing-rule-editor-backdrop.pricing-rule-editor-backdrop{padding:0!important}.pricing-rule-editor-backdrop .pricing-rule-editor-modern{width:100%!important;height:100dvh!important;border-radius:0!important;border:0!important}.pricing-rule-editor-modern .pricing-rule-editor-head{padding:16px!important}.pricing-rule-editor-modern .pricing-rule-editor-head h5{font-size:18px!important}.pricing-editor-steps{padding:0 16px;overflow:auto}.pricing-editor-steps i{display:none}.pricing-editor-steps span{font-size:8px}.pricing-rule-editor-modern .pricing-rule-editor-body{padding:12px!important}.pricing-cost-cards,.pricing-delivery-grid,.pricing-editor-advanced-modern .pricing-rule-advanced{grid-template-columns:1fr!important}.pricing-rule-card{grid-template-columns:34px minmax(0,1fr)!important}.pricing-rule-card .input-group{grid-column:1/-1}.pricing-rule-card-copy small{white-space:normal}.pricing-range-editor-modern .pricing-range-fields{grid-template-columns:1fr 1fr!important}.pricing-rule-editor-foot-modern{padding:10px 12px 12px!important}.pricing-rule-editor-foot-modern .pricing-editor-actions .btn-light{flex:1!important}.pricing-rule-editor-foot-modern .pricing-editor-actions .btn-primary{flex:1!important}}

/* Pricing rule editor refactor r27.0: isolated visual system, no global form-control leakage. */
.pricing-rule-editor-backdrop{position:fixed!important;inset:0!important;z-index:2200!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:24px!important;background:rgba(15,31,55,.42)!important;backdrop-filter:blur(5px)!important}
.pricing-rule-editor-backdrop[hidden]{display:none!important}
.pricing-rule-editor-modern{width:min(1180px,calc(100vw - 48px))!important;height:min(900px,calc(100vh - 48px))!important;max-height:calc(100vh - 48px)!important;border:1px solid #dfe7f1!important;border-radius:18px!important;background:#f6f8fb!important;box-shadow:0 24px 80px rgba(20,39,67,.22)!important;overflow:hidden!important}
.pricing-rule-editor-modern .pricing-rule-editor-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:20px!important;padding:20px 24px 16px!important;background:#fff!important;border-bottom:1px solid #e5ebf3!important}
.pricing-rule-editor-modern .pricing-editor-head-main{min-width:0!important}
.pricing-rule-editor-modern .pricing-editor-eyebrow{display:flex!important;align-items:center!important;gap:7px!important;color:#3979e8!important;font-size:10px!important;font-weight:800!important;letter-spacing:.02em!important}
.pricing-rule-editor-modern .pricing-editor-eyebrow i{font-size:12px!important}
.pricing-rule-editor-modern .pricing-editor-title-row{display:flex!important;align-items:center!important;gap:12px!important;flex-wrap:wrap!important;margin-top:5px!important}
.pricing-rule-editor-modern .pricing-editor-title-row h5{margin:0!important;color:#17385f!important;font-size:22px!important;font-weight:850!important;letter-spacing:-.025em!important}
.pricing-rule-editor-modern .pricing-editor-store{display:inline-flex!important;align-items:center!important;gap:7px!important;padding:5px 9px!important;border:1px solid #dce7f4!important;border-radius:999px!important;background:#f8fbff!important;color:#58718e!important;font-size:10px!important;font-weight:700!important}
.pricing-rule-editor-modern .pricing-editor-store i{color:#3979e8!important}
.pricing-rule-editor-modern .pricing-editor-store em{padding:2px 7px!important;border-radius:999px!important;background:#eaf8f0!important;color:#25865c!important;font-size:8px!important;font-style:normal!important;font-weight:800!important}
.pricing-rule-editor-modern .pricing-editor-store em.is-missing{background:#fff5e5!important;color:#ad7010!important}
.pricing-rule-editor-modern .pricing-rule-editor-head p{max-width:850px!important;margin:7px 0 0!important;color:#8291a5!important;font-size:10px!important;line-height:1.6!important}
.pricing-rule-editor-modern .pricing-editor-close{width:38px!important;height:38px!important;flex:0 0 38px!important;border:1px solid #dce4ee!important;border-radius:10px!important;background:#fff!important;color:#718198!important}
.pricing-rule-editor-modern .pricing-editor-close:hover{background:#f4f7fb!important;color:#23466f!important}
.pricing-rule-editor-modern .pricing-editor-steps{display:flex!important;align-items:center!important;gap:0!important;padding:0 24px!important;background:#fff!important;border-bottom:1px solid #e7edf4!important}
.pricing-rule-editor-modern .pricing-editor-steps span{display:flex!important;align-items:center!important;gap:7px!important;height:48px!important;color:#91a0b2!important;font-size:10px!important;font-weight:750!important;white-space:nowrap!important}
.pricing-rule-editor-modern .pricing-editor-steps span b{display:flex!important;align-items:center!important;justify-content:center!important;width:25px!important;height:25px!important;border-radius:50%!important;background:#edf1f6!important;color:#8492a5!important;font-size:9px!important}
.pricing-rule-editor-modern .pricing-editor-steps span.active{color:#2f72de!important}
.pricing-rule-editor-modern .pricing-editor-steps span.active b{background:#eaf2ff!important;color:#2f72de!important}
.pricing-rule-editor-modern .pricing-editor-steps i{height:1px!important;flex:1!important;min-width:28px!important;background:#e5ebf2!important;margin:0 12px!important}
.pricing-rule-editor-modern .pricing-rule-editor-body{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;padding:16px 20px 22px!important;background:#f6f8fb!important;overflow:auto!important}
.pricing-rule-editor-modern .pricing-editor-notice{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:11px 13px!important;border:1px solid #dce9fb!important;border-radius:11px!important;background:#f4f8ff!important;color:#617894!important}
.pricing-rule-editor-modern .pricing-editor-notice i{color:#3979e8!important;margin-top:1px!important;font-size:13px!important}
.pricing-rule-editor-modern .pricing-editor-notice strong{display:block!important;color:#2b4e79!important;font-size:10px!important;margin-bottom:2px!important}
.pricing-rule-editor-modern .pricing-editor-notice span{display:block!important;font-size:9px!important;line-height:1.5!important}
.pricing-rule-editor-modern .pricing-editor-section{margin:0!important;padding:15px!important;border:1px solid #e0e7f0!important;border-radius:14px!important;background:#fff!important;box-shadow:0 2px 8px rgba(30,53,81,.025)!important}
.pricing-rule-editor-modern .pricing-editor-section-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin-bottom:12px!important}
.pricing-rule-editor-modern .pricing-editor-section-head h6{margin:0 0 3px!important;color:#24466f!important;font-size:13px!important;font-weight:850!important}
.pricing-rule-editor-modern .pricing-editor-section-head small{color:#91a0b2!important;font-size:9px!important;line-height:1.4!important}
.pricing-rule-editor-modern .pricing-section-index{display:flex!important;align-items:center!important;justify-content:center!important;width:31px!important;height:31px!important;border-radius:10px!important;background:#eef5ff!important;color:#3979e8!important;font-size:9px!important;font-weight:850!important}
.pricing-cost-cards{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
.pricing-cost-card{display:block!important;padding:12px!important;margin:0!important;border:1px solid #e2e9f1!important;border-radius:11px!important;background:#fbfcfe!important}
.pricing-cost-card>span{display:block!important;margin-bottom:7px!important;color:#5e738f!important;font-size:10px!important;font-weight:800!important}
.pricing-cost-card .input-group{display:flex!important;width:100%!important}
.pricing-rule-editor-modern .pricing-cost-card input.form-control,.pricing-rule-editor-modern .pricing-rule-card input.form-control,.pricing-rule-editor-modern .pricing-range-fields input.form-control{height:40px!important;min-height:40px!important;border:1px solid #d5dfeb!important;box-shadow:none!important;background:#fff!important;color:#1e3b61!important;font-size:13px!important;font-weight:800!important}
.pricing-rule-editor-modern .pricing-cost-card .input-group-text,.pricing-rule-editor-modern .pricing-rule-card .input-group-text{height:40px!important;min-height:40px!important;border:1px solid #d5dfeb!important;background:#f4f7fa!important;color:#74859a!important;font-size:11px!important;font-weight:700!important}
.pricing-rule-editor-modern .pricing-cost-card input:focus,.pricing-rule-editor-modern .pricing-rule-card input:focus,.pricing-rule-editor-modern .pricing-range-fields input:focus,.pricing-rule-editor-modern .pricing-range-fields select:focus{border-color:#72a1ea!important;box-shadow:0 0 0 3px rgba(57,121,232,.09)!important}
.pricing-cost-card small{display:block!important;margin-top:6px!important;color:#9aa7b6!important;font-size:8px!important;line-height:1.4!important}
.pricing-cost-card-accent{background:#fafdff!important;border-color:#dce9f9!important}
.pricing-delivery-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.pricing-rule-card{display:grid!important;grid-template-columns:34px minmax(0,1fr) 170px!important;align-items:center!important;gap:10px!important;margin:0!important;padding:11px!important;border:1px solid #e2e9f1!important;border-radius:11px!important;background:#fbfcfe!important}
.pricing-rule-card-icon{width:34px!important;height:34px!important;border-radius:9px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#eef5ff!important;color:#3979e8!important;font-size:14px!important}
.pricing-rule-card-copy span{display:block!important;color:#304b70!important;font-size:11px!important;font-weight:800!important}.pricing-rule-card-copy small{display:block!important;margin-top:3px!important;color:#98a5b5!important;font-size:8px!important;line-height:1.4!important}
.pricing-delivery-rule-preview-modern{display:flex!important;align-items:center!important;gap:8px!important;margin-top:9px!important;padding:9px 11px!important;border:1px solid #cfeedd!important;border-radius:9px!important;background:#f2fbf6!important;color:#4f7b65!important;font-size:9px!important}.pricing-delivery-rule-preview-modern i{color:#2ba36e!important}.pricing-delivery-rule-preview-modern b{color:#1e7652!important}
.pricing-range-editor-modern{display:flex!important;flex-direction:column!important;gap:9px!important}.pricing-range-editor-modern .pricing-range-row{padding:12px!important;border:1px solid #e0e7ef!important;border-radius:11px!important;background:#fcfdff!important}.pricing-range-editor-modern .pricing-range-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-bottom:9px!important}.pricing-range-editor-modern .pricing-range-top strong{color:#2d4d73!important;font-size:10px!important}.pricing-range-editor-modern .pricing-range-fields{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}.pricing-range-editor-modern .pricing-range-fields label{position:relative!important;min-width:0!important;color:#7b8b9f!important;font-size:8px!important}.pricing-range-editor-modern .pricing-range-fields input,.pricing-range-editor-modern .pricing-range-fields select{width:100%!important;margin-top:4px!important;border-radius:8px!important;font-size:10px!important}.pricing-range-editor-modern .pricing-range-fields .range-suffix{position:absolute!important;right:8px!important;bottom:10px!important;color:#8b99aa!important;font-size:9px!important}.pricing-range-editor-modern .pricing-range-fields input:has(+ .range-suffix){padding-right:24px!important}
.pricing-drawer-template-state-modern{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:9px 10px!important;margin-bottom:9px!important;background:#f7faff!important;border:1px solid #e1ebf8!important;border-radius:9px!important}.pricing-drawer-template-state-modern strong{font-size:10px!important;color:#28476f!important}.pricing-drawer-template-state-modern span{font-size:8px!important;color:#8392a6!important}
.pricing-editor-inline-note-modern{display:flex!important;gap:8px!important;align-items:flex-start!important;padding:9px 10px!important;border:1px dashed #dfe6ee!important;border-radius:9px!important;background:#fafbfd!important;color:#7d8999!important;font-size:9px!important;line-height:1.5!important}.pricing-editor-inline-note-modern i{color:#5b86c9!important}
.pricing-editor-advanced-modern{border:1px solid #e0e7ef!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important}.pricing-editor-advanced-modern>summary{display:flex!important;align-items:center!important;gap:8px!important;padding:13px 15px!important;cursor:pointer!important;list-style:none!important;color:#536b87!important;font-size:10px!important;font-weight:800!important}.pricing-editor-advanced-modern>summary::-webkit-details-marker{display:none}.pricing-editor-advanced-modern>summary small{margin-left:auto!important;color:#9ba7b6!important;font-size:8px!important;font-weight:500!important}.pricing-editor-advanced-modern .pricing-rule-advanced{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;padding:0 15px 15px!important}.pricing-editor-advanced-modern .pricing-rule-advanced>div>span{display:block!important;margin-bottom:5px!important;color:#718198!important;font-size:9px!important;font-weight:700!important}.pricing-editor-advanced-modern .form-control,.pricing-editor-advanced-modern .form-select,.pricing-editor-advanced-modern .input-group-text{height:38px!important;min-height:38px!important;border-color:#d8e1ec!important;box-shadow:none!important;font-size:10px!important}
.pricing-rule-editor-modern .pricing-rule-editor-foot-modern{padding:12px 20px 14px!important;border-top:1px solid #e1e8f0!important;background:#fff!important;box-shadow:0 -8px 24px rgba(32,52,78,.07)!important;flex:0 0 auto!important}.pricing-rule-editor-modern .pricing-editor-save-hint{margin-bottom:9px!important;color:#8997a8!important;font-size:8px!important}.pricing-rule-editor-modern .pricing-editor-actions{display:flex!important;gap:10px!important}.pricing-rule-editor-modern .pricing-editor-actions .btn{height:42px!important;border-radius:9px!important;font-size:11px!important;font-weight:800!important}.pricing-rule-editor-modern .pricing-editor-actions .btn-light{flex:0 0 180px!important;background:#f5f7fa!important;border:1px solid #e1e7ee!important;color:#5c6d82!important}.pricing-rule-editor-modern .pricing-editor-actions .btn-primary{flex:1!important;background:#3473e5!important;border-color:#3473e5!important;box-shadow:0 6px 16px rgba(52,115,229,.18)!important}
@media(max-width:1000px){.pricing-cost-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.pricing-range-editor-modern .pricing-range-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important}.pricing-editor-advanced-modern .pricing-rule-advanced{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.pricing-rule-editor-backdrop{padding:0!important}.pricing-rule-editor-modern{width:100%!important;height:100dvh!important;max-height:none!important;border-radius:0!important}.pricing-rule-editor-modern .pricing-rule-editor-head{padding:16px!important}.pricing-rule-editor-modern .pricing-editor-title-row h5{font-size:18px!important}.pricing-rule-editor-modern .pricing-editor-steps{padding:0 16px!important;overflow:auto!important}.pricing-rule-editor-modern .pricing-editor-steps i{display:none!important}.pricing-rule-editor-modern .pricing-rule-editor-body{padding:12px!important}.pricing-cost-cards,.pricing-delivery-grid,.pricing-editor-advanced-modern .pricing-rule-advanced{grid-template-columns:1fr!important}.pricing-rule-card{grid-template-columns:34px minmax(0,1fr)!important}.pricing-rule-card .input-group{grid-column:1/-1!important}.pricing-range-editor-modern .pricing-range-fields{grid-template-columns:1fr 1fr!important}.pricing-rule-editor-modern .pricing-rule-editor-foot-modern{padding:10px 12px 12px!important}.pricing-rule-editor-modern .pricing-editor-actions .btn-light,.pricing-rule-editor-modern .pricing-editor-actions .btn-primary{flex:1!important}}

/* 定价类别增强：保持现有定价样式，仅增加类别选择与管理布局 */
.pricing-category-editor-bar{display:flex;align-items:end;gap:12px;padding:12px 14px;margin:10px 0 14px;border:1px solid var(--bs-border-color,#dee2e6);border-radius:12px;background:var(--bs-light,#f8f9fa)}
.pricing-category-editor-bar>label{display:flex;align-items:center;gap:8px;min-width:280px;margin:0}.pricing-category-editor-bar>label>span{font-size:13px;font-weight:600;white-space:nowrap}.pricing-category-editor-bar select{min-width:180px}.pricing-category-actions{display:flex;gap:8px;margin-left:auto}
@media(max-width:768px){.pricing-category-editor-bar{align-items:stretch;flex-direction:column}.pricing-category-editor-bar>label{align-items:flex-start;flex-direction:column}.pricing-category-editor-bar select{width:100%}.pricing-category-actions{margin-left:0}.pricing-category-actions button{flex:1}}
/* 20260915 定价管理：商品类别与手动搜索 */
.pricing-search{display:flex;align-items:center;gap:8px}.pricing-search .form-control{min-width:260px}.pricing-search #pricingSearchBtn{white-space:nowrap}
.pricing-category-badge{display:inline-flex;align-items:center;max-width:120px;padding:4px 9px;border-radius:999px;background:var(--bs-light,#f4f6f8);color:#495057;font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pricing-category-badge:not(:empty){border:1px solid rgba(0,0,0,.06)}
.pricing-category-modal-backdrop{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.42);padding:20px}.pricing-category-modal{width:min(520px,100%);background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden}.pricing-category-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #edf0f2}.pricing-category-modal-head div{display:flex;flex-direction:column;gap:3px}.pricing-category-modal-head span{font-size:14px;color:#6c757d}.pricing-category-modal-head strong{font-size:18px}.pricing-category-modal-body{padding:20px}.pricing-category-modal-body label{display:block}.pricing-category-modal-body label>span{display:block;margin-bottom:7px;font-weight:600}.pricing-category-modal-body small{display:block;margin-top:10px;color:#6c757d}.pricing-category-or{text-align:center;color:#adb5bd;margin:14px 0}.pricing-category-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid #edf0f2;background:#fafbfc}

/* 20260916 定价类别自动匹配与备注 */
.pricing-auto-match-badge{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--bs-border-color,#dee2e6);border-radius:10px;background:var(--bs-light,#f8f9fa);white-space:nowrap}.pricing-auto-match-badge span{font-size:12px;color:#6c757d}.pricing-auto-match-badge strong{font-size:13px}.pricing-category-meta-editor{display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,1.5fr);gap:16px;margin:12px 0 16px;padding:14px;border:1px solid var(--bs-border-color,#dee2e6);border-radius:12px;background:rgba(0,0,0,.015)}.pricing-category-meta-editor>label{display:block}.pricing-category-meta-editor>label>span{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.pricing-related-category-list{display:flex;flex-wrap:wrap;gap:8px;min-height:38px;align-items:center}.pricing-related-category-item{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--bs-border-color,#dee2e6);border-radius:999px;background:#fff;cursor:pointer;font-size:13px}.pricing-related-category-item:hover{border-color:var(--bs-primary,#0d6efd);box-shadow:0 2px 8px rgba(0,0,0,.08)}.pricing-related-category-item input{margin:0}.pricing-category-badge[title]:not([title=""]){cursor:help}.pricing-template-match{display:block;margin-top:3px;font-size:11px;color:#0d6efd;line-height:1.25}.pricing-template-match.muted{color:#8a9199}.pricing-category-editor-bar select option[title]{cursor:help}@media(max-width:900px){.pricing-category-meta-editor{grid-template-columns:1fr}}

/* 商品定价明细：排序表头使用自定义按钮时，彻底清除浏览器原生 button 黑框；保留可访问的键盘焦点提示。 */
.pricing-table-redesign .pricing-sort-head{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  margin:0!important;
  padding:0!important;
  width:auto!important;
  min-width:0!important;
  color:inherit!important;
  font:inherit!important;
  font-weight:inherit!important;
  line-height:inherit!important;
  text-align:left;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:3px;
}
.pricing-table-redesign .pricing-sort-head:hover{color:#2d72d9!important}
.pricing-table-redesign .pricing-sort-head:focus{outline:0!important;box-shadow:none!important}
.pricing-table-redesign .pricing-sort-head:focus-visible{outline:2px solid rgba(45,114,217,.28)!important;outline-offset:3px;border-radius:4px}
.pricing-table-redesign .pricing-sort-head.active{color:#2d72d9!important}
.pricing-table-redesign .pricing-sort-indicator{display:inline-block;min-width:10px;font-size:10px;font-weight:900;line-height:1}

/* Unified pagination: replaces all automatic scroll loading. */
.unified-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;margin-top:10px;background:#fff;border:1px solid #e8edf3;border-radius:10px;color:#667085;font-size:.75rem}
.pagination-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.pagination-controls .btn{min-width:34px}.pagination-size{width:auto;min-width:108px}.pagination-ellipsis{padding:0 3px;color:#98a2b3}
@media(max-width:768px){.unified-pagination{justify-content:center}.pagination-summary{width:100%;text-align:center}.pagination-controls{justify-content:center}}


/* 标题字段来源提示：仅悬停/聚焦显示，不占用表格列。 */
.source-info-wrap{position:relative;display:inline-flex;align-items:center;margin-left:.35rem;vertical-align:middle;cursor:help;outline:none}
.source-info-icon{font-size:.9em;color:#4b7bec;opacity:.9}
.source-info-wrap:hover .source-info-icon,.source-info-wrap:focus .source-info-icon{opacity:1}
.source-info-tooltip{position:fixed;z-index:100000;top:0;left:0;min-width:330px;max-width:460px;padding:12px 14px;border:1px solid rgba(20,35,55,.14);border-radius:10px;background:#1f2a38;color:#fff;box-shadow:0 10px 28px rgba(20,35,55,.2);font-size:13px;line-height:1.45;visibility:hidden;opacity:0;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease,visibility .12s ease;pointer-events:none;text-align:left}
.source-info-tooltip strong{display:block;margin-bottom:8px;font-size:14px}
.source-info-row{display:grid;grid-template-columns:64px 18px minmax(0,1fr);gap:3px;align-items:start;padding:3px 0}
.source-info-label{font-weight:600;color:#fff}
.source-info-arrow{color:#8db6ff;text-align:center}
.source-info-source{color:#e7edf5;overflow-wrap:anywhere}
.source-info-note{grid-column:1 / -1;padding-left:85px;color:#b9c5d3;font-size:11px}
.source-info-wrap:hover .source-info-tooltip,.source-info-wrap:focus .source-info-tooltip,.source-info-wrap[data-source-open="1"] .source-info-tooltip{visibility:visible;opacity:1;transform:translateY(0)}
.source-info-wrap .source-info-tooltip:before{content:"";position:absolute;top:-6px;left:13px;width:11px;height:11px;background:#1f2a38;border-left:1px solid rgba(20,35,55,.14);border-top:1px solid rgba(20,35,55,.14);transform:rotate(45deg)}
@media(max-width:576px){.source-info-tooltip{min-width:0;max-width:calc(100vw - 20px);width:min(420px,calc(100vw - 20px));}.source-info-tooltip:before{display:none}}

.field-source-header{display:inline-flex;align-items:center;gap:.2rem;vertical-align:middle}
.table th .field-source-header{white-space:nowrap}

.shelf-setting-field{display:flex;align-items:center;gap:6px;min-width:0}.shelf-setting-field>span{display:inline-flex;align-items:center;min-width:0}

/* pricing title visibility hardening */
/* pricing title visibility hardening: title must remain visible regardless of generic strong/span rules */
.pricing-table-head-redesign{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;min-height:66px!important;padding:12px 16px!important;background:#fff!important;position:relative!important;overflow:visible!important;}
.pricing-table-head-redesign .pricing-table-head-title{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;min-width:0!important;position:relative!important;z-index:2!important;visibility:visible!important;opacity:1!important;overflow:visible!important;}
.pricing-table-head-redesign .pricing-table-title-text{display:block!important;margin:0!important;padding:0!important;position:relative!important;z-index:3!important;visibility:visible!important;opacity:1!important;color:#1d2b43!important;font-family:inherit!important;font-size:15px!important;font-weight:800!important;line-height:1.45!important;white-space:nowrap!important;}
.pricing-table-head-redesign .pricing-table-title-subtitle{display:block!important;margin:3px 0 0!important;padding:0!important;position:relative!important;z-index:3!important;visibility:visible!important;opacity:1!important;color:#8994a6!important;font-size:10px!important;font-weight:400!important;line-height:1.5!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;}
.pricing-table-head-redesign .pricing-table-tools{display:flex!important;flex:0 0 auto!important;position:relative!important;z-index:4!important;}
@media(max-width:768px){.pricing-table-head-redesign{min-height:74px!important;align-items:flex-start!important}.pricing-table-head-redesign .pricing-table-title-text{font-size:14px!important}.pricing-table-head-redesign .pricing-table-title-subtitle{max-width:calc(100vw - 32px)!important;white-space:normal!important}.pricing-table-head-redesign .pricing-table-tools{flex-direction:column!important}}

/* 20260919 pricing header regression fix: sort state must target only the indicator,
   never the field-source-header span that contains the actual column title. */
.pricing-table-redesign .pricing-sort-indicator{
  display:inline-block!important;
  flex:0 0 auto!important;
  min-width:10px!important;
  width:auto!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
  color:inherit!important;
  visibility:visible!important;
  opacity:1!important;
}
.pricing-table-redesign .pricing-sort-head .field-source-header{
  display:inline-flex!important;
  align-items:center!important;
  gap:.2rem!important;
  min-width:0!important;
  width:auto!important;
  visibility:visible!important;
  opacity:1!important;
  color:inherit!important;
  font-size:inherit!important;
  line-height:inherit!important;
}

/* V5.2 shelf mobile card-size fix: these rules intentionally come last so they override the legacy compact card rules. */
@media (max-width:768px){
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-detail .shelf-card-row .shelf-card,
  #shelfContainer[data-mobile-card-size="compact"] .shelf-card-row .shelf-card{min-height:88px!important;padding:9px 10px!important;border-radius:13px!important;}
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-detail .shelf-card .position-code{font-size:12px!important;}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-detail .shelf-card-row .shelf-card,
  #shelfContainer[data-mobile-card-size="standard"] .shelf-card-row .shelf-card{min-height:104px!important;padding:11px!important;border-radius:13px!important;}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-detail .shelf-card-row .shelf-card,
  #shelfContainer[data-mobile-card-size="large"] .shelf-card-row .shelf-card{min-height:138px!important;padding:15px!important;border-radius:18px!important;}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-detail .shelf-card .position-code{font-size:16px!important;}
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-detail .shelf-product-name{font-size:10px!important;}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-detail .shelf-product-name{font-size:13px!important;}
}


/* V5.4: 货架卡片内容按实际字段自然流式排列，禁止在字段较少时把内容上下拉开造成大面积中空。 */
#shelfContainer .shelf-card{justify-content:flex-start!important;align-items:center!important;height:auto!important;box-sizing:border-box!important;gap:3px!important;}
#shelfContainer .shelf-card .shelf-card-top{flex:0 0 auto!important;margin-bottom:1px!important;}
#shelfContainer .shelf-card .shelf-product-name,#shelfContainer .shelf-card .shelf-extra,#shelfContainer .shelf-card .shelf-verify-state{flex:0 0 auto!important;margin-top:0!important;margin-bottom:0!important;}
#shelfContainer .shelf-card .shelf-stock-line{flex:0 0 auto!important;margin-top:4px!important;margin-bottom:0!important;}
@media(max-width:768px){#shelfContainer .shelf-card{justify-content:flex-start!important;gap:3px!important;}#shelfContainer .shelf-card .shelf-stock-line{margin-top:3px!important;}}


/* V5.5: 货架卡片最终布局修复。
 * 卡片高度必须由实际显示字段决定，不能因为同一行存在信息较多的卡片而把其它卡片拉成大面积空白。
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  grid-auto-rows:max-content!important;
  align-items:start!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{
  align-self:start!important;
  min-height:0!important;
  height:auto!important;
  justify-content:flex-start!important;
  gap:5px!important;
}
#shelfContainer .shelf-card .position-code{line-height:1.2!important;}
#shelfContainer .shelf-card .shelf-product-name{min-height:0!important;}
#shelfContainer .shelf-card .shelf-stock-line{margin-top:5px!important;}
@media(max-width:768px){
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-body.shelf-card-row .shelf-card,
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-body.shelf-card-row .shelf-card,
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-body.shelf-card-row .shelf-card{
    min-height:0!important;
    height:auto!important;
    align-self:start!important;
  }
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-body.shelf-card-row .shelf-card{padding:9px 10px!important;gap:3px!important;}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-body.shelf-card-row .shelf-card{padding:11px!important;gap:4px!important;}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-body.shelf-card-row .shelf-card{padding:15px!important;gap:6px!important;}
}

/* V5.6: shelf card proportion only — keep early card structure, correct width/height balance. */
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{
  flex:0 0 184px!important;
  width:184px!important;
  min-width:184px!important;
  max-width:184px!important;
  min-height:124px!important;
  height:auto!important;
  aspect-ratio:1.48 / 1;
  box-sizing:border-box!important;
  justify-content:flex-start!important;
  gap:0!important;
  padding:12px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card .shelf-card-top{flex:0 0 auto}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card .shelf-product-name{min-height:0!important;margin-top:5px}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card .shelf-stock-line{margin-top:auto!important;margin-bottom:0!important;padding-top:8px}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{
    flex:0 0 var(--shelf-mobile-card-width,142px)!important;
    width:var(--shelf-mobile-card-width,142px)!important;
    min-width:var(--shelf-mobile-card-width,142px)!important;
    max-width:var(--shelf-mobile-card-width,142px)!important;
    min-height:110px!important;
    aspect-ratio:1.42 / 1;
    padding:10px!important;
  }
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-body.shelf-card-row .shelf-card{min-height:96px!important}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-body.shelf-card-row .shelf-card{min-height:110px!important}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-body.shelf-card-row .shelf-card{min-height:132px!important}
}

/* V5.7 CARD DISPLAY ONLY: restore a balanced fixed card proportion.
   Do not let CSS Grid stretch cards to fill the entire shelf width. */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,190px)!important;
  grid-auto-rows:max-content!important;
  justify-content:start!important;
  align-items:start!important;
  align-content:start!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
  min-height:128px!important;
  height:auto!important;
  aspect-ratio:1.484375 / 1!important;
  box-sizing:border-box!important;
  align-self:start!important;
  justify-self:start!important;
  padding:12px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card .shelf-card-top{flex:0 0 auto!important}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card .shelf-stock-line{margin-top:auto!important;padding-top:7px!important}
@media(max-width:1100px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(auto-fill,180px)!important;gap:12px!important}
  #shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{width:180px!important;min-width:180px!important;max-width:180px!important;min-height:121px!important}
}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{
    width:auto!important;min-width:0!important;max-width:none!important;
    min-height:0!important;height:auto!important;aspect-ratio:1.42 / 1!important;
  }
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-body.shelf-card-row .shelf-card{min-height:96px!important}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-body.shelf-card-row .shelf-card{min-height:110px!important}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-body.shelf-card-row .shelf-card{min-height:132px!important}
}

/* V5.8 CARD DISPLAY ONLY: enforce the intended card geometry at the final cascade. */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,190px)!important;
  grid-auto-rows:max-content!important;
  justify-content:start!important;
  align-items:start!important;
  align-content:start!important;
  gap:14px!important;
  padding:10px 4px 16px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
  min-height:128px!important;
  height:auto!important;
  aspect-ratio:auto!important;
  align-self:start!important;
  justify-self:start!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{
  margin-top:6px!important;
  padding-top:0!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-verify-state{
  flex:0 0 auto!important;
}
@media (min-width:769px) and (max-width:1100px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(auto-fill,180px)!important;gap:12px!important;}
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{width:180px!important;min-width:180px!important;max-width:180px!important;min-height:122px!important;}
}
@media (max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    padding:8px 2px 12px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
    width:auto!important;min-width:0!important;max-width:none!important;
    min-height:0!important;height:auto!important;aspect-ratio:auto!important;
  }
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-body.shelf-card-row > .shelf-card{min-height:96px!important;padding:9px 10px!important;}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-body.shelf-card-row > .shelf-card{min-height:110px!important;padding:11px!important;}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-body.shelf-card-row > .shelf-card{min-height:132px!important;padding:15px!important;}
}


/* V5.9 CARD DISPLAY ONLY: adaptive card geometry.
   Cards size themselves from the available shelf width instead of being stretched
   to fill a grid track. Content may grow the card vertically; sparse cards stay compact. */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:flex-start!important;
  align-content:flex-start!important;
  justify-content:flex-start!important;
  gap:14px!important;
  width:100%!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  padding:8px 4px 16px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
  flex:0 1 clamp(145px,11vw,176px)!important;
  width:clamp(145px,11vw,176px)!important;
  min-width:145px!important;
  max-width:176px!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:1.45 / 1!important;
  align-self:flex-start!important;
  box-sizing:border-box!important;
  padding:11px!important;
  gap:4px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{
  margin-top:5px!important;
  padding-top:0!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-verify-state,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{
  flex:0 0 auto!important;
}
@media (min-width:769px) and (max-width:1200px){
  #shelfContainer .shelf-rack-body.shelf-card-row{gap:12px!important}
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
    flex-basis:clamp(140px,14vw,165px)!important;
    width:clamp(140px,14vw,165px)!important;
    max-width:165px!important;
    aspect-ratio:1.43 / 1!important;
  }
}
@media (max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    padding:8px 2px 12px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:1.38 / 1!important;
    padding:10px!important;
  }
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-body.shelf-card-row > .shelf-card{min-height:0!important;padding:8px 9px!important;gap:3px!important}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-body.shelf-card-row > .shelf-card{min-height:0!important;padding:10px!important;gap:4px!important}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-body.shelf-card-row > .shelf-card{min-height:0!important;padding:13px!important;gap:6px!important}
}

/* V5.10 CARD DISPLAY ONLY: content-first responsive geometry.
   This is the final card-layout rule. It intentionally overrides the older V5.6-V5.9
   fixed/aspect-ratio rules without changing any data, filtering, or business logic. */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(160px,178px))!important;
  justify-content:start!important;
  align-items:start!important;
  align-content:start!important;
  grid-auto-rows:max-content!important;
  gap:12px!important;
  padding:8px 4px 14px!important;
  width:100%!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
  padding:10px 11px!important;
  gap:4px!important;
  justify-content:flex-start!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-verify-state,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{
  flex:0 0 auto!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{
  margin-top:4px!important;
  padding-top:0!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name{
  margin-top:1px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .position-code{
  line-height:1.2!important;
}

@media (min-width:769px) and (max-width:1200px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(auto-fill,minmax(150px,170px))!important;
    gap:10px!important;
  }
}
@media (max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
    padding:7px 2px 11px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:auto!important;
  }
  #shelfContainer[data-mobile-card-size="compact"] .shelf-rack-body.shelf-card-row > .shelf-card{padding:8px 9px!important;gap:3px!important}
  #shelfContainer[data-mobile-card-size="standard"] .shelf-rack-body.shelf-card-row > .shelf-card{padding:10px!important;gap:4px!important}
  #shelfContainer[data-mobile-card-size="large"] .shelf-rack-body.shelf-card-row > .shelf-card{padding:13px!important;gap:6px!important}
}

/* V5.11 CARD GRID: density-aware columns + content-driven card height. */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(var(--shelf-columns, 6), minmax(0, 1fr))!important;
  grid-auto-rows:max-content!important;
  align-items:start!important;
  align-content:start!important;
  gap:12px!important;
  padding:8px 4px 14px!important;
  width:100%!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
  padding:11px 12px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  gap:3px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-verify-state,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .gift-indicator,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-empty-reason{flex:0 0 auto!important}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{margin:2px 0 0!important;padding:0!important}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name{min-height:0!important;margin:0!important}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(var(--shelf-columns,2),minmax(0,1fr))!important;gap:9px!important;padding:7px 2px 11px!important}
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{padding:9px!important;min-height:0!important;height:auto!important}
}

/* V5.12 AUTHORITATIVE SHELF GRID
 * Card display only. The JS calculates the optimal column count from the real
 * rendered layer width; this final rule prevents legacy flex/grid rules from
 * stretching cards or reintroducing fixed widths/heights.
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-auto-flow:row!important;
  grid-auto-rows:max-content!important;
  align-items:start!important;
  align-content:start!important;
  justify-content:stretch!important;
  gap:12px!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  padding:8px 4px 14px!important;
  overflow:visible!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:3px!important;
  padding:10px 11px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-verify-state,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .gift-indicator,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-empty-reason{
  flex:0 0 auto!important;
  margin-top:0!important;
  margin-bottom:0!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{
  margin-top:3px!important;
  padding-top:0!important;
}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    gap:9px!important;
    padding:7px 2px 11px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
    min-width:0!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:auto!important;
  }
}


/* V5.13 AUTHORITATIVE UNIVERSAL CARD GRID
 * The card-size setting is universal on desktop and mobile.
 * JS determines columns and card width from the actual rendered layer width.
 * No fixed desktop/mobile width or aspect-ratio is used.
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(var(--shelf-columns,1), minmax(0,var(--shelf-card-width,178px)))!important;
  grid-auto-rows:max-content!important;
  align-items:start!important;
  align-content:start!important;
  justify-content:start!important;
  column-gap:var(--shelf-card-gap,12px)!important;
  row-gap:var(--shelf-card-gap,12px)!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:8px 4px 14px!important;
  overflow:visible!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card{
  width:var(--shelf-card-width,178px)!important;
  min-width:0!important;
  max-width:var(--shelf-card-width,178px)!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  align-self:start!important;
  justify-self:start!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:4px!important;
  padding:10px 11px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-verify-state,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-stock-line,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .gift-indicator,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-empty-reason{
  flex:0 0 auto!important;
  margin-top:0!important;
  margin-bottom:0!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-stock-line{margin-top:3px!important;padding-top:0!important}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card{
    width:var(--shelf-card-width,178px)!important;
    max-width:var(--shelf-card-width,178px)!important;
  }
}

/* V5.14 shelf card unified state layout */
.shelf-card,.shelf-card.missing,.shelf-card.soldout,.shelf-card.pending,.shelf-card.verified{display:flex;flex-direction:column;justify-content:flex-start;gap:6px;}
.shelf-card .shelf-card-top{flex:0 0 auto;}
.shelf-card .shelf-stock-line{margin-top:auto!important;padding-top:4px;}
.shelf-card .missing-badge{position:absolute;right:8px;top:8px;}
.shelf-card{position:relative;}

/* V5.15 unified shelf card states */
.shelf-card .shelf-card-empty-content{min-height:36px;display:flex;align-items:center}
.shelf-card.missing .missing-badge{position:static;margin-left:8px}
.shelf-card.missing .shelf-empty-state{font-size:.9rem;color:inherit}
.shelf-card.missing .shelf-stock-line strong{color:var(--gray-600)}
.shelf-card{justify-content:flex-start!important}
.shelf-card .shelf-stock-line{margin-top:10px!important}

/* 空位卡片保持与正常卡片一致结构 */
.shelf-card.missing{min-height:135px;opacity:1;border-style:solid;}
.shelf-card.missing .shelf-empty-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#64748b;gap:6px;}
.shelf-card.missing .shelf-empty-title{font-weight:700;color:#475467;}


/* V5.17 EMPTY SLOT CONTRACT: no user reason => only show the empty-slot title.
 * Defensive rule also neutralizes legacy cached markup until the new JS is loaded.
 */
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(.missing-edited) .shelf-empty-icon,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(.missing-edited) .shelf-empty-status,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(.missing-edited) .shelf-empty-reason,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(.missing-edited) .shelf-empty-hint{
  display:none!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(.missing-edited) .shelf-empty-content{
  min-height:0!important; padding:8px 2px!important; gap:0!important;
}

/* V5.16 FINAL SHELF / EMPTY-SLOT LAYOUT
 * Single authoritative visual layer for the shelf card grid.
 * Data/business logic is unchanged.
 * Empty slots are real physical positions and use the same grid geometry as product cards.
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(var(--shelf-columns,1),minmax(0,var(--shelf-card-width,178px)))!important;
  grid-auto-flow:row!important;
  grid-auto-rows:max-content!important;
  align-items:start!important;
  align-content:start!important;
  justify-content:start!important;
  column-gap:var(--shelf-card-gap,12px)!important;
  row-gap:var(--shelf-card-gap,12px)!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  padding:8px 4px 14px!important;
  overflow:visible!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card{
  width:var(--shelf-card-width,178px)!important;
  min-width:0!important;
  max-width:var(--shelf-card-width,178px)!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  align-self:start!important;
  justify-self:start!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:4px!important;
  padding:10px 11px!important;
  overflow:hidden!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-verify-state,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-stock-line,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .gift-indicator,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-empty-reason{
  flex:0 0 auto!important;
  margin-top:0!important;
  margin-bottom:0!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-card-top{width:100%!important}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .position-code{
  display:block!important;line-height:1.25!important;text-align:center!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-verify-state{
  text-align:left!important;width:100%!important;min-width:0!important;
  overflow-wrap:anywhere!important;word-break:break-word!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-product-name{margin-top:1px!important}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-stock-line{
  margin-top:3px!important;padding-top:0!important;width:100%!important;text-align:left!important;
}
/* 货号保持独立字段语义：始终居中显示，不受通用 shelf-extra 左对齐规则影响。 */
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .shelf-fixed-product-code{
  width:100%!important;text-align:center!important;
}

/* 空位卡片：与商品卡片共享同一网格宽度，不再使用独立固定宽高撑坏排版。 */
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing{
  min-height:var(--shelf-empty-min-height,110px)!important;
  height:auto!important;border-style:dashed!important;cursor:pointer!important;
  justify-content:flex-start!important;align-items:stretch!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-content{
  flex:1 1 auto!important;min-height:0!important;width:100%!important;
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  align-items:center!important;gap:3px!important;padding:4px 2px!important;
  text-align:center!important;color:#667085!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-icon{
  width:26px!important;height:26px!important;display:flex!important;align-items:center!important;
  justify-content:center!important;border-radius:8px!important;
  background:rgba(148,163,184,.12)!important;color:#64748b!important;font-size:14px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-title{
  margin:0!important;font-size:13px!important;line-height:1.2!important;font-weight:800!important;color:#475467!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-status{
  margin:0!important;font-size:11px!important;line-height:1.25!important;color:#98a2b3!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-reason{
  width:100%!important;max-width:100%!important;display:flex!important;align-items:flex-start!important;
  justify-content:center!important;gap:4px!important;margin-top:3px!important;padding:4px 6px!important;
  border-radius:7px!important;background:rgba(148,163,184,.09)!important;color:#667085!important;
  font-size:10px!important;line-height:1.35!important;text-align:left!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-reason i{
  flex:0 0 auto!important;margin-top:1px!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-reason span{
  min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important;
  word-break:break-word!important;display:block!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-hint{
  margin:2px 0 0!important;font-size:10px!important;line-height:1.2!important;color:#98a2b3!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:hover{transform:translateY(-1px)!important}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-content-simple{
  min-height:44px!important;flex:1 1 auto!important;padding:0!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-content-simple .shelf-empty-title{
  font-size:15px!important;line-height:1.3!important;
}

@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(var(--shelf-columns,2),minmax(0,1fr))!important;
    column-gap:var(--shelf-card-gap,9px)!important;row-gap:var(--shelf-card-gap,9px)!important;
    padding:7px 2px 11px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card{
    width:100%!important;min-width:0!important;max-width:none!important;padding:9px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing{
    min-height:var(--shelf-empty-min-height,110px)!important;
  }
}


/* V5.17 RESPONSIVE STRESS FIX
 * The grid must never use a synthetic minimum viewport width.
 * JS measures the real rendered body width; CSS only constrains cards to that width.
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card{
  min-width:0!important;
  box-sizing:border-box!important;
}
@media(max-width:767.98px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(var(--shelf-columns,1),minmax(0,1fr))!important;
    column-gap:var(--shelf-card-gap,9px)!important;
    row-gap:var(--shelf-card-gap,9px)!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card{
    width:100%!important;
    max-width:100%!important;
  }
}
@media(max-width:359px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    padding-left:0!important;
    padding-right:0!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card{
    padding:8px!important;
  }
}


/* V5.18 FINAL REQUIREMENTS: position code centered; empty slot without a real reason is text-only. */
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card .position-code{
  width:100%!important;
  text-align:center!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-content-simple{
  min-height:0!important;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing .shelf-empty-content-simple .shelf-empty-title{
  margin:0!important;
  font-size:15px!important;
  line-height:1.3!important;
  font-weight:800!important;
  color:#475467!important;
}

/* V5.19 FINAL EMPTY-SLOT DOM DEFENSE: legacy cached markup cannot bypass the no-reason rule. */
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(:has(.shelf-empty-reason span)) .shelf-empty-icon,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(:has(.shelf-empty-reason span)) .shelf-empty-status,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(:has(.shelf-empty-reason span)) .shelf-empty-reason,
#shelfContainer .shelf-rack-body.shelf-card-row>.shelf-card.missing:not(:has(.shelf-empty-reason span)) .shelf-empty-hint{
  display:none!important;
}


/* ===== 2026-09-30 货架视图稳定版 v63 =====
   目标：货位卡片固定尺寸、单货位不拉伸、空楼层紧凑、筛选结果布局一致。 */
#shelfContainer .shelf-layer-block.is-empty-layer .shelf-layer-header{
  min-height:42px!important;
  padding:7px 4px!important;
  background:#fff!important;
}
#shelfContainer .shelf-layer-block.is-empty-layer .shelf-layer-title{
  color:#667085!important;
  font-weight:700!important;
}
#shelfContainer .shelf-layer-block.is-empty-layer .shelf-layer-count{color:#98a2b3!important}
#shelfContainer .shelf-layer-block.is-empty-layer .shelf-layer-stats{display:flex!important}
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(var(--shelf-columns,6),var(--shelf-card-width,184px))!important;
  grid-auto-rows:max-content!important;
  justify-content:start!important;
  align-items:stretch!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{
  width:var(--shelf-card-width,184px)!important;
  min-width:var(--shelf-card-width,184px)!important;
  max-width:var(--shelf-card-width,184px)!important;
  flex:none!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row:has(.shelf-card:only-child){
  grid-template-columns:var(--shelf-card-width,184px)!important;
}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row .shelf-card{
    width:auto!important;min-width:0!important;max-width:none!important;
  }
}
#shelfFallbackNotice.shelf-fallback-notice{display:flex;gap:9px;align-items:flex-start;flex-wrap:wrap}
#shelfFallbackNotice.shelf-fallback-notice[hidden]{display:none!important}
#shelfContainer .shelf-layer-block.is-empty-layer + .shelf-layer-block{border-top-color:#f0f2f5!important}

/*
 * 【项目重点强制规则｜2026-10-01】货位卡片统一高度
 * 1. 正常货位与空位必须使用完全相同的固定卡片高度。
 * 2. 任何未来新增/减少商品名称、条码、货号、库存、核对信息或其它字段，都不得改变卡片高度。
 * 3. 内容只能在固定高度卡片内部适配，禁止由内容撑高卡片或改变同一 Grid 行高度。
 * 4. 空位原因展示严格为：无真实原因=“空位”；有真实原因=“原因本身”，二者不得同时显示。
 * 5. 禁止恢复空位图标、“暂无商品”等文案。
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  align-items:start!important;
  grid-auto-rows:var(--shelf-card-height,128px)!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
  height:var(--shelf-card-height,128px)!important;
  min-height:var(--shelf-card-height,128px)!important;
  max-height:var(--shelf-card-height,128px)!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
  align-self:start!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
  height:var(--shelf-card-height,128px)!important;
  min-height:var(--shelf-card-height,128px)!important;
  max-height:var(--shelf-card-height,128px)!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-empty-content{
  min-height:0!important;
  flex:1 1 auto!important;
  overflow:hidden!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-empty-title{
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  max-width:100%!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-icon,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-status,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-reason{
  display:none!important;
}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-auto-rows:var(--shelf-card-height,110px)!important;}
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
    height:var(--shelf-card-height,110px)!important;
    min-height:var(--shelf-card-height,110px)!important;
    max-height:var(--shelf-card-height,110px)!important;
  }
}
@media(max-width:380px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-auto-rows:var(--shelf-card-height,100px)!important;}
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
    height:var(--shelf-card-height,100px)!important;
    min-height:var(--shelf-card-height,100px)!important;
    max-height:var(--shelf-card-height,100px)!important;
  }
}


/* ===== 2026-10-01 强制货架卡片显示规则 fix9 =====
 * 【项目重点规则，禁止擅自修改】
 * 1. 卡片内显示内容统一居中；字段名称不因某个字段单独显示。
 * 2. 条形码在货架卡片只显示实际条码值，不显示“条形码(upc/ean等)”等字段名称。
 * 3. 正常货位与空位在桌面端、手机端均使用完全相同的固定高度；内容多少不得改变高度。
 * 4. 空位：无原因只显示“空位”；有原因只显示原因本身。
 * 5. 不恢复图标、“暂无商品”等空位附加内容。
 */
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card{
  height:var(--shelf-card-height,128px)!important;
  min-height:var(--shelf-card-height,128px)!important;
  max-height:var(--shelf-card-height,128px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-card-top,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-extra,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-verify-state,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-stock-line{
  width:100%!important;
  text-align:center!important;
  justify-content:center!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-extra{
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-product-name{
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-barcode-value{
  font-weight:500!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
  height:var(--shelf-card-height,128px)!important;
  min-height:var(--shelf-card-height,128px)!important;
  max-height:var(--shelf-card-height,128px)!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-card-top{
  flex:0 0 auto!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-content{
  flex:1 1 auto!important;
  width:100%!important;
  min-height:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding:0 6px!important;
  overflow:hidden!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-title{
  width:100%!important;
  text-align:center!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow-wrap:anywhere!important;
}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
    height:var(--shelf-card-height,128px)!important;
    min-height:var(--shelf-card-height,128px)!important;
    max-height:var(--shelf-card-height,128px)!important;
  }
}

/* ===== 2026-10-03 SHELF GRID FINAL FIX =====
/*
 * 【项目重点强制规则，禁止擅自修改】
 * 1. 同一视口下所有楼层必须使用完全相同的列数；列数不能按楼层货位数量或字段内容动态变化。
 * 2. 桌面端 7 列、平板 4 列、手机 2 列。
 * 3. 正常货位、空位、售罄等状态共享完全相同的 Grid 单元尺寸。
 * 4. 内容只能在卡片内部裁切/适配，不得撑高卡片、撑宽卡片或改变列数。
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  grid-auto-rows:var(--shelf-card-height,128px)!important;
  align-items:start!important;
  align-content:start!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:var(--shelf-card-height,128px)!important;
  min-height:var(--shelf-card-height,128px)!important;
  max-height:var(--shelf-card-height,128px)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
@media (min-width:769px) and (max-width:1099px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media (max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
/* 空位只允许显示“空位”或真实原因二者之一；图标/暂无商品永久禁止。 */
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-icon,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-status,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-hint{display:none!important;}


/* v12 深度 UI 完整性修复：字段可扩展、信息不截断、货位高度稳定。 */
.shelf-card{
  height:var(--shelf-card-height,210px)!important;
  min-height:var(--shelf-card-height,210px)!important;
  max-height:var(--shelf-card-height,210px)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
}
.shelf-card .shelf-card-top{
  flex:0 0 auto;
  min-height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-bottom:6px;
}
.shelf-card .shelf-card-scroll{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(100,116,139,.32) transparent;
  padding:0 3px 4px;
  box-sizing:border-box;
  text-align:center;
}
.shelf-card .shelf-card-scroll::-webkit-scrollbar{width:5px}
.shelf-card .shelf-card-scroll::-webkit-scrollbar-track{background:transparent}
.shelf-card .shelf-card-scroll::-webkit-scrollbar-thumb{background:rgba(100,116,139,.30);border-radius:99px}
.shelf-card .shelf-card-scroll > *{max-width:100%;box-sizing:border-box}
.shelf-card .shelf-product-name{display:block!important;min-height:0!important;max-height:none!important;-webkit-line-clamp:unset!important;overflow-wrap:anywhere;word-break:break-word}
.shelf-card .shelf-extra,.shelf-card .shelf-stock-line,.shelf-card .shelf-verify-state,.shelf-card .shelf-custom-field{flex:0 0 auto;overflow-wrap:anywhere;word-break:break-word}
.shelf-card .shelf-barcode-value{white-space:normal;overflow-wrap:anywhere;word-break:break-all}
.shelf-card .shelf-empty-content{min-height:0!important;height:auto!important;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px 6px}
.shelf-card .shelf-empty-title{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:768px){
  .shelf-card{height:var(--shelf-card-height,210px)!important;min-height:var(--shelf-card-height,210px)!important;max-height:var(--shelf-card-height,210px)!important}
  .shelf-card .shelf-card-scroll{scrollbar-width:none;padding-left:1px;padding-right:1px}
  .shelf-card .shelf-card-scroll::-webkit-scrollbar{display:none}
}

/* v12 authoritative Grid：覆盖历史 flex 规则，列数只由 JS 断点决定，内容绝不参与列数计算。 */
.shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(var(--shelf-columns,7),minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  align-items:start!important;
  align-content:start!important;
  justify-content:stretch!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.shelf-rack-body.shelf-card-row .shelf-card{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  flex:none!important;
  box-sizing:border-box!important;
}
@media(max-width:768px){
  .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(min-width:769px) and (max-width:1099px){
  .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media(min-width:1100px){
  .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(7,minmax(0,1fr))!important;}
}

/* ===== 2026-10-03 CARD HEIGHT CONFIGURATION FIX =====
 * 【项目重点强制规则，禁止擅自修改】
 * 卡片高度由当前“显示设置”计算得到的 --shelf-card-height 控制。
 * 关闭字段后必须缩短；新增字段后可增加，但同一视图内所有货位（含空位）高度必须一致。
 * 任何单张卡片的内容长度都不得改变外框高度。
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  grid-auto-rows:var(--shelf-card-height,120px)!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
  height:var(--shelf-card-height,120px)!important;
  min-height:var(--shelf-card-height,120px)!important;
  max-height:var(--shelf-card-height,120px)!important;
  box-sizing:border-box!important;
}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-auto-rows:var(--shelf-card-height,104px)!important;}
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
    height:var(--shelf-card-height,104px)!important;
    min-height:var(--shelf-card-height,104px)!important;
    max-height:var(--shelf-card-height,104px)!important;
  }
}

/* ===== 2026-10-03 MOBILE SHRINK / EMPTY SLOT HEIGHT FINAL FIX =====
/*
 * 【项目重点强制规则：禁止擅自修改】
 * 1. 空位与正常货位必须使用同一个最终卡片高度变量 --shelf-card-height。
 * 2. 禁止空位使用 --shelf-empty-min-height 作为独立高度来源；该变量仅用于旧版兼容，不得决定最终几何尺寸。
 * 3. 手机端缩小窗口/设备宽度后，不能出现空位把 Grid 行撑高、造成下一行巨大空白。
 * 4. 当前显示字段关闭后，--shelf-card-height 变小，所有货位（含空位）必须同步变小。
 * 5. 后续新增字段只能通过 updateShelfCardGrid 重新计算统一高度，不能按单张卡片内容独立撑高。
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  grid-auto-rows:var(--shelf-card-height,120px)!important;
  align-items:start!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
  height:var(--shelf-card-height,120px)!important;
  min-height:var(--shelf-card-height,120px)!important;
  max-height:var(--shelf-card-height,120px)!important;
  align-self:start!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
  /* 空位不得再读取 --shelf-empty-min-height，彻底消除手机端空位撑行。 */
  height:var(--shelf-card-height,120px)!important;
  min-height:var(--shelf-card-height,120px)!important;
  max-height:var(--shelf-card-height,120px)!important;
}
@media(max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-auto-rows:var(--shelf-card-height,104px)!important;
    row-gap:9px!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
    height:var(--shelf-card-height,104px)!important;
    min-height:var(--shelf-card-height,104px)!important;
    max-height:var(--shelf-card-height,104px)!important;
  }
}
\n\n/* ===== 2026-10-03 FIX14.1 FINAL GEOMETRY LOCK =====\n * 【项目重点强制规则｜禁止擅自修改】\n * 1. 同一显示配置下，所有货位卡片（含空位）必须完全相同高度。\n * 2. 空位不得使用 --shelf-empty-min-height、min-height:135px 等历史规则。\n * 3. 手机端不得因为空位内容把 Grid 行撑高。\n * 4. 卡片高度只接受 JS 当前显示配置计算出的 --shelf-card-height。\n */\n#shelfContainer .shelf-rack-body.shelf-card-row{\n  display:grid!important;\n  grid-auto-flow:row!important;\n  grid-auto-rows:var(--shelf-card-height,120px)!important;\n  align-items:start!important;\n  align-content:start!important;\n}\n#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,\n#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{\n  height:var(--shelf-card-height,120px)!important;\n  min-height:var(--shelf-card-height,120px)!important;\n  max-height:var(--shelf-card-height,120px)!important;\n  align-self:start!important;\n  box-sizing:border-box!important;\n  overflow:hidden!important;\n}\n#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{\n  min-height:var(--shelf-card-height,120px)!important;\n}\n@media(max-width:768px){\n  #shelfContainer .shelf-rack-body.shelf-card-row{\n    grid-template-columns:repeat(2,minmax(0,1fr))!important;\n    grid-auto-rows:var(--shelf-card-height,104px)!important;\n  }\n  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,\n  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{\n    height:var(--shelf-card-height,104px)!important;\n    min-height:var(--shelf-card-height,104px)!important;\n    max-height:var(--shelf-card-height,104px)!important;\n  }\n}\n
/* ===== 2026-10-03 SHELF GEOMETRY V64 — AUTHORITATIVE FINAL LAYER =====
/*
 * 【项目重点强制规则｜禁止擅自修改】
 * 1. 同一显示配置下，所有货位卡片必须完全相同高度；空位不得例外。
 * 2. 卡片高度只来自 JS 的 --shelf-card-height；禁止 .missing / aspect-ratio / 内容数量单独改变高度。
 * 3. Grid 行高与卡片高度使用同一个变量，禁止空位或任意字段把行撑高。
 * 4. 显示字段减少 => 全部卡片同步变矮；显示字段增加 => 全部卡片同步变高。
 * 5. 手机、平板、桌面只改变列数，不改变同一配置下的高度一致性。
 */
#shelfContainer .shelf-rack-body.shelf-card-row{
  display:grid!important;
  grid-template-columns:repeat(var(--shelf-columns,7),minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  grid-auto-rows:var(--shelf-card-height,110px)!important;
  align-items:start!important;
  align-content:start!important;
  justify-content:stretch!important;
  gap:var(--shelf-card-gap,12px)!important;
  row-gap:var(--shelf-card-gap,12px)!important;
  column-gap:var(--shelf-card-gap,12px)!important;
  padding:8px 4px 14px!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:var(--shelf-card-height,110px)!important;
  min-height:var(--shelf-card-height,110px)!important;
  max-height:var(--shelf-card-height,110px)!important;
  aspect-ratio:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card .shelf-card-scroll{
  min-height:0!important;
  max-height:100%!important;
  overflow:auto!important;
  box-sizing:border-box!important;
}
#shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing .shelf-empty-content{
  min-height:0!important;
  height:auto!important;
  flex:1 1 auto!important;
  overflow:hidden!important;
}
@media (min-width:769px) and (max-width:1099px){
  #shelfContainer .shelf-rack-body.shelf-card-row{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media (max-width:768px){
  #shelfContainer .shelf-rack-body.shelf-card-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:var(--shelf-card-height,104px)!important;
    gap:var(--shelf-card-gap,9px)!important;
  }
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card,
  #shelfContainer .shelf-rack-body.shelf-card-row > .shelf-card.missing{
    height:var(--shelf-card-height,104px)!important;
    min-height:var(--shelf-card-height,104px)!important;
    max-height:var(--shelf-card-height,104px)!important;
  }
}

/* 20261030 定价规则编辑器：类别纵向分组，避免下拉切换造成类别规则不可见 */
.pricing-category-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin:10px 0 12px;border:1px solid #e2e9f1;border-radius:12px;background:#f8fafd}
.pricing-category-toolbar>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pricing-category-toolbar strong{font-size:13px;color:#30445f}.pricing-category-toolbar span{font-size:11px;color:#8290a2}.pricing-category-toolbar b{padding:4px 8px;border-radius:999px;background:#eaf1fb;color:#5273a1;font-size:10px;font-weight:700}
.pricing-category-accordion{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.pricing-category-card{overflow:hidden;border:1px solid #e1e8f0;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(35,55,80,.035)}
.pricing-category-card[open]{border-color:#b9cce5;box-shadow:0 5px 16px rgba(42,75,120,.07)}
.pricing-category-card-head{display:flex;align-items:center;gap:11px;min-height:64px;padding:11px 14px;cursor:pointer;list-style:none;user-select:none}
.pricing-category-card-head::-webkit-details-marker{display:none}.pricing-category-order{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:9px;background:#edf3fb;color:#54739d;font-size:11px;font-weight:800}
.pricing-category-title{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.pricing-category-title strong{overflow:hidden;color:#2d4059;font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.pricing-category-title small{overflow:hidden;color:#8a97a8;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.pricing-category-status{padding:4px 8px;border:1px solid #e4e9ef;border-radius:999px;color:#8592a2;font-size:9px;white-space:nowrap}.pricing-category-status.is-active{border-color:#cde7d8;background:#f0faf4;color:#38845b}.pricing-category-card-head>i{color:#9aa8b8;font-size:12px;transition:transform .18s}.pricing-category-card[open]>.pricing-category-card-head>i{transform:rotate(180deg)}
.pricing-category-card-body{padding:0 14px 14px;border-top:1px solid #edf1f5}.pricing-category-card-tools{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:12px 0}.pricing-category-card-tools>label{display:flex;align-items:center;gap:8px;flex:1;max-width:560px;margin:0;color:#718198;font-size:10px;font-weight:700}.pricing-category-card-tools input{max-width:380px;height:34px;font-size:11px}.pricing-category-card-tools>div{display:flex;gap:6px;flex-wrap:wrap}.pricing-category-card-tools .btn{font-size:10px}
.pricing-category-ranges{display:flex;flex-direction:column;gap:8px}.pricing-category-ranges .pricing-range-row{padding:12px!important;border:1px solid #e6ebf2!important;border-radius:10px!important;background:#fbfcfe!important}.pricing-category-ranges .pricing-range-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pricing-category-ranges .pricing-range-fields label{position:relative;display:flex;flex-direction:column;gap:5px;color:#728197;font-size:10px;font-weight:650}.pricing-category-ranges .pricing-range-fields input,.pricing-category-ranges .pricing-range-fields select{height:35px;min-height:35px;font-size:11px}.pricing-category-ranges .pricing-range-top strong{font-size:11px!important}.pricing-category-ranges .pricing-range-top button{font-size:10px}.pricing-category-ranges .pricing-range-top button:disabled{opacity:.35;pointer-events:none}
@media(max-width:760px){.pricing-category-toolbar{align-items:flex-start}.pricing-category-toolbar>div{align-items:flex-start;flex-direction:column;gap:4px}.pricing-category-card-tools{align-items:stretch;flex-direction:column}.pricing-category-card-tools>label{align-items:stretch;flex-direction:column;max-width:none}.pricing-category-card-tools input{max-width:none}.pricing-category-card-tools>div .btn{flex:1}.pricing-category-ranges .pricing-range-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Pricing drawer calculation detail: restore a compact, clearly grouped hierarchy. */
#pricingEditDrawer .pricing-drawer{width:min(520px,96vw)!important}
#pricingEditDrawer .pricing-calculation-card{
  display:block!important;margin:0 0 14px!important;padding:13px!important;
  border:1px solid #e4ebf4!important;border-radius:12px!important;
  background:#fbfcfe!important;color:#34445f!important;line-height:1.5!important;
  font-size:12px!important;font-weight:400!important;white-space:normal!important;
}
#pricingEditDrawer .pricing-calculation-title{
  display:flex!important;align-items:center!important;gap:8px!important;
  margin:0 0 11px!important;padding:0 0 9px!important;
  border-bottom:1px solid #e9eef5!important;color:#263e63!important;
  font-size:14px!important;line-height:1.35!important;font-weight:700!important;
}
#pricingEditDrawer .pricing-calculation-title i{font-size:16px!important;color:#347fe3!important}
#pricingEditDrawer .pricing-calculation-title strong{font-size:14px!important;font-weight:750!important}
#pricingEditDrawer .pricing-calculation-grid{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;margin:0!important;
}
#pricingEditDrawer .pricing-calculation-grid>div{
  display:flex!important;flex-direction:column!important;justify-content:space-between!important;
  min-width:0!important;min-height:56px!important;padding:9px 10px!important;
  border:1px solid #edf1f6!important;border-radius:8px!important;background:#fff!important;
  font-size:12px!important;font-weight:400!important;line-height:1.45!important;
}
#pricingEditDrawer .pricing-calculation-grid>div>span{
  display:block!important;margin:0 0 5px!important;color:#8491a5!important;
  font-size:10px!important;font-weight:500!important;line-height:1.4!important;
}
#pricingEditDrawer .pricing-calculation-grid>div>b{
  display:block!important;margin:0!important;color:#344761!important;
  font-size:12px!important;font-weight:700!important;line-height:1.45!important;
  overflow-wrap:anywhere!important;
}
#pricingEditDrawer .pricing-calculation-grid>div>b.blue{color:#2679e8!important}
#pricingEditDrawer .pricing-calculation-card>small{
  display:block!important;margin:10px 0 0!important;padding:9px 10px!important;
  border-radius:8px!important;background:#f1f5fb!important;color:#77869c!important;
  font-size:10px!important;font-weight:400!important;line-height:1.65!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
#pricingEditDrawer .pricing-drawer-rate{padding:12px 13px!important;border-radius:10px!important}
#pricingEditDrawer .pricing-drawer-rate span,
#pricingEditDrawer .pricing-drawer-field>span{font-size:11px!important;font-weight:600!important}
#pricingEditDrawer .pricing-drawer-rate strong{font-size:22px!important;line-height:1.3!important}
#pricingEditDrawer .pricing-drawer-rate small{font-size:10px!important;line-height:1.55!important}
#pricingEditDrawer .pricing-drawer-field .input-group{display:flex!important;width:100%!important}
#pricingEditDrawer .pricing-drawer-field .input-group-text{
  flex:0 0 42px!important;justify-content:center!important;background:#f3f6fa!important;
  border:1px solid #dfe6ef!important;border-radius:8px 0 0 8px!important;
}
#pricingEditDrawer .pricing-drawer-field input.form-control{
  flex:1 1 auto!important;width:1%!important;min-width:0!important;height:42px!important;
  padding:8px 11px!important;border:1px solid #dfe6ef!important;border-left:0!important;
  border-radius:0 8px 8px 0!important;background:#fff!important;color:#263b5d!important;
  font-size:16px!important;font-weight:650!important;box-shadow:none!important;
}
#pricingEditDrawer .pricing-drawer-advice{align-items:flex-start!important;padding:12px!important}
#pricingEditDrawer .pricing-drawer-advice strong{font-size:11px!important}
#pricingEditDrawer .pricing-drawer-advice span{font-size:10px!important;line-height:1.55!important}
@media(max-width:520px){
  #pricingEditDrawer .pricing-calculation-grid{grid-template-columns:1fr!important}
  #pricingEditDrawer .pricing-calculation-grid>div{min-height:48px!important}
}

/* 表格视图：表头点击排序，与定价管理保持一致 */
.table-sort-head{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer;white-space:nowrap}
.table-sort-head:hover{color:var(--bs-primary,#0d6efd)}
.table-sort-indicator{font-size:.78em;color:var(--bs-primary,#0d6efd);font-weight:700}

/* 表格视图列拖拽：固定图片/货号列，其余表头可拖动并保存顺序。 */
.table-shelf-flat th.table-draggable-column{cursor:grab;user-select:none}
.table-shelf-flat th.table-draggable-column:active{cursor:grabbing}
.table-shelf-flat th.table-column-dragging{opacity:.45}
.table-shelf-flat th.table-column-drop-target{box-shadow:inset 3px 0 0 #3b82f6;background:#eff6ff!important}
.table-shelf-flat th[data-table-drag-col] .table-sort-head{cursor:grab}


/* Audited native-table layout. Do not apply Grid/flex display to table rows/cells. */
.table-shelf-flat{overflow:hidden;border-radius:20px}
.table-shelf-flat .table-responsive{
  display:block!important;width:100%!important;max-width:100%!important;
  overflow-x:auto!important;overflow-y:visible!important;position:relative!important;
  -webkit-overflow-scrolling:touch;
}
.table-shelf-flat table.table-reorder-native{
  display:table!important;table-layout:fixed!important;
  width:max-content!important;min-width:100%!important;max-width:none!important;
  border-collapse:separate!important;border-spacing:0!important;
}
.table-shelf-flat table.table-reorder-native colgroup col{box-sizing:border-box!important}
.table-shelf-flat table.table-reorder-native thead th[data-column-key],
.table-shelf-flat table.table-reorder-native tbody td[data-column-key]{
  position:static!important;left:auto!important;right:auto!important;
  transform:none!important;float:none!important;box-sizing:border-box!important;
  visibility:visible!important;opacity:1!important;
}
.table-shelf-flat table.table-reorder-native thead th{
  min-width:90px!important;height:52px!important;padding:12px 12px!important;
  overflow:visible!important;white-space:nowrap!important;text-overflow:clip!important;
  vertical-align:middle!important;background:#f8fafc!important;color:#475467!important;
  font-size:13px!important;font-weight:800!important;line-height:1.4!important;
}
.table-shelf-flat table.table-reorder-native tbody td{
  min-width:90px!important;height:76px!important;padding:12px!important;
  overflow:visible!important;white-space:normal!important;text-overflow:clip!important;
  vertical-align:middle!important;background:#fff!important;color:#344054!important;
  font-size:13px!important;line-height:1.45!important;
}
.table-shelf-flat table.table-reorder-native tbody tr.empty-row td{background:#f1f3f5!important}
.table-shelf-flat table.table-reorder-native .field-source-header{
  display:inline-flex!important;align-items:center!important;
  flex:0 0 auto!important;width:max-content!important;min-width:max-content!important;
  max-width:none!important;overflow:visible!important;white-space:nowrap!important;
}
.table-shelf-flat table.table-reorder-native .source-info-wrap{display:inline-flex!important;flex:0 0 auto!important}
.table-shelf-flat table.table-reorder-native .table-sort-head{
  display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;
  gap:5px!important;width:100%!important;min-width:max-content!important;
  padding:0!important;border:0!important;background:transparent!important;
  color:inherit!important;font:inherit!important;white-space:nowrap!important;overflow:visible!important;
}
.table-shelf-flat table.table-reorder-native th.table-draggable-column{cursor:grab!important;user-select:none!important}
.table-shelf-flat table.table-reorder-native th.table-column-dragging{opacity:.4!important}
.table-shelf-flat table.table-reorder-native th.table-column-drop-target{background:#e8f1ff!important;box-shadow:inset 0 -3px 0 #3b82f6!important}
.table-shelf-flat table.table-reorder-native th.table-action-header,
.table-shelf-flat table.table-reorder-native td.table-action-cell{
  position:sticky!important;right:0!important;z-index:4!important;
  width:74px!important;min-width:74px!important;max-width:74px!important;
  text-align:center!important;background:#fff!important;
  box-shadow:-2px 0 7px rgba(15,23,42,.08)!important;white-space:nowrap!important;
}
.table-shelf-flat table.table-reorder-native thead th.table-action-header{z-index:7!important;background:#f8fafc!important}
.table-shelf-flat table.table-reorder-native td[data-column-key="image"]{text-align:center!important}
.table-shelf-flat table.table-reorder-native td[data-column-key^="custom:"]{overflow-wrap:anywhere!important}


/* 定价管理分页：每页数量选择器 */
.pricing-page-size-control{display:inline-flex!important;align-items:center!important;margin:0!important}
.pricing-page-size-control .pricing-page-size{
  min-width:104px!important;height:40px!important;padding:0 30px 0 12px!important;
  border:1px solid #dbe3ef!important;border-radius:9px!important;
  background:#fff!important;color:#66758b!important;
  font:inherit!important;cursor:pointer!important;outline:none!important;
}
.pricing-page-size-control .pricing-page-size:focus{
  border-color:#7c83ff!important;box-shadow:0 0 0 3px rgba(99,102,241,.12)!important;
}


/* 2026-11-04 全局列表密度校正：货架表格缩略图与其他业务列表统一 */
.table-shelf-flat .table-product-image-btn,
.table-shelf-flat .table-product-image-empty {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px;
  border-radius: 8px;
}
.table-shelf-flat .table-sticky-image,
.table-shelf-flat th.table-sticky-image,
.table-shelf-flat td.table-sticky-image {
  width: 76px !important;
  min-width: 76px !important;
}
.table-shelf-flat th.table-sticky-code,
.table-shelf-flat td.table-sticky-code { left: 76px !important; }
.table-shelf-flat tbody td { padding-top: 7px; padding-bottom: 7px; }
.table-shelf-flat .table-product-image-btn img { width: 100%; height: 100%; object-fit: contain; }

/* 必卖品列表：表头可排序，排序提示不挤压字段标题 */
.mustsell-table thead th[data-ms-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
.mustsell-table thead th[data-ms-sort]:hover { background: #edf3ff; color: #315ed4; }
.mustsell-sort-indicator { display: inline-block; margin-left: 4px; color: #7d8ba3; font-size: 11px; font-weight: 800; }
.mustsell-table thead th[aria-sort="ascending"] .mustsell-sort-indicator,
.mustsell-table thead th[aria-sort="descending"] .mustsell-sort-indicator { color: #315ed4; }

/* 2026-11-04 响应式修复：定价管理标题区不允许门店标签被挤压成竖排，统计卡片按实际4项布局 */
.pricing-headline{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;gap:20px!important}
.pricing-headline>div:first-child{min-width:0}
.pricing-headline>div:first-child p{max-width:100%;overflow-wrap:anywhere}
.pricing-head-actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-end!important;min-width:0;gap:10px!important}
.pricing-store-select{display:flex!important;flex:0 0 auto!important;align-items:center!important;white-space:nowrap!important;gap:8px!important}
.pricing-store-select>span{display:inline-block!important;white-space:nowrap!important;word-break:keep-all!important;writing-mode:horizontal-tb!important;min-width:max-content!important}
.pricing-store-select select{min-width:145px!important;max-width:220px!important}
.pricing-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1100px){
 .pricing-headline{grid-template-columns:minmax(0,1fr)!important}
 .pricing-head-actions{justify-content:flex-start!important}
 .pricing-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:768px){
 .pricing-headline{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important}
 .pricing-headline>div:first-child{width:100%;min-width:0}
 .pricing-headline h4{font-size:24px!important;line-height:1.25}
 .pricing-headline p{font-size:12px!important;line-height:1.6;white-space:normal!important}
 .pricing-head-actions{width:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important}
 .pricing-store-select{grid-column:1/-1!important;width:100%!important;display:grid!important;grid-template-columns:72px minmax(0,1fr)!important}
 .pricing-store-select>span{white-space:nowrap!important;min-width:0!important}
 .pricing-store-select select{width:100%!important;min-width:0!important;max-width:none!important}
 .pricing-auto-match-badge{min-width:0!important;max-width:none!important;white-space:normal!important}
 .pricing-refresh{width:100%!important;justify-content:center!important}
 .pricing-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
 .pricing-kpi-card{min-width:0!important;gap:8px!important}
}
@media(max-width:380px){
 .pricing-kpi-grid{grid-template-columns:minmax(0,1fr)!important}
 .pricing-head-actions{grid-template-columns:minmax(0,1fr)!important}
 .pricing-store-select{grid-column:1!important}
}

/* 全局商品图片统一组件：有图、无图、图片失效均保持同一容器尺寸 */
.table-product-image-btn,.soldout-image-btn,.purchase-image-btn,.tg-image-button,.pricing-product-image,
.table-product-image-empty,.soldout-image-empty,.tg-image-placeholder,.pricing-product-placeholder,
.cargo-product-thumb,.cargo-no-image{
 width:64px!important;height:64px!important;min-width:64px!important;box-sizing:border-box!important;
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 padding:3px!important;border:1px solid #dfe5ee!important;border-radius:10px!important;
 background:#fff!important;overflow:hidden!important;vertical-align:middle!important;
}
.table-product-image-btn img,.soldout-image-btn img,.purchase-image-btn img,.tg-image-button img,
.pricing-product-image img,.cargo-product-thumb{
 display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;
 background:#fff!important;border-radius:7px!important;
}
.table-product-image-btn.is-empty,.soldout-image-btn.is-empty,.purchase-image-btn.is-empty,
.tg-image-button.is-empty,.pricing-product-image.is-empty,.cargo-no-image.is-empty{
 color:#9aa6b6!important;border-style:dashed!important;cursor:pointer!important;flex-direction:column!important;gap:2px!important;
}
.table-product-image-btn.is-empty i,.soldout-image-btn.is-empty i,.purchase-image-btn.is-empty i,
.tg-image-button.is-empty i,.pricing-product-image.is-empty i,.cargo-no-image.is-empty i{font-size:22px!important}
.table-product-image-btn.is-empty small,.soldout-image-btn.is-empty small,.purchase-image-btn.is-empty small,
.tg-image-button.is-empty small,.pricing-product-image.is-empty small{font-size:9px!important;color:#8995a7!important}
.product-image-upload-backdrop{position:fixed;inset:0;z-index:3000;background:rgba(16,24,40,.48);display:flex;align-items:center;justify-content:center;padding:16px}
.product-image-upload-card{width:min(440px,100%);background:#fff;border-radius:16px;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.product-image-upload-card>div:first-child strong{display:block;font-size:16px;color:#253b5d}
.product-image-upload-card>div:first-child small{display:block;margin-top:4px;color:#8793a5;font-size:11px}
.product-image-upload-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:116px;border:1px dashed #9db5d8;border-radius:12px;background:#f7faff;color:#356bb4;cursor:pointer}
.product-image-upload-choice>i{font-size:25px}.product-image-upload-choice>span{font-weight:750}.product-image-upload-choice>small{font-size:11px;color:#8998ad}.product-image-upload-choice input{display:none}
.product-image-upload-divider{text-align:center;color:#a0aaba;font-size:11px;margin:13px 0}
.mustsell-filter-config{background:#f9fbff;border:1px solid #e7edf7;border-radius:10px;padding:12px}
.mustsell-filter-values-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0}
.mustsell-filter-values-head strong{font-size:12px;color:#344967}.mustsell-filter-values-head span{font-size:11px;color:#8793a5}
.mustsell-filter-values-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:190px;overflow:auto;padding:8px;border:1px solid #e6ebf3;border-radius:8px;background:#fff}
.mustsell-filter-values-list label{display:flex;align-items:flex-start;gap:6px;min-width:0;font-size:11px;color:#53647d;overflow-wrap:anywhere}
.mustsell-filter-rule{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #e7edf5;border-radius:8px;background:#fff;margin-top:6px}
.mustsell-filter-rule strong,.mustsell-filter-rule small{display:block}.mustsell-filter-rule strong{font-size:11px}.mustsell-filter-rule small{font-size:10px;color:#8a96a8;margin-top:3px}
@media(max-width:768px){
 .table-product-image-btn,.soldout-image-btn,.purchase-image-btn,.tg-image-button,.pricing-product-image,
 .table-product-image-empty,.soldout-image-empty,.tg-image-placeholder,.pricing-product-placeholder,
 .cargo-product-thumb,.cargo-no-image{width:56px!important;height:56px!important;min-width:56px!important}
 .mustsell-filter-values-list{grid-template-columns:1fr}
 .product-image-upload-card{padding:15px}
}

.mustsell-image-empty{width:64px;height:64px;min-width:64px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px dashed #dfe5ee;border-radius:10px;background:#fff;color:#9aa6b6}
.mustsell-image-empty i{font-size:22px}.mustsell-image-empty small{font-size:9px;color:#8995a7}

.mustsell-product-image{width:64px!important;height:64px!important;min-width:64px!important;flex:0 0 64px!important;border-radius:10px!important;background:#fff!important}
.mustsell-product-image img{width:100%!important;height:100%!important;object-fit:contain!important}
.cargo-product-image{display:inline-flex;width:64px;height:64px;padding:3px;border:1px solid #dfe5ee;border-radius:10px;background:#fff;align-items:center;justify-content:center}
.cargo-product-image img{width:100%;height:100%;object-fit:contain}
.product-image-preview-backdrop{position:fixed;inset:0;z-index:3100;background:rgba(12,18,30,.82);display:flex;align-items:center;justify-content:center;padding:24px}
.product-image-preview-backdrop>img{max-width:min(92vw,1100px);max-height:88vh;object-fit:contain;background:#fff;border-radius:12px}
.product-image-preview-backdrop>button{position:absolute;right:22px;top:16px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#344054;font-size:28px;line-height:1}

/* 必卖品列表：按当前列表真实数据去重生成字段筛选，不放入标题配置弹窗 */
.mustsell-column-filters{display:flex;flex-wrap:wrap;align-items:end;gap:8px;flex:1 1 100%;padding-top:8px;border-top:1px solid #edf0f5}
.mustsell-column-filter{display:flex;flex-direction:column;gap:3px;min-width:130px;max-width:220px;font-size:12px;color:#64748b}
.mustsell-column-filter .form-select{min-width:130px;height:34px;font-size:12px}
@media(max-width:768px){.mustsell-column-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mustsell-column-filter{min-width:0;max-width:none}.mustsell-column-filter .form-select{min-width:0;width:100%}}
.pricing-legacy-state{display:none!important}


/* 2026-11-04 截图复核修正：统一排除式筛选、列表工具栏、采购报价列及图标 */
.mustsell-exclude-group{display:flex;flex-wrap:wrap;gap:6px}
.mustsell-exclude-group .mustsell-filter{white-space:nowrap}
.mustsell-exclude-group .mustsell-filter.active{background:#fff1f0;border-color:#fda29b;color:#b42318}
.mustsell-exclude-heading{display:flex;align-items:center;gap:9px;flex-wrap:wrap;width:100%;font-size:12px;color:#475467}
.mustsell-exclude-heading strong{color:#26364f;font-size:13px}
.mustsell-exclude-heading span{color:#8994a8}
.mustsell-exclude-heading b{color:#b42318;font-weight:700}
.mustsell-exclude-fields{display:flex;flex-wrap:wrap;gap:8px;width:100%}
.mustsell-exclude-dropdown{position:relative;min-width:145px}
.mustsell-exclude-dropdown summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;border:1px solid #dce4ef;border-radius:9px;background:#fff;padding:8px 10px;min-height:38px;font-size:12px;font-weight:600;color:#344054}
.mustsell-exclude-dropdown summary::-webkit-details-marker{display:none}
.mustsell-exclude-dropdown summary span{color:#98a2b3;font-weight:500;white-space:nowrap}
.mustsell-exclude-dropdown[open] summary{border-color:#fda29b;color:#b42318}
.mustsell-exclude-options{position:absolute;z-index:80;top:calc(100% + 5px);left:0;min-width:220px;max-width:min(320px,80vw);max-height:260px;overflow:auto;padding:8px;background:#fff;border:1px solid #e2e8f0;border-radius:11px;box-shadow:0 12px 30px rgba(16,24,40,.16)}
.mustsell-exclude-options label{display:flex;align-items:center;gap:8px;padding:6px 5px;font-size:12px;color:#344054;cursor:pointer}
.mustsell-exclude-options label input{flex:0 0 auto}
.mustsell-exclude-option-actions{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #edf0f5;padding:2px 4px 7px;margin-bottom:5px}
.mustsell-exclude-option-actions button{border:0;background:none;color:#475ee8;font-size:11px}
.mustsell-exclude-reset{align-self:end}
.mustsell-delete-action{min-width:62px!important;width:auto!important;display:inline-flex!important;align-items:center;justify-content:center;gap:4px;padding:5px 7px!important;white-space:nowrap}
.mustsell-table td .btn[data-ms-queue],.mustsell-table td .btn[data-ms-queue-remove]{min-width:62px!important;width:auto!important;display:inline-flex!important;align-items:center;justify-content:center;gap:4px;padding:5px 7px!important}
.mustsell-table td .btn i{display:inline-block!important;visibility:visible!important;opacity:1!important;font-size:13px!important}
.mustsell-table td .btn span{font-size:11px}
.mustsell-table th:last-child,.mustsell-table td:last-child{min-width:116px}
.purchase-current-quote{min-width:145px;display:flex;flex-direction:column;gap:3px}
.purchase-current-quote>strong{font-size:13px;color:#344054}
.purchase-quote-input-label{font-size:10px;color:#98a2b3;line-height:1.2}
.purchase-quote-input-wrap{display:flex;align-items:center;gap:5px}
.purchase-quote-input-wrap>span{font-size:13px;color:#475467}
.purchase-quote-input-wrap input{max-width:118px}
/* 采购报价表格防重叠：历史全局 .purchase-input 的 min-width:120px 会撑破 130px 单元格，
   与货币符号及相邻最低报价卡片叠压。表格内控件必须服从单元格宽度。 */
.purchase-management-table .purchase-current-quote{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.purchase-management-table .purchase-current-quote>strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.purchase-management-table .purchase-quote-input-wrap input.purchase-input{min-width:0!important;width:100%;max-width:none;flex:1 1 auto}
.purchase-management-table td:nth-child(6){min-width:190px}
.purchase-management-table td:nth-child(7){min-width:190px}
.purchase-management-table .purchase-quote-input-wrap{width:100%;min-width:0;max-width:100%;box-sizing:border-box;gap:6px}
.purchase-management-table .purchase-quote-input-wrap>span{flex:0 0 auto}
.purchase-management-table .purchase-quote-input-wrap input.purchase-input{flex:1 1 0;width:1%;min-width:0!important;max-width:100%;box-sizing:border-box}
.purchase-management-table td{min-width:0;overflow:hidden}
.purchase-management-table .purchase-best-box{min-width:0;max-width:100%;overflow:hidden}
.purchase-management-table .purchase-best-box strong{max-width:100%}

.purchase-best-box{min-width:145px}
.inventory-filter-layout{display:grid!important;grid-template-columns:minmax(220px,2.2fr) repeat(5,minmax(135px,1fr))!important;align-items:end!important;gap:9px!important;padding:12px!important}
.inventory-filter-layout .filter-field{min-width:0!important;width:100%}
.inventory-filter-layout .filter-field.grow{min-width:0!important}
.inventory-filter-layout .filter-field .form-control,.inventory-filter-layout .filter-field .form-select{width:100%;min-width:0}
.pricing-report{width:100%!important;min-width:min(900px,80vw);box-sizing:border-box}
.pricing-report .pricing-summary{display:grid!important;width:100%!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important;box-sizing:border-box}
.pricing-report .pricing-summary>div{min-width:0!important;width:auto!important}
.cargo-product-image,.cargo-no-image{width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;border:1px solid #dce4ef!important;border-radius:12px!important;background:#fff!important}
.cargo-product-thumb{width:100%!important;height:100%!important;object-fit:contain!important;display:block!important}
.cargo-no-image{border-style:dashed!important;background:#f8fafc!important;color:#98a2b3!important}
@media(max-width:1100px){
 .inventory-filter-layout{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .inventory-filter-layout .filter-field.grow{grid-column:1/-1}
}
@media(max-width:680px){
 .inventory-filter-layout{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:10px!important}
 .inventory-filter-layout .filter-field.grow{grid-column:1/-1}
 .inventory-filter-layout .filter-field{min-width:0!important}
 .inventory-filter-layout .filter-field .form-control,.inventory-filter-layout .filter-field .form-select{height:38px!important;font-size:12px!important}
 .mustsell-exclude-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .mustsell-exclude-dropdown{min-width:0}
 .mustsell-exclude-dropdown summary{font-size:11px;padding:7px}
 .pricing-report .pricing-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* 2026-11-04 第二轮：按内容收紧列表列宽，修复表格视图筛选选项重载 */
.mustsell-toolbar-top{align-items:center;gap:8px;padding:11px 13px}
.mustsell-search{flex:1 1 360px;max-width:620px;min-width:min(280px,100%)}
.mustsell-filter-group{flex:0 0 auto;flex-wrap:wrap}
.mustsell-column-filters{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:9px 13px 10px;border-top:1px solid #edf0f5}
.mustsell-exclude-heading{min-height:24px}
.mustsell-reset-exclusions{margin-left:auto;border:0;background:transparent;color:#5368d8;font-size:12px;padding:3px 6px;white-space:nowrap}
.mustsell-exclude-fields{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}
.mustsell-exclude-dropdown{width:clamp(150px,14vw,205px);min-width:150px;max-width:205px;flex:0 1 205px}
.mustsell-exclude-dropdown summary{min-height:36px;padding:7px 9px}
.mustsell-exclude-options{min-width:190px}
.mustsell-source-note{padding:0 13px 10px}
.mustsell-table-head{gap:12px;flex-wrap:wrap;padding:11px 14px}
.mustsell-table-head>div{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}
.mustsell-table-head span{margin-left:0}
.mustsell-table-head #mustSellClear{flex:0 0 auto}
.mustsell-table{min-width:880px;width:100%;table-layout:auto}
.mustsell-table th,.mustsell-table td{padding:9px 10px}
.mustsell-table th{white-space:nowrap}
.mustsell-table td{overflow-wrap:anywhere}
.mustsell-table td:first-child,.mustsell-table th:first-child{width:76px;min-width:76px}
.mustsell-table td:last-child,.mustsell-table th:last-child{width:120px;min-width:120px}
.inventory-filter-layout{grid-template-columns:minmax(210px,2fr) repeat(5,minmax(120px,1fr))!important;gap:8px!important;padding:10px 12px!important}
.inventory-filter-layout .filter-field .form-control,.inventory-filter-layout .filter-field .form-select{height:38px!important;padding-top:6px;padding-bottom:6px;font-size:12px!important}
.table-shelf-flat{width:100%;max-width:100%;overflow:hidden}
.table-shelf-flat .table-responsive{width:100%;max-width:100%;overflow-x:auto}
.table-shelf-flat table{width:100%;min-width:760px;table-layout:auto}
.table-shelf-flat th,.table-shelf-flat td{padding:8px 9px;vertical-align:middle}
.table-shelf-flat th{white-space:nowrap}
.table-shelf-flat td[data-column-key="image"],.table-shelf-flat th[data-column-key="image"]{width:76px;min-width:76px;max-width:82px}
.table-shelf-flat td[data-column-key="product_code"],.table-shelf-flat th[data-column-key="product_code"]{width:clamp(90px,9vw,130px);max-width:150px}
.table-shelf-flat td[data-column-key="barcode"],.table-shelf-flat th[data-column-key="barcode"]{width:clamp(110px,10vw,140px);max-width:155px}
.table-shelf-flat td[data-column-key="specification"],.table-shelf-flat th[data-column-key="specification"]{width:clamp(90px,10vw,140px);max-width:160px}
.table-shelf-flat td[data-column-key="stock"],.table-shelf-flat th[data-column-key="stock"]{width:82px;max-width:95px}
.table-shelf-flat td[data-column-key="purchase"],.table-shelf-flat th[data-column-key="purchase"]{width:90px;max-width:105px}
.table-shelf-flat td[data-column-key="multiplier"],.table-shelf-flat th[data-column-key="multiplier"]{width:95px;max-width:110px}
.table-shelf-flat td[data-column-key="verify"],.table-shelf-flat th[data-column-key="verify"]{width:96px;max-width:112px}
.table-shelf-flat td[data-column-key="comparison"],.table-shelf-flat th[data-column-key="comparison"]{width:150px;max-width:190px}
.table-shelf-flat .table-product-image-btn{width:58px!important;height:58px!important;min-width:58px!important}
.table-shelf-flat .table-action-cell,.table-shelf-flat .table-action-header{width:74px;min-width:74px;max-width:82px}
.table-shelf-flat td.custom-table-cell{max-width:180px;white-space:normal;overflow-wrap:anywhere}
@media(max-width:900px){
 .inventory-filter-layout{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .inventory-filter-layout .filter-field.grow{grid-column:1/-1}
 .mustsell-exclude-dropdown{width:calc(33.333% - 8px);max-width:none;flex-basis:calc(33.333% - 8px)}
}
@media(max-width:600px){
 .mustsell-toolbar-top{display:grid;grid-template-columns:1fr;align-items:stretch}
 .mustsell-search{max-width:none;min-width:0;width:100%}
 .mustsell-filter-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .mustsell-filter{width:100%}
 .mustsell-exclude-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .mustsell-exclude-dropdown{width:100%;min-width:0;max-width:none}
 .mustsell-exclude-options{max-width:calc(100vw - 52px)}
 .mustsell-table-head>div{display:block}
 .inventory-filter-layout{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .inventory-filter-layout .filter-field.grow{grid-column:1/-1}
 .table-shelf-flat table{min-width:720px}
}


/* 2026-11-04 截图定点修复：售罄采购数量列、导出按钮与货盘报表卡片 */
.soldout-purchase-toolbar{
 display:grid!important;
 grid-template-columns:minmax(230px,2fr) minmax(150px,1fr) auto minmax(130px,.9fr) minmax(150px,auto)!important;
 align-items:center!important;gap:10px!important;padding:12px 14px!important
}
.soldout-purchase-toolbar .soldout-search{min-width:0!important;width:100%!important}
.soldout-purchase-toolbar .soldout-supplier-filter,.soldout-purchase-toolbar .soldout-status-filter{min-width:0!important;width:100%!important}
.soldout-purchase-toolbar .soldout-unmatched-toggle{white-space:nowrap!important;display:flex!important;align-items:center!important;gap:6px}
.soldout-purchase-toolbar .soldout-export-btn{width:auto!important;min-width:150px!important;white-space:nowrap!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px;line-height:1.2!important;padding:10px 12px!important}
.soldout-purchase-toolbar>span{grid-column:1/-1!important;white-space:normal!important;margin:0!important;padding-top:3px;border-top:1px solid #edf0f5}
.soldout-purchase-table{width:100%;min-width:1050px!important;table-layout:fixed!important}
.soldout-purchase-table th,.soldout-purchase-table td{padding:12px 10px!important;vertical-align:middle!important}
.soldout-purchase-table th:nth-child(1),.soldout-purchase-table td:nth-child(1){width:78px!important}
.soldout-purchase-table th:nth-child(2),.soldout-purchase-table td:nth-child(2){width:105px!important}
.soldout-purchase-table th:nth-child(3),.soldout-purchase-table td:nth-child(3){width:145px!important}
.soldout-purchase-table th:nth-child(4),.soldout-purchase-table td:nth-child(4){width:220px!important}
.soldout-purchase-table th:nth-child(5),.soldout-purchase-table td:nth-child(5){width:115px!important}
.soldout-purchase-table th:nth-child(6),.soldout-purchase-table td:nth-child(6){width:170px!important}
.soldout-purchase-table th:nth-child(7),.soldout-purchase-table td:nth-child(7){width:115px!important}
.soldout-purchase-table th:nth-child(8),.soldout-purchase-table td:nth-child(8){width:145px!important}
.soldout-purchase-table th:nth-child(9),.soldout-purchase-table td:nth-child(9){width:110px!important}
.soldout-qty-control{display:grid!important;grid-template-columns:42px minmax(46px,1fr) 42px!important;width:124px!important;max-width:100%!important;height:42px!important;border:1px solid #d6deea!important;border-radius:10px!important;overflow:hidden!important;background:#fff!important;box-sizing:border-box!important}
.soldout-qty-control button{width:100%!important;min-width:0!important;height:100%!important;border:0!important;border-radius:0!important;background:#f8fafc!important;color:#344054!important;font-size:18px!important;line-height:1!important;padding:0!important}
.soldout-qty-control button+input{min-width:0!important;width:100%!important;height:100%!important;border:0!important;border-left:1px solid #e4e9f1!important;border-right:1px solid #e4e9f1!important;border-radius:0!important;text-align:center!important;padding:0 3px!important;box-shadow:none!important}
.soldout-qty-control button:focus-visible,.soldout-qty-control input:focus-visible{outline:2px solid #6172f3!important;outline-offset:-2px}
.soldout-line-total{display:inline-block!important;min-width:74px!important;white-space:nowrap!important;text-align:right!important;font-variant-numeric:tabular-nums}
.soldout-purchase-table td:nth-child(8){text-align:center!important}
.soldout-purchase-table td:nth-child(9){text-align:right!important;padding-right:16px!important}
.soldout-purchase-table tbody tr{border-bottom:1px solid #e8edf4!important}
.soldout-purchase-table tbody tr:hover{background:#f8faff!important}
.soldout-purchase-card{overflow:hidden!important}
.soldout-purchase-card .table-responsive{width:100%!important;max-width:100%!important}
#cargoSummary{width:100%!important;max-width:none!important;display:block!important}
#cargoSummary .pricing-summary{display:grid!important;width:100%!important;max-width:none!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important;margin:0 0 14px!important;box-sizing:border-box!important}
#cargoSummary .pricing-summary>div{width:auto!important;min-width:0!important;max-width:none!important;padding:14px 16px!important}
#cargoSummary .pricing-summary strong{font-size:clamp(20px,1.6vw,27px)!important;overflow-wrap:anywhere}
.cargo-table{width:100%!important;table-layout:auto!important}
.cargo-table th,.cargo-table td{padding:9px 10px!important;vertical-align:middle!important}
.cargo-table th:first-child,.cargo-table td:first-child{width:42px!important}
.cargo-table .cargo-image-col,.cargo-table .cargo-image-cell{width:78px!important;min-width:78px!important}
.cargo-table .cargo-image-cell .cargo-product-image,.cargo-table .cargo-image-cell .cargo-no-image{width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important}
.cargo-table th:last-child,.cargo-table td:last-child{width:105px!important}
.cargo-table tbody tr{border-bottom:1px solid #e8edf4!important}
.cargo-table tbody tr:hover{background:#f8faff!important}
@media(max-width:1050px){
 .soldout-purchase-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .soldout-purchase-toolbar .soldout-search{grid-column:1/-1}
 .soldout-purchase-toolbar>span{grid-column:1/-1!important}
}
@media(max-width:600px){
 .soldout-purchase-toolbar{grid-template-columns:1fr!important}
 .soldout-purchase-toolbar .soldout-search{grid-column:1}
 .soldout-purchase-toolbar .soldout-export-btn{width:100%!important;min-width:0!important}
 .soldout-purchase-table{min-width:1000px!important}
 #cargoSummary .pricing-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* 供应商导入历史表头排序交互 */
.supplier-history-sort{border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:inherit;white-space:nowrap;cursor:pointer}.supplier-history-sort:hover{color:#2457c5;text-decoration:underline}.supplier-history-sort:focus-visible{outline:2px solid #7da2ff;outline-offset:3px;border-radius:4px}

.mustsell-stat-action{display:block;width:100%;text-align:left;cursor:pointer;font:inherit}.mustsell-stat-action:hover{border-color:#b9c7f4;box-shadow:0 6px 18px rgba(67,87,170,.10);transform:translateY(-1px)}.mustsell-stat-action:focus-visible{outline:3px solid rgba(83,104,216,.22);outline-offset:2px}


/* 图片后台任务：进行中优先、异常突出、成功历史折叠 */
.image-queue-panel{border:1px solid #e4e7ec;border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(16,24,40,.04)}
.image-queue-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.image-queue-heading strong{font-size:16px;color:#344054}
.image-queue-subtitle{font-size:12px;color:#98a2b3;margin-top:3px}
.image-queue-summary{display:flex;gap:8px 18px;flex-wrap:wrap;padding:9px 12px;margin-bottom:12px;background:#f8fafc;border-radius:9px;color:#667085;font-size:12px}
.image-queue-summary b{color:#344054;font-size:14px}
.image-queue-section-title{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#344054;margin:12px 0 8px}
.image-queue-section-title>span{font-size:11px;line-height:18px;min-width:20px;text-align:center;border-radius:10px;background:#eef2f6;color:#475467;padding:0 6px}
.image-queue-section-title.attention-title{color:#b54708}
.image-queue-section-title.attention-title>span{background:#fff1dc;color:#b54708}
.image-queue-active-list,.image-queue-attention-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:9px}
.image-queue-job{min-width:0;border:1px solid #eaecf0;border-radius:10px;padding:11px 12px;background:#fff}
.image-queue-job.is-attention{border-color:#fedf89;background:#fffcf5}
.image-queue-job-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.image-queue-job-name{font-size:13px;font-weight:600;color:#344054;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.image-queue-status{flex:none;font-size:11px;padding:3px 8px;border-radius:20px;background:#eff8ff;color:#175cd3}
.image-queue-status.status-completed,.image-queue-status.status-canceled{background:#ecfdf3;color:#027a48}
.image-queue-status.status-completed_with_errors,.image-queue-status.status-failed{background:#fff1f0;color:#b42318}
.image-queue-job-stats{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:9px 0 6px;font-size:11px;color:#667085}
.image-queue-job-stats b{color:#344054;font-size:13px}
.image-queue-progress{height:5px;background:#f2f4f7;border-radius:5px}
.image-queue-progress .progress-bar{border-radius:5px}
.image-queue-progress-text{margin-left:auto}
.image-queue-error{font-size:11px;color:#b42318;margin-top:7px;overflow-wrap:anywhere;max-height:38px;overflow:hidden}
.image-queue-job-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:7px;font-size:10px;color:#98a2b3}
.image-queue-empty{display:flex;align-items:center;gap:8px;padding:12px;color:#98a2b3;font-size:12px;background:#fafbfc;border-radius:9px}
.image-queue-empty i{font-size:17px;color:#12b76a}
.image-queue-history{margin-top:12px;border-top:1px solid #f2f4f7;padding-top:10px}
.image-queue-history summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:12px;font-weight:600;color:#475467}
.image-queue-history summary::-webkit-details-marker{display:none}
.image-queue-history summary:before{content:'›';font-size:18px;color:#98a2b3;transform:rotate(0);transition:transform .15s}
.image-queue-history[open] summary:before{transform:rotate(90deg)}
.image-queue-history summary span{padding:2px 7px;border-radius:10px;background:#f2f4f7;color:#667085;font-size:11px}
.image-queue-history summary small{margin-left:auto;color:#98a2b3;font-size:11px;font-weight:400}
.image-queue-history-list{margin-top:8px;border:1px solid #f2f4f7;border-radius:8px;overflow:hidden}
.image-queue-history-row{display:flex;align-items:center;gap:9px;padding:7px 10px;border-bottom:1px solid #f2f4f7;font-size:11px;color:#667085}
.image-queue-history-row:last-child{border-bottom:0}
.history-check{color:#12b76a}.history-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475467}.history-count{white-space:nowrap}.history-time{white-space:nowrap;color:#98a2b3}.image-queue-history-more{text-align:center;padding:7px;color:#98a2b3;font-size:11px}
.image-queue-load-error{padding:10px;border-radius:8px;background:#fff1f0;color:#b42318}
@media(max-width:767px){.image-queue-summary{gap:7px 12px}.image-queue-history-row{flex-wrap:wrap}.history-name{flex-basis:55%}.history-time{margin-left:auto}.image-queue-history summary small{display:none}}



/* 全站文字可读性与图标字体保护：统一浅色内容区的默认对比度，保留按钮/徽标等语义色 */
:root{
  --app-text-primary:#172033;
  --app-text-secondary:#596579;
  --app-text-muted:#667085;
}
body{color:var(--app-text-primary)}
#pageContainer{color:var(--app-text-primary)}
#pageContainer .card,
#pageContainer .app-card,
#pageContainer .modal-content,
#pageContainer .modal-body,
#pageContainer .tab-content,
#pageContainer .dropdown-menu,
#pageContainer .list-group,
#pageContainer .table{
  color:var(--app-text-primary);
}
#pageContainer .text-muted,
#pageContainer .text-secondary,
#pageContainer .text-body-secondary,
#pageContainer .form-text,
#pageContainer .page-subtitle,
#pageContainer .help-text,
#pageContainer .field-hint{
  color:var(--app-text-muted)!important;
}
#pageContainer label,
#pageContainer .form-label,
#pageContainer .control-label,
#pageContainer .table th,
#pageContainer .table td{
  color:inherit;
}
#pageContainer input::placeholder,
#pageContainer textarea::placeholder{
  color:#8792a5;
  opacity:1;
}
#pageContainer select,
#pageContainer input,
#pageContainer textarea{
  color:#172033;
}
#pageContainer .btn,
#pageContainer .badge,
#pageContainer .alert,
#pageContainer .nav-link,
#pageContainer .dropdown-item{
  /* 保留组件自身的语义颜色，不在此处统一覆盖 */
}
.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before{
  font-family:"bootstrap-icons"!important;
  font-style:normal!important;
  font-weight:normal!important;
  speak:none;
  display:inline-block;
  line-height:1;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}


/* Bootstrap Icons 兼容别名：修复业务代码中使用但当前字体版本未提供的图标名 */
.bi-bag-heart::before{content:"\f179";}
.bi-chevron::before{content:"\f282";}
.bi-clipboard2-check::before{content:"\f28b";}
.bi-database::before{content:"\f412";}
.bi-sliders2::before{content:"\f56b";}
.bi-sliders2-vertical::before{content:"\f56b";}
.bi-trash3::before{content:"\f5de";}
.bi-trash3-fill::before{content:"\f5dd";}


/* 货位状态卡片颜色变量兜底：避免未定义变量使整条 color/background 声明失效 */
:root{
  --shelf-modified-fill:#eef4ff;
  --shelf-modified-border:#8fb3ff;
  --shelf-modified-text:#244a8f;
  --shelf-soldout-fill:#fff1f0;
  --shelf-soldout-border:#f3a6a0;
  --shelf-soldout-text:#a12b25;
}
#shelfContainer .shelf-card.modified,
#shelfContainer .shelf-card.modified *,
#shelfContainer .shelf-card.soldout,
#shelfContainer .shelf-card.soldout *{
  text-shadow:none;
}

.bi-database::before,.bi-database-check::before{content:"\f412";}
.bi-person-gear::before{content:"\f4da";}
.image-manager-card.is-invalid-record{border-color:#f0a3a3;background:#fffafa}
.image-manager-card.is-invalid-record .image-manager-card-head strong{color:#a12b25}
