/* FlowZ · Painel: módulo Operação (ops.js). Prefixo .ops-, só tokens de painel.css. */
.ops-page{display:flex;flex-direction:column;gap:16px}
.ops-page .p-card.flush .p-error{margin:16px}
.ops-page [hidden]{display:none!important}
.ops-kpis{margin:0}
.ops-card-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 20px 14px;border-bottom:1px solid var(--line)}
.ops-card-tools .p-search{flex:1;min-width:200px;max-width:420px}
.ops-muted{color:var(--text-3);font-weight:500}
.ops-mono{font-family:var(--mono);font-size:12.5px}
.ops-grow{flex:1}
.ops-hint{margin:0;color:var(--text-3);font-size:12.5px;line-height:1.5}
.ops-hint code{font-family:var(--mono);font-size:11.5px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.ops-ferr{margin:0;min-height:0;color:var(--danger);font-size:13px}
.ops-ferr:empty{display:none}

/* Células de tabela */
.ops-cell{min-width:0}
.ops-cell b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-cell small{display:block;color:var(--text-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
.ops-acts{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px;flex-wrap:nowrap}
.ops-acts .p-btn.icon.sm{width:36px;min-height:36px}
.ops-trunc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;max-width:360px}
.ops-wa svg{color:#25D366}
.ops-wa.p-btn.icon{border-color:transparent}
.ops-wa.p-btn.icon:hover{background:rgba(255,255,255,.05)}
.ops-ad{display:flex;align-items:center;gap:12px;min-width:0}
.ops-ad .ops-cell{flex:1;min-width:0}
.ops-logo{width:36px;height:36px;border-radius:10px;object-fit:contain;padding:3px;box-sizing:border-box;flex-shrink:0;background:var(--surface-3);border:1px solid var(--line)}
.ops-err{min-width:0;max-width:520px}
.ops-err b{display:block;font-weight:600;font-size:13.5px;color:var(--text);margin-bottom:3px}
.ops-err code{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-family:var(--mono);font-size:12.5px;color:var(--text)}
.ops-err small{display:block;color:var(--text-3);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p-table td.mono .ops-trunc{font-size:12px}

/* Lista de itens (alertas, pesquisa) */
.ops-items > div > .ops-item:last-child{border-bottom:0}
.ops-item{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line);transition:background .18s var(--ease),opacity .25s var(--ease)}
.ops-item:hover{background:rgba(255,255,255,.02)}
.ops-item.is-done .ops-item-title b{color:var(--text-2)}
.ops-dot{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface-2);color:var(--text-3)}
.ops-dot.warn{color:var(--warn);background:var(--warn-soft);border-color:transparent}
.ops-dot.danger{color:var(--danger);background:var(--danger-soft);border-color:transparent}
.ops-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;border-radius:8px}
.ops-item-main.as-div{cursor:default}
.ops-item-title{display:flex;align-items:center;gap:8px;min-width:0;font-size:14.5px}
.ops-item-title b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ops-item-sub{color:var(--text-3);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
button.ops-item-main:hover .ops-item-title b{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.ops-item-side{flex-shrink:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ops-facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;color:var(--text-2);font-size:12.5px}
.ops-facts span{display:inline-flex;align-items:center;gap:6px}
.ops-facts svg{color:var(--text-3);flex-shrink:0}
.ops-facts .danger{color:var(--danger)}
.ops-facts .danger svg{color:var(--danger)}

/* Pesquisa */
.ops-nps{flex-shrink:0;width:52px;height:56px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface-2)}
.ops-nps b{font-family:var(--cond);font-weight:800;font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.ops-nps small{font-size:11.5px;color:var(--text-3);margin-top:2px}
.ops-nps.ok{border-color:rgba(52,211,153,.3)}.ops-nps.ok b{color:var(--ok)}
.ops-nps.warn{border-color:rgba(245,158,11,.3)}.ops-nps.warn b{color:var(--warn)}
.ops-nps.danger{border-color:rgba(248,113,113,.3)}.ops-nps.danger b{color:var(--danger)}
.ops-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ops-chips span{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:7px;border:1px solid var(--line-2);background:rgba(255,255,255,.03);font-size:12px;color:var(--text-2);overflow-wrap:anywhere}
.ops-quote{margin:10px 0 0;padding:2px 0 2px 12px;border-left:2px solid var(--line-2);color:var(--text);font-size:13.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}

/* Publicidade */
.ops-chan{display:flex;flex-direction:column;gap:14px}
.ops-chan-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ops-chan-row{min-width:0}
.ops-chan-top{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;min-width:0}
.ops-chan-top span{flex:1;min-width:0;color:var(--text-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-chan-top b{font-family:var(--cond);font-weight:700;font-size:20px;font-variant-numeric:tabular-nums;flex-shrink:0}
.ops-chan-top small{font-size:12.5px;color:var(--text-3);flex-shrink:0;min-width:34px;text-align:right}
.ops-top{margin-top:16px}
.ops-top b{color:var(--text-2);font-weight:600}
.ops-rkpi .p-kpi{background:var(--surface-2)}
.ops-rkpi .p-kpi-value{font-size:clamp(20px,16cqi,36px)}

.ops-spark{margin:0}
.ops-spark-bars{display:flex;align-items:flex-end;gap:3px;height:120px;padding:8px 0 0;border-bottom:1px solid var(--line)}
.ops-spark-col{position:relative;flex:1;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center;border-radius:4px 4px 0 0;cursor:default;transition:background .15s var(--ease);animation:ops-rise .6s var(--ease-out) both;transform-origin:bottom}
.ops-spark-col:hover{background:rgba(255,255,255,.04)}
.ops-spark-col i{position:absolute;bottom:0;left:15%;right:15%;border-radius:3px 3px 0 0}
.ops-spark-col i.v{background:rgba(255,255,255,.16)}
.ops-spark-col i.c{background:var(--accent)}
@keyframes ops-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ops-spark figcaption{display:flex;justify-content:space-between;margin-top:6px;font-size:11.5px;color:var(--text-3)}
.ops-spark-leg{display:flex;gap:16px;margin-top:10px;font-size:12px;color:var(--text-2)}
.ops-spark-leg span{display:inline-flex;align-items:center;gap:6px}
.ops-spark-leg i{width:10px;height:10px;border-radius:3px}
.ops-spark-leg i.v{background:rgba(255,255,255,.16)}
.ops-spark-leg i.c{background:var(--accent)}

/* Formulários em gaveta */
.ops-group{border:0;margin:0;padding:0;min-width:0;display:grid;gap:12px}
.ops-group + .ops-group{padding-top:18px;border-top:1px solid var(--line)}
.ops-group > .p-section-title{margin:0}
.p-drawer .p-field > .p-seg{align-self:flex-start}
.ops-adform{gap:18px}
.ops-checks{display:grid;gap:8px}
.ops-check{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:11px 12px;border-radius:var(--r-ctl);border:1px solid var(--line-2);background:rgba(255,255,255,.02);cursor:pointer;transition:border-color .18s var(--ease),background .18s var(--ease)}
.ops-check:hover{border-color:rgba(255,255,255,.2)}
.ops-check:has(input:checked){border-color:rgba(255,255,255,.45);background:var(--accent-soft)}
.ops-check input{flex-shrink:0;width:18px;height:18px;margin:1px 0 0;accent-color:var(--accent);cursor:pointer}
.ops-check span{flex:1;min-width:0}
.ops-check b{display:block;font-weight:600;font-size:13.5px}
.ops-check small{display:block;color:var(--text-3);font-size:12px;margin-top:1px}
/* Editor do anúncio: abas, prévia ao vivo e gatilhos por área do app */
.p-drawer.ops-addrawer{width:min(640px,100vw)}
.ops-tabs{position:sticky;top:-1px;box-shadow:0 -28px 0 var(--surface);z-index:2;display:flex;gap:4px;margin:-4px 0 2px;padding:6px 0 10px;background:var(--surface);border-bottom:1px solid var(--line)}
.ops-tab{flex:1 1 0;min-width:0;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;border-radius:var(--r-ctl);border:1px solid transparent;background:transparent;color:var(--text-2);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease)}
.ops-tab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-tab i{font-style:normal;font-size:11.5px;font-weight:600;color:var(--text-3)}
.ops-tab i:empty{display:none}
.ops-tab:hover{color:#fff;background:rgba(255,255,255,.04)}
.ops-tab[aria-selected="true"]{background:#fff;color:#111}
.ops-tab[aria-selected="true"] i{color:#555}
.ops-tab:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}
.ops-pane{display:grid;gap:18px;min-width:0}
.ops-pane[hidden]{display:none}
.ops-group-sub{margin:-6px 0 0;color:var(--text-3);font-size:12.5px}
.ops-hint-s{display:block;color:var(--text-3);font-size:12px;line-height:1.45}
.ops-adprev{border:1px solid var(--line-2);border-radius:18px;background:#0C0B18;padding:10px 14px 4px;min-width:0}
.ops-adprev-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-3);font-size:12px}
.ops-adprev-screen{min-width:0}
.ops-adprev-screen .fz-ad{margin:8px 0 10px}
.ops-where-sum{margin:0;padding:10px 12px;border-radius:var(--r-ctl);background:rgba(255,255,255,.03);border:1px solid var(--line);font-size:13.5px;color:var(--text-2)}
.ops-where-sum.warn{color:var(--warn);border-color:rgba(245,158,11,.35)}
.ops-area{border:1px solid var(--line-2);border-radius:16px;padding:12px;display:grid;gap:10px;min-width:0}
.ops-area-h{display:flex;align-items:center;gap:10px;min-width:0}
.ops-area-h > div{flex:1;min-width:0}
.ops-area-h b{display:block;font-size:14.5px;font-weight:600}
.ops-area-h small{display:block;color:var(--text-3);font-size:12px;margin-top:1px}
.ops-area-n{flex-shrink:0;font-size:12px;color:var(--text-3);white-space:nowrap}
.ops-area-n.on{color:var(--accent-ink)}
.ops-area-h .p-btn{flex-shrink:0}
.ops-area-list{display:grid;gap:8px;min-width:0}
.ops-trig{display:grid;gap:4px;min-width:0}
.ops-allc{display:inline-flex;align-items:center;gap:8px;min-height:32px;margin-left:42px;font-size:12.5px;color:var(--text-2);cursor:pointer}
.ops-allc[hidden]{display:none}
.ops-allc input{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}
.ops-secs{display:grid;gap:8px;padding:10px;border-radius:var(--r-ctl);background:rgba(255,255,255,.02);border:1px dashed var(--line-2)}
.ops-secs-h b{display:block;font-size:13.5px;font-weight:600}
.ops-secs-h small{display:block;color:var(--text-3);font-size:12px}
.ops-secs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ops-secs-grid .ops-check{min-height:44px;padding:10px;align-items:center}
.ops-secs-grid .ops-check input{margin:0}
.ops-secs-grid .ops-check b{font-size:13px;line-height:1.3}
.ops-secs-grid .ops-allc{margin-left:12px}
.ops-seg-2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
.ops-freq{min-width:0;transition:opacity .2s var(--ease)}
.ops-freq.off{opacity:.55}
@media (prefers-reduced-motion:reduce){.ops-tab,.ops-freq{transition:none}}
.ops-inline-field{flex:0 1 240px;min-width:180px}
.ops-inline-field > span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ops-mono-input{font-family:var(--mono)!important;font-size:13px!important}
.ops-mono-input[readonly]{color:var(--text-2);background:var(--surface)}
.ops-json{font-family:var(--mono);font-size:12.5px;line-height:1.55;min-height:220px;tab-size:2;white-space:pre;overflow:auto}
.ops-json[aria-invalid="true"]{border-color:rgba(248,113,113,.55)}
.ops-jsonstat{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-6px;min-height:32px}
.ops-jsonstat > span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-3);min-width:0}
.ops-jsonstat > span.ok{color:var(--ok)}
.ops-jsonstat > span.bad{color:var(--danger)}
.ops-jsonstat > span svg{flex-shrink:0}

/* Resultado (link gerado, senha) */
.ops-result{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface-2);min-width:0}
.ops-result-k{font-size:11.5px;font-weight:600;color:var(--text-3)}
.ops-code{display:block;font-family:var(--mono);font-size:13px;color:var(--accent-ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow-wrap:anywhere;user-select:all}
.ops-result-acts{display:flex;gap:8px;flex-wrap:wrap}
.ops-pre{margin:0;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);font-family:var(--mono);font-size:12px;line-height:1.6;color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto}

/* Gavetas: detalhes */
.ops-stack{display:flex;flex-direction:column;gap:20px}
.ops-sec h3{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ops-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ops-mini > div{padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);min-width:0}
.ops-mini small{display:block;font-size:11.5px;font-weight:600;color:var(--text-3)}
.ops-mini b{display:block;font-family:var(--cond);font-weight:800;font-size:28px;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums}
.ops-mini b.ops-mini-badge{font-size:inherit;margin-top:8px}

/* Integrações (configurações) */
.ops-side-hint{margin:-6px 0 14px}
.ops-secrets{display:flex;flex-direction:column}
.ops-secrets .p-section-title{margin:14px 0 4px}
.ops-secrets .p-section-title:first-child{margin-top:0}
.ops-secret{display:flex;align-items:center;gap:10px;min-height:38px;border-bottom:1px solid var(--line);font-size:13px}
.ops-secret:last-child{border-bottom:0}
.ops-secret span:first-child{flex:1;min-width:0;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (prefers-reduced-motion:reduce){ .ops-spark-col,.ops-hist-col i{animation:none} }

/* ═══ Tela larga ═══
   Coluna lateral de contexto, KPIs extras e colunas extras de tabela só aparecem a partir de 1600px
   (w1) e 2100px (w2). Abaixo disso tudo fica como antes. */
.ops-split{display:flex;flex-direction:column;gap:16px;min-width:0}
.ops-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.ops-aside{display:none;min-width:0}
.ops-aside.always{display:flex;flex-direction:column;gap:16px}
.ops-aside .ops-chan{gap:12px}
.ops-aside .ops-chan-top small{min-width:52px}
.ops-kx,.ops-item-stats{display:none}
.ops-table .p-table th.ops-w1,.ops-table .p-table th.ops-w2,.ops-table .p-table td.ops-w1,.ops-table .p-table td.ops-w2{display:none}
.ops-quote{max-width:75ch}

/* Histograma de notas (pesquisa) */
.ops-hist{margin:0;padding-bottom:22px}
.ops-hist-bars{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px;align-items:end;height:120px;border-bottom:1px solid var(--line)}
.ops-hist-col{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;cursor:default}
.ops-hist-col i{display:block;border-radius:3px 3px 0 0;background:var(--surface-3);transform-origin:bottom;animation:ops-rise .6s var(--ease-out) both}
.ops-hist-col i.ok{background:var(--ok)}
.ops-hist-col i.warn{background:var(--warn)}
.ops-hist-col i.danger{background:var(--danger)}
.ops-hist-col span{position:absolute;bottom:-20px;left:0;right:0;text-align:center;font-size:11.5px;color:var(--text-3)}

/* Números do alerta em colunas (2100px+) */
.ops-item-stats{margin:0;flex-shrink:0;grid-template-columns:repeat(3,112px);gap:0 8px;align-self:center}
.ops-item-stats div{min-width:0}
.ops-item-stats dt{font-size:11.5px;font-weight:600;color:var(--text-3)}
.ops-item-stats dd{margin:3px 0 0;font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--text)}

@media (min-width:1600px){
  .ops-split{display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,21vw,440px);align-items:start}
  .ops-aside{display:flex;flex-direction:column;gap:16px}
  .ops-aside .ops-chan-3{grid-template-columns:minmax(0,1fr);gap:14px}
  .ops-kpis.p-grid.k4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
  .ops-kx{display:block}
  .ops-table .p-table th.ops-w1,.ops-table .p-table td.ops-w1{display:table-cell}
  .ops-cfg.p-grid.split{grid-template-columns:minmax(0,1fr) clamp(340px,24vw,460px)}
  .ops-cfg .ops-trunc{max-width:none;-webkit-line-clamp:3}
  .ops-err{max-width:720px}
}
@media (min-width:2100px){
  .ops-table .p-table th.ops-w2,.ops-table .p-table td.ops-w2{display:table-cell}
  .ops-item-stats{display:grid}
  .ops-item-stats + .ops-item-side{min-width:250px}
  .ops-table .ops-trunc{max-width:520px}
}
.ops-card-tools:empty{display:none}

/* Skeletons com a forma do conteúdo (o brilho vem do .p-skel do núcleo).
   No computador a linha imita a tabela; no celular o mobile.css quebra em cartão. */
.ops-sk{display:flex;flex-direction:column}
.ops-sk-row{display:flex;align-items:center;gap:20px;padding:16px 20px;border-bottom:1px solid var(--line);min-height:64px}
.ops-sk-row:last-child{border-bottom:0}
.ops-sk-main{flex:1 1 34%;min-width:0;display:flex;align-items:center;gap:12px}
.ops-sk-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.ops-sk-lead{flex-shrink:0;width:36px;height:36px;border-radius:10px}
.ops-sk-cell{flex:1 1 14%;min-width:0;display:flex;align-items:center}
.ops-sk-cell.num{justify-content:flex-end;flex-basis:9%}
.ops-sk-cell.wide{flex-basis:28%}
.ops-sk-cell .p-skel{max-width:100%}
.ops-sk-lbl{display:none}
.ops-sk-pill{border-radius:999px}
.ops-sk-acts{flex-shrink:0;display:flex;gap:6px}
.ops-sk-acts .p-skel{width:30px;height:30px;border-radius:9px}
.ops-sk-items .ops-item:last-child{border-bottom:0}
.ops-sk-items .ops-item:hover{background:transparent}
.ops-sk-dot{flex-shrink:0;width:36px;height:36px;border-radius:10px}
.ops-sk-nps{flex-shrink:0;width:52px;height:56px;border-radius:12px}
.ops-sk-gap{gap:9px}
.ops-sk-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.ops-sk-quote{display:flex;flex-direction:column;gap:7px;margin-top:6px;padding-left:12px;border-left:2px solid var(--line-2)}
.ops-sk-btn{width:150px;height:36px;border-radius:var(--r-ctl)}
.ops-sk-mt{margin-top:12px}
.ops-sk-spark{display:flex;align-items:flex-end;gap:3px;height:120px;border-bottom:1px solid var(--line)}
.ops-sk-spark .p-skel{flex:1;min-width:0;border-radius:3px 3px 0 0}
.ops-secrets .p-section-title .p-skel{display:inline-block}

/* Erros do app: regras aprendidas (25/10) */
.ops-rules{display:grid;gap:10px}
.ops-rule{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line, rgba(255,255,255,.1));border-radius:12px}
.ops-rule>div{flex:1;min-width:0}
.ops-rule b{display:block;font-size:13px}
.ops-rule small{display:block;color:var(--text-3);font-size:12px;margin-top:3px;overflow-wrap:anywhere}
.ops-rule.off{opacity:.55}
.ops-rule .p-btn{flex-shrink:0}
