/* =========================================================================
   PAINEL ADMINISTRATIVO
   Mesma identidade do app, com organização de gestão: barra lateral fixa,
   tabelas e indicadores.
   ========================================================================= */
.adm { min-height: 100dvh; }
.adm__lateral { display: none; }
.adm__selo { margin-left: 8px; padding: 2px 8px; border-radius: var(--r-pilula); background: var(--escuro); color: var(--menta); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; vertical-align: middle; }
.adm__principal { min-width: 0; }
.adm__topo {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: var(--e3);
  min-height: 64px;
  padding: 0 var(--e4);
  background: color-mix(in srgb, var(--fundo) 90%, transparent);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--linha);
}
.adm__titulo-topo { display: grid; flex: 1; min-width: 0; line-height: 1.25; }
.adm__titulo-topo strong { font-family: var(--f-titulo); font-weight: 600; }
.adm__titulo-topo span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.8rem; color: var(--texto-3); }
.adm__voltar { display: none; }
.adm__tela { max-width: 1280px; margin: 0 auto; padding: var(--e5) var(--e4) var(--e12); outline: none; }

.adm-nav { display: grid; gap: 2px; }
.adm-nav__link { display: flex; align-items: center; gap: var(--e3); min-height: 44px; padding: 0 var(--e3); border-radius: var(--r-campo); color: var(--texto-2); font-weight: 600; transition: background-color var(--rapido), color var(--rapido); }
.adm-nav__link i { font-size: 1.25rem; }
.adm-nav__link:hover { background: var(--superficie-2); color: var(--texto); }
.adm-nav__link[aria-current="page"] { background: var(--escuro); color: var(--sobre-escuro); }
.adm-nav__link[aria-current="page"] i { color: var(--menta); }

@media (min-width: 1024px) {
  .adm { display: grid; grid-template-columns: 248px minmax(0, 1fr); }
  .adm__lateral { position: sticky; top: 0; display: flex; flex-direction: column; gap: var(--e5); height: 100dvh; padding: var(--e6) var(--e4); border-right: 1px solid var(--linha); background: var(--superficie); }
  .adm__menu { display: none; }
  .adm__voltar { display: inline-flex; }
  .adm__topo { padding: 0 var(--e8); }
  .adm__tela { padding: var(--e8) var(--e8) var(--e12); }
  .adm .avisos { bottom: 24px; left: calc(50% + 124px); }
}
.adm ~ .avisos,
body:has(.adm) .avisos { bottom: 24px; }

.adm-cabeca { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--e3); margin-bottom: var(--e4); }
.adm-cabeca__titulo { font-family: var(--f-display); font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 400; line-height: 1; outline: none; }
.adm-cabeca .texto-suave::first-letter { text-transform: uppercase; }
.adm-cabeca__acoes { display: flex; gap: var(--e2); }

/* Indicadores */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--e3); margin-bottom: var(--e4); }
.kpi { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px var(--e3); padding: var(--e4); }
.kpi__icone { grid-row: span 2; display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--linha-forte); border-radius: 50%; color: var(--texto-2); font-size: 1.1rem; }
.kpi__rotulo { font-size: 0.8rem; font-weight: 600; color: var(--texto-2); }
.kpi__valor { font-family: var(--f-display); font-size: 2.4rem; font-weight: 400; line-height: 1; font-variant-numeric: tabular-nums; }
.kpi__detalhe { grid-column: 1 / -1; margin-top: var(--e2); padding-top: var(--e2); border-top: 1px solid var(--linha); font-size: 0.78rem; color: var(--texto-3); }

.adm-grade { display: grid; gap: var(--e4); }
@media (min-width: 900px) {
  .adm-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .adm-grade__largo { grid-column: 1 / -1; }
}
.painel-grafico { padding: var(--e5); min-width: 0; }
.painel-grafico__topo { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--e2); margin-bottom: var(--e3); }
.painel-grafico__topo .texto-suave { font-size: 0.8rem; }

/* Tabelas */
.tabela-rolagem { position: relative; overflow-x: auto; }
.tabela { font-size: 0.88rem; }
.tabela th,
.tabela td { padding: var(--e3) var(--e4); text-align: left; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela thead th { font-size: 0.74rem; font-weight: 700; color: var(--texto-3); text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; background: var(--superficie-2); }
.tabela tbody tr:last-child > * { border-bottom: 0; }
.tabela td .avatar { display: inline-grid; vertical-align: middle; margin-right: 8px; }
.tabela--gestao tbody tr:hover { background: var(--superficie-2); }
.linha--inativa td { color: var(--texto-3); }
.linha--inativa .celula-item__icone { opacity: 0.5; }
.celula-item { display: flex; align-items: center; gap: var(--e3); min-width: 220px; }
.celula-item > span:last-child { display: grid; gap: 1px; }
.celula-item small { color: var(--texto-3); font-size: 0.78rem; max-width: 42ch; }
.celula-item__icone { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border: 1px solid var(--linha-forte); border-radius: 50%; color: var(--texto-2); font-size: 1rem; }
.acoes-linha { white-space: nowrap; text-align: right !important; }

/* Ferramentas (busca) */
.ferramentas { display: flex; gap: var(--e3); margin-bottom: var(--e3); }
.busca { position: relative; display: block; flex: 1; max-width: 360px; }
.busca > i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--texto-3); }
.busca input { padding-left: 38px; }

/* Agenda */
.agenda-controles { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e3); margin-bottom: var(--e4); padding: var(--e3) var(--e4); }
.agenda-controles__nav { display: flex; align-items: center; gap: var(--e1); }
.agenda-controles__data { min-height: 40px; padding: 0 10px; border: 1px solid var(--linha-forte); border-radius: var(--r-campo); background: var(--superficie); }
.agenda-controles__resumo { font-size: 0.86rem; color: var(--texto-2); }
.agenda-controles__resumo strong { color: var(--texto); }
.agenda-controles__resumo strong::first-letter { text-transform: uppercase; }
.agenda { padding: 0; }
.tabela--agenda { min-width: 640px; table-layout: fixed; }
.tabela--agenda th,
.tabela--agenda td { padding: 4px; border-right: 1px solid var(--linha); }
.tabela--agenda thead th { padding: var(--e3) var(--e2); text-transform: none; letter-spacing: 0; font-size: 0.85rem; color: var(--texto); }
.agenda__hora { width: 64px; text-align: center !important; font-size: 0.78rem; font-weight: 700; color: var(--texto-3); font-variant-numeric: tabular-nums; background: var(--superficie-2); }
.agenda__prof { display: flex; align-items: center; gap: 6px; }
.celula button { display: grid; width: 100%; min-height: 44px; padding: 6px 8px; border-radius: 8px; text-align: left; font-size: 0.78rem; line-height: 1.25; }
.celula--ocupada button { background: var(--marca-suave); color: var(--marca-texto); border-left: 3px solid var(--marca); }
.celula--ocupada button span { color: var(--texto-2); font-size: 0.72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celula--livre button { display: flex; align-items: center; gap: 4px; color: var(--texto-3); border: 1px dashed var(--linha-forte); font-weight: 600; }
.celula--livre button:hover { border-color: var(--marca); color: var(--marca-texto); }
.celula--intervalo span { display: grid; place-items: center; min-height: 44px; border-radius: 8px; background: repeating-linear-gradient(135deg, var(--superficie-2) 0 6px, transparent 6px 12px); color: var(--texto-3); font-size: 0.72rem; font-weight: 600; }
.celula--passou button { opacity: 0.5; }

/* Profissionais e planos (cartões de gestão) */
.gestao-profs,
.gestao-planos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: var(--e4); }
.gestao-prof,
.gestao-plano { display: grid; align-content: start; gap: var(--e2); padding: var(--e5); }
.gestao-prof__topo { display: flex; align-items: center; gap: var(--e3); }
.gestao-prof__topo > div { display: grid; flex: 1; min-width: 0; }
.gestao-prof__topo span:not(.etiqueta) { color: var(--texto-2); font-size: 0.85rem; }
.gestao-prof__topo .avatar { border-radius: 0; }
.gestao-prof__servicos,
.gestao-plano__assinantes { display: flex; gap: 6px; font-size: 0.82rem; color: var(--texto-2); }
.gestao-prof__servicos i,
.gestao-plano__assinantes i { margin-top: 2px; }
.gestao-prof__acoes { display: flex; gap: var(--e2); margin-top: var(--e2); padding-top: var(--e3); border-top: 1px solid var(--linha); }
.gestao-prof--inativo,
.gestao-plano--inativo { opacity: 0.7; }
.gestao-plano__topo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.gestao-plano__topo strong { flex: 1; font-family: var(--f-titulo); font-size: 1.1rem; }
.gestao-plano__preco { font-family: var(--f-display); font-size: 2.2rem; font-weight: 400; line-height: 1; }
.gestao-plano__preco span { font-family: var(--f-texto); font-size: 0.85rem; font-weight: 500; color: var(--texto-2); }

/* Configurações */
.config { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e4); }
.config__bloco { padding: var(--e5); }
.config__bloco .secao__titulo { margin-bottom: var(--e4); }
.config__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: var(--e4); }
.horarios-config { display: grid; gap: var(--e2); margin-bottom: var(--e5); }
.horario-dia { display: grid; grid-template-columns: minmax(150px, 1fr) auto auto auto; align-items: center; gap: var(--e3); padding: var(--e2) 0; border-bottom: 1px solid var(--linha); }
.horario-dia input[type="time"] { min-height: 40px; padding: 0 8px; border: 1px solid var(--linha-forte); border-radius: var(--r-campo); background: var(--superficie); }
.horario-dia input:disabled { opacity: 0.4; }
.horario-dia .campo__erro { grid-column: 1 / -1; }
@media (max-width: 560px) {
  .horario-dia { grid-template-columns: 1fr auto 1fr; gap: var(--e2); }
  .horario-dia .interruptor { grid-column: 1 / -1; }
  .horario-dia input[type="time"] { width: 100%; }
}
.integracoes { display: grid; }
.integracoes li { display: flex; align-items: center; gap: var(--e3); padding: var(--e3) 0; border-bottom: 1px solid var(--linha); }
.integracoes li > i { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--linha-forte); border-radius: 50%; font-size: 1.2rem; }
.integracoes li > span:nth-child(2) { display: grid; flex: 1; }
.integracoes small { color: var(--texto-3); }
.config__acoes { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--e3); padding: var(--e3) 0; background: linear-gradient(transparent, var(--fundo) 30%); }
