/* Sistema visual: mesmos tokens de apps/web (buscarlead), agora com tema claro,
   escuro e "sistema". Tudo em CSS variables para o toggle nao tocar em classe. */
:root{
  --primary:#0077b6; --primary-2:#034078; --primary-soft:#e6f4f9;
  --bg:#f6f7f9; --surface:#fff; --surface-2:#fafafb; --tint:#f2f4f7;
  --border:#e4e7ec; --border-2:#d0d5dd;
  --text:#101828; --text-2:#475467; --muted:#667085;
  --ok:#197e43; --warn:#9a5600; --bad:#be2d37;
  --grad:linear-gradient(135deg,#0077b6 0%,#034078 100%);
  --sh-1:0 1px 2px rgba(16,24,40,.05);
  --sh-2:0 4px 16px rgba(0,119,182,.08), 0 2px 8px rgba(10,22,40,.04);
  --sh-3:0 8px 28px rgba(10,22,40,.14), 0 4px 16px rgba(0,119,182,.14);
  --r:12px; --r-2:16px; --r-3:20px;
  --nav-h:64px;
}
html[data-tema="escuro"]{
  --primary:#47b4eb; --primary-2:#96cdff; --primary-soft:#122b3c;
  --bg:#0d1117; --surface:#161b22; --surface-2:#1c222a; --tint:#212730;
  --border:#2e3640; --border-2:#404a56;
  --text:#e6edf3; --text-2:#a5b0bd; --muted:#97a3b1;
  --ok:#3fb96e; --warn:#e8aa3c; --bad:#f06e6c;
  --grad:linear-gradient(135deg,#0077b6 0%,#034078 100%);
  --sh-1:0 1px 2px rgba(0,0,0,.4);
  --sh-2:0 4px 16px rgba(0,0,0,.3);
  --sh-3:0 8px 28px rgba(0,0,0,.5);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif;
  -webkit-font-smoothing:antialiased;padding-bottom:calc(var(--nav-h) + 20px)}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;letter-spacing:-.02em}
/* topo */
.topo{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.topo .in{max-width:660px;margin:0 auto;padding:12px 18px;display:flex;align-items:center;gap:12px}
.marca{display:flex;align-items:center;gap:9px;font-weight:650;font-size:16px}
.marca .m{width:30px;height:30px;border-radius:9px;background:var(--grad);color:#fff;
  display:grid;place-items:center;font-size:13px;font-weight:700}
.cresce{flex:1}
.icobtn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface);
  display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-1);transition:.15s}
.icobtn:hover{background:var(--tint)}
.selo{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;
  padding:5px 10px;border-radius:99px;background:var(--surface);border:1px solid var(--border);color:var(--text-2)}
.led{width:7px;height:7px;border-radius:50%;background:var(--muted)}
.led.on{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.led.off{background:var(--bad)}
/* conteudo */
main{max-width:660px;margin:0 auto;padding:18px}
.aba{display:none;animation:sobe .22s cubic-bezier(.22,1,.36,1) both}
.aba.ativa{display:block}
@keyframes sobe{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tit{font-size:20px;margin-bottom:2px}
.sub{color:var(--muted);font-size:13.5px;margin:0 0 18px}
.bloco{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2);
  padding:16px;margin-bottom:14px;box-shadow:var(--sh-2)}
.bloco>h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px}
.linha{display:flex;gap:10px;align-items:center}
.linha.entre{justify-content:space-between}
label.campo{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin:0 0 6px}
input,select,textarea{width:100%;background:var(--surface-2);color:var(--text);border:1px solid var(--border);
  border-radius:var(--r);padding:12px 13px;font:15px/1.45 inherit;transition:.15s}
select{cursor:pointer;appearance:none;background-image:none}
textarea{resize:vertical;font:14px/1.6 ui-monospace,Menlo,Consolas,monospace}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}
/* botoes */
.bt{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);
  background:var(--surface);border-radius:var(--r);padding:12px 15px;font-weight:600;font-size:14px;
  cursor:pointer;transition:.15s;box-shadow:var(--sh-1)}
.bt:hover{background:var(--tint)}
.bt:active{transform:translateY(1px)}
.bt:disabled{opacity:.45;cursor:not-allowed;transform:none}
.bt.pri{background:var(--grad);border:0;color:#fff;box-shadow:0 6px 16px rgba(0,119,182,.3)}
.bt.pri:hover{filter:brightness(1.07)}
.bt.fantasma{background:transparent;box-shadow:none}
.bt.perigo{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--border))}
.bt.larga{width:100%}
.bt.gigante{width:100%;padding:17px;font-size:16px;border-radius:var(--r-2)}
/* segmentado */
.seg{display:flex;gap:4px;background:var(--tint);border:1px solid var(--border);border-radius:var(--r);padding:4px}
.seg button{flex:1;border:0;background:transparent;border-radius:9px;padding:10px 8px;font-size:13.5px;
  font-weight:600;color:var(--muted);cursor:pointer;transition:.15s}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:var(--sh-1)}
/* escolhas (mensagens) */
.escolhas{display:flex;flex-direction:column;gap:8px}
.escolha{display:flex;align-items:center;gap:11px;padding:12px 13px;border:1px solid var(--border);
  border-radius:var(--r);background:var(--surface-2);cursor:pointer;transition:.15s}
.escolha:hover{border-color:var(--border-2)}
.escolha[data-sel="1"]{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,var(--surface))}
.escolha .cx{width:20px;height:20px;border-radius:6px;border:2px solid var(--border-2);flex:0 0 auto;
  display:grid;place-items:center;color:#fff;font-size:12px;transition:.15s}
.escolha[data-sel="1"] .cx{background:var(--primary);border-color:var(--primary)}
.escolha .nm{font-weight:600;font-size:14.5px}
.escolha .de{font-size:12.5px;color:var(--muted);margin-top:1px}
.escolha .cresce{min-width:0}
.escolha .de,.escolha .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* itens do acervo */
.item{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);
  border-radius:var(--r-2);background:var(--surface);margin-bottom:10px;box-shadow:var(--sh-1)}
.item .cresce{min-width:0}
.item .nm{font-weight:650;font-size:15px}
.item .de{font-size:12.5px;color:var(--muted);margin-top:2px}
.marca-tipo{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:3px 8px;border-radius:99px;background:var(--primary-soft);color:var(--primary)}
.vazio{text-align:center;padding:34px 18px;color:var(--muted);font-size:13.5px;
  border:1px dashed var(--border-2);border-radius:var(--r-2)}
.vazio b{display:block;color:var(--text);font-size:15px;margin-bottom:4px}
/* etiquetas e barra */
.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.tg{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:99px;background:var(--tint);
  border:1px solid var(--border);color:var(--text-2)}
.tg b{color:var(--text)}
.tg.ok b{color:var(--ok)} .tg.bad b{color:var(--bad)} .tg.warn b{color:var(--warn)}
.prog{height:6px;border-radius:99px;background:var(--tint);overflow:hidden;margin:4px 0 10px}
.prog i{display:block;height:100%;background:var(--grad);width:0;transition:width .45s cubic-bezier(.22,1,.36,1)}
.registro{max-height:190px;overflow:auto;margin:10px 0 0;padding:0;list-style:none;
  font:11.5px/1.5 ui-monospace,Menlo,Consolas,monospace}
.registro li{display:flex;gap:8px;padding:5px 0;border-bottom:1px solid var(--border)}
.registro time{flex:0 0 52px;color:var(--muted)}
.registro .warn{color:var(--warn)} .registro .error{color:var(--bad)}
.dica{font-size:12.5px;color:var(--muted);margin:10px 0 0}
.faixa{border-radius:var(--r);padding:12px 14px;font-size:13px;margin:0 0 14px;
  background:var(--primary-soft);border:1px solid var(--border);color:var(--text-2)}
.faixa.warn{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border-color:color-mix(in srgb,var(--warn) 40%,var(--border))}
.faixa.bad{background:color-mix(in srgb,var(--bad) 10%,var(--surface));border-color:color-mix(in srgb,var(--bad) 35%,var(--border))}
/* menu inferior */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:var(--nav-h);
  background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px);
  border-top:1px solid var(--border);display:flex;padding-bottom:env(safe-area-inset-bottom)}
.nav .in{max-width:660px;margin:0 auto;width:100%;display:grid;grid-template-columns:repeat(4,1fr)}
.nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;
  transition:.15s;position:relative}
.nav button svg{width:22px;height:22px;stroke-width:1.9}
.nav button[aria-current="page"]{color:var(--primary)}
.nav button[aria-current="page"]::before{content:"";position:absolute;top:0;width:30px;height:3px;
  border-radius:0 0 4px 4px;background:var(--primary)}
.nav .bolha{position:absolute;top:8px;right:calc(50% - 20px);min-width:16px;height:16px;border-radius:99px;
  background:var(--primary);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}
/* modal */
.veu{position:fixed;inset:0;z-index:60;background:rgba(10,22,40,.5);backdrop-filter:blur(4px);
  display:flex;align-items:flex-end;justify-content:center;padding:0;animation:apaga .2s ease-out both}
@media (min-width:680px){.veu{align-items:center;padding:22px}}
.folha{background:var(--surface);border:1px solid var(--border);border-radius:22px 22px 0 0;width:100%;
  max-width:520px;padding:22px;box-shadow:var(--sh-3);animation:sobeF .26s cubic-bezier(.22,1,.36,1) both;
  max-height:92vh;overflow:auto}
@media (min-width:680px){.folha{border-radius:var(--r-3)}}
.folha .ic{width:44px;height:44px;border-radius:13px;background:var(--primary-soft);display:grid;
  place-items:center;margin-bottom:13px;color:var(--primary)}
.folha h3{font-size:19px;margin-bottom:5px}
.folha p{margin:0 0 4px;font-size:13.5px;color:var(--text-2)}
.resumo{margin:16px 0;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.resumo div{display:flex;justify-content:space-between;gap:12px;padding:10px 13px;font-size:13.5px;
  border-bottom:1px solid var(--border);background:var(--surface-2)}
.resumo div:last-child{border-bottom:0}
.resumo span:first-child{color:var(--muted)}
.resumo span:last-child{font-weight:650;text-align:right}
.acoes{display:flex;gap:10px;margin-top:8px}
.acoes .bt{flex:1}
.roda{width:19px;height:19px;border-radius:50%;border:2.5px solid color-mix(in srgb,var(--primary) 25%,transparent);
  border-top-color:var(--primary);animation:gira .7s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
@keyframes apaga{from{opacity:0}to{opacity:1}}
@keyframes sobeF{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.oculto{display:none!important}
.mono{font:11.5px/1.4 ui-monospace,Menlo,Consolas,monospace;word-break:break-all;color:var(--text-2)}

/* ============ padronizacao com o buscarlead (apps/web) ============
   Controles com a mesma altura, raio e estados do componente Select/Button de la:
   trigger 44px, raio 8px, hover em border-strong, foco com anel primary/15.
   Segmentado ativo em primary-soft, como os toggles do AppPrimitives. */

input,select,textarea{border-radius:8px;font-size:14px;font-weight:500}
input,select{height:44px;padding:0 14px}
input[type=checkbox]{height:auto;padding:0}
textarea{padding:11px 14px;font-weight:400}
input:hover,select:hover,textarea:hover{border-color:var(--border-2)}
input,select,textarea{background:var(--surface)}

/* select com a seta do padrao (o nativo perde o estilo em alguns SOs) */
.sel{position:relative}
.sel select{width:100%;padding-right:38px;cursor:pointer}
.sel::after{content:"";position:absolute;right:15px;top:50%;width:8px;height:8px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:translateY(-70%) rotate(45deg);pointer-events:none}
.sel select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}

.bt{border-radius:10px;min-height:42px;font-size:13.5px}
.bt.gigante{border-radius:12px;min-height:54px}
.seg{border-radius:10px}
.seg button{border-radius:8px}
.seg button[aria-pressed="true"]{background:var(--primary-soft);color:var(--primary);box-shadow:none;font-weight:700}

/* menu inferior flutuante */
body{padding-bottom:calc(var(--nav-h) + 34px)}
.nav{left:14px;right:14px;bottom:14px;height:var(--nav-h);border:1px solid var(--border);
  border-radius:20px;background:color-mix(in srgb,var(--surface) 94%,transparent);
  box-shadow:var(--sh-3);overflow:hidden;padding-bottom:0;
  margin-bottom:env(safe-area-inset-bottom)}
.nav .in{max-width:632px}
.nav button{min-height:60px;font-size:10px;font-weight:600;gap:4px}
.nav button svg{width:20px;height:20px}
.nav button[aria-current="page"]::before{display:none}
.nav button[aria-current="page"] svg{transform:translateY(-1px)}

/* ============ menu inferior no padrao do applicator (frontend/src/components/AppShell.tsx
   + .app-nav-indicator do index.css): no celular colado embaixo com sombra para cima;
   no desktop um dock centralizado de largura automatica, com indicador que desliza. */
.nav{
  left:0;right:0;bottom:0;height:auto;border:0;border-top:1px solid var(--border-2);
  border-radius:0;background:var(--surface);box-shadow:0 -12px 34px -22px rgba(10,22,40,.55);
  padding:6px 8px max(6px, env(safe-area-inset-bottom));margin:0;overflow:visible
}
.nav .in{position:relative;max-width:576px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.nav .ind{
  position:absolute;top:0;bottom:0;left:0;z-index:0;width:calc((100% - 12px) / 4);
  border-radius:12px;background:var(--primary-soft);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 10%,transparent),
             0 8px 20px -16px color-mix(in srgb,var(--primary) 50%,transparent);
  transform:translateX(calc(var(--ind-i,0) * 100% + var(--ind-i,0) * 4px));
  transition:transform 180ms cubic-bezier(.2,0,0,1)
}
.nav button{
  position:relative;z-index:1;min-height:52px;border-radius:12px;gap:4px;
  font-size:10px;font-weight:700;letter-spacing:.01em;transition:color 150ms
}
.nav button svg{width:20px;height:20px}
.nav button[aria-current="page"]{color:var(--primary)}
.nav button[aria-current="page"]::before{display:none}
body{padding-bottom:96px}
@media (min-width:680px){
  .nav{
    left:50%;right:auto;bottom:24px;transform:translateX(-50%);width:auto;
    border:1px solid var(--border-2);border-radius:16px;padding:6px;
    box-shadow:0 18px 40px -24px rgba(10,22,40,.45), 0 2px 8px rgba(10,22,40,.06);
    outline:1px solid color-mix(in srgb,var(--primary) 10%,transparent);outline-offset:0
  }
  .nav .in{grid-template-columns:repeat(4,88px);max-width:none}
  body{padding-bottom:110px}
}

/* ============ select com painel proprio, igual ao Radix Select de apps/web
   (trigger 44px/raio 8px; painel raio 12px com shadow-floating; item raio 10px,
   destacado em primary-soft e o escolhido em bold primary com o check). */
.sel-ui select{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;margin:0;padding:0}
.sel-ui::after{display:none}
.sel-trg{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:44px;
  padding:0 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;
  font-size:14px;font-weight:500;color:var(--text);cursor:pointer;text-align:left;transition:.15s;overflow:hidden}
.sel-trg:hover{border-color:var(--border-2)}
.sel-trg:focus-visible,.sel-trg[aria-expanded="true"]{outline:0;border-color:var(--primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}
.sel-trg .rot{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sel-trg .rot.vazio{color:var(--muted)}
.sel-trg .cv{flex:0 0 auto;width:8px;height:8px;border-right:2px solid var(--muted);
  border-bottom:2px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .18s}
.sel-trg[aria-expanded="true"] .cv{transform:translateY(2px) rotate(-135deg)}
.sel-pan{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:70;max-height:320px;overflow:auto;
  overscroll-behavior:contain;background:var(--surface);border:1px solid var(--border);border-radius:12px;
  box-shadow:var(--sh-3);padding:6px;animation:escala .15s ease-out both}
.sel-pan.acima{top:auto;bottom:calc(100% + 6px)}
@keyframes escala{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.sel-op{position:relative;display:flex;align-items:center;width:100%;padding:9px 12px 9px 32px;border:0;
  background:transparent;border-radius:10px;font-size:14px;font-weight:500;color:var(--text);
  cursor:pointer;text-align:left;transition:background .12s,color .12s}
.sel-op:hover,.sel-op[data-foco="1"]{background:var(--primary-soft);color:var(--primary)}
.sel-op[aria-selected="true"]{font-weight:700;color:var(--primary)}
.sel-op[aria-selected="true"]::before{content:"";position:absolute;left:12px;top:50%;width:5px;height:9px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-70%) rotate(45deg)}
.sel-op.nada{color:var(--muted);cursor:default;padding-left:12px}
.sel-op.nada:hover{background:transparent;color:var(--muted)}

/* chip removivel das escolhas (listas/mensagens selecionadas) */
.tg.escolhido{cursor:pointer;background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 25%,var(--border));
  color:var(--primary);font-weight:650;padding-right:8px}
.tg.escolhido b{color:var(--primary);opacity:.55;margin-left:2px;font-weight:700}
.tg.escolhido:hover{background:color-mix(in srgb,var(--primary) 16%,var(--surface))}
.tg.escolhido:hover b{opacity:1}
#chipsListas .tags,#chipsMsgs .tags{margin-top:10px}
