/* 资源广场 — 对齐设计稿（顶部背景图 + 榜单轮播） */
#page-resource-square.page-section {
  padding: 0;
  overflow: auto;
  background: #f6f8fc;
}

.rsq-page {
  position: relative;
  min-height: 100%;
  padding: 0 24px 48px;
  max-width: 1520px;
  margin: 0 auto;
}

.rsq-page-toolbar {
  position: absolute;
  top: 14px;
  right: 28px;
  z-index: 40;
  display: flex;
  gap: 8px;
}

.rsq-toolbar-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 14px;
  border: 1px solid rgba(230,51,35, 0.35);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  color: #e63323;
  font-size: 12px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(230,51,35, 0.12);
}

.rsq-module-stack {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}

.rsq-module {
  position: relative;
  min-width: 0;
}

.rsq-module-hero { grid-column: 1 / -1; }
.rsq-module-rank { grid-column: span 2; }
.rsq-module-type { grid-column: span 3; }
.rsq-module-type.is-wide { grid-column: 1 / -1; }
.rsq-module-featured { grid-column: span 3; }

/* 榜单轮播：中间 3 个完整 + 两侧各半幅模糊 */
.rsq-rank-carousel-wrap {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  gap: 0;
  align-items: center;
  padding: 8px 12px 28px;
  margin-top: 4px;
}

.rsq-rank-carousel-viewport {
  position: relative;
  overflow: hidden;
  min-height: 340px;
}

.rsq-rank-carousel-track {
  display: flex;
  align-items: stretch;
  height: 100%;
  transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
  will-change: transform;
}

.rsq-rank-carousel-track > .rsq-module-rank {
  flex: 0 0 25%;
  min-width: 0;
  padding: 0 8px;
  box-sizing: border-box;
  transition:
    filter 0.5s cubic-bezier(0.25, 0.8, 0.25, 1),
    opacity 0.5s cubic-bezier(0.25, 0.8, 0.25, 1),
    transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.rsq-rank-carousel-track > .rsq-module-rank.is-center {
  filter: none;
  opacity: 1;
  transform: scale(1);
  z-index: 2;
}

.rsq-rank-carousel-track > .rsq-module-rank.is-peek {
  filter: blur(2px);
  opacity: 0.55;
  transform: scale(0.96);
  z-index: 1;
  pointer-events: none;
}

.rsq-rank-carousel-track > .rsq-module-rank.is-far {
  filter: blur(4px);
  opacity: 0.2;
  transform: scale(0.92);
  pointer-events: none;
}

.rsq-rank-carousel-mask {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 14%;
  z-index: 3;
  pointer-events: none;
}

.rsq-rank-mask-left {
  left: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 100%);
}

.rsq-rank-mask-right {
  right: 0;
  background: linear-gradient(270deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 100%);
}

.rsq-carousel-arrow {
  align-self: center;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: linear-gradient(145deg, #f2796b 0%, #e63323 100%);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(230,51,35, 0.45);
  transition: transform 0.2s, opacity 0.2s, box-shadow 0.2s;
  z-index: 5;
}

.rsq-carousel-arrow:hover:not(:disabled) {
  transform: scale(1.06);
}

.rsq-carousel-arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  transform: none;
}

.rsq-module-rank.is-hidden,
.rsq-rank-carousel-wrap.is-hidden,
.rsq-type-module.is-hidden {
  display: none;
}

/* Hero 一体化区域（背景图 2） */
.rsq-hero-zone {
  grid-column: 1 / -1;
}

.rsq-hero {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  background: #eef3ff;
  box-shadow: 0 16px 48px -24px rgba(192,39,27, 0.35);
}

.rsq-hero-bg {
  position: absolute;
  inset: 0;
  background: url('../assets/rsq-hero-bg.png') center top / cover no-repeat;
  z-index: 0;
  pointer-events: none;
}

.rsq-hero-inner {
  position: relative;
  z-index: 2;
  padding: 36px 40px 12px;
  text-align: center;
}

.rsq-hero-title {
  margin: 0 0 14px;
  font-size: 32px;
  font-weight: 700;
  color: #2d3a52;
  letter-spacing: 0.02em;
}

.rsq-hero-title em {
  font-style: normal;
  color: #9e1f15;
}

.rsq-hero-hi {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-right: 8px;
  border-radius: 50%;
  background: linear-gradient(145deg, #f2796b, #c0271b);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  vertical-align: 4px;
  box-shadow: 0 4px 12px rgba(192,39,27, 0.4);
}

.rsq-ticker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: min(720px, 92%);
  margin: 0 auto 22px;
  padding: 8px 20px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 4px 16px rgba(192,39,27, 0.08);
}

.rsq-ticker-icon {
  color: #e63323;
  flex-shrink: 0;
}

.rsq-ticker-text {
  margin: 0;
  font-size: 12px;
  color: #5b6b88;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rsq-hero-search {
  display: flex;
  align-items: center;
  max-width: 680px;
  height: 52px;
  margin: 0 auto 18px;
  padding: 0 6px 0 18px;
  border-radius: 999px;
  border: 2px solid rgba(242,121,107, 0.65);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 10px 32px -12px rgba(230,51,35, 0.35);
}

.rsq-search-icon {
  color: #a0aec8;
  flex-shrink: 0;
}

.rsq-hero-search input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 14px;
  margin: 0 10px;
  color: #2a3550;
}

.rsq-hero-search-btn {
  height: 40px;
  padding: 0 24px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, #e63323, #f2796b);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.rsq-ai-rec-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 24px;
  max-width: 920px;
  margin: 0 auto;
}

.rsq-hero-side-ctrl {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.rsq-rank-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #5b6b88;
  cursor: pointer;
}

.rsq-rank-toggle input {
  position: absolute;
  opacity: 0;
}

.rsq-switch {
  position: relative;
  width: 40px;
  height: 22px;
  border-radius: 999px;
  background: #d5dae8;
}

.rsq-switch::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.2s;
}

.rsq-rank-toggle input:checked + .rsq-switch {
  background: #e63323;
}

.rsq-rank-toggle input:checked + .rsq-switch::after {
  transform: translateX(18px);
}

.rsq-rank-board-btn {
  height: 34px;
  padding: 0 16px;
  border: 1px solid #f5c6c0;
  border-radius: 10px;
  background: #fff;
  color: #e63323;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.rsq-rank-board-btn.is-active {
  border-color: #e63323;
  background: linear-gradient(145deg, #f2796b 0%, #e63323 100%);
  color: #fff;
  box-shadow: 0 4px 14px rgba(230,51,35, 0.35);
}

.rsq-stat-range-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  border: 1px solid #e0e6f2;
  border-radius: 10px;
  background: #fff;
  color: #5b6b88;
  font-size: 13px;
  cursor: pointer;
}

.rsq-ai-rec {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 8px 12px;
  font-size: 13px;
  flex: 1;
  min-width: 200px;
}

.rsq-ai-rec-label {
  color: #e63323;
  font-weight: 600;
}

.rsq-ai-rec-links a {
  color: #4a5568;
  text-decoration: none;
}

.rsq-ai-rec-links a:hover {
  color: #e63323;
}

.rsq-fire {
  margin-right: 2px;
}

/* 排行面板 */
.rsq-panel {
  height: 100%;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  padding: 18px 18px 14px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 10px 36px -16px rgba(158,31,21, 0.18);
}

.rsq-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.rsq-panel-head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  color: #3d4d6b;
}

.rsq-panel-head-center {
  justify-content: center;
}

.rsq-panel-head-center h3 {
  font-size: 16px;
  color: #e63323;
}

.rsq-sparkle {
  color: #f5c6c0;
  margin: 0 6px;
}

.rsq-mini-select {
  height: 26px;
  padding: 0 8px;
  border: 1px solid #e8ecf4;
  border-radius: 6px;
  background: #f8faff;
  font-size: 11px;
  color: #5b6b88;
}

.rsq-user-rank {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rsq-user-rank li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-user-rank li:last-child {
  border-bottom: none;
}

.rsq-medal {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: #eef1f7;
  color: #8b95a8;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}

.rsq-medal-1 {
  background: linear-gradient(135deg, #ffe08a, #ffc93c);
  color: #9a6700;
  clip-path: polygon(50% 0%, 100% 28%, 82% 100%, 18% 100%, 0% 28%);
}

.rsq-medal-2 {
  background: linear-gradient(135deg, #e8ebf2, #c5cede);
  color: #5c667a;
  clip-path: polygon(50% 0%, 100% 28%, 82% 100%, 18% 100%, 0% 28%);
}

.rsq-medal-3 {
  background: linear-gradient(135deg, #ffd0a8, #f0a060);
  color: #9a4d12;
  clip-path: polygon(50% 0%, 100% 28%, 82% 100%, 18% 100%, 0% 28%);
}

.rsq-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #fde8e6, #f5c6c0);
  color: #e63323;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.rsq-user-rank div {
  flex: 1;
  min-width: 0;
}

.rsq-user-rank strong {
  display: block;
  font-size: 13px;
  color: #2f3a53;
}

.rsq-user-rank span {
  font-size: 11px;
  color: #8b95a8;
}

.rsq-user-rank em {
  font-style: normal;
  font-size: 13px;
  font-weight: 600;
  color: #e63323;
}

.rsq-panel-foot-link {
  display: block;
  margin-top: 10px;
  text-align: center;
  font-size: 12px;
  color: #e63323;
  text-decoration: none;
}

.rsq-hot-table-wrap {
  overflow-x: auto;
}

.rsq-hot-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.rsq-hot-table th {
  padding: 8px 6px;
  text-align: left;
  color: #8b95a8;
  font-weight: 500;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-hot-table td {
  padding: 10px 6px;
  color: #4a5568;
  border-bottom: 1px solid #f8f9fc;
}

.rsq-hot-name {
  color: #2f3a53;
  max-width: 140px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rsq-pill-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
}

.rsq-pill-yellow { background: #fef3f2; color: #a16207; }
.rsq-pill-blue { background: #fde8e6; color: #9e1f15; }
.rsq-pill-cyan { background: #fde8e6; color: #9e1f15; }
.rsq-pill-green { background: #fde8e6; color: #e63323; }
.rsq-pill-orange { background: #fef3f2; color: #c0271b; }

/* 资源类型大卡片 */
.rsq-type-card {
  height: 100%;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 28px -16px rgba(158,31,21, 0.25);
  position: relative;
}

.rsq-type-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 120px;
  height: 120px;
  border-radius: 0 0 80% 0;
  opacity: 0.35;
  pointer-events: none;
}

.rsq-theme-blue::before { background: linear-gradient(135deg, #f5c6c0, transparent); }
.rsq-theme-purple::before { background: linear-gradient(135deg, #fde8e6, transparent); }
.rsq-theme-cyan::before { background: linear-gradient(135deg, #f8a99e, transparent); }
.rsq-theme-violet::before { background: linear-gradient(135deg, #fde8e6, transparent); }

.rsq-type-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  position: relative;
  z-index: 1;
}

.rsq-type-card-title {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rsq-type-card-title h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
}

.rsq-theme-blue .rsq-type-card-title h3 { color: #c0271b; }
.rsq-theme-purple .rsq-type-card-title h3 { color: #e63323; }
.rsq-theme-cyan .rsq-type-card-title h3 { color: #c0271b; }
.rsq-theme-violet .rsq-type-card-title h3 { color: #c0271b; }

.rsq-type-icon {
  font-size: 20px;
}

.rsq-type-more {
  font-size: 13px;
  color: #e63323;
  text-decoration: none;
}

.rsq-type-card-body {
  position: relative;
  z-index: 1;
  min-height: 300px;
}

.rsq-type-card-body.has-sidebar {
  display: grid;
  grid-template-columns: 118px 1fr;
}

.rsq-unit-tabs {
  list-style: none;
  margin: 0;
  padding: 8px;
  background: #f4f7fc;
  border-right: 1px solid #eef1f7;
}

.rsq-unit-tabs li {
  margin-bottom: 6px;
}

.rsq-unit-tab {
  width: 100%;
  padding: 8px 10px;
  border: none;
  border-radius: 8px;
  background: transparent;
  text-align: left;
  font-size: 12px;
  color: #5b6b88;
  cursor: pointer;
  line-height: 1.35;
}

.rsq-unit-tab.active {
  background: #fff;
  color: #e63323;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(230,51,35, 0.12);
}

.rsq-resource-list {
  padding: 4px 12px 12px;
}

.rsq-resource-item {
  padding: 14px 8px;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-resource-item:last-child {
  border-bottom: none;
}

.rsq-resource-item-with-file {
  display: flex;
  gap: 12px;
}

.rsq-file-block {
  width: 44px;
  height: 52px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}

.rsq-file-pdf { background: linear-gradient(180deg, #f87171, #dc2626); }
.rsq-file-doc { background: linear-gradient(180deg, #f2796b, #c0271b); }
.rsq-file-wma { background: linear-gradient(180deg, #f2796b, #e63323); }

.rsq-resource-title-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}

.rsq-resource-title-row h4 {
  margin: 0;
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  color: #2f3a53;
}

.rsq-badge {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 500;
}

.rsq-badge-star { background: #fde8e6; color: #e63323; }
.rsq-badge-hot { background: #fee2e2; color: #dc2626; }
.rsq-badge-school { background: #fde8e6; color: #9e1f15; }
.rsq-badge-official { background: #fef3f2; color: #c0271b; }

.rsq-meta-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}

.rsq-meta-tag {
  padding: 2px 8px;
  border-radius: 4px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 11px;
}

.rsq-meta-tag-type {
  background: #fde8e6;
  color: #e63323;
}

.rsq-resource-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 11px;
  color: #94a3b8;
}

/* 简易列表（试卷/教参） */
.rsq-simple-list .rsq-simple-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-simple-row span:first-child {
  flex: 1;
  font-size: 14px;
  color: #2f3a53;
  line-height: 1.4;
}

.rsq-simple-tags {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

/* 示范课横向卡片 */
.rsq-gallery-body {
  padding: 12px 16px 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.rsq-gallery-card {
  border-radius: 12px;
  overflow: hidden;
  background: #f8faff;
  cursor: pointer;
}

.rsq-gallery-thumb {
  position: relative;
  height: 100px;
  background: linear-gradient(135deg, #f5c6c0, #f2796b);
}

.rsq-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rsq-gallery-thumb .rsq-badge {
  position: absolute;
  top: 8px;
  right: 8px;
}

.rsq-gallery-body h4 {
  margin: 0;
  padding: 10px 10px 4px;
  font-size: 13px;
  color: #2f3a53;
  line-height: 1.35;
}

.rsq-gallery-body p {
  margin: 0;
  padding: 0 10px;
  font-size: 11px;
  color: #94a3b8;
}

.rsq-gallery-date {
  display: block;
  padding: 6px 10px 10px;
  font-size: 11px;
  color: #94a3b8;
}

/* 优秀名师 / 重点中学 */
.rsq-panel-featured {
  min-height: 200px;
}

.rsq-people-grid {
  list-style: none;
  margin: 0;
  padding: 8px 12px 12px;
}

.rsq-people-grid li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 8px;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-people-grid li:last-child {
  border-bottom: none;
}

.rsq-people-avatar,
.rsq-school-logo {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 600;
  flex-shrink: 0;
}

.rsq-people-avatar {
  background: linear-gradient(135deg, #fde8e6, #f8a99e);
  color: #9e1f15;
}

.rsq-school-logo {
  background: linear-gradient(135deg, #fde8e6, #fcd34d);
  color: #c0271b;
  border-radius: 12px;
}

.rsq-people-grid strong {
  display: block;
  font-size: 14px;
  color: #2f3a53;
}

.rsq-people-grid span,
.rsq-people-grid small {
  display: block;
  font-size: 12px;
  color: #94a3b8;
}

.rsq-rank-title {
  display: inline-block;
  margin-right: 6px;
  padding: 1px 6px;
  border-radius: 4px;
  background: #fde8e6;
  color: #e63323;
  font-size: 11px;
  font-style: normal;
}

/* 拖拽 */
.rsq-draggable { cursor: grab; }
.rsq-draggable.is-dragging { opacity: 0.78; z-index: 50; }
.rsq-module-stack.is-drag-over { outline: 2px dashed rgba(230,51,35, 0.3); outline-offset: 4px; border-radius: 20px; }
.rsq-draggable.is-drop-target .rsq-panel,
.rsq-draggable.is-drop-target .rsq-hero,
.rsq-draggable.is-drop-target .rsq-type-card {
  outline: 2px solid rgba(230,51,35, 0.5);
}

.rsq-fab {
  position: fixed;
  right: 20px;
  top: 50%;
  transform: translateY(-40%);
  z-index: 60;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.rsq-fab-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 64px;
  padding: 14px 10px;
  border: none;
  border-radius: 16px;
  font-size: 12px;
  line-height: 1.25;
  cursor: pointer;
  box-shadow: 0 10px 28px -8px rgba(192,39,27, 0.5);
}

.rsq-fab-primary {
  background: linear-gradient(180deg, #f8a99e 0%, #f2796b 100%);
  color: #fff;
  font-weight: 500;
}

.rsq-fab-primary svg {
  opacity: 0.95;
}

.rsq-fab-top {
  background: linear-gradient(180deg, #f8a99e, #c0271b);
  color: #fff;
}

/* 类型配置面板 */
.rsq-type-panel {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.rsq-type-panel.hidden { display: none; }

.rsq-type-panel-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.rsq-type-panel-card {
  position: relative;
  z-index: 1;
  width: min(480px, 100%);
  max-height: min(80vh, 640px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 24px 48px -12px rgba(15, 23, 42, 0.35);
}

.rsq-type-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 8px;
}

.rsq-type-panel-head h3 {
  margin: 0;
  font-size: 17px;
}

.rsq-type-panel-close {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 8px;
  background: #f2f3f5;
  font-size: 20px;
  cursor: pointer;
}

.rsq-type-panel-desc {
  margin: 0;
  padding: 0 20px 12px;
  font-size: 13px;
  color: #86909c;
}

.rsq-type-panel-tools {
  display: flex;
  gap: 16px;
  padding: 0 20px 10px;
}

.rsq-type-customize-list {
  list-style: none;
  margin: 0;
  padding: 8px 12px;
  overflow-y: auto;
  flex: 1;
}

.rsq-type-customize-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  margin-bottom: 6px;
  border: 1px solid #eef0f4;
  border-radius: 10px;
  background: #fafbfc;
  cursor: grab;
}

.rsq-type-check {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  cursor: pointer;
  font-size: 14px;
}

.rsq-type-panel-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 20px 18px;
  border-top: 1px solid #f2f3f5;
}

.rsq-reset-btn,
.rsq-btn-primary,
.rsq-link-btn {
  font-size: 13px;
  cursor: pointer;
}

.rsq-reset-btn {
  padding: 6px 14px;
  border: 1px solid #e5e6eb;
  border-radius: 8px;
  background: #fff;
}

.rsq-btn-primary {
  height: 36px;
  padding: 0 18px;
  border: none;
  border-radius: 8px;
  background: linear-gradient(135deg, #e63323, #f2796b);
  color: #fff;
}

.rsq-link-btn {
  border: none;
  background: none;
  color: #e63323;
}

.rsq-type-empty {
  text-align: center;
  font-size: 13px;
  color: #86909c;
}

/* 子视图 */
.rsq-subview.hidden {
  display: none !important;
}

.rsq-hero-stats {
  margin: 0 0 12px;
  font-size: 13px;
  color: #5b6b88;
}

.rsq-hero-stats strong {
  color: #e63323;
  font-weight: 600;
}

.rsq-home-layout {
  display: block;
}

.rsq-home-main {
  min-width: 0;
}

/* 最新上传（榜单轮播内） */
.rsq-panel-latest {
  display: flex;
  flex-direction: column;
  min-height: 320px;
}

.rsq-panel-latest .rsq-panel-head-center h3 {
  color: #e63323;
}

.rsq-panel-latest .rsq-latest-list {
  flex: 1;
  list-style: none;
  margin: 0;
  padding: 0 4px;
  overflow-y: auto;
  max-height: 280px;
}

.rsq-latest-item {
  padding: 12px 0;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-latest-item:last-child {
  border-bottom: none;
}

.rsq-latest-title-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}

.rsq-latest-file {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: linear-gradient(135deg, #f2796b, #e63323);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.rsq-latest-title-row h4 {
  margin: 0;
  flex: 1;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  color: #2f3a53;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rsq-latest-official {
  padding: 1px 6px;
  border-radius: 4px;
  background: #fef3f2;
  color: #c0271b;
  font-size: 10px;
  flex-shrink: 0;
}

.rsq-latest-time {
  font-size: 11px;
  color: #94a3b8;
  flex-shrink: 0;
}

.rsq-latest-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 6px;
}

.rsq-latest-tags span {
  padding: 2px 6px;
  border-radius: 4px;
  background: #f1f5f9;
  font-size: 10px;
  color: #64748b;
}

.rsq-latest-date {
  font-size: 11px;
  color: #94a3b8;
}

.rsq-subject-rank {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rsq-subject-rank li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 8px;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-subject-info {
  flex: 1;
  min-width: 0;
}

.rsq-subject-info strong {
  display: block;
  font-size: 14px;
  color: #2f3a53;
}

.rsq-subject-info span {
  font-size: 11px;
  color: #8b95a8;
}

.rsq-school-tag {
  font-style: normal;
  padding: 1px 6px;
  border-radius: 4px;
  background: #fde8e6;
  color: #e63323;
}

.rsq-subject-count {
  font-style: normal;
  font-size: 14px;
  font-weight: 600;
  color: #e63323;
}

.rsq-panel-subject .rsq-panel-head {
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.rsq-module-gallery.is-wide,
.rsq-module-featured.rsq-module-gallery {
  grid-column: 1 / -1;
}

.rsq-lesson-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 0 16px 16px;
}

.rsq-lesson-card {
  cursor: pointer;
}

.rsq-lesson-thumb {
  height: 100px;
  border-radius: 10px;
  position: relative;
  margin-bottom: 8px;
}

.rsq-lesson-tag {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.9);
  font-size: 10px;
  color: #e63323;
}

.rsq-lesson-tag.hot {
  color: #dc2626;
}

.rsq-lesson-card h4 {
  margin: 0 0 4px;
  font-size: 13px;
  color: #2f3a53;
}

.rsq-lesson-card p {
  margin: 0;
  font-size: 11px;
  color: #94a3b8;
}

.rsq-master-grid,
.rsq-school-grid {
  list-style: none;
  margin: 0;
  padding: 8px 16px 16px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

/* 浏览页 */
.rsq-browse-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
}

.rsq-back-link {
  border: none;
  background: none;
  font-size: 14px;
  color: #5b6b88;
  cursor: pointer;
  padding: 0;
}

.rsq-back-link:hover {
  color: #e63323;
}

.rsq-browse-search {
  flex: 1;
  max-width: 720px;
  display: flex;
  height: 44px;
  padding: 0 6px 0 16px;
  border-radius: 999px;
  border: 2px solid #f8a99e;
  background: #fff;
}

.rsq-browse-search input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 14px;
}

.rsq-type-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e8ecf4;
  margin-bottom: 16px;
}

.rsq-type-nav button {
  border: none;
  background: none;
  padding: 8px 0;
  font-size: 14px;
  color: #5b6b88;
  cursor: pointer;
  border-bottom: 2px solid transparent;
}

.rsq-type-nav button.active {
  color: #e63323;
  font-weight: 600;
  border-bottom-color: #e63323;
}

.rsq-browse-body {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 16px;
  min-height: 520px;
}

.rsq-browse-tree {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e8ecf4;
  padding: 12px;
}

.rsq-tree-select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  margin-bottom: 8px;
  border-radius: 8px;
  background: #f8faff;
  font-size: 13px;
  font-weight: 500;
}

.rsq-tree-select button {
  border: none;
  background: none;
  cursor: pointer;
  color: #e63323;
}

.rsq-tree-units {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 13px;
}

.rsq-tree-unit > button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 6px;
  border: none;
  background: none;
  text-align: left;
  font-weight: 600;
  color: #3d4d6b;
  cursor: pointer;
}

.rsq-tree-lessons {
  list-style: none;
  margin: 0;
  padding: 0 0 8px 12px;
}

.rsq-tree-lessons li button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  border: none;
  background: none;
  text-align: left;
  font-size: 12px;
  color: #5b6b88;
  cursor: pointer;
  border-radius: 6px;
}

.rsq-tree-lessons li button.active {
  background: #fde8e6;
  color: #e63323;
}

.rsq-lesson-badge {
  padding: 1px 5px;
  border-radius: 3px;
  font-size: 10px;
}

.rsq-lesson-badge.new {
  background: #fde8e6;
  color: #c0271b;
}

.rsq-lesson-badge.review {
  background: #fde8e6;
  color: #e63323;
}

.rsq-browse-main {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e8ecf4;
  padding: 14px 16px;
}

.rsq-source-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.rsq-source-label {
  font-size: 13px;
  color: #5b6b88;
}

.rsq-source-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1;
}

.rsq-source-pills button {
  height: 28px;
  padding: 0 12px;
  border: 1px solid #e8ecf4;
  border-radius: 14px;
  background: #fff;
  font-size: 12px;
  color: #5b6b88;
  cursor: pointer;
}

.rsq-source-pills button.active {
  border-color: #e63323;
  color: #e63323;
  background: #fef3f2;
}

.rsq-sort-select {
  height: 28px;
  padding: 0 10px;
  border: 1px solid #e8ecf4;
  border-radius: 6px;
  font-size: 12px;
}

.rsq-browse-card {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-browse-card-actions {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-shrink: 0;
}

.rsq-browse-action {
  height: 30px;
  padding: 0 12px;
  border: 1px solid #f5c6c0;
  border-radius: 6px;
  background: #fff;
  color: #e63323;
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}

.rsq-browse-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 16px;
  font-size: 13px;
  color: #8b95a8;
}

.rsq-page-btn {
  min-width: 28px;
  height: 28px;
  border: 1px solid #e8ecf4;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
}

.rsq-page-btn.active {
  background: #e63323;
  border-color: #e63323;
  color: #fff;
}

.rsq-goto input {
  width: 40px;
  height: 26px;
  margin: 0 4px;
  border: 1px solid #e8ecf4;
  border-radius: 4px;
  text-align: center;
}

/* 排行榜详情 */
.rsq-rank-detail-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.rsq-rank-detail-head h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
}

.rsq-rank-detail-tabs {
  display: inline-flex;
  padding: 4px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e8ecf4;
  margin-bottom: 12px;
}

.rsq-rank-detail-tab {
  padding: 8px 16px;
  border: none;
  background: transparent;
  border-radius: 8px;
  font-size: 13px;
  color: #5b6b88;
  cursor: pointer;
}

.rsq-rank-detail-tab.active {
  background: #fff;
  color: #e63323;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(230,51,35, 0.15);
}

.rsq-rank-detail-filters {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 12px;
}

.rsq-rank-detail-table-wrap {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e8ecf4;
  overflow: hidden;
}

.rsq-rank-detail-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.rsq-rank-detail-table th {
  padding: 12px 16px;
  text-align: left;
  background: #fafbfc;
  color: #8b95a8;
  font-weight: 500;
}

.rsq-rank-detail-table td {
  padding: 14px 16px;
  border-top: 1px solid #f1f4fa;
  color: #4a5568;
}

.rsq-rank-detail-table tr.rank-1 {
  background: rgba(254,243,242, 0.35);
}

.rsq-rank-detail-table tr.rank-2 {
  background: rgba(254,243,242, 0.25);
}

.rsq-rank-detail-table tr.rank-3 {
  background: rgba(253,232,230, 0.35);
}

.rsq-rank-num {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #8b95a8;
}

.rsq-rank-num.top1,
.rsq-rank-num.top2,
.rsq-rank-num.top3 {
  clip-path: polygon(50% 0%, 100% 28%, 82% 100%, 18% 100%, 0% 28%);
  color: #fff;
  font-size: 12px;
}

.rsq-rank-num.top1 {
  background: linear-gradient(135deg, #ffe08a, #ffc93c);
}

.rsq-rank-num.top2 {
  background: linear-gradient(135deg, #e8ebf2, #c5cede);
  color: #5c667a;
}

.rsq-rank-num.top3 {
  background: linear-gradient(135deg, #f5c6c0, #e63323);
}

.rsq-rank-uploader {
  display: flex;
  align-items: center;
  gap: 10px;
}

.rsq-rank-uploader strong {
  color: #2f3a53;
}

.rsq-rank-uploader small {
  color: #e63323;
  font-size: 11px;
}

.rsq-rank-count {
  font-size: 16px;
  font-weight: 600;
  color: #e63323;
}

.rsq-type-pill {
  padding: 2px 8px;
  border-radius: 4px;
  background: #fde8e6;
  color: #e63323;
  font-size: 11px;
}

/* 统计范围弹窗 */
.rsq-stat-modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rsq-stat-modal.hidden {
  display: none !important;
}

.rsq-stat-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.4);
}

.rsq-stat-modal-card {
  position: relative;
  width: min(420px, 92vw);
  background: #fff;
  border-radius: 12px;
  padding: 20px 24px 16px;
}

.rsq-stat-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f1f4fa;
}

.rsq-stat-modal-head h3 {
  margin: 0;
  font-size: 16px;
}

.rsq-stat-search {
  position: relative;
  margin-bottom: 12px;
}

.rsq-stat-search input {
  width: 100%;
  height: 40px;
  padding: 0 40px 0 14px;
  border: 1px solid #e8ecf4;
  border-radius: 20px;
  font-size: 13px;
}

.rsq-stat-search svg {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #94a3b8;
}

.rsq-stat-tree {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 8px 0 16px;
}

.rsq-stat-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #2f3a53;
  padding-left: 8px;
}

.rsq-stat-check em {
  font-style: normal;
  color: #e63323;
}

.rsq-stat-modal-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid #f1f4fa;
}

@media (max-width: 1200px) {
  .rsq-lesson-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rsq-browse-body {
    grid-template-columns: 1fr;
  }

  .rsq-module-type,
  .rsq-module-featured {
    grid-column: 1 / -1;
  }

  .rsq-gallery-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .rsq-page {
    padding: 0 12px 40px;
  }

  .rsq-module-stack {
    grid-template-columns: 1fr;
  }

  .rsq-module-rank,
  .rsq-module-type,
  .rsq-module-featured,
  .rsq-module-hero {
    grid-column: 1;
  }

  .rsq-rank-carousel-wrap {
    grid-template-columns: 32px 1fr 32px;
  }

  .rsq-rank-carousel-track > .rsq-module-rank {
    flex-basis: 85%;
  }

  .rsq-type-card-body.has-sidebar {
    grid-template-columns: 1fr;
  }

  .rsq-unit-tabs {
    display: flex;
    overflow-x: auto;
    border-right: none;
    border-bottom: 1px solid #eef1f7;
  }
}
