/* 浅色/结构在本文件；颜色由 design-system.css 的 --filter-* 变量控制，深色在 body.dark-mode 中覆盖 */
/**
 * 水平筛选组件 - 三盒子布局
 * 📦 结构：left-box（筛选） + center-box（搜索） + right-box（视图切换）
 * 📱 响应式：PC横向，移动端纵向
 */

/* ======================================== 基础布局 ======================================== */

.filter-horizontal {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  z-index: 900; /* 🔧 低于导航栏(1000)，高于播放器 */
  gap: 20px;
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif !important;
  font-variation-settings: normal;
}

/* 🔧 确保筛选组件内所有子元素继承字体 */
.filter-horizontal *,
.filter-horizontal span {
  font-family: inherit !important;
}

/* 左侧盒子：筛选按钮 */
.filter-horizontal .filter-left-box {
  display: flex;
  align-items: center;
  flex: 0 0 auto; /* 固定宽度，由内容决定 */
  justify-content: flex-start;
  overflow: visible; /* 必须visible，否则下拉菜单会被裁剪 */
  position: relative; /* 确保z-index生效 */
  z-index: 901; /* 比父容器稍高，但低于导航栏 */
}

.filter-horizontal .filter-items-wrapper {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  overflow: visible; /* 确保下拉菜单可以显示 */
}

.filter-horizontal .filter-items-wrapper::-webkit-scrollbar {
  height: 0;
}

.filter-horizontal .filter-items-wrapper > .filter-item {
  margin: 0;
  flex-shrink: 0;
}

/* 中间盒子：搜索框 */
.filter-horizontal .filter-center-box {
  display: flex;
  align-items: center;
  flex: 1; /* 占据剩余空间 */
  justify-content: center; /* 搜索框在中间 */
}

.filter-horizontal .search-wrapper {
  display: flex;
  align-items: center;
  width: auto;
}

.filter-horizontal .search-wrapper .search-area {
  position: relative;
  width: auto;
}

/* 右侧盒子：视图切换 */
.filter-horizontal .filter-right-box {
  display: flex;
  align-items: center;
  flex: 0 0 auto; /* 固定宽度，由内容决定 */
  justify-content: flex-end;
}

.filter-horizontal .layout-toggle-wrapper {
  flex-shrink: 0;
}

/* ======================================== 视图切换按钮（简约风格） ======================================== */
/* 与 Google Fonts 等站点的分段控件一致：选中态立即切换，不做背景/透明度过渡，点击才跟手 */

.layout-toggle-wrapper {
  display: flex;
  align-items: center;
  gap: 2px;
  background: var(--filter-layout-bar-bg);
  border: var(--filter-layout-bar-border);
  border-radius: 8px;
  padding: 3px;
}

.layout-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: none;
  width: 32px;
  height: 32px;
}

/* 内联 SVG 图标（layout-btn-icon），用 currentColor 控制颜色，比 data-URL 背景图更清晰 */

.layout-btn-icon {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  pointer-events: none;
}

.filter-horizontal .layout-btn {
  color: #a1a1aa;
}

.filter-horizontal .layout-btn:hover {
  color: #52525b;
}

.filter-horizontal .layout-btn.active {
  color: #000000;
}

/* 悬停效果 */
.layout-btn:hover {
  background: var(--filter-layout-btn-hover-bg);
}

/* 激活状态 */
.layout-btn.active {
  background: var(--filter-layout-btn-active-bg);
  box-shadow: var(--filter-layout-btn-active-shadow);
}

.layout-btn.active:hover {
  background: var(--filter-layout-btn-active-hover-bg);
}

/* 小屏幕适配 */
@media (max-width: 978px) {
  .layout-toggle-wrapper {
    padding: 2px;
  }
  
  .layout-btn {
    width: 28px;
    height: 28px;
  }
  
  .layout-btn-icon {
    width: 18px;
    height: 18px;
  }
}

@media (max-width: 480px) {
  .layout-btn {
    width: 26px;
    height: 26px;
    border-radius: 5px;
  }
  
  .layout-btn-icon {
    width: 16px;
    height: 16px;
  }
}

body.dark-mode .filter-horizontal .layout-btn:not(.active) {
  color: #9ca3af;
}

body.dark-mode .filter-horizontal .layout-btn:hover {
  color: #f3f4f6;
}

body.dark-mode .filter-horizontal .layout-btn.active {
  color: #ffffff;
}

/* ======================================== 筛选按钮样式 ======================================== */

.filter-item {
  position: relative;
}

.filter-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #1f293700;
  border: 1px solid var(--filter-btn-border-color);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 14px;
  font-weight: 600; /* 🔧 一级菜单加粗 */
  color: var(--filter-btn-color);
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  position: relative;
  box-shadow: var(--filter-btn-shadow);
  user-select: none;
  line-height: 1;
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif !important;
  font-variation-settings: normal;
}

/* 🔧 确保一级菜单子元素加粗 */
.filter-button span,
.filter-button * {
  font-family: inherit !important;
  font-weight: 600 !important; /* 🔧 一级菜单加粗 */
}

.filter-button:hover {
  border-color: var(--filter-btn-hover-border-color);
  background: var(--filter-btn-hover-bg);
  box-shadow: var(--filter-btn-hover-shadow);
}

.filter-button:hover:after {
  color: var(--filter-btn-chevron-hover);
}

/* 箭头图标 */
.filter-button:after {
  content: "∨";
  display: inline-block;
  margin-left: .8rem;
  font-size: 15px;
  color: var(--filter-btn-chevron);
  transition: transform 0.25s ease;
  transform-origin: center;
  line-height: 1;
  font-weight: 600;
  transform: scaleX(1.5);
}

/* 展开状态时旋转箭头 */
.filter-item.active .filter-button:after {
  transform: rotate(180deg) scaleX(1.5);
  color: var(--filter-btn-chevron-open);
}

.filter-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: var(--filter-icon-color);
  /* 线条风格图标支持 */
  stroke: currentColor;
  fill: none;
  transition: color 0.15s ease, stroke 0.15s ease;
}

.filter-label {
  display: inline-flex;
  align-items: center;
  font-weight: 600;
  letter-spacing: 0.2px;
  font-size: 13px;
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif !important;
  font-variation-settings: normal;
}

.filter-item.active .filter-icon {
  color: var(--filter-icon-accent);
}

.filter-item.has-selection .filter-icon {
  color: var(--filter-btn-selection-color);
}

/* 悬停时图标颜色加深 */
.filter-button:hover .filter-icon {
  color: var(--filter-icon-hover);
}

/* 激活状态的按钮 */
.filter-item.active .filter-button {
  background: var(--filter-btn-active-bg);
  border-color: var(--filter-btn-active-border-color);
  color: var(--filter-btn-active-color);
  box-shadow: var(--filter-btn-active-shadow);
}

/* 有选中条件的筛选按钮 */
.filter-item.has-selection .filter-button {
  background: var(--filter-btn-selection-bg);
  border-color: var(--filter-btn-selection-border-color);
  color: var(--filter-btn-selection-color);
  font-weight: 500;
}

.filter-item.has-selection .filter-button:hover {
  background: var(--filter-btn-selection-hover-bg);
  border-color: var(--filter-btn-selection-border-color);
}

.filter-item.has-selection.active .filter-button {
  background: var(--filter-btn-selection-hover-bg);
  border-color: var(--filter-btn-selection-border-color);
  color: var(--filter-btn-selection-color);
}

.filter-item.has-selection .filter-button:after {
  color: var(--filter-btn-chevron-selection);
}

/* ========================================
   下拉菜单样式
   ======================================== */

.filter-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 950; /* 🔧 低于导航栏(1000)，高于播放器 */
  background: var(--filter-menu-bg);
  border: 1px solid var(--filter-menu-border-color);
  border-radius: 14px;
  outline: 1px solid var(--filter-menu-outline-color);
  outline-offset: 0;
  min-width: 260px;
  max-width: 90vw;
  max-height: 80vh;
  overflow-y: auto;
  overflow-x: hidden;
  display: none;
  padding: 10px;
  margin-top: 0;
  box-sizing: border-box;
  box-shadow: var(--filter-menu-shadow);
  /* 🔧 移除 backdrop-filter，部分移动设备不兼容会导致内容模糊 */
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif !important;
  font-variation-settings: normal;
}

/* 🔧 确保菜单内所有子元素继承字体 */
.filter-menu *,
.filter-menu span {
  font-family: inherit !important;
}

.filter-menu::-webkit-scrollbar {
  width: 8px;
}

.filter-menu::-webkit-scrollbar-track {
  background: transparent;
}

.filter-menu::-webkit-scrollbar-thumb {
  background: var(--filter-scrollbar-thumb);
  border-radius: 999px;
}

.filter-menu::-webkit-scrollbar-thumb:hover {
  background: var(--filter-scrollbar-thumb-hover);
}

/* 未激活状态时隐藏下拉菜单 */
.filter-item:not(.active) .filter-menu {
  display: none;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

/* 激活状态时显示下拉菜单 */
.filter-item.active .filter-menu {
  display: block;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

/* PC端菜单左对齐（移动端会覆盖） */
@media (min-width: 879px) {
  .filter-menu {
    left: 0;
    right: auto;
  }
}

/* ========================================
   筛选选项样式
   ======================================== */

.filter-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

/* 小屏也保持两列 */
@media (max-width: 520px) {
  .filter-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }
}

/* 老师列表「排序」筛选项：仅此项单列展示，其它筛选项仍为两列 */
#filter-sort .filter-options {
  grid-template-columns: 1fr;
}

/* 老师主页「音色」年龄段：单列（需高于 .filter-options 两列及 TeacherHome 布局） */
.TeacherHome-right-column #filter-age .filter-options,
#filter-age .filter-options {
  grid-template-columns: 1fr !important;
  width: 100%;
}

#filter-age .filter-option a {
  white-space: nowrap;
}

@media (max-width: 520px) {
  .TeacherHome-right-column #filter-age .filter-options,
  #filter-age .filter-options {
    grid-template-columns: 1fr !important;
  }
}

.filter-option {
  display: block;
  position: relative;
  min-width: 0;
}

.filter-option a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding: 8px 10px;
  background: transparent;
  color: var(--filter-option-color);
  border-radius: 10px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 600; /* 🔧 二级菜单加粗（直接展开的选项） */
  transition: background-color 0.16s ease, color 0.16s ease;
  border: 1px solid transparent;
  min-height: 36px;
  min-width: 0;
  position: relative;
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif !important;
  font-variation-settings: normal;
}

/* 🔧 确保二级选项子元素加粗 */
.filter-option a span,
.filter-option a * {
  font-family: inherit !important;
  font-weight: 600 !important; /* 🔧 二级菜单加粗 */
}

.filter-option a:hover {
  background: var(--filter-option-hover-bg);
  color: var(--filter-option-hover-color);
}

/* 左侧方形勾选框 - ElevenLabs 简洁风格 */
.filter-option a::before {
  content: '';
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1.5px solid var(--filter-option-checkbox-border);
  background: var(--filter-option-checkbox-bg);
  flex: 0 0 16px;
  box-sizing: border-box;
  transition: all 0.15s ease;
}

/* 悬停时边框变深 */
.filter-option a:hover::before {
  border-color: var(--filter-option-checkbox-hover-border);
}

/* 选中状态 */
.filter-option.active a,
.filter-option a.active {
  background: var(--filter-option-active-bg);
}

.filter-option.active a::before,
.filter-option a.active::before {
  border-color: var(--filter-option-checkmark-fg);
  background: var(--filter-option-checkmark-fg);
}

.filter-option.active a::after,
.filter-option a.active::after {
  content: '';
  display: block;
  width: 10px;
  height: 10px;
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--filter-option-checkmark-mask-bg);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center / contain;
  z-index: 1;
}

/* ========================================
   手风琴样式（用于嵌套筛选）
   ======================================== */

.filter-options-accordion {
  display: block;
  width: 100%;
}

.filter-accordion-group {
  margin-bottom: 8px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--filter-accordion-group-bg, transparent);
  border: 1px solid var(--filter-accordion-group-border, transparent);
}

.filter-accordion-group:last-child {
  margin-bottom: 0;
}

.filter-accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: transparent;
  color: var(--filter-accordion-header-color);
  cursor: pointer;
  border-radius: 10px;
  transition: background-color 0.16s ease, color 0.16s ease;
  font-size: 14px;
  font-weight: 600;
  user-select: none;
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif !important;
  font-variation-settings: normal;
}

/* 🔧 确保二级菜单子元素加粗 */
.filter-accordion-header span,
.filter-accordion-header * {
  font-family: inherit !important;
  font-weight: 600 !important; /* 🔧 二级菜单加粗 */
}

.filter-accordion-header:hover {
  background: var(--filter-accordion-header-hover-bg);
  color: var(--filter-accordion-header-color);
}

.filter-accordion-group.active .filter-accordion-header {
  background: var(--filter-accordion-header-active-bg);
  color: var(--filter-accordion-header-color);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.accordion-arrow {
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.filter-accordion-group.active .accordion-arrow {
  transform: rotate(180deg);
}

.filter-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.28s ease, background-color 0.2s ease;
  background: transparent;
  border: none;
  border-top: none;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
}

.filter-accordion-group.active .filter-accordion-content {
  max-height: 560px;
  padding: 6px 0;
  background: var(--filter-accordion-content-bg, #f8fafc);
}

/* 手风琴内的选项（三级菜单）- 覆盖二级样式 */
.filter-accordion-content .filter-option a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  background: transparent;
  color: var(--filter-option-color);
  text-decoration: none;
  font-size: 13px;
  font-weight: 400 !important; /* 🔧 三级菜单不加粗 */
  transition: background-color 0.16s ease, color 0.16s ease;
  border-radius: 10px;
  position: relative;
}

/* 🔧 确保三级菜单子元素不加粗 */
.filter-accordion-content .filter-option a span,
.filter-accordion-content .filter-option a * {
  font-weight: 400 !important;
}

.filter-accordion-content .filter-option a::before {
  content: '';
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1.5px solid var(--filter-option-checkbox-border);
  background: var(--filter-option-checkbox-bg);
  flex: 0 0 16px;
  box-sizing: border-box;
  transition: all 0.15s ease;
}

.filter-accordion-content .filter-option a:hover {
  background: var(--filter-accordion-content-hover-bg);
}

.filter-accordion-content .filter-option a:hover::before {
  border-color: var(--filter-option-checkbox-hover-border);
}

.filter-accordion-content .filter-option.active a::before,
.filter-accordion-content .filter-option a.active::before {
  border-color: var(--filter-option-checkmark-fg);
  background: var(--filter-option-checkmark-fg);
  -webkit-mask: none;
}

.filter-accordion-content .filter-option.active a::after,
.filter-accordion-content .filter-option a.active::after {
  content: '';
  display: block;
  width: 10px;
  height: 10px;
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--filter-option-checkmark-mask-bg);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center / contain;
  z-index: 1;
}

.filter-accordion-content .filter-option.active a,
.filter-accordion-content .filter-option a.active {
  background: var(--filter-option-active-bg);
}

.filter-accordion-content .filter-option a {
  position: relative;
}

/* ========================================
   题材筛选特殊样式 - 两列布局
   ======================================== */

#filter-theme .filter-accordion-content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px 12px;
}

#filter-theme .filter-accordion-group.active .filter-accordion-content {
  max-height: 600px;
  padding: 6px 0;
}

#filter-theme .filter-accordion-content .filter-option {
  margin: 0;
}

#filter-theme .filter-accordion-content .filter-option a {
  padding: 6px 10px;
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 移动端题材筛选保持两列 */
@media (max-width: 480px) {
  #filter-theme .filter-accordion-content {
    grid-template-columns: repeat(2, 1fr);
    gap: 4px 8px;
  }
  
  #filter-theme .filter-accordion-content .filter-option a {
    padding: 8px 8px;
    font-size: 12px;
  }
}

/* ======================================== 搜索框样式 ======================================== */

.search-area form {
  display: flex;
  align-items: center;
}

.search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.search-area input[type="text"] {
  height: 33px;
  width: 240px; /* 固定宽度，避免覆盖筛选按钮 */
  padding: 7px 35px 7px 12px;
  border: 1px solid var(--filter-search-input-border);
  border-radius: 8px; /* 🔧 与视图切换按钮圆角一致 */
  background: var(--filter-search-input-bg);
  color: var(--filter-search-input-color);
  transition: all 0.2s ease;
  box-sizing: border-box;
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif;
  font-variation-settings: normal;
}

.search-area input[type="text"]::placeholder {
  color: var(--filter-search-placeholder-color);
  opacity: 1;
}

.search-area input[type="text"]:focus {
  border-color: var(--filter-search-input-focus-border);
  box-shadow: var(--filter-search-input-focus-shadow);
  outline: none;
}

/* PC端：搜索图标在输入框内部 */
.search-icon-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--filter-search-icon-color);
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
  width: auto;
  height: auto;
}

.search-icon-btn:hover {
  color: var(--filter-search-icon-hover);
}

.search-icon-btn svg {
  width: 18px;
  height: 18px;
}

/* ======================================== 已选中筛选标签 ======================================== */

.filter-selected-tags,
.Selected {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 0;
  justify-content: flex-start;
 
  /* 🔧 使用无版权纠纷的系统字体 */
  font-family: "Alimama FangYuanTi VF", "Microsoft YaHei", "微软雅黑", "PingFang SC", Arial, sans-serif;
  font-variation-settings: normal;
}

/* 没有筛选条件时隐藏 */
.filter-selected-tags.no-filters {
  height: 0;
  padding: 0;
  margin: 0;
  overflow: hidden;
  border: none;
  display: block;
  visibility: hidden;
}

/* 筛选标签样式 */
.filter-selected-tags a:not(.clear-filter-all),
.Selected a:not(.clear-filter-all) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--filter-tag-color);
  padding: 8px 6px;
  border-radius: 0;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
  margin-right: 14px;
  margin-bottom: 8px;
  border: var(--filter-tag-box-border);
  border-bottom: var(--filter-tag-bottom-border);
  background: transparent;
  box-shadow: none;
}

.filter-selected-tags a:not(.clear-filter-all):hover,
.Selected a:not(.clear-filter-all):hover {
  color: var(--filter-tag-hover-color);
  text-decoration: none;
  border-color: var(--filter-tag-hover-border);
  border-bottom-color: var(--filter-tag-hover-border);
}

/* 筛选标签关闭按钮 */
.filter-selected-tags a .filter-tag-close,
.Selected a .filter-tag-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 8px;
  border-radius: 999px;
  color: var(--filter-tag-close-color);
  background: var(--filter-tag-close-bg);
  opacity: 0.9;
  flex-shrink: 0;
  position: relative;
  transition: transform 0.18s ease, background-color 0.18s ease, opacity 0.18s ease, box-shadow 0.18s ease;
  transform: translateZ(0);
}

.filter-selected-tags a .filter-tag-close::before,
.filter-selected-tags a .filter-tag-close::after,
.Selected a .filter-tag-close::before,
.Selected a .filter-tag-close::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 2px;
  background: currentColor;
  border-radius: 999px;
  top: 50%;
  left: 50%;
  transform-origin: center;
  transition: transform 0.18s ease, width 0.18s ease;
}

.filter-selected-tags a .filter-tag-close::before,
.Selected a .filter-tag-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.filter-selected-tags a .filter-tag-close::after,
.Selected a .filter-tag-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.filter-selected-tags a:hover .filter-tag-close,
.Selected a:hover .filter-tag-close {
  opacity: 1;
  background: var(--filter-tag-close-hover-bg);
  box-shadow: var(--filter-tag-close-hover-shadow);
  transform: rotate(90deg) scale(1.08);
}

/* 清除筛选按钮 - 统一样式（支持所有容器类名） */
.filter-selected-tags a.clear-filter-all,
.filter-selected-tags a.clear-filter,
.Selected a.clear-filter-all,
.Selected a.clear-filter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--filter-tag-clear-color);
  padding: 8px 6px;
  border-radius: 0;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
   
  margin-bottom: 8px;
  border: none;
  border-bottom: var(--filter-tag-clear-border-bottom);
  background: transparent;
  box-shadow: none;
  white-space: nowrap;
}

.filter-selected-tags a.clear-filter-all:hover,
.filter-selected-tags a.clear-filter:hover,
.Selected a.clear-filter-all:hover,
.Selected a.clear-filter:hover {
  color: var(--filter-tag-clear-hover-color);
  text-decoration: none;
  border-bottom-color: var(--filter-tag-clear-hover-border);
  background: transparent;
}

/* ======================================== PC端（> 878px） ======================================== */

@media (min-width: 879px) {
  .filter-horizontal .search-area input[type="text"] {
    width: 240px; /* PC端固定宽度 */
  }
  
  .filter-horizontal .filter-menu {
    z-index: 950; /* 🔧 低于导航栏(1000)，高于播放器 */
  }
}

/* ======================================== 大平板（979-1024px） ======================================== */

@media (min-width: 979px) and (max-width: 1024px) {
  .filter-horizontal .search-area input[type="text"] {
    width: 200px; /* 平板稍小 */
  }
}

/* ======================================== 小平板（879-978px） ======================================== */

@media (min-width: 879px) and (max-width: 978px) {
  .filter-horizontal {
    gap: 10px;
  }
  
  .filter-horizontal .filter-left-box {
    flex: 0 0 auto;
    max-width: 60%; /* 限制筛选区域宽度 */
  }
  
  .filter-horizontal .filter-items-wrapper {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden; /* 🔧 禁用纵向滚动 */
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    max-width: 100%;
    touch-action: pan-x pinch-zoom; /* 🔧 只允许横向滑动 */
    overscroll-behavior-x: contain; /* 🔧 防止滚动穿透 */
    overscroll-behavior-y: none;
  }
  
  .filter-horizontal .filter-items-wrapper::-webkit-scrollbar {
    height: 0;
  }
  
  .filter-horizontal .filter-center-box {
    flex: 1 1 auto;
    min-width: 0;
  }
  
  .filter-horizontal .search-area input[type="text"] {
    width: 140px; /* 更小的搜索框 */
    min-width: 100px;
  }
  
  .filter-horizontal .filter-button {
    padding: 6px 8px;
    font-size: 12px;
  }
  
  .filter-horizontal .filter-button:after {
    margin-left: 0.5rem;
    font-size: 12px;
  }
  
  .filter-horizontal .filter-label {
    font-size: 12px;
  }
  
  .filter-horizontal .filter-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
  }
  
  /* 视图切换按钮保持显示，但缩小间距 */
  .filter-horizontal .filter-right-box {
    flex: 0 0 auto;
    margin-left: 8px;
  }
  
  /* 筛选标签 */
  .filter-selected-tags,
  .Selected {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  .filter-selected-tags::-webkit-scrollbar,
  .Selected::-webkit-scrollbar {
    height: 0;
  }
}

/* ======================================== 移动端（≤ 878px） ======================================== */

/* 🔧 移动端筛选弹窗遮罩层 */
.filter-mobile-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.01); /* 🔧 几乎完全透明的遮罩 */
  z-index: 99; /* 🔧 低层级，确保下拉菜单(999999)在其之上 */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  /* 🔧 禁用模糊效果，确保移动设备兼容性 */
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

/* 🔧 遮罩层显示状态 */
.filter-mobile-overlay.show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  /* 🔒 阻止触摸滚动穿透 */
  touch-action: none;
  -webkit-overflow-scrolling: auto;
}

/* 🔒 菜单打开时锁定页面滚动（不使用 position:fixed 避免影响层级） */
html.filter-menu-open,
body.filter-menu-open {
  overflow: hidden;
  /* 🔧 使用 manipulation 代替 none，允许子元素自己设置 touch-action */
  touch-action: manipulation;
  -webkit-overflow-scrolling: auto;
}

/* 🔧 菜单打开时，保持筛选按钮区域可以横向滚动 */
body.filter-menu-open .filter-items-wrapper {
  touch-action: pan-x !important;
  overflow-x: auto !important;
}

/* 🔧 确保下拉菜单始终在遮罩层之上 */
.filter-item.active .filter-menu {
  z-index: 999999;
}

 
 

@media (max-width: 878px) {
  /* 🔧 强制父容器允许溢出，确保下拉菜单可见 */
  .Content,
  .Sound_4-4,
  .teacher-list-container,
  .TeacherHome-right-column,
  .filter-horizontal,
  .filter-left-box,
  /* ⚠️ 不包含 .filter-items-wrapper - 它需要保持 overflow-x: auto 以支持横向滚动 */
  .filter-item {
    overflow: visible;
    /* 🍎 iOS: 避免 transform 影响子元素的 fixed 定位 */
    -webkit-transform: none;
    transform: none;
  }
  
  .filter-horizontal {
    display: grid;
    grid-template-columns: 1fr auto; /* 搜索框 + 视图切换 */
    grid-template-rows: auto auto;   /* 两行 */
    gap: 12px 12px; /* 🔧 增加列间距 */
    padding: 12px 0;
    position: relative;
    overflow: visible; /* 🔧 确保不裁剪下拉菜单 */
    /* 🔧 防止横向滑动时整个页面跟着动 */
    overscroll-behavior: contain;
  }
  
  /* 搜索框：第一行左侧 */
  .filter-horizontal .filter-center-box {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    
  }
  
  /* 视图切换：第一行右侧 */
  .filter-horizontal .filter-right-box {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    margin-left: 12px; /* 🔧 增加与搜索框的间距 */
  }
  
  /* 筛选按钮：第二行占满宽度 */
  .filter-horizontal .filter-left-box {
    grid-column: 1 / -1; /* 跨越所有列 */
    grid-row: 2;
    overflow: visible; /* 允许下拉菜单溢出显示 */
    position: relative;
    z-index: 10001; /* 高于浮动按钮 */
    /* 🔧 防止滚动穿透 */
    overscroll-behavior: contain;
  }
  
  /* 搜索框样式 */
  .filter-horizontal .search-wrapper {
    width: 100%;
  }
  
  .filter-horizontal .search-wrapper .search-area {
    width: 100%;
  }
  
  .filter-horizontal .search-area form {
    display: flex;
    width: 100%;
  }
  
  .filter-horizontal .search-area .search-input-wrapper {
    width: 100%;
  }
  
  .filter-horizontal .search-area input[type="text"] {
    width: 100%;
    min-width: unset;
  }
  
  /* 🔧 筛选按钮横向滚动 */
  .filter-horizontal .filter-items-wrapper {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    width: 100%;
    max-width: 100%; /* 🔧 关键：限制最大宽度，否则会被内容撑开 */
    overflow-x: auto !important; /* 🔧 强制横向滚动 */
    overflow-y: hidden !important; /* 🔧 禁用纵向滚动，防止整个页面跟着动 */
    -webkit-overflow-scrolling: touch;
    padding: 3px 0;
    /* 🔧 隐藏滚动条 - 跨浏览器 */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
    /* 🔧 确保触摸滚动正常工作，只允许横向 */
    touch-action: pan-x pinch-zoom;
    /* 🔧 防止滚动穿透到父容器 */
    overscroll-behavior-x: contain;
    overscroll-behavior-y: none;
  }

  /* 🔧 隐藏滚动条 - WebKit浏览器 */
  .filter-horizontal .filter-items-wrapper::-webkit-scrollbar {
    display: none;
    height: 0;
    width: 0;
  }

  .filter-horizontal .filter-items-wrapper > .filter-item {
    margin: 0;
    flex: 0 0 auto;
  }
  
  .filter-horizontal .filter-button {
    font-size: 12px;
    white-space: nowrap;
    padding: 6px 8px;
  }
  
  /* 筛选项 */
  .filter-horizontal .filter-item,
  .filter-horizontal .filter-items-wrapper > .filter-item {
    position: relative;
    overflow: visible;
    flex: 0 0 auto;
  }
  
  /* 🔧 移动端下拉菜单 - 默认隐藏 */
  .filter-menu,
  .filter-horizontal .filter-menu,
  .filter-horizontal .filter-item .filter-menu,
  .filter-horizontal .filter-left-box .filter-item .filter-menu {
    display: none;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }
  
  /* 🔧 移动端下拉菜单 - 激活时显示（最高优先级） */
  .filter-item.active .filter-menu,
  .filter-horizontal .filter-item.active .filter-menu,
  .filter-horizontal .filter-left-box .filter-item.active .filter-menu,
  .filter-horizontal .filter-left-box .filter-items-wrapper .filter-item.active .filter-menu,
  body .filter-horizontal .filter-item.active .filter-menu {
    display: block;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    position: fixed;
    top: 150px; /* 🔧 默认位置，JS会动态覆盖 */
    left: 5vw; /* 🔧 改用固定左边距，避免 transform 兼容性问题 */
    right: 5vw;
    transform: none; /* 🔧 移除 transform，解决 iOS Safari 渲染问题 */
    -webkit-transform: none;
    width: auto; /* 🔧 改为自动宽度，由 left/right 控制 */
    
    min-width: 280px;
    padding: 12px;
    z-index: 999999; /* 🔧 确保在遮罩层之上 */
    margin: 0;
    box-sizing: border-box;
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 60vh;
    background-color: var(--filter-menu-bg);
    border: 1px solid var(--filter-menu-border-color);
    border-radius: 14px;
    box-shadow: var(--filter-menu-shadow);
    /* 🔧 禁用所有模糊/滤镜效果，确保移动设备兼容性 */
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    -webkit-filter: none;
    filter: none;
    /* 🔧 强制硬件加速，提升渲染稳定性 */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  
  /* 🔧 确保下拉菜单内的文字可见 */
  .filter-item.active .filter-menu *,
  body .filter-horizontal .filter-item.active .filter-menu * {
    opacity: 1;
    visibility: visible;
  }
  
  /* 🔧 确保选项文字颜色正确 */
  .filter-item.active .filter-menu .filter-option a,
  body .filter-horizontal .filter-item.active .filter-menu .filter-option a {
    color: var(--filter-option-color);
    background-color: transparent;
  }

  .filter-item.active .filter-menu .filter-accordion-header {
    color: var(--filter-accordion-header-color);
    background-color: transparent;
  }
  
  .filter-item.active .filter-menu .filter-option.active a,
  .filter-item.active .filter-menu .filter-option a.active {
    background-color: var(--filter-option-active-bg);
    color: var(--filter-option-color);
  }
}

/* 🍎 iOS Safari 特殊修复 - 针对滚动容器问题 */
@supports (-webkit-touch-callout: none) {
  @media (max-width: 878px) {
    /* 🔧 关键修复：当菜单打开时，禁用父容器的 -webkit-overflow-scrolling: touch */
    /* 这个属性会在 iOS Safari 上创建新的堆叠上下文，导致 position: fixed 元素渲染异常 */
    /* ⚠️ 只禁用 .filter-left-box，不禁用 .filter-items-wrapper 的滚动 */
    .filter-horizontal .filter-left-box:has(.filter-item.active) {
      -webkit-overflow-scrolling: auto;
    }
    
    .filter-item.active .filter-menu,
    .filter-horizontal .filter-item.active .filter-menu,
    body .filter-horizontal .filter-item.active .filter-menu {
      /* 🔧 基本样式 */
      position: fixed;
      background: var(--filter-menu-bg);
      background-color: var(--filter-menu-bg);
      opacity: 1;
      visibility: visible;
      /* 🔧 禁用模糊效果 */
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
      -webkit-filter: none;
      filter: none;
      /* 🔧 移除可能导致问题的属性 */
      transform: none;
      -webkit-transform: none;
      perspective: none;
      -webkit-perspective: none;
      isolation: auto;
      contain: none;
      will-change: auto;
    }
    
    /* 🔧 iOS 上文字样式 */
    .filter-item.active .filter-menu .filter-option a {
      color: var(--filter-option-color);
      -webkit-text-fill-color: var(--filter-option-color);
      opacity: 1;
      visibility: visible;
    }

    .filter-item.active .filter-menu .filter-accordion-header {
      color: var(--filter-accordion-header-color);
      -webkit-text-fill-color: var(--filter-accordion-header-color);
      opacity: 1;
      visibility: visible;
    }
  }
}

/* 移动端筛选标签 */
@media (max-width: 878px) {
  .filter-selected-tags {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 12px 0px;
    gap: 8px;
  }
  
  .filter-selected-tags::-webkit-scrollbar {
    height: 0;
  }
  
  .filter-selected-tags a:not(.clear-filter-all):not(.clear-filter),
  .Selected a:not(.clear-filter-all):not(.clear-filter) {
    flex-shrink: 0;
    white-space: nowrap;
    margin-right: 8px;
    margin-bottom: 0;
  }
  
  .filter-selected-tags a.clear-filter-all,
  .filter-selected-tags a.clear-filter,
  .Selected a.clear-filter-all,
  .Selected a.clear-filter {
    flex-shrink: 0;
    margin-left: auto;
    margin-right: 0;
    margin-bottom: 0;
    white-space: nowrap;
  }
  
  /* 移动端：已选标签容器 */
  .Selected {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 12px 0px;
    gap: 8px;
    width: 100%;
  }
  
  .Selected::-webkit-scrollbar {
    height: 0;
  }
}

/* ======================================== 极小屏幕（≤ 480px） ======================================== */

@media (max-width: 480px) {
  .filter-horizontal .filter-button {
    padding: 8px 8px;
    font-size: 12px;
    border-radius: 8px;
  }
  
  .filter-horizontal .filter-button:after {
    margin-left: 0.5rem;
    font-size: 12px;
  }
  
  .filter-horizontal .filter-label {
    font-size: 13px;
  }
  
  .filter-horizontal .filter-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
  }
  
  .filter-horizontal .filter-items-wrapper {
    gap: 6px;
  }
  
  .filter-horizontal .filter-menu {
    width: 95vw;
    max-width: none;
    min-width: 0;
    padding: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 99999; /* 🔧 确保层级足够高，与移动端一致 */
  }
  
  .filter-selected-tags a:not(.clear-filter-all):not(.clear-filter),
  .Selected a:not(.clear-filter-all):not(.clear-filter) {
    padding: 6px 4px;
    font-size: 12px; /* 🔧 最小字体12px */
    margin-right: 6px;
  }
  
  .filter-selected-tags a .filter-tag-close,
  .Selected a .filter-tag-close {
    width: 16px;
    height: 16px;
    margin-left: 6px;
  }
}

/* ======================================== 超小屏幕（≤ 375px） ======================================== */

@media (max-width: 375px) {
  .filter-horizontal .filter-button {
    padding: 5px 6px;
    font-size: 12px; /* 🔧 最小字体12px */
  }
  
  .filter-horizontal .filter-button:after {
    margin-left: 0.3rem;
    font-size: 12px; /* 🔧 最小字体12px */
  }
  
  .filter-horizontal .filter-label {
    font-size: 12px; /* 🔧 最小字体12px */
  }
  
  .filter-horizontal .filter-icon {
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
  }
  
  .filter-horizontal .filter-items-wrapper {
    gap: 4px;
  }
  
  .filter-selected-tags a:not(.clear-filter-all):not(.clear-filter),
  .Selected a:not(.clear-filter-all):not(.clear-filter) {
    padding: 5px 3px;
    font-size: 12px; /* 🔧 最小字体12px */
    margin-right: 4px;
  }
}
