/* Tema noturno global — aplicado em todas as telas */
html[data-theme="dark"] {
    color-scheme: dark;
    --cor-fundo: #151a2a;
    --cor-fundo-pagina: #0e1220;
    --cor-texto: #eef2ff;
    --cor-texto-suave: #aab3c8;
    --cor-borda: #2b3449;
    --cor-primaria-clara: #1c2a55;
    --cor-sucesso-clara: #123728;
    --cor-erro-clara: #3a1e24;
    --cor-aviso-clara: #3b2d12;
    --sombra: 0 4px 18px rgba(0,0,0,.24);
    --sombra-hover: 0 8px 26px rgba(0,0,0,.34);
}

html[data-theme="dark"] body,
html[data-theme="dark"] .container,
html[data-theme="dark"] main,
html[data-theme="dark"] .sa-main {
    background-color: var(--cor-fundo-pagina) !important;
    color: var(--cor-texto) !important;
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .cardx,
html[data-theme="dark"] .sa-calendar-card,
html[data-theme="dark"] .sa-day-card,
html[data-theme="dark"] .sa-toolbar,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .function-picker,
html[data-theme="dark"] .teacher-assignment,
html[data-theme="dark"] .segment-checks,
html[data-theme="dark"] .reception-note,
html[data-theme="dark"] .available-times,
html[data-theme="dark"] .professional-helper {
    background: var(--cor-fundo) !important;
    color: var(--cor-texto) !important;
    border-color: var(--cor-borda) !important;
    box-shadow: var(--sombra);
}

html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] input,
html[data-theme="dark"] select {
    background-color: #111625 !important;
    color: var(--cor-texto) !important;
    border-color: var(--cor-borda) !important;
}

html[data-theme="dark"] .form-control::placeholder { color: #7f8aa4 !important; }
html[data-theme="dark"] .form-label,
html[data-theme="dark"] .muted,
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] small,
html[data-theme="dark"] p { color: var(--cor-texto-suave) !important; }
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] strong,
html[data-theme="dark"] label,
html[data-theme="dark"] td { color: var(--cor-texto); }

html[data-theme="dark"] .table {
    --bs-table-bg: var(--cor-fundo);
    --bs-table-color: var(--cor-texto);
    --bs-table-border-color: var(--cor-borda);
    background: var(--cor-fundo) !important;
    color: var(--cor-texto) !important;
}
html[data-theme="dark"] .table th,
html[data-theme="dark"] .table td,
html[data-theme="dark"] .table tr:hover td { background: transparent !important; color: var(--cor-texto) !important; border-color: var(--cor-borda) !important; }
html[data-theme="dark"] .table th { background: #111625 !important; color: var(--cor-texto-suave) !important; }
html[data-theme="dark"] .list-group-item-action:hover { background: #1b2745 !important; }
html[data-theme="dark"] hr { border-color: var(--cor-borda) !important; }
html[data-theme="dark"] .btn-outline-secondary,
html[data-theme="dark"] .btn-secondary { background: #151b2b !important; color: #d7dced !important; border-color: var(--cor-borda) !important; }
html[data-theme="dark"] .btn-outline-secondary:hover { background: #202941 !important; }
html[data-theme="dark"] .btn-close { filter: invert(1) grayscale(100%); }
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer { border-color: var(--cor-borda) !important; }
html[data-theme="dark"] .alert-info { background: #17284f !important; color: #dbe5ff !important; }
html[data-theme="dark"] .alert-warning { background: #3a2c10 !important; color: #ffe6a8 !important; }
html[data-theme="dark"] .alert-danger { background: #3b1e24 !important; color: #ffc8ce !important; }
html[data-theme="dark"] .alert-success { background: #123728 !important; color: #baf4d7 !important; }

/* Alguns componentes usam cores inline/legadas */
html[data-theme="dark"] .sa-sidebar { background: #0a0e19 !important; border-color: #20283a !important; }
html[data-theme="dark"] .sa-topbar { background: #0e1220 !important; border-color: var(--cor-borda) !important; }
html[data-theme="dark"] .sa-day {
    background: #151a2a !important;
    color: var(--cor-texto) !important;
    border-color: #2b3449 !important;
}
html[data-theme="dark"] .sa-day:hover {
    background: #1b2745 !important;
    border-color: #4d6fff !important;
}
html[data-theme="dark"] .sa-day.selected {
    background: #1b2f67 !important;
    border-color: #5c78ff !important;
}
html[data-theme="dark"] .sa-day.today strong,
html[data-theme="dark"] .sa-day > strong { color: #eef2ff !important; }
html[data-theme="dark"] .sa-day.muted {
    background: #101522 !important;
    color: #7f8aa4 !important;
    opacity: 1;
}
html[data-theme="dark"] .sa-event {
    background: #20283a !important;
    color: #e7ebf7 !important;
    border-left-color: var(--event-color) !important;
}
html[data-theme="dark"] .sa-day small { color: #aab3c8 !important; }
html[data-theme="dark"] .sa-day-card,
html[data-theme="dark"] .sa-calendar-card { color: var(--cor-texto) !important; }
html[data-theme="dark"] .topo-marca { background: #0a0e19 !important; }

.theme-toggle {
    position: fixed;
    top: 16px;
    right: 18px;
    z-index: 1100;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    padding: 8px 12px;
    background: rgba(22,27,51,.92);
    color: #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    font: 600 13px/1.1 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    cursor: pointer;
    backdrop-filter: blur(10px);
}
.theme-toggle:hover { transform: translateY(-1px); }
.theme-toggle .theme-icon { font-size: 15px; }
html[data-theme="dark"] .theme-toggle { background: #f4f6fb; color: #151a2a; border-color: #d8deeb; }
@media (max-width: 600px) { .theme-toggle { top: 10px; right: 10px; padding: 7px 10px; } .theme-toggle .theme-label { display:none; } }

/* ============================================================
   Ajustes globais do modo noturno — componentes e modais
   ============================================================ */
html[data-theme="dark"] .sa-modal,
html[data-theme="dark"] .screen-card,
html[data-theme="dark"] .screen-link,
html[data-theme="dark"] .metric,
html[data-theme="dark"] .rule,
html[data-theme="dark"] .picker-box,
html[data-theme="dark"] .sector-card,
html[data-theme="dark"] .sa-user-chip,
html[data-theme="dark"] .professional-filter,
html[data-theme="dark"] .function-chip,
html[data-theme="dark"] .profile-pill,
html[data-theme="dark"] .badge-soft,
html[data-theme="dark"] .senha-pill,
html[data-theme="dark"] .reception-note {
    background: #151a2a !important;
    color: var(--cor-texto) !important;
    border-color: var(--cor-borda) !important;
}

html[data-theme="dark"] .picker-box label:hover,
html[data-theme="dark"] .screen-link:hover {
    background: #1b2745 !important;
}

html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .modal-body,
html[data-theme="dark"] .modal-dialog,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer {
    color: var(--cor-texto) !important;
}

html[data-theme="dark"] .card-header,
html[data-theme="dark"] .card-body,
html[data-theme="dark"] .card-footer,
html[data-theme="dark"] .accordion-item,
html[data-theme="dark"] .accordion-button,
html[data-theme="dark"] .offcanvas,
html[data-theme="dark"] .toast,
html[data-theme="dark"] .popover {
    background: var(--cor-fundo) !important;
    color: var(--cor-texto) !important;
    border-color: var(--cor-borda) !important;
}

html[data-theme="dark"] .accordion-button:not(.collapsed) {
    background: #1b2745 !important;
    color: #eef2ff !important;
}

html[data-theme="dark"] .accordion-button::after {
    filter: invert(1) grayscale(1);
}

html[data-theme="dark"] .input-group-text {
    background: #151b2b !important;
    color: var(--cor-texto-suave) !important;
    border-color: var(--cor-borda) !important;
}

html[data-theme="dark"] .page-link {
    background: #151a2a !important;
    color: #cbd5ff !important;
    border-color: var(--cor-borda) !important;
}

html[data-theme="dark"] .page-item.active .page-link {
    background: #2f5dff !important;
    color: #fff !important;
    border-color: #2f5dff !important;
}

html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-light,
html[data-theme="dark"] .bg-body,
html[data-theme="dark"] .bg-body-tertiary {
    background-color: #151a2a !important;
    color: var(--cor-texto) !important;
}

html[data-theme="dark"] .text-dark,
html[data-theme="dark"] .text-body,
html[data-theme="dark"] .text-black {
    color: var(--cor-texto) !important;
}

html[data-theme="dark"] .border,
html[data-theme="dark"] .border-top,
html[data-theme="dark"] .border-end,
html[data-theme="dark"] .border-bottom,
html[data-theme="dark"] .border-start {
    border-color: var(--cor-borda) !important;
}

/* Calendário: nenhuma informação fica branca sobre fundo claro. */
html[data-theme="dark"] .sa-calendar-card,
html[data-theme="dark"] .sa-month-grid,
html[data-theme="dark"] .sa-weekdays,
html[data-theme="dark"] .sa-day {
    color: #eef2ff !important;
}

html[data-theme="dark"] .sa-day > strong,
html[data-theme="dark"] .sa-day.today > strong,
html[data-theme="dark"] .sa-day.selected > strong {
    color: #f5f7ff !important;
}

html[data-theme="dark"] .sa-day.muted > strong {
    color: #7f8aa4 !important;
}

html[data-theme="dark"] .sa-day small,
html[data-theme="dark"] .sa-weekdays span,
html[data-theme="dark"] .legend span {
    color: #aab3c8 !important;
}

html[data-theme="dark"] .sa-event {
    background: #20283a !important;
    color: #f0f3ff !important;
    border-left-color: var(--event-color) !important;
}

html[data-theme="dark"] .sa-cal-nav a {
    background: #151b2b !important;
    color: #dbe3ff !important;
    border-color: var(--cor-borda) !important;
}

html[data-theme="dark"] .sa-cal-nav a:first-child {
    background: #1b2f67 !important;
    color: #dce5ff !important;
    border-color: #3d5fd8 !important;
}

/* Seleção de data sem recarregamento visual da página. */
.sa-calendar-card {
    position: relative;
    transition: opacity .16s ease, transform .16s ease;
}
.sa-calendar-card.is-loading {
    opacity: .58;
    pointer-events: none;
}
.sa-calendar-card.is-loading::after {
    content: 'Carregando…';
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.46);
    color: #253fbb;
    font-weight: 700;
    border-radius: inherit;
    backdrop-filter: blur(1px);
}
html[data-theme="dark"] .sa-calendar-card.is-loading::after {
    background: rgba(14,18,32,.62);
    color: #dbe3ff;
}

/* Notificação em tempo real de check-in para o setor */
#checkinNotificationHost { position: fixed; inset: 0; z-index: 1090; pointer-events: none; }
.checkin-notification-stack { position: fixed; top: 22px; right: 22px; width: min(420px, calc(100vw - 32px)); display: grid; gap: 12px; }
.checkin-notification { pointer-events: auto; display: flex; align-items: flex-start; gap: 12px; padding: 15px 16px; border: 1px solid #b8e4c8; border-left: 5px solid #12B76A; border-radius: 16px; background: #fff; color: #172033; box-shadow: 0 18px 45px rgba(15,23,42,.20); transform: translateX(35px); opacity: 0; transition: .22s ease; }
.checkin-notification.show { transform: translateX(0); opacity: 1; }
.checkin-notification-icon { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 50%; background: #e8f8ef; color: #08783f; font-weight: 800; }
.checkin-notification-content { display: grid; gap: 2px; min-width: 0; flex: 1; }
.checkin-notification-content strong { font-size: 15px; }
.checkin-notification-content span { font-size: 13px; }
.checkin-notification-content small { color: #69708A; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.checkin-notification-close { border: 0; background: transparent; color: #69708A; font-size: 22px; line-height: 1; padding: 0 2px; cursor: pointer; }
.checkin-sound-toggle { pointer-events: auto; position: fixed; right: 22px; bottom: 22px; border: 1px solid #cbd4e5; background: #fff; color: #25324d; border-radius: 999px; padding: 9px 14px; font-size: 12px; font-weight: 700; box-shadow: 0 8px 25px rgba(15,23,42,.12); cursor: pointer; }
.checkin-sound-toggle.is-active { color: #08783f; border-color: #a8dfbe; }
html[data-theme="dark"] .checkin-notification { background: #151b2b; color: #eef2ff; border-color: #294b3a; box-shadow: 0 18px 45px rgba(0,0,0,.45); }
html[data-theme="dark"] .checkin-notification-icon { background: #183628; color: #65d79a; }
html[data-theme="dark"] .checkin-notification-content small { color: #aab3c8; }
html[data-theme="dark"] .checkin-notification-close { color: #aab3c8; }
html[data-theme="dark"] .checkin-sound-toggle { background: #151b2b; color: #dbe3ff; border-color: #36415b; }
@media (max-width: 600px) { .checkin-notification-stack { top: 12px; right: 12px; width: calc(100vw - 24px); } .checkin-sound-toggle { right: 12px; bottom: 12px; } }


/* ============================================================
   AGENDAMENTO — auditoria global de tema v2
   Corrige componentes com cores fixas deixadas pelos CRUDs.
   ============================================================ */
html[data-theme="dark"] body,
html[data-theme="dark"] body.sa-app {
    background: #0e1220 !important;
    color: #eef2ff !important;
}
html[data-theme="dark"] .container,
html[data-theme="dark"] .container-fluid,
html[data-theme="dark"] .wrap,
html[data-theme="dark"] .page-wrap,
html[data-theme="dark"] .availability-wrap,
html[data-theme="dark"] .sa-admin-wrap {
    color: #eef2ff !important;
}
html[data-theme="dark"] .sa-admin-card,
html[data-theme="dark"] .sa-admin-stat,
html[data-theme="dark"] .sa-quick-actions a,
html[data-theme="dark"] .sa-content-counts div,
html[data-theme="dark"] .sa-toggle,
html[data-theme="dark"] .sa-home-module,
html[data-theme="dark"] .sa-media-picker__preview,
html[data-theme="dark"] .page-card,
html[data-theme="dark"] .cardx,
html[data-theme="dark"] .calendar-month-card,
html[data-theme="dark"] .calendar-month-head,
html[data-theme="dark"] .calendar-event-row,
html[data-theme="dark"] .import-help,
html[data-theme="dark"] .day-card,
html[data-theme="dark"] .rule,
html[data-theme="dark"] .rule-card,
html[data-theme="dark"] .calendar-box,
html[data-theme="dark"] .segment-box,
html[data-theme="dark"] .picker,
html[data-theme="dark"] .picker-box,
html[data-theme="dark"] .teacher-row,
html[data-theme="dark"] .school-event-row,
html[data-theme="dark"] .screen-card,
html[data-theme="dark"] .screen-link,
html[data-theme="dark"] .sa-kpi,
html[data-theme="dark"] .sa-panel,
html[data-theme="dark"] .sa-card,
html[data-theme="dark"] .sa-management-frame-wrap {
    background: #151a2a !important;
    color: #eef2ff !important;
    border-color: #2f3a52 !important;
}
html[data-theme="dark"] .sa-admin-card h1,
html[data-theme="dark"] .sa-admin-card h2,
html[data-theme="dark"] .sa-admin-stat strong,
html[data-theme="dark"] .sa-home-module strong,
html[data-theme="dark"] .sa-setting-field span,
html[data-theme="dark"] .calendar-month-head strong,
html[data-theme="dark"] .calendar-event-row strong {
    color: #f4f7ff !important;
}
html[data-theme="dark"] .sa-admin-stat span,
html[data-theme="dark"] .sa-admin-stat small,
html[data-theme="dark"] .sa-content-counts span,
html[data-theme="dark"] .calendar-month-head small,
html[data-theme="dark"] .calendar-event-row small,
html[data-theme="dark"] .muted,
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .stat {
    color: #aeb8cc !important;
}
html[data-theme="dark"] .sa-quick-actions a,
html[data-theme="dark"] .sa-home-module,
html[data-theme="dark"] .sa-home-module .dashicons {
    color: #dbe3f7 !important;
}
html[data-theme="dark"] .calendar-month-head { background: #111625 !important; }
html[data-theme="dark"] .calendar-event-row { border-bottom-color: #2f3a52 !important; }
html[data-theme="dark"] .picker label:hover,
html[data-theme="dark"] .calendar-month-head:hover,
html[data-theme="dark"] .sa-quick-actions a:hover { background: #1b2745 !important; }
html[data-theme="dark"] .calendar-month-card details,
html[data-theme="dark"] details[open] > summary { color: #eef2ff !important; }
html[data-theme="dark"] .table,
html[data-theme="dark"] .table-responsive,
html[data-theme="dark"] .table thead,
html[data-theme="dark"] .table tbody,
html[data-theme="dark"] .table tr,
html[data-theme="dark"] .table th,
html[data-theme="dark"] .table td {
    background: #151a2a !important;
    color: #eef2ff !important;
    border-color: #2f3a52 !important;
}
html[data-theme="dark"] .table th { background: #111625 !important; color: #cbd5e1 !important; }
html[data-theme="dark"] .table tr:hover td { background: #1b2745 !important; }
html[data-theme="dark"] .modal,
html[data-theme="dark"] .modal-dialog,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-body,
html[data-theme="dark"] .modal-footer {
    background: #151a2a !important;
    color: #eef2ff !important;
    border-color: #2f3a52 !important;
}
html[data-theme="dark"] .modal-backdrop.show { opacity: .72 !important; }
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .dropdown-item { background: #151a2a !important; color: #eef2ff !important; border-color: #2f3a52 !important; }
html[data-theme="dark"] .dropdown-item:hover { background: #1b2745 !important; color: #fff !important; }
html[data-theme="dark"] .btn-light,
html[data-theme="dark"] .btn-outline-light { background: #151a2a !important; color: #eef2ff !important; border-color: #52617e !important; }
html[data-theme="dark"] .btn-light:hover,
html[data-theme="dark"] .btn-outline-light:hover { background: #202941 !important; }
html[data-theme="dark"] code,
html[data-theme="dark"] pre { color: #e5ebff !important; background: #111625 !important; }
html[data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1) brightness(1.15); }

/* Footer institucional permanece azul-marinho nos dois temas. */
.sa-footer { margin-top: 40px; }

/* =====================================================================
   AGENDAMENTO — EXPERIÊNCIA MOBILE v69
   Reorganiza navegação, filtros, calendários, cards, tabelas e modais
   em telas estreitas sem alterar a lógica dos CRUDs.
   ===================================================================== */
.sa-mobile-menu-toggle,
.sa-mobile-menu-backdrop { display:none; }

@media (max-width: 800px) {
    body.sa-app { overflow-x:hidden; }

    .sa-mobile-menu-toggle {
        display:flex;
        position:fixed;
        top:10px;
        left:12px;
        z-index:1200;
        width:42px;
        height:42px;
        border:1px solid rgba(255,255,255,.12);
        border-radius:12px;
        align-items:center;
        justify-content:center;
        background:#151a2a;
        color:#fff;
        box-shadow:0 8px 24px rgba(0,0,0,.18);
        font-size:21px;
        line-height:1;
    }

    html[data-theme="light"] .sa-mobile-menu-toggle {
        background:#081769;
        color:#fff;
    }

    .sa-mobile-menu-toggle[aria-expanded="true"] { background:#2f5dff; }

    .sa-mobile-menu-backdrop {
        position:fixed;
        inset:0;
        z-index:1140;
        background:rgba(3,7,18,.58);
        backdrop-filter:blur(2px);
    }
    .sa-mobile-menu-backdrop.is-open { display:block; }

    .sa-sidebar {
        position:fixed !important;
        left:0 !important;
        top:0 !important;
        bottom:0 !important;
        width:min(300px,86vw) !important;
        height:100dvh !important;
        overflow-y:auto !important;
        padding:18px 14px 28px !important;
        border-right:1px solid var(--border) !important;
        border-bottom:0 !important;
        transform:translateX(-105%) !important;
        transition:transform .2s ease !important;
        z-index:1150 !important;
        box-shadow:18px 0 42px rgba(0,0,0,.22);
    }
    .sa-sidebar.is-open { transform:translateX(0) !important; }
    .sa-sidebar .sa-brand { padding-bottom:20px; }
    .sa-sidebar .sa-side-label { display:block !important; }
    .sa-sidebar a { display:flex !important; width:100%; margin:3px 0; }

    .sa-main {
        margin-left:0 !important;
        width:100%;
        max-width:none;
        padding:72px 14px 34px !important;
    }

    .sa-topbar { margin-bottom:16px; }
    .sa-topbar h1 { font-size:clamp(30px,9vw,40px) !important; line-height:1.05; letter-spacing:-.045em; }
    .sa-topbar p { font-size:13px; }
    .sa-user-chip { margin-top:10px !important; max-width:100%; }

    .sa-toolbar,
    .sa-calendar-card,
    .sa-day-card { border-radius:18px !important; padding:15px !important; margin-bottom:14px !important; }

    .sa-toolbar { overflow:hidden; }
    .sa-filter-grid { grid-template-columns:1fr !important; gap:10px !important; }
    .sa-filter-grid .form-label { font-size:11px; margin-bottom:5px; }
    .sa-filter-grid .form-control,
    .sa-filter-grid .form-select { min-height:44px; }
    .filter-actions { width:100%; display:grid !important; grid-template-columns:1fr 1fr; gap:8px; }
    .filter-actions .btn { width:100%; }

    .sa-calendar-head,
    .section-head { align-items:stretch !important; flex-direction:column !important; gap:12px !important; }
    .sa-calendar-head h2,
    .section-head h2 { font-size:clamp(27px,7.8vw,34px) !important; line-height:1.08; letter-spacing:-.04em; }

    .sa-cal-nav { width:100%; display:grid !important; grid-template-columns:1.4fr 1fr 1fr; gap:7px; }
    .sa-cal-nav a { text-align:center; padding:10px 8px; }

    .sa-weekdays { gap:3px !important; margin-top:14px !important; }
    .sa-weekdays span { font-size:9px !important; padding-bottom:2px !important; }
    .sa-month-grid { gap:3px !important; }
    .sa-day { min-height:74px !important; padding:6px 5px !important; border-radius:10px !important; overflow:hidden !important; }
    .sa-day.selected { padding:5px 4px !important; }
    .sa-day > strong { font-size:12px !important; }
    .sa-day small { font-size:9px !important; }
    .sa-event { font-size:8px !important; line-height:1.15 !important; padding:3px 4px !important; margin-top:4px !important; max-width:100%; }

    .section-head > div:last-child {
        width:100% !important;
    }
    .section-head > div:last-child.d-flex {
        display:grid !important;
        grid-template-columns:1fr !important;
        width:100% !important;
    }
    .section-head > div:last-child .btn,
    .section-head > div:last-child a.btn { width:100% !important; min-height:46px; }

    .legend { gap:8px 12px !important; margin:12px 0 !important; }
    .legend span { font-size:10px !important; }

    .table-responsive {
        margin:0 -2px;
        border-radius:12px;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }
    .table-responsive .table { min-width:760px; }

    .action-row { justify-content:flex-start !important; }
    .action-row .btn { min-height:38px; }

    .sa-tour-date-tools,
    .sa-tour-date-form { width:100% !important; }
    .sa-tour-date-form { display:grid !important; grid-template-columns:1fr 1fr !important; gap:8px !important; }
    .sa-tour-date-form .form-control { grid-column:1/-1; width:100%; min-height:42px; }
    .sa-tour-date-form .btn { width:100%; min-height:40px; }

    .sa-tour-item { grid-template-columns:1fr !important; gap:9px !important; padding:14px !important; }
    .sa-tour-time strong { font-size:22px; }
    .sa-tour-actions { display:grid !important; grid-template-columns:1fr 1fr; gap:7px !important; width:100%; }
    .sa-tour-actions .btn { width:100%; min-height:42px; }

    .sa-modal-backdrop { padding:10px !important; align-items:end !important; }
    .sa-modal { width:100% !important; max-height:92dvh !important; border-radius:20px 20px 12px 12px !important; padding:16px !important; }
    .form-grid { grid-template-columns:1fr !important; gap:12px !important; }
    .modal-actions { display:grid !important; grid-template-columns:1fr 1fr; }
    .modal-actions .btn { width:100%; min-height:44px; }

    .sa-footer { margin-top:28px !important; }
    .sa-footer-inner { padding:34px 0 18px !important; }
    .sa-footer-logo-wrap { width:150px !important; flex-basis:150px !important; }
    .sa-footer-brand { gap:14px !important; }
    .sa-footer-brand-copy p { font-size:13px !important; }
    .sa-footer-bottom { margin-top:24px !important; }
}

@media (max-width: 420px) {
    .sa-main { padding-left:10px !important; padding-right:10px !important; }
    .sa-toolbar,
    .sa-calendar-card,
    .sa-day-card { padding:12px !important; }
    .sa-day { min-height:68px !important; }
    .sa-event { font-size:7.5px !important; }
    .sa-cal-nav { grid-template-columns:1fr 1fr 1fr; }
    .sa-tour-date-form { grid-template-columns:1fr !important; }
    .sa-tour-date-form .form-control { grid-column:auto; }
    .filter-actions { grid-template-columns:1fr !important; }
}

/* =====================================================================
   Mobile UX — filtros recolhíveis nas agendas (v70)
   ===================================================================== */
.sa-filter-toolbar{padding:0 !important; overflow:hidden;}
.sa-filter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;color:var(--text);padding:14px 16px;cursor:pointer;font:inherit;font-weight:800;text-align:left;}
.sa-filter-toggle-main,.sa-filter-toggle-meta{display:flex;align-items:center;gap:9px;}
.sa-filter-icon{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--blue-light);color:var(--blue);font-size:14px;line-height:1;transform:rotate(90deg);}
.sa-filter-toggle-meta{gap:10px;color:var(--muted);}
.sa-filter-count{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;background:rgba(47,93,255,.12);color:var(--blue);font-size:10px;font-weight:800;white-space:nowrap;}
.sa-filter-chevron{font-size:20px;transition:transform .18s ease;color:var(--muted);}
.sa-filter-toolbar.is-open .sa-filter-chevron{transform:rotate(180deg);}
.sa-filter-panel{padding:0 16px 16px;}
html[data-theme="dark"] .sa-filter-toggle{color:#eef2ff;}
html[data-theme="dark"] .sa-filter-icon{background:rgba(47,93,255,.18);}
@media(min-width:801px){
  .sa-filter-toggle{cursor:default;padding:0 0 12px;}
  .sa-filter-toggle-main{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
  .sa-filter-icon{width:24px;height:24px;font-size:11px;}
  .sa-filter-count{background:var(--blue-light);}
  .sa-filter-panel{padding:0;}
}
@media(max-width:800px){
  .sa-filter-toolbar{margin-bottom:12px !important;border-radius:16px !important;}
  .sa-filter-toolbar .sa-filter-panel[hidden]{display:none !important;}
  .sa-filter-toolbar .sa-filter-panel:not([hidden]){animation:saFilterReveal .18s ease-out;}
  .sa-filter-toolbar .sa-filter-grid{padding-top:2px;}
  .sa-filter-toolbar .filter-actions{margin-top:2px;}
}
@keyframes saFilterReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* =====================================================================
   Mobile agenda — filtros recolhíveis (v70)
   ===================================================================== */
.sa-filter-toolbar{padding:0 !important;overflow:hidden;}
.sa-filter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:12px 15px;border:0;background:transparent;color:var(--text);cursor:pointer;font:inherit;font-weight:800;text-align:left;}
.sa-filter-toggle-main,.sa-filter-toggle-meta{display:flex;align-items:center;gap:9px;}
.sa-filter-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--blue-light);color:var(--blue);font-size:18px;line-height:1;font-weight:900;}
.sa-filter-toggle-meta{gap:9px;color:var(--muted);}
.sa-filter-count{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border-radius:999px;background:rgba(47,93,255,.14);color:var(--blue);font-size:10px;line-height:1;font-weight:800;white-space:nowrap;}
.sa-filter-chevron{font-size:20px;line-height:1;transition:transform .18s ease;color:var(--muted);}
.sa-filter-toolbar.is-open .sa-filter-chevron{transform:rotate(180deg);}
.sa-filter-panel{padding:0 15px 15px;}
html[data-theme="dark"] .sa-filter-toggle{color:#f1f4ff;}
html[data-theme="dark"] .sa-filter-icon{background:rgba(47,93,255,.18);}
@media(min-width:801px){
  .sa-filter-toolbar{padding:16px !important;}
  .sa-filter-toggle{padding:0 0 12px;min-height:0;cursor:default;}
  .sa-filter-toggle-main{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
  .sa-filter-icon{width:24px;height:24px;font-size:15px;}
  .sa-filter-panel{padding:0;}
}
@media(max-width:800px){
  .sa-filter-toolbar{margin-bottom:12px !important;border-radius:16px !important;}
  .sa-filter-toolbar .sa-filter-panel[hidden]{display:none !important;}
  .sa-filter-toolbar .sa-filter-panel:not([hidden]){animation:saFilterReveal .18s ease-out;}
  .sa-filter-toolbar .sa-filter-grid{padding-top:2px;}
  .sa-filter-toolbar .filter-actions{margin-top:2px;}
}
@keyframes saFilterReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* v73 — calendário escolar visível e independente do gerenciamento */
.sa-school-month-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;width:100%;min-height:200px}
.sa-school-calendar-card .sa-weekdays,.sa-school-calendar-card .sa-month-grid{visibility:visible!important}
.sa-school-calendar-card #schoolCalendarGrid:empty::before{content:'Carregando calendário…';display:block;grid-column:1/-1;padding:24px;text-align:center;color:var(--cor-texto-suave,#aab3c8)}
@media(max-width:800px){.sa-school-calendar-card .sa-weekdays span{font-size:8px!important}.sa-school-calendar-card .sa-day{min-height:68px!important}.sa-school-calendar-card .sa-event{font-size:7.5px!important}}
