.live-loading{min-height:280px;display:grid;place-items:center;color:var(--muted)}
.live-error{padding:18px;border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:12px;color:var(--danger)}
.live-json{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;min-height:120px}
.live-toolbar-note{font-size:12px;color:var(--muted)}
.live-readonly{opacity:.78}
.live-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--success);margin-right:6px}
.live-ticket-delivery{font-size:11px;color:var(--muted);margin-left:8px}
.live-stat-list{display:grid;gap:8px;padding:4px 0}
.live-stat-list>div{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.live-stat-list>div:last-child{border-bottom:0}
.live-stat-list b{margin-left:auto}
.live-page-count{font-variant-numeric:tabular-nums}
.offline-banner.online{color:var(--success);background:color-mix(in srgb,var(--success) 8%,var(--surface));border-color:color-mix(in srgb,var(--success) 24%,transparent)}
.rule-summary{min-height:220px}.rule-summary p{line-height:1.75}.rule-summary .tag{margin:3px 4px 3px 0}.warning-text{color:var(--warning)}
.ad-material-editor{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.ad-material-title{display:flex;align-items:center;gap:12px;margin-bottom:10px}.ad-material-title>div{display:grid;gap:3px}.ad-material-title small{color:var(--muted);font-size:11px}.ad-material-title .ghost-btn{margin-left:auto}
.ad-material-list{display:grid;gap:12px}.ad-material-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 82%,var(--card))}.ad-material-head,.ad-material-actions{display:flex;align-items:center;gap:8px}.ad-material-card textarea{min-height:76px;resize:vertical}
.ad-upload-box{position:relative;min-height:150px;border:1px dashed color-mix(in srgb,var(--primary) 45%,var(--line));border-radius:11px;overflow:hidden;background:color-mix(in srgb,var(--primary) 4%,var(--card));display:grid;place-items:center}.ad-upload-box.has-media{border-style:solid}.ad-upload-box img{display:block;width:100%;height:220px;object-fit:contain;background:#0f172a}.ad-upload-empty{display:grid;place-items:center;gap:6px;color:var(--muted);padding:22px;text-align:center}.ad-upload-empty svg{width:28px;height:28px;color:var(--primary)}.ad-upload-empty small{font-size:11px}.ad-upload-state{margin-left:auto;color:var(--muted);font-size:11px}
@media(min-width:1500px){.ad-material-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.ad-material-title,.ad-material-actions{align-items:stretch;flex-direction:column}.ad-material-title .ghost-btn,.ad-upload-state{margin-left:0}.ad-material-actions .ghost-btn{width:100%}}
.drag-handle{cursor:grab;color:var(--muted);font-weight:700;letter-spacing:1px}.button-total-card tbody tr[draggable="true"]{transition:background .16s,opacity .16s}.button-total-card tbody tr[draggable="true"]:hover{background:color-mix(in srgb,var(--primary) 6%,var(--card))}.button-total-card tbody tr.dragging{opacity:.45;background:color-mix(in srgb,var(--primary) 12%,var(--card))}
.button-total-grid .phone-preview{position:sticky;top:12px}.button-total-grid code{max-width:220px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 机器人菜单：两张卡片占满可用高度，滚动仅发生在按钮表数据区。 */
#pageContent.page-stretch-menu{overflow:hidden;padding-bottom:18px}
.page-stretch-menu>.help-strip,
.page-stretch-menu>.page-tools{flex:0 0 auto}
.page-stretch-menu>.button-total-grid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) 340px!important;
  align-items:stretch;
  flex:1 1 auto;
  min-height:0;
}
.page-stretch-menu .button-total-card{display:flex;min-width:0;min-height:0}
.page-stretch-menu .button-total-card>.table-card{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-width:0;
  min-height:0;
  height:100%;
  overflow:hidden;
}
.page-stretch-menu .button-total-card .card-head,
.page-stretch-menu .button-total-card .batch-bar,
.page-stretch-menu .button-total-card .pagination,
.page-stretch-menu .button-total-card .smart-pagination{flex:0 0 auto}
.page-stretch-menu .button-total-card .table-scroll{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  max-height:none;
  overflow:auto;
  overscroll-behavior:contain;
}
.page-stretch-menu .button-total-card .data-table{width:100%;table-layout:fixed}
.page-stretch-menu .button-total-card .data-table thead th{
  position:sticky;
  top:0;
  z-index:4;
  background:var(--card);
}
.page-stretch-menu .button-total-card .pagination,
.page-stretch-menu .button-total-card .smart-pagination{
  margin-top:auto;
  border-top:1px solid var(--line);
  background:var(--card);
}
.page-stretch-menu>.button-total-grid>section.card{
  display:flex;
  flex-direction:column;
  container-type:size;
  min-width:0;
  min-height:0;
  height:100%;
  overflow:hidden;
}
.page-stretch-menu>.button-total-grid>section.card>h3,
.page-stretch-menu>.button-total-grid>section.card>p{flex:0 0 auto}
.page-stretch-menu .button-total-grid .phone-preview{
  position:relative;
  top:auto;
  flex:0 0 auto;
  width:min(100%,calc((100cqh - 110px)*.5625));
  min-width:0;
  min-height:0;
  max-width:100%;
  height:auto;
  aspect-ratio:9/16;
  margin:10px auto 0;
  box-sizing:border-box;
  overflow:auto;
}
.rule-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.rule-groups>div{padding:10px;border:1px solid var(--line);border-radius:10px}.rule-groups b{display:block;margin-bottom:7px}.rule-check{display:inline-flex;align-items:center;gap:5px;margin:3px 8px 3px 0;font-size:12px}.rule-inline{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:10px 0}.rule-inline label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.rule-inline input:not([type="checkbox"]),.rule-inline select{width:126px;min-height:34px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}.rule-switch{display:flex;align-items:center;gap:6px;color:var(--text)}
.ttl-rules-block .data-table .col-opt,.ttl-rules-block .data-table th.col-opt{display:table-cell!important}
.ad-performance-block .data-table .col-opt,.ad-performance-block .data-table th.col-opt{display:table-cell!important}
.ad-inline-buttons{margin-top:14px;padding:13px;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--surface) 96%,var(--blue) 4%)}
.ad-inline-buttons #adButtonList{display:grid;gap:8px;margin-top:10px}.ad-button-layout-row{padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.ad-button-layout-row>header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ad-button-layout-row>header>div{display:flex;padding:2px;border:1px solid var(--line);border-radius:7px}.ad-button-layout-row>header>div button{height:25px;padding:0 7px;border:0;border-radius:5px;background:transparent;color:var(--muted);font:600 9px/1 inherit}.ad-button-layout-row>header>div button.active{background:var(--blue);color:#fff}.ad-button-layout-row>header>.row-action{margin-left:auto}.ad-button-row-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:7px}.ad-button-row-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-button-row-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ad-inline-button{min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--card)}.ad-inline-button>div{grid-column:1/-1;display:flex;align-items:center}.ad-inline-button>div button{margin-left:auto}.ad-inline-button label{display:grid;gap:5px;color:var(--muted);font-size:10px}.ad-inline-button input,.ad-inline-button select{width:100%;height:34px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text)}
.ad-button-preview{margin-top:10px;padding:10px;border-radius:11px;background:#172334;color:#fff}.ad-button-preview>small{display:block;margin-bottom:6px;color:#94A3B8}.ad-button-preview>div{display:grid;gap:3px}.ad-button-preview>div>section{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:3px}.ad-button-preview span{min-height:32px;padding:6px;display:grid;place-items:center;border-radius:5px;background:#223347;font-size:10px;text-align:center}.ad-button-preview span.style-primary{background:#2B6CB0}.ad-button-preview span.style-success{background:#16A34A}.ad-button-preview span.style-danger{background:#DC2626}.ad-button-preview em{color:#94A3B8;font-size:10px;text-align:center;font-style:normal}
@media(max-width:1499px){.growth-rule-grid{grid-template-columns:1fr!important}}
@media(max-width:900px){
  .button-total-grid{grid-template-columns:1fr!important}.rule-summary{min-height:0}.button-total-grid .phone-preview{position:static}.rule-groups{grid-template-columns:1fr}.rule-inline label,.rule-inline input:not([type="checkbox"]),.rule-inline select{width:100%}
  #pageContent.page-stretch-menu{overflow-y:auto;padding-bottom:52px}
  .page-stretch-menu>.button-total-grid{display:grid;grid-template-columns:1fr!important;flex:0 0 auto;min-height:0}
  .page-stretch-menu .button-total-card>.table-card{height:min(660px,70vh);min-height:460px}
  .page-stretch-menu>.button-total-grid>section.card{height:auto;min-height:620px}
  .page-stretch-menu .button-total-grid .phone-preview{flex:0 0 auto;width:min(100%,320px);height:auto;min-height:0;aspect-ratio:9/16;margin-top:10px}
  .ad-button-row-grid.cols-2,.ad-button-row-grid.cols-3,.ad-inline-button{grid-template-columns:1fr}
  .ad-inline-button>div{grid-column:auto}
}
