/* ===== 1400px 以下 ===== */
@media (max-width: 1400px) {
  .client-window {
    max-width: 1280px;
  }
}

/* ===== 1200px 以下 ===== */
@media (max-width: 1200px) {
  .desktop-canvas {
    padding: 24px;
  }

  .client-window {
    max-width: 100%;
    height: calc(100vh - 48px);
  }

  .content {
    padding: 24px;
  }

  .kpi-grid {
    gap: 16px;
  }

  .insights-grid {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  .insights-grid--reverse {
    grid-template-columns: 1fr 1fr;
  }

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

/* ===== 1024px 以下：侧边栏折叠 ===== */
@media (max-width: 1024px) {
  .desktop-canvas {
    padding: 16px;
  }

  .client-window {
    height: calc(100vh - 32px);
    border-radius: 14px;
  }

  .window-titlebar {
    height: 38px;
    padding: 0 12px;
  }

  .window-titlebar__title {
    font-size: 12px;
  }

  .window-titlebar__logo {
    width: 16px;
    height: 16px;
  }

  .window-titlebar__spacer {
    width: 58px;
  }

  .window-control {
    width: 10px;
    height: 10px;
  }

  .app {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: fixed;
    left: 16px;
    top: 54px;
    bottom: 16px;
    height: auto;
    width: 260px;
    border-radius: 12px;
    transform: translateX(-120%);
    box-shadow: var(--shadow-xl);
    z-index: 150;
  }

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

  body.sidebar-open::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    z-index: 99;
    animation: fadeIn 0.2s ease-out;
  }

  .main-area {
    grid-column: 1;
  }

  .header {
    padding: 0 20px;
  }

  .header__menu-toggle {
    display: flex;
  }

  .header__logo {
    display: block;
  }

  .header__greeting {
    font-size: 18px;
  }

  .content {
    padding: 20px;
  }

  .dashboard__title,
  .page-header__title {
    font-size: 22px;
  }

  .page-header {
    flex-direction: column;
    gap: 12px;
  }

  .page-header__actions {
    width: 100%;
  }

  .exam-main {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto;
  }

  .exam-panel {
    border-left: none;
    border-top: 1px solid var(--color-border);
    order: 2;
  }

  .exam-grid {
    grid-template-columns: repeat(10, 1fr);
  }

  .filter-bar {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ===== 768px 以下：窗口接近全屏 ===== */
@media (max-width: 768px) {
  .desktop-canvas {
    padding: 8px;
  }

  .client-window {
    height: calc(100vh - 16px);
    border-radius: 12px;
    box-shadow:
      0 16px 48px rgba(0, 0, 0, 0.18),
      0 6px 16px rgba(0, 0, 0, 0.1);
  }

  .window-titlebar {
    height: 36px;
  }

  .window-titlebar__title span {
    display: none;
  }

  .kpi-grid {
    grid-template-columns: 1fr;
  }

  .insights-grid {
    grid-template-columns: 1fr;
  }

  .insights-grid--reverse {
    grid-template-columns: 1fr;
  }

  .chart-wrap {
    height: 200px;
  }

  .efficiency-grid {
    grid-template-columns: 1fr;
  }

  .header {
    padding: 0 16px;
  }

  .header__actions {
    gap: 8px;
  }

  .btn--premium span {
    display: none;
  }

  .btn--premium {
    padding: 10px;
  }

  .content {
    padding: 16px;
  }

  .section,
  .insight-card,
  .kpi-card {
    padding: 18px;
  }

  .recommend-card {
    padding: 14px 16px;
  }

  .recommend-card__title {
    font-size: 14px;
  }

  .recommend-card__meta {
    font-size: 12px;
  }

  .current-score__from,
  .current-score__to {
    font-size: 32px;
  }

  .countdown__value {
    font-size: 38px;
  }

  .score-ring {
    width: 100px;
    height: 100px;
  }

  .score-ring__value {
    font-size: 28px;
  }

  .card-grid,
  .card-grid--4,
  .card-grid--3,
  .card-grid--2 {
    grid-template-columns: 1fr;
  }

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

  .diagnosis-feedback {
    grid-template-columns: 1fr;
  }

  .diagnosis-compare__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .diagnosis-compare__value {
    text-align: left;
  }

  .diagnosis-rubric__row {
    grid-template-columns: 110px 1fr 32px;
  }

  .diagnosis-compare__breakdown-row {
    grid-template-columns: 50px 1fr 32px 90px;
    gap: 10px;
  }

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

  .diagnosis-mistake {
    grid-template-columns: 1fr;
  }

  .mistake-summary {
    grid-template-columns: 1fr;
  }

  .mistake-item__time {
    margin-left: 0;
  }

  .exam-topbar {
    padding: 10px 16px;
    flex-wrap: wrap;
    gap: 10px;
  }

  .exam-topbar__timer {
    font-size: 15px;
    padding: 6px 12px;
  }

  .exam-question {
    padding: 20px;
  }

  .exam-grid {
    grid-template-columns: repeat(8, 1fr);
  }

  .tabs {
    width: 100%;
  }

  .tab {
    flex: 1;
    text-align: center;
  }

  .search-input {
    width: 100%;
    min-width: auto;
  }

  .data-table {
    font-size: 13px;
  }

  .data-table th,
  .data-table td {
    padding: 10px 12px;
  }
}

/* ===== 480px 以下 ===== */
@media (max-width: 480px) {
  .desktop-canvas {
    padding: 0;
  }

  .client-window {
    height: 100vh;
    max-height: 100vh;
    border-radius: 0;
    border: none;
    box-shadow: none;
  }

  .window-titlebar {
    border-radius: 0;
  }

  .client-window__resize-handle {
    display: none;
  }

  .history-item {
    flex-wrap: wrap;
    gap: 10px;
  }

  .history-item__breakdown {
    order: 3;
    width: 100%;
    margin-left: 64px;
  }

  .history-item__arrow {
    display: none;
  }

  .vip-plans {
    grid-template-columns: 1fr;
  }

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

  .profile-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .profile-card__actions {
    width: 100%;
  }

  .profile-card__actions .btn {
    flex: 1;
  }

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

  .header__greeting {
    font-size: 16px;
  }

  .dashboard__title,
  .page-header__title {
    font-size: 20px;
  }

  .dashboard__subtitle {
    font-size: 13px;
  }

  .section__title {
    font-size: 15px;
  }

  .weakness-item__main {
    flex-direction: column;
    gap: 8px;
  }

  .weakness-item__subject {
    align-self: flex-start;
  }

  .exam-grid {
    grid-template-columns: repeat(6, 1fr);
  }

  .exam-toolbar {
    flex-direction: column;
    gap: 12px;
  }

  .filter-options {
    width: 100%;
  }
}

/* ===== TOEFL Test Responsive ===== */
@media (max-width: 1200px) {
  .test_body,
  .test_page,
  .test_header_main {
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media (max-width: 1024px) {
  .test_header {
    height: auto;
    min-height: 56px;
  }

  .test_header_main {
    flex-wrap: wrap;
    padding: 8px 16px;
    gap: 8px;
  }

  .header_left,
  .header_right {
    flex-wrap: wrap;
  }

  .header_logo::after {
    display: none;
  }

  .test_body {
    padding: 20px;
  }

  .test_page {
    flex-wrap: wrap;
    gap: 10px;
  }

  .page {
    order: 2;
    width: 100%;
  }

  .flag {
    order: 1;
  }
}

@media (max-width: 768px) {
  .header_time div:last-child {
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .header_btn > div,
  .header_right .btn {
    padding: 0 8px;
    font-size: 10px;
  }

  .test_body {
    padding: 16px;
  }

  .modal-overlay--fullscreen {
    padding: 16px;
  }
}

@media (max-width: 480px) {
  .header_right .btn-group:nth-child(2),
  .header_right #clearHighlightBtn {
    display: none;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
