/* ========================================
   GestãoBLZ - Agenda: modais Bootstrap (camada v2)
   Só visual/layout: estrutura, textos, campos e fluxos continuam os mesmos.
   Todos os seletores são prefixados pelo ID de cada modal do agenda.html,
   para vencer agenda.css sem afetar o popup de agendamento
   (agenda-popup-v2.css) nem o fechamento de comanda (fechamento-comanda-v2.css).

   Celular (<= 576px): o modal vira uma folha presa na base da tela, com
   cabeçalho no topo, corpo rolável e rodapé de ações sempre visível.
   Para voltar ao visual anterior, basta remover o <link> deste arquivo.
   ======================================== */

/* ---------- Cor de identidade de cada modal ---------- */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) {
    --m-accent: var(--primary-color, #007bff);
    --m-accent-dark: var(--primary-dark, var(--primary-color, #0062cc));
    --m-accent-soft: rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.08);
    --m-accent-text: var(--primary-color, #007bff);
    --m-radius: 14px;
    --m-pad-x: 20px;
}

#bloquearHorarioModal,
#holidayPauseModal {
    --m-accent: #f59e0b;
    --m-accent-dark: #d97706;
    --m-accent-soft: #fffbeb;
    --m-accent-text: #b45309;
}

#conflictReviewModal {
    --m-accent: #dc2626;
    --m-accent-dark: #b91c1c;
    --m-accent-soft: #fef2f2;
    --m-accent-text: #b91c1c;
}

#novaComandaConsumoModal,
#novoClienteConsumoRapidoModal,
#availabilityShareModal {
    --m-accent: #16a34a;
    --m-accent-dark: #15803d;
    --m-accent-soft: #f0fdf4;
    --m-accent-text: #15803d;
}

#agendamentoRecorrenteEntryModal,
#agendamentoRecorrenteModal,
#agendamentoRecorrenteViewerModal {
    --m-accent: #7c3aed;
    --m-accent-dark: #6d28d9;
    --m-accent-soft: #f5f3ff;
    --m-accent-text: #6d28d9;
}

#agendamentoRecorrenteReportModal {
    --m-accent: #059669;
    --m-accent-dark: #047857;
    --m-accent-soft: #ecfdf5;
    --m-accent-text: #047857;
}

/* ---------- Tamanhos no desktop ---------- */
#conflictReviewModal .modal-dialog {
    max-width: 760px;
}

#bloquearHorarioModal .modal-dialog,
#holidayPauseModal .modal-dialog,
#novaComandaConsumoModal .modal-dialog {
    max-width: 720px;
}

#agendamentoRecorrenteEntryModal .modal-dialog {
    max-width: 520px;
}

#agendamentoRecorrenteReportModal .modal-dialog {
    max-width: min(860px, calc(100vw - 2rem));
}

/* ========================================
   CASCA: conteúdo, cabeçalho, corpo, rodapé
   ======================================== */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-content {
    border: 1px solid var(--v2-card-border);
    border-radius: var(--m-radius);
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(16, 24, 40, 0.18);
    overflow: hidden;
    color: var(--v2-text);
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-header {
    align-items: center;
    gap: 12px;
    padding: 16px var(--m-pad-x);
    background: #ffffff;
    border-bottom: 1px solid var(--v2-card-divider);
    border-radius: 0;
    color: var(--v2-text);
}

/* Cabeçalhos com subtítulo (recorrência / horários disponíveis) */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-header > div:first-child {
    min-width: 0;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--v2-text);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-title > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    margin: 0 !important;
    border-radius: 8px;
    background: var(--m-accent);
    color: #ffffff;
    font-size: 14px;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.recurring-modal-subtitle, .availability-share-subtitle) {
    max-width: 640px;
    margin: 4px 0 0 42px;
    color: var(--v2-muted);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.45;
}

/* Fechar: quadrado discreto */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-header .btn-close {
    box-sizing: border-box;
    flex-shrink: 0;
    align-self: flex-start;
    width: 32px;
    height: 32px;
    margin: 0 -6px 0 auto;
    padding: 0;
    border-radius: 8px;
    background-color: transparent;
    background-size: 11px;
    filter: none;
    opacity: 0.55;
    box-shadow: none;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-header .btn-close:hover {
    background-color: #f3f4f6;
    opacity: 0.9;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-header .btn-close:focus {
    box-shadow: 0 0 0 3px rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.15);
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-body {
    padding: 20px var(--m-pad-x);
    background: #ffffff;
    color: var(--v2-text);
    font-size: 14px;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px var(--m-pad-x);
    background: var(--v2-surface);
    border-top: 1px solid var(--v2-card-divider);
    border-radius: 0;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer > * {
    margin: 0;
}

/* ========================================
   CAMPOS
   ======================================== */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-label,
#availabilityShareModal .availability-share-field label {
    margin-bottom: 6px;
    color: var(--v2-text-2);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.form-text, small.text-muted, .availability-share-client-hint, .availability-share-preview-hint) {
    display: block;
    margin-top: 5px;
    color: var(--v2-muted) !important;
    font-size: 12.5px;
    line-height: 1.45;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.form-control, .form-select) {
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid var(--v2-card-border);
    border-radius: 8px;
    background-color: #ffffff;
    color: var(--v2-text);
    font-size: 14px;
    line-height: 1.4;
    box-shadow: none;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-select {
    padding-right: 36px;
    background-position: right 12px center;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) textarea.form-control {
    min-height: 0;
    resize: vertical;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.form-control, .form-select)::placeholder {
    color: #9aa1ad;
    opacity: 1;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.form-control, .form-select):focus {
    border-color: var(--primary-color, #007bff);
    box-shadow: 0 0 0 3px rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.15);
    outline: 0;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .row {
    --bs-gutter-x: 16px;
}

/* Switch "Repetir"/"Notificar": linha inteira clicável em superfície clara */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-check.form-switch {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    padding: 10px 14px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 10px;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-switch .form-check-input {
    flex-shrink: 0;
    float: none;
    width: 40px;
    height: 22px;
    margin: 0;
    border-color: #cfd4dc;
    cursor: pointer;
    box-shadow: none;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-switch .form-check-input:checked {
    background-color: var(--m-accent);
    border-color: var(--m-accent);
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-switch .form-check-input:focus {
    box-shadow: 0 0 0 3px rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.15);
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-switch .form-check-label {
    flex: 1;
    color: var(--v2-text);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
}

/* ========================================
   AVISOS INTERNOS: faixa clara com borda esquerda na cor
   ======================================== */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .alert {
    padding: 12px 14px;
    border: 1px solid transparent;
    border-left-width: 3px;
    border-radius: 8px;
    box-shadow: none !important;
    font-size: 13.5px;
    line-height: 1.5;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .alert-warning {
    background: #fffbeb;
    border-color: #fdecc8;
    border-left-color: #f59e0b !important;
    color: #78350f;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .alert-warning > i {
    margin-right: 4px;
    color: #d97706;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .alert-danger {
    background: #fef2f2;
    border-color: #fde0e0;
    border-left-color: #dc2626 !important;
    color: #7f1d1d;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .alert-info {
    background: #eff6ff;
    border-color: #dbe8fb;
    border-left-color: #3b82f6 !important;
    color: #1e3a5f;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .alert small {
    font-size: 13px;
}

/* Lista de agendamentos em conflito (bloqueio / feriado) */
:is(#blockConflictList, #holidayConflictList) {
    display: grid;
    gap: 6px;
    margin-bottom: 8px;
}

:is(#blockConflictList, #holidayConflictList) > div {
    padding: 7px 10px;
    background: #ffffff;
    border: 1px solid #f7d4d4;
    border-radius: 6px;
    color: var(--v2-text);
    font-size: 13px;
    font-weight: 400;
}

/* ========================================
   BOTÕES DO RODAPÉ (chapados, sem degradê)
   ======================================== */
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn,
#agendamentoRecorrenteReportModal .recurring-report-copy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    min-width: 0;
    padding: 8px 16px;
    border: 1px solid transparent;
    border-radius: 8px;
    background-image: none;
    box-shadow: none;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.25;
    transform: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn:hover,
:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn:active,
#agendamentoRecorrenteReportModal .recurring-report-copy-btn:hover {
    transform: none;
    box-shadow: none;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn:focus-visible {
    box-shadow: 0 0 0 3px rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.2);
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer :is(.btn-secondary, .btn-light, .btn-outline-dark) {
    background: #ffffff;
    border-color: var(--v2-card-border);
    color: var(--v2-text-2);
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer :is(.btn-secondary, .btn-light, .btn-outline-dark):hover {
    background: #f3f4f6;
    border-color: #d5d9e0;
    color: var(--v2-text);
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-primary {
    background: var(--primary-color, #007bff);
    border-color: var(--primary-color, #007bff);
    color: #ffffff;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-primary:hover {
    background: var(--primary-dark, var(--primary-color, #0062cc));
    border-color: var(--primary-dark, var(--primary-color, #0062cc));
    color: #ffffff;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-warning {
    background: #d97706;
    border-color: #d97706;
    color: #ffffff;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-warning:hover {
    background: #b45309;
    border-color: #b45309;
    color: #ffffff;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-success {
    background: #16a34a;
    border-color: #16a34a;
    color: #ffffff;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-success:hover {
    background: #15803d;
    border-color: #15803d;
    color: #ffffff;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-danger {
    background: #dc2626;
    border-color: #dc2626;
    color: #ffffff;
}

:is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn-danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
    color: #ffffff;
}

/* Recorrência: botão principal roxo chapado (cor da função) */
#agendamentoRecorrenteModal .modal-footer .btn.recurring-save-btn {
    background: var(--m-accent);
    border-color: var(--m-accent);
}

#agendamentoRecorrenteModal .modal-footer .btn.recurring-save-btn:hover {
    background: var(--m-accent-dark);
    border-color: var(--m-accent-dark);
}

/* Editar: "Excluir" à esquerda, discreto */
#editarAgendamentoModal .modal-footer #excluirAgendamentoBtn {
    margin-right: auto;
    background: #ffffff;
    border-color: #f3c7c7;
    color: #dc2626;
}

#editarAgendamentoModal .modal-footer #excluirAgendamentoBtn:hover {
    background: #fef2f2;
    border-color: #eba9a9;
}

/* Botões secundários soltos dentro do corpo */
#novaComandaConsumoModal #btnNovoClienteConsumoRapido {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-height: 40px;
    padding: 0;
    border: 1px solid var(--v2-card-border);
    border-radius: 0 8px 8px 0;
    background: #ffffff;
    color: #16a34a;
    box-shadow: none;
}

#novaComandaConsumoModal #btnNovoClienteConsumoRapido:hover {
    background: #f0fdf4;
    border-color: #bbe5c8;
}

/* ========================================
   INTERVALO SELECIONADO (arrastar na grade)
   ======================================== */
#agendaDragActionModal .modal-body p {
    font-size: 14.5px;
    line-height: 1.55;
}

#agendaDragActionModal .modal-body p strong {
    color: var(--v2-text);
}

#agendaDragActionModal #dragSelectionDate {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 6px;
    color: var(--v2-text-2) !important;
    font-size: 13px;
    font-weight: 500;
}

/* ========================================
   PAUSA DE FERIADO
   ======================================== */
#holidayPauseModal .holiday-pause-hero {
    position: relative;
    margin-bottom: 18px;
    padding: 14px 16px 14px 66px;
    min-height: 72px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 10px;
}

#holidayPauseModal .holiday-pause-hero::before {
    content: "\f073";
    position: absolute;
    top: 14px;
    left: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #fef3c7;
    color: #b45309;
    font-family: "Font Awesome 6 Free";
    font-size: 17px;
    font-weight: 900;
}

#holidayPauseModal .holiday-pause-title {
    color: var(--v2-text);
    font-size: 15.5px;
    font-weight: 500;
    line-height: 1.3;
}

#holidayPauseModal .holiday-pause-date {
    margin-top: 2px;
    color: var(--v2-text-2);
    font-size: 13.5px;
    font-weight: 500;
}

#holidayPauseModal .holiday-pause-range {
    margin-top: 6px;
    color: var(--v2-muted);
    font-size: 13px;
}

/* ========================================
   CONFLITOS: escolher quem cancelar
   ======================================== */
#conflictReviewModal .conflict-review-summary {
    margin-bottom: 12px;
    color: var(--v2-text);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
}

#conflictReviewModal .conflict-review-list {
    gap: 8px;
    margin-bottom: 14px;
}

#conflictReviewModal .conflict-review-item {
    align-items: center;
    gap: 12px;
    min-height: 56px;
    margin: 0;
    padding: 10px 14px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

#conflictReviewModal .conflict-review-item:hover {
    background: var(--v2-surface);
}

#conflictReviewModal .conflict-review-item:has(input:checked) {
    background: #fef7f7;
    border-color: #f5c2c2;
}

#conflictReviewModal .conflict-review-item input[type="checkbox"] {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: #dc2626;
    cursor: pointer;
}

#conflictReviewModal .conflict-review-item > div {
    min-width: 0;
}

#conflictReviewModal .conflict-review-item-title {
    color: var(--v2-text);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

#conflictReviewModal .conflict-review-item-meta {
    margin-top: 2px;
    color: var(--v2-muted);
    font-size: 13px;
}

/* ========================================
   NOVA COMANDA DE CONSUMO
   ======================================== */
#novaComandaConsumoModal .consumo-info-card {
    gap: 12px;
    margin-bottom: 18px;
    padding: 12px 14px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 10px;
}

#novaComandaConsumoModal .consumo-info-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #dcfce7;
    color: #15803d;
    font-size: 14px;
}

#novaComandaConsumoModal .consumo-info-title {
    margin-bottom: 4px;
    color: var(--v2-text);
    font-size: 14px;
    font-weight: 500;
}

#novaComandaConsumoModal .consumo-info-text {
    color: var(--v2-text-2);
    font-size: 13px;
    line-height: 1.5;
}

/* "Comanda para": controle segmentado */
#novaComandaConsumoModal .btn-group {
    padding: 3px;
    gap: 3px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
}

#novaComandaConsumoModal .btn-group > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    min-height: 36px;
    margin: 0;
    padding: 6px 12px;
    border: 1px solid transparent;
    border-radius: 7px !important;
    background: transparent;
    color: var(--v2-text-2);
    font-size: 14px;
    font-weight: 500;
    box-shadow: none;
}

#novaComandaConsumoModal .btn-group > .btn:hover {
    background: rgba(17, 24, 39, 0.04);
    color: var(--v2-text);
}

#novaComandaConsumoModal .btn-check:checked + .btn {
    background: #ffffff;
    border-color: var(--v2-card-border);
    color: var(--v2-text);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
}

#novaComandaConsumoModal .btn-check:focus-visible + .btn {
    box-shadow: 0 0 0 3px rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.2);
}

#novaComandaConsumoModal .input-group-cliente-consumo {
    flex-wrap: nowrap;
}

#novaComandaConsumoModal .consumo-client-search-input {
    padding-right: 36px;
    border-right: 0;
    border-radius: 8px 0 0 8px;
}

#novaComandaConsumoModal .consumo-client-search-input:focus {
    border-right: 1px solid var(--primary-color, #007bff);
}

#novaComandaConsumoModal .consumo-client-search-dropdown {
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(16, 24, 40, 0.12);
}

#novaComandaConsumoModal .consumo-client-option {
    min-height: 48px;
    border-bottom-color: var(--v2-card-divider);
}

#novaComandaConsumoModal .consumo-client-option-name {
    color: var(--v2-text);
    font-size: 14px;
}

#novaComandaConsumoModal .consumo-client-option-meta {
    color: var(--v2-muted);
    font-size: 12.5px;
}

/* ========================================
   CADASTRO RÁPIDO DE CLIENTE
   ======================================== */
#novoClienteConsumoRapidoModal .alert {
    margin-bottom: 0;
}

/* Rótulo "Status" sem campo (sobra antiga do formulário): some enquanto não houver campo */
#novoClienteConsumoRapidoForm > .row:nth-of-type(2) > .col-md-6:last-child:not(:has(input, select, textarea)) {
    display: none;
}

/* ========================================
   AGENDAMENTO RECORRENTE: escolha inicial
   ======================================== */
#agendamentoRecorrenteEntryModal .recurring-entry-body {
    gap: 10px;
    padding: 20px;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice {
    gap: 14px;
    min-height: 72px;
    padding: 14px 16px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 12px;
    box-shadow: none;
    transform: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice:hover {
    background: var(--v2-surface);
    border-color: #d5d9e0;
    box-shadow: none;
    transform: none;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice:focus-visible {
    outline: 0;
    border-color: var(--m-accent);
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.15);
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice::after {
    content: "\f054";
    margin-left: auto;
    padding-left: 8px;
    color: #b3b9c4;
    font-family: "Font Awesome 6 Free";
    font-size: 12px;
    font-weight: 900;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    font-size: 17px;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice-create .recurring-entry-choice-icon {
    background: #ede9fe;
    color: #6d28d9;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice-viewer .recurring-entry-choice-icon {
    background: #dbeafe;
    color: #1d4ed8;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice-copy strong {
    color: var(--v2-text);
    font-size: 14.5px;
    font-weight: 500;
}

#agendamentoRecorrenteEntryModal .recurring-entry-choice-copy small {
    color: var(--v2-muted);
    font-size: 13px;
    line-height: 1.4;
}

/* ========================================
   AGENDAMENTO RECORRENTE: formulário
   ======================================== */
#agendamentoRecorrenteModal .recurring-modal-body {
    padding: 20px;
}

#agendamentoRecorrenteModal .recurring-form-grid {
    gap: 16px;
}

#agendamentoRecorrenteModal .recurring-form-section {
    padding: 18px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 12px;
    box-shadow: none;
    backdrop-filter: none;
}

#agendamentoRecorrenteModal .recurring-section-head {
    margin-bottom: 14px;
}

#agendamentoRecorrenteModal .recurring-section-kicker {
    color: var(--m-accent-text);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

#agendamentoRecorrenteModal .recurring-section-head h6 {
    margin-top: 2px;
    color: var(--v2-text);
    font-size: 15px;
    font-weight: 500;
}

#agendamentoRecorrenteModal .row.g-3,
#agendamentoRecorrenteModal .recurring-base-grid {
    --bs-gutter-x: 14px;
    --bs-gutter-y: 14px;
    row-gap: 0;
}

#agendamentoRecorrenteModal .recurring-base-col {
    gap: 0;
}

/* Busca de cliente / serviço e selects: mesmo padrão de campo */
:is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-input, .recurring-unified-control) {
    min-height: 40px;
    padding-left: 12px;
    border: 1px solid var(--v2-card-border);
    border-radius: 8px;
    background-color: #ffffff;
    box-shadow: none;
    font-weight: 400;
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) .recurring-smart-select-input {
    padding-right: 44px;
}

#agendamentoRecorrenteModal .recurring-service-search-wrap .recurring-smart-select-input {
    padding-right: 12px;
}

/* agenda.css usa "background:" nesse select e apaga a seta do Bootstrap */
#agendamentoRecorrenteModal .form-select.recurring-unified-control {
    padding-right: 36px;
    background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px 12px;
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-input, .recurring-unified-control):focus {
    border-color: var(--primary-color, #007bff);
    box-shadow: 0 0 0 3px rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.15);
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) .recurring-smart-select-clear {
    right: 6px;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    background: #f3f4f6;
    color: var(--v2-muted);
    font-size: 12px;
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) .recurring-smart-select-clear:hover {
    background: #e5e7eb;
    color: var(--v2-text);
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) .recurring-smart-select-dropdown {
    top: calc(100% + 4px);
    padding: 4px;
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(16, 24, 40, 0.12);
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-option, .recurring-service-option) {
    min-height: 44px;
    padding: 8px 10px;
    border-radius: 8px;
    transform: none;
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-option, .recurring-service-option):hover {
    background: var(--v2-surface);
    transform: none;
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-option-title, .recurring-service-option-title) {
    color: var(--v2-text);
    font-size: 14px;
    font-weight: 500;
}

:is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-option-subtitle, .recurring-service-option-subtitle) {
    color: var(--v2-muted);
    font-size: 12.5px;
}

#agendamentoRecorrenteModal .recurring-service-option-meta {
    color: var(--m-accent-text);
    font-size: 12.5px;
}

/* Serviços escolhidos */
#agendamentoRecorrenteModal .recurring-selected-services {
    gap: 6px;
}

#agendamentoRecorrenteModal .recurring-selected-services:not(:empty) {
    margin-bottom: 8px;
}

#agendamentoRecorrenteModal .recurring-selected-service-chip {
    min-height: 32px;
    gap: 6px;
    padding: 4px 6px 4px 10px;
    background: var(--m-accent-soft);
    border: 1px solid #e4dcfb;
    border-radius: 8px;
    color: #5b21b6;
    font-size: 13px;
    font-weight: 500;
}

#agendamentoRecorrenteModal .recurring-selected-service-chip small {
    color: #7c5bc4;
    font-size: 11.5px;
}

#agendamentoRecorrenteModal .recurring-selected-service-chip button {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: rgba(124, 58, 237, 0.12);
    font-size: 11px;
}

#agendamentoRecorrenteModal .recurring-service-summary {
    margin-top: 2px;
    padding: 8px 12px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 8px;
}

#agendamentoRecorrenteModal .recurring-service-summary strong {
    color: var(--v2-text);
    font-size: 13px;
}

#agendamentoRecorrenteModal .recurring-service-summary span {
    color: var(--v2-muted);
    font-size: 13px;
}

#agendamentoRecorrenteModal .recurring-duration-warning {
    margin-top: 8px;
    padding: 8px 10px;
    background: #fffbeb;
    border: 1px solid #fdecc8;
    border-left: 3px solid #f59e0b;
    border-radius: 8px;
    color: #78350f;
    font-size: 12.5px;
}

/* Dias da semana e períodos: grade de botões com boa área de toque */
#agendamentoRecorrenteModal .recurring-weekdays {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
}

#agendamentoRecorrenteModal .recurring-period-shortcuts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

#agendamentoRecorrenteModal :is(.recurring-weekday-chip, .recurring-period-chip) {
    min-height: 40px;
    padding: 6px 4px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 8px;
    color: var(--v2-text-2);
    font-size: 13px;
    font-weight: 500;
    box-shadow: none;
    transform: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

#agendamentoRecorrenteModal :is(.recurring-weekday-chip, .recurring-period-chip):hover {
    background: #f3f4f6;
    border-color: #d5d9e0;
    color: var(--v2-text);
    box-shadow: none;
    transform: none;
}

#agendamentoRecorrenteModal :is(.recurring-weekday-chip, .recurring-period-chip).active {
    background: var(--m-accent);
    border-color: var(--m-accent);
    color: #ffffff;
}

#agendamentoRecorrenteModal :is(.recurring-weekday-chip, .recurring-period-chip):focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.2);
}

#agendamentoRecorrenteModal .recurring-rule-summary,
#agendamentoRecorrenteModal .recurring-biweekly-card {
    padding: 10px 12px;
    background: var(--m-accent-soft);
    border: 1px solid #e9e3fb;
    border-left: 3px solid var(--m-accent);
    border-radius: 8px;
    color: #3b1d80;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.45;
}

#agendamentoRecorrenteModal .recurring-biweekly-example {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    color: #3b1d80;
    font-size: 13px;
}

/* ========================================
   RECORRÊNCIAS AGENDADAS (lista de séries)
   ======================================== */
#agendamentoRecorrenteViewerModal .recurring-viewer-body,
#agendamentoRecorrenteReportModal .recurring-report-body {
    padding: 20px;
    background: var(--v2-surface);
}

#agendamentoRecorrenteViewerModal .recurring-viewer-toolbar {
    grid-template-columns: repeat(2, minmax(0, 210px)) minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 14px;
}

#agendamentoRecorrenteViewerModal :is(.recurring-viewer-stat, .recurring-viewer-search) {
    padding: 10px 14px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
    box-shadow: none;
}

#agendamentoRecorrenteViewerModal .recurring-viewer-stat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 48px;
}

#agendamentoRecorrenteViewerModal .recurring-viewer-stat-label {
    margin-bottom: 0;
    line-height: 1.3;
    color: var(--v2-muted);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

#agendamentoRecorrenteViewerModal .recurring-viewer-stat strong {
    color: var(--v2-text);
    font-size: 20px;
    font-weight: 500;
}

#agendamentoRecorrenteViewerModal .recurring-viewer-search {
    gap: 10px;
    padding: 0 14px;
}

#agendamentoRecorrenteViewerModal .recurring-viewer-search:focus-within {
    border-color: var(--primary-color, #007bff);
    box-shadow: 0 0 0 3px rgba(var(--primary-r, 0), var(--primary-g, 123), var(--primary-b, 255), 0.15);
}

#agendamentoRecorrenteViewerModal .recurring-viewer-search i {
    color: var(--v2-muted);
}

#agendamentoRecorrenteViewerModal .recurring-viewer-search .form-control {
    min-height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    font-size: 14px;
}

#agendamentoRecorrenteViewerModal .recurring-series-grid {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 12px;
}

#agendamentoRecorrenteViewerModal .recurring-series-card {
    gap: 12px;
    padding: 14px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 12px;
    box-shadow: var(--v2-card-shadow);
}

#agendamentoRecorrenteViewerModal .recurring-series-card:hover {
    border-color: #d5d9e0;
    box-shadow: var(--v2-card-shadow-hover);
}

#agendamentoRecorrenteViewerModal .recurring-series-card.is-cancelled {
    opacity: 0.75;
    border-color: var(--v2-card-border);
}

#agendamentoRecorrenteViewerModal .recurring-series-card-title strong {
    color: var(--v2-text);
    font-size: 15px;
}

#agendamentoRecorrenteViewerModal .recurring-series-card-title span {
    color: var(--v2-muted);
    font-size: 13px;
}

#agendamentoRecorrenteViewerModal .recurring-series-status {
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 12px;
    letter-spacing: 0;
}

#agendamentoRecorrenteViewerModal .recurring-series-status.active {
    background: #ede9fe;
    color: #6d28d9;
}

#agendamentoRecorrenteViewerModal .recurring-series-status.cancelled {
    background: #f1f3f6;
    color: var(--v2-muted);
}

#agendamentoRecorrenteViewerModal .recurring-series-pill-row {
    gap: 6px;
}

#agendamentoRecorrenteViewerModal .recurring-series-pill {
    gap: 6px;
    padding: 4px 8px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 6px;
    color: var(--v2-text-2);
    font-size: 12.5px;
}

#agendamentoRecorrenteViewerModal .recurring-series-meta {
    gap: 6px;
}

#agendamentoRecorrenteViewerModal .recurring-series-meta-item {
    gap: 2px;
    padding: 8px 10px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 8px;
}

#agendamentoRecorrenteViewerModal :is(.recurring-series-meta-item span, .recurring-series-note) {
    color: var(--v2-muted);
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

#agendamentoRecorrenteViewerModal .recurring-series-meta-item strong {
    color: var(--v2-text);
    font-size: 13px;
}

#agendamentoRecorrenteViewerModal .recurring-series-upcoming {
    gap: 8px;
    padding: 10px 12px;
    background: #ffffff;
    border: 1px dashed var(--v2-card-border);
    border-radius: 8px;
}

#agendamentoRecorrenteViewerModal .recurring-series-upcoming-head strong {
    color: var(--v2-text);
    font-size: 13px;
}

#agendamentoRecorrenteViewerModal .recurring-series-upcoming-list {
    gap: 6px;
}

#agendamentoRecorrenteViewerModal .recurring-series-upcoming-chip {
    padding: 4px 8px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 6px;
    color: var(--v2-text-2);
    font-size: 12.5px;
}

#agendamentoRecorrenteViewerModal .recurring-series-action-btn {
    min-height: 36px;
    padding: 6px 12px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    transform: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

#agendamentoRecorrenteViewerModal .recurring-series-action-btn:hover {
    transform: none;
    box-shadow: none;
}

#agendamentoRecorrenteViewerModal .recurring-series-action-btn.primary {
    background: #f5f3ff;
    border-color: #e4dcfb;
    color: #6d28d9;
}

#agendamentoRecorrenteViewerModal .recurring-series-action-btn.primary:hover {
    background: #ede9fe;
}

#agendamentoRecorrenteViewerModal .recurring-series-action-btn.danger {
    background: #ffffff;
    border-color: #f3c7c7;
    color: #dc2626;
}

#agendamentoRecorrenteViewerModal .recurring-series-action-btn.danger:hover {
    background: #fef2f2;
}

#agendamentoRecorrenteViewerModal .recurring-series-empty {
    padding: 32px 16px;
    background: #ffffff;
    border: 1px dashed var(--v2-card-border);
    border-radius: 12px;
}

#agendamentoRecorrenteViewerModal .recurring-series-empty-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #ede9fe;
    color: #6d28d9;
}

#agendamentoRecorrenteViewerModal .recurring-series-empty h6 {
    color: var(--v2-text);
    font-size: 15px;
    font-weight: 500;
}

#agendamentoRecorrenteViewerModal .recurring-series-empty p {
    margin: 0;
    color: var(--v2-muted);
    font-size: 13px;
}

/* ========================================
   DATAS DA RECORRÊNCIA (relatório)
   ======================================== */
#agendamentoRecorrenteReportModal .recurring-report-toolbar {
    gap: 12px;
    align-items: center;
    margin-bottom: 14px;
}

#agendamentoRecorrenteReportModal .recurring-report-summary {
    gap: 6px;
}

#agendamentoRecorrenteReportModal .recurring-report-summary-pill {
    gap: 6px;
    padding: 5px 9px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 6px;
    color: var(--v2-text-2);
    font-size: 12.5px;
    font-weight: 500;
}

#agendamentoRecorrenteReportModal .recurring-report-summary-pill i {
    color: var(--m-accent);
    opacity: 1;
}

#agendamentoRecorrenteReportModal .recurring-report-copy-btn {
    background: var(--m-accent);
    border-color: var(--m-accent);
    color: #ffffff;
    white-space: nowrap;
}

#agendamentoRecorrenteReportModal .recurring-report-copy-btn:hover {
    background: var(--m-accent-dark);
    border-color: var(--m-accent-dark);
}

#agendamentoRecorrenteReportModal .recurring-report-months {
    gap: 12px;
}

#agendamentoRecorrenteReportModal .recurring-report-month-card {
    padding: 14px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 12px;
    box-shadow: var(--v2-card-shadow);
}

#agendamentoRecorrenteReportModal .recurring-report-month-header {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom-color: var(--v2-card-divider);
}

#agendamentoRecorrenteReportModal .recurring-report-month-title {
    color: var(--v2-text);
    font-size: 14.5px;
    font-weight: 500;
    text-transform: none;
}

#agendamentoRecorrenteReportModal .recurring-report-month-title::first-letter {
    text-transform: uppercase;
}

#agendamentoRecorrenteReportModal .recurring-report-month-count {
    padding: 3px 8px;
    background: var(--m-accent-soft);
    border-radius: 6px;
    color: var(--m-accent-text);
    font-size: 12px;
}

#agendamentoRecorrenteReportModal .recurring-report-date-list {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 6px;
}

#agendamentoRecorrenteReportModal .recurring-report-date-item {
    gap: 10px;
    padding: 8px 10px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 8px;
}

#agendamentoRecorrenteReportModal .recurring-report-date-item i {
    color: var(--m-accent);
    font-size: 13px;
    opacity: 1;
}

#agendamentoRecorrenteReportModal .recurring-report-date-copy strong {
    color: var(--v2-text);
    font-size: 13px;
    font-weight: 500;
}

#agendamentoRecorrenteReportModal .recurring-report-date-copy span {
    color: var(--v2-muted);
    font-size: 12.5px;
}

/* ========================================
   COPIAR HORÁRIOS DISPONÍVEIS
   ======================================== */
#availabilityShareModal .availability-share-body {
    padding: 20px;
}

#availabilityShareModal .availability-share-grid {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 1fr);
    gap: 16px;
}

/* Painel da esquerda: só organiza os blocos (sem caixa em volta) */
#availabilityShareModal .availability-share-panel-details {
    gap: 12px;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
}

#availabilityShareModal :is(.availability-share-professional-card, .availability-share-panel-block, .availability-share-preview-panel) {
    padding: 16px;
    background: var(--v2-surface);
    border: 1px solid var(--v2-card-divider);
    border-radius: 12px;
    box-shadow: none;
    backdrop-filter: none;
}

#availabilityShareModal .availability-share-professional-main {
    gap: 12px;
    margin-bottom: 14px;
}

#availabilityShareModal .availability-share-professional-avatar {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    box-shadow: none;
}

#availabilityShareModal .availability-share-professional-avatar .professional-avatar-initials {
    font-size: 16px;
}

#availabilityShareModal .availability-share-professional-copy strong {
    color: var(--v2-text);
    font-size: 15px;
    font-weight: 500;
}

#availabilityShareModal .availability-share-professional-copy small {
    color: var(--v2-muted);
    font-size: 12.5px;
    line-height: 1.4;
}

#availabilityShareModal .availability-share-kicker {
    color: var(--m-accent-text);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

#availabilityShareModal .availability-share-meta-grid {
    gap: 12px;
}

#availabilityShareModal .availability-share-field {
    gap: 0;
    min-width: 0;
}

#availabilityShareModal .availability-share-section-head {
    align-items: center;
    margin-bottom: 12px;
}

#availabilityShareModal .availability-share-section-head h6 {
    margin-top: 2px;
    color: var(--v2-text);
    font-size: 15px;
    font-weight: 500;
}

#availabilityShareModal :is(.availability-share-counter, .availability-share-preview-badge) {
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12.5px;
    font-weight: 500;
    white-space: nowrap;
}

#availabilityShareModal .availability-share-counter {
    background: #dcfce7;
    border: 1px solid #c3eccf;
    color: #15803d;
}

#availabilityShareModal .availability-share-preview-badge {
    background: #eff6ff;
    border: 1px solid #dbe8fb;
    color: #1d4ed8;
}

#availabilityShareModal .availability-share-periods {
    gap: 8px;
}

#availabilityShareModal .availability-share-period-btn {
    gap: 8px;
    min-height: 48px;
    padding: 8px 12px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
    color: var(--v2-text-2);
    box-shadow: none;
    transform: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

#availabilityShareModal .availability-share-period-btn:hover {
    background: #f3f4f6;
    box-shadow: none;
    transform: none;
}

#availabilityShareModal .availability-share-period-btn.active {
    background: #f0fdf4;
    border-color: #86d5a0;
    color: #14532d;
}

#availabilityShareModal .availability-share-period-label {
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
}

#availabilityShareModal .availability-share-period-label i {
    color: var(--v2-muted);
}

#availabilityShareModal .availability-share-period-btn.active .availability-share-period-label i {
    color: #16a34a;
}

#availabilityShareModal .availability-share-period-count {
    min-width: 26px;
    height: 26px;
    border-radius: 6px;
    background: #f1f3f6;
    color: var(--v2-text-2);
    font-size: 12.5px;
}

#availabilityShareModal .availability-share-period-btn.active .availability-share-period-count {
    background: #16a34a;
    color: #ffffff;
}

#availabilityShareModal .availability-share-slots-list {
    gap: 10px;
}

#availabilityShareModal .availability-share-slots-group {
    padding: 12px;
    background: #ffffff;
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
}

#availabilityShareModal .availability-share-slots-head {
    margin-bottom: 10px;
}

#availabilityShareModal .availability-share-slots-head strong {
    color: var(--v2-text);
    font-size: 14px;
}

#availabilityShareModal .availability-share-slots-head span {
    color: var(--v2-muted);
    font-size: 12.5px;
    font-weight: 500;
}

#availabilityShareModal .availability-share-slot-chips {
    gap: 6px;
}

#availabilityShareModal .availability-share-slot-chip {
    min-width: 60px;
    padding: 5px 8px;
    background: #f0fdf4;
    border: 1px solid #c3eccf;
    border-radius: 6px;
    color: #166534;
    font-size: 13px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

#availabilityShareModal .availability-share-empty {
    min-height: 140px;
    padding: 16px;
    background: #ffffff;
    border: 1px dashed var(--v2-card-border);
    border-radius: 10px;
    color: var(--v2-muted);
    font-size: 13px;
}

#availabilityShareModal .availability-share-empty i {
    color: var(--v2-muted);
}

#availabilityShareModal .availability-share-empty strong {
    color: var(--v2-text);
    font-size: 14px;
}

#availabilityShareModal .availability-share-preview {
    min-height: 360px;
    padding: 12px 14px;
    border: 1px solid var(--v2-card-border);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: none;
    font-size: 14px;
    line-height: 1.6;
}

#availabilityShareModal .availability-share-preview-hint {
    margin-top: 8px;
}

#availabilityShareModal .availability-share-footer .btn {
    min-width: 0;
}

/* ========================================
   TABLET (<= 768px): diálogo com altura limitada e rodapé sempre visível
   ======================================== */
@media (max-width: 768px) {
    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal).modal {
        padding: 0 !important;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-dialog {
        width: auto;
        max-width: calc(100vw - 32px);
        margin: 16px auto !important;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-content {
        display: flex;
        flex-direction: column;
        max-height: calc(100vh - 32px);
        max-height: calc(100dvh - 32px);
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.modal-header, .modal-footer) {
        flex-shrink: 0;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-title {
        font-size: 16px;
        word-break: normal;
        overflow-wrap: anywhere;
    }

    /* Rodapé: "Cancelar" compacto + ação principal ocupando o resto */
    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer {
        display: flex;
        flex-wrap: wrap;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn {
        flex: 1 1 0;
        width: auto;
        min-height: 44px;
        white-space: normal;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn[data-bs-dismiss="modal"] {
        flex: 0 0 auto;
        padding-left: 18px;
        padding-right: 18px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.form-control, .form-select),
    :is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-input, .recurring-unified-control) {
        min-height: 44px;
    }

    #agendamentoRecorrenteModal .recurring-form-grid,
    #agendamentoRecorrenteViewerModal .recurring-viewer-toolbar,
    #agendamentoRecorrenteReportModal .recurring-report-toolbar,
    #availabilityShareModal .availability-share-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    #agendamentoRecorrenteViewerModal .recurring-series-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    #availabilityShareModal .availability-share-periods {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #availabilityShareModal .availability-share-preview {
        min-height: 240px;
    }

    /* Bloquear: horário de início e fim lado a lado */
    #bloqueioHorarioForm > .row:nth-of-type(2) > .col-md-6 {
        flex: 0 0 auto;
        width: 50%;
    }
}

/* ========================================
   CELULAR (<= 576px): folha presa na base da tela
   ======================================== */
@media (max-width: 576px) {
    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) {
        --m-pad-x: 16px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-dialog,
    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-dialog.modal-dialog-centered,
    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-dialog.modal-dialog-scrollable {
        display: flex;
        align-items: flex-end;
        width: 100%;
        max-width: none;
        height: 100%;
        min-height: 100%;
        margin: 0 !important;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal).fade .modal-dialog {
        transform: translateY(32px);
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal).show .modal-dialog {
        transform: none;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-content {
        width: 100%;
        max-height: calc(100vh - 8px);
        max-height: calc(100dvh - 8px);
        border: 0;
        border-radius: 16px 16px 0 0;
        box-shadow: 0 -8px 30px rgba(16, 24, 40, 0.16);
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-header {
        padding: 14px var(--m-pad-x);
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-title {
        font-size: 15.5px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-title > i {
        width: 30px;
        height: 30px;
        font-size: 13px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.recurring-modal-subtitle, .availability-share-subtitle) {
        margin-left: 40px;
        font-size: 12.5px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-header .btn-close {
        width: 36px;
        height: 36px;
        margin-top: -3px;
        margin-bottom: -3px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-body {
        padding: 16px var(--m-pad-x);
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer {
        padding: 12px var(--m-pad-x);
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn {
        padding-left: 12px;
        padding-right: 12px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .modal-footer .btn[data-bs-dismiss="modal"] {
        padding-left: 16px;
        padding-right: 16px;
    }

    /* Modais sem rodapé: respiro para a barra do iPhone */
    #agendamentoRecorrenteEntryModal .recurring-entry-body,
    #agendamentoRecorrenteViewerModal .recurring-viewer-body,
    #agendamentoRecorrenteReportModal .recurring-report-body {
        padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    }

    /* Campos com fonte 16px: evita o zoom automático do iPhone ao focar */
    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.form-control, .form-select),
    :is(#agendamentoRecorrenteModal, #availabilityShareModal) :is(.recurring-smart-select-input, .recurring-unified-control) {
        font-size: 16px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) :is(.form-text, small.text-muted, .availability-share-client-hint, .availability-share-preview-hint) {
        font-size: 13px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .row {
        --bs-gutter-x: 12px;
    }

    :is(#novoAgendamentoModal, #editarAgendamentoModal, #agendaDragActionModal, #bloquearHorarioModal, #holidayPauseModal, #conflictReviewModal, #novaComandaConsumoModal, #novoClienteConsumoRapidoModal, #agendamentoRecorrenteEntryModal, #agendamentoRecorrenteModal, #agendamentoRecorrenteViewerModal, #agendamentoRecorrenteReportModal, #availabilityShareModal) .form-switch .form-check-label {
        font-size: 14px;
    }

    /* Três ações: as duas secundárias lado a lado, a principal embaixo */
    :is(#agendaDragActionModal, #availabilityShareModal, #editarAgendamentoModal) .modal-footer {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    :is(#agendaDragActionModal, #availabilityShareModal, #editarAgendamentoModal) .modal-footer .btn:last-child {
        grid-column: 1 / -1;
    }

    #editarAgendamentoModal .modal-footer #excluirAgendamentoBtn {
        margin-right: 0;
    }

    /* Conflitos: textos longos, um botão por linha */
    #conflictReviewModal .modal-footer {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    /* Intervalo selecionado */
    #agendaDragActionModal .modal-body p {
        font-size: 14px;
    }

    /* Nova comanda */
    #novaComandaConsumoModal .consumo-info-card {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 10px;
        padding: 12px;
    }

    #novaComandaConsumoModal .consumo-info-icon {
        width: 28px;
        height: 28px;
        font-size: 13px;
    }

    #novaComandaConsumoModal .consumo-info-text {
        font-size: 13px;
    }

    #novaComandaConsumoModal .btn-group > .btn {
        min-height: 38px;
    }

    #novaComandaConsumoModal #btnNovoClienteConsumoRapido {
        width: 48px;
        min-height: 44px;
    }

    /* Recorrência: formulário */
    #agendamentoRecorrenteModal .recurring-modal-body {
        padding: 12px;
    }

    #agendamentoRecorrenteModal .recurring-form-grid {
        gap: 12px;
    }

    #agendamentoRecorrenteModal .recurring-form-section {
        padding: 14px;
        border-radius: 12px;
    }

    #agendamentoRecorrenteModal .recurring-weekdays {
        gap: 4px;
    }

    #agendamentoRecorrenteModal .recurring-period-shortcuts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #agendamentoRecorrenteModal :is(.recurring-weekday-chip, .recurring-period-chip) {
        min-height: 44px;
    }

    #agendamentoRecorrenteModal .recurring-weekday-chip {
        padding: 6px 0;
        font-size: 12.5px;
    }

    /* Recorrência: escolha inicial */
    #agendamentoRecorrenteEntryModal .recurring-entry-body {
        padding: 16px;
    }

    /* Recorrências agendadas */
    #agendamentoRecorrenteViewerModal .recurring-viewer-body,
    #agendamentoRecorrenteReportModal .recurring-report-body {
        padding: 12px;
    }

    #agendamentoRecorrenteViewerModal .recurring-viewer-toolbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    #agendamentoRecorrenteViewerModal .recurring-viewer-search {
        grid-column: 1 / -1;
    }

    #agendamentoRecorrenteViewerModal .recurring-series-card {
        padding: 12px;
    }

    #agendamentoRecorrenteViewerModal .recurring-series-meta-item {
        padding: 7px 8px;
    }

    #agendamentoRecorrenteViewerModal .recurring-series-action-group {
        width: 100%;
        gap: 8px;
    }

    #agendamentoRecorrenteViewerModal .recurring-series-action-btn {
        flex: 1 1 auto;
        min-height: 42px;
    }

    /* Datas da recorrência: duas colunas também no celular */
    #agendamentoRecorrenteReportModal .recurring-report-copy-btn {
        width: 100%;
        min-height: 44px;
    }

    #agendamentoRecorrenteReportModal .recurring-report-month-card {
        padding: 12px;
    }

    #agendamentoRecorrenteReportModal .recurring-report-date-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #agendamentoRecorrenteReportModal .recurring-report-date-item {
        gap: 8px;
        padding: 8px;
    }

    #agendamentoRecorrenteReportModal .recurring-report-date-item i {
        display: none;
    }

    /* Horários disponíveis */
    #availabilityShareModal .availability-share-body {
        padding: 12px;
    }

    #availabilityShareModal .availability-share-grid {
        gap: 12px;
    }

    #availabilityShareModal :is(.availability-share-professional-card, .availability-share-panel-block, .availability-share-preview-panel) {
        padding: 14px;
    }

    #availabilityShareModal .availability-share-periods {
        gap: 6px;
    }

    #availabilityShareModal .availability-share-period-btn {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        min-height: 64px;
        padding: 8px 10px;
    }

    #availabilityShareModal .availability-share-period-label {
        font-size: 13.5px;
    }

    #availabilityShareModal .availability-share-preview {
        min-height: 220px;
    }
}
