/* ==========================================================================
   MasteryByte — site-wide responsive layout (mobile & tablet)
   Loaded after application.css in the layout so @media rules override base styles.
   ========================================================================== */

/* ── Utilities ── */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Prevent horizontal page scroll from wide children */
body.app-has-topbar {
  overflow-x: clip;
}

body.app-has-topbar .main-content {
  min-width: 0;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

/* Chart.js canvases use absolute fill inside .chart-canvas-wrap — do not set height: auto globally */
.chart-canvas-wrap canvas {
  max-width: 100%;
}

/* ── Viewport-safe widths ── */
.footer-inner {
  max-width: min(1680px, 100%);
}

/* ==========================================================================
   Dashboard homepage (authenticated root)
   ========================================================================== */

.dashboard-header {
  min-width: 0;
}

.dashboard-header h1 {
  word-break: break-word;
}

.dashboard-context-strip {
  max-width: 100%;
}

.dashboard-context-strip__value {
  word-break: break-word;
}

/* Metric cards: 6 → 3 → 2 → 1 */
@media (max-width: 1279px) {
  .dashboard .metrics-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1023px) {
  .dashboard .metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1023px) {
  .dashboard .charts-grid {
    grid-template-columns: 1fr;
  }
}

/* Tablet: calendar strip stacks before cards get too cramped */
@media (max-width: 767px) {
  .dashboard-header {
    margin-bottom: 1.35rem;
  }

  .dashboard-header h1 {
    font-size: 1.4rem;
    margin-bottom: 0.65rem;
  }

  .dashboard-context-strip {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    border-radius: var(--st-radius-lg);
    width: 100%;
    box-sizing: border-box;
  }

  .dashboard-context-strip__item {
    border-right: none;
    border-bottom: 0.5px solid var(--st-border-tertiary);
    padding: 0.5rem 0.85rem;
    flex-wrap: wrap;
    gap: 0.25rem 0.5rem;
  }

  .dashboard-context-strip__item:last-child {
    border-bottom: none;
  }

  .dashboard-context-strip__value {
    font-size: 0.875rem;
  }

  .onboarding-checklist {
    padding: 1rem 1rem 1.1rem;
  }

  .onboarding-checklist__header {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .onboarding-checklist__header-text {
    flex: 1 1 12rem;
    min-width: 0;
  }

  .onboarding-checklist__toggle {
    min-height: 44px;
  }
}

@media (max-width: 479px) {
  .dashboard .metrics-grid {
    grid-template-columns: 1fr;
  }

  .dashboard .metric-card h3 {
    font-size: 1.65rem;
  }

  .dashboard .metric-card {
    padding: 1rem 1.1rem;
  }

  .dashboard .chart-card__header,
  .dashboard .chart-card__body {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (max-width: 639px) {
  .dashboard .chart-tag-filter {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard .chart-tag-filter select {
    width: 100%;
    min-width: 0;
  }

  .dashboard .chart-canvas-wrap {
    height: min(260px, 58vw);
    min-height: 200px;
  }

  .dashboard .chart-card__hint {
    font-size: 0.8125rem;
  }
}

/* ── Two-column page layouts (stack on tablet) ── */
.gs-page-layout,
.settings-two-col {
  display: grid;
  gap: 1.25rem;
  align-items: start;
}

.gs-page-layout {
  grid-template-columns: minmax(0, 1fr) minmax(0, 220px);
  margin-top: 1rem;
}

.settings-two-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 1024px) {
  .gs-page-layout,
  .settings-two-col,
  .account-layout {
    grid-template-columns: 1fr;
  }
}

/* Contact/student form responsive rules live at the end of application.css
   (scoped to .dashboard) so they override base two-column form layout. */

/* ── Topbar / mobile navigation ── */
.topbar-nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  border: 0.5px solid var(--st-border-secondary);
  border-radius: var(--st-radius-md);
  background: var(--st-bg-primary);
  color: var(--st-text-primary);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}

.topbar-nav-toggle:hover {
  background: var(--st-bg-secondary);
}

.topbar-nav-toggle:focus {
  outline: none;
}

.topbar-nav-toggle:focus-visible {
  outline: 2px solid var(--st-accent);
  outline-offset: 2px;
}

.topbar-nav-toggle__icon {
  display: block;
  width: 20px;
  height: 14px;
  position: relative;
}

.topbar-nav-toggle__bar,
.topbar-nav-toggle__bar::before,
.topbar-nav-toggle__bar::after {
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
  transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease;
}

.topbar-nav-toggle__bar {
  top: 50%;
  margin-top: -1px;
}

.topbar-nav-toggle__bar::before,
.topbar-nav-toggle__bar::after {
  content: "";
}

.topbar-nav-toggle__bar::before {
  top: -6px;
}

.topbar-nav-toggle__bar::after {
  top: 6px;
}

.topbar--nav-open .topbar-nav-toggle__bar {
  background: transparent;
}

.topbar--nav-open .topbar-nav-toggle__bar::before {
  top: 0;
  transform: rotate(45deg);
}

.topbar--nav-open .topbar-nav-toggle__bar::after {
  top: 0;
  transform: rotate(-45deg);
}

.topbar-brand-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
  min-width: 0;
}

.topbar .org-switcher .org-trigger span,
.topbar .org-switcher > a span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(42vw, 14rem);
}

@media (max-width: 1023px) {
  .topbar {
    flex-wrap: wrap;
    align-items: center;
    padding: 0.65rem 1rem;
    gap: 0.5rem 0.75rem;
  }

  .topbar-left {
    flex: 1 1 calc(100% - 3.5rem);
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    min-width: 0;
  }

  .topbar-brand-row {
    flex: 1 1 100%;
    min-width: 0;
    justify-content: space-between;
  }

  .topbar-nav-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .user-nav {
    flex-shrink: 0;
    margin-left: auto;
  }

  .main-nav {
    display: none;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    flex: 1 1 100%;
    order: 10;
    gap: 0;
    padding: 0.35rem 0 0.5rem;
    border-top: 0.5px solid var(--st-border-tertiary);
    margin-top: 0.25rem;
  }

  .topbar--nav-open .main-nav {
    display: flex;
  }

  .main-nav .nav-link {
    display: flex;
    align-items: center;
    padding: 0.75rem 0.5rem;
    font-size: 0.9375rem;
    min-height: 44px;
    box-sizing: border-box;
  }

  .main-nav .nav-item {
    width: 100%;
  }

  .main-nav .nav-item > .nav-link {
    width: 100%;
  }

  .main-nav .nav-dropdown {
    display: block;
    position: static;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 0 0 0.35rem 0.75rem;
    min-width: 0;
    background: transparent;
  }

  .main-nav .nav-item:hover .nav-dropdown {
    display: block;
  }

  .main-nav .nav-dropdown-link {
    padding: 0.65rem 0.5rem;
    min-height: 44px;
    display: flex;
    align-items: center;
    font-size: 0.9rem;
  }

  .user-trigger {
    min-height: 44px;
    min-width: 44px;
    justify-content: center;
  }

  .topbar .org-switcher .org-trigger span,
  .topbar .org-switcher > a span {
    max-width: min(50vw, 11rem);
  }
}

@media (max-width: 479px) {
  html:has(body.app-has-topbar) {
    font-size: 100%;
  }

  .main-content {
    padding: 0.65rem 0.75rem 1rem;
  }

  .topbar .org-switcher .org-trigger span,
  .topbar .org-switcher > a span {
    max-width: min(38vw, 8.5rem);
    font-size: 0.95rem !important;
  }
}

/* ── Footer ── */
@media (max-width: 767px) {
  .app-footer {
    padding: 0.85rem 1rem;
  }

  .footer-inner {
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    text-align: center;
    max-width: 100%;
  }

  .footer-left,
  .footer-center,
  .footer-right {
    width: 100%;
    text-align: center;
  }

  .footer-center {
    order: 3;
    font-size: 0.8rem;
    line-height: 1.4;
  }

  .footer-right {
    justify-content: center;
    gap: 0.35rem 0.65rem;
  }

  .footer-right a {
    line-height: 1.4;
  }
}

@media (max-width: 479px) {
  .app-footer {
    padding: 0.75rem 0.85rem;
    font-size: 0.8125rem;
  }

  .footer-sep {
    display: none;
  }

  .footer-right {
    flex-direction: column;
    gap: 0.35rem;
  }
}

/* ── Page headers & filters ── */
@media (max-width: 639px) {
  .dashboard-header[style*="flex"] {
    flex-wrap: wrap !important;
    align-items: stretch !important;
  }

  .dashboard-header[style*="flex"] > div:last-child {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .dashboard-header h1,
  .page-title {
    font-size: 1.35rem;
  }

  .car-results-page-header {
    flex-direction: column;
    align-items: stretch;
  }

  .car-results-page-header__actions {
    width: 100%;
  }

  .car-results-page-header__actions .ar-btn,
  .car-results-page-header__actions .btn,
  .car-results-page-header__actions a {
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
  }

  .filters-bar,
  .index-toolbar,
  .students-index__toolbar,
  .assessments-index__toolbar {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
}

/* ── Auth (sign-in, sign-up, password reset) ── */

@media (max-width: 767px) {
  .auth-container,
  .auth-container--sign-in {
    padding: 1rem 0.85rem 2rem;
  }

  .auth-body .auth-card,
  .auth-card,
  .auth-body--signup .auth-signup__card.auth-card {
    padding: 1.35rem 1.1rem 1.45rem;
    border-radius: 12px;
  }

  .auth-body .auth-card h2,
  .auth-card h2,
  .auth-page__title {
    font-size: 1.2rem;
    margin-bottom: 1rem;
  }

  .auth-page__intro {
    margin: -0.5rem 0 1rem;
    font-size: 0.8125rem;
  }

  .auth-logo,
  .auth-logo--large {
    --auth-logo-max-height: clamp(88px, 24vw, 140px);
    margin-bottom: 0.85rem;
  }

  .auth-links {
    font-size: 0.8125rem;
    margin-top: 1rem;
  }

  .auth-links--stack {
    gap: 0.45rem;
  }

  .auth-links--stack a {
    display: block;
    padding: 0.15rem 0;
    line-height: 1.4;
  }

  .auth-card .actions input[type="submit"],
  .auth-body .auth-card .actions input[type="submit"],
  .auth-signup-form__actions input[type="submit"] {
    min-height: 44px;
    font-size: 0.875rem;
  }

  .auth-card input[type="email"],
  .auth-card input[type="password"],
  .auth-card input[type="text"],
  .auth-card select,
  .auth-body .auth-card input[type="email"],
  .auth-body .auth-card input[type="password"],
  .auth-body .auth-card input[type="text"],
  .auth-body .auth-card select {
    font-size: 16px;
    min-height: 44px;
  }

  .field--password-toggle .field__password-toggle {
    width: 2.75rem;
    height: 2.75rem;
  }

  .flash-container--auth {
    padding: 0.65rem 0.85rem 0;
  }

  .flash-container--auth .flash {
    text-align: left;
    font-size: 0.8125rem;
  }

  .auth-signup {
    padding: 0.75rem 0.65rem 1rem;
    min-height: 100dvh;
  }

  .auth-signup__brand {
    padding: 0.65rem 0 0;
  }

  .auth-signup__logo-wrap {
    padding: 0.65rem 0.45rem;
  }

  .auth-signup__benefits-wrap {
    padding: 0.85rem 0.9rem;
  }

  .auth-signup__benefits-heading {
    margin-bottom: 0.75rem;
  }

  .auth-signup__title {
    font-size: 1.15rem;
  }

  .auth-signup__subtitle {
    font-size: 0.875rem;
  }

  .auth-signup__main {
    margin-top: 0.65rem;
  }

  .auth-signup-form .field--hcaptcha {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .auth-signup-form .field--hcaptcha .hcaptcha-widget {
    max-width: 100%;
  }

  .auth-signup__footer-link {
    margin-top: 0.85rem;
    padding-top: 0.75rem;
  }

  #error_explanation {
    font-size: 0.8125rem;
    line-height: 1.45;
    word-break: break-word;
  }

  #error_explanation h2 {
    font-size: 0.9375rem;
    line-height: 1.35;
  }
}

@media (max-width: 479px) {
  .auth-signup__benefits {
    gap: 0.4rem;
  }

  .auth-signup__benefit-text {
    font-size: 0.875rem;
  }

  .auth-signup-form__section-title {
    font-size: 0.6875rem;
  }
}

/* ── Tables: scroll wrappers + mobile actions ── */
.table-scroll-x,
.data-table-wrap,
.students-index__table-wrap,
.contacts-index__table-wrap,
.groups-index__table-wrap,
.assessments-index__table-wrap,
.reports-index__table-wrap,
.ar-table-wrap,
.car-table-wrap,
.gar-marking-table-wrap,
.marking-table-wrap,
.cp-table-wrap,
.bl-table-wrap {
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

/* Marking summary card (assessment results) */
@media (max-width: 767px) {
  .ar-summary {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.25rem 1rem;
    gap: 1.1rem;
  }

  .ar-summary__body {
    width: 100%;
  }

  .ar-student__header {
    padding: 0.85rem 1rem;
  }

  .ar-student__info {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .ar-student__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
  }

  .group-assessment-results .gar-student-card__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
  }

  .group-assessment-results .gar-student-card__lock-row {
    flex-wrap: wrap;
    width: 100%;
  }
}

/* Marking / feedback tables → stacked rows on small screens */
@media (max-width: 767px) {
  .marking-answers-table {
    min-width: 0 !important;
    table-layout: auto !important;
  }

  .marking-answers-table thead {
    display: none;
  }

  .marking-answers-table tbody tr {
    display: block;
    margin-bottom: 1rem;
    border: 0.5px solid var(--st-border-tertiary);
    border-radius: var(--st-radius-md);
    background: var(--st-bg-primary);
    overflow: hidden;
  }

  .marking-answers-table tbody tr:last-child {
    margin-bottom: 0;
  }

  .marking-answers-table tbody td {
    display: block;
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
    border: none;
    border-bottom: 0.5px solid var(--st-border-tertiary);
    padding: 0.65rem 0.85rem;
  }

  .marking-answers-table tbody td:last-child {
    border-bottom: none;
  }

  .marking-answers-table tbody td[data-label]:not([data-label=""])::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--st-text-tertiary);
  }

  .marking-answers-table .marking-table__stem-row {
    background: var(--st-bg-secondary);
  }

  .marking-answers-table .marking-table__stem-row td {
    border-bottom: none;
    font-weight: 600;
  }

  .marking-answers-table .marking-table__group-footer td[data-label=""]:first-child::before,
  .marking-answers-table .marking-table__stem-row td::before {
    display: none;
  }

  .marking-answers-table tr.marking-table__total-row td:empty,
  .marking-answers-table tr.gar-marking-total td:empty {
    display: none;
  }

  .marking-answers-table tr.marking-table__total-row,
  .marking-answers-table tr.gar-marking-total {
    margin-top: 0.5rem;
    border-width: 1px;
  }

  .marking-answers-table .marking-table__cell--total-value {
    font-size: 1.1rem;
    font-weight: 800;
  }

  .marking-table__feedback-input {
    min-height: 5rem;
  }

  .gar-marking-actions,
  .car-mark-actions {
    margin-top: 1rem;
  }

  .gar-marking-actions .btn-primary,
  .car-mark-actions .btn-primary {
    width: 100%;
    justify-content: center;
  }
}

@media (min-width: 768px) {
  .marking-answers-table {
    min-width: 48rem;
  }
}

@media (max-width: 767px) {
  .assessments-index table.data-table tbody .assessments-index__actions,
  .reports-index table.data-table tbody .reports-index__actions {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.35rem;
  }

  table.data-table .assessment-icon-link,
  table.data-table .contact-icon-link,
  table.data-table .student-icon-link,
  table.data-table .group-icon-link,
  table.data-table .question-icon-link {
    min-width: 40px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* ── Results tabs: scroll on narrow screens ── */
@media (max-width: 639px) {
  .contact-assessment-results .contact-results-tabs,
  .group-assessment-results .group-results-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.5rem;
    gap: 0.35rem;
    scrollbar-width: thin;
  }

  .contact-assessment-results .contact-results-tabs [role="tab"],
  .group-assessment-results .group-results-tabs [role="tab"] {
    flex-shrink: 0;
    white-space: nowrap;
  }

  .contact-assessment-results__body,
  .group-assessment-results__body {
    padding: 1rem 0.85rem 1.25rem;
  }
}

/* ── Modals & dialogs ── */
@media (max-width: 639px) {
  dialog,
  .generation-loading-modal {
    width: calc(100vw - 1.5rem) !important;
    max-width: calc(100vw - 1.5rem) !important;
    margin: auto;
    box-sizing: border-box;
  }

  .assessment-remark-dialog__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .assessment-remark-dialog__actions .ar-btn,
  .assessment-remark-dialog__actions button {
    width: 100%;
    justify-content: center;
  }
}

/* ── Bulk sidebars (stack below content on small screens) ── */
@media (max-width: 1023px) {
  .sf-bulk-sidebar,
  .figures-index__sidebar {
    position: static;
    width: 100%;
    max-width: none;
  }
}

/* ── Form rows (generic two-column fields) ── */
@media (max-width: 639px) {
  .form-row,
  .form-grid--two,
  .settings-form__row--two {
    grid-template-columns: 1fr !important;
  }
}

/* ── Insight / chart overflow ── */
.insight-horizontal-bars,
.car-insight-split__chart,
.gar-score-distribution,
.chart-card__body canvas {
  max-width: 100%;
}

.insight-horizontal-bars__track {
  min-width: 0;
}

/* ==========================================================================
   Pagination (Kaminari + per-page controls)
   ========================================================================== */

@media (max-width: 767px) {
  .students-index__pagination-bar,
  .questions-index__pagination-bar,
  .sf-pagination-wrap,
  .bl-pagination,
  .pagination-footer,
  .figures-index__footer .students-index__pagination-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
  }

  .students-index__pagination-bar > div:has(.kaminari-pager),
  .bl-pagination > div:has(.kaminari-pager),
  .bl-pagination > .kaminari-pager,
  .sf-pagination-wrap > div:has(.kaminari-pager) {
    width: 100%;
    justify-content: center;
  }

  .pagination-per-page-group {
    width: 100%;
  }

  .pagination-per-page-form {
    flex-wrap: wrap;
    width: 100%;
  }
}

@media (max-width: 639px) {
  .kaminari-pager__pages {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    max-width: 100%;
    padding-bottom: 0.15rem;
  }
}

@media (max-width: 479px) {
  .pagination-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .kaminari-pager__btn,
  .kaminari-pager__page {
    min-width: 2.5rem;
    min-height: 2.5rem;
    padding: 0.35rem 0.5rem;
    font-size: 0.8125rem;
  }
}

/* ==========================================================================
   Index list view (students, contacts, groups, questions, …)
   ========================================================================== */

.students-index,
.contacts-index,
.groups-index,
.questions-index,
.assessments-index,
.reports-index,
.figures-index {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.index-list-table-wrap {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Legacy wide list tables (prefer page-specific list-table classes) */
.index-list-table--wide {
  min-width: 58rem;
}

@media (max-width: 767px) {
  .students-index,
  .contacts-index,
  .groups-index,
  .questions-index,
  .assessments-index,
  .reports-index {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .students-index__header {
    margin-bottom: 1rem;
  }

  .students-index__title {
    font-size: 1.2rem;
  }

  .students-index__btn-row {
    width: 100%;
  }

  .students-index__btn {
    flex: 1 1 auto;
    min-height: 40px;
  }

  .students-index__toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .students-index__filters-form {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .students-index__search-wrap {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
  }

  .students-index__select {
    width: 100%;
    max-width: 100%;
  }

  .students-index__view-toggle {
    width: 100%;
    justify-content: stretch;
  }

  .students-index__view-btn {
    flex: 1;
    justify-content: center;
    min-height: 40px;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .students-index__alpha-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    margin-left: -0.15rem;
    margin-right: -0.15rem;
    padding-bottom: 0.35rem;
  }

  .students-index__alpha-btn {
    flex-shrink: 0;
  }

  .groups-index__tag-row {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.35rem;
    max-width: 100%;
  }

  .groups-index__tag-row .groups-index__tag {
    flex-shrink: 0;
  }

  .questions-index__bulk-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .questions-index__bulk-bar-start {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .questions-index__bulk-summary {
    flex: 1 1 100%;
    line-height: 1.45;
  }

  .questions-index__layout {
    flex-direction: column;
  }

  .questions-index__main {
    min-width: 0;
    width: 100%;
  }

  .questions-index__sidebar {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    position: static;
    top: auto;
  }

  .questions-index__main {
    min-width: 0;
  }

  .questions-index .questions-index__grid {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 1rem;
    min-width: 0;
    width: 100%;
  }

  .questions-grid-card {
    min-width: 0;
    max-width: 100%;
  }

  .questions-grid-card__body {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
    -webkit-box-orient: unset;
    overflow-x: auto;
    word-break: break-word;
  }

  .questions-grid-card__body mjx-container {
    max-width: 100% !important;
    overflow-x: auto;
  }

  .questions-grid-card__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .questions-grid-card__meta {
    flex-wrap: wrap;
    align-items: baseline;
    row-gap: 0.25rem;
    min-width: 0;
  }

  .questions-grid-card__author {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
  }

  .questions-grid-card__actions {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .questions-index .questions-grid-card a.question-icon-link.students-index__action-btn,
  .questions-index .questions-grid-card button.students-index__action-btn {
    min-width: 40px;
    min-height: 40px;
  }

  /* Card-style rows for standard list tables */
  .index-list-table-wrap {
    overflow-x: visible;
    border: none;
    background: transparent;
    border-radius: 0;
  }

  .index-list-table:not(.index-list-table--wide) {
    min-width: 0 !important;
    table-layout: auto !important;
    border-collapse: separate;
    border-spacing: 0 0.65rem;
  }

  .index-list-table:not(.index-list-table--wide) thead {
    display: none;
  }

  .index-list-table:not(.index-list-table--wide) tbody tr {
    display: block;
    border: 0.5px solid var(--st-border-tertiary);
    border-radius: var(--st-radius-md);
    background: var(--st-bg-primary);
    box-shadow: 0 1px 2px rgba(28, 25, 23, 0.04);
    overflow: hidden;
  }

  .index-list-table:not(.index-list-table--wide) tbody tr:hover {
    background: var(--st-bg-primary);
  }

  .index-list-table:not(.index-list-table--wide) tbody td {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
    border: none;
    border-bottom: 0.5px solid var(--st-border-tertiary);
    padding: 0.6rem 0.85rem;
    white-space: normal !important;
    text-align: left !important;
  }

  .index-list-table:not(.index-list-table--wide) tbody td:last-child {
    border-bottom: none;
  }

  .index-list-table:not(.index-list-table--wide) tbody td[data-label]:not([data-label=""])::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--st-text-tertiary);
  }

  .index-list-table:not(.index-list-table--wide) tbody td[data-label=""]::before {
    display: none;
  }

  .index-list-table:not(.index-list-table--wide) .students-index__td--check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  /* Row checkboxes: never show bulk “select all” copy as a field label */
  .index-list-table:not(.index-list-table--wide) tbody td.students-index__td--check::before,
  .index-list-table:not(.index-list-table--wide) tbody td.students-index__td--check[data-label]::before {
    display: none !important;
    content: none !important;
  }

  .index-list-table:not(.index-list-table--wide) .students-index__td--actions,
  .index-list-table:not(.index-list-table--wide) .contacts-index__actions,
  .index-list-table:not(.index-list-table--wide) .groups-index__actions,
  .index-list-table:not(.index-list-table--wide) .reports-index__list-cell--actions {
    padding-top: 0.5rem;
  }

  .index-list-table:not(.index-list-table--wide) .students-index__actions,
  .index-list-table:not(.index-list-table--wide) .contacts-index__actions,
  .index-list-table:not(.index-list-table--wide) .groups-index__actions,
  .index-list-table:not(.index-list-table--wide) .reports-index__actions {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .index-list-table:not(.index-list-table--wide) .students-index__action-btn,
  .index-list-table:not(.index-list-table--wide) .contacts-index__icon-btn,
  .index-list-table:not(.index-list-table--wide) .groups-index__icon-btn,
  .index-list-table:not(.index-list-table--wide) .reports-index__icon-btn {
    min-width: 40px;
    min-height: 40px;
  }

  .index-list-table:not(.index-list-table--wide) .groups-index__inline-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  /* Wide tables: keep scroll inside wrapper */
  .index-list-table-wrap:has(.index-list-table--wide) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 0.5px solid var(--st-border-tertiary);
    border-radius: var(--st-radius-lg);
    background: var(--st-bg-primary);
  }

  .assessments-index table.data-table tbody .assessments-index__actions,
  .reports-index table.data-table tbody .reports-index__actions {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  /* Assessments list: card layout (title-first, similar to grid cards) */
  .assessments-index .assessments-index__list-table {
    min-width: 0 !important;
  }

  .assessments-index .assessments-index__list-row {
    display: flex;
    flex-direction: column;
    position: relative;
    padding-top: 0.35rem;
    border-left-width: 3px;
    border-left-style: solid;
  }

  .assessments-index .assessments-index__list-row--draft {
    border-left-color: var(--st-border-secondary);
  }

  .assessments-index .assessments-index__list-row--ready {
    border-left-color: #0e7490;
  }

  .assessments-index .assessments-index__list-row--active,
  .assessments-index .assessments-index__list-row--completed {
    border-left-color: #16a34a;
  }

  .assessments-index .assessments-index__list-row--closed {
    border-left-color: #dc2626;
  }

  .assessments-index .assessments-index__list-row--ended {
    border-left-color: #ea580c;
  }

  .assessments-index .assessments-index__list-cell--check {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    z-index: 1;
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: none !important;
    order: 99;
  }

  .assessments-index .assessments-index__list-cell--check::before {
    display: none !important;
    content: none !important;
  }

  .assessments-index .assessments-index__list-bulk-bar {
    margin-bottom: 0.75rem;
  }

  .assessments-index .assessments-index__list-cell--ref {
    order: 1;
    padding-top: 0.5rem !important;
    padding-right: 2.75rem !important;
    padding-bottom: 0.25rem !important;
    border-bottom: none !important;
  }

  .assessments-index .assessments-index__list-cell--title {
    order: 2;
    padding-top: 0 !important;
    padding-bottom: 0.5rem !important;
    border-bottom: none !important;
  }

  .assessments-index .assessments-index__list-cell--title::before {
    display: none;
  }

  .assessments-index .assessments-index__list-title-link {
    font-size: 1.02rem;
    line-height: 1.35;
    display: block;
  }

  .assessments-index .assessments-index__list-cell--status {
    order: 3;
    padding-top: 0 !important;
    padding-bottom: 0.65rem !important;
    border-bottom: 0.5px solid var(--st-border-tertiary) !important;
  }

  .assessments-index .assessments-index__list-cell--status::before {
    display: none;
  }

  .assessments-index .assessments-index__list-cell--status .assessments-index__statuses {
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .assessments-index .assessments-index__list-cell--tags {
    order: 4;
  }

  .assessments-index .assessments-index__td--author.assessments-index__list-cell--meta {
    order: 5;
  }

  .assessments-index .assessments-index__td--created.assessments-index__list-cell--meta {
    order: 6;
  }

  .assessments-index .assessments-index__td--marks.assessments-index__list-cell--meta {
    order: 7;
  }

  .assessments-index .assessments-index__td--time.assessments-index__list-cell--meta {
    order: 8;
  }

  .assessments-index .assessments-index__list-cell--actions {
    order: 9;
    padding-top: 0.65rem !important;
    background: var(--st-bg-secondary);
  }

  .assessments-index .assessments-index__list-cell--actions::before {
    display: none;
  }

  .assessments-index .assessments-index__list-cell--actions .assessments-index__actions {
    justify-content: flex-start;
    gap: 0.4rem;
  }

  .assessments-index .assessments-index__list-cell--actions .assessments-index__icon-btn {
    min-width: 42px;
    min-height: 42px;
  }

  /* Reports list: card layout */
  .reports-index .reports-index__list-table {
    min-width: 0 !important;
  }

  .reports-index .reports-index__list-bulk-bar {
    margin-bottom: 0.75rem;
  }

  .reports-index .reports-index__list-row {
    display: flex;
    flex-direction: column;
    position: relative;
    padding-top: 0.35rem;
  }

  .reports-index .reports-index__list-cell--check {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    z-index: 1;
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: none !important;
    order: 99;
  }

  .reports-index .reports-index__list-cell--check::before {
    display: none !important;
    content: none !important;
  }

  .reports-index .reports-index__list-cell--ref {
    order: 1;
    padding-top: 0.5rem !important;
    padding-right: 2.75rem !important;
    padding-bottom: 0.25rem !important;
    border-bottom: none !important;
  }

  .reports-index .reports-index__list-cell--title {
    order: 2;
    padding-top: 0 !important;
    padding-bottom: 0.35rem !important;
    border-bottom: none !important;
  }

  .reports-index .reports-index__list-cell--title::before {
    display: none;
  }

  .reports-index .reports-index__list-title {
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.35;
    display: block;
    word-break: break-word;
  }

  .reports-index .reports-index__list-cell--student {
    order: 3;
  }

  .reports-index .reports-index__list-student-link {
    font-weight: 600;
  }

  .reports-index .reports-index__list-cell--assessment {
    order: 4;
  }

  .reports-index .reports-index__list-assessment-link {
    display: block;
    word-break: break-word;
  }

  .reports-index .reports-index__list-cell--meta {
    order: 5;
  }

  .reports-index .reports-index__td--created.reports-index__list-cell--meta {
    order: 6;
  }

  .reports-index .reports-index__td--emailed.reports-index__list-cell--meta {
    order: 7;
  }

  .reports-index .reports-index__list-cell--actions {
    order: 8;
    padding-top: 0.65rem !important;
    background: var(--st-bg-secondary);
  }

  .reports-index .reports-index__list-cell--actions::before {
    display: none;
  }
}

/* Tablet: horizontal scroll for wide index tables (readable columns) */
@media (min-width: 768px) and (max-width: 1023px) {
  .assessments-index .index-list-table-wrap:has(.assessments-index__list-table),
  .reports-index .index-list-table-wrap:has(.reports-index__list-table) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 0.5px solid var(--st-border-tertiary);
    border-radius: var(--st-radius-lg);
    background: var(--st-bg-primary);
  }

  .assessments-index .assessments-index__list-table {
    min-width: 48rem;
  }

  .reports-index .reports-index__list-table {
    min-width: 52rem;
  }
}

/* ==========================================================================
   Billing sub-pages (email logs, credit usage)
   ========================================================================== */

@media (max-width: 767px) {
  .bl-page {
    gap: 0.85rem;
    max-width: 100%;
    min-width: 0;
  }

  .bl-page__header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .bl-page__title {
    font-size: 1.2rem;
  }

  .bl-page__subtitle {
    line-height: 1.4;
  }

  .bl-page__actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .bl-page__actions .bl-btn {
    flex: 1 1 calc(50% - 0.25rem);
    justify-content: center;
    min-height: 40px;
    white-space: normal;
    text-align: center;
  }

  .bl-warning {
    font-size: 0.8125rem;
    line-height: 1.45;
  }

  .bl-section-label--spaced {
    margin-top: 1.25rem;
  }

  .bl-intro {
    line-height: 1.45;
  }

  .bl-table-wrap {
    overflow-x: visible;
    padding: 0.65rem;
  }

  .bl-table--stacked {
    min-width: 0 !important;
    table-layout: auto !important;
    border-collapse: separate;
    border-spacing: 0 0.65rem;
  }

  .bl-table--stacked thead {
    display: none;
  }

  .bl-table--stacked tbody tr {
    display: block;
    border: 0.5px solid var(--st-border-tertiary);
    border-radius: var(--st-radius-md);
    background: var(--st-bg-primary);
    box-shadow: 0 1px 2px rgba(28, 25, 23, 0.04);
    overflow: hidden;
  }

  .bl-table--stacked tbody tr.bl-table__row {
    border-top: 0.5px solid var(--st-border-tertiary);
  }

  .bl-table--stacked tbody td {
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box;
    border: none;
    border-bottom: 0.5px solid var(--st-border-tertiary);
    padding: 0.6rem 0.85rem;
    white-space: normal !important;
    text-align: left !important;
  }

  .bl-table--stacked tbody td:last-child {
    border-bottom: none;
  }

  .bl-table--stacked tbody td[data-label]:not([data-label=""])::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--st-text-tertiary);
  }

  .bl-table--stacked .bl-table__td--nowrap {
    white-space: normal !important;
  }

  .bl-table--stacked .bl-table__td--subject {
    word-break: break-word;
  }

  .bl-table--stacked .bl-table__td--muted,
  .bl-table--stacked .bl-table__td--break {
    word-break: break-word;
  }

  .bl-status-detail {
    word-break: break-word;
  }

  .bl-pagination {
    padding: 0.75rem 0.65rem 0.85rem;
  }
}

/* ==========================================================================
   Support requests (/support)
   ========================================================================== */

@media (max-width: 767px) {
  .sr-page {
    gap: 1rem;
    max-width: 100%;
    min-width: 0;
  }

  .sr-page__header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .sr-page__title {
    font-size: 1.2rem;
    word-break: break-word;
  }

  .sr-page__subtitle {
    line-height: 1.4;
  }

  .sr-page__title-row {
    align-items: flex-start;
    min-width: 0;
  }

  .sr-page__title-row > div:last-child {
    min-width: 0;
  }

  .sr-page__header > .btn-primary {
    width: 100%;
    justify-content: center;
  }

  .sr-page__actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .sr-page__actions .btn-primary,
  .sr-page__actions .bl-btn {
    flex: 1 1 calc(50% - 0.25rem);
    justify-content: center;
    min-height: 40px;
    text-align: center;
  }

  .sr-access-card {
    padding: 0.85rem 1rem;
  }

  .sr-filters {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .sr-filters__select {
    width: 100%;
    max-width: none;
  }

  .sr-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .sr-actions .nav-link,
  .sr-actions .group-icon-link {
    min-width: 40px;
    min-height: 40px;
  }

  .bl-table--stacked .bl-table__td strong {
    word-break: break-word;
  }

  .sr-meta-card {
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem;
  }

  .sr-meta-card__item {
    width: 100%;
  }

  .sr-body-card,
  .sr-attachments,
  .sr-reply-card,
  .sr-edit-card {
    padding: 1rem;
  }

  .sr-body-card__pre,
  .sr-comment__body {
    word-break: break-word;
    overflow-x: auto;
  }

  .sr-comment__meta {
    line-height: 1.4;
  }

  .sr-reply-card__textarea {
    width: 100%;
    box-sizing: border-box;
  }

  .sr-reply-card .btn-primary,
  .sr-edit-card__actions .btn-primary,
  .sr-edit-card__actions .bl-btn {
    width: 100%;
    justify-content: center;
  }

  .sr-edit-card__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .sr-danger-zone {
    max-width: none;
  }

  .sr-danger-zone__btn {
    width: 100%;
    text-align: center;
    box-sizing: border-box;
  }

  .support-request-form__field-title .support-request-form__title-input {
    max-width: none;
  }

  .support-request-form__card.auth-card {
    padding: 1rem;
  }
}

/* ==========================================================================
   School years (/school_years)
   ========================================================================== */

@media (max-width: 767px) {
  .sy-page {
    gap: 1rem;
    max-width: 100%;
    min-width: 0;
  }

  .sy-page__header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .sy-page__title {
    font-size: 1.2rem;
    word-break: break-word;
  }

  .sy-page__subtitle {
    line-height: 1.4;
  }

  .sy-page__title-row {
    align-items: flex-start;
    min-width: 0;
  }

  .sy-page__title-row > div:last-child {
    min-width: 0;
  }

  .sy-page__actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .sy-page__actions .ar-btn,
  .sy-page__actions .btn-primary {
    flex: 1 1 calc(50% - 0.25rem);
    justify-content: center;
    min-height: 40px;
    text-align: center;
  }

  .sy-page__header > .ar-btn {
    width: 100%;
    justify-content: center;
  }

  .sy-rollover-help {
    padding: 0.85rem 1rem;
  }

  .sy-rollover-help__body {
    word-break: break-word;
  }

  .sy-row__actions {
    text-align: left !important;
    white-space: normal;
  }

  .sy-row__actions .sy-action-link {
    display: inline-block;
    margin: 0.15rem 0.35rem 0.15rem 0;
  }

  .sy-form-card {
    max-width: none;
    padding: 1rem;
  }

  .sy-form__input--name {
    max-width: none;
  }

  .sy-form__date-row {
    flex-direction: column;
    gap: 0;
  }

  .sy-form__date-row > .sy-form__field {
    flex: 1 1 auto;
    width: 100%;
  }

  .sy-form-card .btn-primary {
    width: 100%;
    justify-content: center;
  }

  .sy-show__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.15rem;
  }

  .sy-show__actions-sep {
    display: none;
  }

  .sy-show__actions .nav-link {
    padding: 0.45rem 0;
  }

  .sy-show__periods-card {
    padding: 1rem;
  }

  .sy-show__term-actions {
    justify-content: flex-start;
  }
}

/* ==========================================================================
   Settings files (/settings/files)
   ========================================================================== */

@media (max-width: 1023px) {
  .sf-files-layout {
    flex-direction: column;
  }

  .sf-files-layout__main {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 767px) {
  .settings-files-index.stg-page {
    gap: 1rem;
  }

  .settings-files-index .stg-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .settings-files-index .stg-header__title {
    font-size: 1.2rem;
    word-break: break-word;
  }

  .settings-files-index .stg-header__subtitle {
    line-height: 1.4;
  }

  .settings-files-index .stg-header__title-row {
    align-items: flex-start;
    min-width: 0;
  }

  .settings-files-index .stg-header__title-row > div:last-child {
    min-width: 0;
  }

  .settings-files-index .stg-header > .ar-btn {
    width: 100%;
    justify-content: center;
  }

  .sf-storage-card {
    padding: 0.85rem 1rem;
    margin-bottom: 0;
  }

  .sf-storage-card__header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
  }

  .sf-storage-card__usage {
    text-align: left;
    line-height: 1.45;
  }

  .sf-storage-card__breakdown-sep {
    display: none;
  }

  .sf-storage-card__breakdown {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
  }

  .settings-files__bulk-bar {
    margin-bottom: 0.65rem;
  }

  .bl-table--stacked.settings-files__table .settings-files__td--check::before {
    display: none !important;
    content: none !important;
  }

  .bl-table--stacked.settings-files__table .settings-files__td--check {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-bottom: 0.45rem;
    border-bottom: none;
  }
}

/* ==========================================================================
   Settings users (/settings/users)
   ========================================================================== */

@media (max-width: 767px) {
  .settings-users-index.stg-page {
    gap: 1rem;
  }

  .settings-users-index .stg-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .settings-users-index .stg-header__title {
    font-size: 1.2rem;
    word-break: break-word;
  }

  .settings-users-index .stg-header__subtitle {
    line-height: 1.4;
  }

  .settings-users-index .stg-header__title-row {
    align-items: flex-start;
    min-width: 0;
  }

  .settings-users-index .stg-header__title-row > div:last-child {
    min-width: 0;
  }

  .settings-users-index .stg-header > .ar-btn {
    width: 100%;
    justify-content: center;
  }

  .settings-users-index .su-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .settings-users-index .su-search-form {
    width: 100%;
    flex: 1 1 auto;
  }

  .settings-users-index .su-search {
    min-width: 0;
  }

  .settings-users-index .su-role-filters {
    width: 100%;
  }

  .settings-users-index .su-role-pill {
    flex: 1 1 calc(50% - 0.2rem);
    justify-content: center;
    text-align: center;
  }

  .settings-users-index .su-actions {
    justify-content: flex-start;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
  }

  .settings-users-index .su-action-form {
    display: block;
    width: 100%;
  }

  .settings-users-index .su-action-btn {
    width: 100%;
    justify-content: center;
    min-height: 36px;
  }

  .bl-table--stacked.settings-users__table .bl-table__td--actions {
    padding-top: 0.5rem;
  }
}

/* Questions grid: sidebar beside main squeezes cards on tablet — stack earlier */
@media (min-width: 768px) and (max-width: 1023px) {
  .questions-index__layout {
    flex-direction: column;
  }

  .questions-index__sidebar {
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
    position: static;
  }

  .questions-index__main {
    min-width: 0;
    width: 100%;
  }

  .questions-index .questions-index__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem;
    row-gap: 1.25rem;
  }
}

/* ==========================================================================
   Group show — members tab & page chrome
   ========================================================================== */

@media (max-width: 767px) {
  .groups-show .dashboard-header {
    flex-wrap: wrap !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  .groups-show .dashboard-header > div:last-child {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .groups-show .gs-tags-wrap {
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .groups-show .auth-card.groups-show__main {
    min-width: 0;
    overflow: hidden;
  }

  .groups-show .groups-show__body {
    padding: 0.75rem;
  }

  .groups-show__tabs-bar {
    gap: 0.35rem 0.5rem;
    padding: 0.65rem 0.75rem;
  }

  .groups-show__tabs-bar .cp-tab {
    font-size: 0.8125rem;
    padding: 0.4rem 0.65rem;
  }

  .groups-show .gm-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
  }

  .groups-show .gm-search-wrap {
    max-width: none;
    width: 100%;
  }

  .groups-show .gm-add-btn {
    width: 100%;
    justify-content: center;
    min-height: 40px;
  }

  .groups-show .gm-list {
    gap: 0.65rem;
  }

  .groups-show .gm-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    padding: 0.85rem;
    border: 0.5px solid var(--st-border-tertiary);
    background: var(--st-bg-primary);
    box-shadow: 0 1px 2px rgba(28, 25, 23, 0.04);
  }

  .groups-show .gm-row:hover {
    border-color: var(--st-border-secondary);
  }

  .groups-show .gm-avatar {
    width: 40px;
    height: 40px;
  }

  .groups-show .gm-info {
    flex: 1 1 calc(100% - 52px);
    min-width: 0;
  }

  .groups-show .gm-name,
  .groups-show .gm-email {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
  }

  .groups-show .gm-enrolment--empty {
    display: none;
  }

  .groups-show .gm-enrolment {
    flex: 1 1 100%;
    white-space: normal;
    line-height: 1.35;
  }

  .groups-show .gm-row .cp-badge {
    flex-shrink: 0;
  }

  .groups-show .gm-view-btn {
    flex: 1 1 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin-top: 0.15rem;
    text-align: center;
  }
}

/* ==========================================================================
   Contact show — reports tab & page chrome
   ========================================================================== */

@media (max-width: 767px) {
  .contact-show .contact-show__header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .contact-show__title {
    font-size: 1.25rem;
    word-break: break-word;
  }

  .contact-show__header-actions {
    width: 100%;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .contact-show .auth-card.contact-show__main {
    min-width: 0;
    overflow: hidden;
  }

  .contact-show__body {
    padding: 0.85rem 0.75rem;
  }

  .contact-show__tabs-bar {
    gap: 0.35rem 0.5rem;
    padding: 0.65rem 0.75rem;
  }

  .contact-show__tabs-bar .cp-tab {
    font-size: 0.8125rem;
    padding: 0.4rem 0.65rem;
  }

  .contact-show__reports-tab .cp-tab-heading {
    font-size: 1rem;
    line-height: 1.35;
    word-break: break-word;
  }

  .contact-show__reports-tab .cp-tab-hint {
    line-height: 1.45;
  }

  .contact-show__table-wrap {
    overflow-x: visible;
    border: none;
    background: transparent;
  }

  .contact-show table.data-table--stacked {
    min-width: 0 !important;
    table-layout: auto !important;
    border-collapse: separate;
    border-spacing: 0 0.65rem;
  }

  .contact-show table.data-table--stacked thead {
    display: none;
  }

  .contact-show table.data-table--stacked tbody tr {
    display: block;
    border: 0.5px solid var(--st-border-tertiary);
    border-radius: var(--st-radius-md);
    background: var(--st-bg-primary);
    box-shadow: 0 1px 2px rgba(28, 25, 23, 0.04);
    overflow: hidden;
  }

  .contact-show table.data-table--stacked tbody tr:hover {
    background: var(--st-bg-primary);
  }

  .contact-show table.data-table--stacked tbody td {
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box;
    border: none;
    border-bottom: 0.5px solid var(--st-border-tertiary);
    padding: 0.6rem 0.85rem;
    white-space: normal !important;
    text-align: left !important;
  }

  .contact-show table.data-table--stacked tbody td:last-child {
    border-bottom: none;
  }

  .contact-show table.data-table--stacked tbody td[data-label]:not([data-label=""])::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--st-text-tertiary);
  }

  .contact-show table.data-table--stacked tbody td.contact-show__td--actions {
    padding-top: 0.5rem;
  }

  .contact-show table.data-table--stacked .contact-show__table-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .contact-show table.data-table--stacked .contact-icon-link.contact-show__icon-btn,
  .contact-show table.data-table--stacked button.contact-show__icon-btn {
    width: 40px;
    height: 40px;
  }

  .contact-show table.data-table--stacked .contact-show__table-link,
  .contact-show table.data-table--stacked .contact-show__td--subject {
    word-break: break-word;
  }

  .contact-show .auth-card.contact-show__sidebar {
    min-width: 0;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .contact-show__table-wrap:has(.contact-show__reports-table) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .contact-show table.contact-show__reports-table {
    min-width: 44rem;
  }
}

@media (max-width: 479px) {
  .students-index__view-btn {
    font-size: 0.7rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .students-index__view-btn .students-index__view-icon {
    display: none;
  }

  .groups-show__tabs-bar .cp-tab {
    flex: 1 1 calc(50% - 0.25rem);
    text-align: center;
    min-width: 0;
  }
}
