/* 中文注释：本文件只补充 A 版与真实 price-radar 接口之间需要的状态、表格、弹窗和交互样式。 */

.hidden { display: none !important; }
.inline-loading { display: grid; place-items: center; min-height: 70px; color: var(--muted); font-size: 13px; }
.quote-grid > .inline-loading { grid-column: 1 / -1; }

/* 中文注释：首屏价格继续使用 A 设计原有紫粉渐变，禁止在接口整合层覆盖品牌视觉。 */
.quote-price,
.price-cell strong,
.detail-price { color: #f7f8fc; }

/* 中文注释：最低价摘要继续用绿色表达“最低价”，不能因列表价格样式被改成白色。 */
.minimum-price,
.minimum-row.available .minimum-price { color: #62dd7c; }

/* 中文注释：监控状态颜色直接映射后端 health.state。 */
.sidebar-status.warn .health-card__title,
.sidebar-status.warn .status-dot { color: #ffcf66; }
.sidebar-status.warn .status-dot { background: #ffcf66; }
.sidebar-status.error .health-card__title,
.sidebar-status.error .status-dot { color: var(--red); }
.sidebar-status.error .status-dot { background: var(--red); }

/* 中文注释：消费者首页固定为三组。第一组是实时决策，第二组是最低价摘要，第三组是商品列表。 */
.consumer-section { position: relative; }
.hero-grid.consumer-section {
  height: auto;
  min-height: 472px;
  padding: 46px 18px 22px;
  border: 1px solid rgba(143,151,179,.11);
  border-radius: 18px;
  background: linear-gradient(155deg, rgba(13,17,34,.62), rgba(8,12,27,.28));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.012);
  align-items: start;
}
/* 中文注释：A 为右侧趋势卡、B 为左侧主按钮；趋势卡拉伸到首屏内容底边，让两者在不同视口下始终底边对齐。 */
.hero-grid.consumer-section > .trend-card {
  align-self: stretch;
  height: auto;
}

/* 中文注释：首屏、最低价摘要和关注商品共用 18px 内容基线，所有分区标题首字垂直对齐。 */
.hero-grid.consumer-section > .price-hero {
  padding-left: 0;
}

.watch-panel > .watch-header {
  padding-left: 18px;
}

/* 中文注释：C 主标题拆成单字错峰上跳，形成从左到右传递的波浪；动画不参与排版计算。 */
#decision-heading {
  width: fit-content;
}

#decision-heading .heading-wave-group {
  display: inline-flex;
  margin-left: 0;
  color: inherit;
}

#decision-heading .heading-wave-group--accent {
  margin-left: 6px;
  color: var(--orange);
}

#decision-heading .heading-wave-char {
  display: inline-block;
  font-style: normal;
  font-weight: inherit;
  animation: decision-heading-wave 1.8s ease-in-out infinite;
  animation-delay: calc(var(--wave-index) * 70ms);
  will-change: transform;
}

@keyframes decision-heading-wave {
  0%, 52%, 100% { transform: translateY(0); }
  18% { transform: translateY(-9px); }
  30% { transform: translateY(2px); }
  40% { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  #decision-heading .heading-wave-char { animation: none; }
}
.quote-panel { margin-top: 20px; }
.watch-panel { margin-top: 20px; }

/* 中文注释：分类数量由后台返回；前端自动换行，不用箭头把后续类别藏起来。 */
.category-selector {
  max-width: 100%;
  margin-top: 18px;
  padding: 9px 11px 10px;
  border: 1px solid rgba(143,151,179,.12);
  border-radius: 12px;
  background: rgba(12,16,32,.56);
}
.category-selector__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 4px; }
.category-selector__head strong { color: #dfe1e9; font-size: 11px; font-weight: 800; }
.category-selector__head span { overflow: hidden; color: #74798d; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.category-selector .category-tabs { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 8px 10px; margin-top: 7px; }
.category-selector .category-tab { flex: 0 0 auto; min-width: 88px; }
.category-selector + .price-label { margin-top: 18px; }

/* 中文注释：最低价摘要恢复真源的“分类卡 + 全部最低/有货最低”双行逻辑；其他消费者区域保持精简。 */
.quote-panel { height: auto; min-height: 190px; padding: 15px 18px 18px; }
.market-summary-title { align-items: flex-end; justify-content: space-between; margin-bottom: 12px; }
.market-summary-title > div { min-width: 0; }
.market-summary-title h2 { line-height: 1.1; }
.market-summary-title p { margin: 0 2px 1px 20px; color: var(--muted); font-size: 11px; }
.panel-eyebrow { display: block; margin-bottom: 3px; color: #9872ef; font-size: 9px; font-weight: 850; letter-spacing: .16em; }
.quote-grid { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.market-card { min-width: 0; padding: 18px; overflow: hidden; border: 1px solid rgba(142,150,178,.11); border-radius: 12px; background: linear-gradient(155deg, rgba(24,28,49,.95), rgba(18,22,39,.96)); transition: border-color .18s ease, box-shadow .18s ease; }
.market-card.is-selected { border-color: rgba(127,88,230,.58); box-shadow: inset 0 0 22px rgba(104,67,211,.08); }
.market-card-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 13px; }
.market-card-head > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.market-card-head strong { color: #e9eaf0; font-size: 14px; white-space: nowrap; }
.market-keyword { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 8px; color: #c5b2ff; background: rgba(126,88,230,.13); font-size: 11px; font-weight: 850; letter-spacing: .05em; }
.rule-pill { flex: none; padding: 5px 9px; border-radius: 999px; color: #62dd7c; background: rgba(98,221,124,.09); font-size: 10px; font-weight: 750; }
.rule-pill.off { color: #8f93a5; background: rgba(143,147,165,.08); }
.minimum-list { display: grid; gap: 8px; }
.minimum-row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; min-height: 92px; padding: 13px 14px; border: 1px solid rgba(150,175,210,.09); border-radius: 13px; background: rgba(7,12,20,.34); }
.minimum-row.available { border-color: rgba(98,221,124,.18); background: linear-gradient(90deg, rgba(98,221,124,.06), rgba(7,12,20,.31) 62%); }
.minimum-row.empty { grid-template-columns: 1fr auto; color: var(--muted); font-size: 11px; }
.minimum-info { min-width: 0; }
.minimum-labels { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.minimum-kind { color: #9da0b1; font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.availability { padding: 3px 7px; border-radius: 999px; font-size: 9px; font-weight: 800; }
.availability.in-stock { color: #62dd7c; background: rgba(98,221,124,.09); }
.availability.out-of-stock { color: #ff656c; background: rgba(255,101,108,.09); }
.minimum-product { overflow: hidden; color: #ececf2; font-size: 12px; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.minimum-store-line { display: flex; align-items: center; gap: 5px; min-width: 0; margin-top: 4px; }
.minimum-store { min-width: 0; overflow: hidden; color: #9195a8; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.snapshot-channel { flex: none; padding: 3px 6px; border-radius: 5px; font-size: 8px; font-weight: 800; }
.snapshot-channel.ldxp { color: #c4b1ff; background: rgba(126,88,230,.15); }
.snapshot-channel.catfk,
.snapshot-channel.other { color: #ffb276; background: rgba(255,123,40,.12); }
.minimum-value { min-width: 134px; text-align: right; }
.minimum-price-line { display: flex; align-items: baseline; justify-content: flex-end; gap: 4px; white-space: nowrap; }
.minimum-price { font-size: 24px; font-weight: 850; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.minimum-links { display: flex; justify-content: flex-end; gap: 9px; margin-top: 5px; }
.minimum-links a { color: #969aac; font-size: 10px; text-decoration: none; }
.minimum-links a:hover { color: #fff; }
.minimum-updated { margin-top: 3px; color: #6f7385; font-size: 10px; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* 中文注释：关注区尺寸取竞品真源的实测比例；配色、边框与品牌仍使用 A 版。 */
.watch-panel { height: auto; min-height: 0; overflow: hidden; padding: 0; border-radius: 18px; }
.watch-header { height: auto; min-height: 93px; align-items: center; padding: 22px 24px; border-bottom: 1px solid rgba(137,145,174,.13); }
.watch-title > div { min-width: 0; }
.watch-title .panel-eyebrow { margin-bottom: 4px; }
.watch-title h2 { font-size: 22px; line-height: normal; }
.table-wrap { overflow: visible; }
#product-list { max-height: none; overflow: visible; }
.product-row { position: relative; height: 84px; padding: 0 24px; }
.product-copy strong { min-width: 0; }
.product-name-text { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 700; }
.product-icon { overflow: hidden; color: #fff; text-align: center; line-height: 1.1; background: #1b1d32; }
.product-icon img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* 中文注释：缺图只改变图标内容，不改变列表尺寸、间距或现有布局。 */
.product-icon.is-fallback { display: grid; place-items: center; color: #fff; background: var(--product-fallback-bg, #4d30ac); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); font-weight: 850; }
.product-icon { width: 42px; height: 42px; border-radius: 11px; font-size: 12px; }
.product-cell { gap: 13px; }
.fee-note { color: var(--muted); font-size: 9px; font-weight: 650; white-space: nowrap; }
.table-row { grid-template-columns: minmax(360px, 2.2fr) 140px 112px minmax(150px, .9fr) 210px; column-gap: 14px; }
.table-head { display: grid; height: 42px; padding: 0 24px; color: #777c90; font-size: 10px; font-weight: 700; letter-spacing: .04em; }
.table-head > div:nth-child(5) { text-align: right; }
.product-copy small { margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.product-category-inline { flex: 0 0 auto; padding: 3px 6px; border-radius: 999px; color: #bca8ff; background: rgba(135,95,236,.13); font-size: 8px; font-weight: 800; line-height: 1; }
.stock-text.in-stock { color: var(--green); }
.stock-text.out-of-stock { color: var(--red); }
.source-marker { flex: 0 0 auto; display: inline-flex; align-items: center; margin-left: 5px; padding: 3px 6px; border-radius: 999px; font-size: 9px; font-weight: 700; }
.source-marker.lowest { color: var(--green); background: rgba(98,216,120,.10); }
.source-marker.earliest { color: #bca8ff; background: rgba(135,95,236,.14); }
.change-column { min-width: 0; display: grid; align-content: center; gap: 3px; white-space: nowrap; }
.change-column strong { font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }
.change-column small { overflow: hidden; color: #7f8396; font-size: 9px; text-overflow: ellipsis; }
.change-column.down strong { color: var(--green); }
.change-column.up strong { color: var(--red); }
.change-column.stable strong { color: var(--muted); }
.store-cell { min-width: 0; }
.store-cell > div { min-width: 0; display: flex; align-items: center; gap: 6px; }
.store-cell > div > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 700; }
.channel-badge { flex: 0 0 auto; margin-top: 0; }
.price-cell { min-width: 0; }
.price-cell strong { font-size: 16px; line-height: normal; font-weight: 850; }
.fee-only { min-width: 0; margin-top: 3px; }
.actions { position: relative; width: 210px; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.row-action-link { min-width: 46px; height: 31px; display: inline-flex; align-items: center; justify-content: center; padding: 7px 10px; border: 1px solid rgba(136,145,174,.16); border-radius: 11px; background: rgba(17,21,38,.8); color: #d9dae2; font-size: 12px; font-weight: 750; text-decoration: none; cursor: pointer; }
.row-action-link:hover { color: #fff; border-color: rgba(135,95,236,.55); }
.channel-badge { display: inline-flex; align-items: center; flex: 0 0 auto; margin-top: 0; height: 16px; padding: 0 5px; border-radius: 5px; font-size: 8px; line-height: 1; }
.channel-badge.ldxp { color: #d4cbff; background: #4d30ac; }
.channel-badge.catfk,
.channel-badge.other { color: #ffd6a6; background: #7a441b; }
.source-group { display: contents; }
.source-group-child { background: rgba(135,95,236,.035); }
.source-group-child .product-cell { padding-left: 18px; }
.source-group-toggle { position: absolute; top: -22px; right: 0; width: auto; min-height: 0; padding: 0; border: 0; background: transparent; color: #bca8ff; white-space: nowrap; text-align: right; font-size: 10px; line-height: 12px; font-weight: 800; cursor: pointer; }
.source-group-toggle:hover:not(:disabled) { background: transparent; color: #ded3ff; }
.source-group-toggle:disabled { opacity: .6; cursor: wait; }

/* 中文注释：分页沿用后端 page/pageSize=20 合同，不允许前端一次搬取整库。 */
.pagination { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 24px; border-top: 1px solid rgba(133,142,171,.11); background: rgba(7,12,20,.22); }
.pagination-summary { color: var(--subtle); font-size: 11px; }
.pagination-controls { display: flex; align-items: center; gap: 7px; }
.pagination-controls label { display: flex; align-items: center; gap: 6px; }
.pagination-controls select { height: 30px; padding: 0 25px 0 9px; border: 1px solid rgba(138,145,173,.18); border-radius: 7px; background: #121628; color: #e6e7ec; }
.pagination-controls .ghost-button { width: auto; min-width: 48px; height: 30px; padding: 0 10px; }
.pagination-controls button:disabled { opacity: .35; cursor: default; }
.empty-state { min-height: 136px; display: grid; place-items: center; color: var(--muted); }

/* 中文注释：趋势图同时显示分类最低价和当前商品价；缺数据时不补点。 */
.trend-chart { position: relative; cursor: pointer; }
.trend-chart .line-purple,
.trend-chart .line-orange { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.trend-chart .line-purple { stroke: #8b61ec; }
.trend-chart .line-orange { stroke: #ff7b28; }
.trend-chart .point-purple { fill: #946df0; stroke: #724ad6; }
.trend-chart .point-orange { fill: #ff8734; stroke: #e45f09; }
.trend-chart .chart-empty { min-height: 210px; }

/* 中文注释：弹窗与表单独立实现，避免旧前端布局样式污染 A 版主网格。 */
.modal-backdrop { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.78); backdrop-filter: blur(9px); }
.modal { position: relative; width: min(520px, 100%); max-height: 90vh; overflow: auto; padding: 25px; color: var(--text); background: #101528; border: 1px solid var(--line-strong); border-radius: 20px; box-shadow: 0 30px 90px rgba(0,0,0,.6); }
.large-modal { width: min(920px, 96vw); }
.modal-close { position: absolute; top: 16px; right: 16px; border: 0; color: var(--muted); background: transparent; font-size: 12px; }
.modal h2 { margin: 0 0 22px; padding-right: 50px; }
.modal .eyebrow { margin: 0 0 6px; color: #9e82ff; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.section-note { color: var(--muted); font-size: 11px; line-height: 1.65; }
.field { display: grid; gap: 6px; }
.field.wide { margin-bottom: 12px; }
.field span { color: #bac6d8; font-size: 12px; font-weight: 700; }
.modal input,
.modal textarea,
.modal select { width: 100%; border: 1px solid var(--line-strong); border-radius: 9px; background: #0c1122; color: var(--text); padding: 10px 12px; outline: none; }
.modal input:focus,
.modal textarea:focus,
.modal select:focus { border-color: rgba(135,95,236,.72); box-shadow: 0 0 0 3px rgba(135,95,236,.12); }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 8px; }
.primary-button,
.secondary-button { min-height: 38px; padding: 0 16px; border-radius: 8px; font-weight: 700; }
.primary-button { border: 0; background: linear-gradient(90deg,#6b45e4,#5730be); color: #fff; }
.secondary-button { border: 1px solid var(--line-strong); background: #171d32; color: #d9dae2; }
.submission-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
.submission-help { margin: 8px 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.platform-request-entry { width: 100%; margin-top: 15px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; border: 1px dashed rgba(135,95,236,.35); border-radius: 12px; color: var(--muted); background: rgba(135,95,236,.05); font-size: 11px; text-align: left; }
.platform-request-entry strong { color: #bca8ff; }

.pref-section { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.pref-section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.pref-section h3 { margin: 0 0 12px; font-size: 14px; }
.pref-note { margin: 6px 0 8px; color: var(--muted); font-size: 11px; }
.pref-toggle,
.pref-cat-toggle { display: inline-flex; align-items: center; gap: 9px; color: #dce3f0; font-size: 13px; cursor: pointer; }
.pref-toggle input,
.pref-cat-toggle input { width: auto; accent-color: var(--purple); }
.pref-cat-list { display: grid; gap: 8px; }
.pref-cat-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.018); }
.pref-cat-name { font-weight: 700; }
.pref-cat-threshold { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: 12px; white-space: nowrap; }
.pref-cat-threshold input { width: 82px; padding: 5px 8px; text-align: right; }

.product-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.product-detail-head h2 { max-width: 650px; }
.product-detail-head .product-meta { color: var(--muted); font-size: 12px; }
.detail-price-wrap { text-align: right; }
.detail-price { color: #f7f8fc; font-size: 34px; font-weight: 800; white-space: nowrap; }
.chart-toolbar { display: flex; gap: 7px; margin: 18px 0 12px; }
.chart-toolbar .ghost-button { width: auto; min-width: 54px; height: 34px; padding: 0 12px; color: #d9dae2; text-decoration: none; }
.chart-toolbar .ghost-button.active { color: #c7b6ff; border-color: rgba(135,95,236,.5); }
.chart-wrap { position: relative; min-height: 280px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: rgba(6,10,27,.55); }
.chart-wrap svg { width: 100%; height: 100%; display: block; }
.chart-empty { min-height: 240px; display: grid; place-items: center; padding: 20px; color: var(--muted); }
.chart-grid { stroke: rgba(150,175,210,.1); stroke-width: 1; }
.chart-line { fill: none; stroke: #8b61ec; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.chart-area { fill: url(#chart-gradient); }
.chart-label { fill: var(--muted); font-size: 14px; }
.chart-point { stroke: rgba(5,10,17,.8); stroke-width: 1.5; }
.chart-crosshair { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,.18); pointer-events: none; }
.chart-tooltip { position: absolute; z-index: 4; min-width: 150px; padding: 9px 10px; border: 1px solid var(--line-strong); border-radius: 9px; background: rgba(23,28,48,.98); box-shadow: 0 12px 32px rgba(0,0,0,.35); pointer-events: none; }
.chart-tooltip-time { margin-bottom: 4px; color: var(--muted); font-size: 10px; }
.chart-tooltip-row { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; font-size: 11px; }
.chart-tooltip-price { color: #c4b1ff; font-weight: 700; }
.chart-legend-item { display: inline-flex; align-items: center; gap: 7px; margin: 4px 5px 0 0; padding: 6px 9px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.02); color: var(--muted); }
.chart-legend-dot { width: 10px; height: 10px; border-radius: 3px; }

/* 中文注释：大屏按同行 1969px 视口实测比例统一 A 版外框；只改尺寸密度，不改配色、内容和接口。 */
@media (min-width: 1700px) {
  .sidebar {
    width: 240px;
    padding: 34px 20px 72px;
  }

  .main-content {
    margin-left: 240px;
    padding: 34px 60px 40px;
  }

  .top-tools {
    top: 34px;
    right: 60px;
  }

  .hero-grid {
    height: auto;
    min-height: 500px;
    padding: 60px 18px 24px;
    grid-template-columns: minmax(560px, .95fr) minmax(620px, 1.3fr);
    gap: 28px;
  }

  .price-hero { padding: 0 28px 0 12px; }
  .price-hero h1 { font-size: 44px; }
  .hero-price { font-size: 60px; }

  .trend-card {
    height: 400px;
    /* 中文注释：与左侧首屏和下方报价模块保持 20px 间距，避免大屏下向下溢出重叠。 */
    margin-top: 20px;
    padding: 24px 26px 20px;
  }

  .trend-chart { height: 298px; }

  .quote-panel {
    height: auto;
    min-height: 210px;
    padding: 16px 18px 18px;
  }

  .quote-grid { gap: 12px; }
  .market-card { padding: 14px; }
  .minimum-row { min-height: 88px; padding: 11px 12px; }

  .watch-panel {
    min-height: 0;
    margin-top: 22px;
    padding: 0;
  }

  .watch-header { height: auto; min-height: 93px; align-items: center; padding: 22px 24px; }
  .table-head { display: grid; }
  .product-row { height: 84px; }
  .product-icon { width: 42px; height: 42px; }
  #product-list { max-height: none; }
  .sync-footer { height: 38px; }
}

/* 中文注释：接口错误、SSE 告警和提交结果统一进入右下角消息栈。 */
.toast-container { position: fixed; z-index: 100; right: 20px; bottom: 20px; display: grid; gap: 9px; }
.toast-container .toast { position: static; min-width: 260px; max-width: 420px; transform: none; opacity: 1; pointer-events: auto; color: var(--text); animation: toast-in .2s ease; }
.toast-container .toast.error { color: #ffd8dd; border-color: rgba(255,94,107,.42); }
.toast-container .toast.alert { cursor: pointer; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* 中文注释：筛选器高度、字号和间距使用竞品真源实测值，外观仍沿用 A 版。 */
.watch-controls { gap: 9px; flex-wrap: wrap; justify-content: flex-end; }
.watch-controls select { width: 150px; height: 44px; padding: 10px 39px 10px 12px; border-radius: 10px; font-size: 16px; }
.watch-controls #store-filter,
.watch-controls #keyword-filter { width: 150px; }
.watch-controls .switch-label { min-height: 44px; padding: 0 11px; gap: 7px; border: 1px solid rgba(138,145,173,.18); border-radius: 10px; background: rgba(7,12,20,.32); font-size: 12px; }
.category-tab:disabled { opacity: .4; cursor: default; }

@media (max-width: 1300px) {
  .watch-controls #store-filter { width: 130px; }
  .watch-controls #keyword-filter { width: 115px; }
  .table-row { grid-template-columns: minmax(300px, 2.2fr) 125px 100px minmax(135px, .9fr) minmax(180px, 1.15fr); column-gap: 8px; }
  .product-name-text { max-width: 320px; }
}
