/* Mobile-first refinements for data-heavy pages. Desktop layouts remain unchanged. */
@media (max-width: 700px) {
  /* Stack page headers without retaining desktop flex-basis as a tall blank block. */
  .teaching-tasks-v2-page-header > div,
  .error-entry-v2-page-header > div:first-child,
  .teacher-management-v1-page-header > div,
  .parent-management-v1-page-header > div {
    flex: 0 1 auto !important;
    width: 100%;
  }

  .content :is(.k-page-header, .page-head) {
    gap: 10px;
    margin-bottom: 14px;
  }

  .content .k-page > .card,
  .content .k-page .card {
    padding: 14px !important;
    border-radius: 14px;
  }

  .students-v2-summary,
  .daily-workbench-summary,
  .teacher-management-v1-summary,
  .parent-management-v1-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1px;
    margin-bottom: 14px;
  }

  .students-v2-summary > div,
  .daily-workbench-summary > div,
  .teacher-management-v1-summary > div,
  .parent-management-v1-summary > div {
    padding: 11px 12px !important;
  }

  .students-v2-summary-note {
    grid-column: 1 / -1;
  }

  .teacher-management-v1-summary > :last-child:nth-child(odd),
  .parent-management-v1-summary > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .students-v2-summary small,
  .daily-workbench-summary small {
    font-size: 11px !important;
    line-height: 1.35;
  }

  .daily-workbench-summary > div {
    grid-template-columns: 1fr auto;
    align-items: center;
  }

  .daily-workbench-summary > div > small {
    grid-column: 1 / -1;
  }

  .daily-workbench-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .daily-workbench-filter-grid .daily-workbench-search,
  .daily-workbench-filter-grid .daily-workbench-assignment-filter,
  .daily-workbench-filter-grid .daily-workbench-overdue-check,
  .daily-workbench-filter-grid .daily-workbench-filter-actions {
    grid-column: 1 / -1 !important;
  }

  .daily-workbench-filter-head {
    display: grid !important;
    gap: 8px;
  }

  .daily-workbench-filter-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px !important;
  }

  .daily-workbench-filter-meta > span {
    padding: 4px 7px;
    border-radius: 999px;
    background: #f1f6f3;
    font-size: 11px;
  }

  .daily-workbench-list-head {
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .daily-workbench-list-head p {
    margin-top: 4px !important;
    font-size: 12px !important;
  }

  .mobile-card-table {
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .mobile-card-table > table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
  }

  .mobile-card-table > table > thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .mobile-card-table > table > tbody {
    display: grid !important;
    gap: 10px !important;
  }

  .mobile-card-table > table > tbody > tr {
    display: grid !important;
    min-width: 0 !important;
    padding: 4px 12px !important;
    border: 1px solid var(--border, #dce7e2) !important;
    border-radius: 12px !important;
    background: var(--surface, #fff) !important;
    box-shadow: 0 3px 12px rgba(27, 66, 53, .06) !important;
  }

  .mobile-card-table > table > tbody > tr > td {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: auto !important;
    align-items: start !important;
    gap: 2px !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 7px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--border, #e7eeea) !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .mobile-card-table > table > tbody > tr > td:last-child {
    border-bottom: 0 !important;
  }

  .mobile-card-table > table > tbody > tr > td::before {
    content: attr(data-mobile-label);
    color: var(--muted, #657a72);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
  }

  /* On the two main mobile lists, put the identifying name first and keep
     dates/actions in deliberate positions instead of repeating table labels. */
  .daily-workbench-v13 .mobile-card-table > table > tbody > tr {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0 12px;
    padding: 8px 12px !important;
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    border-bottom: 0 !important;
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(1)::before,
  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(5)::before,
  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(6)::before {
    content: none;
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(1) b {
    font-size: 15px;
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(5) {
    grid-column: 2;
    grid-row: 1;
    justify-items: end;
    border-bottom: 0 !important;
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(2),
  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(3),
  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(4),
  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(6) {
    grid-column: 1 / -1;
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(2) {
    padding-top: 0 !important;
    color: var(--muted, #657a72);
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(3) > a {
    font-weight: 700;
  }

  .daily-workbench-v13 .mobile-card-table > table > tbody > tr > td:nth-child(6) {
    padding-top: 9px !important;
    border-bottom: 0 !important;
  }

  .daily-workbench-v13 .mobile-card-table .action-center-next {
    display: flex;
    width: 100%;
    min-height: 40px;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
  }

  .students-v2-table-wrap.mobile-card-table > table > tbody > tr > td:first-child {
    padding-top: 4px !important;
  }

  .students-v2-table-wrap.mobile-card-table .students-v2-name-link {
    font-size: 15px;
    line-height: 1.45;
  }

  .students-v2-table-wrap.mobile-card-table .students-v2-cell-note {
    margin-top: 2px;
    font-size: 11px;
  }

  .students-v2-table-wrap.mobile-card-table .students-v2-row-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    justify-content: stretch;
    white-space: normal;
  }

  .students-v2-table-wrap.mobile-card-table .students-v2-row-actions > *,
  .students-v2-table-wrap.mobile-card-table .students-v2-row-actions > form,
  .students-v2-table-wrap.mobile-card-table .students-v2-row-actions .students-v2-primary-link,
  .students-v2-table-wrap.mobile-card-table .students-v2-row-actions button {
    width: 100%;
    min-width: 0;
    text-align: center;
  }

  .students-v2-table-wrap.mobile-card-table .students-v2-owner-form {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px;
  }

  .students-v2-table-wrap.mobile-card-table .students-v2-owner-form select {
    width: 100%;
    min-width: 0;
  }

  .students-v2-table-wrap.mobile-card-table .students-v2-owner-form button {
    width: 100%;
  }

  .mobile-card-table td > form,
  .mobile-card-table td > div,
  .mobile-card-table td > p,
  .mobile-card-table td > a {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .mobile-card-table td form {
    flex-wrap: wrap;
    gap: 8px;
  }

  .mobile-card-table td select,
  .mobile-card-table td input:not([type="checkbox"]):not([type="radio"]) {
    min-width: 0;
    max-width: 100%;
  }

  .mobile-card-table td:has(.students-v2-owner-cell) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .mobile-card-table .students-v2-owner-cell,
  .mobile-card-table .students-v2-owner-form {
    width: 100%;
    min-width: 0;
  }

  .mobile-card-table .students-v2-owner-form {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .entry-session-main > div {
    flex: 1 1 0;
    min-width: 0;
  }

  .entry-session-main h3,
  .entry-completed-grid h3 {
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.5;
  }

  .entry-session-main p,
  .entry-completed-grid p {
    max-width: 100%;
  }
}

/* Whole-site mobile layer. Loaded after each page's own styles so every
   template inherits the same phone spacing, controls and overflow behavior. */
@media screen and (max-width: 760px) {
  html,
  body {
    max-width: 100%;
  }

  .layout,
  .layout > *,
  .content,
  .content > *,
  .content :is(section, article, aside, form, fieldset, .card, .k-card) {
    min-width: 0;
  }

  .content {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 14px !important;
  }

  .content :is(img, video, canvas, svg, iframe) {
    max-width: 100%;
  }

  .content * {
    min-width: 0;
    box-sizing: border-box;
  }

  .content :is(.page-head, .k-page-header, .section-head, .k-section-header, [class$="-section-head"]) {
    min-width: 0;
    gap: 10px;
  }

  .content :is(.page-head, .k-page-header, .section-head, .k-section-header) h1 {
    font-size: clamp(22px, 6vw, 28px);
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  .content :is(.page-head, .k-page-header, .section-head, .k-section-header) p {
    max-width: 100%;
    line-height: 1.55;
  }

  .content :is(.grid, .grid.two, .grid.main-side, .form-grid, .form-grid.two, .dashboard-grid, .main-layout, .two-column-layout, .reading-two-col) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .content :is(.filters, .filter-bar, .filter-grid, .form-row, .toolbar, .button-row, .form-actions, .actions, .row, .flex-row, [class$="-toolbar"], [class$="-actions"]) {
    min-width: 0;
    flex-wrap: wrap;
  }

  .content :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    font-size: 16px;
  }

  .content :is(button, .btn, .k-btn, [role="button"]) {
    min-height: 44px;
    touch-action: manipulation;
  }

  .content :is(.btn, .k-btn) {
    white-space: normal;
  }

  .content :is(pre, code) {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .content pre {
    overflow-x: auto;
  }

  .content :is(.table-wrap, .table-container, .table-responsive, .table-scroll, .table-wrapper, .responsive-table, .postclass-table-wrap, .k-table-wrap, .teacher-management-v1-table-wrap, .parent-management-v1-table-wrap) {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .content table:not(.content-table) {
    max-width: 100%;
  }

  .content .mobile-card-table.card {
    overflow: visible !important;
    padding: 14px !important;
    border: 1px solid var(--border, #dce7e2) !important;
    border-radius: 14px !important;
    background: var(--surface, #fff) !important;
    box-shadow: 0 3px 12px rgba(27, 66, 53, .06) !important;
  }

  .content .stat-grid,
  .content .action-grid,
  .content .mastery-v2-metrics,
  .content .today-secondary-grid,
  .content .student-subject-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .content .stat,
  .content .mastery-v2-metrics .k-card {
    min-width: 0;
    padding: 13px !important;
  }

  .content .filter-bar {
    grid-template-columns: minmax(0, 1fr);
  }

  .content .login-card {
    width: min(390px, calc(100vw - 32px));
    padding: clamp(22px, 7vw, 34px);
  }

  .sidebar.mobile-open > nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 8px;
    max-height: min(64vh, 540px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .sidebar.mobile-open > nav .nav-group {
    display: contents;
  }

  .sidebar.mobile-open > nav .nav-group-label {
    grid-column: 1 / -1;
    padding-top: 10px;
  }
}

@media screen and (max-width: 420px) {
  .content {
    padding: 12px !important;
  }

  .content :is(.card, .k-card) {
    padding: 12px !important;
  }

  .content :is(.stat-grid, .action-grid, .mastery-v2-metrics, .today-secondary-grid, .student-subject-grid) {
    gap: 8px;
  }

  .content .mobile-card-table.card {
    padding: 12px !important;
  }

  .content :is(.toolbar, .button-row, .form-actions, .actions, [class$="-toolbar"], [class$="-actions"]) > :is(button, .btn, .k-btn, a[role="button"]) {
    flex: 1 1 auto;
  }
}

/* The family portal has its own base template, so give it the same phone
   spacing and touch targets without importing staff navigation styles. */
@media screen and (max-width: 700px) {
  .parent-content {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .parent-content :is(button, a, .parent-primary-button) {
    min-height: 44px;
    touch-action: manipulation;
  }

  .parent-page-head {
    flex-wrap: wrap;
    padding: 18px;
  }

  .parent-page-head h1,
  .parent-hero h1,
  .family-report-header h1 {
    font-size: clamp(22px, 6vw, 28px);
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  .family-report,
  .family-report-section,
  .family-stat-grid {
    min-width: 0;
  }
}
