/* ===================================================================
   Painel White Label — folha de estilo
   Gerada a partir do artefato aprovado (artefatos/3-painel-white-label.html).
   Mesma identidade do Finance Plus (Dark Fintech: preto, cinza e dourado),
   porque é o mesmo produto visto do outro lado: aqui é o revendedor.
   =================================================================== */
:root{
  --bg:#0a0a0c; --bg-alt:#101014; --cartao:#15151a; --cartao-hover:#1a1a20;
  --borda:#2a2a32; --gold:#c8a96b; --gold-2:#e2c98a; --gold-dark:#a8894f;
  --texto:#e6e6e6; --mudo:#9a9aab; --ok:#3fbf6f; --erro:#e05252; --info:#5aa2e0;
}
*{box-sizing:border-box}
html{scrollbar-color:var(--gold-dark) var(--bg-alt);scrollbar-width:thin}
*{scrollbar-color:var(--gold-dark) var(--bg-alt);scrollbar-width:thin}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--bg-alt)}
::-webkit-scrollbar-thumb{background:var(--gold-dark);border-radius:99px;border:2px solid var(--bg-alt)}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}
body{background:var(--bg);color:var(--texto);font-family:"Segoe UI",Roboto,system-ui,sans-serif;margin:0;padding:0;line-height:1.5}

.app{display:flex;min-height:100vh;background:var(--bg)}

/* ===== lateral ===== */
.lado{width:222px;flex:none;background:#0c0c0f;border-right:1px solid var(--borda);display:flex;flex-direction:column;
      padding:14px 0 16px;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:60}
.marca{display:block;padding:2px 0 12px;margin:0 14px 8px;text-decoration:none;color:var(--texto)}

/* ===== a marca: assinatura Veyron sobre o nome do painel =====
   Mesmo encaixe do Finance Plus, e de propósito: é o mesmo produto visto
   do outro lado do balcão. A palavra VEYRON é a logo em arquivo; "White
   Label" é texto dentro de um SVG com textLength, que abre o espaçamento
   entre as letras até fechar exatamente a largura da imagem. */
.mv{display:block;width:120px;margin:0 auto;line-height:0;text-decoration:none}
.mv .vy{display:block;width:100%;height:auto}
.mv .fio{display:block;height:1px;width:100%;margin:.40em 0 .30em;
         background:linear-gradient(90deg,rgba(168,137,79,0),var(--gold) 16%,var(--gold-2) 50%,var(--gold) 84%,rgba(168,137,79,0))}
.mv .prod{display:block;width:100%;height:auto;overflow:visible}
.mv .prod text{font-family:"Segoe UI",Roboto,system-ui,sans-serif;font-size:100px;font-weight:300;fill:currentColor}
.mv .prod .mais{font-weight:700;fill:var(--gold)}

.item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 18px;font-size:.83rem;color:var(--mudo);
      background:none;border:0;border-left:3px solid transparent;cursor:pointer;font-family:inherit;text-align:left;
      user-select:none;text-decoration:none}
.item:hover{background:var(--cartao-hover);color:var(--texto)}
.item.ativo{background:var(--cartao-hover);color:var(--gold-2);border-left-color:var(--gold)}
/* Ícones da lateral: SVG de traço (Lucide, ISC) herdando a cor do texto por
   currentColor — o item ativo fica dourado junto com o rótulo, sem precisar de
   uma segunda arte para o estado ativo. */
.item .ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;
          stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.item:hover .ic,.item.ativo .ic{opacity:1}
.ico{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;
     stroke-linejoin:round;vertical-align:-3px;margin-right:6px}
.ico.g{width:30px;height:30px;stroke-width:1.5;display:block;margin:0 auto 8px;color:var(--gold-dark)}

/* ===== área ===== */
.area{flex:1;min-width:0;display:flex;flex-direction:column}
.topo{background:linear-gradient(180deg,#121216,#0c0c0f);border-bottom:1px solid var(--gold-dark);
      display:flex;align-items:center;gap:14px;padding:9px 18px;font-size:.8rem;position:sticky;top:0;z-index:65}
.topo .titulo{color:var(--mudo)}
.topo .dir{margin-left:auto;display:flex;gap:10px;align-items:center}
.topo .chip{display:flex;align-items:center;gap:8px;background:var(--cartao);border:1px solid var(--borda);
            border-radius:99px;padding:3px 12px 3px 4px;font-size:.75rem;cursor:pointer;font-family:inherit;color:var(--texto)}
.topo .chip:hover{border-color:var(--gold-dark)}
.topo .avatar{width:24px;height:24px;border-radius:50%;background:var(--borda);color:var(--texto);
              display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;overflow:hidden}
.topo .avatar img{width:100%;height:100%;object-fit:cover}
.conteudo{padding:18px;flex:1}

.perfil{position:relative}
.perfil-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:80;background:var(--cartao);
             border:1px solid var(--borda);border-radius:10px;padding:8px;min-width:210px;box-shadow:0 10px 28px rgba(0,0,0,.55)}
.perfil-menu.on{display:block}
.perfil-menu .quem{padding:6px 10px 8px;border-bottom:1px solid var(--borda);margin-bottom:6px}
.perfil-menu .quem b{display:block;font-size:.8rem;color:var(--gold-2)}
.perfil-menu .quem span{font-size:.68rem;color:var(--mudo)}
.perfil-menu a{display:block;padding:7px 10px;font-size:.78rem;color:var(--texto);text-decoration:none;border-radius:7px;cursor:pointer}
.perfil-menu a:hover{background:var(--cartao-hover);color:var(--gold-2)}
.perfil-menu .divi{border-top:1px solid var(--borda);margin:6px 0}

h2{font-size:1.15rem;margin:0;color:var(--gold-2)}
h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mudo);margin:0 0 10px}
.sub{color:var(--mudo);font-size:.8rem;margin:4px 0 14px}
.linha-titulo{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px;flex-wrap:wrap}
.carta{background:var(--cartao);border:1px solid var(--borda);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.muted{color:var(--mudo)}
.num{font-variant-numeric:tabular-nums}

.btn{display:inline-block;background:var(--cartao-hover);border:1px solid var(--borda);color:var(--texto);
     border-radius:8px;padding:7px 14px;font-size:.78rem;cursor:pointer;text-decoration:none;font-family:inherit}
.btn.pri{background:var(--gold);border-color:var(--gold);color:#121216;font-weight:700}
.btn.mini{padding:3px 10px;font-size:.7rem}
.btn.perigo{color:var(--erro);border-color:rgba(224,82,82,.5)}
.btn[disabled]{cursor:not-allowed;opacity:.5}
.badge{font-size:.64rem;padding:2px 8px;border-radius:99px;font-weight:600;border:1px solid var(--borda);color:var(--mudo)}
.badge.ok{background:rgba(63,191,111,.15);color:var(--ok);border-color:transparent}
.badge.err{background:rgba(224,82,82,.15);color:var(--erro);border-color:transparent}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.kpi{background:var(--cartao);border:1px solid var(--borda);border-radius:10px;padding:13px 16px;text-decoration:none;display:block}
.kpi:hover{border-color:var(--gold-dark)}
.kpi .r{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--mudo)}
.kpi .v{font-size:1.45rem;font-weight:700;margin:3px 0 2px;color:var(--gold-2)}
.kpi .x{font-size:.7rem;color:var(--mudo)}
/* Verde e vermelho do artefato: o número que está bom e o que pede atenção. */
.kpi.verde{background:rgba(63,191,111,.10);border-color:rgba(63,191,111,.45)}
.kpi.verde .r,.kpi.verde .v{color:var(--ok)}
.kpi.vermelho{background:rgba(224,82,82,.10);border-color:rgba(224,82,82,.45)}
.kpi.vermelho .r,.kpi.vermelho .v{color:var(--erro)}

.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.filtros label{font-size:.68rem;color:var(--mudo);display:flex;flex-direction:column;gap:4px}
.filtros input,.filtros select{background:var(--bg-alt);color:var(--texto);border:1px solid var(--borda);
                               border-radius:7px;padding:7px 9px;font-size:.76rem;font-family:inherit;min-width:140px}

table.dados{width:100%;border-collapse:collapse;font-size:.78rem}
.dados th{color:var(--mudo);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;text-align:left;
          padding:6px 8px;border-bottom:1px solid var(--borda)}
.dados td{padding:8px;border-bottom:1px solid #1e1e25}
.dados td:last-child,.dados th:last-child{text-align:right}
/* Tabela larga rola dentro da própria caixa, em qualquer largura — a de
   licenças tem sete colunas e passa da tela num notebook comum. */
.rolagem-tabela{overflow-x:auto;max-width:100%}
.rolagem-tabela table.dados{min-width:max-content}
.conteudo{min-width:0}
.carta{max-width:100%}
code{color:var(--gold);font-size:.74rem;letter-spacing:.04em}
.copiar{background:none;border:1px solid var(--borda);border-radius:5px;color:var(--mudo);font-size:.66rem;
        padding:1px 6px;cursor:pointer;margin-left:4px;font-family:inherit}
.copiar:hover{color:var(--gold-2)}
.vazio{text-align:center;padding:24px 10px;color:var(--mudo);font-size:.85rem}
.vazio .m{display:block;font-size:1.6rem;color:var(--gold-dark);margin-bottom:6px}

/* menu ⋯ da linha: ao abrir, mede a própria altura e sobe se não couber
   embaixo — sem isso o "Excluir licença" da última linha caía fora da janela */
details.menu3{display:inline-block;position:relative}
details.menu3 summary{list-style:none;cursor:pointer;border:1px solid var(--borda);border-radius:6px;
                      padding:2px 9px;font-size:.72rem;background:var(--cartao-hover)}
details.menu3 summary::-webkit-details-marker{display:none}
.lista3{position:absolute;right:0;top:calc(100% + 4px);background:var(--cartao);border:1px solid var(--borda);
        border-radius:8px;padding:6px;display:none;flex-direction:column;gap:3px;z-index:60;min-width:170px;
        box-shadow:0 8px 24px rgba(0,0,0,.55);text-align:left}
details.menu3[open] .lista3{display:flex}
.lista3.pra-cima{top:auto;bottom:calc(100% + 4px)}
.lista3 .btn{text-align:left;border:0;background:transparent;padding:7px 10px;font-size:.74rem}
.lista3 .btn:hover{background:var(--cartao-hover)}
.lista3 .btn.perigo:hover{background:#34211f}
.sep{border-top:1px solid var(--borda);margin:3px 0}

/* "Visão do cliente": o reflexo imediato do outro lado */
.cliente-box{background:var(--bg-alt);border:1px solid var(--borda);border-radius:10px;padding:12px 14px;margin-top:10px}
.cliente-box .mail{font-size:.82rem;font-weight:700;color:var(--gold-2)}
.cliente-box ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.cliente-box li{display:flex;align-items:center;gap:8px;font-size:.78rem;flex-wrap:wrap}
.cliente-box .refl{font-size:.72rem;color:var(--mudo);margin-top:8px;border-top:1px dashed var(--borda);padding-top:8px}
.cliente-box .refl b{color:var(--gold)}

#flash{display:none;margin:0 0 14px;padding:10px 14px;border-radius:8px;font-size:.8rem;
       background:rgba(63,191,111,.12);border:1px solid rgba(63,191,111,.5);color:var(--ok)}
#flash.on{display:block}
#flash.err{background:rgba(224,82,82,.12);border-color:rgba(224,82,82,.5);color:var(--erro)}
.alert{margin:0 0 14px;padding:10px 14px;border-radius:8px;font-size:.8rem;
       background:rgba(63,191,111,.12);border:1px solid rgba(63,191,111,.5);color:var(--ok)}
.alert-erro{background:rgba(224,82,82,.12);border-color:rgba(224,82,82,.5);color:var(--erro)}
.aviso{background:var(--cartao);border:1px solid var(--borda);border-left:4px solid var(--gold);
       border-radius:8px;padding:10px 14px;margin:0 0 14px;font-size:.85rem;color:var(--mudo)}
.aviso b{color:var(--gold-2)}

.modal-fundo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:90;align-items:center;justify-content:center;padding:16px}
.modal-fundo.on{display:flex}
.modal-caixa{background:var(--cartao);border:1px solid var(--borda);border-radius:12px;max-width:460px;width:100%;
             padding:18px;max-height:90vh;overflow:auto}
.modal-topo{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.modal-topo h4{margin:0;font-size:1rem;color:var(--gold-2)}
.fechar{background:none;border:0;color:var(--mudo);font-size:1.2rem;cursor:pointer;font-family:inherit}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-grid label{font-size:.7rem;color:var(--mudo);display:flex;flex-direction:column;gap:4px;justify-content:flex-end}
.form-grid label.cheio,.form-grid .cheio{grid-column:1/-1}
/* Campo só de leitura com o botão de copiar colado nele (licença, link). */
.campo-copia{display:flex;gap:6px;align-items:center}
.campo-copia input{flex:1}
.form-grid input,.form-grid select,.form-grid textarea{background:var(--bg-alt);color:var(--texto);
  border:1px solid var(--borda);border-radius:7px;padding:8px 9px;font-size:.78rem;font-family:inherit}

.subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.subnav a{font-size:.72rem;padding:5px 12px;border:1px solid var(--borda);border-radius:99px;color:var(--mudo);
          cursor:pointer;text-decoration:none}
.subnav a.on,.subnav a:hover{color:var(--gold-2);border-color:var(--gold-dark)}

.rodape-app{border-top:1px solid var(--borda);padding:14px 18px;display:flex;justify-content:space-between;
            align-items:center;gap:10px;flex-wrap:wrap;font-size:.7rem;color:var(--mudo)}
.rodape-app .assina b{color:var(--gold-2);font-weight:700}
.rodape-app .assina a{text-decoration:none;border-bottom:1px dotted var(--gold-dark)}
.rodape-app .ver{font-variant-numeric:tabular-nums}

/* login */
.login-tela{display:flex;min-height:100vh;background:var(--bg);align-items:center;justify-content:center;padding:20px}
.login-caixa{background:var(--cartao);border:1px solid var(--borda);border-radius:14px;padding:28px 26px;width:330px;text-align:center}
/* A marca da tela de entrada é a mesma da lateral, só maior. */
.login-caixa .mv{width:150px;margin:2px auto 18px}
.login-caixa p{font-size:.72rem;color:var(--mudo);margin:0 0 16px}
.login-caixa input{width:100%;background:var(--bg-alt);color:var(--texto);border:1px solid var(--borda);
                   border-radius:8px;padding:9px 11px;font-size:.8rem;font-family:inherit;margin-bottom:10px}
.login-caixa .btn{width:100%}

/* peças das telas ainda não redesenhadas (Downloads, Números, Mensagens, Fila) */
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
form.form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
form.form label{font-size:.7rem;color:var(--mudo);display:flex;flex-direction:column;gap:4px}
form.form input,form.form select,form.form textarea{background:var(--bg-alt);color:var(--texto);
  border:1px solid var(--borda);border-radius:7px;padding:8px 9px;font-size:.78rem;font-family:inherit}
form.form .cheio,form.form .label-full{grid-column:1/-1}
.center{text-align:center}

:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.menu-hamburguer{display:none;background:none;border:1px solid var(--borda);border-radius:8px;color:var(--texto);
                 padding:3px 9px;cursor:pointer;font-family:inherit}
.veu-lado{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:55}
.veu-lado.on{display:block}
@media (max-width:900px){
  .menu-hamburguer{display:inline-block}
  .lado{position:fixed;left:0;top:0;bottom:0;height:100%;transform:translateX(-100%);transition:transform .18s ease}
  .lado.aberta{transform:translateX(0)}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .conteudo{padding:14px 12px}
  .form-grid{grid-template-columns:1fr}
  form.form{grid-template-columns:1fr}
  /* telas do agente (fila, números, mensagens) têm tabela solta, sem a caixa */
  table.dados:not(.rolagem-tabela table){display:block;overflow-x:auto;max-width:100%}
  .filtros label{flex:1 1 150px}
  .filtros input,.filtros select{width:100%;min-width:0;max-width:100%}
  .subnav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .subnav a{white-space:nowrap}
  .modal-caixa{padding:14px}
}
@media (max-width:560px){
  .kpis{grid-template-columns:1fr}
  .topo{padding:9px 12px}
  .topo .chip span:not(.avatar){display:none}
  .linha-titulo{gap:8px}
}
@media (prefers-reduced-motion:reduce){ *{transition:none !important;animation:none !important} }

/* ===== Tela Hoje: fila, livro de eventos e a barra de desfazer =============
   Vem do artefato 37-white-label-um-clique.html. A fita colorida à esquerda é
   o que dá para ler de longe: vermelho vencido, dourado vencendo, azul o resto.
   ========================================================================== */
.fila-hoje{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px}
.pend{display:grid;grid-template-columns:3px 1fr auto;gap:0 14px;align-items:center;
      background:var(--cartao);border:1px solid var(--borda);border-radius:10px}
.pend .fita{align-self:stretch;background:var(--borda);border-radius:10px 0 0 10px}
.pend.urgente .fita{background:var(--erro)}
.pend.aviso .fita{background:var(--gold)}
.pend.novo .fita{background:var(--info)}
.pend .corpo{padding:11px 0 11px 2px;min-width:0}
.pend .l1{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.pend .nome{font-size:.88rem;font-weight:700;color:var(--texto);text-decoration:none}
a.nome:hover{color:var(--gold-2);text-decoration:underline}
.pend .tag{font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;padding:1px 8px;
           border-radius:99px;border:1px solid var(--borda);color:var(--mudo);white-space:nowrap}
.pend.urgente .tag{color:var(--erro);border-color:rgba(224,82,82,.45)}
.pend.aviso .tag{color:var(--gold-2);border-color:var(--gold-dark)}
.pend.novo .tag{color:var(--info);border-color:rgba(90,162,224,.45)}
.pend .l2{font-size:.78rem;color:var(--mudo);margin-top:2px}
.pend .acoes{display:flex;align-items:center;gap:6px;padding:0 14px}
.pend .acoes form{margin:0}

.livro{border:1px solid var(--borda);border-radius:10px;background:var(--bg-alt);padding:12px 14px;margin-bottom:70px}
.livro h3{font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;color:var(--mudo);margin:0 0 8px;font-weight:700}
.livro ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px;font-size:.76rem;color:var(--mudo)}
.livro li{display:flex;gap:10px;align-items:baseline}
.livro li form{margin:0}
.livro .h{color:var(--mudo);opacity:.7;flex:none;font-variant-numeric:tabular-nums}
.livro .ck{color:var(--ok);flex:none}
.livro .rv{color:var(--mudo);opacity:.65;text-decoration:line-through}
.livro .quem{margin-left:auto;color:var(--mudo);opacity:.6;font-size:.7rem;white-space:nowrap}
.livro .nada{color:var(--mudo);opacity:.75;font-style:italic;font-size:.76rem;margin:8px 0 0}

.barra-desfazer{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:11px 18px;background:#0d0d11;
                border-top:1px solid var(--ok);display:flex;align-items:center;gap:12px;font-size:.8rem}
.barra-desfazer.sumindo{display:none}
.barra-desfazer .ok{color:var(--ok);font-weight:700}
.barra-desfazer .txt{color:var(--mudo);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barra-desfazer .dir{margin-left:auto;display:flex;align-items:center;gap:10px}
.barra-desfazer .relogio{font-size:.72rem;color:var(--mudo);opacity:.7;font-variant-numeric:tabular-nums;min-width:30px;text-align:right}
.barra-desfazer form{margin:0}
@media (max-width:700px){
  .pend{grid-template-columns:3px 1fr}
  .pend .acoes{grid-column:2;padding:0 0 11px 2px}
}
