/* Dashboard shared responsive */
@media (max-width: 1050px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .course-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .list-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 1050px) {
  .users-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .users-clear-filters {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .users-filter-grid,
  .modal-form-grid {
    grid-template-columns: 1fr;
  }

  .users-admin-table {
    overflow-x: auto;
  }

  .users-admin-table .admin-table-head,
  .users-admin-table .admin-row {
    min-width: 730px;
  }

  .admin-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-pagination > div {
    justify-content: space-between;
  }
}

@media (max-width: 520px) {
  .users-kpis {
    grid-template-columns: 1fr 1fr;
  }

  .users-control-panel {
    padding: 14px;
  }

  .admin-pagination > div {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
  }
}

@media (max-width: 800px) {
  .desktop-nav,
  .header-actions {
    display: none;
  }

  .menu-toggle {
    display: block;
  }

  .dashboard-shell {
    display: block;
  }

  .dashboard-body {
    grid-column: auto;
  }

  .dashboard-sidebar {
    transform: translateX(-100%);
    transition: 0.25s ease;
  }

  .dashboard-sidebar.open {
    transform: translateX(0);
  }

  .mobile-overlay.show {
    display: block;
  }

  .mobile-sidebar-toggle {
    display: block;
  }

  .dashboard-topbar {
    padding: 0 18px;
  }

  .topbar-search {
    width: auto;
    flex: 1;
  }

  .topbar-profile > div:not(.avatar) {
    display: none;
  }

  .dashboard-content {
    padding: 23px 18px 45px;
  }

  .content-grid,
  .content-grid.equal {
    grid-template-columns: 1fr;
  }

  .list-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .data-table {
    min-width: 680px;
  }

  .table-card {
    overflow: auto;
  }
}

@media (max-width: 550px) {
  .page-header {
    flex-direction: column;
  }

  .page-actions {
    width: 100%;
    overflow: auto;
  }

  .stats-grid,
  .course-grid,
  .list-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-content {
    padding-inline: 14px;
  }

  .dashboard-topbar {
    gap: 8px;
    padding-inline: 12px;
  }

  .topbar-search input {
    padding-left: 36px;
  }

  .topbar-actions .icon-button:first-child {
    display: none;
  }

  .topbar-profile {
    padding-left: 7px;
  }

  .welcome-card {
    padding: 22px;
  }

  .card-pad {
    padding: 15px;
  }

  .chart-wrap {
    height: 180px;
  }

  .dashboard-sidebar {
    width: min(86vw, 280px);
  }

  .toast-region {
    left: 14px;
    right: 14px;
  }

  .toast {
    text-align: center;
  }
}

@media (max-width: 550px) {
  .dashboard-body {
    width: 100%;
    overflow: hidden;
  }

  .dashboard-content > * {
    min-width: 0;
  }

  .topbar-profile {
    display: none;
  }

  .topbar-search input {
    min-width: 0;
  }

  .welcome-card {
    width: 100%;
    max-width: 100%;
  }
}
@media (max-width: 1250px) {
  .curriculum-grid {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
  }

  .curriculum-course-row {
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
  }

  .curriculum-course-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 900px) {
  .curriculum-toolbar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .courses-header-actions {
    justify-content: flex-start;
  }

  .curriculum-card-statistics {
    grid-template-columns: repeat(2, 1fr);
  }

  .curriculum-card-statistics div:nth-child(2) {
    border-right: 0;
  }

  .curriculum-card-statistics div:nth-child(-n + 2) {
    border-bottom: 1px solid #edf0f2;
  }
}

@media (max-width: 680px) {
  .curriculum-grid {
    grid-template-columns: 1fr;
  }

  .curriculum-toolbar-grid {
    grid-template-columns: 1fr;
  }

  .curriculum-card.is-expanded {
    grid-column: auto;
  }

  .curriculum-card-header {
    align-items: stretch;
    flex-direction: column;
  }

  .curriculum-card-status {
    align-self: flex-start;
  }

  .curriculum-grade-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .curriculum-grade-summary {
    width: 100%;
    justify-content: space-between;
  }

  .curriculum-course-row {
    grid-template-columns: 1fr;
  }

  .curriculum-course-actions {
    grid-column: auto;
    justify-content: flex-start;
  }

  .curriculum-course-meta {
    align-items: flex-start;
    flex-direction: column;
  }

  .courses-header-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .courses-header-actions .button {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .curriculum-card-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .curriculum-card-actions .button {
    width: 100%;
  }

  .curriculum-subject-tags {
    display: grid;
    grid-template-columns: 1fr;
  }

  .course-detail-grid p {
    grid-template-columns: 1fr;
    gap: 5px;
  }
}
@media (max-width: 760px) {
  .curriculum-grade-header {
    grid-template-columns: 1fr;
  }

  .curriculum-grade-actions {
    justify-content: flex-start;
    padding: 0 14px 12px;
  }

  .curriculum-grade-toggle {
    align-items: flex-start;
    flex-direction: column;
  }

  .curriculum-grade-summary {
    width: 100%;
    justify-content: space-between;
  }
}
@media (max-width: 850px) {
  .curriculum-subject-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .curriculum-subject-meta {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .curriculum-subject-row {
    grid-template-columns: 1fr;
  }

  .curriculum-subject-actions {
    justify-content: flex-start;
  }

  .curriculum-subject-meta {
    grid-column: auto;
  }

  .curriculum-subject-heading {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (max-width: 560px) {
  .curriculum-subject-heading-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .curriculum-subject-heading-actions .button {
    width: 100%;
  }
}
.curriculum-subject-row.is-assignment-inactive {
  border-style: dashed;
  opacity: 0.72;
}

@media (max-width: 700px) {
  .teacher-course-form-grid {
    grid-template-columns: 1fr;
  }

  .teacher-course-card-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .teacher-course-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .teacher-course-actions .button {
    width: 100%;
  }
}
@media (max-width: 900px) {
  .enrollment-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .enrollment-filter-grid,
  .enrollment-form-grid {
    grid-template-columns: 1fr;
  }

  .enrollment-filter-actions .button {
    width: 100%;
  }

  .enrollment-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .enrollment-pagination .button {
    width: 100%;
  }
}
@media (max-width: 700px) {
  .student-course-summary {
    grid-template-columns: 1fr;
  }

  .student-course-card-header,
  .parent-child-card-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .student-course-actions,
  .parent-child-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .student-course-actions .button,
  .parent-child-actions .button {
    width: 100%;
  }
}

@media (max-width: 800px) {
  .student-course-detail-layout {
    grid-template-columns: 1fr;
  }

  .student-course-detail-heading {
    flex-direction: column;
  }

  .student-course-detail-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .student-course-detail-actions .button {
    width: 100%;
  }
}

@media (max-width: 900px) {
  .ask-room-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ask-toolbar,
  .ask-page-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .ask-thread-actions {
    width: 100%;
  }

  .ask-filter-bar,
  .ask-reply {
    flex-direction: column;
  }
}

@media (max-width: 600px) {
  .ask-room-grid {
    grid-template-columns: 1fr;
  }

  .ask-thread-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .ask-room-card-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}
.teacher-course footer button[disabled],
.student-course .course-actions button[disabled] {
  display: none;
}
.teacher-roster-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  text-align: left;
}
.roster-student {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 1px solid #e3e6ea;
  border-radius: 14px;
}
.roster-student strong,
.roster-student small {
  display: block;
}
.roster-student small {
  margin-top: 4px;
  color: #687180;
}
.insight-summary {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr;
  align-items: center;
  gap: 10px;
  text-align: left;
}
.insight-summary strong {
  font: 800 30px Manrope;
  color: #5749ed;
}
.availability-note {
  max-width: 280px;
  color: #687180;
  font-size: 11px;
  text-align: right;
}
.resource-list {
  display: grid;
  gap: 10px;
}
.resource-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px;
  border: 1px solid #e3e6ea;
  border-radius: 14px;
}
.resource-item strong,
.resource-item small {
  display: block;
}
.resource-item small {
  margin-top: 4px;
  color: #5749ed;
}
.resource-item p {
  margin: 5px 0;
  color: #687180;
}
.resource-item a {
  padding: 8px 13px;
  border-radius: 11px;
  color: #fff;
  background: #5749ed;
  text-decoration: none;
  font-weight: 700;
}
.catalog-grade-card > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.catalog-grade-card b {
  padding: 4px 7px;
  border-radius: 8px;
  color: #5749ed;
  background: #eeecff;
  font-size: 9px;
}
.catalog-subject-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.catalog-subject-chips span {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  border: 1px solid #e3e6ea;
  border-radius: 10px;
  color: #454c59;
  background: #fafafd;
  font-size: 9px;
}
.catalog-subject-chips small {
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  color: #fff;
  background: #5749ed;
  font-size: 8px;
}
@media (max-width: 800px) {
  .section-search {
    min-width: 100%;
    order: 3;
  }
  .admin-header,
  .teacher-header,
  .student-header {
    flex-wrap: wrap;
  }
  .ask-room-grid,
  .teacher-roster-grid {
    grid-template-columns: 1fr;
  }
  .notification-row,
  .ask-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .timetable-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .timetable-actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 800px) {
  .notifications-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .notifications-toolbar-actions {
    width: 100%;
  }

  .notification-item {
    grid-template-columns: minmax(0, 1fr);
  }

  .notification-actions {
    justify-content: flex-start;
    padding-left: 50px;
  }
}

@media (max-width: 520px) {
  .notification-main {
    grid-template-columns: minmax(0, 1fr);
  }

  .notification-type-icon {
    display: none;
  }

  .notification-actions {
    padding-left: 0;
  }

  .notifications-toolbar-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 720px) {
  .announcement-card-header {
    display: grid;
  }

  .announcement-card-header time {
    white-space: normal;
  }

  .announcements-toolbar,
  .announcement-attachment {
    align-items: stretch;
  }

  .announcements-toolbar label {
    width: 100%;
  }

  .announcement-attachment {
    flex-wrap: wrap;
  }
}

@media (max-width: 720px) {
  .live-session-toolbar,
  .live-session-heading {
    display: grid;
  }

  .live-session-toolbar input,
  .live-session-toolbar select {
    width: 100%;
  }
}

@media (max-width: 720px) {
  .certificate-feed-card {
    grid-template-columns: 1fr;
  }

  .certificate-feed-actions {
    align-items: stretch;
  }

  .verification-result dl {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .teacher-feedback-card-header,
  .teacher-feedback-toolbar {
    display: grid;
  }

  .teacher-feedback-toolbar input,
  .teacher-feedback-toolbar select {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .poll-card-header {
    display: grid;
  }

  .reschedule-options {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 820px) {
  .attendance-roster-wrapper {
    overflow-x: auto;
  }

  .attendance-roster-table {
    min-width: 920px;
  }

  .class-report-card-header,
  .session-report-card-header {
    display: grid;
  }
}
