/* Celular únicamente. No altera escritorio ni tablet (>640px). */
@media (max-width: 640px) {
  html,
  body {
    overflow-x: hidden;
  }

  body.is-nav-locked {
    overflow: hidden;
  }

  .app-shell,
  .app-shell.is-nav-collapsed {
    grid-template-columns: 1fr;
  }

  .nav-burger {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    margin-top: 2px;
    border: 0;
    border-radius: 12px;
    background: var(--bg-elevated);
    color: var(--ink);
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(31, 42, 36, 0.06);
  }

  .nav-burger svg {
    width: 20px;
    height: 20px;
  }

  .nav-scrim {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 60;
    background: rgba(31, 42, 36, 0.38);
  }

  .app-shell.is-nav-open .nav-scrim {
    display: block;
  }

  .sidebar {
    position: fixed;
    z-index: 70;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(300px, 86vw);
    height: 100dvh;
    height: 100svh;
    padding: 16px 12px calc(16px + env(safe-area-inset-bottom, 0px));
    border-right: 0;
    box-shadow: 8px 0 32px rgba(31, 42, 36, 0.12);
    transform: translateX(-105%);
    transition: transform var(--dur) var(--ease);
    overflow: hidden;
  }

  .app-shell.is-nav-open .sidebar {
    transform: translateX(0);
  }

  .sidebar-toggle {
    display: none;
  }

  .app-shell.is-nav-collapsed .sidebar-brand-text,
  .app-shell.is-nav-collapsed .nav-label,
  .app-shell.is-nav-collapsed .sidebar-link .pub-label,
  .app-shell.is-nav-collapsed .sidebar-footer-text,
  .app-shell.is-nav-collapsed .sidebar-footer .btn-logout {
    display: revert;
  }

  .app-shell.is-nav-collapsed .sidebar-footer-text {
    display: block;
  }

  .app-shell.is-nav-collapsed .sidebar-brand {
    justify-content: flex-start;
    padding: 4px 8px;
  }

  .app-shell.is-nav-collapsed .nav-item {
    justify-content: flex-start;
    padding: 11px 12px;
    border-radius: 12px;
  }

  .app-shell.is-nav-collapsed .sidebar-link {
    justify-content: flex-start;
    padding: 6px 10px;
  }

  .app-shell.is-nav-collapsed .sidebar-footer {
    justify-content: flex-start;
    padding: 10px;
  }

  .app-shell.is-nav-collapsed .sidebar-profile {
    justify-content: flex-start;
    padding: 4px 6px;
    flex: 1;
  }

  .main-wrap {
    padding: 12px 12px calc(20px + env(safe-area-inset-bottom, 0px));
  }

  .main-header {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin-bottom: 12px;
  }

  .main-header-lead {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
  }

  .main-header-lead > div {
    min-width: 0;
  }

  .main-header h2 {
    font-size: 1.28rem;
    line-height: 1.2;
  }

  .main-header-actions {
    width: 100%;
  }

  .main-header-actions .btn-ghost,
  .main-header-actions .btn-accent,
  .main-header-actions .select-pill,
  .main-header-actions .search-pill {
    min-width: 0;
    width: auto;
    flex: 1 1 auto;
  }

  .alert-banner {
    padding: 12px 14px;
    font-size: 0.86rem;
  }

  .panel {
    padding: 14px;
    border-radius: 16px;
  }

  .view-toolbar,
  .datos-toolbar,
  .docentes-toolbar,
  .cupof-toolbar,
  .libro-toolbar {
    align-items: stretch;
  }

  .view-toolbar .toolbar-count {
    margin-left: 0;
    width: 100%;
  }

  .select-pill,
  .search-pill,
  .select-pill-wide,
  .view-toolbar .select-grow,
  .view-toolbar select.field-input,
  .docentes-toolbar .search-input {
    min-width: 0;
    width: 100%;
    max-width: none;
    flex: 1 1 100%;
  }

  .view-toolbar .toolbar-label,
  .view-toolbar .toolbar-label.select-compact {
    width: 100%;
    max-width: none;
    flex: 1 1 100%;
  }

  .view-toolbar .select-compact select,
  select.select-compact,
  .datos-toolbar select.select-compact {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 1 1 auto !important;
  }

  .form-row {
    flex-direction: column;
    align-items: stretch;
  }

  .form-row label,
  .form-row input,
  .form-row select,
  .form-row textarea {
    width: 100%;
    min-width: 0;
  }

  .cupof-form-row,
  .cupof-meta-row {
    grid-template-columns: 1fr;
  }

  .faltas-materia-filters label,
  .faltas-materia-filters select.field-input {
    min-width: 0;
    width: 100%;
  }

  .schedule-table-wrap,
  .table-wrap {
    -webkit-overflow-scrolling: touch;
    margin-left: -4px;
    margin-right: -4px;
  }

  .schedule-table {
    font-size: 0.7rem;
  }

  .data-table {
    font-size: 0.82rem;
  }

  .data-table th,
  .data-table td {
    padding: 8px 10px;
    white-space: nowrap;
  }

  .modal-backdrop {
    padding: 8px;
    align-items: end;
  }

  .modal,
  .modal.modal-xl,
  .modal.modal-wide,
  .modal.modal-cupof,
  .modal-docente,
  .modal.modal-docente,
  .modal-docente-xl,
  .modal.modal-docente.modal-docente-xl {
    width: 100%;
    max-height: min(94dvh, 100%);
    min-height: 0;
    border-radius: 18px 18px 12px 12px;
  }

  .modal-actions {
    flex-wrap: wrap;
  }

  .modal-actions .btn-ghost,
  .modal-actions .btn-accent {
    flex: 1 1 auto;
  }

  .sidebar-footer {
    flex-wrap: wrap;
  }

  .login-page {
    padding: 16px;
    align-items: start;
    padding-top: 12vh;
  }

  .login-card {
    padding: 24px 18px;
  }
}

@media (min-width: 641px) {
  .nav-burger,
  .nav-scrim {
    display: none !important;
  }
}
