.mtm-page{display:grid;gap:10px}.mtm-page .page-head{margin-bottom:4px}.mtm-page .notice{margin:0}.mtm-connection{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.mtm-connection>div:first-child{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.mtm-connection label{font-size:var(--fs-body);color:var(--muted,#87927e)}.mtm-connection select{max-width:370px;min-width:200px}.mtm-connection-actions{display:flex;gap:10px;align-items:center;margin-left:auto;flex-wrap:wrap}.mtm-check-info{width:100%;margin:0;font-size:var(--fs-control)}.mtm-kpi-wrap{min-width:0}.mtm-kpi{margin:0;padding:16px 20px 14px;display:grid;gap:13px}.mtm-kpi-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.mtm-kpi-head h2{margin:0;font-size:var(--fs-h3);font-weight:500}.mtm-kpi-head>small{font-size:var(--fs-control);color:var(--muted,#87927e)}.mtm-kpi-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px 12px}.mtm-kpi-cell{display:grid;gap:3px;min-width:0;align-content:start}.mtm-kpi-cell>span{font-size:var(--fs-control);color:var(--muted,#87927e);white-space:nowrap}.mtm-kpi-cell>b{font-size:21px;font-weight:500;letter-spacing:-.02em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtm-kpi-cell>b small{font-size:var(--fs-control);font-weight:400;margin-left:1px}.mtm-kpi-cell>small{font-size:var(--fs-control);color:var(--muted,#87927e);line-height:1.35;overflow:hidden}.mtm-kpi-lead>b{font-size:23px;color:var(--accent,#355849)}.mtm-kpi-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line,#e7e4dc);font-size:var(--fs-control);color:var(--muted,#87927e)}.mtm-kpi-foot .mtm-status{width:auto;flex:1;min-width:180px;justify-content:flex-end}@media(max-width:1180px){.mtm-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.mtm-content{min-width:0}.mtm-content .tabs{margin-bottom:22px}.mtm-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.mtm-filters>label{flex:1;min-width:220px}.mtm-filters input{width:100%}.mtm-filters select{max-width:200px}
/* 搜索框一键清除：绝对定位在输入框右内侧，有内容才出现 */
.mtm-filters .mtm-search{position:relative;display:block}
.mtm-filters .mtm-search input{padding-right:38px}
.mtm-search-clear{position:absolute;top:50%;right:9px;transform:translateY(-50%);display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:#e6ebdf;color:#7d8972;cursor:pointer;line-height:0}
.mtm-search-clear:hover{background:#d7e0cb;color:#3f5136}
.mtm-search-clear:focus-visible{outline:2px solid var(--accent,#355849);outline-offset:2px}
.mtm-search-clear svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.mtm-search-clear[hidden]{display:none}.mtm-table{min-width:830px}.mtm-table th{white-space:nowrap}
/* 商品表头排序（原价 / 活动价 / 库存）：默认一颗很淡的双箭头，激活后变单箭头+主色。
   负 margin 是把点击热区撑大，视觉上仍然和原来一样贴住表头文字。 */
.mtm-table th.mtm-sortable{padding-right:8px}
.mtm-table .mtm-sort-btn{display:inline-flex;align-items:center;gap:3px;margin:-4px -6px;padding:4px 6px;border:0;border-radius:6px;background:none;font:inherit;color:inherit;line-height:1;cursor:pointer}
.mtm-table .mtm-sort-btn:hover{background:rgba(63,125,79,.09);color:var(--green,#3f7d4f)}
.mtm-table th.is-sorted .mtm-sort-btn{color:var(--green,#3f7d4f);font-weight:600}
.mtm-table .mtm-sort-icon{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mtm-table .mtm-sort-icon.is-idle{opacity:.35;stroke-width:1.8}.mtm-table td{vertical-align:middle}.mtm-table td:first-child{max-width:340px}.mtm-table strong{font-size:var(--fs-body);font-weight:500}.mtm-product{display:flex;align-items:center;gap:14px;min-width:240px}.mtm-product img,.mtm-image-empty{width:64px;height:64px;object-fit:cover;border-radius:10px;flex-shrink:0;background:#f3f4ec}.mtm-image-empty{display:grid;place-items:center;font-size:20px;color:#91a17c}.mtm-product small,.mtm-tagline,.mtm-cell-sub{display:block;font-size:var(--fs-control);color:var(--muted,#87927e);line-height:1.8;margin-top:5px;overflow-wrap:anywhere}.mtm-product strong{display:block;line-height:1.7;overflow-wrap:anywhere}
/* 商品列文字区：标题 → 卖点 → 分类 → 「时效标签 + 累计销量」（2026-10-28） */
.mtm-product-main{min-width:0}
.mtm-selling-point{display:block;margin-top:4px;font-size:var(--fs-control);line-height:1.6;color:#b0718a;overflow-wrap:anywhere}
.mtm-sale-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px}
.mtm-sale-line .mtm-cell-sub{display:inline-block;margin-top:0;line-height:1.4}
.mtm-sale-badge{margin-left:0;flex:0 0 auto;padding:3px 8px;border-radius:6px;font-size:var(--fs-aux);line-height:1.3;font-variant-numeric:tabular-nums}
.mtm-spec{display:block;font-size:var(--fs-body);line-height:1.6;overflow-wrap:anywhere}
.mtm-price{color:var(--accent,#355849);font-weight:500}.mtm-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px;font-size:var(--fs-control);color:var(--muted,#87927e)}.mtm-pager>div{display:flex;gap:8px}.mtm-progress{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mtm-progress strong{font-size:var(--fs-body);font-weight:500}.mtm-progress span{margin-left:auto;font-size:var(--fs-control)}.mtm-progress progress{width:100%;height:7px;accent-color:var(--accent,#355849)}.mtm-progress small{font-size:var(--fs-control)}.mtm-loading{font-size:var(--fs-control)}.mtm-page .empty-state p{margin:14px 0}.mtm-page .empty-state h2{font-size:19px}.mtm-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.mtm-page{gap:10px}.mtm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mtm-kpi{padding:14px}.mtm-kpi-cell>b{font-size:19px}.mtm-kpi-lead>b{font-size:22px}.mtm-kpi-foot{gap:8px}.mtm-kpi-foot .mtm-status{justify-content:flex-start;min-width:0}.mtm-connection select{width:100%;min-width:0;max-width:100%}.mtm-connection>div:first-child{width:100%}.mtm-connection label{width:100%}.mtm-connection-actions{margin-left:0;gap:8px}.mtm-filters{gap:8px}.mtm-filters>label{flex-basis:100%}.mtm-filters select{max-width:100%;flex:1;min-width:120px}.mtm-filters .btn{min-height:40px}.mtm-pager{align-items:flex-start;flex-direction:column}.mtm-content{padding:18px!important}.mtm-page .page-head{gap:12px}.mtm-page .tabs{gap:4px}.mtm-page .tab{padding-left:13px;padding-right:13px;white-space:nowrap}.mtm-progress span{margin-left:0}}
.mtm-products-table{width:100%;table-layout:fixed}.mtm-products-table td:first-child{max-width:none}.mtm-products-table td:first-child,.mtm-products-table td:first-child *{white-space:normal!important}.mtm-product{width:100%;min-width:0;align-items:flex-start}.mtm-product>div{width:calc(100% - 78px);max-width:calc(100% - 78px);min-width:0;flex:1}.mtm-product strong,.mtm-product .mtm-editable{display:block;max-width:100%;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}.mtm-editable{cursor:text;border-bottom:1px dashed transparent}.mtm-editable:hover{border-bottom-color:currentColor}.mtm-editable small{display:none;font-size:var(--fs-aux);font-weight:400;color:var(--muted,#87927e);white-space:nowrap!important}.mtm-editable:hover small{display:inline;margin-left:6px}.mtm-inline-edit{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:100%}.mtm-inline-edit input{width:min(240px,100%);min-width:90px;min-height:36px;padding:6px 9px;border:1px solid var(--line,#dfe5d9);border-radius:8px;font:inherit;color:inherit;background:#fff}.mtm-inline-edit input:focus{outline:none;border-color:var(--accent,#355849);box-shadow:0 0 0 3px rgba(53,88,73,.12)}
.mtm-inline-edit .btn{min-height:34px;padding:5px 10px;font-size:var(--fs-control)}.mtm-icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line,#dfe5d9);border-radius:8px;background:#fff;color:var(--accent,#355849);cursor:pointer}.mtm-icon-btn:hover{background:#f1f5eb}.mtm-icon-btn svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.mtm-icon-btn.cancel{color:var(--muted,#87927e)}.mtm-icon-btn:disabled{opacity:.5;cursor:wait}
.mtm-products-table th:nth-child(2){width:130px}.mtm-products-table th:nth-child(3),.mtm-products-table th:nth-child(4),.mtm-products-table th:nth-child(5){width:112px}.mtm-products-table th:nth-child(6){width:112px}.mtm-status-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mtm-status-toggle{min-height:32px;padding:5px 9px;font-size:var(--fs-control);white-space:nowrap}.mtm-delete{color:#a3443c}.mtm-products-table td{overflow-wrap:anywhere}
.mtm-inline-edit.mtm-title-edit{display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;gap:8px}.mtm-title-edit textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:none;min-height:56px;max-height:140px;padding:7px 10px;border:1px solid var(--line,#dfe5d9);border-radius:9px;background:#fff;color:inherit;font:inherit;font-size:var(--fs-body);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;resize:vertical;overflow-y:auto}.mtm-inline-actions{display:flex;justify-content:flex-end;gap:6px}
.mtm-product-image{display:block;flex:0 0 80px;width:80px;height:80px;padding:0;border:0;border-radius:12px;overflow:hidden;background:#f3f4ec;cursor:zoom-in}.mtm-product-image img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.mtm-product>div{width:calc(100% - 94px);max-width:calc(100% - 94px)}@media(max-width:760px){.mtm-product-image{flex-basis:72px;width:72px;height:72px}.mtm-product>div{width:calc(100% - 86px);max-width:calc(100% - 86px)}}
/* 2026-10-28：原价/活动价支持行内改价后，这两列必须容得下「输入框 + 两个 32px 按钮」，
   固定像素列宽比百分比可靠（百分比在 900px 表宽下只有 90px，输入框会被挤成竖条）。 */
.mtm-promotions-table{width:100%;table-layout:fixed;min-width:940px}
.mtm-promotions-table th:nth-child(1){width:auto}
.mtm-promotions-table th:nth-child(2),.mtm-promotions-table th:nth-child(3){width:118px}
.mtm-promotions-table th:nth-child(4){width:200px}
.mtm-promotions-table th:nth-child(5){width:112px}
.mtm-promotions-table th:nth-child(6){width:96px}.mtm-promotions-table td{overflow-wrap:anywhere}.mtm-promotion-product{display:flex;align-items:center;gap:12px;min-width:0}.mtm-promotion-product .mtm-product-image,.mtm-promotion-product .mtm-image-empty{flex:0 0 64px;width:64px;height:64px}.mtm-promotion-product>div{min-width:0;max-width:100%}.mtm-promotion-product strong{display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.mtm-sort-form{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:nowrap}.mtm-sort-form input{width:72px;min-width:64px;min-height:34px;padding:5px 7px;text-align:center}.mtm-sort-form .mtm-icon-btn{width:28px;height:28px;flex:0 0 28px}.mtm-sort-form.is-saving input{opacity:.62;cursor:progress}.mtm-sort-form.is-saving .mtm-icon-btn{opacity:.45;cursor:progress}
.mtm-product-visual{display:flex;flex:0 0 80px;flex-direction:column;align-items:center;gap:6px;min-width:0}.mtm-product>div.mtm-product-visual{width:auto;max-width:none;flex:0 0 80px}.mtm-product-visual>.badge{display:inline-flex;justify-content:center;max-width:80px;min-height:20px;padding:3px 6px;font-size:var(--fs-aux);line-height:1.2;text-align:center;white-space:normal}.mtm-product>div:not(.mtm-product-visual){width:calc(100% - 94px);max-width:calc(100% - 94px);min-width:0;flex:1}@media(max-width:760px){.mtm-product-visual,.mtm-product>div.mtm-product-visual{flex-basis:72px}.mtm-product-visual>.badge{max-width:72px}.mtm-product>div:not(.mtm-product-visual){width:calc(100% - 86px);max-width:calc(100% - 86px)}}
/* 商品表格行内编辑（标题 / 原价 / 活动价 / 库存）：输入框占一行，保存/取消两个按钮在下一行并排靠右 */
.mtm-products-table{min-width:1040px}
.mtm-table .mtm-inline-edit:not(.mtm-title-edit){display:grid;grid-template-columns:minmax(0,1fr) 32px 32px;align-items:center;justify-items:end;column-gap:6px;row-gap:6px;width:100%;max-width:none}
.mtm-table .mtm-inline-edit:not(.mtm-title-edit) input{box-sizing:border-box;grid-column:1 / -1;grid-row:1;width:100%;min-width:0;max-width:none;height:32px;min-height:32px;padding:0 8px;border:1px solid var(--line,#dfe5d9);border-radius:8px;font:inherit;font-size:var(--fs-body);line-height:1;color:inherit;background:#fff;text-align:right;font-variant-numeric:tabular-nums}
.mtm-table .mtm-inline-actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:6px;width:auto;white-space:nowrap;grid-row:2;grid-column:2 / -1;justify-self:end}
/* 兜底：旧缓存的前端模块里两个按钮是 .mtm-inline-edit 的直接子节点（没有 .mtm-inline-actions 包裹），
   也照样摆到第二行并排，不会再一上一下堆叠 */
.mtm-table .mtm-inline-edit:not(.mtm-title-edit) > .mtm-icon-btn:nth-of-type(1){grid-row:2;grid-column:2;justify-self:end}
.mtm-table .mtm-inline-edit:not(.mtm-title-edit) > .mtm-icon-btn:nth-of-type(2){grid-row:2;grid-column:3;justify-self:end}
.mtm-table .mtm-inline-edit .mtm-icon-btn{box-sizing:border-box;display:inline-grid;place-items:center;flex:0 0 32px;width:32px;min-width:32px;max-width:32px;height:32px;min-height:32px;max-height:32px;padding:0;border-radius:8px;aspect-ratio:1/1;line-height:0}
.mtm-table .mtm-inline-edit .mtm-icon-btn svg{width:15px;height:15px}
.mtm-pager{justify-content:flex-start;flex-wrap:wrap;color:#26352f}.mtm-page-total{white-space:nowrap}.mtm-page-size{width:auto;min-width:132px;padding:8px 12px}.mtm-page-controls{display:flex;align-items:center;gap:6px}.mtm-page-number{width:40px;height:40px;border:1px solid #d9ddd7;border-radius:4px;background:#fff;color:#26352f;font:inherit;cursor:pointer}.mtm-page-number.active{background:#26352f;color:#fff;border-color:#26352f}.mtm-page-number:disabled{cursor:default;opacity:.5}.mtm-page-ellipsis{padding:0 8px}.mtm-page-jump{display:flex;align-items:center;gap:8px;margin-left:auto}.mtm-page-jump label{display:flex;align-items:center;gap:8px;white-space:nowrap}.mtm-page-jump input{width:110px}.mtm-category-sort{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:7px}.mtm-category-sort .mtm-icon-btn{flex:0 0 30px}.mtm-category-sort label{display:flex;align-items:center;gap:7px;color:var(--muted,#87927e);font-size:var(--fs-control)}.mtm-category-sort input{width:56px;min-height:30px;padding:4px 7px}.mtm-category-sort .mtm-icon-btn{width:30px;height:30px;border-radius:6px}.mtm-category-sort .mtm-icon-btn svg{width:15px;height:15px}.mtm-history-table{width:100%;min-width:520px;table-layout:fixed}.mtm-history-table th:nth-child(1){width:11%}.mtm-history-table th:nth-child(2){width:28%}.mtm-history-table th:nth-child(3){width:13%}.mtm-history-table th:nth-child(4){width:34%}.mtm-history-table th:nth-child(5){width:14%}.mtm-history-table td{max-width:none;white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top;font-size:var(--fs-control);line-height:1.65}.mtm-history-table td:first-child{max-width:none;white-space:nowrap}.mtm-history-table td:last-child{white-space:normal}.mtm-history-time>span{display:block;font-variant-numeric:tabular-nums}.mtm-history-time .mtm-cell-sub{margin-top:2px;font-variant-numeric:tabular-nums}.mtm-history-field{display:inline-block;max-width:100%;padding:2px 8px;border-radius:999px;background:#f3f4ec;color:#4b5a51;font-size:var(--fs-control);line-height:1.6;overflow-wrap:anywhere}.mtm-history-diff .mtm-diff-before{display:block;color:#8a9384;text-decoration:line-through;text-decoration-thickness:1px;overflow-wrap:anywhere}.mtm-history-diff .mtm-diff-arrow{display:block;font-size:var(--fs-aux);line-height:1.25;color:#a8b0a2}.mtm-history-diff .mtm-diff-after{display:block;color:#26352f;font-weight:500;overflow-wrap:anywhere}.mtm-history-thumbs{display:flex;flex-wrap:wrap;gap:6px}.mtm-history-thumb{width:52px;height:52px;padding:0;border:1px solid #e2e7db;border-radius:8px;overflow:hidden;background:#f7f9f3;cursor:zoom-in}.mtm-history-thumb img{display:block;width:100%;height:100%;object-fit:cover}.mtm-history-thumbs.is-before .mtm-history-thumb{border-style:dashed;opacity:.6;filter:grayscale(1)}.mtm-history-thumb-more{display:grid;place-items:center;width:52px;height:52px;border-radius:8px;background:#f3f4ec;color:#87927e;font-size:var(--fs-control)}.mtm-history-source{color:#5c6b62;font-size:var(--fs-control)}.mtm-history-meta{margin:14px 0 0;font-size:var(--fs-control);color:#8a9384}@media(max-width:760px){.mtm-history-table{min-width:460px}.mtm-history-table th:nth-child(1){width:13%}.mtm-history-table th:nth-child(2){width:30%}.mtm-history-table th:nth-child(3){width:14%}.mtm-history-table th:nth-child(4){width:31%}.mtm-history-table th:nth-child(5){width:12%}}

/* 商品列表的变更提示条：美团端有调整时出现，同步完成后自动消失 */
.mtm-status{display:flex;flex:none;align-items:center;gap:7px;width:100%;margin:0;height:20px;font-size:var(--fs-control);line-height:20px;color:var(--muted,#87927e);overflow:hidden;white-space:nowrap}
.mtm-status-dot{flex:none;width:7px;height:7px;border-radius:50%;background:#c6cdbb}
.mtm-status-text{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* idle 不显示文字，但必须保留这 20px 占位：整行消失会让下面整张表上下顶动，就是页面抖动的根因。 */
.mtm-status[data-tone=idle]{visibility:hidden}
.mtm-status[data-tone=busy]{color:var(--accent,#355849)}
.mtm-status[data-tone=busy] .mtm-status-dot{background:#5f9e6b;animation:mtm-pulse 1.4s ease-in-out infinite}
.mtm-status[data-tone=warn]{color:#8a5a00}
.mtm-status[data-tone=warn] .mtm-status-dot{background:#f5a623;box-shadow:0 0 0 3px rgba(245,166,35,.18)}
@keyframes mtm-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.mtm-frozen{opacity:.45;pointer-events:none;transition:opacity .12s}
.mtm-content[aria-busy=true] .mtm-table{opacity:.6;transition:opacity .12s}
.mtm-suggest{position:fixed;z-index:1200;max-height:300px;overflow:auto;padding:6px;border:1px solid var(--line,#dfe5d9);border-radius:10px;background:#fff;box-shadow:0 14px 36px rgba(24,32,27,.16)}
.mtm-suggest-item{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:7px;cursor:pointer;color:var(--ink,#25352d);font-size:var(--fs-body);line-height:1.5}
.mtm-suggest-item:hover,.mtm-suggest-item.active{background:#f1f5eb}
.mtm-suggest-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mtm-suggest-foot{padding:6px 9px 2px;margin-top:4px;border-top:1px solid #f0f3ea;font-size:var(--fs-control);color:var(--muted,#87927e)}
@media(max-width:520px){.mtm-suggest{max-height:240px}}

/* 商品表按 SPU 拆成了多个 <tbody>（同一商品的多规格用 rowspan 合并首列），
   而公共样式 .data-table tr:last-child td{border-bottom:0} 会在**每个 tbody 的末行**生效，
   结果商品与商品之间没有分隔线，只有每个商品的规格之间有线。
   这里把「去底线」收紧到整张表的最后一行，商品表就和折扣活动表一样逐行有线了。 */
.mtm-table tbody tr:last-child td{border-bottom:1px solid #eef1e9}
.mtm-table tbody:last-of-type tr:last-child td,
.mtm-table tbody:last-of-type tr:first-child td[rowspan]{border-bottom:0}
/* 调整记录里「本系统补记」的来源徽标：美团端不记录折扣活动，这些行是我们自己补的，必须看得出来。 */
.mtm-origin-badge{display:inline-block;padding:1px 7px;border-radius:999px;background:#eef3e6;color:#5d7350;font-size:var(--fs-aux);line-height:1.7;white-space:nowrap}
/* 调价来源三态：谁动的这一笔必须一眼看出来（美团后台人工 / 本系统人工 / AI 自动）。
   颜色只做区分不做强调，避免整张表花掉；认不出来源的留灰，不猜。 */
.mtm-origin-badge[data-kind="meituan_manual"]{background:#eef3e6;color:#5d7350}
.mtm-origin-badge[data-kind="florbuddy_manual"]{background:#e7eef8;color:#3d5b83}
.mtm-origin-badge[data-kind="florbuddy_ai"]{background:#f1e9f8;color:#66458a}
.mtm-origin-badge[data-kind="unknown"]{background:#f1f0ec;color:#6d6a63}

.mtm-diff-before.is-empty{color:#b3bda9;text-decoration:none}
.mtm-product-workspace{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}.mtm-product-main-area{min-width:0}.mtm-category-nav{position:sticky;top:16px;align-self:start;padding:14px 12px;border:1px solid var(--line,#dfe5d9);border-radius:12px;background:var(--paper,#fff)}.mtm-category-head{display:flex;align-items:center;justify-content:space-between;padding:2px 7px 12px;color:var(--accent,#355849);font-size:var(--fs-control)}.mtm-category-item{display:flex;align-items:center;width:100%;min-height:38px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink,#25352d);text-align:left;font:inherit;font-size:var(--fs-control);cursor:pointer}.mtm-category-item:hover{background:#f4f7f3}.mtm-category-item.active{background:#edf3e9;color:var(--accent,#355849);font-weight:600}.mtm-category-item.child{padding-left:25px;color:var(--muted,#748078)}.mtm-category-item.child.active{color:var(--accent,#355849)}.mtm-category-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtm-category-note{margin:12px 7px 2px;padding-top:10px;border-top:1px solid var(--line,#dfe5d9);font-size:var(--fs-aux);line-height:1.5;color:var(--muted,#87927e)}.mtm-mobile-category-bar{display:none}.mtm-category-scrim{display:none}
.mtm-filters select[name="tagId"]{display:none}
.mtm-category-drawer{display:none}
.mtm-product-workspace.is-collapsed{grid-template-columns:minmax(0,1fr)}.mtm-product-workspace.is-collapsed>.mtm-category-nav:not(.mtm-category-drawer){display:none}.mtm-category-expand,.mtm-category-mobile-open{display:none}.mtm-product-workspace.is-collapsed .mtm-category-expand{display:inline-flex}.mtm-category-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 7px 0;padding-top:10px;border-top:1px solid var(--line,#dfe5d9);color:var(--muted,#87927e);font-size:var(--fs-aux)}.mtm-category-foot .text-btn{font-size:var(--fs-aux);white-space:nowrap}.mtm-category-group{border-radius:8px}.mtm-category-group[draggable="true"]{cursor:grab}.mtm-category-group[draggable="true"] .mtm-category-group-row{display:flex;align-items:center;gap:4px}.mtm-category-group-row .mtm-category-item{flex:1;min-width:0}.mtm-category-drag{flex:0 0 24px;text-align:center;color:var(--muted,#87927e);font-size:20px;cursor:grab;user-select:none}.mtm-category-group.dragging{opacity:.45}.mtm-category-group.drag-over{outline:2px dashed var(--accent,#355849)}.mtm-category-item:disabled{cursor:default;color:var(--ink,#25352d);opacity:1}
.mtm-product-workspace.is-collapsed .mtm-mobile-category-bar{display:flex;margin-bottom:10px}
@media(max-width:980px) and (min-width:761px){.mtm-product-workspace{grid-template-columns:185px minmax(0,1fr);gap:12px}.mtm-category-nav{padding:11px 8px}.mtm-category-item{padding-left:8px;padding-right:8px}}
@media(max-width:760px){.mtm-product-workspace,.mtm-product-workspace.is-collapsed{display:block}.mtm-product-workspace.is-collapsed .mtm-category-expand{display:none}.mtm-category-mobile-open{display:inline-flex}.mtm-category-nav:not(.mtm-category-drawer){display:none}.mtm-mobile-category-bar{display:flex;margin:0 0 10px}.mtm-mobile-category-bar .btn{min-height:38px}.mtm-category-drawer{display:block;position:fixed;z-index:1301;inset:0 auto 0 0;width:min(320px,86vw);padding:18px 14px;border-radius:0 16px 16px 0;background:var(--paper,#fff);box-shadow:12px 0 40px rgba(0,0,0,.16);overflow:auto;transform:translateX(-105%);transition:transform .2s ease}.mtm-category-drawer.open{transform:translateX(0)}.mtm-category-scrim.open{display:block;position:fixed;z-index:1300;inset:0;background:rgba(20,29,24,.42)}.mtm-category-drawer .mtm-category-note{margin-top:14px}}
.mtm-category-toggle{display:grid;place-items:center;flex:none;width:40px;height:40px;margin-right:4px;padding:0;border:1px solid var(--line,#dfe5d9);border-radius:10px;background:#fff;color:var(--accent,#355849);cursor:pointer;box-shadow:0 2px 8px rgba(32,55,42,.08)}.mtm-category-toggle:hover{background:#f3f6f2}.mtm-category-toggle:focus-visible{outline:2px solid var(--accent,#355849);outline-offset:2px}.mtm-category-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.mtm-category-sort-toggle{padding:5px 7px;font-size:var(--fs-aux);white-space:nowrap}.mtm-product-workspace.is-collapsed .mtm-mobile-category-bar{display:none}.mtm-category-expand{display:none!important}@media(max-width:760px){.mtm-category-toggle{display:none}}
.mtm-page{gap:6px}.mtm-connection{gap:10px;padding:14px 18px}.mtm-connection>div:first-child{gap:8px 10px}.mtm-connection-actions{gap:8px}.mtm-kpi{gap:11px}.mtm-content .tabs{margin-bottom:14px}.mtm-filters{margin-bottom:14px}

/* 分类栏「新建」的内联表单：侧栏本身只有 222px，弹 modal 会更挤，所以就地展开两行。 */
.mtm-category-new-toggle{margin-right:8px}
.mtm-category-create{display:grid;gap:8px;margin:4px 0 10px;padding:10px;border:1px solid #e6ebdf;border-radius:10px;background:#f7f9f4}
.mtm-category-create label{display:grid;gap:4px;font-size:var(--fs-aux);color:#6b7a60}
.mtm-category-create .field{width:100%;box-sizing:border-box}
.mtm-category-create-actions{display:flex;gap:8px;justify-content:flex-end}
.mtm-category-create-actions .btn{flex:0 0 auto}

/* 业务检查紧邻连接状态；读取状态在最近同步卡片内呈现。 */
.mtm-check-info{display:inline-flex;align-items:center;width:auto;margin:0;font-size:var(--fs-control);line-height:1.5;white-space:normal}
/* 门店档案行（真实店名/城市/地址/电话）：地址可能很长，单行截断，完整内容在 title 里 */
.mtm-profile{display:block;width:100%;margin:0;min-width:0;font-size:var(--fs-control);line-height:1.5;color:var(--muted,#87927e);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------------------------------------------------------------------------
   商品状态页签（全部 / 售卖中 / 已售罄 / 已下架）+ 批量操作条（2026-10-29）
   页签数字跟着状态变红（已售罄/已下架的 0 也照样显示，用户要的就是「确实没有」）；
   批量条常驻占位，勾选前后高度不变，避免勾一个就往下顶一行。
--------------------------------------------------------------------------- */
.mtm-status-tabs{display:flex;align-items:stretch;gap:2px;margin-bottom:12px;border-bottom:1px solid var(--line,#dfe5d9);overflow-x:auto;scrollbar-width:none}
.mtm-status-tabs::-webkit-scrollbar{display:none}
.mtm-status-tab{position:relative;flex:0 0 auto;min-height:42px;padding:0 16px;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink,#25352d);font:inherit;font-size:var(--fs-body);line-height:42px;white-space:nowrap;cursor:pointer}
.mtm-status-tab:hover{color:var(--accent,#355849)}
.mtm-status-tab.active{border-bottom-color:var(--accent,#355849);color:var(--accent,#355849);font-weight:600}
.mtm-status-tab b{margin-left:4px;color:#c8362b;font-weight:600;font-variant-numeric:tabular-nums}
.mtm-status-tab.active b{color:#c8362b}
.mtm-status-tab:focus-visible{outline:2px solid var(--accent,#355849);outline-offset:-3px;border-radius:6px}
.mtm-bulk{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:44px;margin-bottom:12px;padding:6px 10px;border:1px solid var(--line,#dfe5d9);border-radius:10px;background:#fafbf7}
.mtm-bulk-all{display:inline-flex;align-items:center;gap:7px;color:var(--ink,#25352d);font-size:var(--fs-control);white-space:nowrap;cursor:pointer}
.mtm-bulk-all input,.mtm-row-check{width:16px;height:16px;margin:0;accent-color:var(--accent,#355849);cursor:pointer}
.mtm-bulk-all input:disabled,.mtm-row-check:disabled{cursor:default;opacity:.5}
.mtm-bulk-count{font-size:var(--fs-control);color:var(--muted,#87927e);white-space:nowrap}
.mtm-bulk-count b{color:var(--accent,#355849);font-weight:600;font-variant-numeric:tabular-nums}
.mtm-bulk-clear{padding:0 2px;font-size:var(--fs-control)}
.mtm-bulk-clear[hidden]{display:none}
.mtm-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mtm-bulk-actions .btn{min-height:32px;padding:5px 14px;font-size:var(--fs-control)}
.mtm-bulk-stock{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-basis:100%;padding-top:8px;border-top:1px dashed #e3e8dc}
/* 批量改分类的表单：结构与批量改库存同一套版式，只是多了两个下拉 */
.mtm-bulk-category{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-basis:100%;padding-top:8px;border-top:1px dashed #e3e8dc}
.mtm-bulk-category label{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-control);color:var(--muted,#87927e)}
.mtm-bulk-category select{min-height:32px;padding:4px 8px;max-width:220px}
.mtm-bulk-category .btn{min-height:32px;padding:5px 12px;font-size:var(--fs-control)}
.mtm-bulk-stock label{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-control);color:var(--muted,#87927e)}
.mtm-bulk-stock input{width:150px;min-height:32px;padding:4px 8px}
.mtm-bulk-stock .btn{min-height:32px;padding:5px 12px;font-size:var(--fs-control)}
.mtm-bulk-hint{flex-basis:100%;color:var(--muted,#87927e);font-size:var(--fs-aux)}
/* 力荐弹层：两张并排的单选卡片（对齐美团后台那套「点卡片选方式」的交互，
   但配色跟着本应用走 —— 选中态用品牌绿描边，不是美团的橙色）。
   单选圆点视觉上隐藏、逻辑上保留：键盘左右键、读屏、表单 FormData 都还能正常用。 */
.mtm-recommend-state{margin:0 0 12px;font-size:var(--fs-caption);line-height:1.6;color:var(--muted,#87927e)}
.mtm-recommend-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mtm-recommend-card{position:relative;display:block;padding:12px 14px;border:1px solid var(--line,#e9ece5);border-radius:12px;background:var(--white,#fff);cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.mtm-recommend-card:hover{border-color:#c9d3c4}
.mtm-recommend-card input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.mtm-recommend-card-body{display:flex;flex-direction:column;gap:5px;min-width:0}
.mtm-recommend-card b{font-size:var(--fs-body);font-weight:600;color:var(--ink,#23302a)}
.mtm-recommend-card small{font-size:var(--fs-caption);line-height:1.5;color:var(--muted,#87927e)}
.mtm-recommend-card:has(input:checked){border-color:var(--green,#355849);background:#f7faf6;box-shadow:inset 0 0 0 1px var(--green,#355849)}
.mtm-recommend-card:has(input:focus-visible){outline:2px solid var(--green,#355849);outline-offset:2px}
.mtm-recommend-hint{margin:10px 0 0;font-size:var(--fs-caption);line-height:1.6;color:#a7796b}
.mtm-recommend-hint:empty{display:none}
@media(max-width:640px){.mtm-recommend-modes{grid-template-columns:1fr}}
/* 商品列最左侧的勾选框：与图片顶部对齐（多规格 rowspan 时也贴在第一规格上） */
.mtm-product-wrap{display:flex;align-items:flex-start;gap:10px;width:100%;min-width:0}
.mtm-product-wrap>.mtm-row-check{flex:0 0 16px;margin-top:6px}
.mtm-product-wrap>.mtm-product{flex:1;min-width:0;width:auto;max-width:none}
.mtm-product-wrap>.mtm-product>div:not(.mtm-product-visual){width:calc(100% - 94px);max-width:calc(100% - 94px)}
@media(max-width:760px){.mtm-status-tab{min-height:38px;padding:0 11px;line-height:38px}.mtm-bulk{gap:8px;padding:8px}.mtm-bulk-actions{flex-basis:100%}.mtm-bulk-actions .btn{flex:1;min-height:36px}.mtm-bulk-stock input{width:100%}.mtm-bulk-category{flex-basis:100%}.mtm-bulk-category label{flex:1;min-width:0}.mtm-bulk-category select{width:100%;max-width:none}}

/* 商品行的「力荐」徽标（2026-10-29）：门店级标签，用暖橙 + 星号跟上下架/售卖时效的绿黄蓝红区分开 */
.badge.mtm-recommend-badge{background:#fdf0e2;color:#b0731f;gap:4px}
.badge.mtm-recommend-badge::before{content:'\2605';font-size:.85em;line-height:1}
@media(max-width:760px){.badge.mtm-recommend-badge{padding:3px 6px}}

/* 平台活动（美团招商中心邀约）列表：每个活动是一块可折叠卡片，展开后是商品明细表 */
.mtm-invites{display:flex;flex-direction:column;gap:10px}
.mtm-invite{border:1px solid #e8ebdf;border-radius:12px;background:#fff;overflow:hidden}
.mtm-invite-head{display:flex;align-items:flex-start;gap:10px;width:100%;padding:12px 14px;text-align:left;background:transparent;border:0;cursor:pointer;font:inherit;color:inherit}
.mtm-invite-head:hover{background:#fafbf6}
.mtm-invite-caret{flex:0 0 auto;width:0;height:0;margin-top:7px;border-left:6px solid #8a9781;border-top:5px solid transparent;border-bottom:5px solid transparent;transition:transform .15s ease}
.mtm-invite-caret.is-open{transform:rotate(90deg)}
.mtm-invite-title{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.mtm-invite-title>strong{font-size:var(--fs-body);line-height:1.5;font-weight:500;overflow-wrap:anywhere}
.mtm-invite-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.mtm-invite-meta small{font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-invite-body{border-top:1px solid #eef0e6;padding-bottom:4px}
.mtm-invite-table{border:0}
/* 2026-10-29：活动商品明细的原价 / 活动价 / 每日库存 / 每日限购四列支持双击改值。
   与折扣活动表同理，这三列要容得下「输入框 + 两个 32px 按钮」；固定列宽比 auto 稳，
   否则第一次双击时整列会被输入框挤得跳一下。 */
.mtm-invite-table{width:100%;table-layout:fixed;min-width:880px}
.mtm-invite-table th:nth-child(1){width:auto}
.mtm-invite-table th:nth-child(2),.mtm-invite-table th:nth-child(3){width:118px}
.mtm-invite-table th:nth-child(4),.mtm-invite-table th:nth-child(5){width:112px}
.mtm-invite-note{margin:10px 14px;font-size:var(--fs-aux);color:var(--muted,#87927e);line-height:1.7}
.mtm-invite-note.is-error{color:#bd7167}
.mtm-invite-bar{flex-wrap:wrap;gap:8px;align-items:center}
.mtm-invite-fetched{margin-left:auto;font-size:var(--fs-aux);color:var(--muted,#87927e)}
@media(max-width:760px){.mtm-invite-head{padding:10px 12px}.mtm-invite-fetched{margin-left:0;flex-basis:100%}}

/* 平台活动下的两个子页签：店铺活动 / 报名活动。
   比主 tabs 小一号，用「分段控件」的样子，避免和上面五个主页签抢视觉。 */
.mtm-act-head{margin-bottom:12px}
.mtm-act-scope{display:inline-flex;gap:2px;padding:3px;border:1px solid #e6ebdf;border-radius:9px;background:#f7f9f4}
.mtm-act-scope-btn{min-height:32px;padding:5px 16px;border:0;border-radius:7px;background:transparent;color:#6d7a64;font:inherit;font-size:var(--fs-control);cursor:pointer;white-space:nowrap}
.mtm-act-scope-btn:hover{color:var(--accent,#355849)}
.mtm-act-scope-btn.active{background:#fff;color:var(--accent,#355849);font-weight:500;box-shadow:0 1px 2px rgba(53,88,73,.12)}
.mtm-act-bar{flex-wrap:wrap;gap:8px;align-items:center}
.mtm-act-chips{display:flex;flex-wrap:wrap;gap:6px}
.mtm-act-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 11px;border:1px solid #e6ebdf;border-radius:999px;background:#fff;color:#6d7a64;font:inherit;font-size:var(--fs-aux);cursor:pointer}
.mtm-act-chip span{font-variant-numeric:tabular-nums;color:#8a9781}
.mtm-act-chip:hover:not(:disabled){border-color:#cfd9c4;color:var(--accent,#355849)}
.mtm-act-chip.active{border-color:var(--accent,#355849);background:#f1f5eb;color:var(--accent,#355849);font-weight:500}
.mtm-act-chip.active span{color:var(--accent,#355849)}
.mtm-act-chip:disabled{opacity:.55;cursor:default}
.mtm-act-table th:first-child{width:auto}
.mtm-act-table th:nth-child(2){width:110px}
.mtm-act-table th:nth-child(3){width:210px}
.mtm-act-table th:nth-child(4){width:90px}
@media(max-width:760px){.mtm-act-scope{width:100%}.mtm-act-scope-btn{flex:1}.mtm-act-fetched,.mtm-act-bar .mtm-invite-fetched{margin-left:0;flex-basis:100%}}

/* 报名活动内部再分「待报名 / 已报名」：chip 复用上面那套，外层只负责排成一行。
   chip 是「切视图」，右边的按钮是「对当前视图做操作」—— 加一条竖线把两种语义分开，
   否则「待报名 6 已报名 1 全部展开」会连成一串，看不出哪个是切换哪个是动作。 */
.mtm-invite-scope-row{flex-wrap:wrap;gap:8px;align-items:center}
.mtm-invite-scope-row .mtm-act-chips{flex:0 0 auto;padding-right:10px;border-right:1px solid #e6ebdf}
.mtm-invite-scope-row .mtm-invite-fetched{margin-left:auto}
/* 待报名表的列宽与店铺活动表不同（多一列「包含」、少一列「数量」）：
   活动名要宽，报名状态/报名方式固定窄，包含那列给商品名列表留出可读宽度。 */
.mtm-pending-table th:nth-child(2){width:110px}
.mtm-pending-table th:nth-child(3){width:200px}
.mtm-pending-table th:nth-child(4){width:130px}
.mtm-pending-table th:nth-child(5){width:220px}
.mtm-pending-table td .badge{margin-right:4px}
.mtm-pending-table td small .badge{margin-top:4px}
.mtm-hot-badge{margin-left:6px;background:#fdeaea;color:#b4433a}
.mtm-pending-social{color:var(--muted,#87927e);margin-left:8px}
@media(max-width:760px){.mtm-invite-scope-row .mtm-invite-fetched{margin-left:0;flex-basis:100%}}

/* ===========================================================================
   推广（广告投放）
   ---------------------------------------------------------------------------
   一页四问，问谁看谁：概览（今天花了多少）/ AI 托管（系统打算怎么调）/
   定向设置（加价配在哪）/ 改价历史（谁改过价）。
   以前是「六张等宽 KPI 卡 + 计划卡 + 托管大卡 + 日志表 + 九格定向」堆一页，
   每个数字一样大 = 没有重点；日志表十几行把定向顶到屏幕外。所以这里：
   · 主数（花费 + 占比）独占一块大字号，其它数字降成一条横带；
   · 占比用「进度 + 参照刻度」，看一眼就知道有没有越线，不用心算；
   · 子标签只在推广页内切换，不影响其它标签的数据。
   数字统一 tabular-nums —— 出价/余额/花费会频繁刷新，等宽数字才不会左右抖。
   =========================================================================== */
.mtm-ad-warn{border-left:3px solid #d9a441;background:#fdf8ec}

/* 顶部计划条：状态、计划元信息、三个主操作收在一行 */
.mtm-ad-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:14px 0 0}
.mtm-ad-head-main{display:grid;gap:6px;min-width:0}
.mtm-ad-head-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mtm-ad-head-title strong{font-size:var(--fs-h2);font-weight:500;letter-spacing:-.01em}
.mtm-ad-head-meta{display:flex;gap:16px;flex-wrap:wrap;margin:0;font-size:var(--fs-aux);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
.mtm-ad-head-actions{display:flex;gap:8px;flex-wrap:wrap}

/* 子标签：轻量分段控件，和主标签（商品/活动/推广…）不是一层东西，不能长一样 */
.mtm-ad-tabs{display:flex;gap:4px;margin:16px 0 14px;padding:4px;border:1px solid #e6ebdf;border-radius:10px;background:#f6f8f2;overflow-x:auto}
.mtm-ad-tab{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 14px;border:0;border-radius:7px;background:transparent;color:#6f7d66;font:inherit;font-size:var(--fs-control);white-space:nowrap;cursor:pointer;transition:.18s}
.mtm-ad-tab:hover{color:var(--accent,#355849)}
.mtm-ad-tab.active{background:#fff;color:var(--accent,#355849);font-weight:500;box-shadow:0 1px 2px rgba(53,88,73,.08)}
.mtm-ad-tab em{font-style:normal;font-size:var(--fs-aux);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}

/* 今日推广：一块主区（花费 + 占比条）+ 三项派生指标 */
.mtm-ad-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;padding:20px 22px;border:1px solid #e6ebdf;border-radius:14px;background:#fff}
.mtm-ad-hero-label{font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-hero-line{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:6px 0 12px}
.mtm-ad-hero-line strong{font-size:32px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--accent,#355849)}
.mtm-ad-hero-line em{font-style:normal;font-size:var(--fs-control);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
/* 超参照线转红：不是硬阈值，是「今天花得比说好的多」的即时提示。 */
.mtm-ad-hero-line em.over{color:#b4433a}
.mtm-ad-ratio{position:relative;height:6px;border-radius:3px;background:#eef1e9;overflow:hidden}
.mtm-ad-ratio i{display:block;height:100%;border-radius:3px;background:#8aa87e;transition:width .3s}
.mtm-ad-ratio.over i{background:#c4736a}
.mtm-ad-ratio-mark{position:absolute;top:-2px;bottom:-2px;width:2px;background:#6b7d63;opacity:.55}
.mtm-ad-hero-hint{margin:8px 0 0;font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-hero-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;align-content:center}
.mtm-ad-hero-side div{display:grid;gap:4px}
.mtm-ad-hero-side dt{font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-hero-side dd{margin:0;font-size:var(--fs-h3);font-weight:500;font-variant-numeric:tabular-nums;color:var(--accent,#355849)}
.mtm-ad-hero-side dd small{display:block;font-size:var(--fs-aux);font-weight:400;color:var(--muted,#87927e)}

/* 四个常看的数：一条横带，不用四张卡 —— 卡一多，上面的主数就不主了 */
.mtm-ad-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:12px 0 0;padding:14px 20px;border:1px solid #eef1e9;border-radius:12px;background:#fbfcf9}
.mtm-ad-facts div{display:grid;gap:3px}
.mtm-ad-facts dt{font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-facts dd{margin:0;font-size:var(--fs-h3);font-weight:500;font-variant-numeric:tabular-nums;color:var(--accent,#355849)}
.mtm-ad-facts dd small{display:block;font-size:var(--fs-aux);font-weight:400;color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
.mtm-ad-note{margin:10px 0 0;font-size:var(--fs-aux);color:var(--muted,#87927e);line-height:1.5}

/* 概览里的托管摘要条：只回答「开没开 / 学了几轮 / 怎么开或停」，详情去标签页 */
.mtm-ad-learn-mini{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:14px 0 0;padding:14px 18px;border:1px solid #e6ebdf;border-radius:12px;background:#fff}
.mtm-ad-learn-mini-copy{display:grid;gap:4px;min-width:0;flex:1 1 320px}
.mtm-ad-learn-mini-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mtm-ad-learn-mini-title strong{font-size:var(--fs-body);font-weight:500}
.mtm-ad-learn-mini-title small{font-size:var(--fs-aux);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
.mtm-ad-learn-mini-copy p{margin:0;font-size:var(--fs-aux);color:var(--muted,#87927e);line-height:1.5}
.mtm-ad-learn-mini-copy p.mtm-ad-learn-mini-error{color:#b4433a}
.mtm-ad-learn-mini-act{display:flex;gap:8px;flex-wrap:wrap}
.mtm-ad-bid-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border-radius:10px;background:#f7f9f4}
.mtm-ad-bid-form label{display:flex;align-items:center;gap:8px;font-size:var(--fs-control)}
.mtm-ad-bid-form input{width:120px;min-height:36px;padding:6px 9px;border:1px solid var(--line,#dfe5d9);border-radius:8px;font:inherit;font-variant-numeric:tabular-nums;background:#fff}
.mtm-ad-bid-form input:focus{outline:none;border-color:var(--accent,#355849);box-shadow:0 0 0 3px rgba(53,88,73,.12)}
.mtm-ad-readonly{display:block;font-size:var(--fs-aux)}
.mtm-ad-block{margin-top:20px}
.mtm-ad-block-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.mtm-ad-block-head h3{margin:0;font-size:var(--fs-h3);font-weight:500}
.mtm-ad-block-head .muted{font-size:var(--fs-aux)}
.mtm-ad-history{min-width:760px}
.mtm-ad-history th:nth-child(1){width:130px}
.mtm-ad-history th:nth-child(2){width:150px}
.mtm-ad-history th:nth-child(3){width:190px}
/* 来源列：五列里唯一「不是美团给的」信息，所以给它固定宽度，别被挤成两截。 */
.mtm-ad-history th:nth-child(4){width:170px}
.mtm-history-source .mtm-origin-badge{display:inline-block}
.mtm-ad-history-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.mtm-ad-history-bar label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-history-bar .field{min-width:140px}
.mtm-ad-time{font-variant-numeric:tabular-nums;color:var(--muted,#87927e);white-space:nowrap}
.mtm-ad-change{font-variant-numeric:tabular-nums;font-weight:500}
.mtm-ad-change.on{color:var(--green,#3f7d4f)}
.mtm-ad-change.off{color:#b4433a}
.mtm-ad-change.muted{font-weight:400;color:var(--muted,#87927e)}
.mtm-ad-orients{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:10px}
/* 2026-10-30：卡片里开始放「每项加价 + 改价按钮」之后，180px 一列装不下了 ——
   四列（名称/价格/范围/按钮）挤进 180px 的结果是范围列被压成竖排单字。
   400px 是「名称 96 + 价格 84 + 范围 ≈140 + 按钮 60 + 内边距」的实际下限，
   再小就只能靠换行兜底，而换行会把一行价格拆成三行，比横向滚动更难读。 */
.mtm-ad-orient{display:grid;gap:4px;padding:12px 14px;border:1px solid #e6ebdf;border-radius:10px;background:#fafbf8}
.mtm-ad-orient strong{font-size:var(--fs-body);font-weight:500}
.mtm-ad-orient span{font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-orient small{font-size:var(--fs-aux);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
.mtm-ad-orient.is-on{border-color:#cfe0c0;background:#f4f8ee}
.mtm-ad-orient.is-on span{color:var(--green,#3f7d4f)}
/* 分组标题：与美团后台「资源加价 / 时间加价 / 人群加价 / 选品加价」四段对齐。
   不分组时九个维度平铺，运营没法把自己后台看到的那一段对上号。 */
.mtm-ad-orient-group{margin:0 0 12px}
.mtm-ad-orient-group:last-child{margin-bottom:0}
.mtm-ad-orient-group>h4{margin:0 0 8px;font-size:var(--fs-aux);font-weight:600;color:var(--accent,#355849);letter-spacing:.02em}
/* 副标题是美团的灰字原话（如「搜索资源位」下面的「搜索流量」），别再自己改写。 */
.mtm-ad-orient em.mtm-ad-orient-hint{font-style:normal;font-size:var(--fs-aux);line-height:1.3;color:var(--muted,#87927e)}
@media(max-width:1180px){
  .mtm-ad-hero{grid-template-columns:1fr;gap:16px}
  .mtm-ad-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
}
@media(max-width:760px){
  .mtm-ad-hero{padding:16px}
  .mtm-ad-hero-line strong{font-size:26px}
  .mtm-ad-hero-side{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mtm-ad-head-actions{width:100%}
  .mtm-ad-head-actions .btn{flex:1 1 auto}
  .mtm-ad-bid-form{flex-direction:column;align-items:stretch}
  .mtm-ad-bid-form input{width:100%}
  .mtm-ad-block-head{gap:6px}
  .mtm-ad-learn-mini{flex-direction:column;align-items:stretch}
}
.mtm-ad-orient-flag{margin:0 0 10px;font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-orient-flag b{color:var(--accent,#355849);font-weight:500}

/* ===========================================================================
   AI 推广托管（推广页内的一块）
   ---------------------------------------------------------------------------
   设计口径：
   - 三条业务红线必须始终可见（参照占比 / 上限占比 / 触顶只降价不停投），
     所以做成固定的四格摘要，而不是藏在「策略」弹窗里。
   - 「各档表现」和「最近决策」并排两栏：左边回答「哪个档更便宜」，
     右边回答「刚才为什么这么调」，同一屏能对照着看。
   - 决策理由是最长的一段文字，给它自适应宽度并允许换行，别截断成省略号 ——
     运营要靠这句话判断系统有没有犯傻。
   =========================================================================== */
.mtm-ad-learn-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.mtm-ad-learn-btn{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 12px;border:1px solid var(--line,#dfe5d9);border-radius:7px;background:#fff;color:var(--accent,#355849);font-size:var(--fs-aux);white-space:nowrap;cursor:pointer;transition:.2s}
.mtm-ad-learn-btn:hover:not(:disabled){border-color:var(--accent,#355849);background:#f6f8f2}
.mtm-ad-learn-btn:disabled{opacity:.5;cursor:not-allowed}
.mtm-ad-learn-caps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0 16px}
.mtm-ad-learn-caps>div{display:grid;gap:4px;padding:12px 14px;border:1px solid #e6ebdf;border-radius:10px;background:#fafbf8}
.mtm-ad-learn-caps span{font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-learn-caps strong{font-size:var(--fs-h3);font-weight:500;font-variant-numeric:tabular-nums;color:var(--accent,#355849)}
.mtm-ad-learn-caps small{font-size:var(--fs-aux);color:var(--muted,#87927e);line-height:1.4}
.mtm-ad-learn-result{border-left:3px solid #cfe0c0;background:#f6f9f2}
.mtm-ad-learn-grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;margin-top:18px}
.mtm-ad-learn-sub{margin:0 0 8px;font-size:var(--fs-body);font-weight:500}
.mtm-ad-learn-note{margin:10px 0 0;font-size:var(--fs-aux);color:var(--muted,#87927e);line-height:1.5}
.mtm-ad-learn-form{display:grid;gap:14px;margin:12px 0 4px;padding:16px;border:1px solid #e6ebdf;border-radius:12px;background:#fbfcf9}
.mtm-ad-learn-toggles{display:grid;gap:10px}
.mtm-ad-learn-toggles label{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"box title" "box hint";gap:2px 8px;align-items:start;font-size:var(--fs-control);cursor:pointer}
.mtm-ad-learn-toggles input{grid-area:box;margin-top:3px}
.mtm-ad-learn-toggles span{grid-area:title;font-weight:500}
.mtm-ad-learn-toggles small{grid-area:hint;font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.mtm-ad-learn-field{display:grid;gap:4px;font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-learn-field span{color:var(--text,#2f3a2c)}
.mtm-ad-learn-field input{min-height:36px;padding:6px 9px;border:1px solid var(--line,#dfe5d9);border-radius:8px;font:inherit;font-variant-numeric:tabular-nums;background:#fff}
.mtm-ad-learn-field input:focus{outline:none;border-color:var(--accent,#355849);box-shadow:0 0 0 3px rgba(53,88,73,.12)}
.mtm-ad-learn-arms-pick{display:flex;gap:18px;flex-wrap:wrap;margin:0;padding:10px 14px;border:1px solid #e6ebdf;border-radius:10px;background:#fff}
.mtm-ad-learn-arms-pick legend{padding:0 6px;font-size:var(--fs-aux);color:var(--muted,#87927e)}
.mtm-ad-learn-arms-pick label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-control);cursor:pointer}
.mtm-ad-learn-form-actions{display:flex;gap:10px;flex-wrap:wrap}
.mtm-ad-learn-arms{min-width:520px}
.mtm-ad-learn-arms th:nth-child(1){width:110px}
.mtm-ad-learn-arms th:nth-child(2){width:90px}
.mtm-ad-learn-decisions{min-width:640px}
.mtm-ad-learn-decisions th:nth-child(1){width:96px}
.mtm-ad-learn-decisions th:nth-child(2){width:112px}
.mtm-ad-learn-decisions th:nth-child(3){width:84px}
.mtm-ad-learn-decisions th:nth-child(5){width:150px}
.mtm-ad-learn-arm{display:grid;gap:2px}
.mtm-ad-learn-arm strong{font-weight:500}
.mtm-ad-learn-arm span{font-size:var(--fs-aux);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
.mtm-ad-learn-reason{line-height:1.5;min-width:220px}
.mtm-ad-learn-clamp{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:4px;background:#fdf8ec;color:#a59155;font-size:var(--fs-aux);white-space:nowrap}
/* 开关卡：整块推广托管的唯一入口。「未开启」故意用虚线框 —— 它不是一个状态面板，
   而是一个待办：店主还没做决定。开启后用实线 + 左侧色条表示「系统正在替你办事」。 */
.mtm-ad-learn-switch{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin:14px 0 4px;padding:18px 20px;border:1px solid #e6ebdf;border-radius:14px;background:#fafbf8}
.mtm-ad-learn-switch.off{border-style:dashed;border-color:#cfd9c6;background:#fbfcf9}
.mtm-ad-learn-switch.on{border-left:4px solid #355849}
.mtm-ad-learn-switch.on.tone-blue{border-left-color:#4a7bb5;background:#f7fafd}
.mtm-ad-learn-switch.on.tone-green{border-left-color:#2f7a4f;background:#f6faf7}
.mtm-ad-learn-switch-copy h4{margin:0 0 6px;font-size:var(--fs-h3);font-weight:500;color:var(--accent,#355849)}
.mtm-ad-learn-switch-copy p{margin:0 0 4px;font-size:var(--fs-control);color:var(--text,#2f3a2c);line-height:1.6;max-width:64ch}
.mtm-ad-learn-promise{margin-top:8px!important;font-size:var(--fs-aux)!important;color:var(--muted,#87927e)!important}
.mtm-ad-learn-progress{font-size:var(--fs-aux)!important;color:var(--muted,#87927e)!important;font-variant-numeric:tabular-nums}
/* 自动运行状态：这一行是「不用挂 crontab」的唯一可见证据，弱化但不能省。 */
.mtm-ad-learn-schedule{margin:2px 0 0;font-size:var(--fs-aux);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
.mtm-ad-learn-schedule::before{content:'↻ ';opacity:.7}
.mtm-ad-learn-switch-act{display:grid;gap:6px;justify-items:end}
.mtm-ad-learn-main{min-height:40px;padding:8px 20px;font-size:var(--fs-body)}
.mtm-ad-learn-checks{display:grid;gap:7px;margin:12px 0 0;padding:0;list-style:none}
.mtm-ad-learn-checks li{display:grid;grid-template-columns:16px 1fr;gap:8px;align-items:start;font-size:var(--fs-aux);color:var(--text,#2f3a2c);line-height:1.5}
.mtm-ad-learn-checks i{font-style:normal;font-weight:700;text-align:center}
.mtm-ad-learn-checks small{display:block;margin-top:2px;color:var(--muted,#87927e)}
.mtm-ad-learn-checks .lv-ok i{color:#3f7a44}
.mtm-ad-learn-checks .lv-warn i{color:#b08a2e}
.mtm-ad-learn-checks .lv-error,.mtm-ad-learn-checks .lv-error i{color:#a4382f}
@media(max-width:1080px){.mtm-ad-learn-caps{grid-template-columns:repeat(2,1fr)}.mtm-ad-learn-grid-2{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  .mtm-ad-learn-caps{grid-template-columns:1fr 1fr;gap:8px}
  .mtm-ad-learn-actions{margin-left:0;width:100%}
  .mtm-ad-learn-actions .mtm-ad-learn-btn{flex:1}
  .mtm-ad-learn-form{padding:12px}
  .mtm-ad-learn-arms,.mtm-ad-learn-decisions{min-width:0}
  .mtm-ad-learn-switch{grid-template-columns:minmax(0,1fr);padding:14px}
  .mtm-ad-learn-switch-act{justify-items:stretch}
  .mtm-ad-learn-main{width:100%}
}

/* ---- 推广走势与日报（2026-10-30）----
   图形全部是内联 SVG，不引 Chart.js：这里画的是店主每天都要看的一张图，
   不能因为境外 CDN 挂掉就整块消失。坐标在 JS 里算好，样式只管颜色和字号。 */
.mtm-ad-report .mtm-ad-block-head{align-items:baseline;flex-wrap:wrap}
.mtm-ad-report-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.mtm-ad-report-card{min-width:0;padding:12px 14px;border:1px solid var(--line,#e4e8dc);border-radius:10px;background:var(--surface,#fff)}
.mtm-ad-report-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.mtm-ad-report-head h4{margin:0;font-size:var(--fs-h3);font-weight:600;color:var(--text,#2f3a2c)}
.mtm-ad-report-head .muted{font-size:var(--fs-aux)}
.mtm-ad-chart svg{display:block;width:100%;height:auto;overflow:visible}
.mtm-ad-chart-grid{stroke:#eceee7;stroke-width:1}
/* 没采到数据的时段：铺一层浅底，让「这里空着」看起来是信息而不是渲染失败 */
.mtm-ad-chart-gap{fill:#f1f2ec}
.mtm-ad-chart-tick{fill:var(--muted,#87927e);font-size:var(--fs-aux);font-variant-numeric:tabular-nums}
.mtm-ad-chart-line{stroke-width:1.4;stroke-dasharray:6 5}
.mtm-ad-chart-line.target{stroke:#7d9b71}
.mtm-ad-chart-line.hard{stroke:#c4736a}
.mtm-ad-chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
.mtm-ad-chart-key{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-aux);color:var(--muted,#87927e);white-space:nowrap}
.mtm-ad-chart-key i{display:inline-block;width:22px;height:0;border-top:2px dashed #7d9b71}
.mtm-ad-chart-key i.hard{border-top-color:#c4736a}
.mtm-ad-chart-area{fill:rgba(125,155,113,.14);stroke:none}
.mtm-ad-chart-stroke{fill:none;stroke:#5d7a52;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.mtm-ad-chart-dot{fill:#5d7a52}
.mtm-ad-chart-note{margin:8px 0 0;font-size:var(--fs-aux);color:var(--muted,#87927e);line-height:1.5}
.mtm-ad-daily{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.mtm-ad-daily-row{display:grid;grid-template-columns:82px minmax(0,1fr) 64px 68px;gap:8px;align-items:center;padding:6px 4px;border-radius:6px;font-size:var(--fs-control);font-variant-numeric:tabular-nums}
.mtm-ad-daily-row.today{background:#f4f7ef}
.mtm-ad-daily-day{color:var(--muted,#87927e);display:flex;align-items:baseline;gap:4px;white-space:nowrap}
.mtm-ad-daily-day em{font-style:normal;font-size:var(--fs-caption);color:#5d7a52;font-weight:600}
.mtm-ad-daily-money{display:flex;align-items:baseline;gap:8px;min-width:0}
.mtm-ad-daily-money strong{font-weight:600;color:var(--text,#2f3a2c)}
.mtm-ad-daily-money small{color:var(--muted,#87927e);font-size:var(--fs-aux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtm-ad-daily-bar{position:relative;display:block;height:6px;border-radius:3px;background:#eef1e9;overflow:hidden}
.mtm-ad-daily-bar i{display:block;height:100%;border-radius:3px;background:#8aa87e}
.mtm-ad-daily-bar i.over{background:#c4736a}
.mtm-ad-daily-ratio{text-align:right;font-weight:600;color:var(--text,#2f3a2c)}
.mtm-ad-daily-ratio.over{color:#a4382f}
.mtm-ad-daily-none{color:var(--muted,#87927e);font-weight:400;font-size:var(--fs-aux);text-align:right;white-space:nowrap}
.mtm-ad-hours{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.mtm-ad-hour-row{display:grid;grid-template-columns:60px minmax(0,1fr) 96px;gap:10px;align-items:center;font-size:var(--fs-control);font-variant-numeric:tabular-nums}
.mtm-ad-hour-label{color:var(--muted,#87927e);display:flex;align-items:baseline;gap:4px}
.mtm-ad-hour-label em{font-style:normal;font-size:var(--fs-caption);color:#b08a2e}
.mtm-ad-hour-bar{display:block;height:10px;border-radius:5px;background:#f2f4ee;overflow:hidden}
.mtm-ad-hour-bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#9db78f,#7d9b71)}
.mtm-ad-hour-value{text-align:right;color:var(--text,#2f3a2c)}
.mtm-ad-hour-adj{display:block;font-style:normal;font-size:var(--fs-caption);color:#b08a2e}
.mtm-ad-hourly{min-width:0}
.mtm-ad-hourly td{padding-top:10px;padding-bottom:10px}
.mtm-ad-hourly .mtm-cell-sub{display:block;line-height:1.35;margin-top:1px}
@media(max-width:1080px){.mtm-ad-report-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  .mtm-ad-daily-row{grid-template-columns:74px minmax(0,1fr) 64px;gap:6px}
  .mtm-ad-daily-bar{display:none}
  .mtm-ad-hour-row{grid-template-columns:52px minmax(0,1fr) 84px;gap:8px}
}

/* ---- 定向加价手动编辑（2026-10-30）----
   每项一行：名字 · 当前价 · 可设范围 · 改价。
   只读维度不藏、也不灰按钮 —— 灰按钮会被读成「权限不够」，反复找人开权限；
   写清「为什么不能改」才能省掉那一轮沟通。 */
.mtm-ad-orient-base{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;margin:0 0 14px;border:1px solid var(--line,#e4e8dc);border-radius:10px;background:#f7faf3}
.mtm-ad-orient-base-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.mtm-ad-orient-base-copy strong{font-size:var(--fs-h3);font-weight:600;color:var(--text,#2f3a2c)}
.mtm-ad-orient-base .mtm-ad-orient-row-price{margin-left:auto}
.mtm-ad-orient-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.mtm-ad-orient-rows{display:grid;gap:2px;margin-top:8px;padding-top:8px;border-top:1px dashed #e8ece2}
.mtm-ad-orient-row{display:grid;grid-template-columns:minmax(96px,auto) 84px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 6px;border-radius:7px;font-size:var(--fs-control);font-variant-numeric:tabular-nums}
.mtm-ad-orient-row:hover{background:#f7f9f3}
.mtm-ad-orient-row-name{color:var(--text,#2f3a2c);overflow-wrap:anywhere}
.mtm-ad-orient-row-price{text-align:right;font-weight:600;color:var(--accent,#355849);white-space:nowrap}
.mtm-ad-orient-row small{color:var(--muted,#87927e);font-size:var(--fs-aux);line-height:1.5;overflow-wrap:anywhere}
.mtm-ad-orient-readonly{margin:4px 0 0;padding:5px 8px;border-radius:6px;background:#f4f2ec;color:#8a7c5f;font-size:var(--fs-aux);line-height:1.5}
.mtm-ad-orient-row.is-readonly{opacity:.85}
.mtm-ad-orient-row.is-readonly .mtm-ad-orient-row-price{color:var(--muted,#87927e);font-weight:500}
.mtm-ad-orient-row.is-editing{grid-template-columns:minmax(96px,auto) 110px minmax(0,1fr) auto auto;background:#f2f7ec}
.mtm-ad-orient-row.is-editing .field{min-height:34px;padding:5px 9px;text-align:right}
.mtm-ad-orient-row .mtm-ad-learn-btn{white-space:nowrap}
.mtm-ad-orient-empty{margin:2px 0;color:var(--muted,#87927e);font-size:var(--fs-aux)}
/* 用餐时段：工作日 / 周末两套分开列（2026-10-30）
   上游恒定返回 10 项（5 时段 × 2 套），而美团后台「区分工作日/周末」开关关闭时
   只显示 5 项 —— 平铺成 10 行会被读成「你们比美团多了 5 项」。 */
.mtm-ad-orient-sub{display:grid;gap:2px;margin-top:10px}
.mtm-ad-orient-sub:first-child{margin-top:0}
.mtm-ad-orient-sub h5{display:flex;align-items:baseline;gap:8px;margin:0 0 2px;padding:0 6px;font-size:var(--fs-aux);font-weight:600;color:var(--muted,#87927e);letter-spacing:.02em}
.mtm-ad-orient-sub h5 span{font-weight:400;opacity:.75}
.mtm-ad-orient-when{margin-left:8px;color:var(--muted,#87927e);font-size:var(--fs-aux);font-style:normal;white-space:nowrap}
.mtm-ad-orient-note{margin:6px 0 0;color:var(--muted,#87927e);font-size:var(--fs-aux);line-height:1.6}
@media(max-width:760px){
  .mtm-ad-orient-row{grid-template-columns:minmax(0,1fr) 72px auto;gap:8px}
  .mtm-ad-orient-row small{display:none}
  .mtm-ad-orient-row.is-editing{grid-template-columns:minmax(0,1fr) 88px auto auto}
  .mtm-ad-orient-row.is-editing small{display:none}
}

/* 推广目标两档：并排两张卡，各自带一句「差在哪」。
   只写「控占比 / 保曝光」两个词不够 —— 店主真正要知道的是「选了之后什么会变」。 */
.mtm-ad-learn-goal{margin:0;padding:12px 14px;border:1px solid var(--line,#e4e8dc);border-radius:10px;display:grid;gap:8px}
.mtm-ad-learn-goal legend{padding:0 6px;font-size:var(--fs-control);font-weight:600;color:var(--accent,#355849)}
.mtm-ad-learn-goal-item{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid var(--line,#e4e8dc);border-radius:9px;background:#fff;cursor:pointer;font-size:var(--fs-control)}
.mtm-ad-learn-goal-item:has(input:checked){border-color:#8fae7f;background:#f5f9f0}
.mtm-ad-learn-goal-item input{margin-top:3px;flex:none}
.mtm-ad-learn-goal-item span{display:grid;gap:2px;min-width:0;font-weight:600;color:var(--text,#2f3a2c)}
.mtm-ad-learn-goal-item small{font-weight:400;color:var(--muted,#87927e);font-size:var(--fs-aux);line-height:1.5}
.mtm-ad-learn-goal-note{margin:0;font-size:var(--fs-aux);color:var(--muted,#87927e);line-height:1.55}
.mtm-ad-learn-hours .mtm-ad-learn-field select.field{min-height:40px;width:100%}
/* 两个营业时间下拉必须等宽：select 的默认宽度随选项文字变化，
   「22:00」和「06:00」看着差不多，实际差 40px，并排放像没对齐。 */
.mtm-ad-bid-reason{flex:1 1 240px;min-width:180px}

/* 商品列表「美团实时」兜底结果：本地快照没搜到、但美团在线有货时，
   后端会在 /products 响应里附带 live 字段，前端把这些商品并入同一张表，
   标「实时」角标、置只读、背景微染，并提示已触发对应分类同步。 */
.mtm-live-banner{display:flex;gap:8px;align-items:flex-start;margin:0 0 12px;padding:10px 12px;border:1px solid #ffd9a8;background:#fff7ec;color:#7a4b00;border-radius:8px;font-size:13px;line-height:1.5}
.mtm-live-banner-dot{width:8px;height:8px;border-radius:50%;background:#ff7a00;margin-top:5px;flex:0 0 auto;animation:mtm-live-pulse 1.4s ease-in-out infinite}
@keyframes mtm-live-pulse{0%{opacity:.35}50%{opacity:1}100%{opacity:.35}}
.mtm-live-tbody{background:rgba(255,247,236,.55)}
.mtm-live-tbody .mtm-editable{pointer-events:none;cursor:default}
.mtm-live-tbody .mtm-status-actions{display:none}
.mtm-live-badge{background:#ff7a00;color:#fff;margin-right:6px;vertical-align:middle;font-size:11px;padding:1px 6px;border-radius:4px}

/* 美团推广效果 / 搜索与频道排名智能参考（2026-11-01） */
.mtm-ad-ranking{display:grid;gap:14px}
.mtm-ad-rank-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.mtm-ad-rank-kpi{display:grid;gap:5px;min-width:0;padding:13px 14px;border:1px solid var(--line,#e4e8dc);border-radius:10px;background:var(--surface,#fff)}
.mtm-ad-rank-kpi>span{color:var(--muted,#87927e);font-size:var(--fs-aux)}
.mtm-ad-rank-kpi strong{font-size:clamp(19px,2vw,25px);line-height:1.2;color:var(--text,#2f3a2c);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.mtm-ad-rank-kpi small{font-size:var(--fs-caption);color:var(--muted,#87927e);font-variant-numeric:tabular-nums}
.mtm-ad-rank-period{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:8px;background:#f7f9f4;color:var(--muted,#87927e);font-size:var(--fs-aux)}
.mtm-ad-rank-period strong{color:var(--text,#2f3a2c)}
.mtm-ad-rank-period b{margin-left:3px;color:var(--accent,#355849);font-variant-numeric:tabular-nums}
.mtm-ad-rank-insights{display:grid;gap:9px}
.mtm-ad-rank-insights .mtm-ad-block-head{margin:0}
.mtm-ad-rank-insights h4,.mtm-ad-rank-table-card h4{margin:0;font-size:var(--fs-h3);font-weight:600;color:var(--text,#2f3a2c)}
.mtm-ad-rank-insights>article{padding:10px 12px;border-left:3px solid #a8b39c;border-radius:6px;background:#f7f9f4}
.mtm-ad-rank-insight.good{border-left-color:#53a879;background:#f2f9f4}
.mtm-ad-rank-insight.warn{border-left-color:#d79a3b;background:#fff9ef}
.mtm-ad-rank-insight strong{font-size:var(--fs-control);color:var(--text,#2f3a2c)}
.mtm-ad-rank-insight p{margin:4px 0 0;color:var(--muted,#687260);font-size:var(--fs-aux);line-height:1.6}
.mtm-ad-rank-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mtm-ad-rank-table-card{min-width:0;padding:12px 14px;border:1px solid var(--line,#e4e8dc);border-radius:10px;background:var(--surface,#fff)}
.mtm-ad-rank-table-wrap{overflow-x:auto}
.mtm-ad-rank-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:var(--fs-aux);font-variant-numeric:tabular-nums}
.mtm-ad-rank-table th,.mtm-ad-rank-table td{padding:8px 6px;border-bottom:1px solid #edf0e9;text-align:right;white-space:nowrap}
.mtm-ad-rank-table thead th{color:var(--muted,#87927e);font-weight:500}
.mtm-ad-rank-table th:first-child{text-align:left}
.mtm-ad-rank-table tbody th{color:var(--text,#2f3a2c);font-weight:500}
.mtm-ad-rank-table tbody tr:last-child th,.mtm-ad-rank-table tbody tr:last-child td{border-bottom:0}
.mtm-ad-rank-table td:last-child{display:grid;grid-template-columns:minmax(40px,1fr) 42px;gap:6px;align-items:center}
.mtm-ad-rank-table td:last-child small{text-align:right;color:var(--muted,#87927e)}
.mtm-ad-rank-share{height:7px;overflow:hidden;border-radius:5px;background:#eff2eb}
.mtm-ad-rank-share i{display:block;height:100%;border-radius:5px;background:#87a778}
.mtm-ad-rank-quality ul{margin:5px 0 0;padding-left:20px}
.mtm-ad-rank-quality li{margin:3px 0}
.mtm-ad-rank-attribution{line-height:1.7}
.mtm-ad-rank-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted,#87927e);font-size:var(--fs-aux)}
.mtm-ad-rank-actions .mtm-ad-learn-btn{min-height:32px}
.mtm-ad-learn-rank-reference{padding:12px 14px;background:#fbfcf9}
.mtm-ad-learn-rank-reference .mtm-ad-block-head{align-items:center}
.mtm-ad-learn-rank-copy{display:grid;gap:4px;padding:10px 12px;border-radius:8px;background:#f2f6ed}
.mtm-ad-learn-rank-copy strong{color:var(--accent,#355849);font-size:var(--fs-control)}
.mtm-ad-learn-rank-copy span,.mtm-ad-learn-rank-copy small{color:var(--muted,#687260);font-size:var(--fs-aux);line-height:1.55}
@media(max-width:1000px){.mtm-ad-rank-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.mtm-ad-rank-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.mtm-ad-rank-tables{grid-template-columns:minmax(0,1fr)}.mtm-ad-rank-period{gap:8px}.mtm-ad-rank-table th,.mtm-ad-rank-table td{padding:7px 4px}}
/* 两个营业时间下拉必须等宽：select 的默认宽度随选项文字变化，
   「22:00」和「06:00」看着差不多，实际差 40px，并排放像没对齐。 */
.mtm-ad-bid-reason{flex:1 1 240px;min-width:180px}

/* 美团 AI 推广决策台 v2（2026-11-01） */
.mtm-ad-control-room{display:grid;gap:16px}
.mtm-ad-control-nav{display:flex;gap:6px;overflow-x:auto;padding:3px 0 10px;border-bottom:1px solid var(--line,#e4e8dc)}
.mtm-ad-control-nav button{flex:none;border:0;border-radius:8px;padding:9px 13px;background:transparent;color:var(--muted,#687260);font:inherit;font-size:var(--fs-control);cursor:pointer}
.mtm-ad-control-nav button:hover{background:#f4f7f0;color:var(--text,#2f3a2c)}
.mtm-ad-control-nav button.is-active{background:#e8f1e7;color:var(--accent,#355849);font-weight:650}
.mtm-ad-control-content{display:grid;gap:14px;min-width:0}
.mtm-ad-control-panel{display:grid;gap:13px;min-width:0;padding:16px;border:1px solid var(--line,#e4e8dc);border-radius:12px;background:var(--surface,#fff)}
.mtm-ad-control-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mtm-ad-control-panel-head h4{margin:0;color:var(--text,#2f3a2c);font-size:var(--fs-h3);font-weight:650}
.mtm-ad-control-panel-head p{margin:4px 0 0;color:var(--muted,#687260);font-size:var(--fs-aux);line-height:1.55}
.mtm-ad-control-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mtm-ad-control-metric{display:grid;gap:5px;min-width:0;padding:12px;border:1px solid #edf0e9;border-radius:9px;background:#fbfcf9}
.mtm-ad-control-metric>span,.mtm-ad-control-metric small{color:var(--muted,#87927e);font-size:var(--fs-aux);line-height:1.45}
.mtm-ad-control-metric strong{color:var(--text,#2f3a2c);font-size:clamp(17px,2vw,23px);line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.mtm-ad-control-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0;padding:0;list-style:none}
.mtm-ad-control-timeline li{position:relative;display:flex;align-items:center;gap:7px;min-width:0;padding:9px 4px;color:var(--muted,#87927e);font-size:var(--fs-aux)}
.mtm-ad-control-timeline li:not(:last-child):after{content:"";position:absolute;left:calc(100% - 4px);right:-4px;top:50%;height:1px;background:#e4e8dc}
.mtm-ad-control-timeline i{z-index:1;display:grid;place-items:center;flex:none;width:24px;height:24px;border:1px solid #dfe5d9;border-radius:50%;background:#fff;font-style:normal;font-size:11px}
.mtm-ad-control-timeline li.is-done{color:#456d50}.mtm-ad-control-timeline li.is-done i{border-color:#82a884;background:#edf6ed}
.mtm-ad-control-timeline li.is-current{color:var(--accent,#355849);font-weight:650}.mtm-ad-control-timeline li.is-current i{border-color:#6c9a72;background:#e8f1e7}
.mtm-ad-control-decision{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.mtm-ad-control-decision>div{display:grid;gap:6px;padding:12px;border-radius:9px;background:#f7f9f4}
.mtm-ad-control-decision span{color:var(--muted,#87927e);font-size:var(--fs-aux)}
.mtm-ad-control-decision strong{color:var(--text,#2f3a2c);font-size:var(--fs-control);font-variant-numeric:tabular-nums}
.mtm-ad-control-reason,.mtm-ad-control-review-summary{margin:0;color:var(--text,#2f3a2c);font-size:var(--fs-control);line-height:1.7}
.mtm-ad-control-boundary,.mtm-ad-control-footnote{padding:10px 12px;border-radius:8px;background:#f7f9f4;color:var(--muted,#687260);font-size:var(--fs-aux);line-height:1.65}
.mtm-ad-control-footnote{background:#f4f6f1}
.mtm-ad-control-manual-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mtm-ad-control-rank-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.mtm-ad-control-empty{padding:14px;border:1px dashed #dfe5d9;border-radius:9px;color:var(--muted,#687260);font-size:var(--fs-aux);line-height:1.6}
.mtm-ad-control-consent{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:12px;border:1px solid #e7ebdf;border-radius:9px;background:#fbfcf9}
.mtm-ad-control-consent label{display:flex;align-items:flex-start;gap:8px;color:var(--text,#2f3a2c);font-size:var(--fs-aux);line-height:1.55}
.mtm-ad-control-consent input{margin-top:3px;flex:none}
.mtm-ad-control-consent small{grid-column:1;color:var(--muted,#87927e);font-size:var(--fs-caption);line-height:1.55}
.mtm-ad-control-consent button{grid-column:2;grid-row:1 / span 2;white-space:nowrap}
.mtm-ad-control-review-meta{color:var(--muted,#87927e);font-size:var(--fs-caption)}
.mtm-ad-control-observations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.mtm-ad-control-observation{display:grid;gap:5px;padding:11px;border:1px solid #edf0e9;border-radius:9px;background:#fff}
.mtm-ad-control-observation strong,.mtm-ad-control-review-list>strong{color:var(--text,#2f3a2c);font-size:var(--fs-control)}
.mtm-ad-control-observation p{margin:0;color:var(--muted,#687260);font-size:var(--fs-aux);line-height:1.6}
.mtm-ad-control-observation small{color:var(--muted,#87927e);font-size:var(--fs-caption)}
.mtm-ad-control-review-list ul,.mtm-ad-control-blockers ul{margin:5px 0 0;padding-left:20px;color:var(--muted,#687260);font-size:var(--fs-aux);line-height:1.65}
.mtm-ad-control-review-evidence{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted,#687260);font-size:var(--fs-aux)}
.mtm-ad-control-tag{padding:4px 8px;border-radius:20px;background:#edf3e9;color:#496548;font-size:var(--fs-caption)}
.mtm-ad-control-table-wrap{overflow-x:auto}
.mtm-ad-control-table{width:100%;min-width:620px;border-collapse:collapse;font-size:var(--fs-aux);font-variant-numeric:tabular-nums}
.mtm-ad-control-table th,.mtm-ad-control-table td{padding:9px 8px;border-bottom:1px solid #edf0e9;text-align:right;white-space:nowrap}
.mtm-ad-control-table th:first-child,.mtm-ad-control-table td:first-child{text-align:left}
.mtm-ad-control-table th{color:var(--muted,#87927e);font-weight:550}
.mtm-ad-control-hour-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.mtm-ad-control-hour-grid article{display:grid;gap:4px;min-width:0;padding:10px;border-radius:8px;background:#f7f9f4}
.mtm-ad-control-hour-grid span,.mtm-ad-control-hour-grid small{color:var(--muted,#87927e);font-size:var(--fs-caption)}
.mtm-ad-control-hour-grid strong{color:var(--text,#2f3a2c);font-size:var(--fs-control);font-variant-numeric:tabular-nums}
.mtm-ad-control-gate-grid,.mtm-ad-control-quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mtm-ad-control-gate-grid>div{display:grid;gap:4px;padding:10px;border-radius:8px;background:#f7f9f4}
.mtm-ad-control-gate-grid span{color:var(--muted,#87927e);font-size:var(--fs-caption)}
.mtm-ad-control-gate-grid strong{color:var(--text,#2f3a2c);font-size:var(--fs-control)}
.mtm-ad-control-blockers{padding:11px;border-left:3px solid #d29a42;border-radius:7px;background:#fff9ed}
.mtm-ad-control-blockers>strong{color:#805c24;font-size:var(--fs-control)}
.mtm-ad-control-ready{padding:10px 12px;border-radius:8px;background:#eef7ed;color:#426947;font-size:var(--fs-aux)}
.mtm-ad-control-note{margin:0;color:var(--muted,#87927e);font-size:var(--fs-caption);line-height:1.6}
@media(max-width:1000px){.mtm-ad-control-metrics,.mtm-ad-control-rank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mtm-ad-control-hour-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.mtm-ad-control-panel{padding:12px}.mtm-ad-control-decision{grid-template-columns:repeat(2,minmax(0,1fr))}.mtm-ad-control-timeline{grid-template-columns:1fr;gap:0}.mtm-ad-control-timeline li{padding:5px 4px}.mtm-ad-control-timeline li:not(:last-child):after{left:15px;right:auto;top:calc(100% - 2px);width:1px;height:12px}.mtm-ad-control-observations{grid-template-columns:1fr}.mtm-ad-control-hour-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mtm-ad-control-gate-grid,.mtm-ad-control-quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mtm-ad-control-consent{grid-template-columns:1fr}.mtm-ad-control-consent small,.mtm-ad-control-consent button{grid-column:1;grid-row:auto}.mtm-ad-control-consent button{justify-self:start}.mtm-ad-control-table{min-width:580px}}

/* 智能推广工作台：布局与已确认的「经营总览 / AI 决策 / 对照 / 时段 / 规则」结构对齐。 */
.mtm-ad-workbench-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:3px 0 0}
.mtm-ad-workbench-heading h2{margin:0;color:var(--ink,#263d33);font-size:28px;line-height:1.25;font-weight:680;letter-spacing:-.5px}
.mtm-ad-workbench-heading p{margin:7px 0 0;color:var(--muted,#687260);font-size:var(--fs-body);line-height:1.55}
.mtm-ad-workbench-heading-actions{display:grid;justify-items:end;gap:8px}
.mtm-ad-workbench-manual,.mtm-ad-workbench-tools{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.mtm-ad-workbench-manual{padding:7px;border:1px solid var(--line,#dfe5d9);border-radius:10px;background:#fff}
.mtm-ad-workbench-manual>span{padding:0 5px;color:var(--accent,#355849);font-weight:650;font-size:var(--fs-aux)}
.mtm-ad-workbench-tools .mtm-ad-learn-btn{min-height:28px;padding:4px 9px;font-size:var(--fs-caption)}
.mtm-ad-workbench-readonly{padding:8px 11px;border:1px solid var(--line,#dfe5d9);border-radius:8px;color:var(--muted,#687260);background:#fff;font-size:var(--fs-aux)}
.mtm-ad-workbench-stage{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:11px 16px;align-items:center;padding:14px 17px;border:1px solid #dce8dc;border-radius:11px;background:#fff}
.mtm-ad-workbench-stage-copy{display:flex;align-items:center;gap:9px;min-width:0;flex-wrap:wrap}
.mtm-ad-workbench-stage-copy strong{color:var(--ink,#263d33);font-size:var(--fs-body);font-weight:650}
.mtm-ad-workbench-stage-copy>span:last-child{color:var(--muted,#687260);font-size:var(--fs-aux)}
.mtm-ad-workbench-stage-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#9b6b24}
.mtm-ad-workbench-stage-dot.blue{background:#4679a9}.mtm-ad-workbench-stage-dot.green{background:#3d7654}.mtm-ad-workbench-stage-dot.gray{background:#9b6b24}
.mtm-ad-workbench-progress{height:7px;overflow:hidden;border-radius:10px;background:#edf2ec}
.mtm-ad-workbench-progress i{display:block;height:100%;border-radius:inherit;background:#3d7654;transition:width .25s ease}
.mtm-ad-workbench-progress.is-large{height:8px}
.mtm-ad-workbench-stage-actions{grid-column:2;grid-row:1 / span 2;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.mtm-ad-control-content{gap:14px}
.mtm-ad-overview-primary-grid,.mtm-ad-overview-secondary-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:14px;align-items:stretch}
.mtm-ad-overview-chart,.mtm-ad-overview-recommendation,.mtm-ad-overview-health{align-content:start;min-height:100%}
.mtm-ad-overview-recommendation{background:#eaf2e9;border-color:#dce8dc}
.mtm-ad-overview-recommendation-action{display:grid;gap:7px;padding:12px 14px;border-radius:8px;background:#f6f9f5}
.mtm-ad-overview-recommendation-action span{color:var(--muted,#687260);font-size:var(--fs-aux)}
.mtm-ad-overview-recommendation-action strong{color:var(--ink,#263d33);font-size:clamp(18px,2vw,24px);font-variant-numeric:tabular-nums}
.mtm-ad-overview-evidence{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding-top:3px;font-size:var(--fs-aux)}
.mtm-ad-overview-evidence span{color:var(--muted,#687260)}
.mtm-ad-overview-evidence strong{text-align:right;color:var(--ink,#263d33);font-weight:650}
.mtm-ad-control-chart-wrap{display:grid;gap:8px;min-width:0}
.mtm-ad-control-chart{display:block;width:100%;min-width:0;height:auto;overflow:visible}
.mtm-ad-control-chart-grid{stroke:#e2e9e0;stroke-width:1}
.mtm-ad-control-chart-axis{fill:#788276;font-size:11px}
.mtm-ad-control-chart-line{fill:none;stroke:#3d7654;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.mtm-ad-control-chart-target{stroke:#a66b21;stroke-width:1.7;stroke-dasharray:6 5}
.mtm-ad-control-chart-hard{stroke:#c77b73;stroke-width:1.4;stroke-dasharray:2 5}
.mtm-ad-control-chart-ref{fill:#8a642b;font-size:10px}
.mtm-ad-control-chart-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--muted,#687260);font-size:var(--fs-aux)}
.mtm-ad-control-chart-legend span{display:flex;align-items:center;gap:6px}
.mtm-ad-control-chart-legend i{display:inline-block;width:12px;height:3px;border-radius:3px;background:#3d7654}
.mtm-ad-control-chart-legend i.is-target{background:#a66b21}.mtm-ad-control-chart-legend i.is-hard{background:#c77b73}
.mtm-ad-control-note{margin:0;color:var(--muted,#687260);font-size:var(--fs-caption);line-height:1.6}
.mtm-ad-overview-health-list{display:grid;grid-template-columns:1fr auto;gap:0 12px;margin:0}
.mtm-ad-overview-health-list>div{display:contents}
.mtm-ad-overview-health-list dt,.mtm-ad-overview-health-list dd{padding:7px 0;border-bottom:1px solid #edf0e9;font-size:var(--fs-aux)}
.mtm-ad-overview-health-list dt{color:var(--muted,#687260)}
.mtm-ad-overview-health-list dd{margin:0;text-align:right;color:var(--ink,#263d33);font-weight:600}
.mtm-ad-overview-health-list dd.is-warn{color:#9b6b24}
.mtm-ad-control-overview-hours{min-width:650px}
.mtm-page.is-smart-promotion-page{gap:9px}
.mtm-page.is-smart-promotion-page>.mtm-connection-smart{justify-self:end;gap:8px;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.mtm-connection-smart>div:first-child{justify-content:flex-end;gap:8px}
.mtm-connection-smart label{font-size:var(--fs-aux)}
.mtm-connection-smart select{min-height:38px;width:min(360px,42vw);max-width:360px;border-radius:9px;background:#fff}
.mtm-content.is-smart-promotion{padding:0!important;border:0;background:transparent;box-shadow:none}
.mtm-ad-workbench-title{display:grid;gap:6px;min-width:0;flex:1}
.mtm-ad-workbench-breadcrumb{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted,#687260);font-size:var(--fs-aux)}
.mtm-ad-workbench-breadcrumb .mtm-ad-learn-btn{min-height:28px;padding:4px 9px;background:#fff}
@media(max-width:1050px){.mtm-ad-overview-primary-grid,.mtm-ad-overview-secondary-grid{grid-template-columns:minmax(0,1fr)}.mtm-ad-workbench-heading-actions{justify-items:start}.mtm-ad-workbench-manual,.mtm-ad-workbench-tools{justify-content:flex-start}}
@media(max-width:760px){.mtm-ad-workbench-heading h2{font-size:24px}.mtm-ad-workbench-stage{grid-template-columns:minmax(0,1fr);gap:9px;padding:12px}.mtm-ad-workbench-stage-actions{grid-column:1;grid-row:auto}.mtm-ad-workbench-manual{justify-content:flex-start}.mtm-ad-workbench-tools{width:100%}.mtm-ad-workbench-tools .mtm-ad-learn-btn{flex:1}.mtm-ad-control-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.mtm-ad-overview-health-list dt,.mtm-ad-overview-health-list dd{padding:6px 0}}
@media(max-width:760px){.mtm-page.is-smart-promotion-page>.mtm-connection-smart{justify-self:stretch}.mtm-connection-smart>div:first-child{justify-content:flex-start}.mtm-connection-smart select{width:100%;max-width:none}.mtm-ad-workbench-breadcrumb{align-items:flex-start}.mtm-ad-workbench-breadcrumb .mtm-ad-learn-btn{flex:none}}

dialog .mtm-ad-bid-form{display:grid;gap:14px;padding:0;background:transparent}
dialog .mtm-ad-bid-form label{display:grid;align-items:stretch;gap:6px;color:var(--muted,#687260)}
dialog .mtm-ad-bid-form input{box-sizing:border-box;width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line,#dfe5d9);border-radius:9px;background:#fff;color:var(--text,#2f3a2c);font:inherit}
.mtm-ad-orient-editor{display:grid;gap:14px}
.mtm-ad-orient-editor-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.mtm-ad-targeting-dialog .mtm-ad-block{margin:0;padding:0;border:0;box-shadow:none}
.mtm-ad-targeting-dialog .mtm-ad-orient-rows{max-height:380px;overflow:auto}
@media(max-width:760px){.mtm-ad-orient-editor-actions{display:grid;grid-template-columns:1fr 1fr}.mtm-ad-targeting-dialog .mtm-ad-orient-rows{max-height:none}}
.mtm-ad-usage-guide ol{display:grid;gap:14px;margin:0;padding-left:22px}.mtm-ad-usage-guide li{padding-left:4px}.mtm-ad-usage-guide li strong{color:var(--ink,#20372d)}.mtm-ad-usage-guide li p{margin:5px 0 0;color:var(--muted,#687a70);line-height:1.65}

/* 每个规格自己的商品图；点开复用页面已有的大图预览。 */
.mtm-spec-row{display:flex;align-items:center;gap:8px;min-width:0}
.mtm-spec-image{display:block;flex:0 0 40px;width:40px;height:40px;padding:0;border:0;border-radius:7px;overflow:hidden;background:#f3f4ec;cursor:zoom-in}
.mtm-spec-image img{display:block;width:100%;height:100%;object-fit:cover}