
        html, body, div, span, applet, object, iframe,
        h1, h2, h3, h4, h5, h6, p, blockquote, pre,
        a, abbr, acronym, address, big, cite, code,
        del, dfn, em, img, ins, kbd, q, s, samp,
        small, strike, strong, sub, sup, tt, var,
        b, u, i, center,
        dl, dt, dd, ol, ul, li,
        fieldset, form, label, legend,
        table, caption, tbody, tfoot, thead, tr, th, td,
        article, aside, canvas, details, embed,
        figure, figcaption, footer, header, hgroup,
        menu, nav, output, ruby, section, summary,
        time, mark, audio, video, button, input, select, textarea {
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            text-rendering: optimizeLegibility;
        }
        :root {
            /* ===== 17 列列宽百分比（出厂默认） ===== */
            --col-1-w: 2%;     /* 国家 */
            --col-2-w: 5.5%;   /* 图片 */
            --col-3-w: 6.5%;   /* ASIN */
            --col-4-w: 8%;    /* 名字 */
            --col-5-w: 2%;   /* 评分 */
            --col-6-w: 3.5%;   /* 价格 */
            --col-7-w: 3%;     /* 评论 */
            --col-8-w: 5%;     /* 上新 */
            --col-9-w: 3%;   /* 配送 */
            --col-10-w: 5%;  /* 销量 */
            --col-11-w: 3%;  /* 变体数 */
            --col-12-w: 8%;   /* 类目排名 */
            --col-13-w: 8%;  /* 店铺 */
            --col-14-w: 4%;  /* 链接 */
            --col-15-w: 8%;    /* 类别 */
            --col-16-w: 8%;  /* 时间 */
            --col-17-w: 10%;    /* 操作 */
            /* ===== 每列最小保护百分比 ===== */
            --col-1-min: 0.5%;  --col-2-min: 0.5%;  --col-3-min: 0.5%;
            --col-4-min: 0.5%;  --col-5-min: 0.5%;  --col-6-min: 0.5%;
            --col-7-min: 0.5%;  --col-8-min: 0.5%;  --col-9-min: 0.5%;
            --col-10-min: 0.5%; --col-11-min: 0.5%; --col-12-min: 2%;
            --col-13-min: 2%;   --col-14-min: 0.5%; --col-15-min: 1%;
            --col-16-min: 1.5%; --col-17-min: 4%;
            /* ===== 内容整体缩放倍率 ===== */
            --table-zoom: 1;
        }
        nav {
            position: relative;
            display: flex;
            align-items: center;
            gap: 5px;
            padding: 5px 10px;
            background: rgba(255, 255, 255, 0.92);
            backdrop-filter: saturate(180%) blur(8px);
            border-bottom: 1px solid #e5e7eb;
            box-shadow: 0 4px 12px rgba(16, 24, 40, 0.06);
            font-size: 0.85em;
            z-index: 900;
            flex-wrap: wrap;
            max-width: 100%;
            box-sizing: border-box;
        }
        nav a {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #1f2937;
            padding: 5px 10px;
            text-decoration: none;
            border-radius: 8px;
            border: 1px solid transparent;
            transition: all .15s ease-in-out;
        }
        nav a:hover {
            background: #f9fafb;
            border-color: #e5e7eb;
            color: #111827;
        }
        nav a.active {
            background: #eef2ff;
            border-color: #c7d2fe;
            color: #1e3a8a;
        }
        .user-menu {
            margin-left: auto;
            position: relative;
        }
        .user-trigger {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 6px 10px;
            border-radius: 9999px;
            border: 1px solid #e5e7eb;
            background: #f9fafb;
            color: #111827;
            box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
            transition: all .15s ease-in-out;
            cursor: pointer;
        }
        .user-trigger:hover {
            background: #eef2ff;
            border-color: #c7d2fe;
            color: #1e3a8a;
        }
        .user-avatar {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-weight: 600;
            font-size: 12px;
            color: #ffffff;
            background: linear-gradient(135deg, #60a5fa, #2563eb);
        }
        .user-caret {
            font-size: 12px;
            color: #6b7280;
        }
        .user-dropdown {
            position: absolute;
            right: 0;
            top: 30px;
            min-width: 60px;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            background: #ffffff;
            box-shadow: 0 12px 32px rgba(16, 24, 40, 0.12);
            padding: 8px;
            display: none;
            z-index: 600;
        }
        .user-menu.open .user-dropdown {
            display: block;
        }
        .dropdown-item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 8px 10px;
            border-radius: 8px;
            border: 1px solid transparent;
            background: #ffffff;
            color: #1f2937;
            font-size: 12px;
        }
        .dropdown-item.primary {
            background: #2563eb;
            border-color: #1d4ed8;
            color: #ffffff;
            justify-content: center;
            font-weight: 600;
        }
        .dropdown-item:hover {
            background: #f9fafb;
            border-color: #cdd3da;
        }
        .dropdown-item.primary:hover {
            background: #1d4ed8;
            border-color: #1e40af;
        }
        #logoutBtn {
            font-weight: 400;
            padding: 6px 8px;
            margin-top: 8px;
        }
        .filter-section {
            display: flex;
            align-items: center;
            zoom: var(--table-zoom);
            gap: 8px;
            flex-wrap: wrap;
            padding: 10px 12px;
            background: rgba(255,255,255,0.92);
            backdrop-filter: saturate(180%) blur(6px);
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(16, 24, 40, 0.06);
            font-size: 0.9em;
            margin: 10px 0;
            color: #1f2937;
            position: relative;
            z-index: 600;
        }
        .filter-section select,
        .filter-section button,
        .filter-section input[type="text"],
        .filter-section input[type="date"],
        .filter-section input[type="month"] {
            height: 28px;
            line-height: 28px;
            font-size: 12px;
            padding: 0 10px;
            border-radius: 6px;
            border: 1px solid #d0d5dd;
            background: #ffffff;
            color: #1f2937;
        }
        .search-group {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            white-space: nowrap;
        }
        .category-cascader {
            position: relative;
            display: inline-block;
            vertical-align: middle;
        }
        .exclude-category-filter {
            position: relative;
            display: inline-block;
            vertical-align: middle;
        }
        .exclude-category-trigger {
            height: 28px;
            min-width: 118px;
            max-width: 200px;
            font-size: 12px;
            padding: 0 10px;
            border-radius: 6px;
            border: 1px solid #d0d5dd;
            background: #ffffff;
            color: #1f2937;
            text-align: left;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .exclude-category-panel {
            position: absolute;
            top: 34px;
            left: 0;
            z-index: 2200;
            min-width: 210px;
            padding: 10px;
            border: 1px solid #d0d5dd;
            border-radius: 10px;
            background: #ffffff;
            box-shadow: 0 12px 32px rgba(16, 24, 40, 0.12);
        }
        .exclude-category-panel[hidden] {
            display: none;
        }
        .trend-season-filter {
            position: relative;
            display: inline-block;
            vertical-align: middle;
        }
        .trend-season-trigger {
            height: 28px;
            min-width: 146px;
            max-width: 260px;
            font-size: 12px;
            padding: 0 10px;
            border-radius: 6px;
            border: 1px solid #d0d5dd;
            background: #ffffff;
            color: #1f2937;
            text-align: left;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .trend-season-panel {
            position: absolute;
            top: 34px;
            left: -42px;
            z-index: 999999;
            width: 660px;
            min-width: 660px;
            max-width: min(660px, calc(100vw - 32px));
            max-height: calc(100vh - 80px);
            padding: 18px;
            border: 1px solid #eaecf0;
            border-radius: 14px;
            background: #f8fafc;
            box-shadow: 0 18px 48px rgba(16, 24, 40, 0.14);
            overflow-y: auto;
            overflow-x: hidden;
            -webkit-overflow-scrolling: touch;
        }
        .trend-season-panel,
        .trend-season-panel * {
            box-sizing: border-box;
        }
        .trend-season-panel[hidden] {
            display: none;
        }
        .trend-season-panel-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 12px;
            padding-bottom: 12px;
            border-bottom: 1px solid #eef2f7;
        }
        .trend-season-panel-title {
            color: #101828;
            font-size: 14px;
            font-weight: 700;
        }
        .trend-season-panel-actions {
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        .trend-season-mini-btn {
            height: 28px;
            padding: 0 10px;
            border: 1px solid #d0d5dd;
            border-radius: 8px;
            background: #ffffff;
            color: #344054;
            font-size: 12px;
            cursor: pointer;
        }
        .trend-season-mini-btn:hover {
            background: #f2f4f7;
            border-color: #98a2b3;
            color: #101828;
        }
        .trend-season-groups {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }
        .trend-season-group {
            padding: 12px;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            background: #ffffff;
            box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
        }
        .trend-season-group-title {
            margin-bottom: 10px;
            color: #101828;
            font-size: 12px;
            font-weight: 700;
        }
        .trend-season-option-list {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        .trend-season-option-btn {
            min-height: 26px;
            padding: 0 10px;
            border: 1px solid #d0d5dd;
            border-radius: 8px;
            background: #ffffff;
            color: #344054;
            font-size: 12px;
            cursor: pointer;
            white-space: nowrap;
        }
        .trend-season-option-btn:hover {
            border-color: #98a2b3;
            background: #f2f4f7;
        }
        .trend-season-option-btn.active {
            border-color: #2563eb;
            background: #2563eb;
            color: #ffffff;
            font-weight: 600;
        }
        .trend-season-panel-summary {
            margin-top: 12px;
            color: #667085;
            font-size: 12px;
            line-height: 1.5;
            padding-top: 10px;
            border-top: 1px solid #eef2f7;
        }
        .trend-season-group-wide {
            grid-column: 1 / -1;
        }
        .trend-season-input-row {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 8px;
            margin-top: 10px;
        }
        .trend-season-input-grid {
            display: grid;
            grid-template-columns: 44px minmax(0, 1fr) 56px minmax(0, 1fr);
            gap: 8px;
            align-items: center;
            margin-top: 10px;
        }
        .trend-season-input-stack {
            display: grid;
            grid-template-columns: 96px minmax(0, 1fr);
            gap: 8px;
            align-items: center;
            margin-top: 10px;
        }
        .trend-season-range-grid {
            display: grid;
            grid-template-columns: 44px minmax(0, 1fr) 16px minmax(0, 1fr);
            gap: 8px;
            align-items: center;
            margin-top: 10px;
        }
        .trend-season-inline-range {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 12px minmax(0, 1fr);
            gap: 6px;
            align-items: center;
            width: 100%;
        }
        .trend-season-range-sep {
            color: #667085;
            font-size: 12px;
            text-align: center;
        }
        .trend-season-input-label {
            color: #475467;
            font-size: 12px;
            white-space: nowrap;
        }
        .trend-season-input {
            height: 28px;
            width: 100%;
            min-width: 0;
            padding: 0 10px;
            border: 1px solid #d0d5dd;
            border-radius: 8px;
            background: #fff;
            color: #101828;
            font-size: 12px;
        }
        #trendDaysInput {
            max-width: 140px;
            justify-self: start;
        }
        #trendSalesMinInput,
        #trendSalesMaxInput {
            min-width: 0;
        }
        .trend-season-input:disabled {
            background: #f2f4f7;
            color: #98a2b3;
            cursor: not-allowed;
        }
        .trend-season-input:focus {
            outline: none;
            border-color: #c7d2fe;
            box-shadow: 0 0 0 3px rgba(199, 210, 254, 0.35);
        }
        .trend-season-divider {
            height: 1px;
            background: #eef2f7;
            margin: 10px 0;
        }
        .trend-season-hint {
            color: #667085;
            font-size: 12px;
            line-height: 1.5;
            margin-top: 10px;
            padding-top: 10px;
            border-top: 1px dashed #eef2f7;
        }
        @media (max-width: 900px) {
            .trend-season-panel {
                left: 0;
                width: min(620px, calc(100vw - 24px));
            }
            .trend-season-groups {
                grid-template-columns: 1fr;
            }
            .trend-season-input-grid,
            .trend-season-input-stack,
            .trend-season-range-grid {
                display: flex;
                flex-wrap: wrap;
            }
        }
        .exclude-category-title {
            margin-bottom: 8px;
            color: #344054;
            font-size: 12px;
            font-weight: 700;
        }
        .exclude-category-option {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 5px 2px;
            color: #344054;
            font-size: 12px;
            cursor: pointer;
        }
        .exclude-category-option input {
            margin: 0;
        }
        .exclude-category-actions {
            display: flex;
            justify-content: flex-end;
            gap: 6px;
            margin-top: 8px;
            padding-top: 8px;
            border-top: 1px solid #eef2f7;
        }
        .exclude-category-mini-btn {
            height: 24px;
            padding: 0 8px;
            border: 1px solid #d0d5dd;
            border-radius: 6px;
            background: #fff;
            color: #344054;
            font-size: 12px;
            cursor: pointer;
        }
        .category-cascader-trigger {
            height: 28px;
            min-width: 160px;
            max-width: 240px;
            font-size: 12px;
            padding: 0 10px;
            border-radius: 6px;
            border: 1px solid #d0d5dd;
            background: #ffffff;
            color: #1f2937;
            text-align: left;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .category-modal {
            position: fixed;
            inset: 0;
            z-index: 2600;
            display: flex;
            align-items: flex-start;
            justify-content: center;
            padding: 14px 0 18px;
            overflow-y: auto;
            background: rgba(15, 23, 42, 0.26);
        }
        .category-modal[hidden] {
            display: none;
        }
        .category-modal-dialog {
            width: min(1200px, calc(100vw - 40px));
            max-height: min(720px, calc(100vh - 28px));
            margin: auto 0;
            background: #ffffff;
            border-radius: 12px;
            box-shadow: 0 24px 60px rgba(15, 23, 42, 0.2);
            border: 1px solid #e5e7eb;
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }
        .category-modal-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 14px 18px;
            border-bottom: 1px solid #eef2f7;
            background: #fbfcfe;
        }
        .category-modal-title {
            font-size: 16px;
            font-weight: 700;
            color: #1f2937;
        }
        .category-modal-close {
            border: 0;
            background: transparent;
            color: #667085;
            font-size: 22px;
            line-height: 1;
            cursor: pointer;
            padding: 0 2px;
        }
        .category-modal-body {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 520px;
            height: min(560px, calc(100vh - 180px));
            min-height: 460px;
        }
        .category-modal-main {
            display: flex;
            flex-direction: column;
            padding: 14px 18px 16px;
            border-right: 1px solid #eef2f7;
            min-width: 0;
            min-height: 0;
        }
        .category-search-input {
            width: 100%;
            height: 34px;
            padding: 0 12px;
            border: 1px solid #d0d5dd;
            border-radius: 8px;
            font-size: 13px;
            color: #1f2937;
            background: #ffffff;
        }
        .category-tree-wrap {
            margin-top: 12px;
            border: 1px solid #e5e7eb;
            border-radius: 10px;
            background: #ffffff;
            flex: 1 1 auto;
            min-height: 0;
            overflow: auto;
            padding: 8px 0;
        }
        .category-tree-empty {
            padding: 18px;
            color: #98a2b3;
            font-size: 13px;
        }
        .category-tree-loading {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 18px;
            color: #667085;
            font-size: 13px;
        }
        .category-tree-loading::before {
            content: "";
            width: 12px;
            height: 12px;
            border-radius: 999px;
            border: 2px solid #d0d5dd;
            border-top-color: #2563eb;
            animation: variantSpin 0.9s linear infinite;
        }
        .category-tree-node {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 6px 12px 6px 0;
            cursor: pointer;
            user-select: none;
        }
        .category-tree-node:hover {
            background: #f8fbff;
        }
        .category-tree-node.selected {
            background: #eef4ff;
        }
        .category-tree-toggle {
            width: 14px;
            text-align: center;
            color: #98a2b3;
            font-size: 12px;
            flex: 0 0 14px;
        }
        .category-tree-toggle.placeholder {
            visibility: hidden;
        }
        .category-tree-checkbox {
            width: 14px;
            height: 14px;
            border: 1px solid #cbd5e1;
            border-radius: 3px;
            background: #fff;
            flex: 0 0 14px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #2563eb;
            font-size: 11px;
            font-weight: 700;
        }
        .category-tree-node.selected .category-tree-checkbox {
            border-color: #2563eb;
            background: #2563eb;
            color: #fff;
        }
        .category-tree-label {
            min-width: 0;
            flex: 1 1 auto;
            color: #344054;
            font-size: 13px;
            line-height: 1.4;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .category-tree-label-en {
            color: inherit;
        }
        .category-tree-label-zh {
            color: #667085;
            margin-left: 4px;
        }
        .category-tree-node.selected .category-tree-label {
            color: #1d4ed8;
            font-weight: 600;
        }
        .category-tree-count {
            flex: 0 0 auto;
            margin-left: 8px;
            padding: 1px 6px;
            border-radius: 6px;
            background: #fff4e5;
            color: #f59e0b;
            font-size: 12px;
            line-height: 18px;
            font-variant-numeric: tabular-nums;
            align-self: center;
        }
        .category-modal-side {
            padding: 14px 16px;
            background: #fcfcfd;
            display: flex;
            flex-direction: column;
            min-width: 0;
        }
        .category-selected-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 10px;
        }
        .category-selected-title {
            color: #344054;
            font-size: 13px;
            font-weight: 700;
            min-width: 0;
        }
        .category-selected-clear {
            border: 0;
            background: #f79009;
            color: #fff;
            border-radius: 6px;
            padding: 4px 10px;
            font-size: 12px;
            cursor: pointer;
        }
        .category-selected-box {
            min-height: 0;
            border: 1px solid #e5e7eb;
            border-radius: 10px;
            background: #fff;
            padding: 8px 0;
            flex: 1 1 auto;
            overflow-y: auto;
            overflow-x: hidden;
        }
        .category-selected-empty {
            color: #98a2b3;
            font-size: 13px;
            padding: 12px;
        }
        .category-selected-item {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            padding: 8px 12px;
            color: #475467;
            font-size: 12px;
            line-height: 1.5;
        }
        .category-selected-item + .category-selected-item {
            border-top: 1px solid #f2f4f7;
        }
        .category-selected-item-text {
            flex: 1 1 auto;
            min-width: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .category-selected-level {
            color: #667085;
            margin-right: 6px;
            flex: 0 0 auto;
        }
        .category-selected-remove {
            border: 0;
            background: transparent;
            color: #98a2b3;
            font-size: 18px;
            line-height: 1;
            cursor: pointer;
            padding: 0;
            flex: 0 0 auto;
        }
        .category-selected-path {
            font-size: 12px;
        }
        .category-modal-actions {
            display: flex;
            justify-content: flex-end;
            gap: 10px;
            padding: 12px 18px 16px;
            border-top: 1px solid #eef2f7;
            background: #fbfcfe;
        }
        .category-action-btn {
            min-width: 88px;
            height: 32px;
            border-radius: 8px;
            border: 1px solid #d0d5dd;
            background: #fff;
            color: #344054;
            font-size: 13px;
            cursor: pointer;
        }
        .category-action-btn.primary {
            border-color: #2563eb;
            background: #2563eb;
            color: #fff;
        }
        .category-action-btn.danger {
            color: #b42318;
        }
        #searchButton.primary {
            background: #2563eb;
            border-color: #1d4ed8;
            color: #ffffff;
        }
        #searchButton.primary:hover {
            background: #1d4ed8;
            border-color: #1e40af;
            color: #ffffff;
        }
        #searchButton.loading {
            opacity: 1;
            cursor: not-allowed;
        }
        #searchButton.primary.loading {
            background: #f59e0b;
            border-color: #d97706;
            color: #ffffff;
        }
        #exportButton {
            background: #f8fafc;
            border-color: #cbd5e1;
            color: #334155;
            font-weight: 600;
        }
        #exportButton:hover {
            background: #eef2ff;
            border-color: #c7d2fe;
            color: #1e3a8a;
        }
        select {
            padding: 3px; /* 缩小下拉框内边距 */
            margin-right: 5px; /* 调整下拉框右边距 */
        }
        button {
            padding: 3px 8px; /* 缩小按钮内边距 */
            margin-right: 5px; /* 调整按钮右边距 */
            font-size: 0.9em; /* 缩小按钮字体 */
            vertical-align: middle; /* 让按钮垂直居中对齐 */
        }
        input[type="text"] {
            padding: 3px; /* 缩小输入框内边距 */
            margin-right: 5px; /* 调整输入框右边距 */
        }
        table {
            width: 100%;
            border-collapse: collapse;
            font-size: 0.85em;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 5px;
            text-align: center; /* 让表头和表格内容居中显示 */
            font-size: 0.9em;
            overflow: hidden; /* 隐藏超出部分 */
            text-overflow: ellipsis; /* 显示省略号 */
        }
        th {
            background-color: #f2f2f2;
            overflow: hidden; /* 隐藏超出部分 */
            text-overflow: ellipsis; /* 显示省略号 */
        }
        /* 针对操作栏按钮的样式 */
        td button {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 2px 10px;
            font-size: 12px;
            font-weight: 400;
            letter-spacing: 0;
            margin: 0 4px;
            box-sizing: border-box;
            width: 100%;
            height: 26px;
            line-height: 22px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            border: 1px solid transparent;
            border-radius: 999px;
            background: #ffffff;
            color: #1f2937;
            box-shadow: none;
            transition: all .15s ease-in-out;
            font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
        }
        td button:hover {
            filter: brightness(0.98);
            transform: translateY(-0.5px);
        }
        td button:active {
            transform: translateY(0);
            filter: brightness(0.96);
        }
        .trend-btn { background: #edf4ff; color: #3563c9; }
        .trend-btn:hover { background: #e4efff; }
        .detail-btn { background: #f2efff; color: #7a54d8; }
        .detail-btn:hover { background: #ece7ff; }
        .img1688-btn { background: #edf9f0; color: #3f8f4e; }
        .img1688-btn:hover { background: #e5f6ea; }
        .profit-btn { background: #fff3e8; color: #c96a2c; }
        .profit-btn:hover { background: #ffecde; }
        .traffic-btn { background: #e8fbf6; color: #2f9e8a; }
        .traffic-btn:hover { background: #ddf8f1; }
        .parent-sales-btn { background: #fdeef5; color: #cf5f8f; }
        .parent-sales-btn:hover { background: #fce5f0; }
        .change-log-btn { background: #fff8e6; color: #b45309; }
        .change-log-btn:hover { background: #fff0cc; }
        td button.variant-count-btn {
            width: auto;
            min-width: 28px;
            height: 20px;
            line-height: 18px;
            margin: 0 auto;
            padding: 0 8px;
            border: 1px solid #c9d7ff;
            border-radius: 999px;
            background: #eef4ff;
            color: #3157b7;
            font-weight: 600;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        td button.variant-count-btn:hover {
            background: #e3edff;
        }
        .sales-cell-stack {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: calc(2px * var(--table-zoom));
            line-height: 1.2;
            white-space: nowrap;
        }
        .sales-main-line {
            color: #101828;
            font-weight: 600;
            font-size: calc(13.5px * var(--table-zoom));
            line-height: calc(16px * var(--table-zoom));
        }
        .sales-sub-line {
            color: #667085;
            font-size: calc(11px * var(--table-zoom));
            line-height: calc(14px * var(--table-zoom));
        }
        .sales-sub-line.is-loading {
            color: #98a2b3;
        }
        td.action-cell {
            overflow: visible;
            text-overflow: clip;
            white-space: normal;
        }
        td.action-cell .action-btn-group {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: calc(3px * var(--table-zoom)) calc(4px * var(--table-zoom));
            justify-content: center;
            align-items: center;
            width: 100%;
            min-width: 124px;
            max-width: 170px;
            margin: 0 auto;
            padding: 2px 3px 2px 2px;
            border-radius: 0;
            background: transparent;
            border: none;
            box-shadow: none;
            box-sizing: border-box;
        }
        td.action-cell button {
            margin: 0;
            width: 100%;
            min-width: 0;
            max-width: 100%;
            height: calc(22px * var(--table-zoom));
            line-height: calc(18px * var(--table-zoom));
            padding: calc(1px * var(--table-zoom)) calc(5px * var(--table-zoom));
            font-size: calc(11px * var(--table-zoom));
            box-sizing: border-box;
        }
        .time-cell {
            text-align: left;
            line-height: 1.15;
            white-space: normal;
            overflow: visible;
            text-overflow: clip;
            font-size: calc(11.5px * var(--table-zoom));
            word-break: keep-all;
        }
        .time-cell .time-line {
            display: flex;
            gap: 2px;
            align-items: center;
            white-space: nowrap;
            min-width: 0;
        }
        .time-cell .time-label {
            color: #6b7280;
            margin-right: 2px;
            flex: 0 0 auto;
        }
        .time-cell .time-value {
            font-variant-numeric: tabular-nums;
            flex: 0 0 auto;
        }

        /* 小屏幕整体压缩：表格字体/td padding/按钮尺寸/翻页栏/toolbar 统一收缩 */
        @media (max-width: 1680px) {
            table { font-size: 0.84em; }
            th, td { font-size: 0.88em; padding: 4px; }
            #productTable td, #favoriteTable td, #shopProductTable td { padding: 5px 4px; }
            td img { width: 70px; height: 70px; }
            td button { height: calc(22px * var(--table-zoom)); line-height: calc(18px * var(--table-zoom)); padding: calc(1px * var(--table-zoom)) calc(7px * var(--table-zoom)); font-size: calc(11px * var(--table-zoom)); }
            td.action-cell .action-btn-group { min-width: 116px; max-width: 156px; }
            td.action-cell button { height: calc(21px * var(--table-zoom)); line-height: calc(17px * var(--table-zoom)); padding: calc(1px * var(--table-zoom)) calc(4px * var(--table-zoom)); font-size: calc(10.5px * var(--table-zoom)); }
            .time-cell, .new-cell { font-size: calc(12px * var(--table-zoom)); }
            .shop-cell { font-size: calc(12.5px * var(--table-zoom)); }
        }
        @media (max-width: 1440px) {
            table { font-size: 0.8em; }
            th, td { font-size: 0.84em; padding: 3.5px; }
            #productTable td, #favoriteTable td, #shopProductTable td { padding: 4px 3px; }
            td img { width: 64px; height: 64px; }
            td button { height: calc(21px * var(--table-zoom)); line-height: calc(17px * var(--table-zoom)); padding: calc(1px * var(--table-zoom)) calc(6px * var(--table-zoom)); font-size: calc(10.5px * var(--table-zoom)); }
            td.action-cell .action-btn-group { min-width: 108px; max-width: 148px; gap: calc(3px * var(--table-zoom)) calc(3px * var(--table-zoom)); }
            td.action-cell button { height: calc(20px * var(--table-zoom)); line-height: calc(16px * var(--table-zoom)); padding: calc(0px * var(--table-zoom)) calc(3px * var(--table-zoom)); font-size: calc(10px * var(--table-zoom)); }
            .time-cell, .new-cell { font-size: calc(11.5px * var(--table-zoom)); }
            .shop-cell { font-size: calc(12px * var(--table-zoom)); }
            .filter-section .filter-group label,
            .favorite-toolbar label { font-size: 12.5px; }
            .filter-section select,
            .filter-section input[type="text"],
            .filter-section input[type="number"],
            .favorite-toolbar select,
            .favorite-toolbar input[type="number"] {
                font-size: 12.5px; padding: 3px 7px;
            }
            .filter-section button,
            .favorite-toolbar button {
                font-size: 12.5px; padding: 3px 12px; height: 26px;
            }
            #pagination, #favoritePagination, #shopPagination { height: 40px; font-size: 13px; }
            #pagination button, #favoritePagination button, #shopPagination button,
            #pagination select, #favoritePagination select, #shopPagination select,
            #pagination input, #favoritePagination input, #shopPagination input { height: 26px; font-size: 12.5px; }
        }
        @media (max-width: 1220px) {
            table { font-size: 0.76em; }
            th, td { font-size: 0.8em; padding: 3px; }
            #productTable td, #favoriteTable td, #shopProductTable td { padding: 3.5px 2.5px; }
            td img { width: 58px; height: 58px; }
            td button { height: calc(20px * var(--table-zoom)); line-height: calc(16px * var(--table-zoom)); padding: calc(0px * var(--table-zoom)) calc(5px * var(--table-zoom)); font-size: calc(10px * var(--table-zoom)); }
            td.action-cell .action-btn-group { min-width: 100px; max-width: 138px; gap: calc(2px * var(--table-zoom)) calc(3px * var(--table-zoom)); }
            td.action-cell button { height: calc(19px * var(--table-zoom)); line-height: calc(15px * var(--table-zoom)); padding: calc(0px * var(--table-zoom)) calc(2px * var(--table-zoom)); font-size: calc(9.5px * var(--table-zoom)); }
            .time-cell, .new-cell { font-size: calc(11px * var(--table-zoom)); }
            .shop-cell { font-size: calc(11.5px * var(--table-zoom)); }
            .filter-section .filter-group label,
            .favorite-toolbar label { font-size: 12px; }
            .filter-section select,
            .filter-section input[type="text"],
            .filter-section input[type="number"],
            .favorite-toolbar select,
            .favorite-toolbar input[type="number"] {
                font-size: 12px; padding: 2.5px 6px;
            }
            .filter-section button,
            .favorite-toolbar button {
                font-size: 12px; padding: 2.5px 10px; height: 25px;
            }
            #pagination, #favoritePagination, #shopPagination { height: 36px; font-size: 12.5px; }
            #pagination button, #favoritePagination button, #shopPagination button,
            #pagination select, #favoritePagination select, #shopPagination select,
            #pagination input, #favoritePagination input, #shopPagination input { height: 24px; font-size: 12px; }
            .page.active { padding: 8px 10px 48px; }
        }
        .new-cell {
            text-align: center;
            line-height: 1.2;
            white-space: normal;
            overflow: visible;
            font-size: calc(13.5px * var(--table-zoom));
            font-variant-numeric: tabular-nums;
            padding-top: 3px;
            padding-bottom: 3px;
        }
        .new-cell .new-date {
            display: block;
            text-align: center;
            white-space: nowrap;
            overflow: visible;
            text-overflow: clip;
            letter-spacing: 0.01em;
        }
        .new-cell .new-days {
            display: block;
            text-align: center;
            white-space: nowrap;
            font-weight: 600;
            padding-top: 1px;
        }
        .new-cell .launch-syncing {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 999px;
            background: #f2f4f7;
            color: #475467;
            font-size: 12px;
            line-height: 20px;
            white-space: nowrap;
        }
        .new-cell .launch-empty {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 999px;
            background: #fff7ed;
            color: #c2410c;
            font-size: 12px;
            line-height: 20px;
            white-space: nowrap;
        }
        .new-cell .launch-verify {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 999px;
            background: #fef3c7;
            color: #92400e;
            font-size: 12px;
            line-height: 20px;
            white-space: nowrap;
        }
        .new-cell .new-days.green { color: #16a34a; }
        .new-cell .new-days.orange { color: #f97316; }
        .new-cell .new-days.yellow { color: #eab308; }
        .new-cell .new-days.black { color: #111827; }
        .shop-cell {
            text-align: left;
            line-height: 1.25;
            white-space: normal;
            overflow: hidden;
            font-size: calc(12.8px * var(--table-zoom));
            padding-left: 2px;
            padding-right: 2px;
            padding-top: 0;
            padding-bottom: 0;
        }
        .shop-cell .shop-line {
            display: block;
            white-space: normal;
            overflow: visible;
            word-break: break-all;
            overflow-wrap: anywhere;
            padding: 0;
            margin: 0;
        }
        .shop-cell .shop-line + .shop-line { margin-top: 1px; }
        .shop-cell .shop-label {
            display: inline;
            float: none;
            color: #6b7280;
            margin-right: 3px;
            white-space: nowrap;
        }
        .shop-cell .shop-wrap {
            width: 100%;
            display: block;
            margin: 0;
            padding: 0;
            overflow: visible;
        }
        /* 新增图片样式 */
        td img {
            width: 76px;
            height: 76px;
            object-fit: cover; /* 确保图片填充 100x100 的区域 */
        }
        /* 新增名字列样式 */
        td:nth-child(4) {
            max-width: 200px; /* 可根据需要调整最大宽度 */
            overflow: hidden;
            text-overflow: ellipsis;
        }
        /* 名字列多行截断为 4 行 */
        .name-cell-content {
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 3;
            line-clamp: 3;
            overflow: hidden;
            white-space: normal;
        }
        #productTable {
            table-layout: fixed;
            width: 100%;
            min-width: 100%;
            max-width: 100%;
        }
        #productTable thead th {
            position: sticky;
            top: 0;
            z-index: 50;
            background-color: #f1f5f9;
            color: #374151;
            box-shadow: 0 2px 0 rgba(16,24,40,0.06);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        #productTable tbody tr:nth-child(odd) {
            background-color: #ffffff;
        }
        #productTable tbody tr:nth-child(even) {
            background-color: #f8fafc;
        }
        #productTable tbody tr:hover {
            background-color: #fff7ed;
        }
        /* 默认：所有列 nowrap + ellipsis，除显式豁免外全部不超宽 */
        #productTable td {
            padding: calc(6px * var(--table-zoom)) calc(5px * var(--table-zoom));
            font-size: calc(1em * var(--table-zoom));
            border-color: #e5e7eb;
            vertical-align: middle;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 0;
        }
        /* 第 1 列：国家 */
        #productTable th:nth-child(1),
        #productTable td:nth-child(1),
        #favoriteTable th:nth-child(1),
        #favoriteTable td:nth-child(1) { width: var(--col-1-w); }
        /* 第 2 列：图片 */
        #productTable th:nth-child(2),
        #productTable td:nth-child(2),
        #favoriteTable th:nth-child(2),
        #favoriteTable td:nth-child(2) { width: var(--col-2-w); }
        /* 第 3 列：ASIN（必须完整 10 字符，不省略） */
        #productTable th:nth-child(3),
        #productTable td:nth-child(3),
        #favoriteTable th:nth-child(3),
        #favoriteTable td:nth-child(3) {
            width: var(--col-3-w);
            min-width: 0;
            overflow: visible;
            text-overflow: clip;
            white-space: nowrap;
            font-variant-numeric: tabular-nums;
            letter-spacing: 0.01em;
        }
        /* 第 4 列：名字（缩 1%，给类目排名腾空间） */
        #productTable th:nth-child(4),
        #productTable td:nth-child(4),
        #favoriteTable th:nth-child(4),
        #favoriteTable td:nth-child(4) { width: var(--col-4-w); }
        /* 第 5 列：评分 */
        #productTable th:nth-child(5),
        #productTable td:nth-child(5),
        #favoriteTable th:nth-child(5),
        #favoriteTable td:nth-child(5) { width: var(--col-5-w); }
        /* 第 6 列：价格 */
        #productTable th:nth-child(6),
        #productTable td:nth-child(6),
        #favoriteTable th:nth-child(6),
        #favoriteTable td:nth-child(6) { width: var(--col-6-w); }
        /* 第 7 列：评论 */
        #productTable th:nth-child(7),
        #productTable td:nth-child(7),
        #favoriteTable th:nth-child(7),
        #favoriteTable td:nth-child(7) { width: var(--col-7-w); }
        /* 第 8 列：上新（两行：日期 + X天）——取消 max-width:0，让日期完整显示不省略 */
        #productTable th:nth-child(8),
        #productTable td:nth-child(8),
        #favoriteTable th:nth-child(8),
        #favoriteTable td:nth-child(8) {
            width: var(--col-8-w);
            min-width: 0;
            max-width: none;
            white-space: normal;
            overflow: visible;
            text-overflow: clip;
            line-height: 1.2;
        }
        /* 第 9 列：配送 */
        #productTable th:nth-child(9),
        #productTable td:nth-child(9),
        #favoriteTable th:nth-child(9),
        #favoriteTable td:nth-child(9) { width: var(--col-9-w); }
        /* 第 10 列：销量（两行：子体/父体） */
        #productTable th:nth-child(10),
        #productTable td:nth-child(10),
        #favoriteTable th:nth-child(10),
        #favoriteTable td:nth-child(10) {
            width: var(--col-10-w);
            min-width: 0;
            max-width: none;
            white-space: normal;
            overflow: visible;
            text-overflow: clip;
            line-height: 1.2;
        }
        /* 第 11 列：变体数（2.3%）—— 保证"变体数"三字不折行 */
        #productTable thead th:nth-child(11),
        #productTable tbody td:nth-child(11),
        #productTable th:nth-child(11),
        #productTable td:nth-child(11),
        #favoriteTable thead th:nth-child(11),
        #favoriteTable tbody td:nth-child(11),
        #favoriteTable th:nth-child(11),
        #favoriteTable td:nth-child(11) {
            width: var(--col-11-w) !important;
            min-width: 0 !important;
            max-width: none !important;
            overflow: visible !important;
            text-overflow: clip !important;
            white-space: normal !important;
            padding-left: 1px !important;
            padding-right: 1px !important;
        }
        /* 第 12 列：类目排名（17%，完整显示不隐藏，允许自然换行） */
        #productTable thead th:nth-child(12),
        #productTable tbody td:nth-child(12),
        #productTable th:nth-child(12),
        #productTable td:nth-child(12),
        #favoriteTable thead th:nth-child(12),
        #favoriteTable tbody td:nth-child(12),
        #favoriteTable th:nth-child(12),
        #favoriteTable td:nth-child(12) {
            width: var(--col-12-w) !important;
            min-width: 0 !important;
            max-width: none !important;
            white-space: normal !important;
            overflow: visible !important;
            text-overflow: clip !important;
            line-height: 1.3 !important;
            padding-top: 4px !important;
            padding-bottom: 4px !important;
        }
        .rank-badge {
            display: inline-block;
            color: #0f172a;
            font-weight: 600;
            font-size: calc(12px * var(--table-zoom));
            line-height: 1.3;
            vertical-align: middle;
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
            flex-shrink: 0;
        }
        .rank-in {
            color: #334155;
            margin: 0 2px;
            font-weight: 400;
            font-size: calc(12px * var(--table-zoom));
            line-height: 1.3;
            vertical-align: middle;
            white-space: nowrap;
            flex-shrink: 0;
        }
        .rank-cat-link {
            color: #2563eb;
            text-decoration: none;
            font-weight: 400;
            font-size: calc(12px * var(--table-zoom));
            line-height: 1.3;
            vertical-align: middle;
            white-space: normal;
            word-break: break-word;
            min-width: 0;
        }
        .rank-cat-link:hover {
            text-decoration: underline;
        }
        .rank-line {
            display: flex;
            align-items: center;
            gap: 1px;
            line-height: 1.3;
            margin-bottom: 3px;
            min-width: 0;
        }
        .rank-line:last-child {
            margin-bottom: 0;
        }
        .rank-line .rank-cat-link {
            min-width: 0;
            flex: 1;
        }
        .rank-wrap {
            position: relative;
            min-height: 100%;
            padding-right: 28px;
            box-sizing: border-box;
        }
        .cat-rank-trend-btn {
            position: absolute;
            right: 10px;
            bottom: 0;
            width: 16px;
            height: 16px;
            padding: 0;
            border: none;
            background: transparent;
            color: #94a3b8;
            cursor: pointer;
            font-size: 14px;
            line-height: 1;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 3px;
            transition: all .15s ease;
        }
        .cat-rank-trend-btn:hover {
            color: #2563eb;
            background: #eff6ff;
        }
        /* 第 13 列：店铺（两行：品牌 + 卖家）缩 1% 给类目排名 */
        #productTable th:nth-child(13),
        #productTable td:nth-child(13),
        #favoriteTable th:nth-child(13),
        #favoriteTable td:nth-child(13) {
            width: var(--col-13-w);
            min-width: 0;
            max-width: none;
            white-space: normal;
            overflow: hidden;
            text-overflow: clip;
            word-break: break-all;
            line-height: 1.2;
            padding-top: 4px;
            padding-bottom: 4px;
        }
        /* 第 14 列：链接 */
        #productTable th:nth-child(14),
        #productTable td:nth-child(14),
        #favoriteTable th:nth-child(14),
        #favoriteTable td:nth-child(14) { width: var(--col-14-w); }
        /* 第 15 列：类别（缩到 5%，允许换行） */
        #productTable th:nth-child(15),
        #productTable td:nth-child(15),
        #favoriteTable th:nth-child(15),
        #favoriteTable td:nth-child(15) {
            width: var(--col-15-w);
            min-width: 0;
            white-space: normal;
            overflow: hidden;
            word-break: break-all;
            line-height: 1.2;
            padding-top: 4px;
            padding-bottom: 4px;
            vertical-align: middle;
        }
        /* 第 16 列：时间（5.2%，两行/三行：添加/修改/收藏）—— 放空间，三行内容不被挡 */
        #productTable thead th:nth-child(16),
        #productTable tbody td:nth-child(16),
        #productTable th:nth-child(16),
        #productTable td:nth-child(16),
        #favoriteTable thead th:nth-child(16),
        #favoriteTable tbody td:nth-child(16),
        #favoriteTable th:nth-child(16),
        #favoriteTable td:nth-child(16) {
            width: var(--col-16-w) !important;
            min-width: 0 !important;
            max-width: none !important;
            white-space: normal !important;
            overflow: visible !important;
            text-overflow: clip !important;
            line-height: 1.2 !important;
            padding-left: 3px !important;
            padding-right: 3px !important;
        }
        /* 第 17 列：操作（4 行按钮组） */
        #productTable th:nth-child(17),
        #productTable td:nth-child(17),
        #favoriteTable th:nth-child(17),
        #favoriteTable td:nth-child(17) {
            width: var(--col-17-w);
            min-width: 0;
            max-width: none !important;
            white-space: normal;
            overflow: visible;
            position: relative;
            z-index: 2;
        }
        #favoriteTable {
            table-layout: fixed;
            width: 100%;
            min-width: 100%;
            max-width: 100%;
        }
        #favoriteTable thead th {
            position: sticky;
            top: 0;
            z-index: 50;
            background-color: #f1f5f9;
            color: #374151;
            box-shadow: 0 2px 0 rgba(16,24,40,0.06);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        #favoriteTable tbody tr:nth-child(odd) { background-color: #ffffff; }
        #favoriteTable tbody tr:nth-child(even) { background-color: #f8fafc; }
        #favoriteTable tbody tr:hover { background-color: #fff7ed; }
        #favoriteTable td {
            padding: calc(6px * var(--table-zoom)) calc(5px * var(--table-zoom));
            font-size: calc(1em * var(--table-zoom));
            border-color: #e5e7eb;
            vertical-align: middle;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 0;
        }
        /* ===== 店铺监控：17列表格（对齐产品监控默认样式，仅保留列宽+必要换行） ===== */
        #shopProductTable th:nth-child(1),
        #shopProductTable td:nth-child(1) { width: var(--col-1-w); }
        #shopProductTable th:nth-child(2),
        #shopProductTable td:nth-child(2) { width: var(--col-2-w); }
        #shopProductTable th:nth-child(3),
        #shopProductTable td:nth-child(3) { width: var(--col-3-w); }
        #shopProductTable th:nth-child(4),
        #shopProductTable td:nth-child(4) { width: var(--col-4-w); }
        #shopProductTable th:nth-child(5),
        #shopProductTable td:nth-child(5) { width: var(--col-5-w); }
        #shopProductTable th:nth-child(6),
        #shopProductTable td:nth-child(6) { width: var(--col-6-w); }
        #shopProductTable th:nth-child(7),
        #shopProductTable td:nth-child(7) { width: var(--col-7-w); }
        #shopProductTable th:nth-child(8),
        #shopProductTable td:nth-child(8) { width: var(--col-8-w); }
        #shopProductTable th:nth-child(9),
        #shopProductTable td:nth-child(9) { width: var(--col-9-w); }
        #shopProductTable th:nth-child(10),
        #shopProductTable td:nth-child(10) { width: var(--col-10-w); }
        #shopProductTable thead th:nth-child(11), #shopProductTable tbody td:nth-child(11),
        #shopProductTable th:nth-child(11), #shopProductTable td:nth-child(11) {
            width: var(--col-11-w);
            text-align: center;
        }
        #shopProductTable thead th:nth-child(12), #shopProductTable tbody td:nth-child(12),
        #shopProductTable th:nth-child(12), #shopProductTable td:nth-child(12) {
            width: var(--col-12-w);
            white-space: normal;
            line-height: 1.45;
            text-align: left;
        }
        #shopProductTable th:nth-child(13),
        #shopProductTable td:nth-child(13) {
            width: var(--col-13-w);
            white-space: normal;
            line-height: 1.45;
            text-align: left;
        }
        #shopProductTable th:nth-child(14),
        #shopProductTable td:nth-child(14) { width: var(--col-14-w); }
        #shopProductTable th:nth-child(15),
        #shopProductTable td:nth-child(15) {
            width: var(--col-15-w);
            white-space: normal;
            line-height: 1.45;
            text-align: left;
        }
        #shopProductTable thead th:nth-child(16), #shopProductTable tbody td:nth-child(16),
        #shopProductTable th:nth-child(16), #shopProductTable td:nth-child(16) {
            width: var(--col-16-w);
            white-space: normal;
            line-height: 1.4;
            text-align: left;
        }
        #shopProductTable th:nth-child(17),
        #shopProductTable td:nth-child(17) {
            width: var(--col-17-w);
            min-width: 0;
            max-width: none !important;
            white-space: normal;
            overflow: visible;
            position: relative;
            z-index: 2;
        }
        #shopProductTable {
            table-layout: fixed;
            width: 100%;
            min-width: 100%;
            max-width: 100%;
        }
        #shopProductTable thead th {
            position: sticky;
            top: 0;
            z-index: 50;
            background-color: #f1f5f9;
            color: #374151;
            box-shadow: 0 2px 0 rgba(16,24,40,0.06);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        #shopProductTable tbody tr:nth-child(odd) { background-color: #ffffff; }
        #shopProductTable tbody tr:nth-child(even) { background-color: #f8fafc; }
        #shopProductTable tbody tr:hover { background-color: #fff7ed; cursor: pointer; }
        #shopProductTable tbody tr.shop-row-selected { background-color: #eef4ff !important; }
        #shopProductTable td {
            padding: calc(6px * var(--table-zoom)) calc(5px * var(--table-zoom));
            font-size: calc(1em * var(--table-zoom));
            border-color: #e5e7eb;
            vertical-align: middle;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 0;
        }
        /* ===== 店铺管理条（可折叠） ===== */
        .shop-admin-wrap {
            background: rgba(255,255,255,0.92);
            backdrop-filter: saturate(180%) blur(6px);
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(16, 24, 40, 0.06);
            margin: 10px 0;
            overflow: hidden;
        }
        .shop-admin-wrap.collapsed .shop-admin-body { display: none; }
        .shop-admin-wrap.collapsed .shop-admin-toggle-icon { transform: rotate(-90deg); }
        .shop-admin-header {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 14px;
            border-bottom: 1px solid #eef2f7;
            background: #fbfcfe;
            cursor: pointer;
            user-select: none;
            transition: background .15s ease;
        }
        .shop-admin-header:hover { background: #f6f8ff; }
        .shop-admin-toggle-icon {
            display: inline-block;
            width: 18px;
            height: 18px;
            text-align: center;
            line-height: 18px;
            color: #667085;
            font-weight: 700;
            transition: transform .2s ease;
        }
        .shop-admin-title {
            font-weight: 700;
            font-size: 13px;
            color: #101828;
        }
        .shop-filter-btn {
            border: none;
            background: transparent;
            color: #475467;
            padding: 4px 10px;
            font-size: 12px;
            line-height: 16px;
            border-radius: 999px;
            cursor: pointer;
            transition: all .15s ease;
        }
        .shop-filter-btn:hover {
            color: #1e3a8a;
            background: #e0ecff;
        }
        .shop-filter-btn-active {
            background: #1e3a8a;
            color: #fff !important;
            box-shadow: 0 1px 2px rgba(30,58,138,.25);
        }
        .shop-admin-add-btn {
            height: 26px;
            padding: 0 12px;
            border: 1px solid #2563eb;
            border-radius: 999px;
            background: #2563eb;
            color: #fff;
            font-size: 12px;
            font-weight: 600;
            cursor: pointer;
            transition: all .15s ease;
        }
        .shop-admin-add-btn:hover {
            background: #1d4ed8;
            border-color: #1d4ed8;
        }
        .shop-admin-summary {
            font-size: 12px;
            color: #667085;
        }
        .shop-admin-body {
            padding: 0 14px 10px;
        }
        .shop-admin-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 12.5px;
            margin-top: 8px;
        }
        .shop-admin-table th,
        .shop-admin-table td {
            border: 1px solid #e5e7eb;
            padding: 6px 10px;
            text-align: left;
            vertical-align: middle;
        }
        .shop-admin-table thead th {
            background: #f2f4f7;
            color: #344054;
            font-weight: 600;
            white-space: nowrap;
        }
        .shop-admin-table tbody tr {
            cursor: pointer;
            transition: background .12s ease;
        }
        .shop-admin-table tbody tr:hover { background: #f6f8ff; }
        .shop-admin-table tbody tr.selected {
            background: #eef4ff;
            box-shadow: inset 3px 0 0 #2563eb;
        }
        .shop-admin-table tbody td.asin-count-cell {
            text-align: center;
            font-weight: 600;
            color: #1e40af;
        }
        .shop-admin-remark-cell {
            color: #475467;
            font-size: 12px;
            max-width: 280px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .shop-admin-country-badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 42px;
            height: 22px;
            padding: 0 8px;
            border-radius: 999px;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.03em;
            background: linear-gradient(135deg, #dbeafe, #bfdbfe);
            color: #1e40af;
            border: 1px solid #93c5fd;
        }
        .shop-admin-shop-name-cell {
            font-weight: 600;
            color: #101828;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 220px;
        }
        .shop-admin-shop-id-cell {
            color: #344054;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 180px;
        }
        .shop-id-badge {
            display: inline-flex;
            align-items: center;
            height: 20px;
            padding: 0 8px;
            border-radius: 4px;
            font-family: Consolas, Menlo, Monaco, monospace;
            font-size: 11.5px;
            font-weight: 600;
            background: #f0fdf4;
            color: #166534;
            border: 1px solid #bbf7d0;
        }
        .shop-id-line {
            display: block;
            margin-top: 2px;
            font-size: 11px;
            color: #667085;
            font-family: Consolas, Menlo, Monaco, monospace;
            line-height: 1.2;
        }
        .shop-admin-shop-name-cell a {
            color: #1d4ed8;
            font-size: 11px;
            font-weight: 400;
            margin-left: 6px;
            text-decoration: none;
        }
        .shop-admin-shop-name-cell a:hover { text-decoration: underline; }
        .shop-admin-row-actions {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            gap: 6px;
        }
        .shop-admin-row-actions button {
            height: 24px;
            padding: 0 10px;
            border-radius: 999px;
            font-size: 11.5px;
            font-weight: 500;
            cursor: pointer;
            border: 1px solid transparent;
            transition: all .12s ease;
        }
        .shop-edit-btn {
            background: #eef4ff;
            border-color: #a8bfff;
            color: #2152d9;
        }
        .shop-edit-btn:hover { background: #e3edff; }
        .shop-delete-btn {
            background: #fef2f2;
            border-color: #fecaca;
            color: #b42318;
        }
        .shop-delete-btn:hover { background: #fee2e2; }

        /* 新增样式，用于控制界面显示和隐藏 */
        .page {
            display: none;
        }
        .page.active {
            display: block;
            padding: 12px 14px 72px;
            box-sizing: border-box;
            max-width: 100%;
            overflow-x: visible;
        }
        /* 表格外层额外留出翻页栏空间，避免最后一行/最后几列被遮挡 */
        .page.active .table-wrap {
            margin-bottom: 6px;
        }
        .page.active .keyword-rank-frame-wrap {
            margin-bottom: 36px;
        }
        /* 新增：冻结翻页功能样式（产品监控 & 个人关注 & 店铺监控共享） */
        #pagination,
        #favoritePagination,
        #shopPagination {
            position: fixed;
            bottom: 12px;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
            width: max-content;
            max-width: 96%;
            padding: 8px 12px;
            border-radius: 12px;
            background: rgba(255,255,255,0.92);
            backdrop-filter: saturate(180%) blur(8px);
            border: 1px solid #e5e7eb;
            box-shadow: 0 8px 24px rgba(16, 24, 40, 0.12);
            text-align: center;
            box-sizing: border-box;
            z-index: 150;
            pointer-events: none;
        }
        #pagination button,
        #pagination select,
        #pagination input,
        #favoritePagination button,
        #favoritePagination select,
        #favoritePagination input,
        #shopPagination button,
        #shopPagination select,
        #shopPagination input {
            height: 28px;
            line-height: 28px;
            font-size: 12px;
            padding: 0 10px;
            border-radius: 6px;
            border: 1px solid #d0d5dd;
            background: #ffffff;
            pointer-events: auto;
        }
        #pagination button:hover,
        #favoritePagination button:hover,
        #shopPagination button:hover {
            background: #f9fafb;
            border-color: #cdd3da;
        }
        html {
            max-width: 100%;
        }
        body {
            background-image: url('https://p9.itc.cn/q_70/images03/20231106/1ed352fcebe94ccdacfa7fc820194e6e.jpeg');
            background-size: cover;
            background-repeat: no-repeat;
            background-position: center;
            background-attachment: fixed;
            max-width: 100%;
            overflow-x: visible;
        }
        .table-wrap {
            width: 100%;
            max-width: 100%;
            overflow-x: visible;
            overflow-y: visible;
            margin: 0;
            box-sizing: border-box;
        }
        .table-wrap table {
            width: 100%;
            min-width: 0;
            max-width: 100%;
        }
        #loginForm {
            display: flex;
            flex-direction: column;
            width: 300px;
            margin: 100px auto;
            padding: 20px;
            border: 1px solid #ddd;
            border-radius: 5px;

            background-color: rgba(255, 255, 255, 0.8); /* 添加半透明背景，提升登录表单可读性 */
            background-image: url(''); /* 登录窗口添加背景图片 */
            background-size: cover;
        }
        #loginForm input {
            margin: 10px 0;
            padding: 8px;
        }
        #loginForm button {
            padding: 10px;
        }
        .content {
            display: none;
        }
        /* 走势图模式 */
         /* 添加模态框样式 */
    #priceRankModal { 
        display: none; 
        position: fixed; 
        z-index: 2147483646; 
        left: 0; 
        top: 0; 
        width: 100%; 
        height: 100%; 
        overflow: auto; 
        background-color: rgba(0,0,0,0.4); 
    }
    /* 通用模态框遮罩层（让所有 .modal 默认拥有 fixed + 半透明背景遮罩） */
    .modal {
        display: none;
        position: fixed;
        z-index: 2147483646;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: auto;
        background-color: rgba(0,0,0,0.4);
    }
    /* 设置弹窗打开时：遮罩层穿透 + 透明，可直接在弹窗后方表格上拖拽列 */
    .modal.table-setting-open {
        pointer-events: none;
        background-color: transparent;
    }
    .modal.table-setting-open .modal-content {
        pointer-events: auto;
    }
    /* 详情内容模态框样式 */
    #detailModal { 
        display: none; 
        position: fixed; 
        z-index: 2147483646; 
        left: 0; 
        top: 0; 
        width: 100%; 
        height: 100%; 
        overflow: hidden;
        background-color: rgba(0,0,0,0.4); 
    }
    #detailModal .modal-content {
        width: min(92vw, 1120px);
        max-width: 1120px;
        margin: 5vh auto;
        padding: 18px 22px 16px;
        max-height: 88vh;
        overflow-y: auto;
        overflow-x: hidden;
    }
    .review-table-wrap {
        width: 100%;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        margin-top: 6px;
        background: #fff;
    }
    .review-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 12px;
        table-layout: fixed;
    }
    .review-table thead th {
        position: sticky;
        top: 0;
        background: #f8fafc;
        color: #475569;
        font-weight: 600;
        padding: 6px 10px;
        border-bottom: 1px solid #e2e8f0;
        text-align: left;
        z-index: 1;
        font-size: 12px;
    }
    .review-table tbody td {
        padding: 8px 10px;
        border-bottom: 1px solid #f1f5f9;
        vertical-align: top;
        color: #1e293b;
        word-break: break-word;
        overflow-wrap: break-word;
        line-height: 1.5;
        text-align: left;
    }
    .review-table tbody tr:last-child td { border-bottom: none; }
    .review-table tbody tr:nth-child(even) td { background: #fafbfc; }
    .review-table colgroup .col-name   { width: 140px; }
    .review-table colgroup .col-rating { width: 64px; }
    .review-table colgroup .col-date   { width: 110px; }
    .review-table colgroup .col-vine   { width: 80px; }
    .review-rating {
        display: inline-flex;
        align-items: center;
        gap: 1px;
        font-weight: 700;
        padding: 1px 6px;
        border-radius: 4px;
        font-size: 12px;
        line-height: 1.4;
    }
    .review-rating.r-5 { background: #ecfdf5; color: #047857; }
    .review-rating.r-4 { background: #f0fdf4; color: #15803d; }
    .review-rating.r-3 { background: #fffbeb; color: #b45309; }
    .review-rating.r-2 { background: #fef2f2; color: #b91c1c; }
    .review-rating.r-1 { background: #fef2f2; color: #b91c1c; }
    .review-rating.r-0 { background: #f1f5f9; color: #64748b; }
    .review-name {
        color: #0f172a;
        font-weight: 500;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        display: block;
    }
    .review-date {
        color: #64748b;
        font-variant-numeric: tabular-nums;
        font-size: 11.5px;
    }
    .review-vine {
        display: inline-block;
        padding: 1px 6px;
        border-radius: 4px;
        font-size: 11px;
        font-weight: 600;
        line-height: 1.4;
        white-space: nowrap;
    }
    .review-vine.vine { background: #ede9fe; color: #6d28d9; border: 1px solid #ddd6fe; }
    .review-vine.normal { background: transparent; color: #94a3b8; border: 1px solid #e2e8f0; }
    .review-content {
        color: #334155;
        white-space: pre-wrap;
        word-break: break-word;
        font-size: 12px;
    }
    #profitModal { 
        display: none; 
        position: fixed; 
        z-index: 2147483646; 
        left: 0; 
        top: 0; 
        width: 100%; 
        height: 100%; 
        overflow: auto; 
        background-color: rgba(0,0,0,0.4); 
    }
    #trafficModal { 
        display: none; 
        position: fixed; 
        z-index: 2147483646; 
        left: 0; 
        top: 0; 
        width: 100%; 
        height: 100%; 
        overflow: auto; 
        background-color: rgba(0,0,0,0.4); 
    }
    #variantModal {
        display: none;
        position: fixed;
        z-index: 2147483646;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: auto;
        background-color: rgba(0,0,0,0.4);
    }
    #parentSalesModal { 
        display: none; 
        position: fixed; 
        z-index: 2147483646; 
        left: 0; 
        top: 0; 
        width: 100%; 
        height: 100%; 
        overflow: auto; 
        background-color: rgba(0,0,0,0.4); 
    }
    #erpHelpModal { 
        display: none; 
        position: fixed; 
        z-index: 2147483646; 
        left: 0; 
        top: 0; 
        width: 100%; 
        height: 100%; 
        overflow: auto; 
        background-color: rgba(0,0,0,0.4); 
    }
    #keywordWordDetailModal[hidden] {
        display: none !important;
    }
    #keywordWordDetailModal {
        position: fixed;
        z-index: 2147483646;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: auto;
        background-color: rgba(0,0,0,0.4);
    }
    
    .modal-content { 
        background-color: #fefefe; 
        margin: 10% auto; 
        padding: 20px; 
        border: 1px solid #888; 
        width: 80%; 
        max-width: 800px; 
        position: relative; 
        z-index: 2147483647; 
    }
    .dialog-modal {
        display: none;
        position: fixed;
        z-index: 2147483647;
        inset: 0;
        overflow: hidden;
        background-color: rgba(16, 24, 40, 0.5);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
        align-items: center;
        justify-content: center;
    }
    .dialog-modal[style*="display: block"],
    .dialog-modal[style*="display:block"] {
        display: flex !important;
    }
    .dialog-box {
        width: min(420px, calc(100% - 32px));
        background: #ffffff;
        border: 1px solid #eaecf0;
        border-radius: 16px;
        box-shadow: 0 24px 64px rgba(16, 24, 40, 0.18), 0 8px 20px rgba(16, 24, 40, 0.08);
        padding: 24px 24px 20px;
        animation: dialogPopIn 0.18s ease-out;
    }
    @keyframes dialogPopIn {
        from { opacity: 0; transform: translateY(-8px) scale(0.96); }
        to   { opacity: 1; transform: translateY(0)    scale(1);    }
    }
    .dialog-icon {
        width: 56px;
        height: 56px;
        border-radius: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0 auto 14px;
    }
    .confirm-icon {
        background: linear-gradient(135deg, rgba(37,99,235,0.1), rgba(59,130,246,0.16));
    }
    .alert-icon {
        background: linear-gradient(135deg, rgba(220,38,38,0.08), rgba(239,68,68,0.14));
    }
    .dialog-body {
        text-align: center;
        margin-bottom: 20px;
    }
    .dialog-title {
        font-size: 17px;
        font-weight: 700;
        color: #101828;
        margin-bottom: 8px;
        line-height: 1.4;
    }
    .dialog-message {
        font-size: 14px;
        color: #475467;
        line-height: 1.6;
        white-space: pre-line;
        word-break: break-word;
    }
    .dialog-actions {
        display: flex;
        gap: 10px;
        justify-content: flex-end;
    }
    .dialog-btn {
        min-width: 88px;
        height: 38px;
        padding: 0 18px;
        border-radius: 10px;
        border: 1px solid transparent;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.15s ease;
        font-family: inherit;
    }
    .dialog-btn-cancel {
        background: #f9fafb;
        border-color: #d0d5dd;
        color: #344054;
    }
    .dialog-btn-cancel:hover {
        background: #f2f4f7;
        border-color: #c1c7cd;
    }
    .dialog-btn-confirm {
        background: linear-gradient(135deg, #2563eb, #1d4ed8);
        border-color: #1d4ed8;
        color: #ffffff;
        box-shadow: 0 2px 6px rgba(37,99,235,0.25);
    }
    .dialog-btn-confirm:hover {
        filter: brightness(1.03);
        transform: translateY(-0.5px);
        box-shadow: 0 4px 10px rgba(37,99,235,0.3);
    }
    .dialog-btn-confirm:active {
        transform: translateY(0);
    }
    .alert-box .dialog-btn-confirm {
        background: linear-gradient(135deg, #dc2626, #b91c1c);
        border-color: #b91c1c;
        box-shadow: 0 2px 6px rgba(220,38,38,0.22);
    }
    #changeLogModal .modal-content {
        width: 88%;
        max-width: 1080px;
        margin: 5vh auto;
        max-height: 88vh;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        padding: 18px 22px 16px;
        border-radius: 14px;
    }
    .change-log-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 10px;
        padding-bottom: 10px;
        border-bottom: 1px solid #eef2f7;
    }
    .change-log-title {
        font-size: 15px;
        font-weight: 700;
        color: #0f172a;
        margin: 0;
    }
    .change-log-title small {
        font-weight: 500;
        color: #64748b;
        margin-left: 8px;
        font-size: 12px;
    }
    .change-log-tabs {
        display: inline-flex;
        gap: 2px;
        background: #f1f5f9;
        padding: 3px;
        border-radius: 8px;
    }
    .change-log-tab {
        padding: 5px 14px;
        border-radius: 6px;
        border: none;
        background: transparent;
        color: #475569;
        font-size: 12.5px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.15s;
    }
    .change-log-tab:hover { color: #0f172a; }
    .change-log-tab.active {
        background: #ffffff;
        color: #1d4ed8;
        box-shadow: 0 1px 2px rgba(15,23,42,0.08);
    }
    .change-log-toolbar {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 10px;
        font-size: 12.5px;
        color: #475569;
    }
    .change-log-toolbar-row {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
    }
    .change-log-toolbar select {
        height: 28px;
        line-height: 26px;
        padding: 0 10px;
        border-radius: 6px;
        border: 1px solid #d0d5dd;
        background: #ffffff;
        color: #1f2937;
        font-size: 12.5px;
    }
    .change-log-field-filter {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 0 10px;
        height: 28px;
        line-height: 26px;
        border-radius: 999px;
        border: 1px solid transparent;
        background: #f1f5f9;
        color: #94a3b8;
        font-size: 12px;
        font-weight: 600;
        cursor: pointer;
        user-select: none;
        transition: all 0.15s;
    }
    .change-log-field-filter:hover { background: #e2e8f0; color: #334155; }
    .change-log-field-filter.active {
        border-color: transparent;
        background: #eef2ff;
        color: #3730a3;
    }
    .change-log-field-filter.图片.active { background: #fce7f3; color: #9d174d; }
    .change-log-field-filter.价格.active { background: #dcfce7; color: #166534; }
    .change-log-field-filter.排名.active { background: #fee2e2; color: #991b1b; }
    .change-log-field-filter.销量.active { background: #fef3c7; color: #92400e; }
    .change-log-field-filter.评分.active { background: #e0e7ff; color: #3730a3; }
    .change-log-field-filter.变体数量.active { background: #cffafe; color: #155e75; }
    .change-log-field-filter.评论数量.active { background: #ede9fe; color: #5b21b6; }
    .change-log-field-filter.商品名字.active { background: #e0f2fe; color: #075985; }
    .change-log-field-filter.类目排名.active { background: #fed7aa; color: #9a3412; }
    .change-log-field-filter-all {
        background: linear-gradient(135deg, #2563eb, #1d4ed8);
        color: #ffffff;
        border: none;
    }
    .change-log-field-filter-all:hover { filter: brightness(1.03); color: #ffffff; }
    .change-log-field-filter-list {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        align-items: center;
    }
    .change-log-field-filter-label {
        color: #64748b;
        font-weight: 600;
        font-size: 12.5px;
        flex: 0 0 auto;
    }
    .change-log-tip {
        color: #94a3b8;
        margin-left: auto;
        font-size: 12px;
        flex: 0 0 auto;
    }
    .change-log-body {
        flex: 1 1 auto;
        overflow: auto;
        border: 1px solid #eef2f7;
        border-radius: 10px;
        background: #ffffff;
    }
    .change-log-body table {
        width: 100%;
        border-collapse: collapse;
        font-size: 12.5px;
        table-layout: fixed;
    }
    .change-log-body th {
        position: sticky;
        top: 0;
        background: #f8fafc;
        color: #334155;
        font-weight: 700;
        text-align: left;
        padding: 9px 10px;
        border-bottom: 1px solid #e2e8f0;
        z-index: 2;
        white-space: nowrap;
    }
    .change-log-body td {
        padding: 8px 10px;
        border-bottom: 1px solid #f1f5f9;
        vertical-align: top;
        color: #0f172a;
        word-break: break-word;
    }
    .change-log-body tr:last-child td { border-bottom: none; }
    .change-log-body tr:hover td { background: #fffbeb; }
    .change-log-snapshot-list {
        display: flex;
        flex-direction: column;
        gap: 14px;
        padding: 14px;
    }
    .change-log-snapshot-card {
        border: 1px solid #e2e8f0;
        border-radius: 10px;
        background: #ffffff;
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
        overflow: hidden;
    }
    .change-log-snapshot-card:hover {
        border-color: #cbd5e1;
        box-shadow: 0 2px 6px rgba(15, 23, 42, 0.06);
    }
    .change-log-snapshot-time {
        display: flex;
        align-items: center;
        padding: 8px 12px;
        background: linear-gradient(90deg, #f8fafc 0%, #ffffff 100%);
        border-bottom: 1px solid #f1f5f9;
        font-size: 12.5px;
        font-weight: 700;
        color: #334155;
        gap: 8px;
    }
    .change-log-snapshot-time::before {
        content: '';
        display: inline-block;
        width: 3px;
        height: 14px;
        background: #3b82f6;
        border-radius: 2px;
        flex-shrink: 0;
    }
    .change-log-snapshot-time .snapshot-count {
        margin-left: auto;
        font-size: 11.5px;
        font-weight: 500;
        color: #94a3b8;
        background: #f1f5f9;
        padding: 2px 8px;
        border-radius: 999px;
    }
    .change-log-snapshot-rows {
        display: flex;
        flex-direction: column;
    }
    .change-log-snapshot-row {
        display: grid;
        grid-template-columns: 96px 1fr;
        gap: 10px;
        padding: 7px 12px;
        border-bottom: 1px solid #f8fafc;
        align-items: center;
    }
    .change-log-snapshot-row:last-child { border-bottom: none; }
    .change-log-snapshot-row:nth-child(even) { background: #fcfcfd; }
    .change-log-snapshot-label {
        display: flex;
        align-items: center;
    }
    .change-log-snapshot-value {
        font-size: 12.5px;
        color: #0f172a;
        word-break: break-word;
        line-height: 1.5;
    }
    .change-log-snapshot-value img.change-log-img {
        width: 60px;
        height: 60px;
    }
    .change-log-chart-wrap {
        padding: 12px 14px;
        overflow-y: auto;
        max-height: 62vh;
    }
    .change-log-chart-card {
        border: 1px solid #e2e8f0;
        border-radius: 10px;
        background: #fff;
        margin-bottom: 12px;
        overflow: hidden;
        box-shadow: 0 1px 2px rgba(15,23,42,0.03);
    }
    .change-log-chart-title {
        display: flex;
        align-items: center;
        padding: 7px 12px;
        border-bottom: 1px solid #f1f5f9;
        background: linear-gradient(90deg, #f8fafc 0%, #fff 100%);
        gap: 8px;
    }
    .change-log-chart-meta {
        margin-left: auto;
        font-size: 11.5px;
        color: #94a3b8;
        background: #f1f5f9;
        padding: 2px 8px;
        border-radius: 999px;
        font-weight: 500;
    }
    .change-log-chart-canvas {
        width: 100%;
        height: 160px;
    }
    .change-log-chart-skipped-tip {
        padding: 6px 12px;
        margin: 0 14px 8px 14px;
        background: #fff8e6;
        color: #92400e;
        border-radius: 8px;
        font-size: 12px;
        line-height: 1.5;
    }
    .change-log-empty {
        padding: 60px 20px;
        text-align: center;
        color: #94a3b8;
        font-size: 13.5px;
    }
    .change-log-arrow {
        color: #94a3b8;
        font-weight: 700;
        text-align: center;
    }
    .change-log-field-tag {
        display: inline-block;
        padding: 2px 8px;
        border-radius: 999px;
        background: #eef2ff;
        color: #3730a3;
        font-size: 12px;
        font-weight: 600;
    }
    .change-log-field-tag.图片 { background: #fce7f3; color: #9d174d; }
    .change-log-field-tag.价格 { background: #dcfce7; color: #166534; }
    .change-log-field-tag.排名 { background: #fee2e2; color: #991b1b; }
    .change-log-field-tag.销量 { background: #fef3c7; color: #92400e; }
    .change-log-field-tag.评分 { background: #e0e7ff; color: #3730a3; }
    .change-log-field-tag.变体数量 { background: #cffafe; color: #155e75; }
    .change-log-field-tag.评论数量 { background: #ede9fe; color: #5b21b6; }
    .change-log-field-tag.类目排名 { background: #fed7aa; color: #9a3412; }
    .change-log-img {
        width: 72px;
        height: 72px;
        object-fit: cover;
        border-radius: 6px;
        border: 1px solid #e2e8f0;
        cursor: zoom-in;
    }
    .change-log-link {
        color: #2563eb;
        text-decoration: none;
    }
    .change-log-link:hover { text-decoration: underline; }
    #parentSalesModal .modal-content {
        width: 84%;
        max-width: 920px;
        margin: 4% auto;
        padding: 24px 28px 28px;
        border: 1px solid #eaecf0;
        border-radius: 14px;
        box-shadow: 0 20px 50px rgba(16, 24, 40, 0.12);
    }
    #priceRankModal .modal-content {
        width: 86%;
        max-width: 1000px;
        margin: 6vh auto;
        padding: 10px 16px 12px;
        border: 1px solid #ddd;
        border-radius: 10px;
        max-height: 76vh;
        display: flex;
        flex-direction: column;
    }
    #priceRankModal.keepa-open .modal-content { width: min(95vw, 1280px); max-width: 1280px; margin: 4vh auto; max-height: 90vh; padding: 8px 14px 10px; }
    #priceRankModal.keepa-open #priceRankChart { display: none !important; }
    #priceRankModal.keepa-open #chartControls { display: none !important; }
    #priceRankModal.keepa-open #categoryRankEchartsBox {
        display: flex !important;
        position: relative;
        width: 100%;
        height: 78vh;
        min-height: 560px;
        max-height: 82vh;
        flex: 1 1 auto;
    }
    .keepa-chart-main {
        position: relative;
        flex: 0 0 78%;
        min-width: 0;
        min-height: 0;
    }
    .keepa-legend-panel {
        flex: 0 0 22%;
        min-width: 0;
        min-height: 0;
        padding: 8px 4px 8px 10px;
        border-left: 1px solid #e5e7eb;
        overflow-y: auto;
        overflow-x: hidden;
        font-size: 12px;
        color: #111827;
        user-select: none;
    }
    .keepa-legend-group { margin-bottom: 10px; }
    .keepa-legend-group-title {
        font-size: 11px;
        font-weight: 700;
        color: #64748b;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        margin: 2px 0 6px 2px;
    }
    .keepa-legend-item {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 3px 6px;
        border-radius: 6px;
        cursor: pointer;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        transition: background .12s ease;
    }
    .keepa-legend-item:hover { background: #f1f5f9; }
    .keepa-legend-item.inactive { opacity: .35; }
    .keepa-legend-swatch { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(0,0,0,0.06); }
    .keepa-legend-name { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; font-weight: 600; color: #0f172a; }
    .keepa-legend-sub { font-size: 10px; color: #22c55e; font-weight: 700; padding-left: 20px; margin: 2px 0; opacity: .85; }
    .keepa-action-btn {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        margin: 4px 2px 2px;
        padding: 3px 8px;
        font-size: 11px;
        font-weight: 600;
        color: #475569;
        background: #ffffff;
        border: 1px solid #d1d5db;
        border-radius: 6px;
        cursor: pointer;
    }
    .keepa-action-btn:hover { background: #f1f5f9; color: #0f172a; }
    .keepa-range-row { display: flex; gap: 4px; flex-wrap: wrap; margin: 4px 2px 2px; }
    .keepa-range-btn {
        flex: 0 0 auto;
        padding: 3px 10px;
        font-size: 11px;
        font-weight: 700;
        color: #475569;
        background: #ffffff;
        border: 1px solid #d1d5db;
        border-radius: 6px;
        cursor: pointer;
    }
    .keepa-range-btn:hover { background: #f1f5f9; color: #0f172a; }
    .keepa-range-btn.active { background: #2563eb; color: #fff; border-color: #1d4ed8; }
    #priceRankChart {
        flex: 1 1 auto;
        width: 100%;
        height: 46vh;
        min-height: 300px;
        max-height: 56vh;
    }
    .chart-reset-btn {
        padding: 4px 8px;
        font-size: 14px;
        line-height: 1;
        border: 1px solid #d0d5dd;
        border-radius: 6px;
        background: #ffffff;
        color: #475569;
        cursor: pointer;
    }
    .chart-reset-btn:hover {
        background: #f2f4f7;
        border-color: #98a2b3;
        color: #0f172a;
    }
    #chartjs-tooltip {
        position: absolute;
        opacity: 1;
        pointer-events: none;
        transition: opacity .1s ease;
        background: #111827;
        color: #f8fafc;
        border: 1px solid #374151;
        border-radius: 6px;
        padding: 8px 10px;
        font-size: 12px;
        line-height: 1.5;
        box-shadow: 0 8px 24px rgba(16, 24, 40, 0.18);
        min-width: 120px;
        max-width: 360px;
        z-index: 999999;
    }
    #chartjs-tooltip .chartjs-tooltip-title {
        font-weight: 600;
        color: #e5e7eb;
        margin-bottom: 4px;
        white-space: nowrap;
    }
    #chartjs-tooltip .chartjs-tooltip-row {
        display: flex;
        align-items: center;
        gap: 6px;
        color: #f1f5f9;
        white-space: nowrap;
    }
    #chartjs-tooltip .chartjs-tooltip-swatch {
        flex: 0 0 auto;
        width: 10px;
        height: 10px;
        border-radius: 3px;
    }
    #trafficModal .modal-content {
        width: min(720px, calc(100% - 24px));
        margin: 4% auto;
        padding: 22px 24px 24px;
        border: 1px solid #eaecf0;
        border-radius: 18px;
        box-shadow: 0 24px 64px rgba(16, 24, 40, 0.14);
        background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    }
    #variantModal .modal-content {
        width: min(92vw, 1120px);
        max-width: 1120px;
        margin: 4% auto;
        padding: 18px;
        border: 1px solid #888;
        max-height: 78vh;
        overflow: auto;
        background: #fefefe;
    }
    .variant-modal-toolbar {
        position: absolute;
        top: 14px;
        right: 52px;
        display: flex;
        align-items: center;
        gap: 8px;
    }
    .variant-force-refresh-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 104px;
        padding: 6px 12px;
        border-radius: 999px;
        border: 1px solid #c7d7fe;
        background: #eef4ff;
        color: #3157b7;
        font-size: 12px;
        font-weight: 600;
        cursor: pointer;
        transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    }
    .variant-force-refresh-btn:hover {
        background: #e3edff;
        border-color: #b6ccff;
    }
    .variant-force-refresh-btn:disabled {
        cursor: not-allowed;
        opacity: 0.7;
    }
    .variant-panel {
        text-align: left;
    }
    .variant-completed-at {
        margin: 4px 0 10px;
        color: #667085;
        font-size: 12px;
        font-weight: 600;
    }
    .variant-loading,
    .variant-empty {
        color: #344054;
        font-size: 14px;
        line-height: 1.7;
        padding: 10px 0;
    }
    .variant-loading-card {
        min-height: 180px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 14px;
        border: 1px solid #dbe7ff;
        border-radius: 16px;
        background: linear-gradient(135deg, rgba(79, 124, 255, 0.08), rgba(86, 168, 245, 0.12));
        color: #344054;
        text-align: center;
        padding: 24px 18px;
    }
    .variant-loading-spinner {
        width: 36px;
        height: 36px;
        border-radius: 999px;
        border: 3px solid #dbe7ff;
        border-top-color: #5b7cff;
        animation: variantSpin 0.9s linear infinite;
    }
    .variant-loading-title {
        font-size: 16px;
        font-weight: 700;
        color: #1d2939;
    }
    .variant-loading-subtitle {
        font-size: 13px;
        line-height: 1.7;
        color: #667085;
    }
    .variant-refresh-banner {
        display: none;
        align-items: center;
        gap: 10px;
        margin: 8px 0 12px;
        padding: 10px 14px;
        border-radius: 12px;
        border: 1px solid #dbe7ff;
        background: #f5f8ff;
        color: #3157b7;
        font-size: 13px;
        font-weight: 600;
    }
    .variant-refresh-banner::before {
        content: "";
        width: 12px;
        height: 12px;
        border-radius: 999px;
        border: 2px solid #c9d7ff;
        border-top-color: #3157b7;
        animation: variantSpin 0.9s linear infinite;
        flex: 0 0 auto;
    }
    @keyframes variantSpin {
        from { transform: rotate(0deg); }
        to { transform: rotate(360deg); }
    }
    .variant-row-pending {
        background: linear-gradient(90deg, rgba(245, 248, 255, 0.92), rgba(255, 255, 255, 0.96));
    }
    .variant-row-loading {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-top: 6px;
        padding: 5px 10px;
        border-radius: 999px;
        background: #eef4ff;
        color: #3157b7;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.2;
    }
    .variant-row-loading::before {
        content: "";
        width: 10px;
        height: 10px;
        border-radius: 999px;
        border: 2px solid #c9d7ff;
        border-top-color: #3157b7;
        animation: variantSpin 0.9s linear infinite;
        flex: 0 0 auto;
    }
    .variant-summary-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 12px;
        margin: 14px 0 16px;
    }
    .variant-stat-card {
        border: 1px solid #e5e7eb;
        border-radius: 6px;
        background: #f8fafc;
        padding: 12px 14px;
    }
    .variant-stat-label {
        color: #6b7280;
        font-size: 12px;
        margin-bottom: 8px;
    }
    .variant-stat-value {
        color: #111827;
        font-size: 20px;
        font-weight: 700;
        line-height: 1.1;
    }
    .variant-note {
        margin-bottom: 14px;
        padding: 10px 12px;
        border-radius: 12px;
        border: 1px solid #fde68a;
        background: #fffbeb;
        color: #92400e;
        font-size: 13px;
        line-height: 1.6;
    }
    .variant-table-wrap {
        overflow: auto;
        max-height: 420px;
        border: 1px solid #d1d5db;
        border-radius: 4px;
        background: #fff;
    }
    .variant-table {
        width: 100%;
        border-collapse: collapse;
        min-width: 1040px;
    }
    .variant-table th,
    .variant-table td {
        padding: 8px 10px;
        border-bottom: 1px solid #eaecf0;
        text-align: left;
        vertical-align: middle;
        font-size: 12px;
        color: #344054;
    }
    .variant-table th {
        position: sticky;
        top: 0;
        z-index: 1;
        background: #f3f4f6;
        color: #374151;
        font-weight: 600;
    }
    .variant-table tr:last-child td {
        border-bottom: none;
    }
    .variant-image {
        width: 48px;
        height: 48px;
        object-fit: cover;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        background: #fff;
    }
    .variant-missing-tag {
        display: inline-block;
        margin-top: 4px;
        padding: 2px 8px;
        border-radius: 999px;
        background: #fef3f2;
        color: #b42318;
        font-size: 12px;
    }
    .variant-attr-lines {
        display: flex;
        flex-direction: column;
        gap: 2px;
        line-height: 1.45;
    }
    .variant-attr-line {
        color: #344054;
        white-space: normal;
        word-break: break-word;
    }
    .variant-attr-empty {
        color: #98a2b3;
    }
    .variant-link-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 3px 8px;
        border-radius: 999px;
        border: 1px solid #c9d7ff;
        background: #eef4ff;
        color: #3157b7;
        font-size: 11px;
        font-weight: 600;
        text-decoration: none;
        white-space: nowrap;
    }
    .variant-link-btn:hover {
        background: #e3edff;
        color: #274a9f;
    }
    .traffic-modal-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;
        padding-right: 52px;
        margin-bottom: 14px;
    }
    .traffic-modal-title-wrap h3 {
        margin: 0;
        font-size: 22px;
        line-height: 1.2;
        color: #101828;
        letter-spacing: -0.02em;
    }
    .traffic-modal-subtitle {
        margin-top: 6px;
        color: #667085;
        font-size: 13px;
        line-height: 1.5;
    }
    .traffic-asin-chip {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-top: 12px;
        padding: 7px 12px;
        border-radius: 999px;
        border: 1px solid #dbe7ff;
        background: #f5f8ff;
        color: #344054;
        font-size: 13px;
        font-weight: 600;
    }
    .traffic-asin-chip-label {
        color: #475467;
        font-weight: 500;
    }
    .traffic-panel {
        border: 1px solid #e6eef8;
        border-radius: 18px;
        background: linear-gradient(180deg, #fbfdff 0%, #f6faff 100%);
        padding: 16px;
    }
    .traffic-loading {
        min-height: 140px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #667085;
        font-size: 15px;
        background: linear-gradient(135deg, rgba(79, 124, 255, 0.06), rgba(70, 195, 255, 0.08));
        border-radius: 14px;
    }
    .traffic-summary-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        margin-bottom: 14px;
    }
    .traffic-stat-card {
        border-radius: 14px;
        padding: 16px 16px 14px;
        color: #0f172a;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
        border: 1px solid rgba(255, 255, 255, 0.72);
    }
    .traffic-stat-card-natural {
        background: linear-gradient(135deg, #effaf4 0%, #dcfce7 100%);
    }
    .traffic-stat-card-ads {
        background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
    }
    .traffic-stat-card-refer {
        background: linear-gradient(135deg, #eef4ff 0%, #dbeafe 100%);
    }
    .traffic-stat-label {
        color: #475467;
        font-size: 13px;
        margin-bottom: 8px;
    }
    .traffic-stat-value {
        font-size: 32px;
        line-height: 1;
        font-weight: 700;
        color: #111827;
        letter-spacing: -0.03em;
    }
    .traffic-distribution-bar {
        display: flex;
        overflow: hidden;
        height: 10px;
        margin-bottom: 14px;
        border-radius: 999px;
        background: #e9eef5;
        box-shadow: inset 0 1px 2px rgba(16, 24, 40, 0.06);
    }
    .traffic-distribution-segment {
        min-width: 0;
        height: 100%;
        transition: width 0.2s ease;
    }
    .traffic-distribution-segment-natural {
        background: linear-gradient(90deg, #58c48b 0%, #7ed7a4 100%);
    }
    .traffic-distribution-segment-ads {
        background: linear-gradient(90deg, #ff9f47 0%, #ffbd73 100%);
    }
    .traffic-distribution-segment-refer {
        background: linear-gradient(90deg, #6d96ff 0%, #8ab4ff 100%);
    }
    .traffic-detail-card {
        border-radius: 14px;
        border: 1px solid #eaecf0;
        background: #fff;
        padding: 15px 16px;
    }
    .traffic-detail-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 8px;
    }
    .traffic-detail-title {
        margin: 0;
        font-size: 15px;
        font-weight: 700;
        color: #101828;
    }
    .traffic-detail-badge {
        display: inline-flex;
        align-items: center;
        padding: 4px 10px;
        border-radius: 999px;
        background: #f2f4f7;
        color: #667085;
        font-size: 12px;
        font-weight: 600;
    }
    .traffic-detail-body {
        color: #344054;
        font-size: 14px;
        line-height: 1.7;
        word-break: break-word;
    }
    .traffic-detail-body-empty {
        color: #98a2b3;
        display: flex;
        align-items: center;
        min-height: 56px;
        padding: 2px 0;
    }
    .traffic-detail-body-empty::before {
        content: "";
        width: 8px;
        height: 8px;
        margin-right: 10px;
        border-radius: 999px;
        background: #c7d7fe;
        flex: 0 0 auto;
        box-shadow: 0 0 0 6px #eef4ff;
    }
    .traffic-error-box {
        border-radius: 14px;
        border: 1px solid #fecdca;
        background: #fff6f3;
        padding: 16px 18px;
        color: #b42318;
        font-size: 14px;
        line-height: 1.7;
    }
    .traffic-close-btn {
        position: absolute;
        top: 16px;
        right: 16px;
        width: 36px;
        height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 10px;
        border: 1px solid #eaecf0;
        background: rgba(255, 255, 255, 0.92);
        color: #98a2b3;
        font-size: 24px;
        line-height: 1;
        transition: all 0.15s ease;
    }
    .traffic-close-btn:hover,
    .traffic-close-btn:focus {
        color: #475467;
        background: #f8fafc;
        border-color: #d0d5dd;
    }
    .parent-sales-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;
        margin-bottom: 16px;
        padding-right: 28px;
    }
    .parent-sales-title-wrap h3 {
        margin: 0 0 6px 0;
    }
    .parent-sales-subtitle {
        color: #475467;
        font-size: 15px;
        line-height: 1.5;
    }
    .parent-sales-refresh {
        border: 1px solid #d0d5dd;
        background: #fff;
        color: #344054;
        border-radius: 10px;
        padding: 8px 14px;
        font-size: 14px;
        cursor: pointer;
        white-space: nowrap;
    }
    .parent-sales-refresh:disabled {
        cursor: not-allowed;
        opacity: 0.7;
    }
    .parent-sales-loading {
        color: #475467;
        background: #f8fafc;
        border: 1px solid #eaecf0;
        border-radius: 12px;
        padding: 14px 16px;
        line-height: 1.6;
    }
    .parent-sales-captcha-card {
        display: none;
        margin-top: 12px;
        padding: 14px;
        border: 1px solid #eaecf0;
        border-radius: 12px;
        background: #fff;
    }
    .parent-sales-captcha-tip {
        margin: 0 0 10px 0;
        color: #667085;
        font-size: 13px;
        line-height: 1.5;
    }
    .parent-sales-captcha-row {
        display: flex;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
    }
    .parent-sales-captcha-image {
        display: none;
        width: 180px;
        max-width: 100%;
        min-height: 56px;
        object-fit: contain;
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        background: #fff;
    }
    .parent-sales-captcha-input {
        flex: 1;
        min-width: 220px;
        box-sizing: border-box;
        height: 42px;
        padding: 0 14px;
        border: 1px solid #cfd8e3;
        border-radius: 10px;
        font-size: 18px;
        letter-spacing: 0.08em;
        color: #101828;
        background: #fff;
        text-transform: uppercase;
        transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .parent-sales-captcha-input:focus {
        outline: none;
        border-color: #7c9cff;
        box-shadow: 0 0 0 4px rgba(124, 156, 255, 0.16);
    }
    .parent-sales-captcha-submit {
        height: 42px;
        padding: 0 16px;
        border: 0;
        border-radius: 10px;
        background: #4f7cff;
        color: #fff;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
    }
    .parent-sales-captcha-submit:disabled {
        cursor: not-allowed;
        opacity: 0.7;
    }
    @media (max-width: 720px) {
        #parentSalesModal .modal-content {
            width: calc(100% - 24px);
            margin: 12px auto;
            padding: 18px;
        }
        .parent-sales-header {
            padding-right: 0;
        }
        .parent-sales-captcha-image,
        .parent-sales-captcha-input,
        .parent-sales-captcha-submit {
            width: 100%;
        }
        #trafficModal .modal-content {
            margin: 12px auto;
            padding: 18px;
        }
        .traffic-modal-header {
            padding-right: 44px;
            margin-bottom: 14px;
        }
        .traffic-modal-title-wrap h3 {
            font-size: 20px;
        }
        .traffic-summary-grid {
            grid-template-columns: 1fr;
        }
        .traffic-stat-value {
            font-size: 26px;
        }
        .traffic-detail-head {
            flex-direction: column;
            align-items: flex-start;
        }
    }
    
    .close { 
        color: #aaa; 
        float: right; 
        font-size: 28px; 
        font-weight: bold; 
    }
    
    .close:hover, 
    .close:focus { 
        color: black; 
        text-decoration: none; 
        cursor: pointer; 
    }
    .erp-help-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 10px;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        background: #f9fafb;
        color: #111827;
        box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
        transition: all .15s ease-in-out;
        cursor: pointer;
        margin-right: 8px;
    }
    .erp-help-btn:hover {
        background: #eef2ff;
        border-color: #c7d2fe;
        color: #1e3a8a;
    }
    .profit-line { margin: 6px 0; font-size: 0.95em; text-align: left; }
    .profit-tag { display: inline-block; background: #f5f7ff; border: 1px solid #dfe3f0; border-radius: 4px; padding: 0 6px; margin: 0 2px; }
    .profit-strong { font-weight: 600; color: #333; }
    .keyword-rank-page {
        padding: 14px 16px 36px;
    }
    .keyword-rank-card {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.96));
        border: 1px solid #e5e7eb;
        border-radius: 18px;
        box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
        padding: 18px 18px 20px;
        overflow: hidden;
    }
    .keyword-rank-filter-bar,
    .keyword-rank-chip-row,
    .keyword-quick-row {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
        margin-bottom: 12px;
        padding: 12px 14px;
        border: 1px solid #e8edf5;
        border-radius: 16px;
        background: rgba(248, 250, 252, 0.92);
    }
    .keyword-rank-filter-group {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 7px 10px;
        border: 1px solid #dde4ee;
        border-radius: 12px;
        background: #ffffff;
        font-size: 13px;
        color: #344054;
        box-shadow: 0 1px 2px rgba(16, 24, 40, 0.03);
    }
    .keyword-rank-filter-group input,
    .keyword-rank-filter-group select,
    .keyword-rank-filter-group button,
    .keyword-rank-page button.keyword-primary-btn,
    .keyword-rank-page button.keyword-secondary-btn {
        height: 28px;
        line-height: 28px;
        font-size: 12px;
        padding: 0 10px;
        border-radius: 8px;
        border: 1px solid #d0d5dd;
        background: #ffffff;
        color: #1f2937;
    }
    .keyword-rank-range-input {
        width: 72px;
        text-align: center;
    }
    .keyword-primary-btn {
        border-color: #1d4ed8;
        background: #2563eb;
        color: #ffffff;
        cursor: pointer;
    }
    .keyword-primary-btn:hover {
        background: #1d4ed8;
        border-color: #1d4ed8;
    }
    .keyword-secondary-btn {
        cursor: pointer;
    }
    .keyword-secondary-btn:hover {
        background: #f3f4f6;
    }
    .keyword-chip-label {
        font-size: 13px;
        color: #667085;
        min-width: 56px;
        font-weight: 600;
    }
    .keyword-quick-row {
        justify-content: flex-start;
        gap: 14px;
        padding: 10px 14px;
    }
    .keyword-chip-group {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
    }
    .keyword-chip-group + .keyword-chip-group {
        padding-left: 14px;
        border-left: 1px solid #e3e8f1;
    }
    .keyword-chip-btn {
        height: 30px;
        line-height: 30px;
        padding: 0 12px;
        border-radius: 999px;
        border: 1px solid #d0d5dd;
        background: #ffffff;
        color: #344054;
        font-size: 13px;
        cursor: pointer;
        box-shadow: 0 1px 2px rgba(16, 24, 40, 0.03);
    }
    .keyword-chip-btn:hover,
    .keyword-chip-btn.active {
        background: #e0e7ff;
        border-color: #c7d2fe;
        color: #1d4ed8;
    }
    .keyword-country-row {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
        margin-bottom: 14px;
        padding: 14px;
        border: 1px solid #e8edf5;
        border-radius: 16px;
        background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.96));
    }
    .keyword-country-btn {
        min-width: 76px;
        height: 36px;
        line-height: 34px;
        padding: 0 12px;
        border-radius: 12px;
        border: 1px solid #d6dbe5;
        background: #ffffff;
        color: #344054;
        font-size: 13px;
        font-weight: 600;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        box-shadow: 0 2px 6px rgba(16, 24, 40, 0.04);
        transition: all 0.18s ease;
    }
    .keyword-country-btn:hover,
    .keyword-country-btn.active {
        background: linear-gradient(180deg, #eff4ff, #e0e7ff);
        border-color: #bfd0ff;
        color: #1d4ed8;
        box-shadow: 0 6px 18px rgba(37, 99, 235, 0.12);
        transform: translateY(-1px);
    }
    .keyword-country-flag {
        width: 18px;
        height: 12px;
        display: inline-block;
        border-radius: 3px;
        border: 1px solid rgba(15, 23, 42, 0.10);
        box-shadow: inset 0 0 0 1px rgba(255,255,255,0.15);
        overflow: hidden;
        flex-shrink: 0;
    }
    .flag-us {
        background:
            linear-gradient(180deg,
                #b91c1c 0 14.28%,
                #ffffff 14.28% 28.56%,
                #b91c1c 28.56% 42.84%,
                #ffffff 42.84% 57.12%,
                #b91c1c 57.12% 71.4%,
                #ffffff 71.4% 85.68%,
                #b91c1c 85.68% 100%);
        position: relative;
    }
    .flag-us::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 42%;
        height: 56%;
        background: #1d4ed8;
    }
    .flag-fr { background: linear-gradient(90deg, #1d4ed8 0 33.33%, #ffffff 33.33% 66.66%, #dc2626 66.66% 100%); }
    .flag-mx { background: linear-gradient(90deg, #15803d 0 33.33%, #ffffff 33.33% 66.66%, #dc2626 66.66% 100%); }
    .flag-de { background: linear-gradient(180deg, #111827 0 33.33%, #dc2626 33.33% 66.66%, #f59e0b 66.66% 100%); }
    .flag-it { background: linear-gradient(90deg, #16a34a 0 33.33%, #ffffff 33.33% 66.66%, #dc2626 66.66% 100%); }
    .flag-es { background: linear-gradient(180deg, #b91c1c 0 25%, #f59e0b 25% 75%, #b91c1c 75% 100%); }
    .flag-ca { background: linear-gradient(90deg, #dc2626 0 24%, #ffffff 24% 76%, #dc2626 76% 100%); }
    .flag-cn { background: radial-gradient(circle at 28% 28%, #fbbf24 0 12%, transparent 13%), #dc2626; }
    .flag-jp { background: radial-gradient(circle at center, #dc2626 0 34%, #ffffff 35% 100%); }
    .flag-uk {
        background:
            linear-gradient(90deg, transparent 0 38%, #ffffff 38% 62%, transparent 62% 100%),
            linear-gradient(180deg, transparent 0 38%, #ffffff 38% 62%, transparent 62% 100%),
            linear-gradient(90deg, transparent 0 43%, #dc2626 43% 57%, transparent 57% 100%),
            linear-gradient(180deg, transparent 0 43%, #dc2626 43% 57%, transparent 57% 100%),
            #1d4ed8;
    }
    .flag-uk::before,
    .flag-uk::after {
        content: "";
        position: absolute;
        inset: 0;
    }
    .flag-uk::before {
        background:
            linear-gradient(26deg, transparent 0 44%, #ffffff 44% 56%, transparent 56% 100%),
            linear-gradient(-26deg, transparent 0 44%, #ffffff 44% 56%, transparent 56% 100%);
    }
    .flag-uk::after {
        background:
            linear-gradient(26deg, transparent 0 47%, #dc2626 47% 53%, transparent 53% 100%),
            linear-gradient(-26deg, transparent 0 47%, #dc2626 47% 53%, transparent 53% 100%);
    }
    .flag-us,
    .flag-uk {
        position: relative;
    }
    .keyword-rank-summary {
        margin-left: auto;
        font-size: 13px;
        color: #667085;
        line-height: 1.5;
    }
    .keyword-rank-pagination {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        position: fixed;
        left: 50%;
        bottom: 18px;
        transform: translateX(-50%);
        z-index: 120;
        padding: 10px 14px;
        flex-wrap: wrap;
        border: 1px solid rgba(208, 213, 221, 0.95);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.94);
        box-shadow: 0 10px 30px rgba(16, 24, 40, 0.14);
        backdrop-filter: blur(10px);
    }
    .keyword-page-status {
        margin-left: 0;
        text-align: center;
        white-space: nowrap;
        font-size: 13px;
    }
    .keyword-rank-pagination .keyword-secondary-btn {
        min-width: 72px;
    }
    .keyword-rank-actions a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 32px;
        padding: 0 12px;
        border-radius: 10px;
        border: 1px solid #2563eb;
        background: #2563eb;
        color: #ffffff;
        text-decoration: none;
        font-weight: 600;
        box-shadow: 0 6px 18px rgba(37, 99, 235, 0.16);
    }
    .keyword-rank-actions a:hover {
        background: #1d4ed8;
        border-color: #1d4ed8;
    }
    .keyword-rank-frame-wrap {
        width: 100%;
        min-height: 520px;
        border: 1px solid #e5e7eb;
        border-radius: 16px;
        overflow: auto;
        background: #ffffff;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
    }
    .keyword-rank-table {
        width: 100%;
        min-width: 1200px;
        border-collapse: collapse;
        background: #ffffff;
        font-size: 13px;
    }
    .keyword-rank-table th,
    .keyword-rank-table td {
        border-bottom: 1px solid #eaecf0;
        padding: 14px 12px;
        vertical-align: top;
        text-align: left;
        color: #1f2937;
    }
    .keyword-rank-table th {
        position: sticky;
        top: 0;
        z-index: 1;
        background: #f9fafb;
        color: #475467;
        font-weight: 700;
        font-size: 13px;
        letter-spacing: 0.01em;
    }
    .keyword-rank-table tbody tr:hover {
        background: #f8fbff;
    }
    @media (max-width: 1100px) {
        .keyword-chip-group + .keyword-chip-group {
            padding-left: 0;
            border-left: 0;
        }
    }
    .keyword-word-link {
        color: #1d4ed8;
        text-decoration: none;
        font-weight: 700;
        font-size: 13px;
        line-height: 1.5;
    }
    .keyword-word-link:hover {
        text-decoration: underline;
    }
    .keyword-subtext {
        margin-top: 6px;
        color: #667085;
        font-size: 12px;
        line-height: 1.6;
    }
    .keyword-fluctuation {
        font-weight: 700;
        font-size: 13px;
        line-height: 1.5;
    }
    .keyword-fluctuation.up {
        color: #027a48;
    }
    .keyword-fluctuation.down {
        color: #b42318;
    }
    .keyword-fluctuation.flat {
        color: #667085;
    }
    .keyword-badges {
        display: flex;
        gap: 6px;
        flex-wrap: wrap;
        max-width: 240px;
    }
    .keyword-badge {
        display: inline-flex;
        align-items: center;
        min-height: 24px;
        padding: 0 9px;
        border-radius: 999px;
        background: #f2f4f7;
        color: #344054;
        font-size: 12px;
        line-height: 1;
    }
    .keyword-goods-preview {
        max-width: 320px;
        line-height: 1.65;
        color: #475467;
        font-size: 12px;
    }
    .keyword-actions-cell {
        white-space: nowrap;
    }
    .keyword-action-btn {
        height: 30px;
        line-height: 30px;
        padding: 0 12px;
        border-radius: 9px;
        border: 1px solid #d0d5dd;
        background: #ffffff;
        color: #1f2937;
        font-size: 12px;
        font-weight: 600;
        cursor: pointer;
        margin-right: 6px;
        margin-bottom: 6px;
    }
    .keyword-action-btn:hover {
        background: #f9fafb;
    }
    .keyword-empty {
        padding: 48px 16px;
        text-align: center;
        color: #667085;
        font-size: 14px;
    }
    .keyword-loading {
        color: #1d4ed8;
    }
    .keyword-detail-modal-content {
        width: 88%;
        max-width: 980px;
        margin: 4vh auto;
        max-height: 88vh;
        overflow: auto;
    }
    .keyword-detail-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
        gap: 10px;
        margin: 14px 0;
    }
    .keyword-detail-card {
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        background: #f9fafb;
        padding: 10px 12px;
    }
    .keyword-detail-card strong {
        display: block;
        margin-bottom: 4px;
        color: #475467;
        font-size: 12px;
    }
    .keyword-detail-section {
        margin-top: 16px;
    }
    .keyword-detail-section h4 {
        margin: 0 0 8px 0;
        font-size: 14px;
        color: #111827;
    }
    .keyword-detail-goods-table {
        width: 100%;
        min-width: 520px;
        border-collapse: collapse;
        font-size: 12px;
        table-layout: fixed;
    }
    .keyword-detail-goods-table th,
    .keyword-detail-goods-table td {
        border-bottom: 1px solid #eaecf0;
        padding: 8px 6px;
        text-align: left;
        vertical-align: top;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 0;
    }
    @media (max-width: 900px) {
        .keyword-rank-toolbar {
            align-items: flex-start;
        }
        .keyword-rank-actions {
            justify-content: flex-start;
        }
        .keyword-rank-summary {
            margin-left: 0;
            width: 100%;
        }
    }
    .like-btn {
        background: #fff;
        color: #667085;
        border: 1px solid #d0d5dd;
        border-radius: 6px;
        padding: calc(4px * var(--table-zoom)) calc(8px * var(--table-zoom));
        font-size: calc(11px * var(--table-zoom));
        cursor: pointer;
        transition: all 0.15s;
        white-space: nowrap;
    }
    .like-btn:hover {
        border-color: #f0446a;
        color: #f0446a;
        background: #fff1f4;
    }
    .like-btn.liked {
        background: linear-gradient(135deg, #fff0f3 0%, #ffe0e7 100%);
        color: #e02b5a;
        border-color: #ffb4c4;
        font-weight: 600;
    }
    .like-btn.liked:hover {
        background: #ffe0e7;
        color: #c21845;
    }
    #likeModal .modal-content {
        width: min(480px, calc(100% - 24px));
        margin: 6% auto;
        padding: 22px 24px 24px;
        border: 1px solid #eaecf0;
        border-radius: 16px;
        box-shadow: 0 20px 52px rgba(16, 24, 40, 0.14);
    }
    .like-modal-title {
        font-size: 16px;
        font-weight: 600;
        color: #101828;
        margin: 0 0 4px;
    }
    .like-modal-sub {
        font-size: 12px;
        color: #667085;
        margin: 0 0 18px;
    }
    .like-modal-sub .like-modal-asin {
        color: #101828;
        font-weight: 500;
        margin-right: 6px;
    }
    .like-field-label {
        font-size: 12px;
        font-weight: 500;
        color: #344054;
        margin: 0 0 6px;
    }
    .like-season-wrap {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        padding: 10px;
        background: #f7f8fa;
        border: 1px solid #eaecf0;
        border-radius: 10px;
        margin-bottom: 14px;
        min-height: 44px;
    }
    .like-season-chip {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 4px 8px;
        font-size: 11px;
        color: #475467;
        background: #fff;
        border: 1px solid #d0d5dd;
        border-radius: 999px;
        cursor: pointer;
        user-select: none;
    }
    .like-season-chip:hover {
        border-color: #667085;
    }
    .like-season-chip.active {
        background: linear-gradient(135deg, #eef4ff 0%, #e0ebff 100%);
        border-color: #a8bfff;
        color: #2152d9;
        font-weight: 500;
    }
    .like-season-chip.custom {
        background: linear-gradient(135deg, #fff7e6 0%, #ffedd0 100%);
        border-color: #ffd59a;
        color: #b75e09;
    }
    .like-season-chip.custom.active {
        background: linear-gradient(135deg, #ffedd0 0%, #ffdfab 100%);
        border-color: #ffb870;
        color: #92400e;
    }
    /* 历史备选标签：虚线边框 + 浅紫灰色，和激活的自定义标签明显区分开 */
    .like-season-chip.historic {
        background: #fafbfc;
        border: 1px dashed #c7cdd5;
        color: #667085;
        font-style: normal;
    }
    .like-season-chip.historic:hover {
        border-color: #8098f9;
        border-style: solid;
        background: #f5f7ff;
        color: #4252d4;
    }
    .like-season-chip.historic.active {
        background: linear-gradient(135deg, #ffedd0 0%, #ffdfab 100%);
        border: 1px solid #ffb870;
        border-style: solid;
        color: #92400e;
    }
    .like-season-chip .chip-x {
        font-size: 13px;
        line-height: 1;
        opacity: 0.6;
        margin-left: 2px;
    }
    .like-season-chip .chip-x:hover {
        opacity: 1;
    }
    .like-season-historic-hint {
        font-size: 11px;
        color: #98a2b3;
        margin: -8px 2px 12px 2px;
        padding-left: 2px;
    }
    .like-season-add-wrap {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-top: -4px;
        margin-bottom: 16px;
    }
    .like-season-add-input {
        flex: 1;
        height: 28px;
        border: 1px solid #d0d5dd;
        border-radius: 6px;
        padding: 0 8px;
        font-size: 12px;
        outline: none;
    }
    .like-season-add-input:focus {
        border-color: #80a7ff;
    }
    .like-season-add-btn {
        height: 28px;
        border: 1px dashed #b4bcc9;
        background: #fff;
        color: #475467;
        border-radius: 6px;
        padding: 0 10px;
        font-size: 12px;
        cursor: pointer;
    }
    .like-season-add-btn:hover {
        border-color: #80a7ff;
        color: #2152d9;
    }
    .like-remark-text {
        width: 100%;
        box-sizing: border-box;
        min-height: 72px;
        padding: 8px 10px;
        font-size: 12px;
        border: 1px solid #d0d5dd;
        border-radius: 10px;
        resize: vertical;
        outline: none;
        font-family: inherit;
        margin-bottom: 18px;
    }
    .like-remark-text:focus {
        border-color: #80a7ff;
    }
    .like-modal-actions {
        display: flex;
        justify-content: flex-end;
        gap: 10px;
    }
    .like-modal-btn {
        height: 34px;
        padding: 0 16px;
        border-radius: 8px;
        border: 1px solid #d0d5dd;
        background: #fff;
        color: #344054;
        font-size: 13px;
        cursor: pointer;
    }
    .like-modal-btn:hover {
        background: #f7f8fa;
    }
    .like-modal-btn.primary {
        background: linear-gradient(135deg, #e02b5a 0%, #ff5d7e 100%);
        color: #fff;
        border-color: transparent;
        font-weight: 500;
    }
    .like-modal-btn.primary:hover {
        background: linear-gradient(135deg, #c21845 0%, #e02b5a 100%);
    }
    .asin-season-wrap {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 3px;
        margin-top: 4px;
    }
    .asin-season-tag {
        display: inline-block;
        padding: 2px 8px;
        font-size: 12px;
        font-weight: 600;
        background: #eef4ff;
        color: #1e40af;
        border-radius: 4px;
        line-height: 1.6;
        max-width: 100px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .favorite-toolbar {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        padding: 10px 12px;
        background: rgba(255,255,255,0.92);
        backdrop-filter: saturate(180%) blur(6px);
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        box-shadow: 0 4px 12px rgba(16, 24, 40, 0.06);
        font-size: 0.9em;
        margin: 10px 0;
        color: #1f2937;
        position: relative;
        z-index: 600;
    }
    .favorite-toolbar label {
        font-size: 12px;
        color: #1f2937;
        font-weight: 400;
    }
    .favorite-toolbar select,
    .favorite-toolbar input[type="text"] {
        height: 28px;
        line-height: 28px;
        font-size: 12px;
        padding: 0 10px;
        border-radius: 6px;
        border: 1px solid #d0d5dd;
        background: #ffffff;
        color: #1f2937;
        outline: none;
    }
    .favorite-toolbar .refresh-btn {
        height: 28px;
        line-height: 28px;
        background: #2152d9;
        color: #fff;
        border: none;
        border-radius: 6px;
        padding: 0 14px;
        font-size: 12px;
        cursor: pointer;
    }
    .favorite-toolbar .refresh-btn:hover {
        background: #1a43b0;
    }
    .favorite-toolbar .favorites-batch-refresh-btn {
        height: 28px;
        line-height: 28px;
        background: linear-gradient(135deg, #059669, #047857);
        color: #fff;
        border: 1px solid #047857;
        border-radius: 6px;
        padding: 0 12px;
        font-size: 12px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.15s ease;
        box-shadow: 0 2px 6px rgba(5,150,105,0.25);
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
    .favorite-toolbar .favorites-batch-refresh-btn:hover:not(:disabled) {
        filter: brightness(1.05);
        transform: translateY(-0.5px);
        box-shadow: 0 4px 10px rgba(5,150,105,0.32);
    }
    .favorite-toolbar .favorites-batch-refresh-btn:disabled {
        opacity: 0.65;
        cursor: not-allowed;
    }
    .favorite-toolbar .favorites-batch-progress {
        font-size: 12px;
        color: #475467;
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
    .favorite-toolbar .favorites-batch-progress strong {
        color: #047857;
        font-weight: 700;
    }
    .season-filter-chip-group {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        max-width: 100%;
    }
    .season-filter-chip {
        padding: 4px 10px;
        font-size: 11px;
        border: 1px solid #d0d5dd;
        background: #fff;
        border-radius: 999px;
        cursor: pointer;
    }
    .season-filter-chip.active {
        background: #eef4ff;
        border-color: #80a7ff;
        color: #2152d9;
        font-weight: 500;
    }
    /* ============== 三列宽统一兜底（所有档位相同，只改这里就够了） ============== */
    @media (max-width: 99999px) {
        /* 变体数（第11列） */
        #productTable thead th:nth-child(11), #productTable tbody td:nth-child(11),
        #productTable th:nth-child(11), #productTable td:nth-child(11),
        #favoriteTable thead th:nth-child(11), #favoriteTable tbody td:nth-child(11),
        #favoriteTable th:nth-child(11), #favoriteTable td:nth-child(11) {
            width: var(--col-11-w) !important;
            min-width: 0 !important;
            max-width: none !important;
            overflow: visible !important;
            text-overflow: clip !important;
            white-space: normal !important;
            padding-left: 1px !important;
            padding-right: 1px !important;
        }
        /* 类目排名（第12列） */
        #productTable thead th:nth-child(12), #productTable tbody td:nth-child(12),
        #productTable th:nth-child(12), #productTable td:nth-child(12),
        #favoriteTable thead th:nth-child(12), #favoriteTable tbody td:nth-child(12),
        #favoriteTable th:nth-child(12), #favoriteTable td:nth-child(12) {
            width: var(--col-12-w) !important;
            min-width: 0 !important;
            max-width: none !important;
            white-space: normal !important;
            overflow: visible !important;
            text-overflow: clip !important;
            line-height: 1.3 !important;
            padding-top: 4px !important;
            padding-bottom: 4px !important;
        }
        /* 时间（第16列） */
        #productTable thead th:nth-child(16), #productTable tbody td:nth-child(16),
        #productTable th:nth-child(16), #productTable td:nth-child(16),
        #favoriteTable thead th:nth-child(16), #favoriteTable tbody td:nth-child(16),
        #favoriteTable th:nth-child(16), #favoriteTable td:nth-child(16) {
            width: var(--col-16-w) !important;
            min-width: 0 !important;
            max-width: none !important;
            white-space: normal !important;
            overflow: visible !important;
            text-overflow: clip !important;
            line-height: 1.2 !important;
            padding-left: 3px !important;
            padding-right: 3px !important;
        }
    }

    .filter-rules-admin-page {
        max-width: 1180px;
        margin: 16px auto;
        box-sizing: border-box;
        overflow-x: hidden;
    }
    #filterRulesAdminNav[hidden] {
        display: none !important;
    }

    #adminConsoleNav[hidden] {
        display: none !important;
    }

    .alert-icon {
        color: #dc2626;
    }

    #alertModalErrorIcon[hidden],
    #alertModalSuccessIcon[hidden] {
        display: none !important;
    }

    .alert-box.alert-error .alert-icon {
        background: linear-gradient(135deg, rgba(220,38,38,0.08), rgba(239,68,68,0.14));
        color: #dc2626;
    }

    .alert-box.alert-success .alert-icon {
        background: linear-gradient(135deg, rgba(5,150,105,0.1), rgba(16,185,129,0.16));
        color: #059669;
    }

    .alert-box.alert-error .dialog-btn-confirm {
        background: linear-gradient(135deg, #dc2626, #b91c1c);
        border-color: #b91c1c;
        box-shadow: 0 2px 6px rgba(220,38,38,0.22);
    }

    .alert-box.alert-success .dialog-btn-confirm {
        background: linear-gradient(135deg, #059669, #047857);
        border-color: #047857;
        box-shadow: 0 2px 6px rgba(5,150,105,0.22);
    }

    .admin-console-page {
        padding: 14px;
        background: #f1f5f9;
        min-height: calc(100vh - 54px);
        box-sizing: border-box;
    }

    .admin-console-shell {
        display: grid;
        grid-template-columns: 220px 1fr;
        gap: 14px;
        min-height: 620px;
    }

    .admin-console-sidebar {
        background: #0f172a;
        color: #e5e7eb;
        border-radius: 18px;
        padding: 14px;
        box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
    }

    .admin-console-brand {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 6px 16px;
        border-bottom: 1px solid rgba(148, 163, 184, 0.28);
        margin-bottom: 12px;
    }

    .admin-console-brand-mark {
        width: 34px;
        height: 34px;
        border-radius: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, #38bdf8, #2563eb);
        color: #ffffff;
        font-weight: 700;
    }

    .admin-console-brand strong,
    .admin-console-brand small {
        display: block;
    }

    .admin-console-brand small {
        margin-top: 2px;
        color: #94a3b8;
        font-size: 11px;
    }

    .admin-console-tab {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        margin: 6px 0;
        padding: 10px 12px;
        border: 1px solid transparent;
        border-radius: 12px;
        background: transparent;
        color: #cbd5e1;
        font-size: 13px;
        font-weight: 600;
        cursor: pointer;
        transition: all .15s ease-in-out;
    }

    .admin-console-tab:hover,
    .admin-console-tab-active {
        background: rgba(37, 99, 235, 0.22);
        border-color: rgba(147, 197, 253, 0.35);
        color: #ffffff;
    }

    .admin-console-main {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .admin-console-topbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 16px 18px;
        background: #ffffff;
        border: 1px solid #e2e8f0;
        border-radius: 18px;
        box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
    }

    .admin-console-topbar h2,
    .admin-console-topbar p {
        margin: 0;
    }

    .admin-console-topbar h2 {
        font-size: 20px;
        color: #0f172a;
    }

    .admin-console-status,
    .admin-console-muted {
        color: #64748b;
        font-size: 12px;
        line-height: 1.6;
    }

    .admin-console-status.ok {
        color: #047857;
    }

    .admin-console-status.error {
        color: #b42318;
    }

    .admin-console-return {
        border: 1px solid #bfdbfe;
        border-radius: 999px;
        background: #eff6ff;
        color: #1d4ed8;
        padding: 8px 14px;
        font-size: 12px;
        font-weight: 700;
        cursor: pointer;
    }

    .admin-console-pane[hidden] {
        display: none !important;
    }

    .admin-console-stat-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(130px, 1fr));
        gap: 12px;
    }

    .admin-console-stat-card,
    .admin-console-card {
        background: #ffffff;
        border: 1px solid #e2e8f0;
        border-radius: 16px;
        box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    }

    .admin-console-stat-card {
        padding: 14px;
    }

    .admin-console-stat-card span {
        display: block;
        color: #64748b;
        font-size: 12px;
        margin-bottom: 6px;
    }

    .admin-console-stat-card strong {
        color: #0f172a;
        font-size: 26px;
        line-height: 1;
    }

    .admin-console-card-grid {
        display: grid;
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
        gap: 12px;
        margin-top: 12px;
    }

    .admin-console-card {
        padding: 14px;
    }

    .admin-console-card-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 10px;
    }

    .admin-console-card-header h3,
    .admin-console-card-header p {
        margin: 0;
    }

    .admin-console-card h3 {
        margin: 0 0 10px;
        color: #0f172a;
        font-size: 15px;
    }

    .admin-console-list,
    .admin-console-data-table,
    .admin-console-queue-grid {
        display: grid;
        gap: 8px;
    }

    .admin-console-overview-table,
    .admin-console-overview-body {
        display: grid;
        gap: 8px;
    }

    .admin-console-overview-header {
        align-items: center;
        color: #64748b;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .02em;
        padding: 0 10px;
    }

    .admin-console-table-header {
        align-items: center;
        color: #64748b;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .02em;
        padding: 0 10px;
    }

    .admin-console-list-row,
    .admin-console-queue-item,
    .admin-console-list-empty {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 9px 10px;
        border-radius: 12px;
        background: #f8fafc;
        color: #334155;
        font-size: 12px;
    }

    .admin-console-list-empty {
        justify-content: flex-start;
        color: #64748b;
    }

    .admin-console-list-row strong,
    .admin-console-queue-item strong {
        color: #0f172a;
    }

    .admin-console-audit-overview-row {
        display: grid;
        grid-template-columns: 140px minmax(70px, .7fr) 110px minmax(150px, 1fr) 64px 58px 80px;
        align-items: center;
        min-width: 760px;
    }

    .admin-console-audit-row {
        display: grid;
        grid-template-columns: 150px minmax(80px, .7fr) 120px minmax(180px, 1.2fr) 120px 70px 58px 80px;
        align-items: center;
        min-width: 940px;
    }

    .admin-console-audit-overview-table,
    .admin-console-audit-table {
        overflow-x: auto;
    }

    .admin-console-follow-product-row {
        display: grid;
        grid-template-columns: 132px 86px minmax(120px, .7fr) minmax(180px, 1fr) 138px;
        align-items: center;
    }

    .admin-console-follow-table-scroll {
        width: 100%;
        overflow-x: auto;
        padding-bottom: 2px;
    }

    .admin-console-follow-products {
        gap: 0;
        overflow-x: auto;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        background: #fff;
    }

    .admin-console-follow-products .admin-console-table-header {
        min-width: 720px;
        padding: 8px 10px;
        border-bottom: 1px solid #e5e7eb;
        background: #f8fafc;
    }

    .admin-console-follow-products .admin-console-list-row {
        min-width: 720px;
        padding: 8px 10px;
        border-bottom: 1px solid #e5e7eb;
        border-radius: 0;
        background: #fff;
    }

    .admin-console-follow-products .admin-console-list-row:nth-child(odd) {
        background: #f9fafb;
    }

    .admin-console-follow-products .admin-console-list-row:last-child {
        border-bottom: 0;
    }

    .admin-console-follow-shop-row {
        display: grid;
        grid-template-columns: minmax(160px, 1.2fr) minmax(110px, .8fr) 80px minmax(180px, 1fr) 100px 110px 150px;
        align-items: center;
    }

    .admin-console-follow-shops .admin-console-table-header,
    .admin-console-follow-shops .admin-console-list-row {
        min-width: 980px;
    }

    .admin-console-audit-overview-row .admin-console-cell,
    .admin-console-audit-row .admin-console-cell,
    .admin-console-follow-row .admin-console-cell,
    .admin-console-queue-overview-row .admin-console-cell {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .admin-console-queue-overview-row {
        display: grid;
        grid-template-columns: minmax(160px, 1fr) 80px 90px 100px;
    }

    .admin-console-redis-queue-row {
        display: grid;
        grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1fr) 80px 90px 100px;
    }

    .admin-console-redis-queue-row .admin-console-cell,
    .admin-console-redis-key-row .admin-console-cell {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .admin-console-redis-browser-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
        gap: 14px;
        margin-top: 12px;
    }

    .admin-console-redis-browser-left {
        min-width: 0;
    }

    .admin-console-redis-browser-left .admin-console-redis-groups {
        margin-top: 8px;
    }

    .admin-console-redis-groups {
        display: grid;
        gap: 10px;
        margin-top: 12px;
    }

    .admin-console-redis-group {
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        padding: 12px;
        background: #fff;
    }

    .admin-console-redis-group-panel {
        min-width: 0;
        overflow-x: auto;
    }

    .admin-console-redis-group-total {
        color: #2563eb;
        font-size: 12px;
        font-weight: 700;
    }

    .admin-console-redis-tree-breadcrumb {
        display: flex;
        align-items: center;
        gap: 6px;
        min-width: 0;
        margin: 10px 0;
        color: #475569;
        font-size: 12px;
        white-space: nowrap;
    }

    .admin-console-redis-tree-crumb {
        padding: 0;
        border: 0;
        background: transparent;
        color: #2563eb;
        cursor: pointer;
    }

    .admin-console-redis-tree-crumb:hover,
    .admin-console-redis-tree-crumb:focus-visible {
        text-decoration: underline;
    }

    .admin-console-redis-tree-current {
        min-width: 0;
        overflow: hidden;
        color: #0f172a;
        font-weight: 700;
        text-overflow: ellipsis;
    }

    .admin-console-redis-tree-separator {
        color: #94a3b8;
    }

    .admin-console-redis-tree-list {
        min-width: 560px;
    }

    .admin-console-redis-tree-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(74px, auto) minmax(116px, auto);
        align-items: center;
        gap: 8px;
    }

    .admin-console-redis-tree-leaf {
        width: 100%;
        border: 0;
        text-align: left;
        cursor: pointer;
    }

    .admin-console-redis-tree-leaf:hover,
    .admin-console-redis-tree-leaf:focus-visible,
    .admin-console-redis-tree-leaf.admin-console-redis-key-selected {
        background: #eff6ff;
        outline: 1px solid #bfdbfe;
    }

    .admin-console-redis-tree-node-summary {
        display: flex;
        align-items: center;
        gap: 7px;
        min-width: 0;
    }

    .admin-console-redis-tree-icon {
        flex: 0 0 auto;
        color: #64748b;
    }

    .admin-console-redis-tree-name {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .admin-console-redis-tree-count {
        justify-self: start;
        padding: 2px 7px;
        border-radius: 999px;
        background: #e0f2fe;
        color: #0369a1;
        font-size: 11px;
        font-weight: 700;
        white-space: nowrap;
    }

    .admin-console-redis-tree-actions {
        justify-content: flex-end;
        flex-wrap: nowrap;
    }

    .admin-console-redis-tree-action {
        white-space: nowrap;
    }

    .admin-console-redis-group-error,
    .admin-console-redis-detail-error {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 10px;
        padding: 9px 10px;
        border: 1px solid #fecaca;
        border-radius: 8px;
        background: #fef2f2;
        color: #b42318;
        font-size: 12px;
    }

    .admin-console-redis-key-list {
        display: grid;
        gap: 6px;
        min-width: 0;
    }

    .admin-console-redis-key-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(52px, 72px) minmax(52px, 72px);
        align-items: center;
    }

    .admin-console-redis-key-header-cell,
    .admin-console-redis-detail-header-cell {
        color: #64748b;
        font-size: 11px;
        font-weight: 700;
    }

    .admin-console-redis-key-button {
        width: 100%;
        border: 0;
        text-align: left;
        cursor: pointer;
    }

    .admin-console-redis-key-button:hover,
    .admin-console-redis-key-button:focus-visible,
    .admin-console-redis-key-selected {
        background: #eff6ff;
        outline: 1px solid #bfdbfe;
    }

    .admin-console-redis-detail {
        display: grid;
        position: sticky;
        top: 12px;
        gap: 10px;
        max-height: calc(100vh - 24px);
        margin-top: 0;
        padding: 12px;
        overflow: auto;
        box-sizing: border-box;
        border: 1px solid #cbd5e1;
        border-radius: 10px;
        background: #fff;
    }

    .admin-console-redis-detail-empty {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 220px;
        padding: 24px;
        color: #667085;
        text-align: center;
    }

    .admin-console-redis-detail-heading {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
    }

    .admin-console-redis-detail-heading > div {
        display: grid;
        gap: 3px;
        min-width: 0;
    }

    .admin-console-redis-detail-key,
    .admin-console-redis-detail-field,
    .admin-console-redis-detail-value {
        overflow-wrap: anywhere;
        white-space: pre-wrap;
    }

    .admin-console-redis-detail-table {
        gap: 6px;
    }

    .admin-console-redis-detail-pair-row {
        display: grid;
        grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
        align-items: start;
    }

    .admin-console-redis-detail-single-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    .admin-console-redis-string-detail {
        display: grid;
        gap: 8px;
    }

    .admin-console-redis-string-value {
        max-height: 320px;
        margin: 0;
        padding: 10px;
        overflow: auto;
        border-radius: 8px;
        background: #0f172a;
        color: #e2e8f0;
        font: 12px/1.55 Consolas, Monaco, monospace;
        overflow-wrap: anywhere;
        white-space: pre-wrap;
    }

    .admin-console-redis-truncated {
        color: #92400e;
        font-size: 12px;
    }

    .admin-console-redis-pagination {
        justify-content: flex-end;
        margin-top: 10px;
    }

    .admin-console-account-table-scroll {
        width: 100%;
        overflow-x: auto;
        padding-bottom: 2px;
    }

    .admin-console-account-table {
        min-width: 760px;
        display: grid;
        gap: 8px;
    }

    .admin-console-account-row {
        display: grid;
        grid-template-columns: minmax(120px, 1fr) 86px minmax(110px, .8fr) minmax(110px, .9fr) 92px minmax(128px, .8fr);
        align-items: center;
    }

    .admin-console-account-header-cell {
        color: #64748b;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .02em;
    }

    .admin-console-account-row .admin-console-cell {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .admin-console-account-status,
    .admin-console-account-role {
        width: max-content;
        max-width: 100%;
        border-radius: 999px;
        padding: 3px 9px;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.35;
    }

    .admin-console-account-status-online {
        background: #ecfdf5;
        color: #047857;
        border: 1px solid #a7f3d0;
    }

    .admin-console-account-status-offline {
        background: #f1f5f9;
        color: #64748b;
        border: 1px solid #cbd5e1;
    }

    .admin-console-account-role-admin {
        background: #eff6ff;
        color: #1d4ed8;
        border: 1px solid #bfdbfe;
    }

    .admin-console-account-role-user {
        background: #f8fafc;
        color: #475569;
        border: 1px solid #e2e8f0;
    }

    .admin-console-account-actions {
        justify-content: flex-end;
        flex-wrap: nowrap;
    }

    .admin-console-delete-target {
        grid-column: 1 / -1;
        display: grid;
        gap: 4px;
        padding: 10px 12px;
        border-radius: 12px;
        background: #f8fafc;
        border: 1px solid #e2e8f0;
    }

    .admin-console-delete-target span {
        color: #64748b;
        font-size: 11px;
        font-weight: 700;
    }

    .admin-console-delete-target strong {
        color: #0f172a;
        overflow-wrap: anywhere;
    }

    .admin-console-queue-type,
    .admin-console-queue-count,
    .admin-console-queue-state {
        text-align: right;
    }

    .admin-console-follow-view,
    .admin-console-follow-table {
        display: grid;
        gap: 8px;
    }

    .admin-console-follow-summary {
        color: #475569;
        font-size: 12px;
        font-weight: 600;
    }

    .admin-console-follow-tabs {
        display: inline-flex;
        gap: 6px;
        margin-bottom: 2px;
    }

    .admin-console-follow-pagination {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        color: #64748b;
        font-size: 12px;
    }

    .admin-console-redis-status-bar {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
        margin: 8px 0 12px;
    }

    .admin-console-redis-stat {
        display: grid;
        gap: 4px;
        padding: 10px 12px;
        border-radius: 12px;
        background: #f8fafc;
        border: 1px solid #e2e8f0;
    }

    .admin-console-redis-stat span {
        color: #64748b;
        font-size: 11px;
        font-weight: 700;
    }

    .admin-console-redis-stat strong {
        color: #0f172a;
        font-size: 18px;
        font-variant-numeric: tabular-nums;
    }

    .admin-console-redis-refresh:disabled {
        cursor: wait;
        opacity: .62;
    }

    .admin-console-follow-page-text {
        margin-right: auto;
    }

    .admin-console-follow-table[hidden] {
        display: none !important;
    }

    .admin-console-follow-asin a {
        color: #2563eb;
        font-weight: 700;
        text-decoration: none;
    }

    .admin-console-follow-asin a:hover {
        text-decoration: underline;
    }

    .admin-console-follow-country-badge,
    .admin-console-follow-season-tag {
        display: inline-flex;
        align-items: center;
        max-width: 100%;
        padding: 2px 7px;
        border-radius: 999px;
        background: #eff6ff;
        color: #2563eb;
        font-size: 11px;
        font-weight: 700;
        line-height: 1.4;
    }

    .admin-console-follow-seasons {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
    }

    .admin-console-follow-remark {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        line-height: 1.45;
    }

    .admin-console-follow-time {
        color: #64748b;
    }

    .admin-console-follow-title a {
        color: #2563eb;
        text-decoration: none;
    }

    .admin-console-follow-title a:hover {
        text-decoration: underline;
    }

    .admin-console-toolbar {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 10px;
    }

    .admin-console-toolbar select {
        height: 30px;
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        padding: 0 10px;
        background: #ffffff;
    }

    .admin-console-filter-grid,
    .admin-console-dialog-box {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 10px;
        margin: 10px 0;
        align-items: end;
    }

    .admin-console-account-dialog[hidden] {
        display: none !important;
    }

    .admin-console-account-dialog {
        position: fixed;
        inset: 0;
        z-index: 2147483000;
        display: grid;
        place-items: center;
        padding: 20px;
        background: rgba(15, 23, 42, .34);
    }

    .admin-console-delete-account-dialog {
        place-items: center;
    }

    .admin-console-dialog-box {
        width: min(520px, 96vw);
        margin: 0;
        padding: 16px;
        border: 1px solid #e2e8f0;
        border-radius: 16px;
        background: #ffffff;
        box-shadow: 0 24px 80px rgba(15, 23, 42, .25);
    }

    .admin-console-dialog-header {
        grid-column: 1 / -1;
        display: grid;
        gap: 3px;
    }

    .admin-console-dialog-error {
        grid-column: 1 / -1;
        min-height: 18px;
        color: #b42318;
        font-size: 12px;
        font-weight: 600;
    }

    .admin-console-dialog-error:empty {
        display: none;
    }

    .admin-console-field {
        display: grid;
        gap: 4px;
        color: #475569;
        font-size: 12px;
        font-weight: 600;
    }

    .admin-console-field input,
    .admin-console-field select,
    .admin-console-dialog-box input {
        min-height: 32px;
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        padding: 0 8px;
        background: #ffffff;
    }

    .admin-console-row-actions {
        display: inline-flex;
        flex-wrap: wrap;
        gap: 6px;
        justify-content: flex-end;
    }

    .admin-console-action-btn,
    .admin-console-primary-btn,
    .admin-console-danger-btn {
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        padding: 6px 10px;
        background: #ffffff;
        color: #334155;
        cursor: pointer;
        font-weight: 600;
    }

    .admin-console-primary-btn {
        border-color: #2563eb;
        background: #2563eb;
        color: #ffffff;
    }

    .admin-console-danger-btn {
        border-color: #fecaca;
        background: #fff1f2;
        color: #b42318;
    }

    .admin-console-settings-status-bar {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
        margin: 10px 0;
    }

    .admin-console-settings-stat {
        display: grid;
        gap: 2px;
        padding: 8px 10px;
        border: 1px solid #e2e8f0;
        border-radius: 10px;
        background: #f8fafc;
        font-size: 12px;
        color: #475569;
    }

    .admin-console-settings-toolbar {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        margin: 8px 0;
        font-size: 12px;
        color: #475569;
    }

    .admin-console-settings-toolbar input {
        flex: 1;
        min-width: 180px;
        min-height: 32px;
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        padding: 0 8px;
    }

    .admin-console-settings-toolbar select {
        min-height: 32px;
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        padding: 0 8px;
        background: #ffffff;
    }

    .admin-console-settings-table {
        overflow-x: auto;
    }

    .admin-console-settings-row {
        display: grid;
        grid-template-columns: minmax(180px, 1.25fr) minmax(240px, 2fr) minmax(160px, 1.2fr) 72px 96px 92px;
        gap: 8px;
        align-items: center;
        min-width: 980px;
        padding: 6px 8px;
    }

    .admin-console-settings-key {
        font-weight: 700;
        word-break: break-all;
    }

    .admin-console-settings-desc {
        color: #64748b;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .admin-console-settings-value {
        word-break: break-all;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .admin-console-settings-secret {
        letter-spacing: 2px;
    }

    .admin-console-settings-editor-box {
        width: min(620px, calc(100vw - 32px));
        max-height: calc(100vh - 48px);
        grid-template-columns: 1fr;
        gap: 8px;
        overflow-y: auto;
        box-sizing: border-box;
    }

    .admin-console-settings-editor-box .admin-console-dialog-header {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .admin-console-settings-editor-box > .admin-console-muted,
    .admin-console-settings-editor-box > .admin-console-field,
    .admin-console-settings-editor-box > .admin-console-row-actions {
        grid-column: 1 / -1;
    }

    .admin-console-dialog-close {
        border: 0;
        padding: 0 4px;
        background: transparent;
        color: #64748b;
        cursor: pointer;
        font-size: 24px;
        line-height: 1;
    }

    .admin-console-settings-editor-box textarea {
        min-height: 72px;
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        padding: 6px 8px;
        font-family: Consolas, "Courier New", monospace;
        font-size: 12px;
        resize: vertical;
    }

    @media (max-width: 1000px) {
        .admin-console-redis-browser-grid {
            grid-template-columns: 1fr;
        }

        .admin-console-redis-detail {
            position: static;
            top: auto;
            max-height: none;
            overflow: visible;
        }
    }

    @media (max-width: 850px) {
        .admin-console-shell {
            grid-template-columns: 1fr;
        }
        .admin-console-sidebar {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        .admin-console-brand {
            width: 100%;
            margin-bottom: 4px;
        }
        .admin-console-tab {
            width: auto;
            margin: 0;
        }
        .admin-console-audit-overview-row,
        .admin-console-audit-row,
        .admin-console-follow-shop-row,
        .admin-console-queue-overview-row,
        .admin-console-redis-queue-row,
        .admin-console-redis-key-row,
        .admin-console-redis-detail-pair-row {
            grid-template-columns: 1fr;
            text-align: left;
        }
        .admin-console-settings-status-bar {
            grid-template-columns: 1fr;
        }
        .admin-console-audit-overview-row,
        .admin-console-audit-row {
            min-width: 0;
        }
        .admin-console-overview-header,
        .admin-console-table-header {
            display: none;
        }
        .admin-console-account-table .admin-console-table-header {
            display: grid;
        }
        .admin-console-settings-table .admin-console-table-header {
            display: grid;
        }
        .admin-console-follow-products .admin-console-table-header {
            display: grid;
        }
        .admin-console-queue-type,
        .admin-console-queue-count,
        .admin-console-queue-state {
            text-align: left;
        }
        .admin-console-topbar,
        .admin-console-card-grid,
        .admin-console-redis-status-bar {
            grid-template-columns: 1fr;
        }
        .admin-console-stat-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }
    .filter-rules-admin-hero {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 18px;
        margin-bottom: 14px;
        border: 1px solid #dbeafe;
        border-radius: 18px;
        background: linear-gradient(135deg, #eff6ff 0%, #ffffff 55%, #f8fafc 100%);
        box-shadow: 0 14px 34px rgba(15, 23, 42, .08);
    }
    .filter-rules-admin-hero-icon {
        flex: 0 0 auto;
        width: 46px;
        height: 46px;
        border-radius: 15px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: #2563eb;
        color: #ffffff;
        font-weight: 700;
        box-shadow: 0 10px 20px rgba(37, 99, 235, .28);
    }
    .filter-rules-admin-hero-copy {
        min-width: 0;
        flex: 1 1 auto;
    }
    .filter-rules-admin-hero h2,
    .filter-rules-admin-hero p {
        margin: 0 0 4px;
    }
    .filter-rules-admin-hero p {
        color: #64748b;
        line-height: 1.55;
    }
    .filter-rules-admin-header-actions {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        justify-content: flex-end;
    }
    .filter-rules-admin-primary,
    .filter-rules-admin-secondary,
    .filter-rules-admin-action,
    .filter-rules-admin-order-btn,
    .filter-rules-admin-danger,
    .filter-rules-admin-tab {
        min-height: 32px;
        border-radius: 9px;
        border: 1px solid #d0d5dd;
        padding: 6px 11px;
        background: #ffffff;
        color: #344054;
        cursor: pointer;
        font: inherit;
        transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
    }
    .filter-rules-admin-primary {
        border-color: #2563eb;
        background: #2563eb;
        color: #ffffff;
    }
    .filter-rules-admin-primary:hover {
        background: #1d4ed8;
    }
    .filter-rules-admin-secondary:hover,
    .filter-rules-admin-action:hover,
    .filter-rules-admin-order-btn:hover,
    .filter-rules-admin-tab:hover {
        border-color: #93c5fd;
        background: #eff6ff;
    }
    .filter-rules-admin-primary:focus,
    .filter-rules-admin-secondary:focus,
    .filter-rules-admin-action:focus,
    .filter-rules-admin-order-btn:focus,
    .filter-rules-admin-danger:focus,
    .filter-rules-admin-tab:focus,
    .filter-rules-admin-field input:focus,
    .filter-rules-admin-field select:focus,
    .filter-rules-admin-field textarea:focus {
        outline: none;
        border-color: #2563eb;
        box-shadow: 0 0 0 3px rgba(37, 99, 235, .16);
    }
    .filter-rules-admin-primary:disabled,
    .filter-rules-admin-secondary:disabled,
    .filter-rules-admin-action:disabled,
    .filter-rules-admin-order-btn:disabled,
    .filter-rules-admin-danger:disabled {
        cursor: not-allowed;
        opacity: .55;
        box-shadow: none;
    }
    .filter-rules-admin-summary-panel {
        display: grid;
        gap: 12px;
        margin-bottom: 14px;
    }
    .filter-rules-admin-status {
        padding: 11px 13px;
        border: 1px solid #d0d5dd;
        border-radius: 12px;
        background: #f8fafc;
        color: #475467;
    }
    .filter-rules-admin-status.running { color: #1d4ed8; background: #eff6ff; border-color: #bfdbfe; }
    .filter-rules-admin-status.success { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }
    .filter-rules-admin-status.warning { color: #92400e; background: #fffbeb; border-color: #fde68a; }
    .filter-rules-admin-status.error,
    .filter-rules-admin-status.failed { color: #b42318; background: #fef2f2; border-color: #fecaca; }
    .filter-rules-admin-stat-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
    }
    .filter-rules-admin-stat-card {
        padding: 13px 14px;
        border: 1px solid #e2e8f0;
        border-radius: 14px;
        background: #ffffff;
        box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
    }
    .filter-rules-admin-stat-card span {
        display: block;
        color: #64748b;
        font-size: 12px;
        margin-bottom: 5px;
    }
    .filter-rules-admin-stat-card strong {
        color: #0f172a;
        font-size: 24px;
        line-height: 1;
        font-variant-numeric: tabular-nums;
    }
    .filter-rules-admin-tabs {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 4px;
        margin-bottom: 14px;
        border: 1px solid #e2e8f0;
        border-radius: 999px;
        background: #f8fafc;
    }
    .filter-rules-admin-tab {
        border-radius: 999px;
        border-color: transparent;
        min-width: 84px;
    }
    .filter-rules-admin-tab-active {
        border-color: #bfdbfe;
        background: #ffffff;
        color: #1d4ed8;
        box-shadow: 0 5px 14px rgba(15, 23, 42, .08);
    }
    .filter-rules-admin-list {
        display: grid;
        gap: 16px;
        min-width: 0;
    }
    .filter-rules-admin-group {
        display: grid;
        gap: 10px;
        min-width: 0;
    }
    .filter-rules-admin-group-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }
    .filter-rules-admin-group-title {
        margin: 0;
        color: #0f172a;
        font-size: 15px;
    }
    .filter-rules-admin-group-count {
        color: #64748b;
        font-size: 12px;
    }
    .filter-rules-admin-card-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        min-width: 0;
    }
    .filter-rules-admin-card {
        display: grid;
        gap: 12px;
        min-width: 0;
        padding: 14px;
        border: 1px solid #e2e8f0;
        border-radius: 16px;
        background: #ffffff;
        box-shadow: 0 10px 26px rgba(15, 23, 42, .06);
    }
    .filter-rules-admin-card-body {
        display: grid;
        gap: 7px;
        min-width: 0;
    }
    .filter-rules-admin-card-title-row {
        display: flex;
        align-items: center;
        gap: 8px;
        min-width: 0;
    }
    .filter-rules-admin-ordinal {
        flex: 0 0 auto;
        color: #2563eb;
        font-size: 12px;
        font-weight: 700;
    }
    .filter-rules-admin-card-title {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: #0f172a;
    }
    .filter-rules-admin-type,
    .filter-rules-admin-key {
        color: #64748b;
        overflow-wrap: anywhere;
    }
    .filter-rules-admin-meta {
        display: flex;
        align-items: center;
        gap: 6px;
        flex-wrap: wrap;
        min-width: 0;
    }
    .filter-rules-admin-origin,
    .filter-rules-admin-enabled,
    .filter-rules-admin-disabled {
        width: max-content;
        padding: 2px 7px;
        border-radius: 999px;
        font-size: 12px;
    }
    .filter-rules-admin-origin {
        background: #f1f5f9;
        color: #475467 !important;
    }
    .filter-rules-admin-enabled {
        background: #ecfdf5;
        color: #047857;
    }
    .filter-rules-admin-disabled {
        background: #f8fafc;
        color: #94a3b8;
    }
    .filter-rules-admin-pattern-list {
        --filter-rule-chip-row-height: 22px;
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        max-height: calc(var(--filter-rule-chip-row-height) * 2 + 6px);
        overflow: hidden;
        min-width: 0;
    }
    .filter-rules-admin-pattern-chip {
        box-sizing: border-box;
        max-width: 100%;
        min-height: var(--filter-rule-chip-row-height);
        padding: 3px 8px;
        border-radius: 999px;
        background: #f1f5f9;
        color: #334155;
        font-size: 12px;
        line-height: 16px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .filter-rules-admin-pattern-chip.muted {
        color: #94a3b8;
    }
    .filter-rules-admin-actions,
    .filter-rules-admin-move-actions,
    .filter-rules-admin-mutation-actions,
    .filter-rules-admin-editor-actions {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }
    .filter-rules-admin-actions {
        justify-content: space-between;
        padding-top: 10px;
        border-top: 1px solid #f1f5f9;
    }
    .filter-rules-admin-danger {
        border-color: #fecaca;
        background: #fef2f2;
        color: #b42318;
    }
    .filter-rules-admin-danger:hover {
        border-color: #fca5a5;
        background: #fee2e2;
    }
    .filter-rules-admin-editor {
        position: fixed;
        z-index: 2147483600;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        display: grid;
        gap: 12px;
        width: min(560px, calc(100vw - 32px));
        max-height: calc(100vh - 40px);
        overflow: auto;
        box-sizing: border-box;
        padding: 22px;
        border: 1px solid #dbeafe;
        border-radius: 18px;
        background: #ffffff;
        box-shadow: 0 22px 60px rgba(15, 23, 42, .28);
    }
    .filter-rules-admin-editor[hidden] {
        display: none;
    }
    .filter-rules-admin-editor-title {
        margin: 0;
        color: #0f172a;
    }
    .filter-rules-admin-field {
        display: grid;
        gap: 6px;
        color: #344054;
        font-weight: 600;
    }
    .filter-rules-admin-field input,
    .filter-rules-admin-field select,
    .filter-rules-admin-field textarea {
        box-sizing: border-box;
        width: 100%;
        padding: 9px 10px;
        border: 1px solid #d0d5dd;
        border-radius: 10px;
        background: #ffffff;
        color: #0f172a;
        font: inherit;
        font-weight: 400;
    }
    .filter-rules-admin-checkbox {
        display: flex;
        align-items: center;
        gap: 8px;
    }
    .filter-rules-admin-checkbox input {
        width: auto;
    }
    .filter-rules-admin-empty {
        color: #64748b;
    }
    .filter-rules-admin-editor-message {
        color: #b42318;
    }
    .filter-rules-admin-editor-actions {
        justify-content: flex-end;
    }
    @media (max-width: 850px) {
        .filter-rules-admin-page {
            width: 100%;
            max-width: 100%;
            padding: 0 8px;
        }
        .filter-rules-admin-hero,
        .filter-rules-admin-actions,
        .filter-rules-admin-group-header {
            align-items: stretch;
            flex-direction: column;
        }
        .filter-rules-admin-header-actions,
        .filter-rules-admin-move-actions,
        .filter-rules-admin-mutation-actions {
            justify-content: flex-start;
        }
        .filter-rules-admin-stat-grid,
        .filter-rules-admin-card-grid {
            grid-template-columns: 1fr;
        }
        .filter-rules-admin-tabs {
            display: grid;
            grid-template-columns: 1fr;
            width: 100%;
            box-sizing: border-box;
            border-radius: 16px;
        }
        .filter-rules-admin-tab {
            width: 100%;
        }
    }
    /* ===== 店铺监控：固定高度滚动店铺表 + 同步状态 ===== */
    .shop-admin-header {
        flex-wrap: wrap;
        padding: 10px 14px;
        background: linear-gradient(135deg, #eff6ff, #f8fafc);
        border-bottom: 1px solid #dbeafe;
    }
    .shop-admin-hero-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border-radius: 9px;
        background: #2563eb;
        color: #fff;
        font-size: 13px;
        font-weight: 700;
        flex: none;
    }
    .shop-admin-hero-copy {
        display: inline-flex;
        flex-direction: column;
        gap: 1px;
        min-width: 0;
    }
    .shop-admin-subtitle {
        font-size: 11.5px;
        color: #64748b;
        line-height: 16px;
    }
    .shop-admin-header-aside {
        margin-left: auto;
        display: flex;
        align-items: center;
        gap: 16px;
        flex-wrap: wrap;
    }
    .shop-admin-current {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: #667085;
        font-size: 12px;
    }
    .shop-filter-bar {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 3px;
        background: #f1f5f9;
        border-radius: 999px;
        border: 1px solid #e2e8f0;
    }
    .shop-monitor-stat-grid {
        display: grid;
        grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
        gap: 8px;
        padding: 10px 14px 0;
    }
    .shop-monitor-stat {
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding: 8px 10px;
        border: 1px solid #e2e8f0;
        border-radius: 10px;
        background: #f8fafc;
        min-width: 0;
    }
    .shop-monitor-stat-wide {
        background: #eff6ff;
        border-color: #bfdbfe;
    }
    .shop-monitor-stat-label {
        font-size: 11px;
        color: #64748b;
        letter-spacing: 0.02em;
    }
    .shop-monitor-stat-value {
        font-size: 13px;
        font-weight: 700;
        color: #0f172a;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .shop-admin-toolbar {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
        padding: 10px 14px 0;
    }
    .shop-admin-search {
        flex: 1 1 240px;
        min-width: 180px;
        height: 30px;
        padding: 0 12px;
        font-size: 12.5px;
        border: 1px solid #d0d5dd;
        border-radius: 999px;
        background: #fff;
        box-sizing: border-box;
    }
    .shop-admin-search:focus {
        outline: none;
        border-color: #2563eb;
        box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
    }
    .shop-status-filter-bar {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 3px;
        background: #f1f5f9;
        border: 1px solid #e2e8f0;
        border-radius: 999px;
    }
    .shop-status-filter-btn {
        border: none;
        background: transparent;
        color: #475467;
        padding: 4px 12px;
        font-size: 12px;
        line-height: 16px;
        border-radius: 999px;
        cursor: pointer;
        white-space: nowrap;
        transition: all .15s ease;
    }
    .shop-status-filter-btn:hover {
        color: #1e3a8a;
        background: #e0ecff;
    }
    .shop-status-filter-btn-active {
        background: #1e3a8a;
        color: #fff;
        box-shadow: 0 1px 2px rgba(30, 58, 138, .25);
    }
    .shop-admin-body {
        max-height: 330px;
        overflow-y: auto;
        overflow-x: auto;
    }
    .shop-admin-table {
        min-width: 1020px;
        margin-top: 0;
    }
    .shop-admin-table thead th {
        position: sticky;
        top: 0;
        z-index: 2;
        background: #f8fafc;
    }
    .shop-admin-body .shop-admin-table thead th {
        box-shadow: inset 0 -1px 0 #dbe5f2;
    }
    .shop-admin-table th,
    .shop-admin-table td {
        padding: 4px 10px;
        height: 34px;
    }
    .shop-admin-empty-cell {
        text-align: center;
        color: #98a2b3;
        padding: 20px 0;
    }
    .shop-admin-success-cell {
        color: #475467;
        font-size: 11.5px;
        white-space: nowrap;
    }
    .shop-monitor-status {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 1px 9px;
        border-radius: 999px;
        font-size: 11.5px;
        line-height: 18px;
        font-weight: 600;
        white-space: nowrap;
        border: 1px solid transparent;
    }
    .shop-monitor-status::before {
        content: "";
        display: inline-block;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: currentColor;
        flex: none;
    }
    .shop-monitor-status.is-never {
        background: #f1f5f9;
        border-color: #e2e8f0;
        color: #64748b;
    }
    .shop-monitor-status.is-queued {
        background: #eff6ff;
        border-color: #bfdbfe;
        color: #1d4ed8;
    }
    .shop-monitor-status.is-running {
        background: #ecfeff;
        border-color: #a5f3fc;
        color: #0e7490;
    }
    .shop-monitor-status.is-success {
        background: #f0fdf4;
        border-color: #bbf7d0;
        color: #15803d;
    }
    .shop-monitor-status.is-failed {
        background: #fef2f2;
        border-color: #fecaca;
        color: #b42318;
    }
    .shop-retry-btn {
        background: #fff7ed;
        border-color: #fed7aa;
        color: #c2410c;
    }
    .shop-retry-btn:hover {
        background: #ffedd5;
    }
    .shop-view-btn {
        background: #f8fafc;
        border-color: #cbd5e1;
        color: #334155;
    }
    .shop-view-btn:hover {
        background: #eef2f7;
    }
    .shop-admin-row-actions button:disabled {
        opacity: 0.55;
        cursor: not-allowed;
    }
    .shop-admin-footer {
        display: flex;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
        padding: 8px 14px 10px;
        border-top: 1px solid #eef2f7;
    }
    .shop-monitor-poll-hint,
    .shop-admin-scroll-hint {
        font-size: 11.5px;
        color: #94a3b8;
    }
    .shop-admin-scroll-hint {
        margin-left: auto;
    }
    .shop-admin-wrap.collapsed .shop-admin-toolbar,
    .shop-admin-wrap.collapsed .shop-monitor-stat-grid,
    .shop-admin-wrap.collapsed .shop-admin-footer {
        display: none;
    }
    @media (max-width: 850px) {
        .shop-monitor-stat-grid {
            grid-template-columns: 1fr;
        }
        .shop-admin-toolbar {
            align-items: stretch;
            flex-direction: column;
        }
        .shop-admin-search {
            width: 100%;
            flex: none;
        }
        .shop-status-filter-bar {
            width: 100%;
            justify-content: space-between;
            box-sizing: border-box;
        }
        .shop-admin-header-aside {
            margin-left: 0;
            width: 100%;
        }
    }

    .change-log-recent-presets,
    .change-log-recent-custom {
        display: inline-flex;
        align-items: center;
    }
    .change-log-recent-btn,
    .change-log-recent-apply {
        height: 28px;
        padding: 0 11px;
        border: 1px solid #dbe3ec;
        border-radius: 7px;
        background: #fff;
        color: #64748b;
    }
    .change-log-recent-btn.active {
        border-color: #2563eb;
        background: #2563eb;
        color: #fff;
    }
    .change-log-recent-custom input {
        width: 66px;
        height: 28px;
        border: 1px solid #dbe3ec;
        border-radius: 7px 0 0 7px;
        text-align: center;
    }
    .change-log-recent-custom span {
        display: inline-flex;
        align-items: center;
        height: 28px;
        padding: 0 8px;
        border: 1px solid #dbe3ec;
        border-left: none;
        border-radius: 0 7px 7px 0;
        background: #f8fafc;
        color: #64748b;
        font-size: 12px;
        box-sizing: border-box;
    }
    .change-log-matrix-wrap {
        width: 100%;
        overflow: visible;
    }
    .change-log-body .change-log-matrix {
        width: max-content;
        min-width: 100%;
        table-layout: auto;
        border-collapse: separate;
        border-spacing: 0;
    }
    .change-log-matrix th,
    .change-log-matrix td {
        min-width: 132px;
        max-width: 260px;
        text-align: center;
        vertical-align: middle;
        white-space: normal;
        word-break: break-word;
    }
    .change-log-matrix thead th {
        position: sticky;
        top: 0;
        z-index: 3;
    }
    .change-log-matrix th:first-child {
        position: sticky;
        left: 0;
        min-width: 112px;
        background: #f8fafc;
        text-align: left;
    }
    .change-log-matrix thead th:first-child {
        z-index: 5;
    }
    .change-log-matrix tbody th:first-child {
        top: auto;
        z-index: 2;
    }
    .change-log-matrix-cell.same { background: #fcfdff; }
    .change-log-matrix-cell.carried { background: #f6f8fa; }
    .change-log-matrix-cell.changed { font-weight: 500; }
    .change-log-matrix-cell.changed-neutral { background: #fff7dc; }
    .change-log-matrix-cell.changed-up { background: #fff0ef; }
    .change-log-matrix-cell.changed-down { background: #eaf8f1; }
    .change-log-matrix-cell.missing { color: #94a3b8; background: #f8fafc; }
    .change-log-body tr:hover td.change-log-matrix-cell { background: #ffffff; }
    .change-log-body tr:hover td.change-log-matrix-cell.same { background: #fcfdff; }
    .change-log-body tr:hover td.change-log-matrix-cell.carried { background: #f6f8fa; }
    .change-log-body tr:hover td.change-log-matrix-cell.changed-neutral { background: #fff7dc; }
    .change-log-body tr:hover td.change-log-matrix-cell.changed-up { background: #fff0ef; }
    .change-log-body tr:hover td.change-log-matrix-cell.changed-down { background: #eaf8f1; }
    .change-log-body tr:hover td.change-log-matrix-cell.missing { background: #f8fafc; }
    .change-log-matrix-cell small,
    .change-log-matrix-status {
        display: block;
        margin-top: 3px;
        color: #94a3b8;
    }

/* Compact single-screen trend/rank filter layout (desktop 1366x768 baseline). */
.trend-season-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    text-align: center;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
}
.trend-season-panel {
    position: fixed;
    top: 56px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw - 32px);
    min-width: 0;
    max-width: 1280px;
    max-height: none;
    padding: 14px;
    border-radius: 16px;
    background: linear-gradient(180deg, #fbfcfe 0%, #f5f7fb 100%);
    box-shadow: 0 24px 64px rgba(16, 24, 40, 0.18);
    overflow: visible;
}
.trend-season-panel-header {
    margin-bottom: 10px;
    padding: 0 2px 10px;
}
.trend-season-mini-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.trend-season-option-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
}
.trend-season-groups {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}
.trend-season-group {
    min-width: 0;
    padding: 10px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 2px 8px rgba(16, 24, 40, 0.05);
}
.trend-season-group-trend {
    grid-column: span 2;
}
.trend-season-group-sales {
    grid-column: span 2;
}
.trend-season-group-rank {
    grid-column: span 2;
}
.trend-season-group-season {
    grid-column: span 3;
}
.trend-season-group-excluded {
    grid-column: span 3;
}
.trend-season-group-title {
    margin-bottom: 8px;
}
.trend-season-panel-summary {
    margin-top: 10px;
    line-height: 1.4;
    padding: 9px 2px 0;
}
.trend-season-input-stack {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 7px;
    margin-top: 8px;
}
.trend-season-range-grid {
    margin-top: 8px;
}
.trend-season-divider {
    margin: 8px 0;
}
.trend-season-hint {
    font-size: 11px;
    line-height: 1.4;
    margin-top: 8px;
    padding-top: 8px;
}
@media (max-width: 1099px) {
    .trend-season-groups {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .trend-season-group-trend,
    .trend-season-group-sales,
    .trend-season-group-season,
    .trend-season-group-excluded {
        grid-column: span 1;
    }
    .trend-season-group-rank {
        grid-column: span 2;
    }
}

/* Product filter option B: stable centered secondary action bar. */
#product-monitoring > .filter-section {
    row-gap: 4px;
    padding: 7px 10px;
}
.filter-action-row {
    display: flex;
    flex: 1 0 100%;
    min-width: 0;
    align-items: flex-end;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 5px 10px 0;
    border: 0;
    border-top: 1px solid #edf1f5;
    border-radius: 0;
    background: transparent;
}
.filter-action-row .search-group {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}
.filter-action-row #searchInput {
    width: 190px !important;
    height: 28px;
    box-sizing: border-box;
    padding: 0 10px;
    line-height: normal;
    background: #ffffff;
}
.filter-help-field {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    min-width: 0;
    flex-direction: column;
    align-self: flex-end;
}
.filter-help-label-row {
    position: relative;
    display: flex;
    min-height: 14px;
    align-items: center;
    gap: 4px;
    margin: 0 0 2px 2px;
    color: #3d4b5f;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
.filter-section .filter-help-trigger {
    display: inline-flex;
    width: 14px;
    min-width: 14px;
    height: 14px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: #e9effc;
    color: #2c5db5;
    font-size: 9px;
    font-weight: 700;
    line-height: 14px;
    cursor: help;
}
.filter-help-trigger:hover,
.filter-help-trigger:focus {
    outline: none;
    background: #dbe7ff;
    color: #1f4da4;
}
.filter-help-tooltip {
    position: absolute;
    top: 20px;
    left: 0;
    z-index: 1000001;
    display: none;
    width: 240px;
    padding: 9px 10px;
    border: 1px solid #cfdbef;
    border-radius: 9px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.16);
    color: #536177;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.5;
    white-space: normal;
}
.filter-help-trigger:hover + .filter-help-tooltip,
.filter-help-trigger:focus + .filter-help-tooltip {
    display: block;
}
.filter-help-tooltip-right {
    right: 0;
    left: auto;
}
.filter-search-field {
    flex-direction: row;
    align-items: center;
}
.filter-search-field .filter-help-label-row {
    min-height: 28px;
    margin: 0 7px 0 0;
}
#product-monitoring > .filter-section .filter-help-field > select,
.category-cascader-trigger,
.trend-season-trigger,
#系统时间Month {
    height: 28px;
    min-height: 28px;
    line-height: 28px;
    padding-top: 0;
    padding-bottom: 0;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 400;
    font-family: inherit;
    box-sizing: border-box;
}
.category-cascader-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    line-height: normal;
}
.trend-season-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    line-height: normal;
    font-weight: 400;
}
#系统时间Month {
    text-align: left;
    line-height: normal;
}
#searchButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 72px;
    min-width: 72px;
    height: 28px;
    box-sizing: border-box;
    margin: 0;
    padding: 0 10px;
    border-radius: 6px;
    font-weight: 400;
    line-height: normal;
    white-space: nowrap;
}
#exportButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 72px;
    min-width: 72px;
    height: 28px;
    box-sizing: border-box;
    margin: 0;
    padding: 0 10px;
    border-radius: 6px;
    font-weight: 400;
    line-height: normal;
    white-space: nowrap;
}
#resetButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 72px;
    min-width: 72px;
    height: 28px;
    box-sizing: border-box;
    margin: 0;
    padding: 0 10px;
    border-radius: 6px;
    font-weight: 400;
    line-height: normal;
    white-space: nowrap;
}
#resetButton:hover {
    background: #eef2ff;
    border-color: #c7d2fe;
    color: #1e3a8a;
}
@media (max-width: 650px) {
    .filter-action-row {
        padding: 8px;
    }
    .filter-action-row .search-group {
        flex: 1 1 100%;
    }
    .filter-action-row #searchInput {
        flex: 1 1 auto;
        width: auto !important;
        min-width: 0;
    }
    .filter-help-tooltip,
    .filter-help-tooltip-right {
        right: auto;
        left: 0;
        max-width: min(240px, calc(100vw - 48px));
    }
}

/* Category-rank controls embedded in the unified trend/season panel. */
.category-rank-trend-choice {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #ffffff;
    color: #344054;
    font-size: 12px;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}
.category-rank-trend-choice.active {
    border-color: #2563eb;
    background: #2563eb;
    color: #ffffff;
    font-weight: 600;
}
.category-rank-trend-choice:disabled {
    color: #98a2b3;
    background: #f2f4f7;
    border-color: #d0d5dd;
    cursor: not-allowed;
}
.category-rank-trend-group {
    margin-top: 8px;
}
.category-rank-trend-label {
    display: block;
    margin-bottom: 5px;
    color: #344054;
    font-size: 12px;
    font-weight: 600;
}
.category-rank-trend-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.category-rank-trend-input-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}
.category-rank-trend-field {
    min-width: 0;
}
.category-rank-trend-input {
    min-width: 0;
    width: 100%;
    height: 30px;
    padding: 0 9px;
    border: 1px solid #d0d5dd;
    border-radius: 7px;
    box-sizing: border-box;
}
.category-rank-trend-boom-hint,
.category-rank-trend-summary {
    margin-top: 8px;
    color: #667085;
    font-size: 11px;
    line-height: 1.4;
}
.category-rank-trend-summary {
    padding-top: 8px;
    border-top: 1px solid #e5e7eb;
}
@media (max-width: 850px) {
    .trend-season-panel {
        position: fixed;
        top: 16px;
        left: 16px;
        right: 16px;
        transform: none;
        width: auto;
        min-width: 0;
        max-width: none;
        max-height: calc(100vh - 32px);
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
    }
    .trend-season-groups {
        grid-template-columns: 1fr;
    }
    .trend-season-group-trend,
    .trend-season-group-sales,
    .trend-season-group-rank,
    .trend-season-group-season,
    .trend-season-group-excluded {
        grid-column: span 1;
    }
    .category-rank-trend-input-grid {
        grid-template-columns: 1fr;
    }
    .category-rank-trend-input {
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
    }
}

/* SIF traffic distribution v2 */
.traffic-insight-content {
    width: 100%;
    display: block;
}
.traffic-section + .traffic-section {
    margin-top: 20px;
}
.traffic-section-title {
    margin: 0 0 10px;
    color: #101828;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}
.traffic-summary-grid-listing {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.traffic-summary-grid-advertising {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.traffic-stat-card-sp {
    background: linear-gradient(135deg, #eef4ff 0%, #dbeafe 100%);
}
.traffic-stat-card-sp-recommend {
    background: linear-gradient(135deg, #f4f0ff 0%, #e9ddff 100%);
}
.traffic-stat-card-sb {
    background: linear-gradient(135deg, #fff7e8 0%, #ffebc2 100%);
}
.traffic-stat-card-sbv {
    background: linear-gradient(135deg, #f1f8f8 0%, #dff1ef 100%);
}
.traffic-distribution-segment-sp {
    background: linear-gradient(90deg, #6d96ff 0%, #8ab4ff 100%);
}
.traffic-distribution-segment-sp-recommend {
    background: linear-gradient(90deg, #8d6ce8 0%, #ac91f2 100%);
}
.traffic-distribution-segment-sb {
    background: linear-gradient(90deg, #f2b84b 0%, #f8cf78 100%);
}
.traffic-distribution-segment-sbv {
    background: linear-gradient(90deg, #3da9a0 0%, #71c7bf 100%);
}
@media (max-width: 720px) {
    .traffic-summary-grid-listing,
    .traffic-summary-grid-advertising {
        grid-template-columns: 1fr;
    }
}
    