/* ============================================================
   选词面板（自测页 / 听写页共用）
   依赖 theme.css 的设计令牌
   ============================================================ */

/* ===== 搜索：独占一行，贴着面板标题 =====
   搜的是整个词库，不限定下面选的范围——「不知道词在哪一册」时才用得上它 */
.picker-search {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  background: #FFFFFF;
  border: 1px solid var(--border-field);
  border-radius: var(--radius-pill);
  padding: 0 10px 0 15px;
  margin-bottom: 10px;
  transition: 0.2s;
}
.picker-search:focus-within {
  border-color: var(--accent-blue);
  box-shadow: 0 0 0 3px rgba(74, 159, 234, 0.2);
}
.picker-search .ico { font-size: 15px; opacity: 0.55; flex-shrink: 0; }
.picker-search input {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  border: none;
  background: transparent;
  padding: 11px 0;
  font-size: 14.5px;
  outline: none;
  color: var(--text-primary);
}
.picker-search .scope {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--pg-ink);
  background: var(--pg-soft);
  border: 1px solid var(--pg-soft2);
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}

/* 全库搜索中的提示条：告诉用户「筛选被忽略了，这是全库结果」 */
.picker-hint {
  background: var(--pg-soft);
  border: 1px solid var(--pg-soft2);
  border-left: 4px solid var(--pg-accent);
  border-radius: 14px;
  padding: 8px 13px;
  margin-bottom: 10px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--pg-ink);
}
.picker-hint[hidden] { display: none; }
.picker-hint b { filter: saturate(1.4) brightness(0.9); }

/* ===== 筛选行：宽度按文案自适应（--dd-w 由 ui.js 量出），行尾空白自动补齐 ===== */
.picker-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}

.picker-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 14px;
  background: var(--pg-soft);
  border: 1px solid var(--pg-soft2);
  border-radius: 16px;
  margin-bottom: 10px;
}
.picker-count {
  font-size: 13.5px;
  color: var(--pg-ink);
  margin-right: auto;
  font-weight: 600;
}
.picker-count b { color: var(--pg-accent); font-size: 15px; }
.picker-bar .btn { min-height: 32px; padding: 5px 13px; font-size: 13px; }

.picker-words {
  max-height: 340px;
  overflow-y: auto;
  border: 1px solid var(--border-soft);
  border-radius: 18px;
  background: #FFFDF8;
  padding: 10px 12px;
}
.picker-group { margin-bottom: 12px; }
.picker-group:last-child { margin-bottom: 0; }
.picker-group-head {
  display: flex;
  align-items: center;
  gap: 8px;
  position: sticky;
  top: -10px;
  background: #FFFDF8;
  padding: 6px 2px;
  z-index: 2;
  border-bottom: 1px dashed var(--border-soft);
  margin-bottom: 8px;
}
.picker-group-head .gname {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-primary);
}
.picker-group-head .gnum {
  font-size: 12px;
  color: var(--text-muted);
  margin-right: auto;
}
/* 难度徽标（一级 / 二级） */
.picker-group-head .glv {
  font-size: 11px;
  font-weight: 700;
  padding: 1px 8px;
  border-radius: 999px;
  color: var(--pg-ink);
  background: var(--pg-soft2);
}
.picker-group-head .gbtn {
  border: 1px solid var(--border-field);
  background: #FFFFFF;
  color: var(--pg-ink);
  font-size: 12px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  cursor: pointer;
  transition: 0.16s;
}
.picker-group-head .gbtn:hover { background: var(--pg-soft); border-color: var(--pg-accent); }

.picker-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.chip {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  padding: 6px 13px;
  border: 1px solid var(--border-soft);
  border-radius: 15px;
  background: #FFFFFF;
  cursor: pointer;
  transition: 0.16s;
  line-height: 1.3;
  max-width: 100%;
  text-align: left;
}
.chip .w {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 168px;
}
.chip .m {
  font-size: 11.5px;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 168px;
}
.chip:hover { border-color: var(--pg-accent); transform: translateY(-1px); }
.chip.sel {
  background: var(--pg-grad);
  border-color: transparent;
  box-shadow: 0 4px 12px var(--pg-shadow);
}
.chip.sel .w, .chip.sel .m { color: #FFFFFF; }
.chip.sel .m { opacity: 0.88; }

.picker-empty {
  text-align: center;
  color: var(--text-muted);
  font-size: 14px;
  padding: 24px 0;
}

@media (min-width: 1000px) {
  .picker-words { max-height: 420px; }
  .chip .w { font-size: 15px; max-width: 200px; }
  .chip .m { font-size: 12px; max-width: 200px; }
}
@media (max-width: 700px) {
  .picker-filters { gap: 8px; }
}
/* 窄屏放不下「全库 943 词」胶囊时先收起来，别挤压输入框 */
@media (max-width: 470px) {
  .picker-search { padding: 0 8px 0 13px; gap: 7px; }
  .picker-search input { font-size: 14px; padding: 10px 0; }
  .picker-search .scope { display: none; }
}
@media (max-width: 480px) {
  .picker-words { max-height: 280px; padding: 8px 9px; }
  .chip { padding: 5px 11px; border-radius: 13px; }
  .chip .w { font-size: 13.5px; max-width: 122px; }
  .chip .m { font-size: 11px; max-width: 122px; }
  .picker-count { font-size: 12.5px; }
  .picker-bar .btn { font-size: 12px; padding: 5px 10px; }
  .picker-hint { font-size: 12.5px; padding: 7px 11px; }
}
