/* Área de gestão — mesmas cores do site principal */
:root{
  --bg: #0b0c0f;
  --surface: #1a1c22;
  --border: #2a2d35;
  --text: #f4f4f6;
  --text-muted: #a7abb8;
  --accent: #f2b705;
  --erro: #ff6b4a;
  --radius: 14px;
  --font-display: "Bebas Neue", "Manrope", sans-serif;
  --font-body: "Manrope", system-ui, -apple-system, sans-serif;
}

*, *::before, *::after{ box-sizing: border-box; }
html, body{ margin: 0; }
body{
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1{ font-family: var(--font-display); letter-spacing: 0.03em; font-weight: 400; margin: 0; }

/* ---------- Login ---------- */
.tela-login{
  display: grid;
  place-items: center;
  padding: 24px 16px;
}
.cartao{
  width: 100%;
  max-width: 380px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 32px 28px;
  text-align: center;
}
.logo{ width: 72px; height: auto; margin: 0 auto 16px; display: block; }
.cartao h1{ font-size: 2rem; }
.sub{ color: var(--text-muted); margin: 4px 0 24px; font-size: 0.95rem; }

form{ text-align: left; }
label{ display: block; font-size: 0.85rem; font-weight: 600; color: var(--text-muted); margin: 14px 0 6px; }
input[type="text"], input[type="password"], input[type="email"]{
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 1rem;
}
input:focus{ outline: 2px solid var(--accent); outline-offset: 1px; border-color: transparent; }

/* Campo de senha com botão de olhinho (círculo branco, fora do campo, à direita).
   O formulário deixa um espaço à direita para o botão; campos e "Entrar" ficam alinhados. */
.tela-login form{ padding-right: 44px; }
.campo-senha{ position: relative; }
.ver-senha{
  position: absolute;
  top: 50%;
  right: -42px;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  background: #ffffff;
  color: #111111;
  border-radius: 50%;
  padding: 0;
}
.ver-senha svg{ width: 20px; height: 20px; }
.ver-senha:hover{ background: #e9e9ee; }
.ver-senha:focus-visible{ outline: 2px solid var(--accent); outline-offset: 2px; }
.ver-senha .olho-fechado{ display: none; }
.ver-senha[aria-pressed="true"] .olho-aberto{ display: none; }
.ver-senha[aria-pressed="true"] .olho-fechado{ display: block; }

button{
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  border: 0;
  border-radius: 999px;
}
form button[type="submit"]:not(.sair){
  width: 100%;
  margin-top: 24px;
  padding: 12px;
  background: var(--accent);
  color: #111;
  font-size: 1rem;
}
form button[type="submit"]:hover{ filter: brightness(1.08); }

.erro{
  background: rgba(255, 107, 74, 0.12);
  border: 1px solid rgba(255, 107, 74, 0.4);
  color: var(--erro);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 0.9rem;
  margin: 0 0 8px;
}

/* ---------- Painel ---------- */
.topo{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px;
  border-bottom: 1px solid var(--border);
}
.logo-topo{ width: 44px; height: auto; display: block; }
.sair{
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  padding: 8px 18px;
}
.sair:hover{ border-color: var(--accent); color: var(--accent); }

.painel{
  max-width: 1120px;
  margin: 0 auto;
  padding: 48px 24px;
}
.painel h1{ font-size: clamp(2rem, 6vw, 3rem); }

@media (max-width: 480px){
  .topo{ padding: 12px 16px; }
  .painel{ padding: 32px 16px; }
}

/* ---------- Botão "Menu" (canto superior esquerdo) + painel lateral ---------- */
.side-tab{
  position: fixed;
  top: 16px;
  left: 16px;
  z-index: 150;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: var(--accent);
  color: #111;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.side-tab:hover{ opacity: 0.9; }
.side-tab:focus-visible{ outline: 2px solid var(--text); outline-offset: 2px; }

.side-overlay{
  position: fixed;
  inset: 0;
  z-index: 190;
  background: rgba(0, 0, 0, 0.55);
}
.side-menu{
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 200;
  width: min(300px, 85vw);
  background: #131419;
  border-right: 1px solid var(--border);
  padding: 20px;
  transform: translateX(-100%);
  transition: transform .25s ease;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.side-menu.open{ transform: translateX(0); }
.side-menu-head{ display: flex; align-items: center; justify-content: space-between; }
.side-menu-title{ font-family: var(--font-display); font-size: 1.8rem; letter-spacing: 0.04em; }
.side-menu-close{
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border);
  border-radius: 50%;
}
.side-menu-close:hover{ color: var(--text); border-color: var(--text-muted); }
.side-menu-links{ display: flex; flex-direction: column; gap: 8px; }
.side-menu-link{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-weight: 600;
  color: var(--text);
  text-decoration: none;
}
.side-menu-link:hover{ border-color: var(--accent); color: var(--accent); }
.side-menu-arrow{ margin-left: auto; color: var(--text-muted); }

/* Na tela de login, deixa espaço no topo para o botão não encostar no cartão */
.tela-login{ padding-top: 72px; }

@media (max-width: 480px){
  .side-tab{ top: 12px; left: 12px; padding: 7px 12px; }
}
@media (prefers-reduced-motion: reduce){
  .side-menu{ transition: none; }
}

/* ---------- Topo das áreas (admin / cliente): nome de quem entrou + Sair ---------- */
.topo-direita{ display: flex; align-items: center; gap: 14px; }
.quem{ color: var(--text-muted); font-size: 0.9rem; display: inline-flex; align-items: center; gap: 8px; }
.selo{
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 999px;
}
.selo-admin{ background: var(--accent); color: #111; }

@media (max-width: 480px){
  .quem{ font-size: 0.8rem; }
  .topo-direita{ gap: 10px; }
}

/* ---------- Trocar senha ---------- */
.link-senha{ color: var(--text-muted); font-size: 0.85rem; text-decoration: underline; text-underline-offset: 3px; }
.link-senha:hover{ color: var(--accent); }
.painel-estreito{ max-width: 460px; }
.painel-estreito h1{ margin: 8px 0 20px; }
.voltar{ color: var(--text-muted); font-size: 0.9rem; text-decoration: none; }
.voltar:hover{ color: var(--accent); }
.form-senha{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 24px 24px; }
.dica{ font-weight: 400; font-size: 0.8rem; }
.ok{
  background: rgba(46, 196, 182, 0.12);
  border: 1px solid rgba(46, 196, 182, 0.45);
  color: #2ec4b6;
  border-radius: 10px;
  padding: 12px 14px;
  margin: 0 0 16px;
}
.botao{
  display: inline-block;
  background: var(--accent);
  color: #111;
  font-weight: 700;
  padding: 12px 22px;
  border-radius: 999px;
  text-decoration: none;
}
.botao:hover{ filter: brightness(1.08); }

@media (max-width: 480px){
  .link-senha{ font-size: 0.78rem; }
  .form-senha{ padding: 4px 16px 20px; }
}

/* Olhinho também na troca de senha: espaço à direita do cartão para o botão */
.form-senha{ padding-right: 68px; }
@media (max-width: 480px){
  .form-senha{ padding-right: 60px; }
}

/* =====================================================================
   Portal de Contratos: login (botões), formulários, área do cliente e admin
   ===================================================================== */

/* ---------- Login: botões "Solicitar Contrato" e "Novo Contrato" ---------- */
.dica-login{
  background: rgba(242, 183, 5, 0.12);
  border: 1px solid rgba(242, 183, 5, 0.4);
  color: var(--accent);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 0.9rem;
  margin: 0 0 8px;
}
.acoes-login{ margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--border); display: grid; gap: 10px; }
.acoes-titulo{ margin: 0 0 4px; color: var(--text-muted); font-size: 0.9rem; }
.botao-acao{
  display: block;
  text-align: center;
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
}
.botao-acao span{ font-weight: 400; color: var(--text-muted); }
.botao-acao:hover{ border-color: var(--accent); color: var(--accent); }
.botao-acao-destaque{ border-color: var(--accent); color: var(--accent); }

/* ---------- Formulários de contrato ---------- */
.painel-form{ max-width: 760px; }
.painel-form h1{ margin: 8px 0 4px; }
.sub-form{ color: var(--text-muted); margin: 0 0 20px; }
.obr{ color: #ff6b4a; font-weight: 700; }
.num{
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 5px;
  margin-right: 4px;
  border-radius: 999px;
  background: var(--border);
  color: var(--text);
  font-size: 0.72rem;
  font-weight: 700;
  vertical-align: 1px;
}
.erro-lista ul{ margin: 6px 0 0; padding-left: 18px; }
.aviso-fotos{ color: var(--text-muted); font-size: 0.85rem; margin: -4px 0 16px; }
.armadilha{ position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.form-contrato{ display: grid; gap: 18px; }
.bloco{
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 8px 20px 20px;
  margin: 0;
  min-width: 0;
}
.bloco legend{ padding: 0 8px; font-weight: 700; color: var(--text); }
.campo{ min-width: 0; }
.campo label{ color: var(--text); }
.rotulo-pequeno{ font-size: 0.8rem !important; font-weight: 400 !important; color: var(--text-muted) !important; }
.linha{ display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.linha-curta{ grid-template-columns: 120px 1fr; }
.campo-curto{ max-width: 220px; }
.ajuda{ display: block; color: var(--text-muted); font-size: 0.8rem; margin-top: 6px; }
.ajuda[hidden]{ display: none; }

.form-contrato input[type="email"],
.form-contrato input[type="tel"],
.form-contrato input[type="date"],
.form-contrato select,
.form-contrato textarea{
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 1rem;
}
.form-contrato textarea{ resize: vertical; min-height: 84px; }
.form-contrato select:focus, .form-contrato textarea:focus{ outline: 2px solid var(--accent); outline-offset: 1px; border-color: transparent; }

/* Olhinho dentro do campo de senha no formulário */
.form-contrato .campo-senha input{ padding-right: 50px; }
.form-contrato .ver-senha{ right: 8px; }

.campo-moeda{ display: flex; align-items: center; gap: 8px; }
.campo-moeda span{ font-weight: 700; color: var(--text-muted); }
.campo-moeda input{ max-width: 240px; }

/* Resumo calculado automaticamente: formato diferente dos campos */
.resumo{
  margin-top: 18px;
  border: 2px dashed var(--accent);
  border-radius: var(--radius);
  background: rgba(242, 183, 5, 0.06);
  padding: 14px 16px;
  display: grid;
  gap: 10px;
}
.resumo-item{ display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.resumo-rotulo{ color: var(--text-muted); font-size: 0.9rem; }
.resumo-item strong{ font-family: var(--font-display); font-size: 1.45rem; letter-spacing: 0.03em; color: var(--accent); font-weight: 400; }
.resumo-nota{ margin: 0; font-size: 0.78rem; color: var(--text-muted); }

.campo-check{ margin-top: 14px; }
.campo-check p{ margin: 0 0 8px; }
.campo-check a{ color: var(--accent); }
.check{ display: flex !important; gap: 10px; align-items: flex-start; margin: 0 !important; font-weight: 600; cursor: pointer; }
.check input{ width: 20px; height: 20px; margin-top: 2px; accent-color: var(--accent); flex: none; }

/* Fotos com imagem de exemplo ao lado */
.foto-campo{ display: grid; grid-template-columns: 220px 1fr; gap: 16px; align-items: start; padding: 14px 0; border-top: 1px solid var(--border); }
.foto-campo:first-of-type{ border-top: 0; }
.foto-exemplo{ width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--border); }
.foto-envio label{ display: block; margin: 0 0 10px; }
.foto-envio input[type="file"]{ width: 100%; color: var(--text-muted); font: inherit; font-size: 0.9rem; }
.foto-envio input[type="file"]::file-selector-button{
  margin-right: 10px;
  padding: 10px 16px;
  border: 0;
  border-radius: 999px;
  background: var(--accent);
  color: #111;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.foto-previa{ display: block; margin-top: 10px; max-width: 220px; max-height: 220px; border-radius: 10px; border: 1px solid var(--border); }

.aviso{
  border-left: 4px solid var(--accent);
  background: var(--surface);
  border-radius: 10px;
  padding: 14px 16px;
  color: var(--text);
}
.botao-enviar{ font-size: 1.05rem !important; padding: 14px !important; margin-top: 4px !important; }
.botao-enviar:disabled{ opacity: 0.6; cursor: wait; }

/* ---------- Área do cliente e admin ---------- */
.titulo-com-acao{ display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.vazio{ color: var(--text-muted); }
.ok{ margin-bottom: 20px; }
.lista-contratos{ display: grid; gap: 14px; }
.cartao-contrato{ border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); padding: 16px 18px; margin-bottom: 14px; }
.cartao-contrato header{ display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.contrato-num{ font-weight: 700; }
.status{ font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; background: var(--border); border-radius: 999px; padding: 3px 10px; }
.contrato-produto{ margin: 0 0 10px; color: var(--text-muted); }
.cartao-contrato dl, .dados{ display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px 18px; margin: 0; }
.cartao-contrato dt, .dados dt{ font-size: 0.78rem; color: var(--text-muted); }
.cartao-contrato dd, .dados dd{ margin: 2px 0 0; font-weight: 600; word-break: break-word; }

.atalhos{ display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin-top: 24px; }
.atalho{ display: grid; gap: 4px; padding: 18px 20px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); color: var(--text); text-decoration: none; }
.atalho strong{ font-size: 1.05rem; }
.atalho span{ color: var(--text-muted); font-size: 0.9rem; }
.atalho:hover{ border-color: var(--accent); }
.armazenamento{ margin-top: 28px; color: var(--text-muted); font-size: 0.8rem; }

.escolher-cliente{ display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin: 16px 0 24px; }
.escolher-cliente label{ width: 100%; margin: 0; }
.escolher-cliente select{
  flex: 1 1 260px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 1rem;
}
.escolher-cliente button.botao{ width: auto !important; margin: 0 !important; padding: 12px 24px !important; }
.ficha h2{ font-family: var(--font-display); font-weight: 400; font-size: 2rem; letter-spacing: 0.03em; margin: 0 0 8px; }
.ficha h3{ margin: 24px 0 10px; font-size: 1rem; color: var(--accent); }
.historico{ margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.historico small{ color: var(--text-muted); }
.etiqueta{ font-size: 0.7rem; font-weight: 700; text-transform: uppercase; background: var(--border); border-radius: 999px; padding: 2px 8px; margin-left: 6px; }
.fotos-cliente{ display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.fotos-cliente a{ display: grid; gap: 6px; color: var(--text-muted); text-decoration: none; font-size: 0.85rem; }
.fotos-cliente img{ width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); }

@media (max-width: 600px){
  .linha{ grid-template-columns: 1fr; }
  .linha-curta{ grid-template-columns: 110px 1fr; }
  .bloco{ padding: 6px 14px 16px; }
  .foto-campo{ grid-template-columns: 1fr; }
  .foto-exemplo{ max-width: 260px; }
}

/* Topo no celular: esconde o nome para caber selo, Trocar senha e Sair */
@media (max-width: 480px){
  .quem{ font-size: 0; gap: 0; }
  .quem .selo{ font-size: 0.65rem; }
}

/* =====================================================================
   Cartões de contrato por situação, parcelas pagas e score
   ===================================================================== */
.cartao-contrato{
  --tom: #8a8f9c;
  --tom-fundo: rgba(138, 143, 156, 0.10);
  border: 1px solid color-mix(in srgb, var(--tom) 55%, transparent);
  background: linear-gradient(135deg, var(--tom-fundo), rgba(255, 255, 255, 0.01) 70%), var(--surface);
  padding: 0;
  overflow: hidden;
}
.situacao-finalizado{ --tom: #2ea05a; --tom-fundo: rgba(46, 160, 90, 0.16); }
.situacao-andamento{ --tom: #2f80ed; --tom-fundo: rgba(47, 128, 237, 0.16); }
.situacao-atraso{ --tom: #e5484d; --tom-fundo: rgba(229, 72, 77, 0.18); }
/* Pendência (aguardando assinatura / solicitação em andamento): laranja */
.situacao-aguardando, .cartao-contrato.cartao-pendente{ --tom: #f2830a; --tom-fundo: rgba(242, 131, 10, 0.16); }

.contrato-topo{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
}
.contrato-topo::-webkit-details-marker{ display: none; }
.contrato-topo::before{
  content: "▸";
  color: var(--tom);
  font-size: 1.2rem;
  transition: transform .15s ease;
}
.cartao-contrato[open] > .contrato-topo::before{ transform: rotate(90deg); }
.contrato-titulo{ flex: 1; display: flex; flex-direction: column; min-width: 0; }
.contrato-resumo{ color: var(--text-muted); font-size: 0.85rem; }
.selos{ display: inline-flex; align-items: center; gap: 6px; }
.selo-situacao{
  display: inline-block;
  padding: 6px 14px;
  border-radius: 999px;
  background: var(--tom);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tom) 25%, transparent);
  cursor: default;
}
.asterisco{ font-size: 1.1rem; line-height: 1; }
.contrato-corpo{ padding: 0 18px 18px; }

/* Destaque: parcelas pagas + próximos vencimentos */
.pagamentos{
  border: 1px solid color-mix(in srgb, var(--tom) 40%, transparent);
  background: rgba(0, 0, 0, 0.22);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 16px;
}
.pag-linha{ display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.pag-fracao{ font-size: 2.6rem; line-height: 1; font-weight: 400; min-width: 72px; }
.pag-caixas{ display: flex; gap: 8px; flex-wrap: wrap; }
.pag-caixa{ width: 48px; height: 28px; border: 3px solid #000; background: #c3c3c3; }
.pag-caixa.pag-paga{ background: #22b14c; }
.pag-caixa.pag-atrasada{ background: #ed1c24; }
.pag-pagos{ margin: 10px 0 0; color: var(--text-muted); font-size: 0.9rem; }
.pag-pagos strong{ color: var(--text); }
.pag-titulo{ margin: 12px 0 4px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); }
.pag-lista{ list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pag-lista li{ display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.pag-data{ font-weight: 700; min-width: 92px; }
.pag-pendente{ color: #5aa9ff; }
.pag-atrasada{ color: #ff5a5f; }
.pag-lista small{ color: var(--text-muted); font-size: 0.78rem; }

/* Botões do admin (baixa de pagamento) */
.acoes-admin{ display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 18px; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
.acoes-admin form{ margin: 0; }
.form-baixa{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.form-baixa label{ margin: 0; width: 100%; color: var(--text-muted); font-size: 0.82rem; }
.form-baixa input[type="date"]{
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font: inherit;
  color-scheme: dark;
}
.botao-pequeno{ background: var(--accent); color: #111; padding: 9px 16px; font-size: 0.85rem; }
.botao-pequeno:hover{ filter: brightness(1.08); }
.botao-link{ background: transparent; color: var(--text-muted); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; font-size: 0.82rem; padding: 6px 0; }
.botao-link:hover{ color: var(--erro); }
/* os botões gerais de formulário ocupam a largura toda; aqui não */
.acoes-admin form button[type="submit"]{ width: auto; margin: 0; }
.acoes-admin form button.botao-pequeno{ padding: 9px 18px; background: var(--accent); color: #111; font-size: 0.85rem; }
.acoes-admin form button.botao-link{ padding: 6px 0; background: transparent; color: var(--text-muted); font-size: 0.82rem; }
.acoes-admin form button.botao-link:hover{ color: var(--erro); filter: none; }

/* Score (0 a 100) com medidor em meia-pizza */
.titulo-secao{ font-family: var(--font-display); font-weight: 400; letter-spacing: 0.03em; font-size: 1.8rem; margin: 28px 0 10px; }
.cartao-score{
  --cor: #2ea05a;
  max-width: 420px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 18px 20px 14px;
  margin: 12px 0 8px;
}
.faixa-vermelho{ --cor: #e53935; }
.faixa-laranja{ --cor: #fb8c00; }
.faixa-amarelo{ --cor: #fdd835; }
.faixa-verde{ --cor: #2ea05a; }
.score-topo{ display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.score-rotulo{ color: var(--text-muted); font-weight: 600; margin-right: 4px; }
.score-numero{ font-size: 2.6rem; line-height: 1; font-weight: 800; }
.score-max{ color: var(--text-muted); }
.score-selo{
  margin-left: auto;
  align-self: center;
  padding: 4px 12px;
  border-radius: 8px;
  background: color-mix(in srgb, var(--cor) 18%, transparent);
  color: var(--cor);
  font-size: 0.8rem;
  font-weight: 700;
}
.score-barra{ height: 8px; border-radius: 999px; background: #3a3d46; margin: 10px 0 6px; overflow: hidden; }
.score-barra span{ display: block; height: 100%; border-radius: 999px; background: var(--cor); }
.score-medidor{ display: block; width: 100%; max-width: 320px; margin: 4px auto 0; }
.score-medidor .arco{ fill: none; stroke-width: 26; opacity: 0.8; }
.score-medidor .arco-atual{ opacity: 1; }
.arco-vermelho{ stroke: #e53935; }
.arco-laranja{ stroke: #fb8c00; }
.arco-amarelo{ stroke: #fdd835; }
.arco-verde{ stroke: #2ea05a; }
.score-medidor .ponteiro{ stroke: var(--text); stroke-width: 6; stroke-linecap: round; }
.score-medidor .ponteiro-centro{ fill: var(--text); }
.score-legenda{ list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; margin: 8px 0 0; padding: 0; font-size: 0.75rem; color: var(--text-muted); }
.score-legenda li::before{ content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; }
.leg-vermelho::before{ background: #e53935; }
.leg-laranja::before{ background: #fb8c00; }
.leg-amarelo::before{ background: #fdd835; }
.leg-verde::before{ background: #2ea05a; }
.score-nota{ margin: 8px 0 0; font-size: 0.75rem; color: var(--text-muted); text-align: center; }

@media (max-width: 480px){
  .pag-fracao{ font-size: 2.1rem; min-width: 0; }
  .pag-caixa{ width: 38px; height: 24px; }
  .contrato-topo{ padding: 12px 14px; }
  .contrato-corpo{ padding: 0 14px 14px; }
}

/* "Esqueci minha senha" */
.tela-login .form-esqueci{ padding-right: 0; } /* sem olhinho: campo centralizado */
.esqueci{ margin: 14px 0 0; font-size: 0.9rem; }
.esqueci a{ color: var(--text-muted); }
.esqueci a:hover{ color: var(--accent); }
.cartao .ok{ text-align: left; }
.cartao .botao{ display: inline-block; }
.dica-esqueci{ color: var(--text-muted); font-size: 0.85rem; margin: 16px 0 0; }

/* Simulação de Contrato (página simular.php) */
.form-simulacao{ gap: 8px; }
.simulacao-nota{ margin: 0; color: var(--text-muted); font-size: 0.8rem; }

/* Botões empilhados no topo (ex.: "+ Solicitar novo contrato" e "Simular Contrato") */
.botoes-topo{ display: flex; flex-direction: column; gap: 8px; }
.botoes-topo .botao{ text-align: center; }

/* Admin: editar dados do contrato / do cliente */
.acoes-admin .botao-editar{ order: 9; }
.titulo-dados{ margin: 18px 0 8px; }
.titulo-dados h3{ margin: 0; }
.botao-editar{
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid var(--accent);
  border-radius: 999px;
  color: var(--accent);
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
}
.botao-editar:hover{ background: rgba(242, 183, 5, 0.12); }
/* "Editar dados do contrato" (no cartão): balão amarelo com letra preta */
.botao-pequeno.botao-editar, .botao-pequeno.botao-editar:hover{ background: var(--accent); color: #111; }

/* Excluir contrato: botão vermelho no cartão, aviso e confirmação com senha */
.acoes-admin .botao-excluir{ order: 10; }
.botao-excluir{ display: inline-block; padding: 8px 16px; border: 1px solid var(--erro); border-radius: 999px; color: var(--erro); font-size: 0.85rem; font-weight: 700; text-decoration: none; }
.botao-excluir:hover{ background: rgba(255, 107, 74, 0.14); }
.aviso-excluir{ margin: 0 0 14px; padding: 14px 16px; border-radius: 10px; background: rgba(255, 107, 74, 0.14); border: 1px solid rgba(255, 107, 74, 0.6); color: var(--erro); font-size: 1.05rem; line-height: 1.4; }
.botoes-excluir{ display: flex; gap: 12px; justify-content: center; }
.botoes-excluir a{ flex: 1; text-align: center; }
.botao-sim-excluir{ display: block; padding: 12px; border-radius: 999px; background: var(--erro); color: #111; font-weight: 700; text-decoration: none; }
.botao-sim-excluir:hover{ filter: brightness(1.08); }
form button.botao-confirmar-excluir[type="submit"]{ background: var(--erro); color: #111; }

/* Foto de perfil redonda (sem foto: bonequinho padrão) */
.avatar{ display: inline-grid; place-items: center; flex: none; border-radius: 50%; object-fit: cover; background: #3a3f4b; border: 2px solid var(--border); overflow: hidden; }
.avatar-vazio svg{ width: 72%; height: 72%; fill: #aeb4c2; margin-top: 14%; }
.avatar-topo{ width: 40px; height: 40px; }
.avatar-ficha{ width: 64px; height: 64px; }
.avatar-grande{ width: 120px; height: 120px; }
.link-perfil{ display: inline-flex; border-radius: 50%; }
.link-perfil:hover .avatar{ border-color: var(--accent); }
.ficha-nome{ display: flex; align-items: center; gap: 14px; margin: 0 0 8px; }
.ficha-nome h2{ margin: 0; }
.perfil-envio{ display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding: 10px 0; }
.foto-previa[hidden]{ display: none; } /* sem foto escolhida, a prévia não aparece */
.foto-previa-redonda{ width: 120px; height: 120px; max-width: none; object-fit: cover; border-radius: 50%; }
@media (max-width: 480px){ .quem .avatar-topo{ width: 36px; height: 36px; } }

/* Admin: fotos do cadastro minimizadas (ícone); abertas, ficam do mesmo tamanho de antes */
.fotos-cliente{ align-items: start; } /* uma foto aberta não estica as outras */
/* Fotos do cadastro (ficha): botão amarelo "📷"; clicar abre a foto aqui mesmo, e a foto aberta abre em nova aba */
.fotos-botoes{ display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin: 0 0 10px; }
.fotos-botoes .doc-falta{ align-self: center; }
.foto-mini summary{ cursor: pointer; list-style: none; }
.foto-mini summary::-webkit-details-marker{ display: none; }
.foto-mini[open] summary{ background: rgba(242, 183, 5, 0.12); }
.foto-mini a{ display: block; width: 260px; max-width: 80vw; margin-top: 8px; }

/* Admin: Editar Dados do Cliente — fotos com "Excluir foto" */
.bloco-fotos-admin{ margin-top: 32px; }
.foto-item{ display: grid; gap: 6px; align-content: start; }
.foto-rotulo{ color: var(--text-muted); font-size: 0.85rem; font-weight: 600; }
.foto-item img{ width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); }
form button.botao-excluir[type="submit"]{ width: auto; margin: 0; padding: 8px 16px; background: transparent; color: var(--erro); font-size: 0.85rem; }
form button.botao-excluir[type="submit"]:hover{ background: rgba(255, 107, 74, 0.14); filter: none; }

/* Cliente: botões "Alterar meus dados" e "Reenviar fotos"; última foto enviada */
.botoes-meus-dados{ display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
.foto-atual-titulo{ margin: 0 0 8px; }
.foto-atual{ display: grid; gap: 6px; max-width: 260px; margin: 0 0 12px; color: var(--text-muted); font-size: 0.8rem; text-decoration: none; }
.foto-atual img{ width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); }

/* Gestão: bolinhas de Parcela/Total — à vista (1|1) mais viva; parceladas levemente mais escuras */
.chip-paga.chip-avista{ background: #34d058; box-shadow: 0 0 0 2px rgba(52, 208, 88, 0.25); }
.chip-paga.chip-parcelado{ background: #2b9a59; } /* Total (e a última Parcela) dos parcelados: entre o à vista e a não-última */
.chip-pendente.chip-avista{ background: #2f7fd6; }
.chip-pendente.chip-parcelado{ background: #1a4f8c; }
.chip-atrasada.chip-avista{ background: #e53935; }
.chip-atrasada.chip-parcelado{ background: #a82222; }
/* Parcelado: bolinha verde da Parcela um pouco mais escura enquanto não é a última (a última fica igual à do Total) */
.chip-paga.chip-nao-ultima{ background: #185c35; }

/* Gestão: contratos especiais — número em laranja escuro e balão de comentário (como no Google Planilhas) */
.num-contrato.num-especial{ color: #d9640b; font-weight: 700; font-size: 0.78rem; }
.cmt{ position: relative; display: inline-block; cursor: pointer; padding-right: 6px; }
.cmt.tem-cmt::after{ content: ""; position: absolute; top: -2px; right: -2px; border-style: solid; border-width: 0 7px 7px 0; border-color: transparent #d9640b transparent transparent; }
.cmt-balao{ display: none; position: absolute; z-index: 50; top: 100%; left: 0; min-width: 220px; max-width: 280px; padding: 10px 12px; border-radius: 8px; background: #fff8e6; color: #3a2a12; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45); text-align: left; font-size: 0.82rem; font-weight: 400; white-space: normal; line-height: 1.35; }
.cmt:hover .cmt-balao, .cmt:focus-within .cmt-balao, .cmt-balao:has(details[open]){ display: block; }
.cmt-texto{ display: block; margin: 0 0 6px; }
.cmt-acoes{ display: block; margin: 0 0 6px; }
.cmt-ver{ display: inline-block; padding: 4px 12px; border-radius: 999px; background: #1e6fd0; color: #fff !important; font-weight: 700; text-decoration: none; }
.cmt-ver:hover{ background: #2a82ea; }
.cmt-editar summary{ cursor: pointer; color: #b45309; font-weight: 700; list-style: none; }
.cmt-editar summary::-webkit-details-marker{ display: none; }
.cmt-form{ display: grid; gap: 6px; margin-top: 6px; }
.cmt-form textarea{ width: 100%; font: inherit; font-size: 0.82rem; padding: 6px 8px; border-radius: 6px; border: 1px solid #e0c48a; background: #fff; color: #222; resize: vertical; }
.cmt-form button.botao-pequeno[type="submit"]{ width: auto; margin: 0; padding: 6px 14px; background: #d9640b; color: #fff; font-size: 0.8rem; justify-self: start; }
.cmt-form small{ color: #7a5a2a; }
.val-comentado{ color: #d9640b; font-weight: 700; }
.val-negociado{ color: #f0a35e; }
.link-negociar{ margin-left: 4px; text-decoration: none; font-size: 0.95rem; }
.acoes-admin .botao-negociar{ order: 9; }
/* Cartão do contrato (admin): botão azul "Ver Geral" (abre a Gestão de Contratos no mês certo), ao lado de Excluir */
.acoes-admin .botao-gestao{ order: 10; }
.botao-gestao{ display: inline-block; padding: 8px 16px; border-radius: 999px; background: #1e6fd0; color: #fff; font-size: 0.85rem; font-weight: 700; text-decoration: none; }
.botao-gestao:hover{ background: #2a82ea; }
/* Gestão: a linha do contrato aberta pelo botão fica em destaque por um instante */
.tabela-gestao td:target{ box-shadow: inset 4px 0 0 #3b9cff; }

/* Estrelinhas Douradas: selo pequeno (★ + número), valor pago adiantado em verde e o banner do cliente */
.selo-estrela{ display: inline-flex; align-items: center; gap: 1px; color: #f5c518; font-weight: 800; font-size: 0.72rem; line-height: 1; white-space: nowrap; text-shadow: 0 0 6px rgba(245, 197, 24, 0.45); }
.selo-estrela span{ font-size: 0.9rem; }
.linha-nome{ display: inline-flex; align-items: center; gap: 5px; }
.selo-estrela-ficha{ font-size: 1rem; }
.selo-estrela-ficha span{ font-size: 1.3rem; }
.tag-vantagem{ display: inline-block; padding: 2px 9px; border-radius: 999px; background: rgba(245, 197, 24, 0.14); border: 1px solid rgba(245, 197, 24, 0.55); color: #f5c518; font-size: 0.72rem; font-weight: 700; }
.ficha-nome{ flex-wrap: wrap; }
.val-adiantado{ color: #4ade80; font-weight: 700; }
.aviso-estrelas{ margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; background: rgba(245, 197, 24, 0.12); border: 1px solid rgba(245, 197, 24, 0.5); color: #fde68a; font-size: 0.88rem; }
.banner-estrelas{ position: relative; overflow: hidden; margin: 6px 0 22px; padding: 20px 22px 16px; border-radius: var(--radius); border: 1px solid rgba(245, 197, 24, 0.6);
  background: radial-gradient(circle at 92% 18%, rgba(245, 197, 24, 0.35), transparent 42%), linear-gradient(135deg, #2a2108 0%, #1a1a24 55%, #2b2410 100%); color: #fdf3c4; }
.banner-estrelas-brilho{ position: absolute; top: 6px; right: 18px; color: rgba(245, 197, 24, 0.55); letter-spacing: 6px; font-size: 0.9rem; animation: brilho-estrelas 3s ease-in-out infinite; }
@keyframes brilho-estrelas{ 0%, 100%{ opacity: 0.35; } 50%{ opacity: 1; } }
@media (prefers-reduced-motion: reduce){ .banner-estrelas-brilho{ animation: none; } }
.banner-estrelas-topo{ display: flex; gap: 18px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.banner-estrelas h2{ margin: 0 0 6px; font-family: var(--font-display); font-weight: 400; letter-spacing: 0.03em; font-size: 1.6rem; color: #f5c518; }
.banner-estrelas p{ margin: 0; font-size: 0.92rem; }
.banner-estrelas-placar{ display: grid; justify-items: center; min-width: 96px; padding: 8px 14px; border-radius: 14px; background: rgba(0, 0, 0, 0.35); border: 1px solid rgba(245, 197, 24, 0.5); }
.placar-estrela{ color: #f5c518; font-size: 2rem; line-height: 1; text-shadow: 0 0 12px rgba(245, 197, 24, 0.7); }
.banner-estrelas-placar strong{ font-size: 1.6rem; color: #fff; line-height: 1.1; }
.banner-estrelas-placar small{ color: #fde68a; font-size: 0.72rem; }
.banner-estrelas-progresso{ margin: 14px 0 6px; font-size: 0.88rem; }
.barra-estrelas{ height: 8px; margin-top: 6px; border-radius: 999px; background: rgba(255, 255, 255, 0.12); overflow: hidden; }
.barra-estrelas span{ display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #f59e0b, #f5c518, #fde68a); }
.banner-estrelas-topo-nivel{ margin: 12px 0 6px !important; font-weight: 700; color: #f5c518; }
.niveis-estrelas{ list-style: none; margin: 10px 0 8px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 6px 14px; font-size: 0.82rem; color: #e9dfb6; }
.niveis-estrelas li{ opacity: 0.75; }
.niveis-estrelas li.nivel-ok{ opacity: 1; color: #fff; }
.niveis-estrelas li.nivel-ok .nivel-num::after{ content: " ✓"; color: #4ade80; }
.nivel-num{ color: #f5c518; font-weight: 800; margin-right: 4px; }
.banner-estrelas-regras{ font-size: 0.75rem !important; color: #cdbf8a; }

/* Ficha do cliente: contrato negociado — "!" no cartão minimizado e faixa laranja quando aberto */
.selo-negociado{ display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #d9640b; color: #fff; font-weight: 800; font-size: 0.95rem; line-height: 1; box-shadow: 0 0 0 3px rgba(217, 100, 11, 0.25); }
.cartao-contrato.cartao-negociado{ border-left: 5px solid #d9640b; }
.faixa-negociado{ margin: 0 0 14px; padding: 12px 14px; border-radius: 10px; background: linear-gradient(90deg, rgba(217, 100, 11, 0.28), rgba(217, 100, 11, 0.10)); border: 1px solid rgba(217, 100, 11, 0.7); color: #ffd3ad; font-size: 0.85rem; }
.faixa-negociado strong{ color: #ffb070; }
.faixa-negociado ul{ margin: 6px 0 8px; padding-left: 18px; display: grid; gap: 3px; }
.faixa-negociado li span{ color: #ffb070; font-weight: 700; margin-right: 4px; }
.faixa-negociado a{ color: #ffb070; font-weight: 700; }

/* Contratos Mesclados: nº em vermelho, mini-tabela no Valor, botão 🔀, cartões e parcelas que foram para a mescla */
.num-contrato.num-mesclado{ color: #ef4444; font-weight: 800; font-size: 0.8rem; text-shadow: 0 0 6px rgba(239, 68, 68, 0.45); }
.val-mesclado{ color: #fca5a5; font-weight: 700; border-bottom: 1px dashed #ef4444; }
.cmt-balao.cmt-balao-largo{ min-width: 0; width: max-content; max-width: 94vw; overflow-x: auto; }
.mini-titulo{ display: block; margin: 0 0 6px; color: #b91c1c; }
.mini-tabela{ width: 100%; border-collapse: collapse; font-size: 0.75rem; }
.mini-tabela th, .mini-tabela td, .tabela-gestao .mini-tabela th, .tabela-gestao .mini-tabela td{ padding: 4px 6px; border-bottom: 1px solid #f1d9a8; text-align: left; white-space: nowrap; color: #3a2a12; background: transparent; text-transform: none; letter-spacing: 0; font-weight: 400; }
.mini-tabela thead th, .tabela-gestao .mini-tabela thead th{ font-weight: 800; color: #7a4a12; }
.mini-tabela tbody th, .tabela-gestao .mini-tabela tbody th{ font-weight: 700; }
.menu-mescla{ display: inline-block; margin-left: 2px; }
.menu-mescla summary{ cursor: pointer; list-style: none; font-size: 0.95rem; }
.menu-mescla summary::-webkit-details-marker{ display: none; }
.menu-mescla-opcoes{ display: grid; gap: 4px; margin-top: 4px; }
.menu-mescla-opcoes a{ display: block; padding: 4px 8px; border-radius: 6px; background: rgba(239, 68, 68, 0.16); border: 1px solid rgba(239, 68, 68, 0.6); color: #fecaca; font-size: 0.72rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.menu-mescla-opcoes a:hover{ background: rgba(239, 68, 68, 0.3); }
.acoes-admin .botao-mesclar{ order: 9; border-color: #ef4444; color: #fca5a5; }
.cartao-contrato.cartao-mesclado{ border-left: 5px solid #ef4444; }
.texto-mesclado{ display: block; color: #fca5a5; font-size: 0.78rem; font-weight: 700; }
.faixa-mesclado{ margin: 0 0 14px; padding: 12px 14px; border-radius: 10px; background: rgba(239, 68, 68, 0.12); border: 1px solid rgba(239, 68, 68, 0.6); color: #fecaca; font-size: 0.85rem; }
.faixa-mesclado ul{ margin: 6px 0 0; padding-left: 18px; display: grid; gap: 3px; }
.aviso-mescla{ margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: rgba(239, 68, 68, 0.12); border: 1px solid rgba(239, 68, 68, 0.55); color: #fecaca; font-size: 0.88rem; }
.opcao-mescla{ align-items: flex-start; margin: 8px 0; }
.prorrogar-mescla{ font-size: 0.82rem; margin: 10px 0 0; }
.previa-mescla{ border-color: #ef4444; }
.de-onde span{ display: block; font-size: 0.78rem; white-space: nowrap; }
.pag-caixa.pag-mesclada{ background: repeating-linear-gradient(45deg, #7f1d1d, #7f1d1d 3px, #3f1010 3px, #3f1010 6px); border-color: #ef4444; }
.situacao-mesclado .selo-situacao{ background: rgba(239, 68, 68, 0.2); color: #fca5a5; }

/* Gestão de Contratos Individual: busca (digitar ou lista ▾), topo do cliente, Cartão Inteligente */
.busca-cliente{ display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; margin: 12px 0 10px; }
.busca-cliente > label{ width: 100%; margin: 0; }
.combo-cliente{ position: relative; display: flex; flex: 1 1 320px; max-width: 460px; }
.combo-cliente input[type="text"]{ width: 100%; padding: 10px 44px 10px 14px; border: 2px solid #1e9bf0; border-radius: 10px; background: var(--bg); color: var(--text); font: inherit; font-size: 1.02rem; }
.combo-seta{ position: absolute; top: 4px; right: 4px; bottom: 4px; width: 38px; border-radius: 8px; background: rgba(30, 155, 240, 0.18); color: #8fc3ff; font-size: 1rem; }
.combo-lista{ position: absolute; z-index: 40; top: calc(100% + 4px); left: 0; right: 0; max-height: 320px; overflow-y: auto; margin: 0; padding: 6px; list-style: none; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 10px 24px rgba(0, 0, 0, 0.5); }
.combo-lista[hidden]{ display: none; }
.combo-lista a{ display: block; padding: 7px 10px; border-radius: 6px; color: var(--text); text-decoration: none; }
.combo-lista a:hover{ background: rgba(30, 155, 240, 0.16); }
.combo-lista small{ color: var(--text-muted); margin-left: 6px; }
.busca-cliente button.botao{ width: auto !important; margin: 0 !important; padding: 11px 22px !important; }
.cliente-topo{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.cliente-topo-nome{ margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 1.9rem; letter-spacing: 0.03em; display: flex; align-items: center; gap: 10px; }
.cliente-topo-score{ display: grid; justify-items: center; margin-left: 6px; }
.cliente-topo-score .mini-medidor{ width: 70px; }
.cliente-topo-score small{ color: var(--text-muted); font-size: 0.72rem; }
.coluna-cliente{ max-width: 680px; margin-top: 24px; }
.cartao-inteligente{ border-radius: 14px; overflow: hidden; box-shadow: 0 8px 26px rgba(0, 0, 0, 0.45); }
.cartao-inteligente svg{ display: block; width: 100%; height: auto; }
.botoes-cartao-inteligente{ display: flex; gap: 10px; margin: 12px 0 8px; flex-wrap: wrap; }
.botoes-cartao-inteligente .botao-pequeno{ width: auto; margin: 0; padding: 9px 18px; border-radius: 999px; }
.botoes-cartao-inteligente .botao-verde{ background: #2ea05a; color: #fff; }

/* Negociar parcelas: linhas que mudaram na prévia */
.tabela-negociacao tr.linha-mudou td{ background: rgba(217, 100, 11, 0.18); }
.bloco-negociacao{ margin-top: 18px; }
.bloco-negociacao button.botao-pequeno[type="submit"]{ width: auto; margin-top: 14px; padding: 10px 22px; }
.previa{ border: 2px solid #d9640b; border-radius: var(--radius); padding: 6px 16px 16px; background: var(--surface); }

/* Gestão: coluna Score com mini medidor */
.tabela-gestao td.col-score{ white-space: nowrap; }
.mini-score{ display: inline-flex; flex-direction: column; align-items: center; gap: 0; line-height: 1; }
.mini-score .mini-medidor{ width: 46px; max-width: none; margin: 0; }
.mini-score .mini-medidor .arco{ stroke-width: 30; }
.mini-score .mini-medidor .ponteiro{ stroke-width: 14; }
.mini-score strong{ font-size: 0.78rem; color: var(--cor); margin-top: 1px; }

/* Gestão: Total do mês (minimizável) e o Lucro Previsto do Mês em verde vivo (o "salário do mês") */
.quadro-linha{ border-top: 0; margin-top: 4px; padding-top: 0; }
.quadro-destaque .quadro-extra-valor{ color: #a3e635; font-weight: 700; }
.quadro-recolhivel[open] .quadro-resumo{ display: none; }
.quadro-resumo small{ font-size: 0.75rem; font-weight: 600; color: var(--qcor); }
/* Total do mês: "Reembolso Total" e "Lucro Total Atual" no meio-termo — menores e num verde mais escuro que
   Reembolso/Lucro do alto, e maiores e num verde mais claro que as linhas pequenas de baixo */
.quadro-recolhivel .quadro-soma span{ font-size: 0.9rem; color: #36b866; }
.quadro-recolhivel .quadro-soma strong{ font-size: 1.05rem; color: #36b866; }

/* Gestão: gráfico anual do Lucro Previsto do Mês (no alto, à direita) */
.gestao-cabecalho{ display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; }
.gestao-cabecalho .titulo-secao{ margin-bottom: 14px; }
.grafico-lucro{ margin: 0 0 12px auto; width: 100%; max-width: 560px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px 12px 4px; }
.grafico-lucro figcaption{ color: var(--text-muted); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.grafico-svg{ display: block; width: 100%; height: auto; }
.g-eixo{ stroke: var(--border); stroke-width: 1; }
.g-barra{ fill: #2e8b57; }
.g-mes:hover .g-barra{ fill: #3fb56f; }
.g-sel .g-barra{ fill: #a3e635; }
.g-valor{ fill: var(--text-muted); font-size: 9px; text-anchor: middle; }
.g-sel .g-valor{ fill: #a3e635; font-weight: 700; font-size: 10px; }
.g-sigla{ fill: var(--text-muted); font-size: 11px; text-anchor: middle; }
.g-sel .g-sigla{ fill: #a3e635; font-weight: 700; }
.g-salario{ stroke: #fb923c; stroke-width: 1; }
.g-salario-txt{ fill: #fb923c; font-size: 9.5px; text-anchor: end; }

/* Cliente: botão de enviar o contrato assinado, em verde */
.form-doc button.botao-verde[type="submit"]{ background: #2ea05a; color: #fff; }
.form-doc button.botao-verde[type="submit"]:hover{ background: #34b866; filter: none; }
.form-contrato input[readonly]{ opacity: 0.6; }
.edicao-fixos{ margin: 0 0 4px; color: var(--text-muted); font-size: 0.85rem; }
.botoes-edicao{ display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.botoes-edicao .botao-enviar{ width: auto !important; margin: 0 !important; padding: 14px 28px !important; }

/* Gestão de Contratos (admin) */
.painel-gestao{ max-width: 1400px; }
.filtro-mes{ display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; margin: 12px 0 8px; }
.filtro-mes .campo{ min-width: 150px; }
.filtro-mes button{ width: auto !important; margin: 0 !important; padding: 11px 22px !important; }
.filtro-mes select{ width: 100%; padding: 10px 14px; border-radius: 10px; border: 2px solid #1e9bf0; background: var(--bg); color: var(--text); font: inherit; font-size: 1.05rem; font-weight: 700; }
.tabela-rolagem{ overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.tabela-gestao{ width: 100%; border-collapse: collapse; font-size: 0.9rem; white-space: nowrap; }
.tabela-gestao th{ background: #2b3a5c; color: #8fc3ff; font-weight: 700; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.04em; padding: 10px 12px; text-align: center; }
.tabela-gestao td{ padding: 10px 12px; border-top: 1px solid var(--border); text-align: center; vertical-align: middle; background: rgba(43, 58, 92, 0.25); }
.tabela-gestao th.col-pago{ background: #1f7a3d; color: #fff; }
.tabela-gestao td.col-pago{ background: rgba(31, 122, 61, 0.18); }
.tabela-gestao th.col-rec{ background: #3a5a8c; color: #fff; }
.tabela-gestao td.col-rec{ font-weight: 700; }
.chip-nome{ display: inline-block; padding: 4px 12px; border-radius: 999px; background: #1e5fa8; color: #fff; text-decoration: none; font-weight: 600; }
.num-contrato{ display: block; color: var(--text-muted); font-size: 0.72rem; margin-top: 2px; }
.chip{ display: inline-block; min-width: 32px; padding: 3px 10px; border-radius: 999px; font-weight: 700; color: #fff; }
.chip-pendente{ background: #1e5fa8; }
.chip-atrasada{ background: #c62828; }
.chip-paga{ background: #2ea05a; }
.juros-atraso{ display: block; color: #ff6b6b; font-size: 0.75rem; font-weight: 600; }
.form-pago{ display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0; }
.check-pago input{ width: 22px; height: 22px; accent-color: #2ea05a; cursor: pointer; margin: 0; }
.check-pago{ margin: 0; }
/* "em 01/07/2023": não ocupa espaço na linha; aparece só ao passar o mouse na caixa de pago (etiqueta flutuante) */
.form-pago{ position: relative; }
.pago-em{ position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%); z-index: 30; white-space: nowrap; padding: 3px 8px; border-radius: 6px; background: #11151c; border: 1px solid var(--border); color: var(--text); font-size: 0.72rem; opacity: 0; pointer-events: none; transition: opacity 0.12s; }
.check-pago:hover + .pago-em{ opacity: 1; }
.confirmar-baixa{ display: flex; flex-direction: column; gap: 6px; align-items: center; }
.confirmar-baixa[hidden]{ display: none; }
.confirmar-baixa input[type="date"]{ padding: 6px 8px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg); color: var(--text); font: inherit; font-size: 0.85rem; }
.form-pago button.botao-pequeno{ width: auto !important; margin: 0 !important; padding: 6px 14px !important; background: var(--accent); color: #111; font-size: 0.8rem; border-radius: 999px; }
.legenda-gestao{ color: var(--text-muted); font-size: 0.8rem; margin: 10px 0 0; }
.legenda-gestao .chip{ min-width: 0; padding: 1px 8px; font-size: 0.72rem; }
/* Caixa PAGO: verde paga, cinza em aberto no prazo, vermelha em aberto e atrasada */
.tabela-gestao td.col-pago.pago-paga{ background: rgba(31, 122, 61, 0.30); }
.tabela-gestao td.col-pago.pago-pendente{ background: rgba(138, 143, 156, 0.22); }
.tabela-gestao td.col-pago.pago-atrasada{ background: rgba(198, 40, 40, 0.38); }
.tabela-gestao td.val-pago{ color: #4ade80; }
.tabela-gestao td.val-aberto{ color: #ff5252; }

/* Quadros de totais: uma coluna à direita da tela (Total do mês, Pendente do mês, Lucro Geral, Total Pendente) */
.quadros-totais{ display: flex; flex-direction: column; gap: 14px; width: 100%; max-width: 440px; margin: 28px 0 0 auto; }
.quadro-total.quadro-minimizado{ padding: 0; }
.quadro-minimizado > summary{ list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 18px; }
.quadro-minimizado > summary::-webkit-details-marker{ display: none; }
.quadro-minimizado > summary::before{ content: "▸"; color: var(--qcor); transition: transform 0.15s; }
.quadro-minimizado[open] > summary::before{ transform: rotate(90deg); }
.quadro-minimizado .quadro-titulo{ flex: 1; color: var(--qcor); font-weight: 700; }
.quadro-minimizado .quadro-resumo{ color: var(--qvalor); }
.quadro-minimizado > :not(summary){ margin-left: 18px; margin-right: 18px; }
.quadro-minimizado > :last-child{ margin-bottom: 14px; }
.quadro-extra{ display: flex; justify-content: space-between; gap: 10px; margin: 6px 0 0; font-size: 0.75rem; color: #2e8b57; }
.quadro-zerado{ --qcor: #3b9cff; --qvalor: #3b9cff; }
.quadro-zerado .quadro-colunas span{ color: #3b9cff; }
.quadro-zerado .quadro-soma{ border-top-color: rgba(59, 156, 255, 0.45); }
.quadro-total{ border: 2px solid var(--qcor); border-radius: var(--radius); background: var(--surface); padding: 14px 18px; }
.quadro-total h3{ margin: 0 0 10px; color: var(--qcor); font-size: 1rem; }
.quadro-colunas{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.quadro-colunas div{ background: rgba(255, 255, 255, 0.04); border-radius: 10px; padding: 8px 12px; }
.quadro-colunas span{ display: block; color: #8fc3ff; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }
.quadro-colunas strong{ font-size: 1.35rem; color: var(--qvalor); }
.quadro-soma{ display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 10px 0 0; padding-top: 10px; border-top: 1px dashed var(--border); }
.quadro-soma span{ color: var(--qcor); font-weight: 700; }
.quadro-soma strong{ font-size: 1.35rem; color: var(--qvalor); }
.quadro-recebido{ --qcor: #4ade80; --qvalor: #4ade80; }
.quadro-pendente{ --qcor: #fb923c; --qvalor: #ff5252; }

/* Modo de importação dos contratos antigos (aviso no topo do admin) */
.aviso-importacao{ margin: 0; padding: 10px 24px; background: rgba(251, 146, 60, 0.14); border-bottom: 1px solid rgba(251, 146, 60, 0.5); color: #fdba74; font-size: 0.85rem; text-align: center; }
.form-contrato[hidden], .campo[hidden]{ display: none; }

/* Contrato em PDF, assinatura no gov.br e comprovantes (cartão do contrato) */
.documentos{ margin-top: 14px; padding: 12px 14px; border: 1px dashed var(--border); border-radius: 12px; background: rgba(255, 255, 255, 0.02); }
.documentos h4{ margin: 0 0 8px; font-size: 0.95rem; }
.selo-ok{ margin: 0 0 8px; padding: 10px 14px; border-radius: 10px; background: rgba(46, 160, 90, 0.18); border: 1px solid rgba(46, 160, 90, 0.6); color: #4ade80; font-weight: 800; font-size: 1.05rem; }
.passos{ margin: 0; padding-left: 20px; display: grid; gap: 12px; }
.passos li > span{ display: block; margin-bottom: 6px; color: var(--text-muted); font-size: 0.9rem; }
.botao.botao-pequeno-link{ padding: 8px 16px; font-size: 0.9rem; }
.form-doc{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 6px 0 0; }
.form-doc label{ margin: 0; font-size: 0.85rem; color: var(--text-muted); display: flex; flex-direction: column; gap: 4px; }
.form-doc input[type="file"], .anexo-baixa input[type="file"]{ color: var(--text-muted); font: inherit; font-size: 0.82rem; max-width: 260px; }
.form-doc button[type="submit"]{ width: auto !important; margin: 0 !important; padding: 8px 16px !important; font-size: 0.85rem; border-radius: 999px; }
.lista-docs{ list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; font-size: 0.9rem; }
.lista-docs a, .links-docs a{ color: var(--accent); font-weight: 600; }
.doc-destaque{ color: #4ade80 !important; }
.doc-falta{ color: var(--text-muted); font-size: 0.85rem; }
.links-docs{ display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 6px 0 0; }
.botoes-fotos{ display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 10px; }
.anexo-baixa{ width: 100%; margin: 4px 0 0; font-size: 0.78rem; color: var(--text-muted); display: flex; flex-direction: column; gap: 4px; }
.confirmar-baixa .anexo-baixa{ align-items: center; text-align: center; }
.link-comprovante{ display: block; margin-top: 4px; font-size: 0.75rem; color: #4ade80; }
.anexar-depois{ margin-top: 4px; font-size: 0.75rem; }
.anexar-depois summary{ cursor: pointer; color: var(--text-muted); }
.anexar-depois .form-doc{ flex-direction: column; }

/* Pendências (laranja) e etapas da solicitação */
.aviso-pendente{ margin: 0 0 16px; padding: 12px 16px; border-radius: 10px; background: rgba(242, 131, 10, 0.14); border: 1px solid rgba(242, 131, 10, 0.6); color: #fdba74; font-weight: 600; }
.texto-andamento{ color: #fb923c; font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.painel-acompanhar{ display: grid; gap: 14px; }
.painel-acompanhar h1{ margin: 0; }
.caixa-etapa{ padding: 18px 20px; border-radius: var(--radius); font-weight: 800; font-size: 1.1rem; text-align: center; }
.etapa-pendente{ background: rgba(242, 131, 10, 0.16); border: 2px solid #f2830a; color: #fdba74; }
.etapa-ok{ background: rgba(46, 160, 90, 0.18); border: 2px solid #2ea05a; color: #4ade80; }
.botao-atualizar, .botao-contratos{ text-align: center; }
.botao-atualizar{ justify-self: start; }
/* Endereço: Número ou lote + "Sem número" */
.linha-numero{ grid-template-columns: 1fr auto; align-items: end; }
.campo-sem-numero{ margin: 0 0 12px; white-space: nowrap; }
.form-contrato input:disabled{ opacity: 0.45; }

/* Valor da parcela em destaque no resumo calculado */
.valor-destaque{ font-size: 1.3em; font-weight: 700; color: #4ade80; letter-spacing: 0.02em; }

/* ---------- 22/10/2026: topo da Gestão, linhas, nome, destaque, desfazer, lista negra, combinado, Painel de Clientes ---------- */
/* Topo: título e filtros à esquerda; cartão "Clientes" e gráfico no canto superior direito */
.gestao-topo{ display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; align-items: start; margin-bottom: 6px; }
.gestao-topo-esq .titulo-secao{ margin-bottom: 10px; }
.gestao-topo-dir{ display: flex; gap: 12px; align-items: stretch; justify-content: flex-end; }
.gestao-topo-dir .grafico-lucro{ margin: 0; width: 560px; max-width: 100%; }
.cartao-clientes{ display: grid; align-content: start; gap: 7px; min-width: 215px; padding: 12px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); text-decoration: none; }
.cartao-clientes:hover{ border-color: #3b9cff; }
.cc-titulo{ color: var(--text-muted); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.cc-linha{ display: flex; justify-content: space-between; gap: 12px; font-size: 0.86rem; }
.cc-linha span{ color: var(--text-muted); }
.cc-linha strong{ font-variant-numeric: tabular-nums; }
.cc-total{ font-size: 1rem; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.cc-total strong{ color: #8fc3ff; }
.cc-mais{ margin-top: auto; color: #8fc3ff; font-size: 0.75rem; font-weight: 700; }
@media (max-width: 1150px){ .gestao-topo{ grid-template-columns: 1fr; } .gestao-topo-dir{ justify-content: flex-start; flex-wrap: wrap; } }
@media (max-width: 600px){ .gestao-topo-dir{ flex-direction: column; } .cartao-clientes{ min-width: 0; } }

/* Coluna Nome: nome no centro exato; estrelinhas no alto à esquerda; nº no alto à direita; caixinha embaixo à esquerda */
.tabela-gestao td.col-nome{ position: relative; min-width: 190px; padding: 24px 14px; }
.col-nome .nome-estrelas{ position: absolute; top: 5px; left: 7px; line-height: 1; }
.col-nome .num-contrato{ position: absolute; top: 4px; right: 7px; margin: 0; }
.col-nome .check-destaque{ position: absolute; bottom: 3px; left: 5px; margin: 0; line-height: 1; opacity: 0.55; }
.col-nome .check-destaque:hover, .col-nome .check-destaque:has(input:checked){ opacity: 1; }
.check-destaque input{ width: 13px; height: 13px; margin: 0; cursor: pointer; accent-color: #ffd54a; }

/* Linha inteira: vermelho escuro com atraso (1 dia útil ou mais); laranja escuro no dia do vencimento */
.tabela-gestao tr.linha-atrasada > td, .tabela-gestao tr.linha-atrasada > td.col-pago.pago-atrasada{ background-color: #451313; }
.tabela-gestao tr.linha-atrasada > td.col-pago.pago-atrasada{ background-color: #5e1919; }
.tabela-gestao tr.linha-vence-hoje > td, .tabela-gestao tr.linha-vence-hoje > td.col-pago.pago-pendente{ background-color: #4d2a07; }
.tabela-gestao tr.linha-vence-hoje > td.col-pago.pago-pendente{ background-color: #63380b; }
/* Dia do vencimento (23/10/2026): moldura vermelha em toda a linha */
.tabela-gestao tr.linha-vence-hoje{ outline: 2px solid #ff2d3d; outline-offset: -2px; }
/* Valor Total negativo (24/10/2026, provável erro de edição): linha inteira em vermelho vivo, por cima das outras cores */
.tabela-gestao tr.linha-valor-negativo > td, .tabela-gestao tr.linha-valor-negativo > td.col-pago.pago-pendente,
.tabela-gestao tr.linha-valor-negativo > td.col-pago.pago-atrasada, .tabela-gestao tr.linha-valor-negativo > td.col-pago.pago-paga{ background-color: #7a0d16; }
.tabela-gestao tr.linha-valor-negativo{ outline: 3px solid #ff2d3d; outline-offset: -3px; }
.tabela-gestao .val-negativo{ display: inline-block; padding: 1px 6px; border-radius: 6px; background: #ffe5e5; color: #e00016; font-weight: 800; }
/* ❄️ Congelar juros (24/10/2026): mini janela flutuante com o calendário; com juros congelados, o ❄️ brilha */
.menu-congelar{ position: relative; }
.menu-congelar[data-congelado] > summary{ filter: drop-shadow(0 0 4px #7dd3fc); }
.menu-congelar .menu-mescla-opcoes{ position: absolute; z-index: 20; right: 0; top: 100%; width: 230px; padding: 10px; border-radius: 10px; background: #0f1d33; border: 1px solid #7dd3fc; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); text-align: left; white-space: normal; }
.form-congelar{ display: grid; gap: 6px; margin: 0; font-size: 0.75rem; font-weight: 600; color: #dbeafe; }
.form-congelar input[type="date"]{ display: block; width: 100%; margin-top: 3px; }
.form-congelar small{ color: #93c5fd; font-weight: 400; }
.form-congelar .botao-pequeno{ width: 100%; margin: 0; padding: 6px 10px; font-size: 0.8rem; }
.juros-congelados{ display: block; color: #7dd3fc; font-size: 0.75rem; font-weight: 600; }
/* 🏷️ Parcela quitada com novo penhor (24/10/2026) e aviso do 2º deslocamento de mês */
.via-penhor{ display: block; color: #c4b5fd; font-size: 0.72rem; font-weight: 700; text-decoration: none; }
.via-penhor:hover{ text-decoration: underline; }
/* ↩ Descongelar à vista na linha (24/10/2026) */
.form-descongelar{ display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 2px 0 0; }
.botao-descongelar{ width: auto; margin: 0; padding: 2px 8px; border-radius: 999px; border: 1px solid #7dd3fc; background: rgba(125, 211, 252, 0.12); color: #bae6fd; font-size: 0.7rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.botao-descongelar:hover{ background: rgba(125, 211, 252, 0.28); }
/* Termos do Contrato (24/10/2026) */
.termos h2{ margin: 26px 0 8px; font-size: 1.05rem; color: #f5c518; }
.termos ul{ margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.termos p, .termos li{ line-height: 1.55; }
.termos-intro{ padding: 12px 14px; border-radius: 10px; background: rgba(245, 197, 24, 0.08); border: 1px solid rgba(245, 197, 24, 0.4); }
.tabela-termos{ width: 100%; margin: 10px 0; border-collapse: collapse; font-size: 0.9rem; }
.tabela-termos th, .tabela-termos td{ padding: 6px 10px; border: 1px solid rgba(255, 255, 255, 0.15); text-align: left; }
.tabela-termos th{ background: #1f2a44; color: #8fc3ff; }
.termos-versao{ margin-top: 26px; font-size: 0.8rem; opacity: 0.7; }
/* Leitura obrigatória dos Termos no formulário (24/10/2026): link em destaque e aviso; verde depois de aberto */
.link-termos{ display: inline-block; padding: 6px 12px; border-radius: 999px; border: 1px solid #f5c518; color: #f5c518; font-weight: 700; text-decoration: none; }
.link-termos:hover{ background: rgba(245, 197, 24, 0.12); }
.aviso-termos{ margin: 6px 0; font-size: 0.85rem; color: #fde68a; }
.bloco-termos[data-termos-vistos="1"] .aviso-termos{ color: #86efac; }
.bloco-termos input[disabled] + span{ opacity: 0.55; }
/* Avisos ao vivo de nova solicitação (24/10/2026, avisos-admin.js): por cima de tudo, no alto da tela */
.avisos-ao-vivo{ position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 1000; display: grid; gap: 8px; width: min(720px, calc(100% - 24px)); pointer-events: none; }
.aviso-ao-vivo{ pointer-events: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px 18px; border-radius: 14px;
  background: #b91c1c; border: 2px solid #fde047; color: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.55); animation: aviso-pulsar 1.6s ease-in-out 3; }
.aviso-ao-vivo-texto{ display: grid; gap: 2px; flex: 1 1 260px; }
.aviso-ao-vivo-texto strong{ font-size: 1.05rem; letter-spacing: 0.02em; }
.aviso-ao-vivo-texto small{ color: #fee2e2; }
.aviso-ao-vivo-ver, .aviso-ao-vivo-ok{ width: auto; margin: 0; padding: 7px 14px; border-radius: 999px; font-weight: 800; font-size: 0.85rem; cursor: pointer; text-decoration: none; }
.aviso-ao-vivo-ver{ background: #fde047; color: #1b2740; border: 0; }
.aviso-ao-vivo-ok{ background: transparent; color: #fff; border: 1px solid #fff; }
@keyframes aviso-pulsar{ 0%, 100%{ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.55); } 50%{ box-shadow: 0 0 0 6px rgba(253, 224, 71, 0.55), 0 10px 30px rgba(0, 0, 0, 0.55); } }
.atalho-avisos{ border-color: rgba(125, 211, 252, 0.6); }
.atalho-avisos.avisos-ativos{ border-color: rgba(34, 197, 94, 0.7); }
.botoes-avisos{ display: flex; flex-wrap: wrap; gap: 8px; }
.botoes-avisos .botao-chave{ justify-self: start; width: auto; margin: 8px 0 0; padding: 7px 14px; border-radius: 999px; border: 0; font-weight: 700; cursor: pointer; background: #f5c518; color: #1b2740; }
.botoes-avisos .botao-chave-cinza{ background: #475569; color: #fff; }
/* Login: "Manter conectado neste aparelho" (24/10/2026) */
.lembrar-login{ display: flex; align-items: center; gap: 8px; margin: 10px 0 4px; font-size: 0.85rem; cursor: pointer; }
.lembrar-login input{ width: auto; margin: 0; }
/* Pedir fotos novas pelo WhatsApp (24/10/2026): ficha do cliente e a tela fotos.php */
.pedir-fotos{ margin: 12px 0 18px; }
.pedir-fotos > summary{ list-style: none; cursor: pointer; display: inline-block; }
.pedir-fotos > summary::-webkit-details-marker{ display: none; }
.pedir-fotos .ajuda{ margin: 10px 0 8px; }
.opcoes-fotos{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.opcoes-fotos button.botao-opcao-foto[type="submit"]{ width: auto; margin: 0; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--accent); background: transparent; color: var(--accent); font-weight: 700; font-size: 0.85rem; cursor: pointer; }
.opcoes-fotos button.botao-opcao-foto[type="submit"]:hover{ background: rgba(242, 183, 5, 0.14); }
.link-fotos-pronto{ display: grid; gap: 8px; margin: 6px 0 12px; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(34, 197, 94, 0.6); background: rgba(34, 197, 94, 0.08); }
.link-fotos-pronto p{ margin: 0; }
.link-fotos-campo{ width: 100%; font-size: 0.85rem; }
.botoes-link-fotos{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.botoes-link-fotos .copiar-pix{ width: auto; height: auto; margin: 0; padding: 8px 14px; border-radius: 999px; font-weight: 700; font-size: 0.85rem; }
.botao-whatsapp{ display: inline-block; padding: 8px 16px; border-radius: 999px; background: #25d366; color: #052e14; font-weight: 800; font-size: 0.9rem; text-decoration: none; }
.botao-whatsapp:hover{ filter: brightness(1.08); }
.links-fotos-lista form{ display: inline; margin-left: 6px; }
.links-fotos-lista form button.botao-link{ width: auto; margin: 0; padding: 0; border: 0; background: transparent; color: var(--text-muted); }
.links-fotos-lista form button.botao-link:hover{ color: var(--erro); }
.links-fotos-lista .link-usado{ color: #4ade80; }
.painel-fotos .foto-campo{ margin-top: 4px; }
.aviso-2o-deslocamento{ display: grid; gap: 6px; margin: 12px 0; }
.aviso-2o-deslocamento p{ margin: 0; }
/* Contrato assinado no lugar certo (24/10/2026): aviso para assinar de novo, passo a passo e conferência no admin */
.aviso-reassinar{ display: grid; gap: 6px; margin: 0 0 14px; padding: 12px 16px; border-radius: 10px; background: rgba(255, 107, 74, 0.12); border: 1px solid rgba(255, 107, 74, 0.6); color: #fca5a5; }
.aviso-reassinar strong{ color: #fecaca; }
.guia-assinatura{ margin: 10px 0 0; }
.guia-assinatura > summary{ cursor: pointer; color: var(--accent); font-weight: 700; font-size: 0.9rem; }
.guia-assinatura-corpo{ display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; margin-top: 10px; }
.guia-assinatura-corpo ol{ flex: 1 1 260px; margin: 0; padding-left: 20px; display: grid; gap: 8px; font-size: 0.9rem; }
.guia-assinatura-corpo figure{ flex: 0 1 320px; margin: 0; }
.guia-assinatura-corpo img{ display: block; width: 100%; height: auto; border-radius: 10px; }
.guia-assinatura-corpo .legenda-guia{ margin: 6px 0 0; font-size: 0.8rem; color: var(--text-muted); }
.reenviar-assinado{ margin-top: 8px; font-size: 0.85rem; }
.reenviar-assinado > summary{ cursor: pointer; color: var(--text-muted); }
.conferencia-assinatura{ display: grid; gap: 6px; margin-top: 6px; }
.conferencia-assinatura p{ margin: 0; }
.doc-alerta{ color: #fca5a5; font-size: 0.85rem; font-weight: 600; }
.doc-conferido{ color: #4ade80; font-size: 0.8rem; }
.reassinar-acoes{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.form-reassinar{ margin: 0; }
.doc-envios-antes{ display: block; margin-top: 2px; color: var(--text-muted); font-size: 0.78rem; }
/* Etapas das testemunhas: link para baixar o PDF (24/10/2026) */
.link-etapa{ display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 6px; }
.link-etapa small{ color: var(--text-muted); font-size: 0.75rem; }
.link-etapa .copiar-pix{ display: inline-block; width: auto; height: auto; margin: 0; padding: 4px 12px; border-radius: 999px; font-size: 0.78rem; font-weight: 700; }
.link-etapa .pix-copiada{ margin-left: 0; }
/* 📧 E-mails no painel (24/10/2026) */
.painel-email{ max-width: 1400px; }
.email-conta{ color: var(--text-muted); font-size: 0.9rem; }
.cartao-email-conectar{ max-width: 520px; }
.email-app{ display: grid; grid-template-columns: 230px 1fr; gap: 18px; align-items: start; }
.email-menu{ display: grid; gap: 2px; position: sticky; top: 12px; }
.email-menu a{ display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; border-radius: 999px; color: var(--text); text-decoration: none; font-size: 0.92rem; }
.email-menu a:hover{ background: rgba(255, 255, 255, 0.06); }
.email-menu a.atual{ background: rgba(242, 183, 5, 0.16); color: var(--accent); font-weight: 700; }
.email-menu a b{ font-size: 0.8rem; }
.email-menu-titulo{ margin: 12px 12px 4px; color: var(--text-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; }
.email-menu-rodape{ margin: 14px 0 4px; }
.email-menu-rodape a{ font-size: 0.82rem; color: var(--text-muted); }
.email-desconectar{ margin: 0 12px; }
.email-conteudo{ min-width: 0; }
.email-topo-lista{ display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; }
.email-topo-lista h2{ margin: 0; }
.email-busca input{ width: 260px; max-width: 100%; margin: 0; }
.email-acoes{ display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 10px 0; }
.email-acoes button[type="submit"].botao-doc, .email-desconectar button[type="submit"].botao-doc{ width: auto; margin: 0; padding: 4px 12px; background: none; color: var(--accent); font-size: 0.8rem; }
.email-acoes button[type="submit"].botao-doc.ligado{ background: rgba(242, 183, 5, 0.18); }
.email-todos{ display: flex; align-items: center; gap: 6px; margin: 0 6px 0 4px; font-size: 0.82rem; color: var(--text-muted); }
.email-todos input{ width: auto; margin: 0; }
.email-lista{ list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.email-lista li{ display: flex; align-items: center; gap: 10px; padding: 0 8px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.email-lista li:hover{ background: rgba(255, 255, 255, 0.04); }
.email-lista li input{ width: auto; margin: 0; }
.email-lista li a{ flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(120px, 220px) 1fr auto; gap: 12px; padding: 10px 0; color: var(--text-muted); text-decoration: none; }
.email-lista li.nao-lida a{ color: var(--text); font-weight: 700; }
.email-de, .email-assunto{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.email-data{ font-size: 0.82rem; }
.email-paginas{ display: flex; align-items: center; justify-content: flex-end; gap: 12px; font-size: 0.85rem; color: var(--text-muted); }
.email-mensagem h2{ margin: 6px 0 10px; }
.email-cabecalho{ display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; margin: 0 0 12px; font-size: 0.88rem; }
.email-cabecalho dt{ color: var(--text-muted); }
.email-cabecalho dd{ margin: 0; overflow-wrap: anywhere; }
.email-dica{ margin: 6px 0; font-size: 0.82rem; color: var(--text-muted); }
.email-corpo{ width: 100%; height: 70vh; border: 0; border-radius: 10px; background: #fff; }
.email-texto{ white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 0.92rem; background: rgba(255, 255, 255, 0.04); padding: 14px; border-radius: 10px; }
.email-anexos{ list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
@media (max-width: 760px){
  .email-app{ grid-template-columns: 1fr; }
  .email-menu{ position: static; grid-template-columns: repeat(2, 1fr); }
  .email-menu-titulo, .email-menu-rodape, .email-desconectar{ grid-column: 1 / -1; }
  .email-lista li a{ grid-template-columns: 1fr auto; }
  .email-assunto{ grid-column: 1 / -1; grid-row: 2; }
}
.form-reassinar button[type="submit"].botao-doc{ width: auto; margin: 0; padding: 4px 12px; background: none; color: var(--accent); font-size: 0.78rem; }

/* Caixinha marcada: borda em todas as linhas do cliente */
.tabela-gestao tr.linha-destaque > td{ box-shadow: inset 0 2px 0 #ffd54a, inset 0 -2px 0 #ffd54a; }
.tabela-gestao tr.linha-destaque > td:first-child{ box-shadow: inset 0 2px 0 #ffd54a, inset 0 -2px 0 #ffd54a, inset 3px 0 0 #ffd54a; }
.tabela-gestao tr.linha-destaque > td:last-child{ box-shadow: inset 0 2px 0 #ffd54a, inset 0 -2px 0 #ffd54a, inset -3px 0 0 #ffd54a; }

/* À vista / 1 parcela (1|1): bolinha um pouco mais clara (~8%) */
.chip.chip-avista{ filter: brightness(1.08); }

/* Negociado/mesclado: ícone na divisa entre Porcentagem e Valor Total, com as opções de desfazer */
.tabela-gestao td.col-valor-total{ position: relative; }
.menu-desfazer > summary{ position: absolute; z-index: 5; left: -14px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #2a1d0b; border: 2px solid #d9640b; box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.35); cursor: pointer; list-style: none; font-size: 0.8rem; }
.menu-desfazer > summary::-webkit-details-marker{ display: none; }
.menu-desfazer > summary:hover{ background: #4a300d; }
.menu-desfazer[open] > summary{ background: #d9640b; }
.menu-desfazer-opcoes{ display: grid; gap: 4px; margin: 0 0 6px; text-align: left; }
.menu-desfazer-opcoes form{ margin: 0; }
.menu-desfazer-opcoes form button[type="submit"], .menu-desfazer-opcoes a{ display: block; width: 100%; margin: 0; padding: 4px 8px; border-radius: 6px; background: rgba(217, 100, 11, 0.16); border: 1px solid rgba(217, 100, 11, 0.7); color: #fdba74; font-size: 0.72rem; font-weight: 700; text-align: left; text-decoration: none; white-space: nowrap; }
.menu-desfazer-opcoes form button[type="submit"]:hover, .menu-desfazer-opcoes a:hover{ background: rgba(217, 100, 11, 0.32); filter: none; }

/* Lista negra: 🚫 no lugar da estrelinha e nome em vermelho */
.selo-bloqueado{ display: inline-block; font-size: 0.85rem; line-height: 1; }
.selo-estrela-ficha.selo-bloqueado{ font-size: 1.3rem; }
.chip-nome.chip-bloqueado{ background: #b91c1c; color: #fff; }
.nome-bloqueado{ color: #ef4444 !important; }
.aviso-bloqueado{ margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: rgba(185, 28, 28, 0.16); border: 1px solid rgba(239, 68, 68, 0.7); color: #fca5a5; }
.acoes-cliente{ display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin: 4px 0 18px; }
.acoes-cliente form{ margin: 0; }
.acoes-cliente form button[type="submit"]{ width: auto; margin: 0; }
.bloquear-detalhe > summary{ list-style: none; cursor: pointer; }
.bloquear-detalhe > summary::-webkit-details-marker{ display: none; }
.botao-bloquear{ display: inline-block; padding: 8px 16px; border-radius: 999px; border: 1px solid #ef4444; background: rgba(185, 28, 28, 0.18); color: #fecaca; font-size: 0.85rem; font-weight: 700; }
.acoes-cliente form button.botao-bloquear[type="submit"]{ padding: 8px 16px; background: #b91c1c; color: #fff; border: 0; }
.bloquear-caixa{ display: grid; gap: 8px; margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: var(--surface); border: 1px solid rgba(239, 68, 68, 0.6); max-width: 360px; }
.bloquear-caixa label{ margin: 0; }

/* Todas as estrelinhas, uma a uma, com o número */
.estrelas-completas{ display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 0 0 14px; color: #f5c518; font-weight: 800; }
.estrelas-fila{ font-size: 1.35rem; letter-spacing: 2px; line-height: 1.1; text-shadow: 0 0 8px rgba(245, 197, 24, 0.45); word-break: break-all; }
.estrelas-completas strong{ font-size: 1.35rem; }
.estrelas-completas small{ color: var(--text-muted); font-weight: 600; }
.estrelas-zero{ color: var(--text-muted); font-weight: 600; }
.estrelas-bloqueado{ color: #ef4444; }
.banner-estrelas .estrelas-completas{ margin: 10px 0 4px; }

/* Anotação "Combinado não sai caro! 😉": no cartão do contrato e no 2º topo da área do cliente */
.faixa-combinado{ margin: 0 0 14px; padding: 12px 14px; border-radius: 10px; background: rgba(56, 189, 248, 0.10); border: 1px solid rgba(56, 189, 248, 0.6); }
.faixa-combinado p{ margin: 6px 0; white-space: normal; }
.faixa-combinado small{ color: var(--text-muted); }
.cartao-anotacao{ margin: 0 0 22px; padding: 16px 20px; border-radius: var(--radius); background: linear-gradient(135deg, rgba(56, 189, 248, 0.16), rgba(56, 189, 248, 0.03) 70%), var(--surface); border: 1px solid rgba(56, 189, 248, 0.65); }
.cartao-anotacao h2{ margin: 0 0 10px; font-size: 1.15rem; color: #7dd3fc; }
.anotacao-item{ padding: 10px 0; border-top: 1px solid rgba(56, 189, 248, 0.25); }
.anotacao-item:first-of-type{ border-top: 0; padding-top: 0; }
.anotacao-contrato{ display: inline-block; padding: 2px 10px; border-radius: 999px; background: rgba(56, 189, 248, 0.2); color: #bae6fd; font-size: 0.78rem; font-weight: 700; }
.anotacao-item p{ margin: 6px 0 4px; }
.anotacao-item small{ color: var(--text-muted); }
.campo-combinado{ width: 100%; margin: 0 0 12px; }
.campo-combinado textarea{ width: 100%; padding: 10px 12px; border-radius: 10px; border: 1px solid #38bdf8; background: var(--bg); color: var(--text); font: inherit; resize: vertical; }
.cmt-ver.cmt-combinado{ background: #0e7490; margin-top: 4px; }
.cmt-ver.cmt-combinado:hover{ background: #0891b2; }

/* Número do PDF assinado diferente do número atual (renumeração por data) */
.texto-numero-pdf{ display: block; color: #fbbf24; font-size: 0.78rem; font-weight: 600; }

/* Ver a senha do cliente */
.senha-cliente{ margin: 8px 0; text-align: center; }
.senha-cliente code{ display: inline-block; padding: 10px 18px; border-radius: 10px; background: #0b0c0f; border: 1px dashed #f5c518; color: #f5c518; font-size: 1.4rem; letter-spacing: 0.08em; user-select: all; }

/* Painel de Clientes */
.painel-contagem{ display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin: 14px 0 26px; }
.contagem-item{ display: grid; gap: 3px; padding: 14px 16px; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--border); color: var(--text); text-decoration: none; }
.contagem-item:hover{ border-color: #3b9cff; }
.contagem-item strong{ font-size: 1.9rem; line-height: 1; font-variant-numeric: tabular-nums; color: #8fc3ff; }
.contagem-item small{ color: var(--text-muted); font-size: 0.74rem; }
/* Painel de Clientes (23/10/2026): cada cartão na sua cor (--cor-grupo), pizza à direita, 9º cartão à direita */
.painel-clientes-topo{ display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 16px; align-items: start; margin: 14px 0 26px; }
.painel-clientes-topo .painel-contagem{ grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.contagem-item[style*="--cor-grupo"]{ border-left: 4px solid var(--cor-grupo); }
.contagem-item[style*="--cor-grupo"] strong{ color: var(--cor-grupo); }
.contagem-negociados strong{ filter: brightness(1.45); }
.contagem-sem_vinculo strong{ filter: brightness(1.6); }
.contagem-sem_vinculo{ grid-column: -2 / -1; }
/* TV Serra Dourada em dourado com brilho; Fora da TV (#662D66) com o número mais claro para dar leitura */
.contagem-item.contagem-tvsd{ border-left: 0; padding-left: 20px; position: relative; overflow: hidden; }
.contagem-item.contagem-tvsd::before{ content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, #fff6b0, #ffd84d, #e0a800, #b8860b, #ffe27a); }
.contagem-item.contagem-tvsd strong{ background: linear-gradient(135deg, #fff6b0, #ffd84d 30%, #e0a800 60%, #b8860b 80%, #ffe27a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.contagem-externo strong{ filter: brightness(1.9); }
/* Bloqueados: vermelho-sangue, com brilho de "proibido" */
.contagem-item.contagem-bloqueados{ border-left: 0; padding-left: 20px; position: relative; overflow: hidden; box-shadow: inset 0 0 22px rgba(200, 16, 46, 0.18); }
.contagem-item.contagem-bloqueados::before{ content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, #ff1f3d, #c8102e 45%, #7a0010 80%, #3d0006); }
.contagem-item.contagem-bloqueados strong{ background: linear-gradient(180deg, #ff2a45, #d4102f 55%, #8a0014); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 6px rgba(220, 20, 50, 0.55)); }
.pizza-clientes{ margin: 0; padding: 14px 16px; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--border); }
.pizza-clientes figcaption{ font-weight: 700; font-size: 0.85rem; color: var(--text-muted); margin-bottom: 10px; }
.pizza-clientes svg{ display: block; width: 100%; max-width: 240px; margin: 0 auto 12px; filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.35)); }
.pizza-clientes svg path:hover{ filter: brightness(1.12); }
.pizza-legenda{ list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 0.82rem; }
.pizza-legenda a{ display: flex; align-items: center; gap: 8px; color: var(--text); text-decoration: none; padding: 3px 4px; border-radius: 6px; }
.pizza-legenda a:hover{ background: rgba(143, 195, 255, 0.08); }
.pizza-legenda i{ flex: none; width: 12px; height: 12px; border-radius: 3px; }
.pizza-legenda b{ margin-left: auto; font-variant-numeric: tabular-nums; }
.pizza-legenda small{ color: var(--text-muted); min-width: 34px; text-align: right; }
.pizza-clientes .ajuda{ margin: 8px 0 0; font-size: 0.72rem; }
.grupo-clientes[style*="--cor-grupo"] .grupo-num{ color: var(--cor-grupo); }
.grupo-clientes.grupo-selecionado{ border: 2px solid #7cc4ff; box-shadow: 0 0 0 3px rgba(124, 196, 255, 0.22); }
@media (max-width: 1000px){
  .painel-clientes-topo{ grid-template-columns: 1fr; }
  .pizza-clientes{ max-width: 420px; }
}
@media (max-width: 640px){
  .painel-clientes-topo .painel-contagem{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.grupo-clientes{ margin: 0 0 10px; padding: 10px 14px; border-radius: 10px; background: var(--surface); border: 1px solid var(--border); }
.grupo-clientes > summary{ cursor: pointer; }
.grupo-num{ display: inline-block; margin: 0 6px; padding: 1px 9px; border-radius: 999px; background: #2b3a5c; color: #8fc3ff; font-weight: 800; font-size: 0.8rem; }
.grupo-clientes small{ color: var(--text-muted); }
.grupo-nomes{ display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 2px; }
.sem-estrela{ color: var(--text-muted); }

/* Cartão do contrato (admin): botão ⎘ para copiar a chave Pix */
.copiar-pix{ display: inline-grid; place-items: center; width: 28px; height: 28px; margin-left: 6px; padding: 0; border-radius: 8px; border: 1px solid var(--accent); background: transparent; color: var(--accent); font-size: 1rem; line-height: 1; vertical-align: middle; }
.copiar-pix:hover{ background: rgba(242, 183, 5, 0.14); }
.pix-copiada{ margin-left: 8px; color: #4ade80; font-size: 0.82rem; font-weight: 700; }
/* Editar contrato: campo da chave Pix com o botão ⎘ ao lado */
.campo-copiar{ display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.campo-copiar input[type="text"]{ flex: 1 1 200px; width: auto; min-width: 0; }
.campo-copiar .copiar-pix{ width: 40px; height: 40px; margin: 0; }
.campo-copiar .pix-copiada{ flex-basis: 100%; margin: 2px 0 0; }

/* Gestão Individual: faixa com o ano de referência do vencimento (contrato com parcelas em mais de um ano) */
.tabela-gestao tr.linha-ano > td{ padding: 6px 14px; background: #1f2a44; color: #8fc3ff; font-weight: 800; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.06em; text-align: left; }

/* Gestão: caixinhas de destaque fora da tabela, à esquerda, centralizadas na altura de cada linha (contrato.js) */
.tabela-marcavel{ position: relative; margin-left: 40px; }
.marcas-linhas{ position: absolute; top: 0; bottom: 0; left: -40px; width: 36px; }
.marcas-linhas .check-destaque{ position: absolute; left: 2px; margin: 0; line-height: 1; transform: translateY(-50%); opacity: 0.6; display: flex; align-items: center; gap: 3px; }
/* Alça ⠿ para arrastar a linha (contrato.js): mãozinha aberta ao passar, fechada enquanto arrasta */
.alca-mover{ display: inline-block; width: 14px; font-size: 15px; line-height: 1; color: #8fc3ff; text-align: center; cursor: grab; user-select: none; touch-action: none; }
.alca-mover:hover{ color: #fff; }
html.arrastando-linha, html.arrastando-linha *{ cursor: grabbing !important; user-select: none; }
.tabela-gestao tr.linha-arrastando{ opacity: 0.45; }
.indicador-soltar{ position: absolute; height: 3px; background: #ff2d3d; border-radius: 2px; box-shadow: 0 0 6px rgba(255, 45, 61, 0.8); pointer-events: none; z-index: 5; }
.marcas-linhas .check-destaque:hover, .marcas-linhas .check-destaque:has(input:checked){ opacity: 1; }
.marcas-linhas .check-destaque input{ width: 15px; height: 15px; }
/* Botões da linha (🤝 🔀 ❄️ ⏭️ 🏷️) fora da tabela, à direita da última coluna, na altura de cada linha (24/10/2026, contrato.js) */
.tabela-marcavel.com-acoes{ margin-right: 124px; }
.acoes-linhas{ position: absolute; top: 0; bottom: 0; right: -124px; width: 120px; }
.acoes-linhas .acoes-linha{ position: absolute; left: 6px; display: flex; align-items: center; gap: 5px; transform: translateY(-50%); white-space: nowrap; }
.acoes-linhas .link-negociar, .acoes-linhas .menu-mescla{ margin-left: 0; }
.acoes-linhas .menu-mescla{ position: relative; }
.acoes-linhas .menu-mescla:not(.menu-congelar) .menu-mescla-opcoes{ position: absolute; z-index: 20; right: 0; top: 100%; padding: 6px; border-radius: 8px; background: #0f1d33; border: 1px solid rgba(239, 68, 68, 0.6); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); }

/* Tabelas de gestão sem barra de rolagem na horizontal (22/10/2026): página mais larga e células mais justas */
.painel-gestao{ max-width: 1680px; padding-left: 16px; padding-right: 16px; }
.tabela-gestao th{ padding: 9px 7px; letter-spacing: 0.02em; }
.tabela-gestao td{ padding: 9px 7px; }
.tabela-gestao td.col-nome{ min-width: 168px; padding: 24px 10px; }
.col-pago .confirmar-baixa input[type="file"]{ max-width: 150px; font-size: 0.72rem; }
@media (max-width: 1320px){
  .tabela-gestao{ font-size: 0.84rem; }
  .tabela-gestao th{ font-size: 0.7rem; }
  .tabela-gestao th, .tabela-gestao td{ padding-left: 5px; padding-right: 5px; }
  .tabela-gestao td.col-nome{ min-width: 156px; }
}

/* PDF com número de contrato duplicado: aviso no topo da Gestão e alerta na baixa da última parcela */
.aviso-pdf-numero{ background: rgba(239, 68, 68, 0.14); border-bottom-color: rgba(239, 68, 68, 0.55); color: #fca5a5; }
.aviso-pdf-numero a{ color: #fecaca; }
.alerta-pdf{ display: block; max-width: 260px; margin: 4px 0; padding: 8px 10px; border-radius: 8px; background: rgba(239, 68, 68, 0.16); border: 1px solid rgba(239, 68, 68, 0.7); color: #fecaca; font-size: 0.74rem; line-height: 1.35; white-space: normal; text-align: left; }
.anexo-pdf{ color: #fca5a5; font-weight: 700; }

/* Gestão: cliente com 2 contratos ou mais no mês — tom escuro e discreto no fundo do Nome (cor por cliente) */
.tabela-gestao td.col-nome.nome-repetido{ background-image: linear-gradient(var(--tom-cliente), var(--tom-cliente)); }

/* Tabelas de gestão mais baixas (22/10/2026): caixinha do Pago menor e menos folga, para caber mais contratos na tela */
.check-pago input{ width: 16px; height: 16px; }
.form-pago{ gap: 2px; }
.tabela-gestao .link-comprovante, .tabela-gestao .anexar-depois{ margin-top: 1px; font-size: 0.7rem; }
.tabela-gestao td{ padding-top: 6px; padding-bottom: 6px; }
.tabela-gestao td.col-nome{ padding-top: 21px; padding-bottom: 21px; }
.tabela-gestao td.col-nome .num-contrato{ top: 2px; }
.tabela-gestao td.col-nome .nome-estrelas{ top: 3px; }
.tabela-gestao .chip-nome{ padding: 2px 10px; }
.tabela-gestao .chip{ padding: 2px 9px; }
.tabela-gestao .mini-score .mini-medidor{ width: 40px; }

/* Cartão do contrato (admin): contrato assinado e comprovante com Substituir e Excluir */
.docs-admin{ display: grid; gap: 8px; margin: 8px 0; }
.linha-doc{ display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.botao-doc{ display: inline-block; padding: 4px 12px; border-radius: 999px; border: 1px solid var(--accent); color: var(--accent); font-size: 0.78rem; font-weight: 700; text-decoration: none; cursor: pointer; list-style: none; }
.botao-doc::-webkit-details-marker{ display: none; }
.botao-doc:hover{ background: rgba(242, 183, 5, 0.12); }
.botao-doc-excluir{ border-color: var(--erro); color: var(--erro); }
.botao-doc-excluir:hover{ background: rgba(255, 107, 74, 0.14); }
.substituir-doc[open]{ flex-basis: 100%; }
.substituir-doc[open] > summary{ background: rgba(242, 183, 5, 0.12); }
.substituir-doc .form-doc{ margin-top: 6px; }

/* Cartão (admin): botão para tirar o contrato da Solicitação em Andamento */
.form-tirar-solicitacao{ margin: 0 0 10px; }
form.form-tirar-solicitacao button.botao-doc[type="submit"]{ width: auto; margin: 0; padding: 4px 12px; background: transparent; color: var(--accent); }

/* Gestão: busca de cliente e olhinho que oculta os nomes da tabela */
.filtro-nomes{ min-width: 260px; }
.combo-linha{ display: flex; align-items: stretch; gap: 8px; }
.filtro-nomes .combo-cliente{ flex: 1 1 220px; max-width: 320px; }
.filtro-nomes .combo-cliente input[type="text"]{ padding-top: 9px; padding-bottom: 9px; }
.botao-olho{ display: grid; place-items: center; width: 46px; padding: 0; border-radius: 10px; border: 2px solid #1e9bf0; background: rgba(30, 155, 240, 0.12); color: #8fc3ff; cursor: pointer; }
.botao-olho:hover{ background: rgba(30, 155, 240, 0.24); }
.botao-olho .olho-fechado{ display: none; }
.botao-olho[aria-pressed="true"]{ border-color: #f2b705; color: #f2b705; background: rgba(242, 183, 5, 0.12); }
.botao-olho[aria-pressed="true"] .olho-aberto{ display: none; }
.botao-olho[aria-pressed="true"] .olho-fechado{ display: block; }
.chip-nome.nome-oculto{ background: #3a3f4b; color: #c3c7d1; font-style: italic; }

/* Falta Informação (ficha do cliente) e importação da planilha */
.falta-informacao{ margin: 4px 0 16px; padding: 12px 16px; border-radius: 10px; background: rgba(242, 131, 10, 0.12); border: 1px solid rgba(242, 131, 10, 0.65); color: #fdba74; }
.falta-informacao ul{ list-style: none; margin: 8px 0 10px; padding: 0; display: grid; gap: 6px; }
.falta-informacao li{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
.falta-informacao form{ margin: 0; }
.falta-informacao form button.botao-doc[type="submit"]{ width: auto; margin: 0; padding: 4px 12px; background: transparent; color: var(--accent); }
.falta-info{ color: #fdba74; font-weight: 700; }
.tabela-importacao td.col-texto{ white-space: normal; text-align: left; min-width: 220px; }
.tabela-importacao tr.linha-ja-existe > td{ opacity: 0.5; }
.atalho.atalho-destaque{ border-color: rgba(242, 131, 10, 0.7); }

/* Gestão: clicar na linha azul dos títulos recolhe as parcelas pagas (contrato.js) */
.tabela-gestao.recolhe-pagas thead tr{ cursor: pointer; }
/* Nome da coluna clicável para ordenar (só a palavra) */
.titulo-ordenar{ cursor: pointer; border-radius: 4px; padding: 1px 3px; text-decoration: underline dotted transparent; text-underline-offset: 3px; }
.titulo-ordenar:hover, .titulo-ordenar:focus-visible{ background: rgba(255, 255, 255, 0.14); text-decoration-color: currentColor; outline: none; }
.titulo-ordenar[data-seta]:not([data-seta=""])::after{ content: " " attr(data-seta); font-size: 0.85em; }
/* Botãozinho ⇅ na divisa entre "Vencimento" e "Parcela": separa À Vista e Parcelados (contrato.js) */
/* z-index: o ⇅ passa por cima da coluna vizinha (no hover a barra ganha brilho e cada título vira uma camada) */
.tabela-gestao th.th-com-separar{ position: relative; overflow: visible; z-index: 4; }
.botao-separar{ position: absolute; top: 50%; right: -8px; transform: translateY(-50%); z-index: 3; width: 16px; height: 16px; min-width: 0; margin: 0; padding: 0;
  border-radius: 50%; border: 1px solid #8fc3ff; background: #1b2740; color: #8fc3ff; font-size: 10px; line-height: 14px; text-align: center; cursor: pointer; }
.botao-separar:hover, .botao-separar:focus-visible{ background: #8fc3ff; color: #1b2740; outline: none; }
.botao-separar.ativo{ background: #f5c518; border-color: #f5c518; color: #1b2740; }
/* Botãozinho "−" no título: oculta a coluna (contrato.js); as ocultas ficam na faixa acima da tabela */
.tabela-gestao th.th-ocultavel{ position: relative; }
.botao-ocultar{ position: absolute; top: 2px; left: 2px; z-index: 2; width: 13px; height: 13px; min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 3px;
  background: rgba(143, 195, 255, 0.15); color: #8fc3ff; font-size: 11px; line-height: 13px; text-align: center; cursor: pointer; opacity: 0.35; }
.tabela-gestao th:hover .botao-ocultar, .botao-ocultar:focus-visible{ opacity: 1; }
.botao-ocultar:hover{ background: #ef4444; color: #fff; }
/* Coluna recolhida: fica fininha, só com o botão "+" (azul claro, a cor das letras dos títulos) para mostrar de volta */
.tabela-gestao th.col-oculta{ width: 22px; min-width: 22px; max-width: 22px; padding: 6px 2px; }
.tabela-gestao th.col-oculta .titulo-ordenar{ display: none; } /* o ⇅ (À Vista / Parcelados) continua visível */
/* O "+" fica no mesmo lugar e tamanho do "−": só troca o sinal e fica mais claro */
.tabela-gestao th.col-oculta .botao-ocultar{ opacity: 1; color: #d6ebff; background: rgba(143, 195, 255, 0.3); }
.tabela-gestao td.col-oculta{ width: 22px; min-width: 22px; max-width: 22px; padding: 0; font-size: 0; overflow: hidden; }
.tabela-gestao td.col-oculta > *{ display: none; }
/* Olhinho fechado (busca de cliente): também some com Porcentagem, Lucro, Reembolso e Lucro */
html.olho-fechado .tabela-gestao .col-sensivel{ display: none; }
.colunas-ocultas{ display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 8px 40px; font-size: 0.8rem; color: var(--text-muted); }
.botao-mostrar-coluna{ width: auto; margin: 0; padding: 3px 10px; border-radius: 999px; border: 1px solid #3a5a8c; background: #1b2740; color: #8fc3ff; font-size: 0.78rem; cursor: pointer; }
.botao-mostrar-coluna:hover{ background: #8fc3ff; color: #1b2740; }
.botao-mostrar-todas{ border-color: #f5c518; color: #f5c518; }
.titulo-tabela-separada{ margin: 14px 0 6px; font-size: 0.95rem; color: #8fc3ff; letter-spacing: 0.03em; }
.tabela-parcelados{ margin-top: 0; }
.tabela-gestao.recolhe-pagas thead tr:hover th{ filter: brightness(1.15); }
.tabela-gestao.recolhe-pagas thead tr:focus-visible{ outline: 2px solid #8fc3ff; outline-offset: -2px; }
.tabela-gestao.pagas-recolhidas tbody tr.linha-paga{ display: none; }
.tabela-gestao tr.linha-pagas-ocultas{ display: none; cursor: pointer; }
.tabela-gestao.pagas-recolhidas tr.linha-pagas-ocultas{ display: table-row; }
.tabela-gestao tr.linha-pagas-ocultas > td{ padding: 6px 10px; text-align: center; font-size: 0.8rem; font-style: italic; color: #8fd19e; background: rgba(31, 122, 61, 0.14); }

/* Pagamento pelo site (23/10/2026): avisos do admin (todas as páginas) e aviso de vencimento do cliente */
.avisos-pagamento{ display: grid; gap: 8px; max-width: 1400px; margin: 12px auto 0; padding: 0 16px; }
.aviso-comprovante{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 16px; border-radius: 12px;
  background: linear-gradient(90deg, rgba(34, 197, 94, 0.2), rgba(34, 197, 94, 0.08)); border: 2px solid #22c55e; color: #dcfce7; box-shadow: 0 0 18px rgba(34, 197, 94, 0.25); }
.aviso-comprovante small{ display: block; color: #a7f3d0; font-size: 0.75rem; margin-top: 2px; }
.aviso-comprovante-acoes{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.aviso-comprovante-acoes form{ display: flex; gap: 8px; margin: 0; }
.aviso-comprovante .botao-doc{ width: auto; margin: 0; }
.botao-baixa-rapida, .botao-recusar{ width: auto; margin: 0; padding: 7px 14px; border-radius: 999px; font-weight: 700; cursor: pointer; border: 0; }
.botao-baixa-rapida{ background: #22c55e; color: #052e14; }
.botao-recusar{ background: transparent; color: #fca5a5; border: 1px solid #ef4444; }
.aviso-vence-hoje{ display: block; padding: 10px 16px; border-radius: 12px; background: rgba(255, 45, 61, 0.12); border: 2px solid #ff2d3d; color: #ffd5d9; text-decoration: none; }
.aviso-vence-hoje:hover{ background: rgba(255, 45, 61, 0.2); }
.aviso-pagamento-feito{ max-width: 1400px; margin: 12px auto 0; }
.aviso-pagamento-cliente{ margin: 0 0 18px; padding: 16px 18px; border-radius: 14px; background: rgba(255, 45, 61, 0.1); border: 2px solid #ff2d3d; }
.aviso-pagamento-cliente h2{ margin: 0 0 4px; font-size: 1.15rem; color: #fff; }
.aviso-pagamento-sub{ margin: 0 0 12px; color: var(--text-muted); font-size: 0.85rem; }
.pix-bloco{ display: grid; gap: 10px; }
.pix-chave{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.botao-pix{ width: auto; margin: 0; padding: 7px 14px; border-radius: 999px; background: #32bcad; color: #04211e; font-weight: 700; border: 0; cursor: pointer; }
.pix-recebedor{ margin: 0; font-size: 0.8rem; color: var(--text-muted); }
.pix-qr{ border: 1px solid var(--border); border-radius: 10px; padding: 8px 12px; background: var(--surface); }
.pix-qr > summary{ cursor: pointer; font-weight: 700; }
.pix-qr-corpo{ display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; margin-top: 10px; }
.pix-qr-corpo > div{ flex: 1 1 240px; display: grid; gap: 6px; }
.pix-qr-corpo textarea{ width: 100%; font-family: monospace; font-size: 0.75rem; word-break: break-all; }
.qr-pix{ width: 220px; height: 220px; border-radius: 8px; flex: none; }
.pix-quitacao{ border-color: #d4a017; }
.pix-quitacao-explica{ margin: 8px 0 0; font-size: 0.85rem; color: var(--text-muted); }
.form-comprovante{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); }
.form-comprovante .botao-enviar{ width: auto; margin: 0; }
.comprovante-enviado{ margin: 0; padding: 10px 12px; border-radius: 10px; background: rgba(34, 197, 94, 0.12); border: 1px solid #22c55e; color: #bbf7d0; }

/* Descrição do penhor (23/10/2026): lista suspensa com vários itens e os campos de cada item (contrato.js) */
.campo-penhor .rotulo-campo{ display: block; font-size: 0.85rem; font-weight: 600; color: var(--text); margin: 14px 0 6px; }
.lista-penhor{ position: relative; }
.lista-penhor > summary{ list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: 10px;
  border: 1px solid var(--border); background: var(--bg); color: var(--text); cursor: pointer; }
.lista-penhor > summary::-webkit-details-marker{ display: none; }
.lista-penhor > summary::after{ content: "▾"; color: #8fc3ff; }
.lista-penhor[open] > summary{ border-color: #1e9bf0; }
.lista-penhor-opcoes{ position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; right: 0; display: grid; gap: 2px; padding: 6px; border-radius: 10px;
  background: var(--surface); border: 1px solid var(--border); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.5); }
.opcao-penhor{ display: flex; align-items: center; gap: 10px; margin: 0; padding: 8px 10px; border-radius: 8px; font-size: 0.95rem; font-weight: 600; color: var(--text); cursor: pointer; }
.opcao-penhor:hover{ background: rgba(143, 195, 255, 0.1); }
.opcao-penhor input{ width: 18px; height: 18px; margin: 0; accent-color: #1e9bf0; }
.campo-com-erro .lista-penhor > summary{ border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.25); }
.item-penhor{ margin-top: 14px; padding: 4px 14px 14px; border-radius: 10px; border: 1px dashed var(--border); }
.item-penhor[hidden]{ display: none; }
.item-penhor-titulo{ margin: 10px 0 0; font-size: 0.9rem; color: #8fc3ff; }
.linha-penhor .campo-largo{ grid-column: 1 / -1; }
.ajuda-imei{ margin-top: 6px; font-size: 0.82rem; }
.ajuda-imei > summary{ display: inline-block; cursor: pointer; color: #8fc3ff; font-weight: 600; }
.ajuda-imei-corpo{ margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: rgba(143, 195, 255, 0.08); border: 1px solid rgba(143, 195, 255, 0.3); color: var(--text); }
.ajuda-imei-corpo p{ margin: 0 0 8px; }
.ajuda-imei-corpo ul{ margin: 0 0 8px; padding-left: 18px; display: grid; gap: 4px; }
@media (max-width: 640px){ .linha-penhor{ grid-template-columns: 1fr; } }
.aviso-obrigatorios{ margin: 8px 0 0; padding: 8px 12px; border-radius: 8px; background: rgba(245, 197, 24, 0.12); border: 1px solid rgba(245, 197, 24, 0.5); color: #fde68a; font-size: 0.85rem; }
/* Painel do admin: chave das obrigatoriedades */
.atalho-obrigatorios{ border-color: rgba(34, 197, 94, 0.6); }
.atalho-obrigatorios.desligados{ border-color: rgba(245, 197, 24, 0.8); background: rgba(245, 197, 24, 0.08); }
.atalho-obrigatorios .botao-chave{ justify-self: start; width: auto; margin: 8px 0 0; padding: 7px 14px; border-radius: 999px; border: 0; font-weight: 700; cursor: pointer; background: #f5c518; color: #1b2740; }
.atalho-obrigatorios.desligados .botao-chave{ background: #22c55e; color: #052e14; }
/* Atalhos entre as páginas do admin (Menu Principal, Gestão de Clientes, Gestão de Contratos...), 24/10/2026 */
.nav-paginas{ display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 12px; }
.nav-paginas a{ display: inline-flex; align-items: center; gap: 4px; padding: 6px 14px; border: 1px solid var(--accent); border-radius: 999px;
  color: var(--accent); font-size: 0.85rem; font-weight: 700; text-decoration: none; }
.nav-paginas a:hover{ background: rgba(242, 183, 5, 0.14); }
/* Chaves ON/OFF pequenas fora dos cartões, à direita, abaixo dos atalhos (Ativar Obrigatoriedade e Ativar Notificações,
   24/10/2026): verde com "ON" e a bolinha à direita; cinza com a bolinha à esquerda e "OFF". A explicação fica só no
   balão (data-dica), que aparece ao passar o mouse. */
.chaves-painel{ display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 14px 36px; margin: 18px 0 0; }
.chave-item{ display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0; }
.chave-rotulo{ color: var(--text); font-size: 0.78rem; font-weight: 700; }
.chaves-painel .chave-onoff[role="switch"]{ position: relative; display: inline-flex; align-items: center; width: 34px; height: 16px;
  margin: 0; padding: 0; border: 0; border-radius: 999px; background: #9ca3af; color: #fff; cursor: pointer; transition: background 0.2s; }
.chaves-painel .chave-onoff[role="switch"]:hover{ filter: none; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15); }
.chaves-painel .chave-onoff[role="switch"].ligada{ background: #3cb44b; }
.chaves-painel .chave-onoff[role="switch"]:disabled{ opacity: 0.5; cursor: not-allowed; }
.chaves-painel .chave-onoff .chave-bolinha{ position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); transition: left 0.2s; }
.chaves-painel .chave-onoff.ligada .chave-bolinha{ left: 20px; }
.chaves-painel .chave-onoff .chave-texto{ width: 100%; padding-left: 13px; text-align: center; color: #fff; font-size: 0.45rem; font-weight: 800; line-height: 1; }
.chaves-painel .chave-onoff.ligada .chave-texto{ padding: 0 13px 0 0; }
.chaves-painel .chave-onoff[data-dica]:hover::after, .chaves-painel .chave-onoff[data-dica]:focus-visible::after{ content: attr(data-dica); position: absolute; right: -40px; top: calc(100% + 10px); z-index: 30;
  width: 270px; padding: 10px 12px; border-radius: 10px; background: #111827; border: 1px solid var(--border); color: #f4f4f6;
  font-size: 0.82rem; font-weight: 600; line-height: 1.35; text-align: left; white-space: normal; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45); }
.chaves-painel .chave-onoff[data-dica]:hover::before, .chaves-painel .chave-onoff[data-dica]:focus-visible::before{ content: ""; position: absolute; left: 11px; top: calc(100% - 2px); z-index: 31;
  border: 6px solid transparent; border-bottom-color: #111827; }
/* Campo de data com botão de calendário dentro (Negociar › Antecipar, 25/10/2026) */
.data-com-calendario{ position: relative; display: block; }
.data-com-calendario input[type="date"]{ padding-right: 54px; }
.data-com-calendario input[type="date"]::-webkit-calendar-picker-indicator{ display: none; }
.botao-calendario{
  position: absolute; top: 50%; right: 6px; transform: translateY(-50%);
  width: 40px; height: 34px; padding: 0;
  border: 1px solid var(--border); border-radius: 8px;
  background: var(--surface); color: var(--text); font-size: 1.1rem; line-height: 1; cursor: pointer;
}
.botao-calendario:hover, .botao-calendario:focus-visible{ border-color: var(--accent); outline: none; }

/* Juros manuais por atraso (Negociar › 5, 25/10/2026) */
.juros-manuais{ display: block; color: #fbbf24; font-size: 0.75rem; font-weight: 600; }

/* Comentário por coluna na Gestão (25/10/2026): o assunto da coluna no alto do balão */
.cmt-assunto{ display: block; margin: 0 0 6px; color: #b45309; font-size: 0.78rem; }

/* Gestão de Contratos (25/10/2026): atalhos do topo com borda e nome azuis; notas dos juros manuais bem pequenas */
.nav-paginas.nav-azul a{ border-color: #4da3ff; color: #4da3ff; }
.nav-paginas.nav-azul a:hover{ background: rgba(77, 163, 255, 0.14); }
.juros-manuais.juros-manuais-mini{ font-size: 0.66rem; }

/* Deslocar (25/10/2026): rótulo do grupo "Valor escolhido por mim" e campos de valor/% logo abaixo das opções */
.rotulo-grupo{ display: block; margin: 10px 0 2px; font-size: 0.85rem; font-weight: 700; }
[data-deslocar] #manual_valor, [data-deslocar] #manual_pct{ max-width: 200px; }

/* Gestão (25/10/2026): 🔒 dos juros congelados ao lado da Porcentagem (janelinha com a data e o 🔓) e 🤝 laranja (desfazer negociação) à direita do Valor Total */
.cmt.cadeado{ margin-left: 4px; padding-right: 0; font-size: 0.9rem; }
.cmt.cadeado .form-descongelar{ justify-content: flex-start; margin-top: 2px; }
.cmt.cadeado .botao-descongelar{ border-color: #d9640b; background: #fff; color: #b45309; font-size: 0.75rem; }
.cmt.cadeado .botao-descongelar:hover{ background: #ffedd5; }
.menu-desfazer > summary{ left: auto; right: -14px; } /* 🤝 laranja (contrato negociado: desfazer) à direita do Valor Total */
.cmt.cadeado .form-descongelar{ flex-direction: column; align-items: flex-start; gap: 6px; }
.cmt.cadeado .form-descongelar .botao-descongelar{ width: auto; min-height: 0; margin: 0; padding: 4px 12px; line-height: 1.2; }
