@media (min-width: 961px) {
    .sidebar__toggle { display: inline-grid; }
    .app-header__menu { display: none; }
}

@media (max-width: 960px) {
    .app-shell { display: block; }
    .sidebar { display: none; }
    .app-header { grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: var(--header-height); padding: 0 var(--page-padding); }
    .app-header__menu { display: inline-grid; }
    .app-header__logo { display: block; width: 7.5rem; }
    .app-header__customer-context { display: none; }
    .app-header__user { margin-left: auto; }
    .user-menu__summary { display: none; }
    .status-grid { grid-template-columns: 1fr; }
    .page-header__body { align-items: flex-start; flex-direction: column; gap: var(--space-3); }
    .page-actions, .action-bar { justify-content: flex-start; }
    .content-grid--two-column, .content-grid--details, .content-grid--summary, .compact-summary { grid-template-columns: 1fr; }
    .summary-list, .data-list, .detail-list__row { grid-template-columns: 1fr; gap: var(--space-1); }
    .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .compact-summary__group + .compact-summary__group { border-left: 0; padding-left: 0; border-top: 1px solid var(--border); padding-top: var(--space-3); }
    .branch-context { display: none; }
    .dashboard-context-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-secondary-grid { grid-template-columns: 1fr; align-items: start; }
    .dashboard-secondary-grid > .dashboard-panel { height: auto; }
}

@media (max-width: 520px) {
    .app-header__logo { width: 6.25rem; }
    .mobile-drawer__logo { width: 10rem; }
}

@media (max-width: 480px) {
    .app-main { padding: var(--page-padding-compact); }
    .login-card { padding: var(--space-5); }
    .login-card__logo { width: min(13rem, 68vw); }
    .invitation-accept { width: min(100%, 22rem); padding: var(--space-4); }
    .invitation-accept__logo { width: min(7.5rem, 50vw); }
    .app-header__brand { display: none; }
    .app-header__title { font-size: 1.12rem; }
    .status-card, .details-panel, .detail-panel, .panel, .empty-state, .error-state { padding: var(--space-4); }
    .form-grid { grid-template-columns: 1fr; }
    .dashboard-context-strip, .dashboard-metrics, .dashboard-metrics--three, .dashboard-metrics--finance, .metric-grid { grid-template-columns: 1fr; }
    .dashboard-metrics .metric { padding: var(--space-2) 0 0; border-left: 0; border-top: 1px solid var(--border); }
    .dashboard-metrics .metric:first-child { padding-top: 0; border-top: 0; }
    .form-actions, .page-actions, .action-bar, .action-group { justify-content: flex-start; }
    .form-actions .btn, .page-actions .btn, .action-bar .btn { flex: 0 1 auto; }
    .filter-form input, .filter-form select { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

@media (max-width: 700px) {
    .course-listing-cell { grid-template-columns: 3.75rem minmax(0, 1fr); }
    .course-listing-cell__image { width: 3.75rem; }
    .module-toolbar { display: block; }
    .filter-form { display: grid; }
    .responsive-table table, .responsive-table thead, .responsive-table tbody, .responsive-table tr, .responsive-table th, .responsive-table td, .table-shell table, .table-shell thead, .table-shell tbody, .table-shell tr, .table-shell th, .table-shell td { display: block; }
    .responsive-table thead, .table-shell thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .responsive-table tr, .table-shell tr { border-bottom: 1px solid var(--border); padding: var(--space-3); }
    .responsive-table td, .table-shell td { border: 0; padding: var(--space-2) 0; }
    .responsive-table td::before, .table-shell td::before { content: attr(data-label); display: block; color: var(--text-muted); font-size: 0.74rem; font-weight: 900; text-transform: uppercase; }
}

@media (max-width: 960px) {
    .booking-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .booking-summary-strip--review { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .booking-learner-grid__header,
    .booking-learner-grid__row { grid-template-columns: minmax(5rem, 5.8rem) repeat(3, minmax(7rem, 1fr)) minmax(4.5rem, 0.35fr); }
    .booking-learner-grid__notice { margin-left: calc(5.8rem + var(--space-2)); }
}

@media (max-width: 640px) {
    .delivery-option-row { grid-template-columns: 1.25rem 1fr; }
    .delivery-option-row strong { grid-column: 2; justify-self: start; }
    .booking-summary-strip { grid-template-columns: 1fr; gap: var(--space-2); }
    .booking-learner-grid__header { display: none; }
    .booking-learner-grid__row {
        grid-template-columns: 1fr;
        gap: var(--space-2);
        padding: var(--space-2) 0;
    }
    .booking-learner-grid__number { min-height: 0; }
    .booking-learner-grid__mobile-label { display: block; }
    .booking-learner-grid__actions { justify-content: flex-start; }
    .booking-learner-grid__notice { margin: 0 0 var(--space-2); flex-direction: column; align-items: stretch; }
    .booking-learner-actions { justify-content: flex-start; }
}
