/* Edição de agendamento: duas colunas regulares no desktop, sem campos curtos. */
.clinic-admin:not(.platform-admin) form:has(select option[value="agendado"]) > .grid.grid-cols-1.md\:grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
}

.clinic-admin:not(.platform-admin) .content-primary-button {
  width: 160px !important;
  height: 40px !important;
  background: #1f5f8b !important;
  color: #fff !important;
  white-space: nowrap !important;
}

.content-modal-overlay {
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
}

html.content-modal-open,
body.content-modal-open,
body.content-modal-open .clinic-admin,
body.content-modal-open .clinic-admin main {
  overflow: hidden !important;
}

.content-modal-card {
  max-height: calc(100dvh - 32px) !important;
  margin: auto !important;
  border-radius: 24px !important;
}

.content-modal-header {
  min-height: 80px !important;
  background: #1f5f8b !important;
  border-radius: 23px 23px 0 0 !important;
}

.content-modal-body {
  overscroll-behavior: contain !important;
}

.clinic-admin:not(.platform-admin) .content-search-field {
  width: 112px !important;
}

@media (min-width: 640px) {
  .clinic-admin:not(.platform-admin) .content-search-field {
    width: 320px !important;
  }
}

@media (min-width: 768px) {
  .clinic-admin:not(.platform-admin) .content-search-field {
    width: 420px !important;
  }
}

.clinic-admin:not(.platform-admin) form:has(select option[value="agendado"]) > .grid.grid-cols-1.md\:grid-cols-2 > div {
  min-width: 0;
}

.clinic-admin:not(.platform-admin) form:has(select option[value="agendado"]) > .grid.grid-cols-1.md\:grid-cols-2 input,
.clinic-admin:not(.platform-admin) form:has(select option[value="agendado"]) > .grid.grid-cols-1.md\:grid-cols-2 select {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0;
  min-height: 42px;
}

@media (max-width: 720px) {
  .clinic-admin:not(.platform-admin) form:has(select option[value="agendado"]) > .grid.grid-cols-1.md\:grid-cols-2 {
    grid-template-columns: 1fr;
  }
}

/* Padrão visual do administrativo do cliente: controles legíveis, alinhados e
   apropriados para toque. Não atinge a home pública nem o portal da plataforma. */
.clinic-admin:not(.platform-admin) :is(input, select, textarea, button) {
  box-sizing: border-box;
}

.clinic-admin:not(.platform-admin) :is(input, select, textarea) {
  min-width: 0;
}

.clinic-admin:not(.platform-admin) :is(button, [role="button"]) {
  min-height: 40px;
}

.clinic-admin:not(.platform-admin) :is(input, select) {
  min-height: 42px;
}

.clinic-admin:not(.platform-admin) textarea {
  min-height: 96px;
  resize: vertical;
}

.clinic-admin:not(.platform-admin) .clinic-main > main {
  max-width: 1680px;
  margin-inline: auto;
}

.clinic-admin:not(.platform-admin) :is(.rounded-2xl, .rounded-3xl) {
  min-width: 0;
}

.clinic-admin:not(.platform-admin) :is(.grid, .flex) > * {
  min-width: 0;
}

.clinic-admin:not(.platform-admin) .fixed.inset-0 {
  padding: clamp(12px, 3vw, 28px);
  z-index: 2147483000 !important;
  min-height: 100dvh;
  overflow-y: auto;
  align-items: center !important;
  justify-content: center !important;
}

.clinic-admin:not(.platform-admin) .fixed.inset-0 > .bg-white {
  width: min(100%, 900px);
  max-height: none !important;
  overflow: visible !important;
}

/* Com o gerenciador aberto, só o overlay pode rolar: nunca a página ao fundo. */
body.schedcare-blocks-modal-open .clinic-admin,
body.schedcare-blocks-modal-open .clinic-admin .clinic-main,
body.schedcare-blocks-modal-open .clinic-admin .clinic-sidebar {
  overflow: hidden !important;
}

html:has(.clinic-admin .fixed.inset-0 > .bg-white.overflow-hidden),
body:has(.clinic-admin .fixed.inset-0 > .bg-white.overflow-hidden),
.clinic-admin:has(.fixed.inset-0 > .bg-white.overflow-hidden),
.clinic-admin:has(.fixed.inset-0 > .bg-white.overflow-hidden) .clinic-main,
.clinic-admin:has(.fixed.inset-0 > .bg-white.overflow-hidden) .clinic-main > main {
  overflow: hidden !important;
  scrollbar-width: none;
}

/* O Gerenciador usa a rolagem do overlay. O painel e o conteúdo não criam barras próprias. */
.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.overflow-hidden
  > .overflow-y-auto {
  overflow: visible !important;
}

@media (max-width: 720px) {
  .clinic-admin:not(.platform-admin) :is(button, [role="button"]) {
    min-height: 44px;
  }

  .clinic-admin:not(.platform-admin) .fixed.inset-0 {
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 12px;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
  }

  .clinic-admin:not(.platform-admin) .fixed.inset-0 > .bg-white {
    width: min(100%, calc(100vw - 24px));
    border-radius: 24px;
  }

  .clinic-admin:not(.platform-admin) .fixed.inset-0 > .bg-white > .overflow-y-auto {
    overflow: visible !important;
  }
}

/* Reagendamento: somente os três controles aprovados, sem legenda auxiliar. */
.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl
  form.space-y-5
  > .bg-amber-50:first-child {
  display: none !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl
  form.space-y-5
  button[type="submit"] {
  background: #1f5d89 !important;
  color: #fff !important;
}

/* Reagendamento no desktop: três controles em uma única linha, com larguras úteis. */
@media (min-width: 640px) {
  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl
    form.space-y-5
    > .grid.grid-cols-1.md\:grid-cols-2 {
    grid-template-columns: minmax(0, 1fr) 138px 112px !important;
    align-items: end;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl
    form.space-y-5
    > .grid.grid-cols-1.md\:grid-cols-2
    > label.md\:col-span-2 {
    grid-column: auto !important;
  }
}

/* Nenhum clone de arraste permanece visível quando um modal é aberto. */
body:has(.clinic-admin .fixed.inset-0) .schedcare-drag-ghost {
  display: none !important;
}

/* Gerenciador de bloqueios: cabeçalho compacto, legível e alinhado no celular. */
.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl.overflow-hidden
  > .bg-stone-900:first-child {
  background: #174d70 !important;
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl.overflow-hidden {
  border: 0 !important;
  border-radius: 24px !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl.overflow-hidden
  > div:last-child {
  border-bottom-left-radius: 24px;
  border-bottom-right-radius: 24px;
}

@media (max-width: 720px) {
  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl.overflow-hidden
    > .bg-stone-900:first-child {
    padding: 16px;
    gap: 12px;
    align-items: center;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl.overflow-hidden
    > .bg-stone-900:first-child
    > div:first-child {
    min-width: 0;
    align-items: center;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl.overflow-hidden
    > .bg-stone-900:first-child
    h2 {
    font-size: 13px;
    line-height: 1.25;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl.overflow-hidden
    > .bg-stone-900:first-child
    p {
    margin-top: 3px;
    font-size: 10px;
    line-height: 1.35;
    color: #d8eef8 !important;
  }
}

/* Nenhum card da agenda ou elemento arrastável pode ficar acima de um modal. */
.clinic-admin:not(.platform-admin) .fixed.inset-0 ~ *,
.clinic-admin:not(.platform-admin) [draggable="true"] {
  isolation: auto;
}

/* Campos de seleção não herdam a altura dos demais inputs. */
.clinic-admin:not(.platform-admin) input[type="checkbox"] {
  width: 16px !important;
  min-width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  margin: 0 !important;
  flex: 0 0 16px;
}

.clinic-admin:not(.platform-admin) label[for="allDayCheck"] {
  min-height: 16px;
  line-height: 16px;
}

/* Regra específica do gerenciador: o checkbox não ocupa a largura do formulário. */
#allDayCheck {
  display: inline-block !important;
  appearance: auto !important;
  accent-color: #1f5d89;
  width: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: 0 0 16px !important;
}

/* Ficha do atendimento: mesma identidade azul da Agenda, com verde apenas
   nos acentos. O gerenciador de bloqueios fica fora por usar overflow-hidden. */
.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden) {
  width: min(100%, 860px);
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(31, 93, 137, .18);
  border-radius: 26px !important;
  background: #f8fbfa;
  box-shadow: 0 28px 80px rgba(13, 53, 78, .28);
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .flex:first-child {
  margin: 0;
  padding: 22px 24px !important;
  border: 0 !important;
  background: linear-gradient(135deg, #174d70 0%, #1f5d89 100%);
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .flex:first-child h3 {
  margin-top: 8px;
  color: #fff !important;
  font-size: 21px;
  line-height: 1.2;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .flex:first-child span {
  background: #c9f4df !important;
  color: #174d70 !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .flex:first-child button {
  min-width: 40px;
  color: #fff !important;
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.22);
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > :is(form, div.grid, .grid, .border-t) {
  margin-inline: 22px;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > form {
  margin: 22px 22px 24px !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > form > .flex:last-child {
  padding-top: 18px !important;
  margin-bottom: 0;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > form > .flex:last-child button {
  min-height: 44px;
  border-radius: 12px !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid {
  margin-top: 22px;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:first-child {
  background: #fff !important;
  border-color: #d8e6e1 !important;
  box-shadow: 0 8px 24px rgba(23,77,112,.06);
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:first-child :is(.bg-amber-100,.bg-emerald-100,.bg-indigo-100) {
  background: #edf3f6 !important;
  color: #174d70 !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:last-child > div:first-child {
  position: relative;
  background: #fff !important;
  border-color: #d8e6e1 !important;
  box-shadow: 0 8px 24px rgba(23,77,112,.05);
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:last-child > div:first-child::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: 16px 0 0 16px;
  background: #54c99a;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:last-child > div:first-child h4,
.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:last-child > div:first-child span {
  color: #174d70 !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:last-child > div:first-child p {
  color: #3f4f4b !important;
  line-height: 1.65;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .grid > div:last-child > div:last-child {
  background: #fff !important;
  border-color: #e0e8e5 !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .border-t:last-child {
  margin-top: 20px;
  margin-bottom: 22px;
  padding-top: 18px;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .border-t:last-child button {
  min-height: 42px;
  border-radius: 12px !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .border-t:last-child button:is(.bg-amber-500,.bg-indigo-600,.bg-emerald-600,.bg-teal-600) {
  background: #1f5d89 !important;
  color: #fff !important;
}

@media (min-width: 721px) {
  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .grid {
    grid-template-columns: minmax(280px, .88fr) minmax(360px, 1.12fr) !important;
    gap: 18px;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .border-t:last-child .flex {
    display: flex;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 7px;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .border-t:last-child button {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    min-height: 52px;
    padding: 8px 11px !important;
    white-space: normal;
    line-height: 1.25;
    text-align: center;
    font-size: 10.5px !important;
  }
}

/* Ações do atendimento: uma única linguagem visual. Só a ação destrutiva
   permanece vermelha. */
.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .border-t:last-child button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #1f5d89 !important;
  border-color: #1f5d89 !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(31, 93, 137, .14);
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .border-t:last-child button svg {
  display: none !important;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  > .bg-white.max-w-2xl:not(.overflow-hidden)
  > .border-t:last-child button.bg-rose-50 {
  background: #fff4f4 !important;
  border: 1px solid #efb6b6 !important;
  color: #b42323 !important;
  box-shadow: none;
}

@media (max-width: 720px) {
  .clinic-admin:not(.platform-admin)
    .fixed.inset-0:has(> .bg-white.max-w-2xl:not(.overflow-hidden)) {
    display: grid !important;
    place-items: center !important;
    padding: 12px 10px calc(12px + env(safe-area-inset-bottom));
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden) {
    width: min(100%, calc(100vw - 20px));
    max-height: calc(100dvh - 24px) !important;
    overflow-y: auto !important;
    border-radius: 22px !important;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .flex:first-child {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 17px 18px !important;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .flex:first-child h3 {
    font-size: 18px;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > :is(form, .grid, .border-t) {
    margin-inline: 14px;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > form {
    margin: 16px 14px 18px !important;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .grid {
    margin-top: 14px;
    gap: 12px;
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .border-t:last-child .flex {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .border-t:last-child button {
    width: 100%;
    min-height: 48px;
    padding: 8px 10px !important;
    white-space: normal;
    line-height: 1.25;
    text-align: center;
    justify-content: center;
  }
}

@media (max-width: 420px) {
  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl:not(.overflow-hidden)
    > .border-t:last-child .flex {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 640px) {
  /* Dia inteiro não muda a dimensão do gerenciador: só substitui as horas
     pelo próprio controle na mesma faixa visual. */
  .clinic-admin:not(.platform-admin)
    .fixed.inset-0
    > .bg-white.max-w-2xl.overflow-hidden {
    min-height: 604px;
  }

  /* O estado "Dia inteiro" mantém o fluxo e os espaçamentos originais do
     formulário. Alterar o formulário inteiro para grid criava um vão extra
     no topo e fazia o conteúdo parecer maior ao marcar a opção. */
}

/* Corrige o rótulo sem criar outro elemento visual. */
.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  form
  > .grid:first-of-type
  > div:nth-child(2)
  > label {
  font-size: 0;
}

.clinic-admin:not(.platform-admin)
  .fixed.inset-0
  form
  > .grid:first-of-type
  > div:nth-child(2)
  > label::after {
  content: "Profissional afetado";
  font-size: 12px;
}

/* Ficha de atendimento: título, selo e conteúdo ganham respiro próprio. */
.clinic-admin:not(.platform-admin) .fixed.inset-0 > .bg-white.rounded-3xl.max-w-2xl > :first-child > :first-child {
  display: grid;
  gap: 8px;
}

.clinic-admin:not(.platform-admin) .fixed.inset-0 > .bg-white.rounded-3xl.max-w-2xl > :first-child > :first-child > span {
  justify-self: start;
}

.clinic-admin:not(.platform-admin) .fixed.inset-0 > .bg-white.rounded-3xl.max-w-2xl > .grid {
  gap: 20px;
}

.clinic-admin:not(.platform-admin) .fixed.inset-0 > .bg-white.rounded-3xl.max-w-2xl .space-y-2 > .flex {
  gap: 12px;
}

/* Usuários e equipe: campos proporcionais ao conteúdo, em vez de colunas iguais. */
/* A área útil das configurações perde espaço para a navegação lateral.  Cinco
   campos em uma linha só funcionam apenas em telas realmente largas. */
@media (min-width: 1280px) and (max-width: 1799px) {
  .clinic-admin:not(.platform-admin) .team-member-create-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) !important;
  }

  .clinic-admin:not(.platform-admin) .team-member-create-action {
    grid-column: 1 / -1;
    justify-self: end;
  }
}

@media (min-width: 1800px) {
  .clinic-admin:not(.platform-admin) .team-member-create-form {
    grid-template-columns: minmax(170px, 1.1fr) minmax(250px, 1.7fr) minmax(145px, .85fr) minmax(170px, 1fr) auto !important;
    align-items: end;
  }

  .clinic-admin:not(.platform-admin) .team-member-create-action {
    min-width: 132px;
  }
}

@media (max-width: 767px) {
  .clinic-admin:not(.platform-admin) .team-member-create-form,
  .clinic-admin:not(.platform-admin) .team-member-edit-fields {
    grid-template-columns: 1fr !important;
  }

  .clinic-admin:not(.platform-admin) .team-member-create-action,
  .clinic-admin:not(.platform-admin) .team-actions > button {
    width: 100%;
    justify-content: center;
  }
}

/* Anamnese do atendimento: modal único, legível e alinhado à identidade atual. */
html.appointment-intake-open,
body.appointment-intake-open {
  overflow: hidden !important;
}

body.appointment-intake-open .clinic-admin,
body.appointment-intake-open .clinic-admin main {
  overflow: hidden !important;
}

.appointment-intake-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  overflow-y: auto;
  background: rgba(11, 39, 60, .68);
  backdrop-filter: blur(6px);
}

.appointment-intake-card {
  width: min(760px, 100%);
  margin: auto;
  overflow: hidden;
  border: 1px solid rgba(25, 91, 137, .18);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(9, 38, 60, .24);
}

.appointment-intake-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 26px;
  color: #fff;
  background: linear-gradient(135deg, #154c70 0%, #1f6592 100%);
}

.appointment-intake-header span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 10px;
  border: 1px solid rgba(184, 243, 216, .48);
  border-radius: 999px;
  color: #c9f5df;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.appointment-intake-header h2 {
  margin: 7px 0 0;
  color: #fff;
  font-size: clamp(20px, 3vw, 26px);
  font-weight: 800;
  line-height: 1.15;
}

.appointment-intake-header button {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, .1);
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.appointment-intake-header button:hover {
  background: rgba(255, 255, 255, .2);
}

.appointment-intake-content {
  display: grid;
  gap: 20px;
  padding: 26px;
}

.appointment-intake-status {
  display: flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 999px;
  color: #164a6b;
  background: #eef6fa;
  font-size: 12px;
  font-weight: 750;
}

.appointment-intake-status::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #1f6592;
  box-shadow: 0 0 0 4px rgba(31, 101, 146, .12);
}

.appointment-intake-status.is-completed {
  color: #0b6b50;
  background: #eafaf3;
}

.appointment-intake-status.is-completed::before { background: #10a878; }
.appointment-intake-status.is-not_sent { color: #72520b; background: #fff8df; }
.appointment-intake-status.is-not_sent::before { background: #d6a21b; }

.appointment-intake-message,
.appointment-intake-empty {
  margin: 0;
  color: #52636e;
  font-size: 14px;
  line-height: 1.6;
}

.appointment-intake-answers {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.appointment-intake-answers article {
  min-width: 0;
  padding: 16px;
  border: 1px solid #dce7e2;
  border-radius: 16px;
  background: #f8fbfa;
}

.appointment-intake-answers article:first-child,
.appointment-intake-answers article:nth-child(2) {
  grid-column: 1 / -1;
}

.appointment-intake-answers span {
  display: block;
  margin-bottom: 7px;
  color: #60716c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.appointment-intake-answers p {
  margin: 0;
  color: #17272f;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.appointment-intake-body-marks {
  padding: 18px;
  border: 1px solid #dce7e2;
  border-radius: 16px;
  background: #f8fbfa;
}

.appointment-intake-body-marks h3 {
  margin: 0 0 12px;
  color: #164a6b;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.appointment-intake-body-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.appointment-intake-body-list span {
  padding: 7px 10px;
  border-radius: 999px;
  color: #164a6b;
  background: #e9f3f8;
  font-size: 11px;
  font-weight: 750;
}

.appointment-reschedule-history {
  min-width: 0;
  padding: 16px;
  border: 1px solid #d8e2de;
  border-radius: 16px;
  background: #f8fbfa;
}

.appointment-reschedule-history h4 {
  margin: 0 0 12px;
  color: #17272f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.appointment-reschedule-history article {
  padding: 11px 0;
  border-top: 1px solid #e2ebe7;
}

.appointment-reschedule-history article:first-of-type { border-top: 0; padding-top: 0; }
.appointment-reschedule-history article p,
.appointment-reschedule-empty { margin: 0; color: #263a43; font-size: 12px; line-height: 1.45; }
.appointment-reschedule-history article span { display: block; margin-top: 5px; color: #718078; font-size: 10px; }

.appointment-intake-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding-top: 4px;
}

.appointment-intake-action {
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid #1f6592;
  border-radius: 13px;
  color: #195b89;
  background: #fff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
}

.appointment-intake-action:hover { background: #eef6fa; }
.appointment-intake-action.is-primary { color: #fff; background: #1f6592; }
.appointment-intake-action.is-primary:hover { background: #174e73; }
.appointment-intake-action:disabled { cursor: wait; opacity: .65; }

.appointment-intake-loading {
  margin: 0;
  padding: 48px 24px;
  color: #195b89;
  font-size: 14px;
  font-weight: 750;
  text-align: center;
}

.appointment-client-contact {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px 18px;
  align-items: center;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e7ecef;
}

.appointment-client-contact span {
  color: #66767f;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.appointment-client-contact strong {
  min-width: 0;
  color: #21333d;
  font-size: 12px;
  overflow-wrap: anywhere;
}

/* Ficha do atendimento: usa toda a largura útil e distribui os dados em
   blocos proporcionais, sem deixar uma coluna vazia. */
html.appointment-detail-open,
body.appointment-detail-open {
  overflow: hidden !important;
}

body.appointment-detail-open .clinic-admin,
body.appointment-detail-open .clinic-admin main,
body.appointment-detail-open .clinic-main {
  overflow: hidden !important;
}

.clinic-admin:not(.platform-admin) .appointment-detail-overlay {
  align-items: flex-start !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}

body.appointment-detail-open .appointment-detail-overlay {
  align-items: flex-start !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}

.clinic-admin:not(.platform-admin) .appointment-detail-dialog {
  width: min(100%, 940px) !important;
  max-width: 940px !important;
  max-height: none !important;
  margin-block: auto !important;
  overflow: visible !important;
}

body.appointment-detail-open .appointment-detail-dialog {
  max-height: none !important;
  margin-block: auto !important;
  overflow: hidden !important;
}

.clinic-admin:not(.platform-admin) .appointment-detail-dialog > .flex:first-child,
body.appointment-detail-open .appointment-detail-dialog > .flex:first-child {
  position: static !important;
}

.clinic-admin:not(.platform-admin) .appointment-detail-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  width: auto !important;
  margin-inline: 22px !important;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card {
  width: 100%;
  align-self: start;
  padding: clamp(18px, 2.4vw, 26px) !important;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card > .space-y-2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card > .space-y-2 > div {
  display: grid !important;
  grid-template-columns: 124px minmax(0, 1fr);
  gap: 14px;
  min-height: 28px;
  align-items: center;
  justify-content: initial !important;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card > .space-y-2 > div > strong {
  text-align: left;
  overflow-wrap: anywhere;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card > .border-t.space-y-1\.5 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card > .border-t.space-y-1\.5 > div {
  display: grid;
  grid-template-rows: minmax(30px, auto) auto;
  gap: 6px;
  align-content: start;
  padding: 12px;
  border: 1px solid #dce7e2;
  border-radius: 13px;
  background: #fff;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card > .border-t.space-y-1\.5 > div > span:last-child {
  align-self: end;
}

.clinic-admin:not(.platform-admin) .appointment-detail-card .appointment-client-contact {
  grid-template-columns: 124px minmax(130px, .7fr) minmax(180px, 1.3fr);
  gap: 14px;
}

/* Durante o arraste por ponteiro, o navegador não seleciona textos ou tenta
   iniciar um segundo arraste nativo. */
body.schedcare-calendar-dragging,
body.schedcare-calendar-dragging * {
  user-select: none !important;
  -webkit-user-select: none !important;
}

.clinic-admin:not(.platform-admin) .calendar-day-content {
  box-sizing: border-box !important;
  height: auto !important;
  min-height: 560px !important;
  max-height: none !important;
  overflow: visible !important;
}

.clinic-admin:not(.platform-admin) .calendar-day-content > .space-y-3 {
  height: auto !important;
  overflow: visible !important;
}

.clinic-admin:not(.platform-admin) .day-simultaneous-grid {
  grid-template-columns: repeat(var(--appointment-columns, 1), minmax(0, 1fr));
}

.clinic-admin:not(.platform-admin) .day-simultaneous-grid .draggable-appointment {
  align-self: start;
}

.manual-booking-date-field {
  position: relative;
}

.manual-booking-date-display {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 42px;
  padding: 10px 14px;
  border: 1px solid #d6d3d1;
  border-radius: 12px;
  background: #fafaf9;
  color: #292524;
  font-size: 12px;
  font-weight: 700;
}

.manual-booking-date-native {
  position: absolute;
  inset: 22px 0 0;
  width: 100%;
  height: calc(100% - 22px);
  cursor: pointer;
  opacity: 0;
}

@media (max-width: 720px) {
  .clinic-admin:not(.platform-admin) .day-simultaneous-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .clinic-admin:not(.platform-admin) .appointment-detail-overlay {
    padding: 12px !important;
  }

  .clinic-admin:not(.platform-admin) .appointment-detail-dialog {
    margin-block: 12px !important;
    overflow: hidden !important;
    border-radius: 22px !important;
  }

  body.appointment-detail-open .appointment-detail-overlay {
    padding: 12px !important;
  }

  body.appointment-detail-open .appointment-detail-dialog {
    margin-block: 12px !important;
    overflow: hidden !important;
    border-radius: 22px !important;
  }

  .clinic-admin:not(.platform-admin) .appointment-detail-grid {
    margin-inline: 14px !important;
  }

  .clinic-admin:not(.platform-admin) .appointment-detail-card > .space-y-2,
  .clinic-admin:not(.platform-admin) .appointment-detail-card > .border-t.space-y-1\.5,
  .clinic-admin:not(.platform-admin) .appointment-detail-card .appointment-client-contact {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .appointment-intake-overlay {
    align-items: center;
    padding: 14px;
  }

  .appointment-intake-card {
    width: 100%;
    border-radius: 20px;
  }

  .appointment-intake-header { padding: 18px; }
  .appointment-intake-content { gap: 16px; padding: 18px; }
  .appointment-intake-answers { grid-template-columns: 1fr; }
  .appointment-intake-answers article:first-child,
  .appointment-intake-answers article:nth-child(2) { grid-column: auto; }
  .appointment-intake-actions { grid-template-columns: 1fr; }
  .appointment-intake-action { width: 100%; }
  .appointment-client-contact { grid-template-columns: 1fr; gap: 5px; }
}
/* Clientes: mesmo padrão de título da Agenda e quatro indicadores em linha fora do celular. */
div.space-y-5:has(> section:nth-child(2) > article:nth-child(4)) > section:first-child h1 {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  div.space-y-5:has(> section:nth-child(2) > article:nth-child(4)) > section:nth-child(2) {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  div.space-y-5:has(> section:nth-child(2) > article:nth-child(4)) > section:nth-child(2) > article {
    min-width: 0;
  }
}
/* Lista de clientes: uma faixa compacta com avatar, resumo e contato. */
.clinic-admin:not(.platform-admin) .client-summary-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.clinic-admin:not(.platform-admin) .client-filter-row {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.35fr) minmax(210px, 1fr) !important;
  gap: 8px !important;
  align-items: center !important;
}

.clinic-admin:not(.platform-admin) .client-list-row {
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) minmax(140px, auto) !important;
  align-items: center !important;
  column-gap: 10px !important;
  min-height: 48px !important;
  padding: 6px 12px !important;
}

@media (max-width: 639px) {
  .clinic-admin:not(.platform-admin) .client-summary-grid {
    gap: 6px !important;
  }

  .clinic-admin:not(.platform-admin) .client-summary-card {
    min-width: 0 !important;
    padding: 9px 7px !important;
    border-radius: 12px !important;
  }

  .clinic-admin:not(.platform-admin) .client-summary-card span {
    font-size: 9px !important;
    line-height: 1.15 !important;
  }

  .clinic-admin:not(.platform-admin) .client-summary-card svg {
    width: 13px !important;
    height: 13px !important;
    flex: 0 0 auto !important;
  }

  .clinic-admin:not(.platform-admin) .client-summary-card strong {
    margin-top: 5px !important;
    font-size: 19px !important;
    line-height: 1 !important;
  }

  .clinic-admin:not(.platform-admin) .client-filter-row {
    grid-template-columns: 1fr !important;
  }

  .clinic-admin:not(.platform-admin) .client-list-row {
    grid-template-columns: 36px minmax(0, 1fr) !important;
    align-items: start !important;
    min-height: 0 !important;
    padding: 8px 10px !important;
  }

  .clinic-admin:not(.platform-admin) .client-list-main > :last-child {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.35 !important;
  }

  .clinic-admin:not(.platform-admin) .client-list-contact {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    column-gap: 10px;
    row-gap: 2px;
    justify-content: flex-start;
    margin-top: 4px;
    text-align: left;
  }

  .clinic-admin:not(.platform-admin) .client-list-contact > div {
    max-width: 100% !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    margin-top: 0 !important;
  }
}
/* Ficha do cliente: identidade institucional e hierarquia consistente. */
.clinic-admin:not(.platform-admin) .client-detail-dialog {
  overflow: hidden !important;
  border: 1px solid rgba(20, 75, 111, 0.14) !important;
  border-radius: 24px !important;
}

.clinic-admin:not(.platform-admin) .client-detail-header {
  margin: -24px -24px 0 !important;
  padding: 20px 24px !important;
  border-bottom: 0 !important;
  background: #1f5f8b !important;
  color: #fff !important;
  border-radius: 23px 23px 0 0 !important;
}

.clinic-admin:not(.platform-admin) .client-detail-metrics {
  margin-top: 20px !important;
}

.clinic-admin:not(.platform-admin) .client-detail-dialog > section {
  gap: 16px !important;
}

.clinic-admin:not(.platform-admin) .client-detail-dialog > section + section {
  margin-top: 20px !important;
}

.clinic-admin:not(.platform-admin) .client-detail-metrics > * {
  min-height: 82px !important;
  border-color: rgba(20, 75, 111, 0.14) !important;
  background: #f8fafb !important;
}

.clinic-admin:not(.platform-admin) .client-contact-row {
  align-items: center !important;
}

.clinic-admin:not(.platform-admin) .client-contact-content {
  display: grid !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  grid-template-columns: minmax(145px, 210px) minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  column-gap: 14px !important;
  align-items: center !important;
}

.clinic-admin:not(.platform-admin) .client-contact-content > strong { grid-column: 1; grid-row: 1; }
.clinic-admin:not(.platform-admin) .client-contact-content > span { grid-column: 1; grid-row: 2; margin-top: 2px !important; }
.clinic-admin:not(.platform-admin) .client-contact-content > p {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin-top: 0 !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

.clinic-admin:not(.platform-admin) .client-intake-row {
  overflow: hidden !important;
}
.clinic-admin:not(.platform-admin) .client-intake-summary {
  min-height: 44px !important;
  cursor: pointer !important;
  list-style: none !important;
  white-space: nowrap !important;
}
.clinic-admin:not(.platform-admin) .client-intake-main { overflow: hidden !important; }
.clinic-admin:not(.platform-admin) .client-intake-main > p { margin: 0 !important; }
.clinic-admin:not(.platform-admin) .client-intake-summary::-webkit-details-marker { display: none !important; }

html:has(.client-detail-dialog),
body:has(.client-detail-dialog),
.clinic-main:has(.client-detail-dialog) {
  overflow: hidden !important;
}
.clinic-admin:not(.platform-admin) .client-intake-row > dl,
.clinic-admin:not(.platform-admin) .client-intake-row > p {
  margin: 0 12px 12px !important;
  padding-top: 10px !important;
  border-top: 1px solid rgba(20,75,111,.12) !important;
}

.clinic-admin:not(.platform-admin) .client-edit-dialog {
  overflow: hidden !important;
  border: 1px solid rgba(20, 75, 111, 0.14) !important;
  border-radius: 24px !important;
}

.clinic-admin:not(.platform-admin) .client-edit-header {
  margin: -24px -24px 0 !important;
  padding: 20px 24px !important;
  border-radius: 23px 23px 0 0 !important;
  background: #1f5f8b !important;
}

.clinic-admin:not(.platform-admin) .client-edit-header h2 { color: #fff !important; }
.clinic-admin:not(.platform-admin) .client-edit-header button {
  border: 1px solid rgba(255,255,255,.28) !important;
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
}

.clinic-admin:not(.platform-admin) .client-identification-grid {
  display: grid !important;
  grid-template-columns: repeat(24, minmax(0, 1fr)) !important;
  align-items: end !important;
  gap: 14px !important;
}
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(1) { grid-column: span 8 !important; order: 1; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(4) { grid-column: span 5 !important; order: 2; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(6) { grid-column: span 5 !important; order: 3; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(7) { grid-column: span 6 !important; order: 4; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(5) { grid-column: span 8 !important; order: 5; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(2) { grid-column: span 5 !important; order: 6; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(3) { grid-column: span 5 !important; order: 7; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(8) { grid-column: span 3 !important; order: 8; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(9) { grid-column: span 3 !important; order: 9; }
.clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(10) { grid-column: span 5 !important; order: 10; }
.clinic-admin:not(.platform-admin) .client-identification-grid > label > span:first-child { min-height: 30px; }
.clinic-admin:not(.platform-admin) .client-whatsapp-check {
  height: 42px !important;
  align-self: end !important;
}
.clinic-admin:not(.platform-admin) .client-whatsapp-check input {
  width: 16px !important;
  height: 16px !important;
  flex: 0 0 16px !important;
  accent-color: #1f5f8b !important;
}

.clinic-admin:not(.platform-admin) .client-address-grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  align-items: end !important;
  gap: 14px !important;
}
.clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(1) { grid-column: span 4 !important; }
.clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(2) { grid-column: span 5 !important; }
.clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(3) { grid-column: span 1 !important; }
.clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(4) { grid-column: span 2 !important; }
.clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(5) { grid-column: span 4 !important; }
.clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(6) { grid-column: span 6 !important; }
.clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(7) { grid-column: span 2 !important; }

.clinic-admin:not(.platform-admin) .client-detail-dialog article,
.clinic-admin:not(.platform-admin) .client-detail-metrics > * {
  border: 1px solid rgba(20, 75, 111, 0.18) !important;
}

.clinic-admin:not(.platform-admin) .client-detail-header h2,
.clinic-admin:not(.platform-admin) .client-detail-header span {
  color: #fff !important;
}

.clinic-admin:not(.platform-admin) .client-detail-header > div:last-child > button:not([aria-label]) {
  border-color: rgba(255, 255, 255, 0.55) !important;
  background: #fff !important;
  color: #1f5f8b !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

.clinic-admin:not(.platform-admin) .client-detail-header > div:last-child {
  flex-shrink: 0 !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-right: 48px !important;
}

.clinic-admin:not(.platform-admin) .client-detail-header > div:last-child > button:not([aria-label]):has(svg.lucide-trash-2) {
  border-color: #fecaca !important;
  color: #b91c1c !important;
}

.clinic-admin:not(.platform-admin) .client-detail-header [aria-label="Fechar ficha do cliente"] {
  position: absolute !important;
  top: 20px !important;
  right: 24px !important;
  width: 40px !important;
  height: 40px !important;
  flex: 0 0 40px !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  background: rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
}

@media (max-width: 639px) {
  .clinic-admin:not(.platform-admin) .client-detail-header {
    margin: -20px -20px 0 !important;
    padding: 18px 20px !important;
  }

  .clinic-admin:not(.platform-admin) .client-detail-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  .clinic-admin:not(.platform-admin) .client-detail-metrics > * {
    min-width: 0 !important;
    min-height: 68px !important;
    padding: 9px 7px !important;
    border-radius: 12px !important;
  }
  .clinic-admin:not(.platform-admin) .client-detail-metrics > * span { font-size: 8px !important; }
  .clinic-admin:not(.platform-admin) .client-detail-metrics > * strong { font-size: 16px !important; }
  .clinic-admin:not(.platform-admin) .client-detail-header > div:last-child { margin-right: 0 !important; }

  .clinic-admin:not(.platform-admin) .client-detail-header [aria-label="Fechar ficha do cliente"] {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    width: 40px !important;
    height: 40px !important;
  }

  .clinic-admin:not(.platform-admin) .client-detail-dialog,
  .clinic-admin:not(.platform-admin) .client-edit-dialog { border-radius: 20px !important; }
  .clinic-admin:not(.platform-admin) .client-edit-header {
    margin: -24px -24px 0 !important;
    border-radius: 19px 19px 0 0 !important;
  }
  .clinic-admin:not(.platform-admin) .client-identification-grid { grid-template-columns: 1fr !important; }
  .clinic-admin:not(.platform-admin) .client-identification-grid > :nth-child(n) { grid-column: 1 / -1 !important; }
  .clinic-admin:not(.platform-admin) .client-address-grid { grid-template-columns: 1fr !important; }
  .clinic-admin:not(.platform-admin) .client-address-grid > :nth-child(n) { grid-column: 1 / -1 !important; }
  .clinic-admin:not(.platform-admin) .client-contact-content { grid-template-columns: 1fr !important; }
  .clinic-admin:not(.platform-admin) .client-contact-content > strong,
  .clinic-admin:not(.platform-admin) .client-contact-content > span,
  .clinic-admin:not(.platform-admin) .client-contact-content > p { grid-column: 1 !important; grid-row: auto !important; }
  .clinic-admin:not(.platform-admin) .client-contact-content > p { margin-top: 5px !important; }
}
@media (min-width: 768px) {
  .clinic-admin:not(.platform-admin) .app-section-header,
  .clinic-admin:not(.platform-admin) .rounded-3xl:has(> .calendar-toolbar-controls) {
    box-sizing: border-box !important;
    height: 100px !important;
    min-height: 100px !important;
    padding: 20px !important;
  }
}

.clinic-admin .finance-tabs-nav {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

.clinic-admin .finance-tabs-nav .finance-tab-active,
.clinic-admin .finance-new-entry-button {
  background: #1f5f8b !important;
  color: #fff !important;
}

.clinic-admin .finance-modal-overlay,
.finance-modal-overlay {
  display: grid !important;
  align-items: center !important;
  justify-items: center !important;
  overscroll-behavior: contain;
}

html:has(.finance-modal-overlay),
body:has(.finance-modal-overlay) {
  overflow: hidden !important;
}

.clinic-admin .finance-modal-card,
.finance-modal-card {
  width: min(680px, calc(100vw - 32px));
  max-height: none;
  overflow: hidden;
  border-radius: 24px !important;
}

.clinic-admin .finance-modal-header,
.finance-modal-header {
  min-height: 80px;
  background: #1f5f8b !important;
  color: #fff !important;
  border-radius: 24px 24px 0 0 !important;
}

.clinic-admin .finance-modal-header button,
.clinic-admin .finance-modal-header svg,
.finance-modal-header button,
.finance-modal-header svg {
  color: #fff !important;
}

.clinic-admin .finance-modal-card > div:last-child,
.finance-modal-card > div:last-child {
  padding-bottom: 16px !important;
}

.clinic-admin .finance-entry-form-grid,
.finance-entry-form-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.clinic-admin .finance-entry-type-toggle,
.finance-entry-type-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.clinic-admin .finance-entry-type-toggle > button,
.finance-entry-type-toggle > button {
  width: 100%;
  min-width: 0;
}

.clinic-admin .finance-entry-type-active,
.clinic-admin .finance-modal-primary,
.finance-entry-type-active,
.finance-modal-primary {
  background: #1f5f8b !important;
  color: #fff !important;
}

.finance-income-option.finance-entry-type-active { background: #059669 !important; }
.finance-expense-option.finance-entry-type-active { background: #dc2626 !important; }

.clinic-admin .finance-entry-form-grid input:focus,
.clinic-admin .finance-entry-form-grid select:focus,
.finance-entry-form-grid input:focus,
.finance-entry-form-grid select:focus {
  border-color: #1f5f8b !important;
  box-shadow: 0 0 0 3px rgba(31, 95, 139, .12);
}

.clinic-admin .finance-entry-form-grid > :nth-child(1), .finance-entry-form-grid > :nth-child(1) { grid-column: span 12; }
.clinic-admin .finance-entry-form-grid > :nth-child(2),
.clinic-admin .finance-entry-form-grid > :nth-child(3),
.clinic-admin .finance-entry-form-grid > :nth-child(4),
.clinic-admin .finance-entry-form-grid > :nth-child(5),
.finance-entry-form-grid > :nth-child(2),
.finance-entry-form-grid > :nth-child(3),
.finance-entry-form-grid > :nth-child(4),
.finance-entry-form-grid > :nth-child(5) { grid-column: span 6; }

.finance-entry-form-grid > :nth-child(1) { grid-column: 1 / 13; grid-row: 1; }
.finance-entry-form-grid > :nth-child(4) { grid-column: 1 / 7; grid-row: 2; }
.finance-entry-form-grid > :nth-child(3) { grid-column: 7 / 13; grid-row: 2; }
.finance-entry-form-grid > :nth-child(2) { grid-column: 1 / 7; grid-row: 3; }
.finance-entry-form-grid > :nth-child(5) { grid-column: 7 / 13; grid-row: 3; }

.clinic-admin .finance-entry-form-grid input,
.clinic-admin .finance-entry-form-grid select,
.finance-entry-form-grid input,
.finance-entry-form-grid select {
  height: 42px;
}

@media (max-width: 639px) {
  .clinic-admin .finance-modal-overlay, .finance-modal-overlay { padding: 16px; }
  .clinic-admin .finance-modal-card, .finance-modal-card {
    width: 100%;
    max-height: none;
    border-radius: 24px;
  }
  .clinic-admin .finance-entry-form-grid, .finance-entry-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clinic-admin .finance-entry-form-grid > :nth-child(1), .finance-entry-form-grid > :nth-child(1) { grid-column: 1 / 3 !important; grid-row: 1 !important; }
  .clinic-admin .finance-entry-form-grid > :nth-child(4), .finance-entry-form-grid > :nth-child(4) { grid-column: 1 !important; grid-row: 2 !important; }
  .clinic-admin .finance-entry-form-grid > :nth-child(3), .finance-entry-form-grid > :nth-child(3) { grid-column: 2 !important; grid-row: 2 !important; }
  .clinic-admin .finance-entry-form-grid > :nth-child(2), .finance-entry-form-grid > :nth-child(2) { grid-column: 1 !important; grid-row: 3 !important; }
  .clinic-admin .finance-entry-form-grid > :nth-child(5), .finance-entry-form-grid > :nth-child(5) { grid-column: 2 !important; grid-row: 3 !important; }
}

@media (min-width: 1024px) {
  .clinic-admin .finance-new-entry-button {
    align-self: flex-end;
  }

  .clinic-admin .finance-date-filter {
    box-sizing: border-box !important;
    flex: 0 0 125px !important;
    width: 125px !important;
  }
}

@media (max-width: 767px) {
  .clinic-admin .finance-header {
    gap: 12px !important;
  }

  .clinic-admin .finance-new-entry-button-mobile {
    box-sizing: border-box !important;
    flex: 0 0 176px !important;
    width: 176px !important;
    height: 42px !important;
    min-height: 42px !important;
    border-radius: 12px !important;
    max-width: none !important;
    padding: 7px 9px !important;
    font-size: 10px !important;
    line-height: 1 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
  }

  .clinic-admin .finance-new-entry-button-mobile svg {
    display: inline-block !important;
    width: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;
    height: 16px !important;
    margin-right: 4px !important;
    vertical-align: -3px !important;
  }

  .clinic-admin .finance-header-controls {
    width: 100% !important;
    flex-wrap: nowrap !important;
  }

  .clinic-admin .finance-date-filter {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    white-space: nowrap !important;
  }

  .clinic-admin .finance-date-input {
    width: 100% !important;
    min-width: 0 !important;
    padding-left: 8px !important;
    padding-right: 6px !important;
  }

  .clinic-admin .finance-summary-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .clinic-admin .finance-summary-card {
    min-width: 0 !important;
    padding: 10px 8px !important;
    border-radius: 14px !important;
  }

  .clinic-admin .finance-summary-card > div {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-content: start !important;
    gap: 3px !important;
  }

  .clinic-admin .finance-summary-card span {
    display: block !important;
    font-size: 8px !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    height: 19px !important;
    overflow: hidden !important;
  }

  .clinic-admin .finance-summary-card strong {
    margin-top: 3px !important;
    font-size: 15px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    align-self: start !important;
  }

  .clinic-admin .finance-summary-card svg {
    display: none !important;
  }

  .clinic-admin .finance-entry-type-toggle {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .finance-entry-type-toggle {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .clinic-admin .finance-entry-type-toggle > button {
    grid-column: auto !important;
    width: auto !important;
  }


  .finance-entry-type-toggle > button {
    grid-column: auto !important;
    width: auto !important;
  }
}

.clinic-admin .dashboard-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 767px) {
  .clinic-admin .dashboard-metrics {
    gap: 6px !important;
  }

  .clinic-admin .dashboard-metric {
    min-width: 0 !important;
    min-height: 72px !important;
    padding: 10px 8px !important;
    border-radius: 14px !important;
  }

  .clinic-admin .dashboard-metric > div {
    min-height: 19px !important;
    align-items: flex-start !important;
    gap: 2px !important;
  }

  .clinic-admin .dashboard-metric span {
    height: 19px !important;
    overflow: hidden !important;
    font-size: 8px !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
  }

  .clinic-admin .dashboard-metric strong {
    margin-top: 5px !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  .clinic-admin .dashboard-metric svg {
    display: none !important;
  }
}
.campaign-editor-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 1024px) {
  .campaign-editor-layout {
    grid-template-columns: 350px minmax(0, 1fr);
    align-items: start;
  }

  .campaign-editor-layout > aside {
    grid-column: 1;
  }

  .campaign-editor-notice {
    grid-column: 1;
  }

  .campaign-editor-content {
    display: contents;
  }

  .campaign-editor-content > * {
    grid-column: 1;
  }

  .campaign-editor-content > .campaign-editor-preview {
    grid-column: 2;
    grid-row: 1 / span 6;
    position: relative;
    top: auto;
  }

  .campaign-editor-actions {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    margin-top: -4px !important;
    margin-bottom: 0 !important;
  }
}
.campaign-history-metrics {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

@media (max-width: 767px) {
  .campaign-history-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.settings-page-header {
  min-height: 100px;
}
.company-info-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  align-items: end;
}
.company-info-grid > .company-field-name { grid-column: span 4 !important; order: 1; }
.company-info-grid > .company-field-tax { grid-column: span 4 !important; order: 2; }
.company-info-grid > .company-field-segment { grid-column: span 4 !important; order: 3; }
.company-info-grid > .company-field-phone { grid-column: span 3 !important; order: 4; }
.company-info-grid > .company-field-whatsapp { grid-column: span 3 !important; order: 5; }
.company-info-grid > .company-field-email { grid-column: span 6 !important; order: 6; }
.company-info-grid > .company-field-postal { grid-column: span 3 !important; order: 7; }
.company-info-grid > .company-field-address { grid-column: span 5 !important; order: 8; }
.company-info-grid > .company-field-number { grid-column: span 1 !important; order: 9; }
.company-info-grid > .company-field-complement { grid-column: span 3 !important; order: 10; }
.company-info-grid > .company-field-neighborhood { grid-column: span 4 !important; order: 11; }
.company-info-grid > .company-field-city { grid-column: span 6 !important; order: 12; }
.company-info-grid > .company-field-state { grid-column: span 2 !important; order: 13; }
.company-field-postal > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}
.company-field-postal input { min-width: 0 !important; width: 100% !important; }
.company-service-grid {
  grid-template-columns: minmax(270px, 1.4fr) minmax(190px, 1fr) minmax(190px, 1fr) minmax(130px, 0.7fr);
  align-items: end;
  column-gap: 12px !important;
  row-gap: 12px !important;
  width: 100% !important;
  max-width: 1080px !important;
}
.company-service-grid > * {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}
.company-service-grid > * > span:first-child {
  white-space: nowrap;
}
.service-area-map [aria-label="Mapa da área de atendimento"] {
  height: 440px !important;
  min-height: 440px !important;
}
.service-area-map .service-radius-label {
  border: 0 !important;
  border-radius: 999px !important;
  background: #047857 !important;
  color: #fff !important;
  padding: 5px 9px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 14px rgba(4, 120, 87, 0.3) !important;
}
.service-area-map .service-radius-label::before { display: none !important; }

.company-socials-grid .company-social-input {
  min-height: 34px !important;
  height: 34px !important;
  padding: 5px 9px !important;
  font-size: 11px !important;
}

.company-settings-card {
  border: 1px solid #e7e5e4 !important;
  border-radius: 20px !important;
  background: #fff !important;
  padding: 18px !important;
  box-shadow: 0 1px 2px rgb(28 25 23 / 0.04) !important;
}

.company-settings-card input:not(:disabled),
.company-settings-card select:not(:disabled),
.company-settings-card textarea:not(:disabled) {
  background-color: #fff !important;
}

.company-settings-card-title {
  margin: 0 !important;
  color: #292524 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}

.company-card-stack { display: grid !important; gap: 18px !important; }
.business-hours-matrix {
  display: grid !important;
  grid-template-columns: 112px repeat(7, minmax(86px, 1fr)) !important;
  gap: 7px !important;
  min-width: 760px !important;
  align-items: center !important;
}
.business-hours-matrix > strong,
.business-hours-matrix > span { font-size: 10px !important; text-align: center !important; }
.business-hours-matrix > span { text-align: left !important; font-weight: 700 !important; color: #57534e !important; }
.business-hours-matrix > input { width: 100% !important; min-height: 34px !important; border: 1px solid #e7e5e4 !important; border-radius: 10px !important; background: #fff !important; padding: 5px !important; font-size: 11px !important; }
.business-hours-matrix > label { display: grid !important; min-height: 30px !important; place-items: center !important; }
.schedule-period-label {
  display: block;
  color: #78716c;
  font-size: 9px;
  font-weight: 700;
}
.schedule-period-actions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
.schedule-add-period,.schedule-remove-period { display: inline-flex !important; min-height: 34px !important; align-items: center !important; justify-content: center !important; gap: 5px !important; border-radius: 10px !important; padding: 6px 8px !important; font-size: 9px !important; font-weight: 800 !important; }
.schedule-add-period { border: 1px solid #d6d3d1 !important; background: #fff !important; color: #44403c !important; }
.schedule-remove-period { border: 1px solid #fecaca !important; background: #fff !important; color: #b91c1c !important; }
.schedule-rules-grid { align-items: end !important; }
.schedule-rules-grid > * { min-width: 0 !important; margin: 0 !important; }
.schedule-rules-save { min-height: 42px !important; white-space: nowrap !important; }
.waitlist-form { grid-template-columns: 1fr !important; }
.waitlist-form > * { min-width: 0 !important; grid-column: auto !important; }
.team-user-modal { border: 1px solid #d6d3d1 !important; }
.team-user-modal-header { min-height: 82px !important; border-radius: 24px 24px 0 0 !important; }
.team-user-modal-body { background: #fafaf9 !important; }
.team-member-edit-actions { display: grid !important; grid-template-columns: auto auto auto 1fr auto !important; align-items: center !important; gap: 10px !important; }
.team-member-edit-actions > button { min-height: 40px !important; margin: 0 !important; }
.team-member-professional-editor { background: #fff !important; }

@media (min-width: 1024px) {
  .schedule-week-grid {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 0 !important;
    overflow: hidden;
    border: 1px solid #e7e5e4;
    border-radius: 16px;
  }
  .schedule-day-card {
    border: 0 !important;
    border-right: 1px solid #e7e5e4 !important;
    border-radius: 0 !important;
    background: #fff !important;
  }
  .schedule-day-card:last-child { border-right: 0 !important; }
  .schedule-day-card > div:first-child {
    min-height: 58px;
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .schedule-day-card > div:first-child button {
    width: 100%;
    padding-inline: 8px !important;
  }
  .schedule-rules-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto !important;
  }
  .waitlist-form {
    grid-template-columns: minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.3fr) minmax(0,.9fr) auto !important;
    align-items: end !important;
  }
  .waitlist-form > button {
    min-height: 42px !important;
    align-self: end !important;
    white-space: nowrap !important;
    padding-inline: 12px !important;
    font-size: 10px !important;
  }
}

@media (max-width: 1023px) {
  .schedule-week-grid { gap: 12px !important; }
  .schedule-day-card { border-radius: 16px !important; }
  .schedule-rules-save { width: 100% !important; }
}
@media (max-width: 720px) {
  .team-user-modal { margin: 0 !important; max-height: calc(100vh - 16px) !important; border-radius: 20px !important; }
  .team-user-modal-header { min-height: 72px !important; padding: 14px 16px !important; border-radius: 20px 20px 0 0 !important; }
  .team-user-modal-body { max-height: calc(100vh - 88px) !important; padding: 12px !important; }
  .team-member-edit-actions { grid-template-columns: 1fr 1fr !important; }
  .team-member-edit-actions > button { width: 100% !important; }
  .team-member-edit-actions > button:last-child { grid-column: 1 / -1 !important; }
}
section:has(input[placeholder="agenda.suaempresa.com.br"]) p.text-stone-500 { display: none !important; }
section:has(input[placeholder="agenda.suaempresa.com.br"]) > div.mt-4.flex.items-start { display: none !important; }
a[aria-label="Conversar com a empresa pelo WhatsApp"] {
  z-index: 90 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

.company-social-card {
  display: grid !important;
  gap: 7px !important;
  min-width: 0 !important;
  padding: 10px !important;
  border: 1px solid #e7e5e4 !important;
  border-radius: 14px !important;
  background: #fff !important;
}

.company-social-name {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  color: #44403c !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}

.company-whatsapp-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 28px !important;
  color: #57534e !important;
  font-size: 10px !important;
  font-weight: 700 !important;
}

.company-whatsapp-heading {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}

.company-whatsapp-fields {
  display: grid !important;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr) !important;
  gap: 8px !important;
}

@media (min-width: 1024px) {
  .company-socials-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
  .company-whatsapp-card {
    grid-row: span 2 !important;
    order: -1 !important;
  }
}
.settings-section-picker {
  position: absolute;
  right: 20px;
  width: 260px;
}
.identity-floating-save {
  bottom: 24px;
}
@media (max-width: 767px) {
  .service-area-map [aria-label="Mapa da área de atendimento"] {
    height: 340px !important;
    min-height: 340px !important;
  }
  .company-info-grid { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; gap: 12px 8px !important; }
  .company-info-grid > * { grid-column: span 12 !important; }
  .company-info-grid > .company-field-name,
  .company-info-grid > .company-field-email,
  .company-info-grid > .company-field-postal,
  .company-info-grid > .company-field-address { grid-column: span 12 !important; }
  .company-info-grid > .company-field-segment,
  .company-info-grid > .company-field-tax,
  .company-info-grid > .company-field-phone,
  .company-info-grid > .company-field-whatsapp,
  .company-info-grid > .company-field-number,
  .company-info-grid > .company-field-complement { grid-column: span 6 !important; }
  .company-info-grid > .company-field-neighborhood { grid-column: span 5 !important; }
  .company-info-grid > .company-field-city { grid-column: span 5 !important; }
  .company-info-grid > .company-field-state { grid-column: span 2 !important; }
  .company-service-grid { grid-template-columns: 1fr; }
  .settings-section-picker {
    right: 16px;
    width: min(210px, 54%);
  }
  .identity-floating-save {
    bottom: calc(112px + env(safe-area-inset-bottom, 0px));
  }
}

.business-hours-day {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  border: 1px solid #e7e5e4 !important;
  border-radius: 14px !important;
  background: #fff !important;
  padding: 10px !important;
}
.business-hours-day-heading { grid-column: 1 / -1 !important; display: flex !important; align-items: center !important; justify-content: space-between !important; font-size: 11px !important; }
.business-hours-day-heading label { display: inline-flex !important; align-items: center !important; gap: 5px !important; font-size: 9px !important; font-weight: 700 !important; }
.business-hours-day > label { font-size: 9px !important; font-weight: 700 !important; color: #78716c !important; }
.business-hours-day > label span { display: block !important; margin-bottom: 4px !important; }
.business-hours-day > label input { width: 100% !important; min-height: 34px !important; border: 1px solid #e7e5e4 !important; border-radius: 9px !important; background: #fff !important; padding: 5px !important; font-size: 11px !important; }
