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

.picker-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) 1.4fr;
  gap: 10px;
  margin-bottom: 12px;
}
/* 「常用单词」下没有单元选框，少一列，别留空档 */
.picker-filters.mode-common { grid-template-columns: repeat(2, minmax(0, 1fr)) 1.6fr; }
.picker-filters .dd,
.picker-filters .picker-search { min-width: 0; }
.picker-search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #FFFFFF;
  border: 1px solid var(--border-field);
  border-radius: var(--radius-pill);
  padding: 0 14px;
  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; }
.picker-search input {
  border: none;
  background: transparent;
  padding: 9px 0;
  font-size: 14.5px;
  outline: none;
  color: var(--text-primary);
  width: 100%;
}

.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 { grid-template-columns: 1fr 1fr; }
  .picker-filters .picker-search { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .picker-filters { gap: 8px; }
  .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; }
}
