@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&family=Poppins:wght@300;400;500;600&display=swap');

:root{
  --navy:#3d4852;
  --navy-esc:#262e35;
  --bege:#c9bfae;
  --bege-claro:#f4f0e8;
  --cinza:#7a8288;
  --fundo:#faf8f5;
  --borda:#e7e1d6;
  --verde:#5f7a5a;
  --vermelho:#a15c50;
  --texto:#33393f;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Poppins',-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--fundo);color:var(--texto)}
body.modal-aberto{overflow:hidden;position:fixed;width:100%}

/* ---------- CABEÇALHO / LOGO ---------- */
.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:#fff;border-bottom:1px solid var(--borda)}
.logo{display:flex;align-items:center}
.logo-img{height:48px;width:auto;display:block}

.auth-area{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--cinza)}
.badge{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}
.badge.admin{background:var(--bege-claro);color:var(--navy)}
.badge.equipe{background:var(--bege-claro);color:var(--navy)}

/* ---------- ABAS ---------- */
.tabs{display:flex;gap:8px;padding:0 32px;background:#fff;border-bottom:1px solid var(--borda);overflow:visible}
.tab-btn{padding:16px 20px;border:none;background:none;cursor:pointer;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cinza);border-bottom:2px solid transparent;white-space:nowrap;font-weight:500;transition:color .15s;text-decoration:none;display:inline-block}
.tab-btn:hover{color:var(--navy)}
.tab-btn.active{color:var(--navy);border-bottom-color:var(--bege);font-weight:600}

main{max-width:1300px;margin:0 auto;padding:28px 24px 60px}
#tabelaWrap{overflow-x:auto}
.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}
#busca{flex:1;min-width:200px;padding:11px 14px;border:1px solid var(--borda);border-radius:4px;font-size:14px;font-family:'Poppins',sans-serif;background:#fff}
#busca:focus{outline:none;border-color:var(--bege)}
.chk-inativos{font-size:12.5px;color:var(--cinza);display:flex;align-items:center;gap:6px}

.aviso{background:var(--bege-claro);color:var(--navy);padding:11px 16px;border-radius:4px;font-size:13px;margin-bottom:16px}
.aviso.hidden{display:none}
.dash-grafico-svg{width:100%;height:auto}
.im-comp-mensal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.im-comp-mensal-card{background:#fff;border:1px solid var(--borda);border-radius:4px;padding:10px;position:relative}
.dash-grafico-svg{cursor:zoom-in}
.btn-ampliar-grafico{position:absolute;top:8px;right:8px;background:rgba(20,30,45,.75);color:#fff;border:none;border-radius:50%;width:24px;height:24px;font-size:12px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;z-index:1}
.grafico-zoom-conteudo{background:#fff;border-radius:6px;padding:24px;max-width:900px;width:92vw;max-height:88vh;overflow:auto}
.grafico-zoom-conteudo h3{margin:0 0 16px;color:var(--navy);font-size:16px}
.grafico-zoom-conteudo svg{width:100%;height:auto;cursor:default}
.comparacao-overlay{background:rgba(15,20,28,.94);flex-direction:column;padding:16px;overflow-y:auto}
.comparacao-overlay .modal-close{color:#fff;top:16px;right:18px;font-size:30px;z-index:3}
@media (max-width:900px){.im-comp-mensal-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.im-comp-mensal-grid{grid-template-columns:1fr}}


/* ---------- TABELA ---------- */
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borda);border-radius:2px}
th,td{padding:13px 16px;text-align:left;font-size:13.5px;border-bottom:1px solid var(--borda);white-space:nowrap}
td:first-child{white-space:normal;min-width:200px;font-weight:500;color:var(--navy)}
th{background:var(--bege-claro);font-weight:600;color:var(--navy);font-size:11px;letter-spacing:1px;text-transform:uppercase}
tr.inativo td{color:#b8b2a8;background:#fbfaf8;text-decoration:line-through}
tr:hover td{background:#fbfaf7}
td.acoes{white-space:nowrap;text-align:right}
.icon-btn{border:none;background:none;cursor:pointer;font-size:15px;padding:5px 7px;border-radius:4px}
.icon-btn:hover{background:var(--bege-claro)}

/* ---------- BOTÕES ---------- */
.btn{padding:10px 20px;border-radius:3px;border:none;cursor:pointer;font-size:13px;font-weight:500;letter-spacing:.4px;font-family:'Poppins',sans-serif;transition:background .15s,border-color .15s}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-esc)}
.btn-outline{background:#fff;border:1px solid var(--borda);color:var(--navy)}
.btn-outline:hover{background:var(--bege-claro);border-color:var(--bege)}
.btn-danger{background:#fff;border:1px solid var(--vermelho);color:var(--vermelho)}
.btn-cinza{background:var(--cinza);border:1px solid var(--cinza);color:#fff}
.btn-cinza:hover{background:#636a6f;border-color:#636a6f}

/* ---------- MODAIS ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(38,46,53,.55);display:flex;align-items:center;justify-content:center;z-index:50}
.modal-overlay.hidden{display:none}
.modal{background:#fff;border-radius:6px;padding:28px;width:100%;max-width:420px;position:relative;max-height:88vh;overflow-y:auto;overflow-x:hidden}
#modalEquipeIndicador .modal{max-width:640px}
.modal.modal-largo{max-width:760px}
.notif-regras-tabela{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:10px}
.notif-regras-tabela th,.notif-regras-tabela td{border-bottom:1px solid var(--borda,#e5e5e5);padding:6px 8px;text-align:left;vertical-align:top}
.notif-regras-tabela th{font-weight:600;color:var(--cinza)}
.notif-regras-categorias{display:flex;flex-wrap:wrap;gap:6px 14px}
.notif-regras-categorias label{display:flex;align-items:center;gap:4px;font-weight:400;white-space:nowrap}
.notif-regras-grupo-titulo{font-size:11px;font-weight:600;color:var(--cinza);text-transform:uppercase;letter-spacing:.02em;margin:8px 0 2px}
.modal h2{margin-top:0;font-size:19px;font-family:'Playfair Display',serif;font-weight:600;color:var(--navy)}
.modal-close{position:absolute;top:16px;right:16px;border:none;background:none;font-size:20px;cursor:pointer;color:var(--cinza)}
.modal form label{display:block;font-size:12.5px;color:var(--cinza);margin-bottom:14px;letter-spacing:.3px}
.modal form input{width:100%;padding:10px 11px;border:1px solid var(--borda);border-radius:3px;margin-top:5px;font-size:14px;font-family:'Poppins',sans-serif}
.modal form select{width:100%;max-width:100%;padding:10px 11px;border:1px solid var(--borda);border-radius:3px;margin-top:5px;font-size:14px;font-family:'Poppins',sans-serif;background:#fff}
.modal form textarea{width:100%;padding:10px 11px;border:1px solid var(--borda);border-radius:3px;margin-top:5px;font-size:14px;font-family:'Poppins',sans-serif;resize:vertical}
.modal form input:focus{outline:none;border-color:var(--bege)}
.campos-valores{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.erro{color:var(--vermelho);font-size:13px}
/* Sinalização de campo com erro (bloqueio de envio) — usada junto com a
   mensagem em .erro pra indicar visualmente qual campo precisa de atenção. */
.campo-erro{border:1.5px solid var(--vermelho) !important;border-radius:3px;background:#fdf4f2}
.campo-erro:focus{outline:none}
.dash-vazio{color:var(--cinza);font-size:12.5px}
.dash-subgrupo-titulo{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--cinza);margin:14px 0 6px;padding-top:10px;border-top:1px solid var(--borda)}
.dash-subgrupo-titulo:first-child{margin-top:0;padding-top:0;border-top:none}

/* ---------- PIPELINES (quadro estilo Monday) ---------- */
.pl-board{display:flex;gap:14px;overflow-x:auto;padding:16px 2px 24px;margin-top:14px;align-items:flex-start}
.pl-coluna{background:#f7f6f3;border:1px solid var(--borda);border-radius:6px;min-width:270px;max-width:270px;flex:0 0 auto;display:flex;flex-direction:column;max-height:calc(100vh - 260px)}
.pl-coluna.pl-coluna-dragover{outline:2px dashed var(--bege);outline-offset:-2px}
.pl-coluna-header{display:flex;align-items:center;gap:8px;padding:12px 12px 10px;border-bottom:1px solid var(--borda)}
.pl-coluna-cor{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.pl-coluna-nome{font-weight:600;font-size:13px;color:var(--navy);flex:1;cursor:pointer}
.pl-coluna-contagem{font-size:11.5px;color:var(--cinza);background:#fff;border:1px solid var(--borda);border-radius:20px;padding:1px 8px}
.pl-coluna-lista{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:40px}
.pl-coluna-add{border:none;background:none;text-align:left;color:var(--cinza);font-size:12.5px;padding:9px 12px;cursor:pointer;border-top:1px solid var(--borda)}
.pl-coluna-add:hover{background:#fff;color:var(--navy)}

.pl-card{background:#fff;border:1px solid var(--borda);border-radius:5px;padding:10px 11px;cursor:grab;box-shadow:0 1px 2px rgba(38,46,53,.04)}
.pl-card:hover{border-color:var(--bege)}
.pl-card.pl-card-dragging{opacity:.4}
.pl-card-titulo{font-size:13px;font-weight:500;color:var(--navy);margin-bottom:7px;word-break:break-word}
.pl-card-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pl-card-responsavel{font-size:11px;background:var(--bege-claro);color:var(--navy);border-radius:20px;padding:2px 8px;font-weight:500}
.pl-card-sem-responsavel{font-size:11px;color:var(--cinza)}
.pl-card-prazo{font-size:11px;border-radius:20px;padding:2px 8px;font-weight:500;background:#eef1f5;color:var(--cinza)}
.pl-card-prazo.pl-prazo-atrasado{background:#fbe3e0;color:var(--vermelho)}
.pl-card-prazo.pl-prazo-hoje{background:#fdf1d8;color:#8a6a1f}
.pl-card-prioridade{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.pl-card-prioridade.pl-prio-baixa{background:#9fb3a6}
.pl-card-prioridade.pl-prio-media{background:#c9a24a}
.pl-card-prioridade.pl-prio-alta{background:#d97a4d}
.pl-card-prioridade.pl-prio-urgente{background:var(--vermelho)}

.pl-card-cliente{background:#f7f5f1;border-radius:4px;padding:6px 8px;margin-bottom:7px;font-size:11.5px;color:var(--navy)}
.pl-card-cliente-linha{line-height:1.5}
.pl-card-cliente-linha strong{font-weight:600;color:var(--cinza)}
.pl-card-rodape{display:flex;flex-direction:column;gap:1px;margin-top:7px;padding-top:6px;border-top:1px solid var(--borda);font-size:10.5px;color:var(--cinza)}
.pl-card.pl-card-sla-vencido{border-color:var(--vermelho);background:#fdf3f2;box-shadow:0 0 0 1px var(--vermelho) inset}
.pl-card.pl-card-sla-vencido .pl-card-titulo{color:var(--vermelho)}

/* Distingue visualmente Oportunidade (lead) de Tarefa quando aparecem
   juntas numa mesma lista (ex: aba Por Responsável, que mistura as duas
   pipelines) — Oportunidade tem barra âmbar à esquerda, Tarefa tem
   barra azul. */
.pl-tag-tipo{font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:3px;padding:1px 6px;margin-right:6px;display:inline-block}
.pl-tag-tipo.pl-tag-lead{background:#f6ecd8;color:#8a6a1f}
.pl-tag-tipo.pl-tag-tarefa{background:#e2ecf5;color:#2f5a80}
.pl-tarefa-linha.pl-linha-lead{border-left:3px solid #c9a24b;padding-left:8px}
.pl-tarefa-linha.pl-linha-tarefa{border-left:3px solid #4f6d8a;padding-left:8px}

.pl-coluna-header{cursor:grab}
.pl-coluna.pl-coluna-arrastando{opacity:.4}
.pl-coluna.pl-coluna-dropalvo{outline:2px dashed var(--bege);outline-offset:2px}

.pl-resumo-card{cursor:pointer}
.pl-resumo-card.pl-resumo-card-ativo{outline:2px solid var(--bege);outline-offset:-2px}
.pl-tarefa-linha{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--borda);font-size:13px}
.pl-tarefa-linha:last-child{border-bottom:none}
.pl-tarefa-linha-titulo{font-weight:500;color:var(--navy)}
.pl-tarefa-linha-sub{color:var(--cinza);font-size:11.5px;margin-top:2px}

.tabela-scroll-x{overflow-x:auto}
.tabela-scroll-x table td,.tabela-scroll-x table th{white-space:normal}
.tabela-scroll-x table td:first-child{min-width:0}

.status-badge{padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}
.status-badge.envio_programado{background:#eef1f5;color:var(--cinza)}
.status-badge.enviado_1a{background:var(--bege-claro);color:var(--navy)}
.status-badge.enviado_2a{background:#e7f0e5;color:var(--verde)}
.status-badge.ignorado{background:#eef1f5;color:var(--cinza)}
.status-badge.atualizar_telefone{background:#fdf1d8;color:#8a6a1f}
.status-badge.falha_envio{background:#f5e6e3;color:var(--vermelho)}
.status-badge.confirmado_paciente{background:#e7f0e5;color:var(--verde)}
.status-badge.atendido{background:#e7f0e5;color:var(--verde)}
.status-badge.nao_compareceu{background:#f5e6e3;color:var(--vermelho)}
.status-badge.cancelado_confirmacao{background:#eef1f5;color:var(--cinza)}
.status-badge.cancelado_remarcado{background:#eef1f5;color:var(--cinza)}
.status-badge.em_atendimento{background:var(--bege-claro);color:var(--navy)}
.ok{color:var(--verde);font-size:13px}
.form-actions{display:flex;gap:10px;margin-top:8px}
.troca-modo{font-size:13px;color:var(--cinza);margin-top:14px}
.troca-modo a{color:var(--navy)}

.hist-lista{display:flex;flex-direction:column;gap:10px;font-size:13px}
.hist-item{border:1px solid var(--borda);border-radius:4px;padding:12px}
.hist-item .meta{color:var(--cinza);font-size:11.5px;margin-bottom:4px}
.hist-acao{font-weight:600;text-transform:capitalize;color:var(--navy)}

@media(max-width:640px){
  .topbar{padding:14px 18px;flex-wrap:wrap;gap:10px}
  .logo-img{height:38px}
  .tabs{padding:0 18px;overflow-x:auto}
  main{padding:20px 14px 50px}
  .modal-overlay{padding:14px;align-items:flex-start}
  .modal{padding:20px;max-height:calc(100vh - 48px);overflow-y:auto;-webkit-overflow-scrolling:touch;margin-top:0}
  @supports (max-height: 100dvh) {
    .modal{max-height:calc(100dvh - 48px)}
  }
  .campos-valores{grid-template-columns:1fr}
  .input-busca-paciente{min-width:0;flex-basis:100%}
  .pagina-sidebar-layout{flex-direction:column}
  .pagina-sidebar{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--borda);padding-right:0;padding-bottom:10px;min-width:0}
  .toolbar{flex-direction:column;align-items:stretch}
}

/* ---------- ORÇAMENTO DE EXAMES ---------- */
.chips-checkups{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.chip-checkup{background:#fff;border:1px solid var(--bege);color:var(--navy);padding:7px 14px;border-radius:20px;font-size:12.5px;cursor:pointer;font-family:'Poppins',sans-serif}
.chip-checkup:hover{background:var(--bege-claro)}
.chip-count{background:var(--bege-claro);color:var(--navy);border-radius:10px;padding:1px 7px;font-size:11px;margin-left:4px}

.exames-layout{display:grid;grid-template-columns:1fr 300px;gap:22px;align-items:start}
@media(max-width:860px){.exames-layout{grid-template-columns:1fr}}

.exames-lista-wrap{background:#fff;border:1px solid var(--borda);border-radius:4px;max-height:65vh;overflow-y:auto}
.lista-exames{display:flex;flex-direction:column}
.linha-exame{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--borda);cursor:pointer;font-size:13.5px}
.linha-exame:last-child{border-bottom:none}
.linha-exame:hover{background:#fbfaf7}
.linha-exame.selecionado{background:var(--bege-claro)}
.linha-exame input[type=checkbox]{width:16px;height:16px;accent-color:var(--navy);flex-shrink:0}
.exame-nome{flex:1;color:var(--texto)}
.exame-valor{font-weight:600;color:var(--navy);white-space:nowrap}
.exame-custo{font-size:11.5px;color:var(--vermelho);white-space:nowrap}
.exame-meta{font-size:11.5px;color:var(--cinza);white-space:nowrap}

.resumo-orcamento{background:#fff;border:1px solid var(--borda);border-radius:4px;padding:20px;position:sticky;top:16px}
.resumo-orcamento h3{margin:0 0 16px;font-family:'Playfair Display',serif;font-size:17px;color:var(--navy)}
.resumo-orcamento label{display:block;font-size:12px;color:var(--cinza);margin-bottom:12px}
.resumo-orcamento input{width:100%;padding:9px 10px;border:1px solid var(--borda);border-radius:3px;margin-top:4px;font-size:13.5px;font-family:'Poppins',sans-serif}
.resumo-linha{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:8px 0;border-top:1px solid var(--borda);color:var(--cinza)}
.resumo-linha.total{font-size:16px;color:var(--navy);font-weight:600}
.resumo-linha.custo{color:var(--vermelho)}
.resumo-botoes{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.resumo-botoes .btn{width:100%}

.checkup-lista-exames{max-height:280px;overflow-y:auto;border:1px solid var(--borda);border-radius:4px;margin-bottom:12px}
.linha-exame-checkup{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13px;border-bottom:1px solid var(--borda)}
.linha-exame-checkup:last-child{border-bottom:none}
.modal-lg{max-width:520px}
.modal-xl{max-width:960px}

/* ---------- Novo atendimento: lista compacta de exames já incluídos
   (sem valor, com "x" pra remover) + busca opcional pra adicionar mais. */
#atendSelecionadosLista{padding:12px 14px 4px}
#atendSelecionadosLista p{margin:0 0 8px}
.atend-selecionado-item{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;color:var(--texto);border-bottom:1px solid var(--borda)}
.atend-selecionado-item:last-child{border-bottom:none}
.atend-remover-exame{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:1px solid var(--vermelho);color:var(--vermelho);background:#fff;font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.atend-remover-exame:hover{background:var(--vermelho);color:#fff}
#btnAtendMostrarBusca{margin-left:14px}
#atendBuscaExameWrap{padding:0 14px 14px}

/* ---------- ÁREA DE IMPRESSÃO ---------- */
.print-area{display:none}
@media print{
  @page{size:A4;margin:10mm 12mm}
  /* body.modal-aberto usa position:fixed (pra travar o scroll de trás do
     popup) — se a impressão dispara com um modal ainda aberto, esse
     position:fixed cria um "containing block" preso à altura da tela e o
     Chrome recorta tudo que passa da 1ª página em vez de paginar. Por
     isso resetamos aqui, senão a 2ª via do comprovante sai cortada. */
  html,body{height:auto !important;margin:0;position:static !important;overflow:visible !important;width:auto !important}
  body > *:not(#printArea){display:none !important}
  #printArea{display:block !important;position:static;width:auto;padding:0;font-family:'Poppins',sans-serif}
  /* Sem isso o Chrome some com fundos/cores no PDF a menos que o usuário
     marque manualmente "Gráficos de plano de fundo" na caixa de impressão —
     forçamos aqui pra o comprovante sair colorido (badge, bordas, etc.). */
  #printArea, #printArea *{-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact}
  .print-logo-img{height:44px;width:auto;display:block;margin-bottom:18px}
  .print-area h2{font-family:'Playfair Display',serif;color:var(--navy);border-bottom:1px solid var(--borda);padding-bottom:8px;margin:0 0 12px;font-size:18px}
  .print-tabela{width:100%;border-collapse:collapse;margin:0 0 14px}
  .print-tabela td{padding:5px 0;font-size:12.5px;border-bottom:1px solid var(--borda)}
  .print-tabela td:first-child{color:var(--cinza);width:120px}
  .print-exames{margin:0 0 14px}
  .print-exames h3{font-family:'Playfair Display',serif;color:var(--navy);font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;margin:0 0 6px;border-bottom:1px solid var(--borda);padding-bottom:6px}
  .print-exames ul{list-style:none;margin:0;padding:0;column-count:2;column-gap:20px}
  .print-exames li{font-size:11.5px;padding:3px 0;color:var(--texto);break-inside:avoid}
  .print-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;border-top:2px solid var(--navy);font-size:16px;color:var(--navy)}
  .print-total strong{font-size:22px}
  .print-rodape{display:flex;flex-direction:column;gap:3px;margin-top:26px;padding-top:12px;border-top:1px solid var(--borda);font-size:10.5px;color:var(--cinza);text-align:center}

  /* ---- Comprovante de Atendimento ----
     Impresso em 2 vias na MESMA folha A4 (paciente / clínica) — a atendente
     recorta na linha tracejada e entrega uma via, ficando com a outra. Por
     isso todo o bloco é bem mais compacto que o orçamento: as duas cópias
     completas precisam caber juntas dentro da área imprimível de ~269mm. */
  #printComprovanteBloco{display:block}
  #printComprovanteBloco .print-comp-via{break-inside:avoid;padding:2.5mm 0 1.5mm}
  #printComprovanteBloco .print-comp-via-tag{display:inline-block;background:var(--navy);color:#fff;font-size:7px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:1px 7px;border-radius:14px;margin-bottom:3px}
  #printComprovanteBloco .print-comp-corte{text-align:center;font-size:9px;color:var(--cinza);letter-spacing:2px;margin:0.5mm 0;overflow:hidden;white-space:nowrap;border-top:1px dashed var(--borda);break-inside:avoid}
  #printComprovanteBloco .print-comp-logo{height:15px;margin-bottom:2px}
  #printComprovanteBloco .print-comp-cabecalho{border-bottom:1px solid var(--navy);padding-bottom:2px;margin-bottom:3px}
  #printComprovanteBloco .print-comp-cabecalho strong{display:block;font-size:8.5px;color:var(--navy);font-weight:700}
  #printComprovanteBloco .print-comp-cabecalho span{display:block;font-size:6.8px;color:var(--cinza);margin-top:0}
  #printComprovanteBloco .print-comp-cabecalho h2{margin:2px 0 0;padding:0;border:0;font-size:10.5px;font-family:'Playfair Display',serif;color:var(--navy)}
  #printComprovanteBloco .print-comp-numero{display:flex;justify-content:space-between;align-items:center;background:var(--bege-claro);border:1px solid var(--bege);padding:2px 8px;border-radius:4px;margin:0 0 3px;font-size:8px;color:var(--navy);font-weight:500}
  #printComprovanteBloco .print-comp-numero strong{font-size:11px;color:var(--navy);letter-spacing:.5px}
  #printComprovanteBloco .print-tabela{margin:0 0 3px}
  #printComprovanteBloco .print-tabela td{padding:1px 0;font-size:8px}
  #printComprovanteBloco .print-tabela td:first-child{width:95px}
  #printComprovanteBloco .print-exames{margin:0 0 3px}
  #printComprovanteBloco .print-exames h3{font-size:8px;margin:0 0 1px;padding-bottom:1px;display:flex;justify-content:space-between;align-items:baseline}
  #printComprovanteBloco .print-comp-total{font-family:'Poppins',sans-serif;text-transform:none;font-weight:400;font-size:6.8px;color:var(--cinza);letter-spacing:0}
  /* Atendimentos com muitos exames (orçamentos grandes) — 5 colunas bem
     compactas, pra sempre caber as 2 vias completas numa folha A4 só. */
  #printComprovanteBloco .print-exames ul{column-count:5;column-gap:6px;list-style:none;counter-reset:comp-exame;padding-left:0}
  /* Numeração + recuo pendente: o número conta como "primeira linha" (via
     text-indent negativo) então, se o nome do exame quebrar pra 2ª linha,
     ela fica alinhada com o texto — não gruda na margem parecendo item novo. */
  #printComprovanteBloco .print-exames li{counter-increment:comp-exame;font-size:6.5px;padding:0 0 0 8px;text-indent:-8px;line-height:1.1}
  #printComprovanteBloco .print-exames li::before{content:counter(comp-exame) '. ';color:var(--cinza)}
  #printComprovanteBloco .print-comp-prazo{display:flex;justify-content:space-between;align-items:center;margin:3px 0;padding:2px 8px;border:1px solid var(--navy);border-radius:4px;font-size:8px;background:#fbfaf7}
  #printComprovanteBloco .print-comp-prazo strong{font-size:9.5px;color:var(--navy)}
  #printComprovanteBloco .print-comp-bloco{margin:0 0 3px}
  #printComprovanteBloco .print-comp-bloco h3{font-family:'Playfair Display',serif;color:var(--navy);font-size:8px;letter-spacing:.3px;text-transform:uppercase;margin:0 0 1px;border-bottom:1px solid var(--borda);padding-bottom:1px}
  #printComprovanteBloco .print-comp-bloco p{font-size:7px;color:var(--texto);margin:0;line-height:1.15}
  #printComprovanteBloco .print-comp-executante{font-size:7px;margin:0 0 1px;padding-left:6px;border-left:2px solid var(--bege)}
  #printComprovanteBloco .print-comp-executante strong{display:block;color:var(--navy)}
  #printComprovanteBloco .print-comp-rodape{text-align:left;border-top:1px solid var(--borda);margin-top:3px}
  #printComprovanteBloco .print-comp-rodape span:first-child{font-weight:600;color:var(--navy);font-size:7px}
  #printComprovanteBloco .print-comp-rodape span:last-child{font-size:6.2px}

  /* ---- Romaneio de Malote (RF-20) ---- */
  .print-romaneio-itens{margin-top:6px}
  .print-romaneio-itens th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--cinza);border-bottom:1px solid var(--navy);padding:4px 6px}
  .print-romaneio-itens td{font-size:11.5px;padding:5px 6px;border-bottom:1px solid var(--borda)}
  .print-romaneio-assinaturas{display:flex;gap:24px;margin-top:24px}
  .print-romaneio-assinaturas > div{flex:1}
  .print-romaneio-assinaturas p{font-size:11px;margin:0 0 4px}
  .print-romaneio-linha-assinatura{margin-top:28px;font-size:11px;color:var(--cinza)}
}

/* ---------- DESCONTO / ORÇAMENTOS CLICÁVEIS ---------- */
.desconto-linha{display:flex;gap:8px;margin-top:4px}
.desconto-linha select{padding:9px 8px;border:1px solid var(--borda);border-radius:3px;font-size:13px;font-family:'Poppins',sans-serif;background:#fff}
.desconto-linha input{flex:1;margin-top:0}
.resumo-linha.final{font-size:15px;color:var(--navy);font-weight:600;border-top:2px solid var(--navy);margin-top:4px;padding-top:10px}
.hist-item.clicavel{cursor:pointer;transition:background .15s}
.hist-item.clicavel:hover{background:var(--bege-claro)}
#detalheOrcamentoTabela{border-collapse:collapse}
#detalheOrcamentoTabela td{padding:6px 0;font-size:13.5px;border-bottom:1px solid var(--borda)}

/* --- Menu principal com dropdowns (Valores/Laboratório/Configurações) --- */
.tabs{position:relative}
.nav-dropdown{position:relative}
.nav-dropdown-trigger{padding:16px 20px;border:none;background:none;cursor:pointer;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cinza);border-bottom:2px solid transparent;white-space:nowrap;font-weight:500;font-family:inherit;transition:color .15s}
.nav-dropdown-trigger:hover{color:var(--navy)}
.nav-dropdown-trigger.tem-ativo{color:var(--navy);border-bottom-color:var(--bege);font-weight:600}
.nav-dropdown-trigger .seta{font-size:9px;margin-left:2px}
.nav-dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--borda);border-radius:4px;box-shadow:0 8px 20px rgba(20,30,45,.08);min-width:200px;z-index:40;flex-direction:column;padding:6px}
.nav-dropdown.aberto .nav-dropdown-menu{display:flex}
.nav-dropdown-menu .tab-btn{text-align:left;padding:10px 12px;border-bottom:none;border-radius:3px}
.nav-dropdown-menu .tab-btn:hover{background:#f4f2ee}
.nav-dropdown-menu .tab-btn.active{background:var(--bege-claro)}
.topbar-direita{display:flex;align-items:center;gap:14px}
.topbar-direita .nav-dropdown-trigger{padding:8px 10px;font-size:11.5px}
.topbar-direita .tab-btn{padding:8px 10px;font-size:11.5px;border-bottom:2px solid transparent}

/* SINO DE NOTIFICAÇÕES */
.sininho-trigger{position:relative;padding:8px 12px !important;font-size:16px !important;text-transform:none !important;letter-spacing:0 !important}
.sininho-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--vermelho);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}
.sininho-menu{min-width:320px;max-width:360px;max-height:420px;overflow-y:auto;padding:10px}
.notif-secao-titulo{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cinza);font-weight:600;padding:8px 8px 4px}
.notif-item-row{display:flex;align-items:center;gap:2px}
.notif-item{display:block;flex:1;min-width:0;text-align:left;padding:8px;border:none;background:none;cursor:pointer;border-radius:4px;font-family:inherit}
.notif-item:hover{background:#f4f2ee}
.notif-item-titulo{font-size:13px;color:var(--navy);font-weight:500}
.notif-item-sub{font-size:11.5px;color:var(--cinza);margin-top:2px}
.notif-item.notif-urgente .notif-item-titulo{color:var(--vermelho)}
.notif-item-descartar{flex:none;width:22px;height:22px;border:none;background:none;color:var(--cinza);font-size:16px;line-height:1;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center}
.notif-item-descartar:hover{background:#f4f2ee;color:var(--vermelho)}
.notif-vazio{padding:16px 8px;text-align:center;color:var(--cinza);font-size:13px}

/* TOGGLE LISTA/QUADRO (aba Tarefas) */
.pl-tarefas-visao-toggle{display:flex;border:1px solid var(--borda);border-radius:4px;overflow:hidden}
.pl-visao-btn{padding:9px 14px;border:none;background:#fff;color:var(--cinza);font-size:12.5px;cursor:pointer;font-family:inherit;border-right:1px solid var(--borda)}
.pl-visao-btn:last-child{border-right:none}
.pl-visao-btn.active{background:var(--bege-claro);color:var(--navy);font-weight:600}
.topbar-direita .nav-dropdown-menu{top:calc(100% + 6px);left:auto;right:0}

.autocomplete-resultados{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--borda);border-radius:4px;box-shadow:0 8px 20px rgba(20,30,45,.08);max-height:180px;overflow-y:auto;z-index:50}
.autocomplete-resultados div{padding:8px 12px;font-size:13px;cursor:pointer}
.autocomplete-resultados div:hover{background:#f4f2ee}
.input-busca-paciente{min-width:320px;flex:1 1 320px}
.cartao-auth label{display:block;font-size:12.5px;color:var(--cinza);margin-bottom:14px;letter-spacing:.3px}
.cartao-auth input{width:100%;padding:10px 11px;border:1px solid var(--borda);border-radius:3px;margin-top:5px;font-size:14px;font-family:'Poppins',sans-serif}
.cartao-auth input:focus{outline:none;border-color:var(--bege)}
.pagina-sidebar-layout{display:flex;gap:28px;align-items:flex-start}
.pagina-sidebar{display:flex;flex-direction:column;gap:2px;min-width:200px;flex-shrink:0;border-right:1px solid var(--borda);padding-right:16px}
.pagina-sidebar-item{text-align:left;background:none;border:none;padding:10px 12px;border-radius:4px;font-size:13px;color:var(--navy);cursor:pointer;font-family:'Poppins',sans-serif}
.pagina-sidebar-item:hover{background:#f4f2ee}
.pagina-sidebar-item.active{background:var(--navy);color:#fff}
.pagina-sidebar-conteudo{flex:1;min-width:0}
/* Mesmo visual do .pagina-sidebar-item, mas com classe própria: o
   submenu de Gestão de Usuários (Grupo Administrativo / Pacientes)
   precisa de um seletor separado pra não ser capturado pelo listener
   de clique global do .pagina-sidebar-item (que navega pelas
   categorias de Valores Espaço Be+ / Laboratório). */
.usuarios-subcat-item{text-align:left;background:none;border:none;padding:10px 12px;border-radius:4px;font-size:13px;color:var(--navy);cursor:pointer;font-family:'Poppins',sans-serif}
.usuarios-subcat-item:hover{background:#f4f2ee}
.usuarios-subcat-item.active{background:var(--navy);color:#fff}
.tag-super-admin{display:inline-block;background:#2b2b40;color:#fff;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:14px;letter-spacing:.2px}
/* Gestão de Usuários: forma compacta (o formulário "Criar novo
   usuário" fica fora de modal, então precisa de regras próprias pra
   não ficar com fonte/tamanho grande demais como no navegador padrão). */
#formUsuario label{display:block;font-size:12px;color:var(--cinza);letter-spacing:.2px}
#formUsuario input, #formUsuario select{display:block;margin-top:5px;padding:7px 9px;font-size:13px;border:1px solid var(--borda);border-radius:3px;font-family:'Poppins',sans-serif;box-sizing:border-box;width:100%}
#formUsuario .btn{padding:8px 18px;font-size:12.5px}
#usuariosSubAdministrativo h3{font-size:14px}
#usuariosSubAdministrativo > div > p{font-size:12px}
#filtroPapelUsuario{font-size:12.5px;padding:5px 8px;border:1px solid var(--borda);border-radius:3px}
#listaUsuariosAdministrativo table, #listaUsuariosPacientes table{font-size:12.5px}
#listaUsuariosAdministrativo th, #listaUsuariosPacientes th{font-size:11px}
#listaUsuariosAdministrativo select, #listaUsuariosPacientes select{font-size:12px;padding:4px 6px}

/* --- Cadastros (Página Inicial): layout de sidebar, mesmo padrão do gestao.html --- */
.cadastros-layout{display:flex;gap:28px;align-items:flex-start}
.cadastros-sidebar{display:flex;flex-direction:column;gap:2px;min-width:200px;flex-shrink:0;border-right:1px solid var(--borda);padding-right:16px}
.cadastros-sidebar-item{text-align:left;background:none;border:none;padding:10px 12px;border-radius:4px;font-size:13px;color:var(--navy);cursor:pointer;font-family:'Poppins',sans-serif}
.cadastros-sidebar-item:hover{background:#f4f2ee}
.cadastros-sidebar-item.active{background:var(--navy);color:#fff}
.cadastros-conteudo{flex:1;min-width:0}
@media (max-width: 640px) {
  .cadastros-layout { flex-direction: column; }
  .cadastros-sidebar {
    flex-direction: row;
    flex-wrap: wrap;
    border-right: none;
    border-bottom: 1px solid var(--borda);
    padding-right: 0;
    padding-bottom: 10px;
    min-width: 0;
  }
}

/* --- Classes de cadastro (listas em card) reaproveitadas do gestao.css --- */
.checkbox-inline{display:flex;align-items:center;gap:7px;font-size:13px;flex-direction:row !important}
.checkbox-inline input{width:auto;width:17px;height:17px;cursor:pointer}
.modal form label.checkbox-inline{display:flex !important;flex-direction:row !important;align-items:center;gap:8px;margin-bottom:0}
.lista-estoque{display:flex;flex-direction:column;gap:10px}
.card-item-estoque{background:#fff;border:1px solid var(--borda);border-radius:4px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .15s}
.card-item-estoque:hover{background:#fbfaf7}
.card-item-estoque .nome{font-weight:600;color:var(--navy);font-size:14.5px}
.badge-estoque-baixo{display:inline-block;margin-top:4px;background:#f5e6e3;color:var(--vermelho);font-size:10.5px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:20px}
.lista-movimentacoes-estoque{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}
.linha-movimentacao{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--borda);border-radius:4px;padding:9px 12px;font-size:12.5px}
.linha-movimentacao .tipo-mov{font-size:10.5px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:20px}
.linha-movimentacao .tipo-mov.entrada{background:#e7f0e5;color:var(--verde)}
.linha-movimentacao .tipo-mov.saida{background:#f5e6e3;color:var(--vermelho)}
.linha-movimentacao:hover{border-color:var(--navy)}

/* --- Indicadores Médicos: cards de dashboard --- */
.dash-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.dash-card{background:#fff;border:1px solid var(--borda);border-radius:4px;padding:16px;text-align:center}
.dash-valor{font-size:22px;font-weight:700;color:var(--navy);font-family:'Poppins',sans-serif}
.dash-label{font-size:11.5px;color:var(--cinza);margin-top:4px}

/* Multi-seleção de profissionais (Horários Disponibilizados) */
.multi-select-wrap{position:relative;display:inline-block}
.multi-select-panel{position:absolute;top:calc(100% + 4px);left:0;background:#fff;border:1px solid var(--borda);border-radius:4px;padding:10px;z-index:50;max-height:260px;overflow-y:auto;min-width:240px;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.multi-select-panel.hidden{display:none}
.hidden{display:none}
.multi-select-panel label{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12.5px;white-space:nowrap}
.multi-select-actions{display:flex;gap:10px;margin-bottom:8px;font-size:11.5px;border-bottom:1px solid var(--borda);padding-bottom:6px}
.multi-select-actions button{background:none;border:none;color:var(--navy);cursor:pointer;text-decoration:underline;padding:0;font-size:11.5px}
.farol-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}
