.link-voltar{font-size:12.5px;color:var(--cinza);text-decoration:none}
.link-voltar:hover{color:var(--navy)}

.lista-pacientes{display:flex;flex-direction:column;gap:10px}
.card-paciente{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-paciente:hover{background:#fbfaf7}
.card-paciente .nome{font-weight:600;color:var(--navy);font-size:14.5px}
.card-paciente .info{font-size:12px;color:var(--cinza);margin-top:3px}
.card-paciente .protocolos-resumo{display:flex;gap:6px;align-items:center;flex-shrink:0}

.farol{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}
.farol.verde{background:var(--verde)}
.farol.vermelho{background:var(--vermelho)}

.lista-protocolos{display:flex;flex-direction:column;gap:10px}
.card-protocolo{border:1px solid var(--borda);border-radius:4px;padding:12px 14px;cursor:pointer;transition:background .15s}
.card-protocolo:hover{background:#fbfaf7}
.card-protocolo .linha-topo{display:flex;justify-content:space-between;align-items:center;gap:10px}
.card-protocolo .nome-protocolo{font-weight:600;color:var(--navy);font-size:13.5px}
.card-protocolo .meta{font-size:11.5px;color:var(--cinza);margin-top:4px}
.card-protocolo .valores{display:flex;align-items:center;gap:8px;font-size:12.5px;white-space:nowrap}

.status-badge{padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}
.status-badge.a_iniciar{background:#eef1f5;color:var(--cinza)}
.status-badge.ativo{background:var(--bege-claro);color:var(--navy)}
.status-badge.finalizado{background:#e7f0e5;color:var(--verde)}
.status-badge.cancelado{background:#f5e6e3;color:var(--vermelho)}
.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)}

.lista-parcelas{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}
.linha-parcela{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;cursor:pointer}
.linha-parcela:hover{background:#fbfaf7}
.parcela-status{font-size:10.5px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:20px}
.parcela-status.pago{background:#e7f0e5;color:var(--verde)}
.parcela-status.pendente{background:#f5e6e3;color:var(--vermelho)}

/* --- Abas dentro do detalhe do paciente --- */
.subtabs{display:flex;gap:4px;border-bottom:1px solid var(--borda);margin-bottom:16px;flex-wrap:wrap}
.subtab-btn{background:none;border:none;padding:8px 12px;font-size:12.5px;color:var(--cinza);cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}
.subtab-btn:hover{color:var(--navy)}
.subtab-btn.active{color:var(--navy);font-weight:600;border-bottom-color:var(--navy)}
.subpainel{min-height:80px}

.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}

/* --- Aplicações --- */
.lista-aplicacoes{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}
.linha-aplicacao{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;cursor:pointer}
.linha-aplicacao:hover{background:#fbfaf7}
.linha-aplicacao .info-item{display:flex;flex-direction:column;gap:2px}
.linha-aplicacao .tag-semana{font-size:10.5px;color:var(--cinza);text-transform:uppercase;letter-spacing:.3px}
.linha-aplicacao .tag-local{font-size:10.5px;color:var(--cinza)}
.status-badge.realizado{background:#e7f0e5;color:var(--verde)}
.status-badge.pendente{background:#f5e6e3;color:var(--vermelho)}
.status-toggle-rapido{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.status-toggle-rapido input[type="checkbox"]{cursor:pointer;width:20px;height:20px}
.btn-filtro-status-protocolo.ativo{background:var(--navy);color:#fff;border-color:var(--navy)}
/* Cores de status específicas da área do paciente (Meus Tratamentos):
   a iniciar = azul, ativo = verde, finalizado = cinza — diferente do
   esquema padrão usado na gestão, só pra esses cartões. */
.card-protocolo-paciente .status-badge.a_iniciar{background:#e3edf7;color:#2b5f8a}
.card-protocolo-paciente .status-badge.ativo{background:#e2f3e5;color:#2f7d42}
.card-protocolo-paciente .status-badge.finalizado{background:#ececec;color:#666}
.btn-filtro-status-avulsos.ativo{background:var(--navy);color:#fff;border-color:var(--navy)}
/* Badges coloridos por grupo em "Meus Tratamentos" (área do paciente):
   Medicação, Acelerador metabólico e Consulta cada um com sua cor. */

/* Farol de status (bolinha) no lugar do texto Pendente/Realizado(a). */
.farol-status{display:inline-block;width:11px;height:11px;border-radius:50%;flex-shrink:0}
.farol-status.realizado{background:var(--verde)}
.farol-status.pendente{background:var(--vermelho)}
/* Filtro geral Ativo/Encerrado em Meus Tratamentos. */
.btn-filtro-status-tratamento.ativo{background:var(--navy);color:#fff;border-color:var(--navy)}
/* Tag do grupo de procedimento (Emagrecimento/Estetica/Consulta),
   em frente ao nome do protocolo/pacote/consulta em Meus Tratamentos. */
.tag-grupo-procedimento{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:10px;margin-right:6px}
.tag-grupo-emagrecimento{background:#e3edf7;color:#2b5f8a}
.tag-grupo-estetica{background:#f3e8fb;color:#7a4fa3}
.tag-grupo-consulta-avulsa{background:#e7f0e5;color:var(--verde)}
.tag-grupo-avulso{background:#fdf6d8;color:#8a6d1a}
/* Cada tipo de linha (protocolo/pacote/consulta avulsa) em Meus
   Tratamentos ganha uma borda lateral de cor diferente. */
.tratamento-linha{border-left:4px solid transparent}
.tratamento-linha-emagrecimento{border-left-color:#2b5f8a}
.tratamento-linha-estetica{border-left-color:#7a4fa3}
.tratamento-linha-consulta{border-left-color:var(--verde)}
.tratamento-linha-avulso{border-left:4px solid #c9a227}
/* Grupos coloridos de eventos dentro de um protocolo expandido
   (Medicacao, Consultas, Acelerador Metabolico) e dentro de um
   pacote de estetica (sessoes). */
.grupo-evento-protocolo{border-radius:6px;padding:8px;margin-bottom:10px}
.grupo-evento-protocolo:last-child{margin-bottom:0}
.grupo-evento-titulo{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}
.grupo-evento-protocolo .linha-aplicacao,.grupo-evento-protocolo .linha-consulta{background:#fff}
.grupo-evento-medicacao{background:#eef4fa}
.grupo-evento-medicacao .grupo-evento-titulo{color:#2b5f8a}
.grupo-evento-consulta{background:#eef6ec}
.grupo-evento-consulta .grupo-evento-titulo{color:var(--verde)}
.grupo-evento-acelerador{background:#f6eefa}
.grupo-evento-acelerador .grupo-evento-titulo{color:#7a4fa3}
.grupo-evento-estetica{background:#f6eefa}
.grupo-evento-estetica .grupo-evento-titulo{color:#7a4fa3}
.cel-editavel{cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .15s}
.cel-editavel:hover{border-bottom-color:var(--cinza)}
.cel-editavel input[type=date],.cel-editavel select{font-family:'Poppins',sans-serif;font-size:12.5px;padding:2px 4px;border:1px solid var(--borda);border-radius:3px}

/* --- Consultas --- */
.lista-consultas{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}
.linha-consulta{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;cursor:pointer}
.linha-consulta:hover{background:#fbfaf7}
.tipo-badge{padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:600;text-transform:uppercase;background:var(--bege-claro);color:var(--navy)}
/* Variantes de cor por tipo (mesmo esquema usado em Meus Tratamentos,
   na área do paciente, e no Histórico de Eventos do painel
   administrativo) — precisam vir DEPOIS de .tipo-badge no CSS pra
   vencer o empate de especificidade e não ficar tudo bege. */
.tipo-badge-medicacao{background:#e3edf7;color:#2b5f8a}
.tipo-badge-acelerador{background:#f3e8fb;color:#7a4fa3}
.tipo-badge-consulta{background:#e7f0e5;color:var(--verde)}
.tipo-badge-sessao{background:#f3e8fb;color:#7a4fa3}

/* --- Check-ins --- */
.lista-checkins{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto}
.card-checkin{border:1px solid var(--borda);border-radius:4px;padding:12px 14px;cursor:pointer;font-size:12.5px}
.card-checkin:hover{background:#fbfaf7}
.card-checkin .data-checkin{font-weight:600;color:var(--navy);margin-bottom:4px}
.card-checkin .resumo-checkin{color:var(--cinza);font-size:11.5px;line-height:1.5}

/* --- Arquivos --- */
.lista-arquivos{display:flex;flex-direction:column;gap:8px}
.linha-arquivo{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-arquivo .nome-arquivo{font-weight:600;color:var(--navy)}
.linha-arquivo .tipo-arquivo{font-size:10.5px;color:var(--cinza);text-transform:uppercase}
.linha-arquivo .acoes-arquivo{display:flex;gap:8px;align-items:center}
.linha-arquivo a{color:var(--navy);font-size:12px;text-decoration:underline}

/* --- Estética: pacotes --- */
.lista-pacotes-estetica{display:flex;flex-direction:column;gap:10px}
.card-pacote-estetica{border:1px solid var(--borda);border-radius:4px;padding:12px 14px;cursor:pointer;transition:background .15s}
.card-pacote-estetica:hover{background:#fbfaf7}
.card-pacote-estetica .linha-topo{display:flex;justify-content:space-between;align-items:center;gap:10px}
.card-pacote-estetica .nome-pacote{font-weight:600;color:var(--navy);font-size:13.5px}
.card-pacote-estetica .meta{font-size:11.5px;color:var(--cinza);margin-top:4px}
.card-pacote-estetica .progresso{font-size:12px;color:var(--cinza);margin-top:6px}
.card-pacote-estetica .valores{display:flex;align-items:center;gap:8px;font-size:12.5px;margin-top:6px}
.select-status-rapido-pacote{font-size:11px;padding:3px 6px;border-radius:14px;border:1px solid var(--borda);background:#fff;cursor:pointer}

/* --- Estética: sessões --- */
.lista-sessoes-estetica{display:flex;flex-wrap:wrap;gap:8px}
.chip-sessao{border:1px solid var(--borda);border-radius:20px;padding:5px 12px;font-size:11.5px;cursor:pointer;display:flex;align-items:center;gap:6px}
.chip-sessao:hover{background:#fbfaf7}
.chip-sessao.realizada{background:#e7f0e5;border-color:var(--verde);color:var(--verde)}
.chip-sessao.falta{background:#f5e6e3;border-color:var(--vermelho);color:var(--vermelho)}

/* --- Estética: galeria de fotos --- */
.galeria-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.item-foto{position:relative;border:1px solid var(--borda);border-radius:4px;overflow:hidden;background:#f4f2ee}
.item-foto img{width:100%;height:110px;object-fit:cover;display:block}
.item-foto .rotulo-momento{position:absolute;top:4px;left:4px;background:rgba(20,30,45,.75);color:#fff;font-size:9.5px;text-transform:uppercase;padding:2px 6px;border-radius:10px}
.item-foto .btn-excluir-foto{position:absolute;top:4px;right:4px;background:rgba(20,30,45,.75);color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:12px;cursor:pointer;line-height:1}
.grade-comparar-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
.grade-comparar-fotos .item-foto{cursor:pointer;border-width:2px;transition:border-color .15s}
.grade-comparar-fotos .item-foto.selecionada{border-color:var(--navy)}
.preview-comparar-fotos{display:flex;gap:12px;overflow-x:auto;margin-top:16px;padding-top:16px;border-top:1px solid var(--borda)}
.preview-comparar-fotos p.dash-vazio{width:100%}
.preview-comparar-fotos figure{margin:0;flex-shrink:0;text-align:center}
.preview-comparar-fotos img{max-height:340px;max-width:280px;border-radius:4px;display:block}
.preview-comparar-fotos figcaption{font-size:11px;color:var(--cinza);margin-top:4px}

/* --- Estoque --- */
.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}
.card-item-estoque .info{font-size:12px;color:var(--cinza);margin-top:3px;text-transform:capitalize}
.card-item-estoque .quantidade{font-size:13px;white-space:nowrap;text-align:right}
.card-item-estoque .quantidade .valor{font-weight:600;color:var(--navy)}
.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)}
.detalhe-movimentacao{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.detalhe-linha{display:flex;justify-content:space-between;gap:14px;font-size:13px;padding-bottom:8px;border-bottom:1px solid var(--borda)}
.detalhe-linha:last-child{border-bottom:none}
.detalhe-rotulo{color:var(--cinza)}
.detalhe-linha .tipo-mov{font-size:10.5px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:20px}
.detalhe-linha .tipo-mov.entrada{background:#e7f0e5;color:var(--verde)}
.detalhe-linha .tipo-mov.saida{background:#f5e6e3;color:var(--vermelho)}
.calc-resultado{display:flex;flex-direction:column;gap:8px;margin-top:14px;padding:14px;background:#f7f5f0;border-radius:6px}
.calc-resultado .detalhe-linha{border-bottom:1px solid var(--borda);font-size:12.5px}
.calc-resultado .detalhe-linha:last-child{border-bottom:none}
.calc-resultado-destaque{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;margin-bottom:4px;border-bottom:2px solid var(--navy)}
.calc-resultado-destaque-rotulo{font-size:13px;color:var(--cinza)}
.calc-resultado-ui{font-weight:700;color:var(--navy);font-size:26px}

/* --- Dashboard --- */
.dash-secao{margin-bottom:30px}
.dash-secao h3{font-family:'Playfair Display',serif;color:var(--navy);font-size:16px;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--borda)}
.dash-secao h3.secao-titulo-clicavel{cursor:pointer;display:flex;align-items:center;gap:8px;user-select:none}
.dash-secao h3.secao-titulo-clicavel .dash-lista-icone{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--borda);border-radius:3px;font-size:14px;line-height:1;color:var(--navy);font-family:'Poppins',sans-serif}
.secao-conteudo{padding-top:4px}
.subgrupo{margin-bottom:14px}
.subgrupo:last-child{margin-bottom:0}
.subgrupo-titulo{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--cinza);margin:0 0 6px;font-family:'Poppins',sans-serif}
.subgrupo-titulo-clicavel{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--cinza);margin:0 0 6px;font-family:'Poppins',sans-serif;cursor:pointer;display:flex;align-items:center;gap:7px;user-select:none}
.subgrupo-titulo-clicavel .dash-lista-icone{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--borda);border-radius:3px;font-size:11px;line-height:1;color:var(--navy);text-transform:none;font-family:'Poppins',sans-serif}
.subgrupo-conteudo{padding-top:2px}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
/* Grade de indicadores do paciente: no máximo 6 cartões por linha. */
.grade-indicadores-limitada{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-auto-flow:row}
@media(min-width:960px){.grade-indicadores-limitada{grid-template-columns:repeat(6,1fr)}}
.dash-card{background:#fff;border:1px solid var(--borda);border-radius:4px;padding:16px;text-align:center}
.dash-card-destaque{background:#fff;border:2px solid var(--navy);border-radius:6px;padding:22px;text-align:center;max-width:360px}
.dash-valor-grande{font-size:38px;font-weight:700;color:var(--navy);font-family:'Poppins',sans-serif;line-height:1.1}
.dash-card-clicavel{cursor:pointer;transition:background .15s,box-shadow .15s}
.dash-card-clicavel:hover{background:#fbfaf7;box-shadow:0 0 0 1px var(--borda) inset}
.dash-valor{font-size:22px;font-weight:700;color:var(--navy);font-family:'Poppins',sans-serif}
.dash-rotulo{font-size:11.5px;color:var(--cinza);margin-top:4px}
.dash-lista-secao{margin-bottom:20px}
.dash-lista-secao h4{font-size:13px;color:var(--navy);margin:0 0 8px}
.dash-lista-secao h4.dash-lista-titulo-clicavel{cursor:pointer;display:flex;align-items:center;gap:8px;user-select:none}
.dash-lista-secao h4.dash-lista-titulo-clicavel .dash-lista-icone{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--borda);border-radius:3px;font-size:13px;line-height:1;color:var(--navy)}
.dash-lista{display:flex;flex-direction:column;gap:6px}
.dash-linha{border:1px solid var(--borda);border-radius:4px;padding:8px 12px;font-size:12.5px;display:flex;justify-content:space-between;gap:10px;background:#fff}
.dash-vazio{color:var(--cinza);font-size:12.5px}
.dash-graficos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.dash-grafico-card{background:#fff;border:1px solid var(--borda);border-radius:4px;padding:14px}
.dash-grafico-card h4{font-size:13px;color:var(--navy);margin:0 0 8px}
.dash-grafico-svg{width:100%;height:auto;cursor:zoom-in}
.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}
.dash-grafico-ponto-unico{font-size:12.5px;color:var(--cinza)}
.grupo-indicador{margin-bottom:18px}
.grupo-indicador:last-child{margin-bottom:0}
.grupo-indicador-titulo{font-size:13px;color:var(--navy);margin:0 0 8px;font-family:'Playfair Display',serif}
.grupo-indicador .linha-parcela{margin-bottom:8px}
.grupo-indicador .linha-parcela:last-child{margin-bottom:0}
.lista-sugestoes-paciente{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--borda);border-radius:4px;max-height:220px;overflow-y:auto;z-index:30;box-shadow:0 8px 20px rgba(20,30,45,.08)}
.lista-sugestoes-paciente .item-sugestao-paciente{padding:8px 12px;cursor:pointer;font-size:13px}
.lista-sugestoes-paciente .item-sugestao-paciente:hover{background:#f4f2ee}
.lista-sugestoes-paciente .item-sugestao-paciente.sem-resultado{cursor:default;color:var(--cinza)}
.lista-sugestoes-paciente .item-sugestao-paciente.sem-resultado:hover{background:none}

/* --- Título do modal com botão de ação ao lado (ex: Aplicação -> Questionário semanal) --- */
.modal-titulo-com-acao{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.modal-titulo-com-acao h2{margin:0}

/* --- Questionário semanal (check-in), texto e escalas idênticos ao sistema antigo --- */
.questionario-cabecalho{border:1px solid var(--borda);border-radius:4px;padding:12px 14px;margin:10px 0 16px;background:#fafafa}
.questionario-titulo{font-family:'Playfair Display',serif;color:var(--navy);font-size:15px;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--borda)}
.questionario-pergunta{border:1px solid var(--borda);border-radius:4px;padding:12px 14px;margin-bottom:12px}
.questionario-pergunta legend{font-size:13px;font-weight:600;color:var(--navy);padding:0 4px}
.modal form label.opcao-radio,
.modal form label.checkbox-inline{display:flex !important;flex-direction:row !important;align-items:center;gap:8px;margin-bottom:0}
.modal form input[type="radio"],
.modal form input[type="checkbox"]{width:auto !important;flex-shrink:0;margin-top:0}
.opcao-radio{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--texto);padding:4px 0;cursor:pointer}
.opcao-radio input[type="radio"]{margin-top:2px;flex-shrink:0}
.questionario-outras-medidas{margin-top:6px}

/* --- Ficha do Protocolo (aplicações + aceleradores + consultas de uma vez) --- */
.ficha-secao{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--borda)}
.ficha-secao-topo{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.ficha-lista{display:flex;flex-direction:column;gap:8px}
.ficha-linha{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;border:1px solid var(--borda);border-radius:4px;padding:10px 12px;background:#fafafa}
.ficha-linha .campo{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--cinza);flex:1;min-width:110px}
.ficha-linha .campo input,.ficha-linha .campo select{padding:7px 8px;border:1px solid var(--borda);border-radius:3px;font-size:13px;font-family:'Poppins',sans-serif}
.ficha-linha .btn-remover-linha{flex-shrink:0;background:none;border:1px solid var(--vermelho);color:var(--vermelho);border-radius:3px;padding:6px 10px;cursor:pointer;font-size:12px}
.ficha-vazio{color:var(--cinza);font-size:12.5px}
.input-busca-paciente{min-width:320px;flex:1 1 320px}
#buscaPaciente{flex:1 1 380px;min-width:380px}
#dashAcompanhamentoBusca{width:100%}
.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}

/* --- Responsivo (celular): área do paciente e cartões em geral --- */
@media (max-width: 640px) {
  .card-protocolo .linha-topo,
  .card-pacote-estetica .linha-topo,
  .linha-parcela,
  .linha-aplicacao,
  .linha-consulta,
  .linha-movimentacao,
  .linha-arquivo,
  .card-paciente,
  .card-item-estoque {
    flex-wrap: wrap;
  }
  .card-protocolo .valores,
  .card-pacote-estetica .valores,
  .card-item-estoque .quantidade,
  .card-item-estoque .info {
    white-space: normal;
    text-align: left;
  }
  .card-paciente .protocolos-resumo {
    flex-wrap: wrap;
  }
  .ficha-linha .campo { min-width: 45%; }
  .ficha-linha { padding: 10px; }
  .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;
  }
  .dash-graficos-grid { grid-template-columns: 1fr; }
}

/* --- Arquivos do paciente: bloco de envio (tipo, nome, data, arquivo) --- */
.bloco-upload-arquivo{background:#fafafa;border:1px solid var(--borda);border-radius:4px;padding:16px 18px}
.bloco-upload-arquivo .campos-valores{margin-bottom:10px}
.bloco-upload-arquivo .form-actions{margin-top:4px}
.bloco-upload-arquivo label{display:block;font-size:12.5px;color:var(--cinza);margin-bottom:0;letter-spacing:.3px}
.bloco-upload-arquivo input,.bloco-upload-arquivo select{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}
.bloco-upload-arquivo input[type="file"]{padding:7px 8px}

/* --- Lightbox: visualização de foto em tela cheia (grade e comparação) --- */
.item-foto{position:relative}
.btn-ampliar-foto{position:absolute;bottom:4px;right:4px;background:rgba(20,30,45,.75);color:#fff;border:none;border-radius:50%;width:26px;height:26px;font-size:13px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center}
.preview-comparar-fotos figure{cursor:pointer}
.lightbox-overlay{background:rgba(15,20,28,.94);flex-direction:column;padding:16px}
.lightbox-overlay .modal-close{color:#fff;top:16px;right:18px;font-size:30px;z-index:2}
.lightbox-img-wrap{display:flex;align-items:center;justify-content:center;flex:1;width:100%;min-height:0}
.lightbox-overlay img{max-width:94vw;max-height:78vh;object-fit:contain;border-radius:4px}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);color:#fff;border:none;width:44px;height:44px;border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lightbox-nav:hover{background:rgba(255,255,255,.28)}
.lightbox-prev{left:8px}
.lightbox-next{right:8px}
.lightbox-legenda{color:#f2f0eb;font-size:13px;margin-top:12px;text-align:center}
@media(max-width:640px){
  .lightbox-overlay img{max-height:70vh}
  .preview-comparar-fotos img{max-width:150px;max-height:220px}
}

/* --- Comparação de fotos em tela cheia (slider antes/depois) --- */
.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}
.conteudo-comparacao-fotos{width:100%;max-width:900px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:18px}
.comparacao-fotos-titulo{color:#f2f0eb;font-size:13px;text-align:center;margin:0}

.slider-comparacao{position:relative;width:100%;max-width:640px;aspect-ratio:3/4;overflow:hidden;border-radius:6px;background:#000;touch-action:none;user-select:none}
.slider-comparacao img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
.slider-img-top-wrap{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 50% 0 0)}
.slider-handle{position:absolute;top:0;bottom:0;left:50%;width:0}
.slider-handle-linha{position:absolute;top:0;bottom:0;left:0;width:2px;background:#fff;transform:translateX(-1px)}
.slider-handle-bola{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 2px 10px rgba(0,0,0,.35)}
.slider-legenda{position:absolute;bottom:10px;background:rgba(20,30,45,.75);color:#fff;font-size:11px;padding:3px 9px;border-radius:12px;text-transform:uppercase;letter-spacing:.3px}
.slider-legenda-esquerda{left:10px}
.slider-legenda-direita{right:10px}
.slider-legenda-ampliar{position:absolute;top:10px;background:rgba(20,30,45,.75);color:#fff;border:none;width:30px;height:30px;border-radius:50%;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.slider-legenda-ampliar.esquerda{left:10px}
.slider-legenda-ampliar.direita{right:10px}

.galeria-comparacao-simples{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;width:100%}
.galeria-comparacao-simples figure{margin:0;text-align:center;cursor:pointer;max-width:280px}
.galeria-comparacao-simples img{width:100%;max-height:400px;object-fit:contain;border-radius:6px;display:block}
.galeria-comparacao-simples figcaption{color:#f2f0eb;font-size:11.5px;margin-top:6px}

.btn-comparar-tela-cheia{margin-top:2px}
