/* WhatsApp Campaign — interface
   Palette: pine ink on a green-grey paper, one amber signal for "needs attention".
   Type: Ubuntu Sans (the system's own face here), Inter as fallback. */

:root{
  --bg:#edf2ee;          /* paper */
  --card:#ffffff;        /* surfaces */
  --surface:#ffffff;
  --ink:#0f2b26;         /* pine ink */
  --mute:#566a63;
  --line:#d3ded7;
  --brand:#135b4a;       /* pine: actions, active nav */
  --brand-ink:#ffffff;
  --brand-hover:#0e4a3c;
  --soft:#e3eee8;        /* pine tint: hover, soft chips */
  --ok:#17794a;  --ok-bg:#daf0e3;
  --warn:#7a5200; --warn-bg:#fff1cc; --signal:#e9a100;
  --bad:#b3261e;  --bad-bg:#fbe3e0;
  --in:#ffffff;  --out:#d6efdf;
  --grid:#e3eae5; --track:#e6ede8;
  --focus:#2f6fed;
  /* chart series (validated set) */
  --s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s7:#4a3aa7;--s8:#e34948;--gray:#b9c2bd;
  --o1:#86b6ef;--o2:#5598e7;--o3:#2a78d6;--o4:#1c5cab;--o5:#184f95;
  --r-ctl:8px; --r-obj:12px;
  --sidew:256px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0b1311;--card:#111c19;--surface:#111c19;--ink:#e5efea;--mute:#8da69d;--line:#23332e;
  --brand:#3dbe95;--brand-ink:#04211a;--brand-hover:#5ad0a9;--soft:#172722;
  --ok:#4ad18e;--ok-bg:#12301f;--warn:#f2c14e;--warn-bg:#352a0c;--signal:#f2b632;--bad:#ff8f84;--bad-bg:#3a1b18;
  --in:#17231f;--out:#154432;--grid:#1f2e29;--track:#1a2824;--focus:#7aa2ff;
  --s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s7:#9085e9;--s8:#e66767;--gray:#4a5850;
  --o1:#256abf;--o2:#2a78d6;--o3:#3987e5;--o4:#5598e7;--o5:#86b6ef;
  color-scheme:dark;
}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.5 "Ubuntu Sans","Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-feature-settings:"tnum" 0}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.skip{position:absolute;left:-999px;top:8px;background:var(--brand);color:var(--brand-ink);padding:8px 12px;border-radius:var(--r-ctl);z-index:100}
.skip:focus{left:8px}
code,.mono{font-family:"Ubuntu Sans Mono","DejaVu Sans Mono",ui-monospace,monospace;font-size:.92em}
code{background:var(--soft);padding:1px 6px;border-radius:5px;white-space:nowrap}
a{color:var(--brand)}
[hidden]{display:none!important}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:var(--sidew) minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--card);border-right:1px solid var(--line);overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;font-weight:700;font-size:16px;letter-spacing:-.005em}
.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;flex:none}
.brand-mark svg{width:18px;height:18px}
.brand small{display:block;font-weight:400;font-size:12px;color:var(--mute);letter-spacing:0}
nav#nav{padding:4px 10px 12px;flex:1}
.nav-group{margin-top:14px}
.nav-group:first-child{margin-top:2px}
.nav-title{padding:6px 10px;font-size:12.5px;color:var(--mute);font-weight:600}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--r-ctl);background:none;color:var(--ink);font:inherit;font-size:14.5px;text-align:left;cursor:pointer;text-decoration:none}
.nav-item svg{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.nav-item:hover{background:var(--soft)}
.nav-item[aria-current="page"]{background:var(--brand);color:var(--brand-ink);font-weight:600}
.nav-item[aria-current="page"] svg{opacity:1}
.nav-item .count{margin-left:auto}
.side-foot{padding:12px 14px 16px;border-top:1px solid var(--line);display:grid;gap:8px}
.foot-row{display:flex;align-items:center;gap:8px;font-size:13px}
.foot-row .grow{flex:1;min-width:0}
.pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;padding:5px 11px;border-radius:99px;background:var(--bad-bg);color:var(--bad);border:0;font-weight:600;max-width:100%}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.wait{background:var(--warn-bg);color:var(--warn)}
.pill i{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
button.pill{cursor:pointer;font:inherit;font-size:13px;font-weight:600}
.iconbtn{background:none;border:1px solid var(--line);color:var(--ink);border-radius:var(--r-ctl);padding:5px 9px;cursor:pointer;font-size:15px;line-height:1}
.iconbtn:hover{background:var(--soft)}
.iconbtn.off{opacity:.5}

.topbar{display:none}
main{padding:28px clamp(18px,4vw,44px) 120px;max-width:1180px;width:100%}
.view{display:none}.view.on{display:block}

/* page header: what this page is, and its main action */
.ph{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:0 0 22px}
.ph h1{margin:0;font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.012em}
.ph p{margin:4px 0 0;color:var(--mute);max-width:62ch}
.ph-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- content blocks ---------- */
h2{margin:0 0 4px;font-size:18px;line-height:1.3;font-weight:650}
h3{margin:0 0 8px;font-size:15px;font-weight:650}
.sub{color:var(--mute);font-size:14px;margin:0 0 14px;max-width:70ch}
.hint{font-size:13px;color:var(--mute);margin-top:4px;max-width:70ch}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj);padding:20px;margin-bottom:16px}
.plain{margin:0 0 28px}
.plain>h2{margin-bottom:4px}
label{display:block;font-size:14px;color:var(--ink);font-weight:600;margin:14px 0 6px}
input,select,textarea{width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-ctl);padding:9px 11px;font:inherit;min-height:40px}
select{padding-right:8px}
textarea{min-height:110px;resize:vertical;line-height:1.45}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--brand)}
input[type=file]{padding:6px;color:var(--mute);font-size:14px}
input[type=file]::file-selector-button{margin-right:12px;padding:6px 14px;font:inherit;font-weight:600;font-size:13.5px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--soft)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus)}
input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}
.row{display:grid;gap:14px}.r2{grid-template-columns:1fr 1fr}.r3{grid-template-columns:repeat(3,1fr)}.r4{grid-template-columns:repeat(4,1fr)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:16px}
.btn{background:var(--brand);color:var(--brand-ink);border:1px solid transparent;border-radius:var(--r-ctl);padding:8px 16px;min-height:38px;font:inherit;font-weight:600;font-size:14.5px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;transition:background .12s}
.btn:hover{background:var(--brand-hover)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line);font-weight:500}
.btn.ghost:hover{background:var(--soft)}
.btn.bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}
.btn.bad:hover{filter:brightness(.97)}
.btn.sm{padding:4px 11px;min-height:32px;font-size:13.5px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.badge{font-size:12px;padding:2px 9px;border-radius:99px;background:var(--ok-bg);color:var(--ok);font-weight:600;white-space:nowrap;display:inline-block;line-height:1.5}
.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.bad{background:var(--bad-bg);color:var(--bad)}
.badge.mute{background:var(--track);color:var(--mute)}
.note,.msg,.err{padding:11px 14px;border-radius:var(--r-ctl);font-size:14px;margin:12px 0;white-space:pre-wrap;border-left:4px solid}
.note{background:var(--warn-bg);color:var(--warn);border-color:var(--signal)}
.msg{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.err{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}
.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0}
.chip{font-size:12.5px;padding:3px 10px;border-radius:99px;background:var(--soft);color:var(--brand);border:1px solid var(--line);cursor:pointer;font-family:"Ubuntu Sans Mono","DejaVu Sans Mono",monospace}
.chip:hover{border-color:var(--brand)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mute);font-weight:600;font-size:13px}
.empty{padding:26px 20px;text-align:center;color:var(--mute);border:1px dashed var(--line);border-radius:var(--r-obj)}
.empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:3px}
.empty .btn{margin-top:12px}

/* master/detail lists */
.split{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;align-items:start}
.split>*{min-width:0}
.list .item{overflow:hidden;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-obj);margin-bottom:8px;cursor:pointer;background:var(--card)}
.list .item:hover{border-color:var(--brand)}
.list .item.on{border-color:var(--brand);background:var(--soft);box-shadow:inset 3px 0 0 var(--brand)}
.list .item small{color:var(--mute);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.list .item b{font-weight:650}

/* collapsible sections (campaign editor) */
details.sec{padding:0}
details.sec>summary{list-style:none;cursor:pointer;padding:15px 20px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;user-select:none;border-radius:var(--r-obj)}
details.sec>summary::-webkit-details-marker{display:none}
details.sec>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(-45deg);transition:transform .15s;margin-right:4px}
details.sec[open]>summary::before{transform:rotate(45deg)}
details.sec .st{font-weight:650;font-size:16px}
details.sec .sum{color:var(--mute);font-size:13.5px;margin-left:auto;text-align:right}
details.sec .secbody{padding:2px 20px 20px}
.presetbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.presetbar select{width:auto;min-width:200px;flex:1;max-width:340px}

/* accounts */
.acc{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start}
.acc h3{margin:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.acc input.nm{width:auto;min-width:170px;font-weight:650;padding:4px 9px;min-height:34px}
.qr{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.qr img{width:232px;height:232px;border-radius:var(--r-obj);background:#fff;padding:8px;border:1px solid var(--line)}
.qr ol{margin:8px 0;padding-left:20px}

/* progress, kpis, charts */
.bar{height:8px;border-radius:99px;background:var(--track);overflow:hidden}
.bar>div{height:100%;background:var(--brand);transition:width .4s}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin:14px 0}
.kpi{background:var(--bg);border-radius:var(--r-ctl);padding:11px 13px}
.kpi b{display:block;font-size:22px;line-height:1.2;font-variant-numeric:tabular-nums}
.kpi span{font-size:12.5px;color:var(--mute)}
.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.chart{background:var(--bg);border-radius:var(--r-obj);padding:14px 16px}
.chart.wide{grid-column:1/-1}
.chart h4{margin:0 0 8px;font-size:14px;font-weight:650}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--mute);margin:4px 0 6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.legend b{color:var(--ink);font-weight:650}
.lc{position:relative}
.lc svg{width:100%;height:auto;display:block;overflow:visible}
.lc .tip{position:absolute;pointer-events:none;background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);padding:7px 10px;font-size:12.5px;box-shadow:0 6px 18px rgba(0,0,0,.18);white-space:nowrap;display:none;z-index:2}
.lc text{fill:var(--mute);font-size:11px}
.brow{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13.5px}
.blab{width:118px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btrack{flex:1;height:16px;background:var(--track);border-radius:0 4px 4px 0}
.bfill{height:100%;border-radius:0 4px 4px 0;min-width:2px}
.bval{width:96px;flex:none;text-align:right;color:var(--mute);font-variant-numeric:tabular-nums}
.stack{display:flex;gap:2px;height:16px;background:var(--surface);border-radius:4px;overflow:hidden}
.stack div{min-width:3px}
details.tbl summary{cursor:pointer;color:var(--mute);font-size:13px;margin-top:8px}

/* funnel editor */
.step{border:1px solid var(--line);border-radius:var(--r-obj);padding:14px;margin-bottom:14px;background:var(--bg)}
.step .head{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.step .head b{white-space:nowrap}
.route{border-left:3px solid var(--brand);padding:6px 0 6px 12px;margin:10px 0}

/* conversations */
.chat{display:flex;flex-direction:column;height:min(620px,calc(100vh - 220px))}
.thread{flex:1;overflow:auto;padding:14px;background:var(--bg);border-radius:var(--r-obj);display:flex;flex-direction:column;gap:6px}
.bubble{max-width:75%;padding:8px 11px;border-radius:12px;white-space:pre-wrap;word-break:break-word;font-size:14.5px}
.bubble.in{background:var(--in);align-self:flex-start;border:1px solid var(--line);border-bottom-left-radius:4px}
.bubble.out{background:var(--out);align-self:flex-end;border-bottom-right-radius:4px}
.bubble small{display:block;font-size:11.5px;color:var(--mute);margin-top:3px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.filters select,.filters input[type=search]{width:auto;flex:1 1 150px;min-width:150px}
.reply{border:1px solid var(--line);border-radius:var(--r-obj);padding:10px 12px;margin-bottom:8px;background:var(--card)}
.reply .rh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.reply .rt{margin:5px 0 0;white-space:pre-wrap;word-break:break-word}

/* ---------- Início: the readiness path ---------- */
.banner{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-radius:var(--r-obj);background:var(--warn-bg);color:var(--warn);margin:0 0 20px;border:1px solid color-mix(in srgb,var(--signal) 45%,transparent)}
.banner b{color:inherit}
.banner a,.banner button.linkish{color:inherit;font-weight:650}
button.linkish{background:none;border:0;padding:0;font:inherit;text-decoration:underline;cursor:pointer}
.path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:6px 0 34px;counter-reset:none}
.stn{position:relative;padding:0 14px 0 0}
.stn::before{content:"";position:absolute;left:34px;right:0;top:15px;height:2px;background:var(--line)}
.stn.done::before{background:var(--brand)}
.stn:last-child::before{display:none}
.node{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:2px solid var(--line);color:var(--mute);font-weight:700;font-size:15px}
.stn.done .node{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.stn.next .node{border-color:var(--signal);background:var(--warn-bg);color:var(--warn);box-shadow:0 0 0 5px color-mix(in srgb,var(--signal) 22%,transparent)}
.stn h3{margin:12px 0 2px;font-size:15px}
.stn p{margin:0;font-size:13.5px;color:var(--mute);max-width:24ch}
.stn .go{display:inline-block;margin-top:8px;font-size:13.5px;font-weight:650}
.stn.next h3::after{content:"Próximo passo";display:block;width:max-content;margin-top:5px;font-size:12px;font-weight:650;background:var(--signal);color:#2b1d00;padding:1px 9px;border-radius:99px}
.cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px}
.now-row{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.now-row:last-child{border-bottom:0}
.now-row .grow{flex:1;min-width:0}
.now-row .grow b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shortcuts{display:grid;gap:8px}
.shortcuts .btn{justify-content:flex-start}

/* ---------- floating bits ---------- */
#dock{position:fixed;right:16px;bottom:16px;z-index:30;width:340px;max-width:calc(100vw - 32px);background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj);box-shadow:0 8px 28px rgba(0,0,0,.2);overflow:hidden}
#dock .dh{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;cursor:pointer;font-size:13.5px;font-weight:650;background:var(--soft);color:var(--brand)}
#dock .di{padding:10px 13px;border-top:1px solid var(--line);font-size:13.5px}
#dock .bar{margin:6px 0 2px}
#toasts{position:fixed;left:calc(var(--sidew) + 16px);bottom:16px;z-index:40;display:flex;flex-direction:column;gap:8px;max-width:360px}
.toast{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--r-ctl);padding:10px 13px;box-shadow:0 8px 24px rgba(0,0,0,.22);cursor:pointer;font-size:13.5px}
.toast.bad{border-left-color:var(--bad)}.toast.hot{border-left-color:var(--s3)}
.toast b{display:block}.toast span{color:var(--mute)}
#snack{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.snack{background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:99px;font-size:14px;font-weight:550;box-shadow:0 8px 24px rgba(0,0,0,.28);max-width:min(90vw,520px)}
.snack.bad{background:var(--bad);color:#fff}
dialog{border:1px solid var(--line);border-radius:var(--r-obj);padding:0;background:var(--card);color:var(--ink);width:min(440px,92vw);box-shadow:0 20px 60px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(8,20,16,.5)}
.dlg{padding:22px}
.dlg h3{font-size:17px;margin:0 0 6px}
.dlg p{margin:0 0 14px;color:var(--mute);white-space:pre-wrap}
.dlg .actions{justify-content:flex-end;margin-top:18px}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .path{grid-template-columns:1fr;gap:0;margin-bottom:26px}
  .stn{padding:0 0 22px 46px}
  .stn::before{left:15px;right:auto;top:32px;bottom:-2px;width:2px;height:auto}
  .stn .node{position:absolute;left:0;top:0}
  .stn h3{margin-top:4px}.stn p{max-width:none}
  .cols{grid-template-columns:1fr}
}
@media (max-width:860px){
  .app{display:block}
  .topbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid var(--line);padding:10px 14px}
  .topbar .ttl{font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .side{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:50;transform:translateX(-102%);transition:transform .2s}
  body.nav-open .side{transform:none;box-shadow:0 0 40px rgba(0,0,0,.3)}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(8,20,16,.45);z-index:45}
  main{padding:18px 16px 120px}
  .split{grid-template-columns:minmax(0,1fr)}
  .r2,.r3,.r4{grid-template-columns:minmax(0,1fr)}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .presetbar select{min-width:0}
  .charts{grid-template-columns:1fr}
  .ph h1{font-size:23px}
  #toasts{left:12px;right:12px;max-width:none}
  .acc{grid-template-columns:1fr}
  .btn{min-height:42px}.btn.sm{min-height:36px}
}

/* ---------- option cards, steps, blocks ---------- */
.opts{display:grid;gap:8px;margin:12px 0}
.opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-obj);cursor:pointer;margin:0;color:var(--ink);font-size:15px;font-weight:400}
.opt:hover{border-color:var(--brand)}
.opt.on{border-color:var(--brand);background:var(--soft);box-shadow:inset 3px 0 0 var(--brand)}
.opt input{margin-top:4px}
.opt b{font-weight:650}
.opt small{display:block;color:var(--mute);font-size:13.5px;margin-top:2px;max-width:64ch}
.stepno{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-size:14px;font-weight:700;margin-right:10px;vertical-align:1px}
.blk{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}
.blk h3{font-size:16px;margin-bottom:10px}
details>summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}

/* ---------- peças de formulário (títulos, campos, opções, selos) ---------- */
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.card-head h3{margin:0;font-size:16.5px;line-height:1.3}
.card-head .sub{margin:3px 0 0;font-size:13.5px}
.card-head-r{display:flex;gap:8px;align-items:center}
.field{margin:0 0 14px}.field:last-child{margin-bottom:0}
.field>label,.field>.lbl{display:block;margin:0 0 6px;font-size:14px;font-weight:600;color:var(--ink)}
.field>.hint{margin:6px 0 0}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}
@media(max-width:760px){.fgrid{grid-template-columns:1fr}}
.opts,.checklist{display:grid;gap:8px}
.opt{display:flex;gap:12px;align-items:flex-start;margin:0;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);cursor:pointer;color:var(--ink);font-weight:400;font-size:14.5px}
.opt:hover{border-color:var(--brand)}
.opt input{margin-top:3px;flex:none}
.opt b{display:block;font-weight:600}
.opt small{display:block;color:var(--mute);font-size:13px;line-height:1.4;margin-top:1px}
.opt.off{opacity:.6;cursor:not-allowed}.opt.off:hover{border-color:var(--line)}
.opt:has(input:checked){border-color:var(--brand);background:var(--soft)}
.callout{display:block;margin:12px 0 0;padding:11px 14px;border-radius:var(--r-ctl);background:var(--soft);color:var(--ink);font-size:13.5px;line-height:1.5;border-left:4px solid var(--brand)}
.callout.warn{background:var(--warn-bg);color:var(--warn);border-left-color:var(--signal)}
.badge.num{display:inline-flex;align-items:center;gap:5px;background:var(--track);color:var(--ink);font-weight:550}
.badge.num svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.switch{display:inline-flex;align-items:center;gap:9px;margin:0;font-weight:600;font-size:14px;color:var(--ink);cursor:pointer;padding:6px 12px;border:1px solid var(--line);border-radius:99px;background:var(--bg)}
.switch:has(input:checked){background:var(--ok-bg);color:var(--ok);border-color:transparent}
.fixed{display:flex;gap:11px;align-items:flex-start;padding:10px 13px;border:1px dashed var(--line);border-radius:var(--r-ctl);background:var(--bg)}
.fixed svg{width:18px;height:18px;flex:none;margin-top:2px;fill:none;stroke:var(--mute);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fixed b{display:block;font-weight:600}.fixed small{display:block;color:var(--mute);font-size:13px;line-height:1.4}
.banner-ic{display:inline-flex;flex:none}.banner-ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.savebar{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;margin:0 0 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj);box-shadow:0 -6px 18px rgba(8,28,22,.07)}
.testgrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;margin-top:16px;align-items:start}
@media(max-width:860px){.testgrid{grid-template-columns:1fr}}
.cap{font-size:12.5px;font-weight:600;color:var(--mute);margin-bottom:6px}
.wa-prev{max-width:none;background:var(--out);border-radius:12px;padding:12px 14px;line-height:1.5;font-size:14.5px}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 10px;font-size:14px}
.facts dt{color:var(--mute)}.facts dd{margin:0;overflow-wrap:anywhere}

/* lista de reenvios */
.relay-split{grid-template-columns:300px minmax(0,1fr)}
@media(max-width:860px){.relay-split{grid-template-columns:1fr}}
.rcard{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;padding:12px 14px;margin:0 0 8px;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj);cursor:pointer}
.rcard:hover{border-color:var(--brand)}
.rcard.on{border-color:var(--brand);background:var(--soft);box-shadow:inset 3px 0 0 var(--brand)}
.rcard .rc-top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.rcard small{color:var(--mute);font-size:13px}
.rcard.add{align-items:flex-start;border-style:dashed;color:var(--brand)}
.rcard.add svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.rcard.add small{color:var(--mute)}

/* conversas: abas, filtros, seleção em lote */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 14px}
.tab{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;margin-bottom:-1px;font:inherit;font-size:14.5px;color:var(--mute);background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;border-radius:var(--r-ctl) var(--r-ctl) 0 0}
.tab:hover{color:var(--ink);background:var(--soft)}
.tab.on{color:var(--brand);font-weight:650;border-bottom-color:var(--brand)}
.tab .count{font-size:12px;font-weight:600;padding:1px 8px;border-radius:99px;background:var(--track);color:var(--mute)}
.tab.on .count{background:var(--soft);color:var(--brand)}
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:0 0 16px}
.filters .fbox{display:flex;flex-direction:column;gap:5px;flex:0 1 210px;min-width:160px}
.filters .fbox.grow{flex:1 1 220px}
.filters .fbox label{margin:0;font-size:12.5px;font-weight:600;color:var(--mute)}
.filters select,.filters input[type=search]{width:100%;min-width:0;flex:none}
.bulkbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;min-height:46px;padding:8px 12px;margin-bottom:8px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj)}
.bulkbar:has(b){background:var(--soft);border-color:var(--brand)}
.bulk-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pick{display:flex;align-items:center;gap:9px;margin:0;color:var(--ink);font-size:14px;cursor:pointer}
.pick input{width:17px;height:17px}
.list .item.lead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:11px 12px;cursor:default}
.list .item.lead .pick{align-self:flex-start;padding-top:2px}
.item.lead.picked{background:var(--soft);border-color:var(--brand)}
.lead-body{cursor:pointer;min-width:0}
.lead-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.lead-time{font-size:12px;color:var(--mute);white-space:nowrap}
.lead-text{margin:2px 0 7px}
.lead-tags{display:flex;gap:5px;flex-wrap:wrap}
.empty-chat{text-align:center;color:var(--mute);padding:40px 20px}.empty-chat b{color:var(--ink)}
.lead-split{grid-template-columns:minmax(300px,380px) minmax(0,1fr)}
@media(max-width:860px){.lead-split{grid-template-columns:1fr}}

.filters select,.filters input[type=search]{height:42px}

/* ---------- IA ---------- */
.inline{display:flex;gap:8px;align-items:stretch}.inline input{flex:1;min-width:0}.inline .btn{flex:none}
.modelres{margin-top:8px}
.mchips{max-height:128px;overflow:auto;padding:4px 0}
details.adv{margin:4px 0 0;border-top:1px solid var(--line);padding-top:10px}
details.adv>summary{cursor:pointer;color:var(--mute);font-size:14px;font-weight:600;padding:4px 0}
details.adv[open]>summary{margin-bottom:8px}
.opts.prov{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:860px){.opts.prov{grid-template-columns:1fr}}
.rsec.nb{border-top:0;margin-top:0;padding-top:0}
dialog.wide{width:min(640px,94vw)}
.dlg-body{max-height:60vh;overflow:auto;padding:2px}
#dlg-err .err{margin:12px 0 0}

/* ---------- biblioteca ---------- */
.libtools{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:0 0 6px}
.libtools .fbox{display:flex;flex-direction:column;gap:5px;flex:1 1 260px}.libtools .fbox label{margin:0;font-size:12.5px;font-weight:600;color:var(--mute)}
.libtools input{height:42px}.libtools .btn{height:42px}
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(max-width:860px){.pgrid{grid-template-columns:1fr}}
.pcard{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj)}
.pc-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.pc-head b{font-size:15.5px}
.pc-body{flex:1;min-width:0}
.pc-bubble{max-width:none;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.5}
.pc-chips{margin:0}
.fsteps{display:flex;flex-wrap:wrap;gap:6px 4px;margin:0;padding:0;list-style:none;counter-reset:s}
.fsteps li{counter-increment:s;font-size:13px;padding:3px 10px;border-radius:99px;background:var(--soft);color:var(--brand);font-weight:600}
.fsteps li+li::before{content:"→";margin-right:8px;color:var(--mute);font-weight:400}
.pc-actions{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
.pc-actions .btn svg{width:14px;height:14px}

/* ---------- contatos ---------- */
.tbl-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj)}
table.ctbl{width:100%;border-collapse:collapse;font-size:14px}
.ctbl th{position:sticky;top:0;text-align:left;font-size:12.5px;font-weight:600;color:var(--mute);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--card);white-space:nowrap}
.ctbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.ctbl tbody tr:last-child td{border-bottom:0}
.ctbl tbody tr:hover{background:var(--soft)}
.ctbl tr.picked{background:var(--soft)}.ctbl tr.on{box-shadow:inset 3px 0 0 var(--brand);background:var(--soft)}
.ctbl td{cursor:pointer}.ctbl td.c-ck{cursor:default}
.ctbl .c-ck{width:38px;padding-right:0}.ctbl .c-ck input{width:17px;height:17px}
.ctbl .c-main{min-width:200px}.ctbl .c-main b{display:block;font-weight:600}
.ctbl .mono,.dr-head .mono{font-size:13px;color:var(--mute)}
.ctbl .c-when{white-space:nowrap;color:var(--mute)}
.ctbl.small th,.ctbl.small td{padding:8px 10px;font-size:13px}.ctbl.small td{cursor:default}
.ctbl.small tbody tr:hover{background:none}

.scrim{position:fixed;inset:0;background:rgba(8,20,16,.45);z-index:55}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:56;width:min(480px,100vw);background:var(--bg);border-left:1px solid var(--line);box-shadow:-12px 0 40px rgba(0,0,0,.25);overflow:auto;display:flex;flex-direction:column}
.drawer[hidden],.scrim[hidden]{display:none}
.dr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:2}
.dr-head h2{margin:0;font-size:19px}
.dr-body{padding:18px 20px 40px}
.dr-body .card{padding:16px}
@media (prefers-reduced-motion:no-preference){.drawer{animation:drin .18s ease-out}@keyframes drin{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}}
#a-gem+.fgrid{margin-top:14px}

/* interruptor geral da IA */
.aimaster{border-left:4px solid var(--line)}
.aimaster.on{border-left-color:var(--brand)}
.aistate{display:grid;gap:4px}
.aistate .hint{max-width:75ch}
.aimaster .err{margin:12px 0 0}

/* ---------- identidade do número ---------- */
.adot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.badge.num.acct{gap:6px}
.numbar{margin:0 0 12px}.numbar:empty{display:none}
.nlabel{display:block;font-size:12.5px;font-weight:600;color:var(--mute);margin:0 0 6px}
.numchips{display:flex;gap:8px;flex-wrap:wrap}
.nchip{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;font:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:99px;cursor:pointer}
.nchip:hover{border-color:var(--brand)}
.nchip.on{border-color:var(--brand);background:var(--soft);font-weight:600}
.nchip small{color:var(--mute);font-size:12.5px}
.nchip .count{font-size:12px;font-weight:600;padding:1px 8px;border-radius:99px;background:var(--track);color:var(--mute)}
.recv{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--mute);margin-top:4px}
.recv b{color:var(--ink)}
.convrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.convrow:last-child{border-bottom:0}

/* ---------- grupos ---------- */
.grnum{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:0 0 18px}
.grcard{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-obj)}
.grcard.off{opacity:.8}
.grc-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grc-top .mono{font-size:13px;color:var(--mute)}
.grc-meta{font-size:14px}
.gr-topic{display:block;font-size:13px;color:var(--mute);max-width:46ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.mrow:last-child{border-bottom:0}.mrow b{display:block;font-weight:600}.mrow .mono{font-size:13px;color:var(--mute);display:block}
.sr{position:absolute;left:-9999px}
#mb-list{max-height:360px;overflow:auto;margin-top:8px}

/* ---------- conflitos ---------- */
.card.cf{border-left:4px solid var(--line)}
.card.cf.bad{border-left-color:var(--bad)}.card.cf.warn{border-left-color:var(--signal)}
.cf-items{margin:0 0 8px;padding-left:20px;font-size:14px;color:var(--ink)}.cf-items li{margin:3px 0;overflow-wrap:anywhere}
.grwarn{margin:0;max-width:none;color:var(--warn);background:var(--warn-bg);padding:7px 10px;border-radius:var(--r-ctl);line-height:1.4}
.filters .fbox.wide{flex:1 1 100%}.filters .fbox .lbl{font-size:12.5px;font-weight:600;color:var(--mute)}
.opt.on{border-color:var(--line)}.opt:has(input:checked) b{color:var(--ink)}

/* ---------- gateway ---------- */
.gw-head{margin:0 0 14px}
.kpi.ok b{color:var(--ok)}
.pixqr{display:flex;justify-content:center;padding:6px 0 12px}
.pixqr img{background:#fff;padding:10px;border:1px solid var(--line);border-radius:var(--r-obj)}
.c-act{white-space:nowrap;text-align:right}.c-act .btn{margin-left:6px}
.ctbl .badge+.badge{margin-left:5px}
#gw-imp-res .callout{margin-top:12px}

/* canvas dos funis */
.fncv-wrap{position:relative;border:1px solid var(--line);border-radius:var(--r-obj);background:var(--bg);margin-bottom:14px;overflow:hidden}
.fncv{display:block;width:100%;height:520px;touch-action:none;cursor:grab;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:22px 22px}
.fncv-tools{position:absolute;right:8px;top:8px;display:flex;gap:4px}.fncv-tools .btn{padding:3px 10px;font-size:12.5px;min-height:0;width:auto}
.cv-n{fill:var(--card,var(--bg));stroke:var(--line);stroke-width:1.5}
.cv-n.sel{stroke:var(--brand);stroke-width:2.5}
.cv-n.auto{stroke-dasharray:5 3}
.cv-n.term{fill:var(--track)}
.cv-n.term.bad{fill:var(--bad-bg);stroke:var(--bad)}
.cv-n.term.ok{fill:var(--ok-bg);stroke:var(--ok)}
.cv-n.term.warn{fill:var(--warn-bg);stroke:var(--warn)}
.cv-n1{font-size:13px;font-weight:650;fill:var(--ink)}
.cv-t{font-size:11.5px;fill:var(--ink);pointer-events:none}
.cv-t.dim{fill:var(--mute)}
.cv-node text{pointer-events:none}
.cv-e{fill:none;stroke:var(--mute);stroke-width:1.5}
.cv-e.dash{stroke-dasharray:6 4}
.cv-e.dot{stroke-dasharray:1.5 4;stroke-linecap:round;stroke-width:2.2}
.cv-lb{fill:var(--bg);stroke:var(--line)}
@media(max-width:700px){.fncv{height:320px}}
