/* ==========================================================================
   v6.5 — CREDITOS, FERRAMENTAS E ASSISTENTE
   cr-*  o saldo do mes (faixa) e as telas de creditos (Ajustes, unidade, admin)
   tl-*  as Ferramentas (Word -> PDF) e os arquivos de cada pessoa
   ai-*  o Assistente (conversas, mensagens, compositor)
   md-*  o Markdown das respostas (Core\Markdown)
   ========================================================================== */

/* aviso amarelo (o "atencao" que faltava entre o erro e a informacao) */
.ps-alert-warn{ background:rgba(230,194,0,.12); border-color:rgba(230,194,0,.45); color:var(--ps-ink); }

/* ---------------------------------------------------------------- creditos */
.cr-strips{ display:grid; gap:.6rem; grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr)); }
.cr-strip{
  background:var(--ps-surface); border:1px solid var(--ps-border); border-radius:var(--ps-r-lg);
  padding:.85rem 1rem; display:flex; flex-direction:column; gap:.3rem; min-width:0;
}
.cr-strip.is-out{ border-color:rgba(230,194,0,.6); box-shadow:inset 3px 0 0 var(--ps-cyan); }
.cr-strip-top{ display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; }
.cr-strip-top b{ font-weight:600; font-size:.92rem; }
.cr-strip-top span{ font-size:.78rem; }
.cr-strip-n{ font-size:.86rem; color:var(--ps-ink-2); }
.cr-bar{ display:block; height:7px; border-radius:99px; overflow:hidden; background:var(--ps-surface-2); border:1px solid var(--ps-border); }
.cr-bar i{ display:block; height:100%; background:var(--ps-mid); border-radius:inherit; }
.cr-strip.is-out .cr-bar i{ background:var(--ps-cyan); }
.cr-strip-x{ margin:0; font-size:.78rem; color:var(--ps-ink-3); line-height:1.4; }
.cr-strip-x b{ color:var(--ps-ink-2); font-weight:600; }
.cr-strips.is-compact .cr-strip{ padding:.6rem .85rem; gap:.2rem; }

/* Ajustes > Creditos e as tabelas de cota (unidade, admin) */
.cr-cfg{ display:flex; flex-direction:column; gap:.9rem; }
.cr-cfg-row{ display:grid; gap:.75rem 1.25rem; grid-template-columns:minmax(0,1fr); align-items:start; }
@media (min-width:720px){ .cr-cfg-row{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); } }
.cr-cfg-h{ font-weight:600; margin:0 0 .15rem; font-size:.95rem; }
.cr-cfg .ps-switch{ margin:.1rem 0 .4rem; }
.cr-cap{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.cr-cap .ps-input{ max-width:9rem; }
.cr-quota-grid{ display:grid; gap:.5rem 1rem; grid-template-columns:repeat(auto-fit, minmax(11rem, 1fr)); }
.cr-quota-grid .ps-field{ margin-bottom:0; }
.cr-sec{ margin-top:1.1rem; padding-top:1rem; border-top:1px solid var(--ps-border); }
.cr-sec > h4{ font-size:.9rem; font-weight:600; margin:0 0 .25rem; }

/* admin > Ferramentas e Assistente: o icone no resumo da classe nova */
.tl-adm .ps-edit-sum svg{ width:16px; height:16px; flex:none; vertical-align:-3px; }

/* ---------------------------------------------------------------- ferramentas */
.tl-mod{ display:flex; flex-direction:column; gap:1rem; }
.tl-mod-head{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.85rem; align-items:start; }
.tl-mod-ic{
  width:2.6rem; height:2.6rem; border-radius:12px; display:grid; place-items:center;
  background:var(--ps-grad-soft); border:1px solid var(--ps-border); color:var(--ps-ink);
}
.tl-mod-ic svg{ width:20px; height:20px; }
.tl-mod-t{ font-size:1rem; font-weight:600; margin:0 0 .2rem; }
.tl-mod-d{ margin:0; font-size:.86rem; color:var(--ps-ink-2); }
.tl-cost{ white-space:nowrap; }
@media (max-width:520px){
  .tl-mod-head{ grid-template-columns:auto minmax(0,1fr); }
  .tl-cost{ grid-column:2; justify-self:start; }
}
.tl-form{ display:flex; flex-direction:column; gap:.75rem; align-items:flex-start; }
.tl-drop{
  position:relative; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.25rem; text-align:center; padding:1.4rem 1rem; cursor:pointer;
  border:1.5px dashed var(--ps-border-strong); border-radius:var(--ps-r-lg); background:var(--ps-surface-2);
  transition:border-color .15s, background .15s;
}
.tl-drop:hover, .tl-drop.is-over{ border-color:var(--ps-ink-3); background:var(--ps-grad-soft); }
.tl-drop.has-file{ border-style:solid; border-color:var(--ps-ink-3); }
.tl-drop input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.tl-drop-ic svg{ width:22px; height:22px; color:var(--ps-ink-2); }
.tl-drop-t{ font-weight:600; font-size:.92rem; overflow-wrap:anywhere; }
.tl-drop-h{ font-size:.78rem; color:var(--ps-ink-3); }
.tl-form .btn.is-busy{ opacity:.75; cursor:progress; }
.tl-h3{ display:flex; align-items:center; gap:.45rem; margin-top:1.4rem; }
.tl-list{ display:flex; flex-direction:column; gap:.45rem; }
.tl-row{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.75rem;
  padding:.7rem .9rem; background:var(--ps-surface); border:1px solid var(--ps-border); border-radius:var(--ps-r);
}
.tl-row.is-new{ box-shadow:inset 3px 0 0 var(--ps-cyan); }
.tl-row.is-err .tl-row-ic{ color:var(--ps-late, #c2410c); }
.tl-row-ic{ width:2.25rem; height:2.25rem; border-radius:10px; display:grid; place-items:center; background:var(--ps-surface-2); color:var(--ps-ink-2); }
.tl-row-ic svg{ width:17px; height:17px; }
.tl-row-txt{ display:flex; flex-direction:column; min-width:0; line-height:1.35; }
.tl-row-txt b{ font-weight:600; font-size:.92rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tl-row-txt small{ font-size:.78rem; color:var(--ps-ink-3); overflow-wrap:anywhere; }
.tl-row-act{ display:flex; gap:.35rem; flex-wrap:wrap; justify-content:flex-end; }
@media (max-width:560px){
  .tl-row{ grid-template-columns:auto minmax(0,1fr); }
  .tl-row-act{ grid-column:2; justify-content:flex-start; }
}

/* ---------------------------------------------------------------- assistente */
.ai-wrap{ display:grid; gap:1rem; grid-template-columns:minmax(0,1fr); align-items:start; }
@media (min-width:992px){ .ai-wrap{ grid-template-columns:15.5rem minmax(0,1fr); gap:1.25rem; } }
.ai-side{ display:flex; flex-direction:column; gap:.7rem; min-width:0; }
@media (min-width:992px){ .ai-side{ position:sticky; top:4.5rem; } }
.ai-new{ justify-content:center; }
.ai-side-box{ background:var(--ps-surface); border:1px solid var(--ps-border); border-radius:var(--ps-r-lg); }
.ai-side-box > summary{
  display:flex; align-items:center; gap:.45rem; padding:.7rem .9rem; cursor:pointer; list-style:none;
  font-weight:600; font-size:.88rem;
}
.ai-side-box > summary::-webkit-details-marker{ display:none; }
.ai-side-box > summary svg{ width:16px; height:16px; }
@media (min-width:992px){
  .ai-side-box > summary{ pointer-events:none; }
}
.ai-threads{ display:flex; flex-direction:column; padding:0 .4rem .45rem; max-height:60vh; overflow:auto; }
.ai-th{
  display:flex; flex-direction:column; gap:.05rem; padding:.5rem .55rem; border-radius:10px;
  color:var(--ps-ink); text-decoration:none; min-width:0;
}
.ai-th:hover{ background:var(--ps-surface-2); color:var(--ps-ink); }
.ai-th.is-on{ background:var(--ps-grad-soft); box-shadow:inset 3px 0 0 var(--ps-cyan); }
.ai-th b{ font-weight:500; font-size:.86rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ai-th small{ font-size:.72rem; color:var(--ps-ink-3); }
.ai-side-none{ padding:0 .9rem .8rem; margin:0; font-size:.84rem; }
.ai-privacy{ display:flex; gap:.45rem; align-items:flex-start; font-size:.76rem; color:var(--ps-ink-3); margin:0; line-height:1.4; }
.ai-privacy svg{ width:14px; height:14px; flex:none; margin-top:.1rem; }

.ai-main{ display:flex; flex-direction:column; gap:.9rem; min-width:0; }
.ai-head{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.ai-title{ font-size:1.05rem; font-weight:600; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.ai-del{ margin:0; }

.ai-thread{ display:flex; flex-direction:column; gap:1rem; min-height:12rem; }
.ai-hello{ text-align:center; padding:2.2rem 1rem 1rem; display:flex; flex-direction:column; align-items:center; gap:.35rem; }
.ai-hello h2{ font-size:1.25rem; font-weight:600; margin:.4rem 0 0; }
.ai-hello p{ max-width:34rem; margin:0; }
.ai-hello-ic{
  width:3.2rem; height:3.2rem; border-radius:50%; display:grid; place-items:center;
  background:var(--ps-grad-soft); border:1px solid var(--ps-border); color:var(--ps-ink);
}
.ai-hello-ic svg{ width:24px; height:24px; }
.ai-sugs{ display:flex; flex-wrap:wrap; gap:.45rem; justify-content:center; margin-top:.9rem; max-width:40rem; }

.ai-msg{ display:flex; gap:.6rem; align-items:flex-start; min-width:0; }
.ai-msg.is-user{ justify-content:flex-end; }
.ai-avatar{
  width:2rem; height:2rem; flex:none; border-radius:50%; display:grid; place-items:center;
  background:var(--ps-grad); color:var(--ps-on-grad);
}
.ai-avatar svg{ width:15px; height:15px; }
.ai-bubble{ min-width:0; max-width:100%; }
.ai-msg.is-user .ai-bubble{
  max-width:min(36rem, 88%); background:var(--ps-surface); border:1px solid var(--ps-border);
  border-radius:18px 18px 4px 18px; padding:.65rem .9rem; display:flex; flex-direction:column; gap:.5rem;
}
.ai-msg.is-ai .ai-bubble{ flex:1; padding-top:.2rem; }
.ai-text{ font-size:.94rem; line-height:1.55; overflow-wrap:anywhere; }
.ai-msg.is-err .ai-bubble{ padding-top:.35rem; }
.ai-err{ display:flex; gap:.45rem; align-items:flex-start; margin:.2rem 0 0; font-size:.88rem; color:var(--ps-ink-2);
  background:rgba(245,71,107,.07); border:1px solid rgba(245,71,107,.25); border-radius:var(--ps-r); padding:.55rem .75rem; }
.ai-err svg{ width:16px; height:16px; flex:none; margin-top:.15rem; }
.ai-meta{ display:flex; align-items:center; gap:.75rem; margin-top:.45rem; font-size:.74rem; color:var(--ps-ink-3); }
.ai-copy{
  display:inline-flex; align-items:center; gap:.3rem; border:0; background:none; padding:.15rem .3rem; border-radius:6px;
  color:var(--ps-ink-3); font-size:.74rem; cursor:pointer;
}
.ai-copy:hover{ background:var(--ps-surface-2); color:var(--ps-ink); }
.ai-copy svg{ width:13px; height:13px; }

.ai-files{ display:flex; flex-wrap:wrap; gap:.4rem; }
.ai-msg.is-ai .ai-files{ margin-top:.6rem; }
.ai-chip{
  display:inline-flex; align-items:center; gap:.4rem; max-width:100%; padding:.35rem .6rem;
  border:1px solid var(--ps-border); border-radius:10px; background:var(--ps-surface-2);
  color:var(--ps-ink); text-decoration:none; font-size:.8rem; min-width:0;
}
a.ai-chip:hover{ border-color:var(--ps-border-strong); color:var(--ps-ink); }
.ai-chip svg{ width:15px; height:15px; flex:none; color:var(--ps-ink-2); }
.ai-chip > span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.ai-chip small{ color:var(--ps-ink-3); flex:none; }
.ai-chip.is-out{ background:var(--ps-grad-soft); border-color:rgba(230,194,0,.55); font-weight:500; }
.ai-chip.is-gone{ opacity:.6; }
.ai-chip.is-picked button{ border:0; background:none; padding:0 .1rem; line-height:1; font-size:1.05rem; color:var(--ps-ink-3); cursor:pointer; }
.ai-chip.is-picked button:hover{ color:var(--ps-ink); }

.ai-dots{ display:inline-flex; gap:.22rem; vertical-align:middle; margin-right:.35rem; }
.ai-dots i{ width:.42rem; height:.42rem; border-radius:50%; background:var(--ps-ink-3); animation:aiDot 1.2s infinite ease-in-out; }
.ai-dots i:nth-child(2){ animation-delay:.15s; }
.ai-dots i:nth-child(3){ animation-delay:.3s; }
@keyframes aiDot{ 0%, 80%, 100%{ opacity:.25; transform:translateY(0); } 40%{ opacity:1; transform:translateY(-3px); } }
@media (prefers-reduced-motion:reduce){ .ai-dots i{ animation:none; opacity:.6; } }
.ai-msg.is-wait .ai-bubble{ font-size:.86rem; color:var(--ps-ink-3); padding-top:.45rem; }

.ai-compose{
  position:sticky; bottom:0; z-index:5; display:flex; flex-direction:column; gap:.45rem;
  padding:.6rem 0 .4rem; background:linear-gradient(to bottom, transparent, var(--ps-bg) 1.1rem);
}
@media (max-width:991.98px){ .ai-compose{ bottom:calc(4.1rem + env(safe-area-inset-bottom,0px)); } }
.ai-alert{ margin:0; }
.ai-picked{ display:flex; flex-wrap:wrap; gap:.4rem; }
.ai-box{
  display:flex; align-items:flex-end; gap:.4rem; padding:.4rem; background:var(--ps-surface);
  border:1px solid var(--ps-border-strong); border-radius:18px; box-shadow:var(--ps-shadow);
}
.ai-box:focus-within{ border-color:var(--ps-ink-3); }
.ai-box textarea{
  flex:1; min-width:0; border:0; outline:0; resize:none; background:transparent; color:var(--ps-ink);
  font:inherit; font-size:.95rem; line-height:1.45; padding:.45rem .3rem; max-height:220px;
}
.ai-attach{
  position:relative; flex:none; width:2.4rem; height:2.4rem; border-radius:12px; display:grid; place-items:center;
  color:var(--ps-ink-2); cursor:pointer;
}
.ai-attach:hover{ background:var(--ps-surface-2); color:var(--ps-ink); }
.ai-attach input{ position:absolute; inset:0; opacity:0; width:100%; cursor:pointer; }
.ai-attach svg{ width:19px; height:19px; }
.ai-send{ flex:none; width:2.4rem; height:2.4rem; padding:0; border-radius:12px; display:grid; place-items:center; }
.ai-send svg{ width:18px; height:18px; }
.ai-compose.is-busy .ai-send{ opacity:.55; cursor:progress; }
.ai-foot{ margin:0; font-size:.72rem; color:var(--ps-ink-3); text-align:center; }

/* ---------------------------------------------------------------- markdown */
.ai-md{ font-size:.95rem; line-height:1.6; overflow-wrap:anywhere; }
.ai-md > :first-child{ margin-top:0; }
.ai-md > :last-child{ margin-bottom:0; }
.ai-md p{ margin:0 0 .7rem; }
.ai-md .md-h{ font-weight:600; margin:1.1rem 0 .45rem; line-height:1.3; }
.ai-md h3.md-h{ font-size:1.08rem; }
.ai-md h4.md-h{ font-size:1rem; }
.ai-md h5.md-h, .ai-md h6.md-h{ font-size:.94rem; }
.ai-md .md-list{ margin:0 0 .7rem; padding-left:1.35rem; }
.ai-md .md-list .md-list{ margin:.2rem 0 .2rem; }
.ai-md li{ margin:.15rem 0; }
.ai-md code{ font-size:.86em; background:var(--ps-surface-2); border:1px solid var(--ps-border); border-radius:6px; padding:.05rem .32rem; }
.ai-md .md-pre{ background:var(--ps-surface-2); border:1px solid var(--ps-border); border-radius:var(--ps-r); padding:.75rem .9rem; overflow:auto; margin:0 0 .8rem; }
.ai-md .md-pre code{ background:none; border:0; padding:0; font-size:.84rem; white-space:pre; }
.ai-md .md-quote{ margin:0 0 .8rem; padding:.2rem 0 .2rem .9rem; border-left:3px solid var(--ps-border-strong); color:var(--ps-ink-2); }
.ai-md .md-hr{ border:0; border-top:1px solid var(--ps-border); margin:1rem 0; }
.ai-md .md-table{ overflow:auto; margin:0 0 .8rem; border:1px solid var(--ps-border); border-radius:var(--ps-r); }
.ai-md table{ border-collapse:collapse; width:100%; font-size:.88rem; }
.ai-md th, .ai-md td{ padding:.45rem .65rem; border-bottom:1px solid var(--ps-border); text-align:left; vertical-align:top; }
.ai-md th{ background:var(--ps-surface-2); font-weight:600; }
.ai-md tr:last-child td{ border-bottom:0; }
.ai-md a{ color:var(--ps-link); text-decoration:underline; text-underline-offset:2px; }
