/* T23.7 全站响应式专层：纯 CSS，不依赖 JavaScript */
@media (max-width: 1024px) {
  body:not(:has(.admin-layout)) .container { padding-left: 18px; padding-right: 18px; }
  body:not(:has(.admin-layout)) .resource-grid-enhanced,
  body:not(:has(.admin-layout)) .resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body:not(:has(.admin-layout)) .rd-layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; }
  body:not(:has(.admin-layout)) .hp-container { padding-left: 20px; padding-right: 20px; }
}

@media (max-width: 768px) {
  body:not(:has(.admin-layout)) { overflow-x: hidden; }
  body:not(:has(.admin-layout)) .site-header { position: sticky; top: 0; }
  body:not(:has(.admin-layout)) .header-container {
    align-items: center;
    flex-wrap: wrap;
    height: auto;
    min-height: 56px;
    padding: 6px 16px 0;
  }
  body:not(:has(.admin-layout)) .logo { flex: 1 1 auto; font-size: 18px; margin-right: 8px; }
  body:not(:has(.admin-layout)) .header-actions { flex: 0 0 auto; margin-left: auto; }
  body:not(:has(.admin-layout)) .site-header .header-search { display: none; }
  body:not(:has(.admin-layout)) .site-header .main-nav {
    display: flex;
    flex: 0 0 100%;
    gap: 4px;
    order: 3;
    max-width: 100%;
    overflow-x: auto;
    padding: 4px 0 7px;
    scrollbar-width: none;
    white-space: nowrap;
  }
  body:not(:has(.admin-layout)) .site-header .main-nav::-webkit-scrollbar { display: none; }
  body:not(:has(.admin-layout)) .site-header .main-nav a {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 44px;
    padding: 7px 13px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--bg-card);
    color: var(--text-muted);
    font-size: 14px;
    text-decoration: none;
  }
  body:not(:has(.admin-layout)) .site-header .main-nav a:hover,
  body:not(:has(.admin-layout)) .site-header .main-nav a:focus { background: var(--brand-cyan-soft); border-color: var(--line-brand); color: var(--brand-cyan); }
  body:not(:has(.admin-layout)) .user-info .points-badge,
  body:not(:has(.admin-layout)) .user-menu .btn-admin { display: none; }
  body:not(:has(.admin-layout)) .user-menu { gap: 5px; }
  body:not(:has(.admin-layout)) .resource-grid-enhanced,
  body:not(:has(.admin-layout)) .resource-grid,
  body:not(:has(.admin-layout)) .hp-resource-grid,
  body:not(:has(.admin-layout)) .friend-list { grid-template-columns: 1fr; }
  body:not(:has(.admin-layout)) .rd-layout { grid-template-columns: 1fr; }
  body:not(:has(.admin-layout)) .rd-sidebar { position: static; }
  body:not(:has(.admin-layout)) .user-dashboard { grid-template-columns: 1fr; }
  body:not(:has(.admin-layout)) .user-sidebar { order: -1; }
  body:not(:has(.admin-layout)) .data-table { display: block; max-width: 100%; overflow-x: auto; white-space: nowrap; }
  body:not(:has(.admin-layout)) .data-table th,
  body:not(:has(.admin-layout)) .data-table td { min-width: 120px; }
  body:not(:has(.admin-layout)) .profile-header { align-items: flex-start; flex-direction: column; }
  body:not(:has(.admin-layout)) .profile-actions,
  body:not(:has(.admin-layout)) .rd-actions { flex-wrap: wrap; }
  body:not(:has(.admin-layout)) .friend-search-form { flex-wrap: wrap; }
  body:not(:has(.admin-layout)) .friend-search-input { flex: 1 1 100%; min-height: 44px; }
  body:not(:has(.admin-layout)) .friend-search-btn { flex: 1 1 100%; }
  body:not(:has(.admin-layout)) .share-modal { max-width: calc(100vw - 32px); }
  body:not(:has(.admin-layout)) .share-modal-body { max-height: 60vh; overflow-y: auto; }
}

@media (max-width: 520px) {
  body:not(:has(.admin-layout)) .container { padding-left: 16px; padding-right: 16px; }
  body:not(:has(.admin-layout)) .header-container { padding-left: 12px; padding-right: 12px; }
  body:not(:has(.admin-layout)) .logo { font-size: 17px; }
  body:not(:has(.admin-layout)) .auth-page .auth-form,
  body:not(:has(.admin-layout)) .upload-form,
  body:not(:has(.admin-layout)) .rd-card,
  body:not(:has(.admin-layout)) .content-detail { padding: 18px 16px; }
  body:not(:has(.admin-layout)) h1 { font-size: 26px; }
  body:not(:has(.admin-layout)) h2 { font-size: 21px; }
  body:not(:has(.admin-layout)) h3 { font-size: 17px; }
  body:not(:has(.admin-layout)) .btn-primary,
  body:not(:has(.admin-layout)) .friend-btn,
  body:not(:has(.admin-layout)) .friend-search-btn { min-height: 44px; }
  body:not(:has(.admin-layout)) .section-header { align-items: flex-start; flex-direction: column; gap: 14px; }
  body:not(:has(.admin-layout)) .section-header .btn-primary { width: 100%; text-align: center; }
  body:not(:has(.admin-layout)) .filter-row,
  body:not(:has(.admin-layout)) .form-row { display: block; }
  body:not(:has(.admin-layout)) .filter-group,
  body:not(:has(.admin-layout)) .form-group { margin-bottom: 16px; }
  body:not(:has(.admin-layout)) .hp-hero h1 { font-size: 28px; }
  body:not(:has(.admin-layout)) .hp-hero-search { width: 100%; }
}

/* T34 批次 A：大屏与触控层（设备能力媒体特性，不按屏幕宽度判断触控） */
@media (min-width: 1440px) {
  .admin-layout .admin-content { max-width: 1680px; padding-left: 48px; padding-right: 48px; }
  .admin-layout table th, .admin-layout table td, .admin-layout .data-table th, .admin-layout .data-table td { padding: 17px 20px; }
  .admin-layout .btn, .admin-layout button, .admin-layout input[type="submit"] { min-height: 46px; padding: 10px 19px; }
  body:not(:has(.admin-layout)) .container { max-width: 1280px; }
  body:not(:has(.admin-layout)) .content-detail, body:not(:has(.admin-layout)) .rd-card { max-width: 1280px; }
}
@media (min-width: 2200px) {
  .admin-layout .admin-content { max-width: 1840px; }
  body:not(:has(.admin-layout)) .container { max-width: 1440px; }
}
@media (hover: none) and (pointer: coarse) {
  .admin-layout .btn, .admin-layout button, .admin-layout input[type="submit"],
  .admin-layout .pagination a, .admin-layout .pagination span,
  body:not(:has(.admin-layout)) .btn, body:not(:has(.admin-layout)) button,
  body:not(:has(.admin-layout)) .pagination a,
  body:not(:has(.admin-layout)) .episode-select,
  body:not(:has(.admin-layout)) .site-header .main-nav a { min-height: 44px; }
  .admin-layout .btn:active, .admin-layout button:active,
  body:not(:has(.admin-layout)) .btn:active, body:not(:has(.admin-layout)) button:active,
  body:not(:has(.admin-layout)) .pagination a:active,
  body:not(:has(.admin-layout)) .episode-select:active { transform: translateY(1px); filter: brightness(.94); }
  .admin-layout input, .admin-layout select, .admin-layout textarea,
  body:not(:has(.admin-layout)) input, body:not(:has(.admin-layout)) select, body:not(:has(.admin-layout)) textarea { min-height: 44px; }
}
