/* ============================================================================
   ALGORY no Quasar -- c3003 -- algory.css
   Tudo aqui tem prefixo alg- e fica preso a #alg-pn ou #alg-bt: o Quasar ja
   usa .msg, .ficha, .ac e outros nomes, e este arquivo nao pode mudar nada
   que nao seja dele.
   Regra de cor: ROXO e do Algory (leitura). O roxo nunca pinta nada do Quasar
   -- a ficha continua azul mesmo quando quem a abriu foi o Algory.
   ========================================================================== */
:root{
  --alg-1:#6D28D9;--alg-2:#8B5CF6;--alg-3:#3B0F8C;--alg-soft:rgba(124,92,250,.10);
  --alg-borda:rgba(124,92,250,.18);--alg-txt:#1F1147;--alg-txt2:#453A6B;--alg-txt3:#7A6BB0;
  --alg-fundo:linear-gradient(180deg,#FDFCFF 0%,#F7F4FF 100%);--alg-cartao:#fff;--alg-sup:#FBF9FF;
}
body.dark{
  --alg-borda:rgba(167,139,250,.22);--alg-txt:#EDE9FE;--alg-txt2:#C9C1EA;--alg-txt3:#9D93C7;
  --alg-fundo:linear-gradient(180deg,#1B1730 0%,#15122A 100%);--alg-cartao:#221D3A;--alg-sup:#1E1934;
  --alg-soft:rgba(167,139,250,.14);
}

/* ---------------- o botao, na ponta direita da busca ---------------- */
#search.alg-tem-botao input{padding-right:118px}
#alg-bt{position:absolute;right:5px;top:5px;height:32px;padding:0 12px 0 10px;border-radius:9px;border:0;
  display:flex;align-items:center;gap:6px;font:600 12.5px/1 var(--f,Inter,system-ui,sans-serif);color:#fff;
  cursor:pointer;overflow:hidden;z-index:2;
  background:linear-gradient(135deg,var(--alg-1) 0%,var(--alg-2) 100%);
  box-shadow:0 2px 8px rgba(109,40,217,.25);transition:box-shadow .25s,transform .25s}
#alg-bt svg{width:15px;height:15px;transition:transform .45s cubic-bezier(.22,1,.36,1)}
#alg-bt span{position:relative;z-index:1}
#alg-bt::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:50%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);
  transition:left .7s cubic-bezier(.22,1,.36,1)}
#alg-bt:hover{box-shadow:0 6px 20px rgba(109,40,217,.38);transform:translateY(-1px)}
#alg-bt:hover::after{left:120%}
#alg-bt:hover svg{transform:rotate(-14deg) scale(1.12)}
#alg-bt:active{transform:translateY(0) scale(.98)}
#search:has(#alg-bt:hover) input,#search.alg-on input{border-color:var(--alg-2);box-shadow:0 0 0 4px rgba(124,92,250,.12)}

/* ---------------- o painel: encostado, grande e minimizado ---------------- */
#alg-pn{position:fixed;right:22px;bottom:22px;width:400px;height:calc(100vh - 100px);
  border-radius:24px;overflow:hidden;z-index:900;display:flex;flex-direction:column;
  font-family:var(--f,Inter,system-ui,sans-serif);color:var(--alg-txt2);background:var(--alg-fundo);
  box-shadow:0 34px 90px rgba(76,29,149,.30),0 0 0 1px var(--alg-borda);
  --ox:50%;--oy:0%;clip-path:circle(0px at var(--ox) var(--oy));pointer-events:none;visibility:hidden;
  transition:clip-path .62s cubic-bezier(.65,0,.25,1),width .42s cubic-bezier(.22,1,.36,1),
    height .42s cubic-bezier(.22,1,.36,1),right .42s cubic-bezier(.22,1,.36,1),
    bottom .42s cubic-bezier(.22,1,.36,1),border-radius .3s}
#alg-pn *{box-sizing:border-box}
#alg-pn.alg-on{clip-path:circle(var(--r,160%) at var(--ox) var(--oy));pointer-events:auto;visibility:visible}
#alg-pn.alg-aberto{clip-path:none}
#alg-pn.alg-fechando{transition:clip-path .38s cubic-bezier(.65,0,.35,1),visibility 0s .38s}
#alg-pn.alg-grande{width:min(960px,82vw);height:86vh;bottom:7vh;right:calc((100vw - min(960px,82vw))/2)}
#alg-pn.alg-min{height:54px;width:210px;border-radius:30px}
/* a ficha do Quasar abre a direita com 476 px: o Algory desliza para o lado dela */
body.ficha-aberta #alg-pn{right:498px}
#alg-veu{position:fixed;inset:0;z-index:890;background:rgba(30,16,70,.28);backdrop-filter:blur(3px);
  opacity:0;pointer-events:none;transition:opacity .3s}
#alg-veu.alg-on{opacity:1;pointer-events:auto}

#alg-pn .alg-h{position:relative;display:flex;align-items:center;gap:11px;padding:16px 16px 16px 18px;color:#fff;
  background:radial-gradient(120% 160% at 0% 0%,#8B5CF6 0%,#6D28D9 42%,#3B0F8C 100%);flex:none}
#alg-pn .alg-h::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 90% at 88% -20%,rgba(255,255,255,.28),transparent 60%)}
#alg-pn .alg-h b{font-size:15.5px;letter-spacing:.2px;color:#fff}
#alg-pn .alg-h small{display:block;font-size:11px;color:rgba(255,255,255,.72)}
#alg-pn .alg-logo{width:22px;height:30px;flex:none;position:relative;z-index:1}
#alg-pn .alg-logo path{fill:rgba(255,255,255,.14);stroke:#fff;stroke-width:1.9;stroke-linejoin:round}
#alg-pn .alg-bts{margin-left:auto;display:flex;gap:4px;position:relative;z-index:1}
#alg-pn .alg-bts button{width:30px;height:30px;border-radius:9px;border:0;background:none;cursor:pointer;
  color:rgba(255,255,255,.85);font-size:14px;display:flex;align-items:center;justify-content:center}
#alg-pn .alg-bts button:hover{background:rgba(255,255,255,.16);color:#fff}
#alg-pn.alg-min .alg-h{padding:12px 16px;cursor:pointer;height:54px}
#alg-pn.alg-min .alg-h small,#alg-pn.alg-min .alg-so{display:none}

#alg-pn .alg-b{flex:1;overflow-y:auto;padding:16px 18px;min-height:0}
#alg-pn.alg-min .alg-b,#alg-pn.alg-min .alg-in{display:none}
#alg-pn.alg-grande .alg-b{display:grid;grid-template-columns:330px 1fr;gap:22px;align-items:start}
#alg-pn.alg-grande .alg-r{border-left:1px solid var(--alg-borda);padding-left:22px;min-height:100%}
#alg-pn .alg-t{font-family:var(--fd,'Space Grotesk',system-ui);font-size:10px;letter-spacing:1.5px;
  color:var(--alg-txt3);text-transform:uppercase;margin:4px 0 9px}
#alg-pn .alg-res{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
#alg-pn .alg-res div{background:var(--alg-cartao);border:1px solid var(--alg-borda);border-radius:14px;
  padding:10px 11px;box-shadow:0 4px 14px rgba(76,29,149,.05)}
#alg-pn .alg-res span{display:block;font-size:10.5px;color:var(--alg-txt3)}
#alg-pn .alg-res b{font-family:var(--fd,'Space Grotesk',system-ui);font-size:19px;color:var(--alg-txt)}
#alg-pn .alg-q{display:flex;flex-direction:column;gap:7px;margin-bottom:6px}
#alg-pn .alg-q button{position:relative;text-align:left;background:var(--alg-cartao);border:1px solid var(--alg-borda);
  border-radius:12px;padding:10px 12px 10px 14px;font:inherit;font-size:12.8px;color:var(--alg-txt2);
  cursor:pointer;transition:.18s;overflow:hidden}
#alg-pn .alg-q button::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--alg-1);
  transform:scaleY(0);transition:transform .2s}
#alg-pn .alg-q button:hover{border-color:var(--alg-1);transform:translateX(2px)}
#alg-pn .alg-q button:hover::before{transform:scaleY(1)}
#alg-pn .alg-q button b{color:var(--alg-1)}
body.dark #alg-pn .alg-q button b{color:#C4B5FD}
#alg-pn .alg-q .alg-aval{background:linear-gradient(135deg,var(--alg-1),var(--alg-2));color:#fff;border:0;font-weight:600}
#alg-pn .alg-q .alg-aval b{color:#fff}
#alg-pn .alg-conv{display:flex;flex-direction:column;gap:10px;margin-top:12px}
#alg-pn.alg-grande .alg-conv{margin-top:0}
#alg-pn .alg-vazio{font-size:12.5px;color:var(--alg-txt3);line-height:1.6;padding:6px 2px}
#alg-pn .alg-msg{font-size:12.8px;line-height:1.62;border-radius:14px;padding:10px 13px;
  animation:alg-entra .3s cubic-bezier(.22,1,.36,1)}
@keyframes alg-entra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#alg-pn .alg-eu{align-self:flex-end;background:linear-gradient(135deg,var(--alg-1),var(--alg-2));color:#fff;
  max-width:85%;border-bottom-right-radius:5px}
#alg-pn .alg-alg{background:var(--alg-cartao);color:var(--alg-txt2);border:1px solid var(--alg-borda);border-bottom-left-radius:5px}
#alg-pn .alg-alg b{color:var(--alg-txt)}
#alg-pn .alg-fonte{display:block;margin-top:7px;font-size:10.5px;color:var(--alg-txt3)}
#alg-pn .alg-cit{font-family:var(--fd,'Space Grotesk',system-ui);font-weight:700;color:var(--alg-1);
  background:var(--alg-soft);border-radius:6px;padding:0 5px}
body.dark #alg-pn .alg-cit{color:#C4B5FD}
#alg-pn .alg-lk{color:var(--alg-txt);font-weight:600;border-bottom:1px solid rgba(109,40,217,.35);cursor:pointer}
#alg-pn .alg-lk:hover{color:var(--alg-1);border-bottom-color:var(--alg-1)}
#alg-pn .alg-ramos{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
#alg-pn .alg-ramos button{font:inherit;font-size:11.5px;color:var(--alg-1);background:var(--alg-soft);
  border:1px solid var(--alg-borda);border-radius:20px;padding:5px 10px;cursor:pointer;transition:.15s}
#alg-pn .alg-ramos button:hover{border-color:var(--alg-1)}
#alg-pn .alg-ramos .alg-qq::before{content:"↳ ";opacity:.6}
#alg-pn .alg-pessoa{border:1px solid var(--alg-borda);border-radius:14px;padding:12px 13px;background:var(--alg-sup);margin-top:8px}
#alg-pn .alg-pessoa .alg-pn{display:flex;align-items:center;gap:9px}
#alg-pn .alg-mini{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--alg-1),var(--alg-2));
  color:#fff;font-family:var(--fd,'Space Grotesk',system-ui);font-weight:600;font-size:11px;
  display:flex;align-items:center;justify-content:center;flex:none}
#alg-pn .alg-pessoa small{display:block;font-size:11px;color:var(--alg-txt3)}
#alg-pn .alg-pessoa ul{list-style:none;margin:8px 0 0;padding:0;font-size:12px;line-height:1.75}
#alg-pn .alg-pessoa ul b{color:var(--alg-txt);font-weight:600}
#alg-pn .alg-al{margin-top:7px;font-size:11.5px;color:#B45309;background:rgba(245,158,11,.10);border-radius:9px;padding:6px 9px}
#alg-pn .alg-mescla{margin-top:9px;font-size:11.5px;color:var(--alg-1);background:var(--alg-soft);border-radius:10px;padding:8px 10px}
#alg-pn .alg-in{padding:12px 14px 14px;display:flex;gap:8px;flex:none}
#alg-pn .alg-in input{flex:1;height:44px;border:1px solid var(--alg-borda);border-radius:14px;padding:0 14px;
  font:inherit;font-size:13px;outline:none;background:var(--alg-cartao);color:var(--alg-txt)}
#alg-pn .alg-in input:focus{border-color:var(--alg-2);box-shadow:0 0 0 4px rgba(124,92,250,.16)}
#alg-pn .alg-in button{height:44px;width:44px;border-radius:14px;border:0;cursor:pointer;color:#fff;
  background:linear-gradient(135deg,var(--alg-1),var(--alg-2));display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px rgba(109,40,217,.3)}
#alg-pn .alg-dig{display:flex;gap:5px;padding:13px 14px;width:max-content}
#alg-pn .alg-dig i{width:6px;height:6px;border-radius:50%;background:var(--alg-2);animation:alg-respira 1s infinite}
#alg-pn .alg-dig i:nth-child(2){animation-delay:.15s}#alg-pn .alg-dig i:nth-child(3){animation-delay:.3s}
@keyframes alg-respira{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
/* o conteudo entra em cascata depois que o card abre */
@keyframes alg-sobe{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#alg-pn.alg-entra .alg-h>*{animation:alg-sobe .45s .16s cubic-bezier(.22,1,.36,1) both}
#alg-pn.alg-entra .alg-t,#alg-pn.alg-entra .alg-res div,#alg-pn.alg-entra .alg-q button,
#alg-pn.alg-entra .alg-vazio,#alg-pn.alg-entra .alg-in{animation:alg-sobe .5s cubic-bezier(.22,1,.36,1) both;
  animation-delay:calc(var(--i,0)*42ms + 240ms)}
@media (prefers-reduced-motion:reduce){#alg-pn,#alg-pn *,#alg-bt,#alg-bt *{transition:none!important;animation:none!important}}
@media (max-width:700px){#alg-pn{right:8px;left:8px;width:auto;bottom:8px}#search.alg-tem-botao input{padding-right:52px}
  #alg-bt span{display:none}}

/* c3003 */
#alg-pn .alg-dim{color:var(--alg-txt3);font-size:11.5px}
#alg-pn .alg-ruim{color:#DC2626;font-weight:600}
#alg-pn .alg-ir{color:var(--alg-1);font-weight:600;cursor:pointer;border-bottom:1px dashed rgba(109,40,217,.45)}
#alg-pn .alg-ir:hover{border-bottom-style:solid}
body.dark #alg-pn .alg-ir{color:#C4B5FD}
/* c4006: a raiz da arvore da pagina e o link do mapa */
#alg-pn .alg-raiz{font-weight:700;font-size:13px;margin:-4px 0 6px;padding-left:12px;border-left:3px solid #8B5CF6}
#alg-pn .alg-mapa{margin-top:6px;background:none;border:0;color:#6D28D9;font-weight:600;font-size:12px;cursor:pointer;text-align:left;padding:4px 0}
body.dark #alg-pn .alg-mapa{color:#C4B5FD}
