/* ESTILO BASE JÁ EXISTENTE */
/* Cores e Variáveis Base */
:root {
  --cor-app: #0879A6; /* Azul padrão caso o painel não envie nada */
}

body {
  background-color: color-mix(in srgb, var(--cor-app) 10%, white 10%);
  color: #444;
  font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
  margin: 0;
  padding: 0;
}

/* Header com Gradiente Moderno baseado na cor do app/salão */
.header-index {
  padding: 24px 20px 30px 20px;
  background: linear-gradient(60deg, var(--cor-app), color-mix(in srgb, var(--cor-app) 70%, #000));
  color: #fff;
  border-bottom-left-radius: 28px;
  border-bottom-right-radius: 28px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* Linha superior (Nome + Sininho) */
.header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.header-saudacao {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 400;
}

.header-index span.cliente-nome {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
}

/* Botão do Sininho Estilizado */
.icone-notif {
  font-size: 20px;
  background: rgba(255, 255, 255, 0.15);
  padding: 8px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(5px);
  transition: background 0.2s;
}

.icone-notif:hover {
  background: rgba(255, 255, 255, 0.25);
}

/* HEADER */
/* Título de Destaque */
.header-titulo {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.25;
  margin: 0 0 20px 0;
  color: #fff;
  letter-spacing: -0.5px;
}

/* Card "Sou Parceiro" embutido no Header */
.card-parceiro-header {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.card-parceiro-texto h3 {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 4px 0;
  color: #fff;
}

.card-parceiro-texto p {
  font-size: 13px;
  margin: 0;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.4;
}

/* Botão Interno do Card */
.btn-parceiro {
  background: #fff;
  color: var(--cor-app);
  text-decoration: none;
  text-align: center;
  padding: 10px 16px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.1s, background 0.2s;
}

.btn-parceiro:active {
  transform: scale(0.98);
}

/* Cada empresa (link) como um card horizontal */
.empresa {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: white;
  transition: background 0.2s;
}

.empresa:hover {
  background: #f9f9f9;
}


/* CARD FAVORITOS */
.favorito-card {
  flex: 0 0 auto;
  width: 90px; /* Um pouco mais largo para caber melhor o nome */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Efeito de zoom ao passar o mouse */
.favorito-card:hover {
  transform: scale(1.1);
}

.favorito-img-container {
  position: relative;
  width: 70px;
  height: 70px;
  border-radius: 20%; /* Mantém formato circular */
  padding: 3px; /* Espaçamento para criar a borda colorida */
  background: white;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border: 2px solid transparent;
  transition: border-color 0.3s;
}

/* Borda dinâmica que brilha com a cor do app */
.favorito-card:hover .favorito-img-container {
  border-color: var(--cor-app);
}

.favorito-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20%;
  display: block;
}

.favorito-nome {
  font-size: 11px;
  font-weight: 600;
  color: #333;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

/* Estado de Selecionado */
.favorito-card.selecionado .favorito-img-container {
  border: 2px solid var(--cor-app);
  background: color-mix(in srgb, var(--cor-app) 20%, white);
}

/* CARD EMPRESAS */
/* Container Principal do Card no Estilo Moderno */
.empresa-card {
  width: 100%; /* Ocupa 100% da largura da sessão/container pai */
  max-width: 100%;
  background: #ffffff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
  margin-bottom: 20px;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border: 1px solid rgba(0, 0, 0, 0.04);
  display: block; /* Garante comportamento de bloco */
}

.empresa-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

/* Container da imagem com altura fixa e padrão para todos os cards */
.empresa-banner-container {
  position: relative;
  width: 100%;
  height: 130px; /* <--- Altura padrão para todos ficarem iguais */
  background: #f0f0f0; /* Cor de fundo caso a imagem demore a carregar */
}

/* Imagem se ajustando perfeitamente ao tamanho padrão sem distorcer */
.empresa-card img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Corta o excesso de forma inteligente mantendo a proporção */
  object-position: center; /* Centraliza o foco da foto */
  display: block;
}

/* Etiqueta Flutuante sobre a foto (Estilo pílula) */
.tag-categoria {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
  color: #222;
  font-size: 11px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Bloco de Informações abaixo da imagem */
.empresa-info {
  padding: 5px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.empresa-header-linha {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.empresa-info strong {
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
  letter-spacing: -0.3px;
}

.empresa-nota {
  font-size: 13px;
  font-weight: 600;
  color: #333;
  background: #f4f4f4;
  padding: 3px 8px;
  border-radius: 12px;
}

.empresa-local {
  font-size: 13px;
  color: #666;
  font-weight: 400;
}

.empresa-distancia {
  font-size: 12px;
  color: var(--cor-app);
  font-weight: 600;
  margin-top: 2px;
}

/* FOOTER */
footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  /* Fundo semitransparente que dá o efeito de vidro */
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  z-index: 100;
  padding: 8px 0;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
}

.tabs-footer {
  display: flex;
  justify-content: space-around;
  padding: 0;
}

.tab-footer {
  flex: 1;
  color: #888; /* Cinza suave quando inativo */
  text-decoration: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 11px;
  font-weight: 500;
  transition: color 0.3s ease;
}

.tab-footer .icon {
  font-size: 22px; /* Ícones um pouco maiores para destacar */
  margin-bottom: 2px;
  transition: transform 0.2s ease;
}

/* Quando ativo, usa a cor do salão (var(--cor-app)) */
.tab-footer.active {
  color: var(--cor-app);
}

.tab-footer.active .icon {
  transform: scale(1.1); /* Efeito suave de pulo */
}

/* Removemos o border-bottom que deixava pesado e focamos na cor do ícone */
.tab-footer {
  border-bottom: none;
}


/* FORMULÁRIOS (CADASTRO E LOGIN) */
.formulario {
  padding: 10px 20px;
  margin: 0;
  margin-bottom: 70px;
  box-sizing: border-box;
}

.formulario h2 {
  font-size: 24px;
  margin-bottom: 8px;
  color: #1a1a1a;
}

.subtitulo {
  font-size: 14px;
  color: #888;
  margin-bottom: 24px;
  text-align: center;
}

/* Inputs Modernos */
.formulario label {
  display: block;
  margin-bottom: 5px;
  color: var(--cor-app);
}

.formulario input[type="text"],
.formulario input[type="email"],
.formulario input[type="password"],
.formulario input[type="number"],
.formulario input[type="tel"],
.formulario input[type="date"],
.formulario select,
.formulario textarea {
  width: 100%;
  padding: 14px; /* Mais espaçoso */
  margin-bottom: 16px;
  background-color: #f8f9fa; /* Cinza muito claro, mais clean que o color-mix */
  border: 1px solid var(--cor-app); /* Transparente por padrão */
  border-radius: 12px; /* Mais arredondado */
  color: #333;
  transition: all 0.3s ease;
  font-size: 16px; /* Evita zoom automático no iOS */
  box-sizing: border-box;
  /* ESSENCIAL para respeitar o padding do container */
}

.formulario textarea {
  resize: vertical;
  min-height: 80px;
}

/* CAMPOS DE HORÁRIO */

.formulario input[type="time"] {
  width: 30%;
  padding: 10px;
  margin: 5px 1% 15px 0;
  background-color: color-mix(in srgb, var(--cor-app) 20%, white 50%);
  border: 1px solid var(--cor-app);
  border-radius: 12px;
}

.formulario input:focus {
  background-color: #ffffff;
  border-color: var(--cor-app);
  outline: none;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cor-app) 20%, transparent);
}


/* Botão padrão dos formulários (grande de ponta a ponta) */
.formulario button {
  width: 100%;
  background-color: var(--cor-app);
  color: white;
  padding: 15px;
  border: none;
  border-radius: 12px;
  font-weight: 700;
  font-size: 16px;
  margin-top: 10px;
  transition: transform 0.2s, background 0.3s;
}

.formulario button:active {
  transform: scale(0.98);
}

/* Botões de horário (pequenos e em grade) */
.formulario button.btn-horario {
  width: auto !important; /* Força anular o 100% do botão padrão */
  background-color: var(--cor-app);
  color: white;
  padding: 8px;
  border: none;
  border-radius: 12px;
  font-weight: 500;
  font-size: 14px;
  margin-top: 10px;
  transition: transform 0.2s, background 0.3s;
}

/* Estado quando o horário estiver selecionado ou no hover */
.formulario button.btn-horario:hover,
.formulario button.btn-horario.selecionado {
  background-color: var(--cor-app);
  color: white;
  border-color: var(--cor-app);
}

/* Botões de horário (pequenos e em grade) */
.formulario button.btn-acao {
  width: auto !important; /* Força anular o 100% do botão padrão */
  background-color: var(--cor-app);
  color: white;
  padding: 8px;
  border: none;
  border-radius: 12px;
  font-weight: 500;
  font-size: 14px;
  margin-top: 10px;
  transition: transform 0.2s, background 0.3s;
}

/* Estado quando o horário estiver selecionado ou no hover */
.formulario button.btn-acao:hover,
.formulario button.btn-acao.selecionado {
  background-color: var(--cor-app);
  color: white;
  border-color: var(--cor-app);
}

/* Botões de horário (pequenos e em grade) */
.formulario button.btn-alterar {
  width: auto !important; /* Força anular o 100% do botão padrão */
  background-color: var(--cor-app);
  color: white;
  padding: 8px;
  border: none;
  border-radius: 12px;
  font-weight: 500;
  font-size: 14px;
  margin-top: 10px;
  transition: transform 0.2s, background 0.3s;
}

/* Estado quando o horário estiver selecionado ou no hover */
.formulario button.btn-alterar:hover,
.formulario button.btn-alterar.selecionado {
  background-color: var(--cor-app);
  color: white;
  border-color: var(--cor-app);
}






/* Links */
.formulario p {
  text-align: center;
  font-size: 14px;
  margin-top: 20px;
}

.formulario p a {
  color: var(--cor-app);
  font-weight: 700;
  text-decoration: none;
}

/* PERFIL SAAS */
.perfil-container {
  background-color: #f8f9fa; /* Fundo cinza bem leve para dar contraste aos cards */
  color: #333;
  font-family: sans-serif;
  padding-bottom: 90px; /* Espaço para o footer fixo não cobrir o conteúdo */
}

/* Topo do Perfil com fundo branco e leve sombra */
.perfil-topo {
  padding: 24px 20px;
  background: #ffffff;
  display: flex;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid #eee;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}

.avatar span {
  font-size: 32px;
  background: color-mix(in srgb, var(--cor-app) 80%, white 20%);
  border-radius: 50%;
  padding: 10px;
}

.avatar-img {
  width: 65px;
  height: 65px;
  display: flex;
  border-radius: 20%;
  object-fit: cover;
  align-items: center;
  border: 2px solid var(--cor-app);
}

.info {
  flex: 1;
}

.perfil-nome {
  font-weight: 700;
  font-size: 18px;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.perfil-email {
  font-size: 13px;
  color: #777;
}

.btn-config {
  background: rgba(8, 121, 166, 0.1);
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s;
}

.btn-config:hover {
  background: rgba(8, 121, 166, 0.2);
}

/* Container das Opções estilo Lista Mobile */
.perfil-opcoes {
  background: #ffffff;
  margin-top: 16px;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}

.opcao {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #f1f1f1;
  cursor: pointer;
  transition: background 0.2s;
}

.opcao:last-child {
  border-bottom: none;
}

.opcao:hover {
  background: #fafafa;
}

.opcao-conteudo {
  display: flex;
  align-items: center;
  gap: 14px;
}

.opcao-icone {
  font-size: 20px;
  width: 32px;
  text-align: center;
}

.opcao-conteudo strong {
  display: block;
  font-size: 15px;
  color: #222;
  font-weight: 600;
  margin-bottom: 2px;
}

.opcao-conteudo span {
  font-size: 12px;
  color: #777;
}

.seta {
  font-size: 18px;
  color: #ccc;
  font-weight: bold;
}

/* Botão de Sair Destacado */
.btn-footer-sair {
  padding: 24px 20px;
  display: flex;
  justify-content: center;
}

.btn-excluir {
  width: 100%;
  background: #fff;
  border: 1px solid #ff4d4d;
  color: #ff4d4d;
  padding: 14px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
}

.btn-excluir:hover {
  background: #ff4d4d;
  color: #fff;
}

/* PERFIL DADOS */
.popup-dados {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 20px;
  color: #444;
  border: 1px solid var(--cor-app);
  border-radius: 12px;
}

.popup-dados label {
  font-size: 14px;
  color: #444;
}

.popup-dados input[type="text"],
.popup-dados input[type="email"],
.popup-dados input[type="password"],
.popup-dados input[type="date"],
.popup-dados input[type="time"],
.popup-dados input[type="number"],
.popup-dados input[type="tel"],
.popup-dados input[type="file"],
.popup-dados select,
.popup-dados textarea {
  background: color-mix(in srgb, var(--cor-app) 20%, white 50%);
  border: none;
  padding: 10px;
  border-radius: 12px;
  color: #444;
  width: 100%;
  box-sizing: border-box;
}

.popup-dados input[type="submit"],
.popup-dados button {
  background-color: color-mix(in srgb, var(--cor-app) 90%, black 10%);
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 12px;
  cursor: pointer;
}

.popup-dados input[type="submit"]:hover,
.popup-dados button:hover {
  background-color: var(--cor-app);
}


.input-celular {
  display: flex;
  align-items: center;
  gap: 8px;
}

.input-celular .flag {
  font-size: 40px;
}

#dia,
#mes,
#ano {
  width: calc(25.25% - 6px);
  /* divide 3 colunas com um pequeno espaço */
  display: inline-block;
  margin-right: 5px;
  /* espaçamento entre eles */
}

#ano {
  margin-right: 0;
  /* último não precisa de margem */
}


.genero-opcoes {
  display: flex;
  gap: 10px;
}

.popup-dados .btn-genero {
  flex: 1;
  padding: 10px;
  border-radius: 12px;
  border: none;
  background: color-mix(in srgb, var(--cor-app) 70%, white 30%);
  color: #fff;
  cursor: pointer;
}

.btn-genero.ativo {
  background: var(--cor-app);
}

.btn-salvar {
  padding: 12px;
  border: none;
  border-radius: 12px;
  background: var(--cor-app);
  color: white;
  font-size: 16px;
}

/* PREVIEW AVATAR PERFIL */
.preview-avatar {
  display: flex;
  justify-content: center;
  align-items: center;
}

.preview-avatar img {
  width: 150px;
  height: 150px;
  border-radius: 20%;
  object-fit: cover;
  border: 2px solid var(--cor-app);
}

.preview-header img {
  width: 100%;
  height: 150px;
  object-fit: cover;
}






















.planos-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  margin: 30px auto;
  max-width: 1000px;
}

.plano-card {
  flex: 1 1 220px;
  background: #fff;
  border: 2px solid #eee;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  padding: 20px;
  text-align: center;
  transition: all 0.3s ease;
}

.plano-card:hover {
  border-color: var(--cor-app);
  transform: translateY(-5px);
}

.plano-card h3 {
  margin-bottom: 10px;
  font-size: 22px;
  color: #333;
}

.plano-preco {
  font-size: 26px;
  font-weight: bold;
  margin: 10px 0;
  color: var(--cor-app);
}

.plano-descricao {
  font-size: 14px;
  color: #666;
  margin-bottom: 20px;
}

.plano-botoes button {
  display: block;
  width: 100%;
  margin: 8px 0;
  padding: 10px;
  border: none;
  border-radius: 12px;
  font-size: 15px;
  cursor: pointer;
  background: var(--cor-app);
  color: #fff;
  transition: 0.3s;
}

.plano-botoes button:hover {
  background: color-mix(in srgb, var(--cor-app) 70%, white 30%);
}

#graficoFinanceiro {
  max-width: 100%;
  height: 400px;
  /* altura fixa */
}

.lista-financeiro {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.financeiro-card {
  border: 1px solid var(--cor-app);
  padding: 12px;
  border-radius: 12px;
  background: #f1f1f1;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.financeiro-card strong {
  font-size: 15px;
}

.financeiro-card span {
  font-weight: bold;
  color: #333;
}

.financeiro-card small {
  color: #666;
}

.financeiro-card.entrada {
  border-left: 6px solid var(--cor-app);
}

.financeiro-card.despesa {
  border-left: 6px solid #e74c3c;
}



.tabs-servico {
  display: flex;
  border-bottom: 1px solid #ddd;
}

.tab-servico {
  padding: 10px 15px;
  cursor: pointer;
}

.tab-servico.active {
  border-bottom: 2px solid var(--cor-app);
  font-weight: bold;
}

.tab-content {
  display: none;
}

.tab-content.active {
  display: block;
}


.tabs-profissional {
  display: flex;
  border-bottom: 1px solid #ddd;
}

.tab-profissional {
  padding: 10px 15px;
  cursor: pointer;
}

.tab-profissional.active {
  border-bottom: 2px solid var(--cor-app);
  font-weight: bold;
}

.tab-content-prof {
  display: none;
}

.tab-content-prof.active {
  display: block;
}


.tabs-cad-profissional {
  display: flex;
  border-bottom: 1px solid #ddd;
}

.tab-cad-profissional {
  padding: 10px 15px;
  cursor: pointer;
}

.tab-cad-profissional.active {
  border-bottom: 2px solid var(--cor-app);
  font-weight: bold;
}

.tab-content-cad-prof {
  display: none;
}

.tab-content-cad-prof.active {
  display: block;
}



.tabs-edt-empresa {
  display: flex;
  border-bottom: 1px solid #ddd;
}

.tab-edt-empresa {
  padding: 10px 15px;
  cursor: pointer;
}

.tab-edt-empresa.active {
  border-bottom: 2px solid var(--cor-app);
  font-weight: bold;
}

.tab-content-emp {
  display: none;
}

.tab-content-emp.active {
  display: block;
}


/* Estilo normal (desktop) */
.tabela-responsiva table {
  width: 100%;
  border-collapse: collapse;
}

.tabela-responsiva th,
.tabela-responsiva td {
  padding: 8px;
  text-align: left;
  border: 1px solid #ddd;
}

/* --- MOBILE --- */
@media (max-width: 768px) {

  .tabela-responsiva table,
  .tabela-responsiva thead,
  .tabela-responsiva tbody,
  .tabela-responsiva th,
  .tabela-responsiva td,
  .tabela-responsiva tr {
    display: block;
    /* força virar blocos */
  }

  .tabela-responsiva thead {
    display: none;
    /* esconde cabeçalho */
  }

  .tabela-responsiva tr {
    margin-bottom: 15px;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 10px;
    background: #f4f4f4;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  }

  .tabela-responsiva td {
    border: none;
    padding: 1px 0;
    position: relative;
    padding-left: 120px;
    /* espaço pro "label" */
    text-align: left;
  }

  /* Mostra o "label" (antes do valor) */
  .tabela-responsiva td::before {
    content: attr(data-label);
    /* pega o valor do atributo */
    position: absolute;
    left: 10px;
    font-weight: bold;
    color: #555;
  }
}


.btn-flutuante {
  background: var(--cor-app);
  width: 40px;
  height: 40px;
  /* corrigido */
  font-size: 30px;
  /* ajustei pra caber melhor dentro do círculo */
  position: fixed;
  right: 35px;
  bottom: 65px;
  border-radius: 50%;
  color: #fff;

  display: flex;
  /* ativa flexbox */
  align-items: center;
  /* centraliza vertical */
  justify-content: center;
  /* centraliza horizontal */
}





.container-home {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  padding: 20px;
  margin-bottom: 60px;
}
.container-admin {
  margin-bottom: 60px;
}

.painel-link {
  background: color-mix(in srgb, var(--cor-app) 40%, white 15%);
  border-radius: 12px;
  padding: 10px;
  text-align: center;
  color: white;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.2s, background 0.2s;
}

.painel-link:hover {
  transform: scale(1.05);
  background: color-mix(in srgb, var(--cor-app) 50%, white 10%);
}

.painel-link .icon {
  font-size: 2rem;
  margin-bottom: 8px;
}

.painel-link .label {
  font-size: 0.75rem;
  font-weight: bold;
}




.container-search {
  padding: 0px 10px;
}

#lista-empresas {
  padding: 0px 20px;
}

#search {
  width: 100%;
  padding: 10px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 12px;
}

#resultados-busca {
  margin-top: 20px;
}

.empresas {
  display: flex;
  flex-direction: column;
  gap: 0px;
  margin-bottom: 60px;
}

#color-options {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 5px;
}

.color-option {
  width: 50px;
  height: 50px;
  cursor: pointer;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}



@keyframes fadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.header {
  color: white;
  padding: 20px;
  text-align: center;
  background: var(--cor-app);
  /* Fallback caso não tenha imagem */
  border-bottom: 4px solid var(--cor-app);
  border-radius: 0 0 10px 10px;
}

.header h1 {
  margin: 0;
  font-size: 22px;
}

.header p {
  color: #fff;
  font-size: 14px;
}

/* HEADER COM BANNER (Modo Imersivo) */
.header.banner {
  position: relative; /* ESSENCIAL para os elementos absolutos se basearem nela */
  color: white;
  padding: 0;
  min-height: 220px; /* Um pouco mais alta para dar imponência ao banner */
  background-color: var(--cor-app);
  background-image: url(../img/header.webp);
  background-size: cover;
  background-position: center;
  border-bottom: none;
  border-radius: 0 0 20px 20px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end; /* Joga os dados da empresa para o rodapé da imagem */
  overflow: hidden; /* Garante que nada escape das bordas arredondadas */
  
  /* Gradiente escuro na base para legibilidade perfeita do texto */
  box-shadow: inset 0 -100px 60px -40px rgba(0, 0, 0, 0.7);

  /* Animação de entrada suave */
  opacity: 0;
  animation: fadeSlideUp 0.3s ease-out forwards;
}

span.camera {
  position: absolute;
  /* ou fixed, se quiser que fique sempre visível */
  top: 15px;
  /* distância do topo */
  right: 25px;
  /* distância da direita */
  font-size: 25px;
  /* tamanho do ícone */
  text-align: center;
  width: 40px;
  /* largura da bolinha */
  height: 40px;
  /* altura da bolinha */
  line-height: 40px;
  /* centraliza verticalmente o ícone */
  border-radius: 50%;
  /* formato circular */
  background: white;
  /* cor de fundo da bolinha */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  /* leve sombra */
  cursor: pointer;
}

.dados-header.banner {
  position: relative;
  width: 100%;
  text-align: left;
  padding: 20px;
  background: transparent; /* Removemos a caixa preta chapada anterior */
  z-index: 2;
  box-sizing: border-box;
}

.dados-header h1 {
  margin: 0;
  font-size: 22px;
}

.dados-header p {
  margin: 5px 0 0;
  font-size: 14px;
  color: #fff;
}



















.header-user {
  padding: 20px 20px 0px 20px;
}

.header-user h3 {
  margin: 0;
}

.header-user span {
  font-size: 20px;
}

.sessao {
  width: 100%;
  margin-top: 10px;
  border-radius: 12px;
  margin-bottom: 0px;
}

.title {
  padding: 0px 20px;
}
.closed {
  display: flex;
  justify-content: flex-end;
}

.btn-fechar {
  background: transparent;
  border: none;
  color: var(--cor-app);
  font-size: 18px;
  cursor: pointer;
}

.container {
  padding: 10px;
  margin-bottom: 50px;
}

.container-grupo {
  background-color: #fff;
  margin-bottom: 15px;
  padding: 15px;
  border-radius: 12px;
  border: 1px solid var(--cor-app);
}

.clientes-lista {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cliente-card {
  display: flex;
  align-items: center;
  background: #f1f1f1;
  /* alinha a foto e o texto no centro vertical */
  gap: 10px;
  margin-top: 10px;
  color: #1e1e1e;
  padding: 10px;
  border-radius: 12px;
  border: 1px solid var(--cor-app);
}

.foto-cliente {
  width: 60px;
  height: 60px;
  border-radius: 20%;
  object-fit: cover;
  border: 2px solid var(--cor-app);
}

.info-cliente {
  display: flex;
  flex-direction: column;
  /* empilha nome, telefone e agendamentos */
  gap: 4px;
}

.no_results {
  display: flex;
  /* ativa flexbox */
  flex-direction: column;
  /* itens empilhados verticalmente */
  justify-content: center;
  /* centraliza verticalmente */
  align-items: center;
  /* centraliza horizontalmente */

  height: 100%;
  /* ou height: 100vh; se quiser ocupar toda a tela */
  text-align: center;
  /* centraliza texto dentro dos elementos */
  gap: 5px;
  /* espaçamento entre img, h3 e small */
}

.no_results img {
  max-width: 200px;
  max-height: 200px;
  object-fit: contain;
  /* mantém proporção da imagem */
}

.dia-bloqueio {
  color: var(--cor-app);
  font-size: 16px;
}

.modalPopupUpload {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.PopupUpload {
  background: white;
  padding: 20px;
  border-radius: 12px;
  text-align: center;
}

.preview {
  display: none;
  border: 1px solid var(--cor-app);
  margin-bottom: 10px;
  background-size: cover;
}

/* TABS DO MENU  */
.tabs {
  display: flex;
  overflow-x: auto;
  white-space: nowrap;
  padding: 0px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--cor-app) 80%, white 20%);
  scrollbar-width: none;
  /* Firefox */
}

.tabs::-webkit-scrollbar {
  display: none;
  /* Chrome/Safari */
}

.tab {
  flex: 0 0 auto;
  min-width: 15%;
  margin-right: 10px;
  color: #444;
  text-decoration: none;
  padding: 14px;
  text-align: center;
  border-bottom: 2px solid transparent;
}

.tab.active {
  color: var(--cor-app);
  border-bottom: 3px solid var(--cor-app);
}

/* LISTA DE SERVIÇOS */
.servico {
  margin-bottom: 15px;
  color: #444;
  padding: 15px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--cor-app) 10%, white 20%);
  border: 1px solid var(--cor-app);
}

.servico button {
  background-color: color-mix(in srgb, var(--cor-app) 90%, black 10%);
}

.servico button:hover {
  background-color: var(--cor-app);
}

.servico.cancelado {
  background-color: #f8d7da;
  border-left: 5px solid #dc3545;
  opacity: 0.8;
}

.servico.cancelado h3,
.servico.cancelado p {
  color: #a94442;
}

.servico h3 {
  margin: 0 0 8px 0;
}

.servico p {
  font-size: 14px;
}

.preco-duracao {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.preco-duracaoo span {
  color: #444;
}

.preco {
  color: #209c4a;
  font-weight: bold;
}

.confirmado {
  color: #209c4a;
  font-weight: bold;
}

.pendente {
  color: #FF9800;
  font-weight: bold;
}

.cancelado {
  color: #F44336;
  font-weight: bold;
}

.finalizado {
  color: #2196F3;
  font-weight: bold;
}

.a-receber {
  color: #64686b;
  font-weight: bold;
}


.duracao {
  color: #444;
  font-size: 13px;
}

.horarios-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 15px;
  margin-bottom: 20px;
}





/* PROFISSIONAL CARD */
.profissionais-container {
  display: flex;
  flex-wrap: nowrap;
  /* nowrap impede quebar linha */
  justify-content: flex-start;
  /* alinha a esquerda */
  gap: 10px;
  margin: 0px 0px 0px 20px;

  overflow-x: auto;
  /* scroll horizontal */
  overflow-y: hidden;
  /* esconde barra vertical */
  -webkit-overflow-scrolling: touch;
  /* scroll suave em mobile */
}

.profissional-card {
  flex: 0 0 auto;
  /* impede de encolher, mantém tamanho fixo */
  width: 80px;
  /* pode ajustar aqui o tamanho do card */
  text-align: center;
  cursor: pointer;
  background: #f1f1f1;
  border: 1px solid color-mix(in srgb, var(--cor-app) 80%, white 20%);
  border-radius: 12px;
  padding: 5px;
  transition: 0.3s;

  /* remove estilo padrão de link */
  text-decoration: none;
  color: inherit;
  /* mantém a cor herdada, em vez de azul */
  display: inline-block;
  /* garante comportamento de "card" */
}

.profissional-card:hover {
  border-color: var(--cor-app);
}

.profissional-card img {
  width: 60px;
  height: 60px;
  object-fit: cover;
  border-radius: 20%;
  margin-bottom: 6px;
  border: 3px solid var(--cor-app);
}

.profissional-card.selecionado {
  border-color: var(--cor-app);
  color: #444;
  background-color: color-mix(in srgb, var(--cor-app) 20%, white 50%);
}

.form-editar {
  padding: 20px 20px;
  border-radius: 12px;
  border: 1px solid var(--cor-app);
  margin: 30px auto;
  margin-bottom: 50px;
  box-sizing: border-box;
}

.form-editar label {
  display: block;
  margin-bottom: 5px;
  color: var(--cor-app);
}

.form-editar input[type="text"],
.form-editar input[type="email"],
.form-editar input[type="password"],
.form-editar input[type="date"],
.form-editar input[type="number"],
.form-editar input[type="tel"],
.form-editar textarea,
.form-editar select {
  width: 100%;
  padding: 10px;
  margin-bottom: 15px;
  background-color: color-mix(in srgb, var(--cor-app) 20%, white 50%);
  border: 1px solid var(--cor-app);
  border-radius: 12px;
  color: #444;
  box-sizing: border-box;
  /* ESSENCIAL para respeitar o padding do container */
}

.form-editar input[type="submit"],
.form-editar button {
  background-color: color-mix(in srgb, var(--cor-app) 90%, black 10%);
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 12px;
  cursor: pointer;
}

.form-editar input[type="submit"]:hover,
.form-editar button:hover {
  background-color: var(--cor-app);
}

/* DIAS DE AGENDA */
.dia-agenda {
  margin-bottom: 20px;
  padding: 15px;
  border: 1px solid var(--cor-app);
  border-radius: 12px;
  background-color: #fafafa;
}

.dia-agenda input[type="time"] {
  width: 30%;
  /* reduz a proporção */
  padding: 10px;
  font-size: 13px;
  border: 1px solid var(--cor-app);
}

.dia-agenda input[type="date"] {
  width: 40%;
  /* reduz a proporção */
  padding: 10px;
  font-size: 13px;
  border: 1px solid var(--cor-app);
}


.dia-agenda h4 {
  margin-bottom: 10px;
  color: #444;
  font-size: 16px;
}

/* AGENDAMENTOS LISTADOS */
.agendamento-item {
  background: #f1f1f1;
  margin-bottom: 15px;
  padding: 15px;
  border-radius: 12px;
  border: 1px solid var(--cor-app);
}

.agendamento-item h3 {
  margin: 0 0 8px 0;
  color: #444;
}

.agendamento-item p {
  color: #444;
  font-size: 14px;
}

.agendamento-item {
  padding: 15px;
  border-radius: 12px;
  margin-bottom: 15px;
}

/* TABELA DE AGENDAMENTOS */
.tabela-agendamentos {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--cor-app);
  margin-top: 20px;
}

.tabela-agendamentos th,
.tabela-agendamentos td {
  border: 1px solid color-mix(in srgb, var(--cor-app) 80%, white 20%);
  padding: 10px;
  text-align: center;
  color: #ddd;
}

.tabela-agendamentos th {
  background-color: color-mix(in srgb, var(--cor-app) 80%, white 20%);
  color: #fff;
}

.status-pendente {
  border-left: 5px solid #FF9800;
}

.status-confirmado {
  border-left: 5px solid #209c4a;
}

.status-cancelado {
  border-left: 5px solid #F44336;
}

.status-finalizado {
  border-left: 5px solid #2196F3;
}


.btn-agendar {
  background-color: var(--cor-app);
  border: none;
  color: white;
  padding: 8px 16px;
  border-radius: 12px;
  cursor: pointer;
}

.btn-agendar:hover {
  background-color: color-mix(in srgb, var(--cor-app) 90%, white 10%);
}

.btn-acao {
  background-color: var(--cor-app);
  color: white;
  padding: 10px 10px;
  border: none;
  border-radius: 12px;
  cursor: pointer;
}

.btn-acao:hover {
  background-color: color-mix(in srgb, var(--cor-app) 80%, white 20%);
}




/* Fundo escuro por trás do modal */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  z-index: 999;
}

/* Modal centralizado */
.modal {
  background: #fff;
  padding: 20px;
  width: 90%;
  height: 85%;
  margin: auto;
  border-radius: 12px;
  box-shadow: 0 0 10px #444;
  position: relative;
}

.login-cadastro {
  padding: 10px;
  margin-top: 50px;
  height: 100%;
  overflow-y: auto;
}

.resumo-modal {
  padding: 10px;
  margin-top: 50px;
  height: 100%;
  overflow-y: auto;
}

.modal-imagem {
  background: #fff;
  padding: 20px;
  width: 90%;
  height: 65%;
  margin: 100px auto;
  border-radius: 12px;
  box-shadow: 0 0 10px #444;
  position: relative;
}

.modal-agendamento {
  background: #fff;
  padding: 20px;
  width: 90%;
  height: 65%;
  margin: 100px auto;
  border-radius: 12px;
  box-shadow: 0 0 10px #444;
  position: relative;
}



.resumo-agendamento {
  padding: 10px;
  background-color: #fff;
  margin-top: 50px;
  height: auto;
  overflow-y: auto;
}

.resumo-agendamento button {
  background-color: color-mix(in srgb, var(--cor-app) 90%, black 10%);
}

.resumo-agendamento button:hover {
  background-color: var(--cor-app);
}



.modal-content {
  padding: 10px;
  margin-top: 50px;
  height: 85%;
  overflow-y: auto;
}






.resumo-servico {
  background-color: color-mix(in srgb, var(--cor-app) 20%, white 70%);
  border: 1px solid var(--cor-app);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}

.resumo-cabecalho {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--cor-app);
}

.logo-empresa {
  width: 50px;
  height: 50px;
  border-radius: 20%;
  object-fit: cover;
  border: 2px solid var(--cor-app);
}

.resumo-observacoes input[type="text"] {
  width: 100%;
  padding: 10px;
  margin-bottom: 15px;
  background-color: color-mix(in srgb, var(--cor-app) 20%, white 50%);
  border: 1px solid var(--cor-app);
  border-radius: 12px;
  color: #444;
  box-sizing: border-box;
  /* ESSENCIAL para respeitar o padding do container */
}

.info-empresa h3 {
  font-size: 16px;
  margin: 0 0 4px 0;
  color: #1a1a1a;
}

.info-empresa span {
  font-size: 13px;
  font-weight: 600;
  color: var(--cor-app);
}

.topo-servico {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 20px;
}

.topo-servico strong {
  color: #222;
}

.btn-alterar {
  background: var(--cor-app);
  color: white;
  border: none;
  padding: 5px 10px;
  border-radius: 12px;
  cursor: pointer;
}

.resumo-detalhes {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0px;
  font-size: 15px;
  color: #666;
}

.resumo-detalhes span.data {
  display: none; /* Caso queira omitir a classe antiga sem quebrar o HTML */
}

.preco {
  font-size: 15px;
  font-weight: 700;
  color: var(--cor-app);
}

.profissional-info {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 0px;
  padding-top: 0px;
  border-top: 1px dashed #eee;
  font-size: 14px;
}

.foto-profissional {
  width: 22px;
  height: 22px;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid var(--cor-app);
}

.profissional-info .fone {
  margin-left: auto;
  cursor: pointer;
  color: #25d366; /* Verde WhatsApp para destacar o contato */
  font-weight: 600;
  font-size: 13px;
}

.descricao-servico {
  font-size: 12px;
  font-weight: 600;
  padding: 3px 8px;
  background: color-mix(in srgb, var(--cor-app) 15%, white);
  color: var(--cor-app);
  border-radius: 12px;
  margin-top: 0 !important;
}

.observacao-servico {
  font-size: 13px;
  color: #666;
  margin-top: 10px;
  background: #f8f9fa;
  padding: 8px;
  border-radius: 12px;
}

/* Área de botões lado a lado */
.card-acoes {
  display: flex;
  gap: 10px;
  margin-top: 14px;
}

.card-acoes .btn-acao {
  flex: 1;
  padding: 10px;
  border-radius: 12px;
  border: none;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s;
}

.card-acoes .btn-acao:hover {
  opacity: 0.85;
}





.cabecalho-detalhes {
  position: absolute;
  /* fica relativo ao header */
  top: 20px;
  right: 20px;
  z-index: 1000;
}

.icone-favorito {
  background: rgba(255, 255, 255, 0.8);
  /* fundo circular */
  border-radius: 50%;
  padding: 5px;
  font-size: 20px;
  margin: 5px;
  cursor: pointer;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease;
}

.icone-favorito:hover {
  transform: scale(1.1);
}


#search {
  color: color-mix(in srgb, var(--cor-app) 80%, white 20%);
  padding: 0 0 0 2.5rem;
  /* padding-left mantido para o ícone */

  width: calc(100% - 40px);
  border-radius: 12px;
  border: 1px solid var(--cor-app);

  height: 2.5rem;

  background-size: 18px;
  background-image: url(../img/search.svg);
  background-position: 1rem center;
  background-repeat: no-repeat;
  position: relative;
}

#search:focus {
  color: var(--cor-app);
  border-color: var(--cor-app);
  outline: none;
}



/* Container da lista com um respiro melhor */
.lista-profissionais {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 0 15px; /* Evita colar nas bordas laterais */
}

/* Card do Profissional estilo "Glass/Clean" moderno */
.profissional-card-empresa {
    border: 1px solid var(--cor-app);
    margin-bottom: 5px;
    border-radius: 14px;
    padding: 12px 15px;
    display: flex;
    align-items: center;
    background: #ffffff;
    justify-content: space-between;
    color: #333;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
    transition: all 0.25s ease-in-out;
}

/* Efeito de destaque ao passar o mouse ou tocar */
.profissional-card-empresa:hover {
    border-color: var(--cor-app);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.07);
    transform: translateY(-2px);
}

.profissional-info-empresa {
    display: flex;
    align-items: center;
    gap: 14px;
}

/* Avatar com sombra suave e borda elegante */
.profissional-avatar {
    width: 60px;
    height: 60px;
    border-radius: 20%;
    background-color: #f0f0f0;
    background-size: cover;
    background-position: center;
    border: 2px solid var(--cor-app);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    flex-shrink: 0;
}

/* Tipografia do nome e do telefone/email */
.profissional-nome {
    font-weight: 700;
    font-size: 16px;
    color: #222;
    margin-bottom: 3px;
}

.profissional-email {
    font-size: 13px;
    color: #666;
}

/* Botão "Ver detalhes" refinado combinando com a cor do app */
.profissional-card-empresa .btn-alterar {
    background: color-mix(in srgb, var(--cor-app) 12%, #fff);
    color: var(--cor-app);
    border: 1px solid color-mix(in srgb, var(--cor-app) 30%, #ddd);
    padding: 8px 14px;
    border-radius: 20px; /* Formato pílula */    
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.profissional-card-empresa .btn-alterar:hover {
    background: var(--cor-app);
    color: #fff;
    border-color: var(--cor-app);
}

.switch {
  position: relative;
  display: inline-block;
  width: 46px;
  height: 24px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.btn-confirmar {
  margin-top: 20px;
  background-color: var(--cor-app);
  color: white;
  border: none;
  padding: 12px;
  width: 100%;
  border-radius: 12px;
  font-size: 16px;
  cursor: pointer;
}

.slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background-color: #bbb;
  transition: .3s;
  border-radius: 24px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: .3s;
  border-radius: 50%;
}

input:checked+.slider {
  background-color: #209c4a;
}

input:checked+.slider:before {
  transform: translateX(22px);
}

/* METRICAS */
.metricas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 3px;
  margin-top: 20px;
}

.card-metrica {
  background: #f1f1f1;
  border: 1px solid var(--cor-app);
  border-radius: 12px;
  padding: 10px;
  margin-bottom: 10px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.card-metrica h3 {
  margin-bottom: 10px;
  font-size: 18px;
  color: #444;
}





/* =========================================
   MELHORIAS GERAIS - TELA DETALHES
   ========================================= */

.detalhes {
  border-bottom: 5px solid var(--cor-app);
  padding: 5px;
}   

/* Espaçamento e padding geral da página de detalhes para não colar nas bordas */
.detalhes-container, #detalhe-endereco, .comodidades-container, .horarios-container {
    padding: 0 15px;
}

/* Destaque sofisticado para o bloco de endereço clicável */
#detalhe-endereco a {
    transition: all 0.2s ease-in-out;
    padding: 8px 12px;
    background: color-mix(in srgb, var(--cor-app) 10%, transparent);
    border-radius: 8px;
    display: inline-block;
    width: 100%;
    box-sizing: border-box;
    font-weight: 500;
}

#detalhe-endereco a:hover {
    background: color-mix(in srgb, var(--cor-app) 20%, transparent);
    transform: translateY(-1px);
}

/* Estilização moderna dos títulos das seções (Formas de pagamento, Horários, Redes Sociais) */
.sessao h3, .detalhes h3, .redes-sociais h3 {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin-bottom: 12px;
    position: relative;
    padding-left: 10px;
    border-left: 4px solid var(--cor-app);
}

/* Cartões das Redes Sociais com efeito de clique (hover) refinado */
.rede {
    background: #fff;
    border: 1px solid #eaeaea;
    padding: 12px 15px;
    border-radius: 10px;
    margin-bottom: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.2s ease;
    cursor: pointer;
}

.rede:hover {
    border-color: var(--cor-app);
    transform: translateX(3px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}

/* Comodidades com visual de pílula/badge moderna */
.item-comodidade {
    font-size: 20px;
    background: #f8f9fa;
    border: 1px solid #eee;
    padding: 8px 12px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.item-comodidade:hover {
    background: color-mix(in srgb, var(--cor-app) 15%, white 80%);
    border-color: var(--cor-app);
}

/* Linhas de horário mais limpas e legíveis */
.linha-horario {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--cor-app);
    padding: 10px 0;
    font-size: 14px;
}

.linha-horario strong {
    color: #555;
    font-weight: 500;
}

.linha-horario span {
    color: #333;
    font-weight: 600;
}

/* Badge de "Hoje" estilizada */
.linha-horario .hoje {
    background: color-mix(in srgb, var(--cor-app) 20%, white);
    color: var(--cor-app);
    border: none;
    font-weight: bold;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 11px;
    margin-left: 8px;
}

/* Container que abriga os cards de formas de pagamento */
#detalhe-formas-pagamento {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 5px;
}

/* Estilo individual de cada card/pílula de pagamento */
.item-pagamento {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--cor-app) 40%, #ddd);
    padding: 6px 12px;
    border-radius: 20px; /* Formato pílula */
    font-size: 14px;
    color: #444;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
    transition: all 0.2s ease;
}

.item-pagamento:hover {
    border-color: var(--cor-app);
    background: color-mix(in srgb, var(--cor-app) 10%, #fff);
    transform: translateY(-1px);
}







.lista-landing {
  padding: 20px;
  margin: 0 auto;
}

.landing-card-beneficio {
  display: flex;
  align-items: center;
  gap: 15px;
  background: #ffffff;
  padding: 16px;
  border-radius: 12px;
  margin-bottom: 12px;
  border: 1px solid #eee;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}

.landing-icone {
  font-size: 24px;
  background: color-mix(in srgb, var(--cor-app) 15%, white);
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
}

.landing-info h4 {
  margin: 0 0 4px 0;
  font-size: 15px;
  color: #222;
}

.landing-info p {
  margin: 0;
  font-size: 13px;
  color: #666;
}

.landing-cta-box {
  background: #ffffff;
  padding: 24px;
  border-radius: 16px;
  text-align: center;
  border: 1px solid #eee;
  margin-top: 24px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.landing-cta-box h3 {
  margin-top: 0;
  color: #1a1a1a;
}

.landing-cta-box p {
  font-size: 14px;
  color: #666;
  margin-bottom: 20px;
}

.landing-links-uteis {
  margin-top: 15px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.landing-links-uteis a {
  font-size: 13px;
  color: var(--cor-app);
  text-decoration: none;
  font-weight: 600;
}








/* Header Discreto color-mix(in srgb, var(--cor-app) 15%, white); */
.admin-header-discreto {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px;
  background: var(--cor-app);
  border-bottom: 1px solid #e2e8f0;
  position: sticky;
  top: 0;
  z-index: 100;
}

.admin-logo-area {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 15px;
  color: #1e293b;
}

.admin-avatar-mini {
  width: 32px;
  height: 32px;
  border-radius: 20%;
  object-fit: cover;
  border: 1px solid var(--cor-app);
}

.admin-header-acoes {
  display: flex;
  gap: 12px;
  align-items: center;
}

.btn-hamburguer {
  background: transparent;
  border: none;
  font-size: 22px;
  cursor: pointer;
  color: #1e293b;
}



/* Estilo Base do Card de Status */
.status-assinatura-card {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    background: #ffffff;
    border-radius: 12px;
    padding: 12px 18px; 
    margin: 0 20px 20px 20px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    border-left: 5px solid #ccc;
}

.status-conteudo {
    display: flex;
    align-items: center;
    gap: 12px;
    
}

.status-icone {
    font-size: 26px;
}

.status-assinatura-card strong {
    font-size: 15px;
    display: block;
    color: #333;
}

.status-assinatura-card p {
    font-size: 13px;
    color: #666;
    margin: 2px 0 0 0;
}

/* Botão de Ação do Card */
.btn-acao-assinatura {
    background: #333;
    color: #fff;
    border: none;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: bold;
    cursor: pointer;    
    transition: background 0.2s;
}

.btn-acao-assinatura:hover {
    background: #000;
}

/* Variações de Cores por Status */
.status-beta {
    border-left-color: #8a2be2;
    background: color-mix(in srgb, #8a2be2 5%, #fff);
}

.status-trial {
    border-left-color: #3498db;
    background: color-mix(in srgb, #3498db 5%, #fff);
}

.status-ativo {
    border-left-color: #2ecc71;
    background: color-mix(in srgb, #2ecc71 5%, #fff);
}

.status-alerta {
    border-left-color: #f39c12;
    background: color-mix(in srgb, #f39c12 8%, #fff);
}

.status-bloqueado {
    border-left-color: #e74c3c;
    background: color-mix(in srgb, #e74c3c 8%, #fff);
}

/* Grid de Métricas */
.admin-metricas-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 0 20px;
  margin-bottom: 20px;
}

.admin-card-metrica {
  background: #ffffff;
  padding: 14px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 2 1px 3px rgba(0,0,0,0.02);
}

.metrica-icone {
  font-size: 22px;
}

.metrica-valor {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
}

.metrica-titulo {
  font-size: 11px;
  color: #64748b;
}

.agendamentos-empresa {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 3px;
  margin-top: 20px;
}

.agendamentos-profissional{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 3px;
  margin-top: 20px;
}

/* Bloco de Agendamentos Rápidos */
.admin-bloco-agendamentos {
  padding: 0 20px 80px 20px;
}

.bloco-titulo-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.bloco-titulo-flex h4 {
  margin: 0;
  font-size: 14px;
  color: #334155;
}

.bloco-titulo-flex a {
  font-size: 12px;
  color: var(--cor-app);
  text-decoration: none;
  font-weight: 600;
}

.card-agendamento-mini {
  background: #ffffff;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.card-agendamento-mini strong {
  display: block;
  font-size: 13px;
  color: #1e293b;
}

.card-agendamento-mini span {
  font-size: 12px;
  color: #64748b;
}

.badge-status-mini {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 6px;
  font-weight: 600;
  background: #fef3c7;
  color: #92400e;
}

/* Fundo escuro transparente quando o menu abre */
.admin-sidebar-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(2px);
  z-index: 998;
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.admin-sidebar-overlay.ativo {
  display: block;
  opacity: 1;
}

/* Gaveta Lateral (Sidebar) */
.admin-sidebar {
  position: fixed;
  top: 0;
  right: -300px; /* Escondido à direita */
  width: 280px;
  height: 100vh;
  background: #ffffff;
  z-index: 999;
  box-shadow: -5px 0 25px rgba(0, 0, 0, 0.1);
  transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}

.admin-sidebar.ativo {
  right: 0; /* Desliza para dentro da tela */
}

.sidebar-header {
  padding: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #e2e8f0;
}

.sidebar-header h3 {
  margin: 0;
  font-size: 16px;
  color: #1e293b;
}

.btn-fechar-sidebar {
  background: #f1f5f9;
  border: none;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 14px;
  cursor: pointer;
  color: #64748b;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sidebar-links {
  flex: 1;
  overflow-y: auto;
  padding: 15px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sidebar-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 14px;
  text-decoration: none;
  color: #334155;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  transition: background 0.2s, color 0.2s;
}

.sidebar-link:hover {
  background: #f8fafc;
  color: var(--cor-app);
}

.sidebar-link .icon {
  font-size: 18px;
  width: 24px;
  text-align: center;
}

.logout-link {
  color: #dc3545;
}

.logout-link:hover {
  background: #fef2f2;
  color: #dc3545;
}

/* MENSAGENS DE ALERTAS DO SISTEMA */
.toast-flutuante {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(-100px);
    background: #333;
    color: #fff;
    padding: 12px 24px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: bold;
    z-index: 99999;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    transition: transform 0.3s ease, background 0.3s ease;
    opacity: 0;
    pointer-events: none;
}
.toast-flutuante.mostrar {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}
.toast-flutuante.sucesso { background: #2ecc71; }
.toast-flutuante.erro { background: #e74c3c; }