/* Adaptación móvil. Se carga después de site.css para conservar el diseño de escritorio. */
.mobile-menu-toggle { display: none; }
@media (max-width: 900px) {
    .shell { display: block; width: 100%; }
    .sidebar { width: 100%; height: auto; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; padding: 12px 16px; }
    .sidebar .brand { width: 160px; max-width: 100%; height: 58px; margin: 0; object-fit: contain; }
    .mobile-menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 9px 13px; border: 1px solid var(--yellow); border-radius: 8px; background: var(--yellow); color: var(--charcoal); font-weight: 700; }
    .mobile-menu-toggle:focus-visible { outline: 3px solid white; outline-offset: 3px; }
    .sidebar nav { display: none; grid-column: 1/-1; width: 100%; margin-top: 12px; }
    .sidebar.menu-open nav { display: block; }
    .sidebar nav a { display: block; width: 100%; padding: 12px 14px; min-height: 44px; white-space: normal; color: white; border-radius: 6px; }
    .sidebar nav a.active { color: var(--yellow); background: #3d3d3d; }
    .side-bottom { display: none; }
    .main { width: 100%; min-width: 0; }
    .top { flex-wrap: wrap; gap: 12px; padding: 14px 16px; }
    .top > div { min-width: 0; }
    .session { flex-wrap: wrap; gap: 10px 16px; overflow-wrap: anywhere; }
    .session form { margin: 0; }
    .content, .content:has(.agenda-toolbar), .content:has(.reports-page) { width: 100%; max-width: 100%; padding: 18px 14px; }
    .page-head { flex-direction: column; align-items: stretch; gap: 12px; }
    .page-head h1 { font-size: 25px; }
    .page-head p { margin-bottom: 8px; }
    .agenda-head-actions { margin: 0; }
    .agenda-head-actions > button { flex: 1 1 150px; min-height: 44px; white-space: normal; }
    .agenda-toolbar { gap: 14px; padding: 16px; }
    .agenda-toolbar > label { flex: 1 1 140px; min-width: 0; }
    .agenda-toolbar > label input, .agenda-toolbar > label select { width: 100%; min-width: 0; }
    .agenda-toolbar .site-picker { width: 100%; min-width: 0; flex-wrap: wrap; gap: 10px 16px; }
    .agenda-toolbar > .primary { width: 100%; min-height: 44px; }
    .agenda-navigation { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .agenda-navigation strong { grid-column: 1/-1; grid-row: 1; }
    .agenda-navigation > a, .agenda-navigation > span { grid-row: 2; }
    .agenda-navigation .outline { text-align: center; padding: 10px 8px; }
    .agenda-sites { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 14px; width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: 12px; }
    .agenda-sites .agenda-site { flex: 0 0 min(88vw, 420px); width: min(88vw, 420px); min-width: 280px; max-width: none; padding: 12px; }
    .agenda-sites > .agenda-site:only-child { flex-basis: 100%; width: 100%; min-width: 0; }
    .agenda-site-head { flex-wrap: wrap; }
    .agenda-site-actions { justify-content: flex-start; }
    .agenda-sites .timeline-wrap { width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
    .agenda-sites .timeline { min-width: 100%; width: max-content; grid-template-columns: 58px repeat(var(--instructors),minmax(165px,1fr)); }
    .agenda-sites .timeline-heading { padding: 10px 8px; font-size: 12px; }
    .agenda-sites .timeline-heading.hour-heading { min-width: 58px; }
    .agenda-sites .booking-card, .agenda-sites .reserve-slot, .agenda-sites .activity-card { font-size: 12px; padding: 8px; }
    .agenda-sites .booking-card small { font-size: 11px; }
    .student-panels, .parameters-grid, .settings-grid { grid-template-columns: minmax(0,1fr); }
    .student-panel, .card, .filters, .reports-card { min-width: 0; max-width: 100%; }
    .student-week-scroll, .student-account-table, .student-table-wrap, .income-table-wrap, .admin-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
    .student-day-grid { display: table; white-space: normal; }
    .student-day-grid thead th:first-child { width: 110px; }
    .student-day-grid th, .student-day-grid td { padding: 10px; }
    dialog.edit-dialog, dialog.booking-detail, dialog.agenda-action-dialog, #habilitar-agenda.agenda-action-dialog, #reserva-directa.booking-dialog { width: calc(100% - 24px); max-width: calc(100% - 24px); max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; }
    #reserva-directa.booking-dialog { padding: 18px; }
    #reserva-directa .booking-form { grid-template-columns: minmax(0,1fr); gap: 18px; }
    #reserva-directa .booking-account { min-width: 0; padding: 12px; }
    .booking-detail-summary, .booking-edit-grid, .agenda-payment-form, .agenda-action-dialog .schedule-form, .agenda-action-form, #habilitar-agenda .schedule-form { grid-template-columns: minmax(0,1fr); }
    .agenda-dialog-head, .agenda-dialog-body { padding: 16px; }
    dialog label, dialog fieldset { min-width: 0; }
    dialog input:not([type=checkbox]):not([type=radio]), dialog select, dialog textarea { min-width: 0; max-width: 100%; }
    .booking-edit-actions, .agenda-dialog-actions, .agenda-payment-actions, .student-edit-actions { flex-wrap: wrap; }
    .reports-sites-actions { flex-wrap: wrap; }
}
@media (max-width: 600px) {
    input, select, textarea { font-size: 16px; }
    .sidebar .brand { width: 145px; height: 52px; }
    .top > div:first-child { width: 100%; }
    .session { font-size: 14px; }
    .card, .filters { padding: 16px; }
    .form-row, .filters, .schedule-form, .student-search, .income-filters { flex-direction: column; align-items: stretch; }
    .form-row > label, .filters > label, .schedule-form > label { width: 100%; min-width: 0; }
    .form-row input:not([type=checkbox]):not([type=radio]), .form-row select, .form-row textarea, .wide-input { min-width: 0; width: 100%; max-width: 100%; }
    .student-search input { min-width: 0; }
    .income-form, .income-edit-form, .student-edit-form, .payment-entry, .employee-edit-form, .package-edit-form, .reports-form, .student-package-form { grid-template-columns: minmax(0,1fr); }
    .account-overview, .income-overview, .student-account-summary { grid-template-columns: minmax(0,1fr); }
    .student-panel-title, .income-section-title, .student-list-head, .student-account-header { flex-wrap: wrap; }
    .count-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .balance-row { flex-wrap: wrap; }
    .balance-row > div:last-child { text-align: left; }
    #habilitar-agenda .agenda-pair-row, #habilitar-agenda details .form-row, .modify-pair-resources, .agenda-edit-row { grid-template-columns: minmax(0,1fr); }
    #habilitar-agenda .agenda-pair-row .quitar-pareja { grid-column: 1; }
    .booking-detail-head, .booking-edit-form, .booking-extra-form { padding: 16px; }
    .booking-detail-summary { margin-inline: 16px; }
    .student-account > .card { padding: 16px; }
    .login { margin: 24px auto; }
}
