/* ================================================================
   英汉词典 · 页面样式（v2：提高对比度、加大字号、重做标签头）
   依赖 /css/style.css（布局令牌）。
   设计令牌以 --d- 前缀，避免与站点其它页面冲突。
   ================================================================ */

/* 4 线书写示范用到的"手写体"（与字母 / 字帖页共用）。
   同时锁定字体度量：Windows 与 Android 取 ascent/descent 的口径不同（hhea / OS/2），
   同一行文字在行内的垂直位置会差 1~2px，四线格的中线就对不上（App 里第三条线偏低）。
   按 Chrome(Windows) 实测值写死：ascent 28 / descent 14（36px 字号 → 77.78% / 38.89%），
   基线固定落在距行顶 26.5px，正是中线位置的计算前提。老 WebView 会忽略这两条，不影响原样渲染。 */
@font-face {
  font-family: 'Handwriting';
  src: url('/english/fonts/Italic.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  ascent-override: 77.78%;
  descent-override: 38.89%;
  line-gap-override: 0%;
}

:root {
  /* 品牌色：珊瑚系（整站统一，源自成长汇报 PPT 配色）。
     亮珊瑚只做装饰，深珊瑚用于小字文本（白底对比度 ≥4.5:1） */
  --d-primary: #D93E3E;
  --d-primary-strong: #C23434;
  --d-primary-soft: #FFE5E5;     /* 浅珊瑚底，用于区块/激活态 */
  --d-primary-softer: #FFF3EF;
  --d-coral: #FF6B6B;           /* 装饰：色条/描边/圆点 */

  /* 文字：暖灰阶 */
  --d-ink: #262626;             /* 标题/词头 */
  --d-ink-2: #4D4A46;           /* 正文 */
  --d-ink-3: #6E6A64;           /* 次级正文 */
  --d-muted: #7A736B;           /* 说明文字 */
  --d-faint: #9C948A;           /* 最弱：统计/角标 */

  /* 线条与背景：暖灰 */
  --d-line: #EFE0D0;
  --d-line-soft: #F5EDE0;
  --d-bg: #ffffff;
  --d-bg-soft: #FFF6EA;

  --d-card-shadow: 0 1px 3px rgba(96, 64, 24, 0.08), 0 8px 24px rgba(96, 64, 24, 0.05);

  /* 分类强调色 */
  --d-green: #1f9d57;
  --d-green-soft: #e6f6ee;
  --d-green-bar: #34b46e;
  --d-amber: #b9791a;
}

/* ---------- 搜索区 ---------- */
.dict-search {
  background: var(--d-bg);
  border: 1px solid var(--d-line);
  border-radius: 14px;
  box-shadow: var(--d-card-shadow);
  padding: 16px 18px;
  margin-bottom: 18px;
}

.dict-search-box {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #E3D5C2;
  border-radius: 11px;
  padding: 0 14px;
  background: var(--d-bg-soft);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.dict-search-box:focus-within {
  border-color: var(--d-primary);
  box-shadow: 0 0 0 4px rgba(217, 62, 62, 0.14);
  background: #ffffff;
}

.dict-search-box > .bi-search {
  color: #857D72;
  font-size: 1.1rem;
  flex: none;
}

.dict-search-box input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  outline: none;
  background: transparent;
  font-family: inherit;
  font-size: 1.12rem;
  line-height: 1.6;
  padding: 11px 0;
  color: var(--d-ink);
}

.dict-search-box input::placeholder {
  color: #A9A093;
  font-size: 1rem;
}

/* 隐藏浏览器自带的搜索清除按钮（页面已有自定义清除按钮） */
.dict-search-box input::-webkit-search-cancel-button,
.dict-search-box input::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.dict-search-clear {
  flex: none;
  border: none;
  background: transparent;
  color: #B8AE9E;
  cursor: pointer;
  padding: 2px;
  line-height: 1;
  font-size: 1.1rem;
}

@media (hover: hover) {
  .dict-search-clear:hover {
    color: var(--d-ink-3);
  }
}

.dict-search-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin-top: 11px;
  font-size: 0.84rem;
  color: var(--d-muted);
}

.dict-search-foot .dict-kind {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 10px;
  border-radius: 999px;
  background: var(--d-primary-soft);
  color: var(--d-primary-strong);
  font-weight: 700;
  font-size: 0.8rem;
}

/* ---------- 检索结果列表 ---------- */
.dict-results {
  background: var(--d-bg);
  border: 1px solid var(--d-line);
  border-radius: 14px;
  box-shadow: var(--d-card-shadow);
  margin-bottom: 18px;
  overflow: hidden;
}

.dict-results-head {
  padding: 11px 18px;
  border-bottom: 1px dashed var(--d-line-soft);
  font-size: 0.84rem;
  color: var(--d-ink-3);
}

.dict-result-item {
  display: flex;
  align-items: baseline;
  gap: 12px;
  width: 100%;
  padding: 12px 18px;
  border: none;
  border-bottom: 1px solid #F5EDE0;
  background: var(--d-bg);
  text-align: left;
  font-family: inherit;
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.dict-result-item:last-child {
  border-bottom: none;
}

@media (hover: hover) {
  .dict-result-item:hover {
    background: var(--d-primary-softer);
  }
}

.dict-result-item.active {
  background: var(--d-primary-soft);
}

.dict-result-word {
  flex: none;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--d-ink);
}

.dict-result-phonetic {
  flex: none;
  font-size: 0.86rem;
  color: var(--d-muted);
}

.dict-result-cn {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.95rem;
  color: var(--d-ink-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dict-result-tag {
  flex: none;
  font-size: 0.74rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  background: #F7F0E5;
  color: var(--d-muted);
}

.dict-results-more {
  padding: 9px 18px;
  font-size: 0.84rem;
  color: var(--d-muted);
  border-top: 1px dashed var(--d-line-soft);
  background: var(--d-bg-soft);
}

/* ---------- 词条详情 ---------- */
.dict-entry {
  background: var(--d-bg);
  border: 1px solid var(--d-line);
  border-radius: 14px;
  box-shadow: var(--d-card-shadow);
  overflow: hidden;
}

.dict-entry-head {
  padding: 20px 20px 16px;
  border-bottom: 1px solid var(--d-line-soft);
  background: var(--d-bg);
}

.dict-entry-head-main {
  min-width: 0;   /* 允许文本溢出/换行 */
}

/* 词头 + 4 线书写示范 同排（紧挨） */
.dict-entry-title-row {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex-wrap: wrap;
}

.dict-entry-title {
  flex: 0 1 auto;   /* 不撑满，让 trace 紧挨词头 */
  min-width: 0;
}

/* ---------- 4 线书写示范（四线三格，比例同 copybook / 字帖页） ---------- */
.dict-trace {
  flex: 0 0 auto;
  width: auto;                /* 宽度随单词长度自适应 */
  min-width: 64px;            /* 单字母（a/I）也保有最小格子 */
  max-width: 100%;            /* 超长词不撑破容器 */
  /* 格子高按本页字号（38px 手写体）的真实墨迹定：上伸 27~28（B 最高 28）+ 下伸 14 = 42px。
     原来写死 46px（照搬 copybook 的 46 配 36 字），字顶离第一条线空 2.5px、字底空 1.5px，
     且两条中线钉在三等分上（15.33 / 30.66）—— x 高线偏低约 3px，小写字母顶部会顶出格子。 */
  height: 42px;
  position: relative;
  /* 第一条线、第四条线都不用上下 border：
     顶线用背景实线画在距盒顶 2px 处（上伸端才贴得住；本页 38px 斜体墨迹顶在 1.5px，
     线放 2px 正好压住字顶，与「书写示范」页同一观感），
     底线用盒外的 1px 投影画在盒底之下 1px（下伸端才不穿线）。
     border 只能贴着盒边，做不到；另外这一行是 flex-end 底部对齐，加高盒子只会往上长，底线也不会动。
     上下 padding 只用来保持内容盒高度（文字位置与 2/3 线不受顶线位置影响）。 */
  border: 0;
  padding: 1px 0 1px;
  background-color: #FFFDFA;
  background-image: linear-gradient(#4D4A46, #4D4A46);
  background-size: 100% 1px;
  background-position: 0 2px;
  background-repeat: no-repeat;
  box-shadow: 0 1px 0 0 #4D4A46;
  border-radius: 3px;
  box-sizing: border-box;
  display: flex;              /* 同 copybook：用 flex 垂直居中文字 */
  align-items: center;
  overflow: visible;          /* 不裁切 descender */
}

.dict-trace::before,
.dict-trace::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  border-bottom: 1px dashed #4D4A46;
  pointer-events: none;
}

/* 两条中线同样按字体墨迹算（38px 时）：
   文字在行内垂直居中 → 行盒（38px）在 42px 格子里居中后盒顶在距格顶 2px 处，
   行盒内基线偏移 = 半行距(-3.5) + 字体 ascent(30) = 26.5px → 基线落在 28.5px；
   x 高按「逐像素扫墨迹」量出来是 14px（canvas 的 actualBoundingBox 会多报 1px），
   所以 x 高顶在 28.5 - 14 = 14.5px。
   top 相对「内边距盒」，上边框已改成背景实线，内边距盒从盒顶算起，所以直接填绝对位置。 */
.dict-trace::before {
  top: 14.5px;
}

.dict-trace::after {
  top: 28.5px;
}

.dict-trace-word {
  position: relative;
  z-index: 1;
  width: auto;               /* 由内容撑开盒宽 */
  text-align: left;          /* 左对齐：与下方词头同一起笔位置 */
  padding: 0 12px;           /* 两端留呼吸空间 */
  /* Android 的字体度量口径比桌面低一点点（见 js 里的说明）：文字整体下移 1px 补回来，
     只动文字不动线 —— 第一条/第四条线本来就贴得正好 */
  top: 0;
  font-family: 'Handwriting', 'STKaiti', 'KaiTi', '楷体', cursive;
  color: var(--d-primary-strong);
  font-size: 38px;
  font-weight: 350;
  font-style: italic;
  opacity: 0.95;
  letter-spacing: 0.5px;
  line-height: 1;
  white-space: nowrap;
}

/* Android（含 App 里的 WebView）：字体度量口径差 ~1px，文字整体下移 1px 补回来。
   只动文字不动线 —— 第一条/第四条线本来就贴得正好，推线会把它们弄歪。 */
.is-android .dict-trace-word {
  top: 1px;
}

.dict-entry-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
}

.dict-entry-word {
  margin: 0;
  font-size: 1.95rem;
  font-weight: 800;
  color: var(--d-ink);
  line-height: 1.25;
  word-break: break-word;
  letter-spacing: -0.01em;
}

.dict-entry-lemma {
  font-size: 0.86rem;
  color: var(--d-muted);
}

.dict-entry-lemma button {
  border: none;
  background: none;
  padding: 0;
  color: var(--d-primary);
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
}

.dict-phonetics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 10px;
}

.dict-phonetic {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 1.04rem;
  color: var(--d-ink-2);
}

.dict-phonetic .label {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--d-muted);
}

.dict-speak {
  border: none;
  background: var(--d-primary-soft);
  color: var(--d-primary);
  border-radius: 999px;
  flex: 0 0 auto;        /* 不被长句挤压变形 */
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  font-size: 0.85rem;
  transition: background-color 0.15s ease;
}

@media (hover: hover) {
  .dict-speak:hover {
    background: #FFDCD2;
  }
}

.dict-speak.playing {
  background: var(--d-primary);
  color: #ffffff;
}

.dict-entry-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.dict-chip {
  font-size: 0.95rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
  background: #F7F0E5;
  color: var(--d-ink-3);
  white-space: nowrap;
}

.dict-chip.tag-textbook {
  background: var(--d-green-soft);
  color: var(--d-green);
}

/* 可点击的数值标签（柯林斯星级 / BNC 词频）：点击弹出说明气泡。
   透明边框是为了让 hover 时只换色、不引起位移 */
button.dict-chip-info {
  border: 1px solid transparent;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
  button.dict-chip-info:hover {
    border-color: var(--d-primary);
    background: var(--d-primary-softer);
    color: var(--d-primary);
    outline: none;
  }
}

/* focus-visible 是键盘可达性反馈，不属于悬停，保持不限定设备 */
button.dict-chip-info:focus-visible {
  border-color: var(--d-primary);
  background: var(--d-primary-softer);
  color: var(--d-primary);
  outline: none;
}

/* ---------- 数值说明气泡（Bootstrap Popover，配 data-bs-custom-class="dict-popover"） ---------- */
.dict-popover {
  /* 底色跟标签"点击后"（hover/focus 态）一致：--d-primary-softer。
     改 Bootstrap 的两个变量而不是直接写 background —— 小三角是用 --bs-popover-bg 上色的，
     不跟着改会出现"气泡是暖色、尖角还是白的"。 */
  --bs-popover-bg: var(--d-primary-softer);
  --bs-popover-header-bg: var(--d-primary-softer);
  max-width: 300px;
  border: 1px solid var(--d-line);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(96, 64, 24, 0.16);
}

.dict-popover .popover-header {
  border-bottom: 1px solid var(--d-line-soft);
  color: var(--d-ink);
  font-size: 0.88rem;
  font-weight: 700;
  padding: 9px 12px 8px;
}

.dict-popover .popover-body {
  color: var(--d-ink-2);
  font-size: 0.86rem;
  line-height: 1.75;
  padding: 10px 12px;
}

/* ---------- Tab 分页（经典下划线式：纯文字标签 + 贴底粗线，参考剑桥/必应词典） ---------- */
.dict-tabs {
  display: flex;
  gap: 2px;
  padding: 0 18px;
  border-bottom: 1px solid var(--d-line);
  background: var(--d-bg);
  overflow-x: auto;
  scrollbar-width: none;
}

.dict-tabs::-webkit-scrollbar {
  display: none;
}

.dict-tab {
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--d-ink-3);
  padding: 11px 14px 12px;
  border-radius: 0;
  cursor: pointer;
  position: relative;
  white-space: nowrap;
  transition: color 0.15s ease;
}

@media (hover: hover) {
  .dict-tab:hover {
    color: var(--d-primary);
    background: transparent;
  }
}

.dict-tab.active {
  color: var(--d-primary);
  font-weight: 800;
}

/* 激活指示线：贴着标签底边、压在基准线上，比基准线粗一号 */
.dict-tab.active::after {
  content: '';
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: -1px;
  height: 3px;
  background: var(--d-primary);
  border-radius: 3px 3px 0 0;
}

.dict-tab .dict-tab-count {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--d-faint);
  margin-left: 4px;
}

.dict-tab.active .dict-tab-count {
  color: var(--d-primary);
}

.dict-panel {
  padding: 18px 20px 22px;
}

.dict-panel[hidden] {
  display: none;
}

/* ---------- 区块 ---------- */
.dict-block + .dict-block {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--d-line-soft);
}

.dict-block-title {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 11px;
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--d-primary);
  letter-spacing: 0.03em;
}

.dict-block-title::before {
  content: '';
  width: 3px;
  height: 14px;
  background: var(--d-primary);
  border-radius: 2px;
}

.dict-block-title .bi {
  font-size: 0.9rem;
}

/* ---------- 释义 ---------- */
.dict-sense {
  display: flex;
  align-items: baseline;
  gap: 9px;
  padding: 6px 0;
  font-size: 1.04rem;
  line-height: 1.75;
  color: var(--d-ink-2);
}

.dict-sense-num {
  flex: none;
  min-width: 22px;
  margin-top: 1px;
  font-size: 0.98rem;
  font-weight: 800;
  color: var(--d-primary);
  font-variant-numeric: tabular-nums;
}

.dict-pos {
  flex: none;
  font-size: 1.04rem;
  font-weight: 600;
  font-style: italic;
  color: var(--d-ink-3);
  line-height: 1.6;
}

.dict-sense-sub {
  font-size: 1.04rem;
  color: var(--d-muted);
  margin-top: 2px;
  margin-left: 30px;
}

.dict-sense.tier-low .dict-sense-num {
  color: #B3A996;
}

.dict-sense.tier-low {
  font-size: 0.96rem;
  color: var(--d-ink-3);
}

/* ---------- 例句 ---------- */
.dict-sentence {
  padding: 10px 0;
  border-bottom: 1px solid #F5EDE0;
}

.dict-sentence:last-child {
  border-bottom: none;
}

.dict-sentence-en {
  display: flex;
  align-items: baseline;
  gap: 9px;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--d-ink);
}

.dict-sentence-en .dict-w {
  cursor: pointer;
  border-radius: 3px;
  padding: 0 1px;
  transition: background-color 0.12s ease, color 0.12s ease;
}

@media (hover: hover) {
  .dict-sentence-en .dict-w:hover {
    background: var(--d-primary-soft);
    color: var(--d-primary);
  }
}

.dict-sentence-zh {
  font-size: 0.92rem;
  color: var(--d-muted);
  margin-top: 3px;
  padding-left: 37px;
}

.dict-note {
  font-size: 0.8rem;
  color: var(--d-faint);
  margin-top: 3px;
  padding-left: 37px;
}

.dict-more {
  border: none;
  background: none;
  font-family: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--d-primary);
  cursor: pointer;
  padding: 8px 0 2px;
}

/* ---------- 短语 / 同义词 / 同根词 ---------- */
.dict-phrase {
  font-size: 0.96rem;
  line-height: 1.7;
  padding: 5px 0;
  color: var(--d-ink-2);
}

.dict-phrase .en {
  font-weight: 700;
}

.dict-phrase .zh {
  color: var(--d-muted);
  margin-left: 8px;
  font-size: 0.9rem;
}

.dict-phrase.tier-low {
  color: #9aa7b6;
}

.dict-phrase.tier-low .en {
  font-weight: 600;
}

.dict-wordlist {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

/* 同义词 / 同根词的词块：字号与字重都提上来，保证一眼能看清（原来 0.86rem 偏小偏淡） */
.dict-wordlist .dict-wordlink,
.dict-wordlist .dict-wordmiss,
.dict-wordlist .dict-wordref {
  border-radius: 999px;
  padding: 5px 13px;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.5;
  transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.dict-wordlist .dict-wordlink small,
.dict-wordlist .dict-wordmiss small,
.dict-wordlist .dict-wordref small {
  color: var(--d-muted);
  margin-left: 5px;
}

/* 已收录的同义词：实线 + 暖米底 + 深字，可点跳转 */
.dict-wordlist .dict-wordlink {
  border: 1px solid var(--d-line);
  background: var(--d-bg-soft);
  color: var(--d-ink-2);
  cursor: pointer;
}

@media (hover: hover) {
  .dict-wordlist .dict-wordlink:hover {
    border-color: var(--d-primary);
    color: var(--d-primary);
    background: var(--d-primary-soft);
  }
}

/* 只作展示、不可点的词块（同根词整体，以及同义词里词库未收录的词形）：
   虚线 + 暖米底，文字保持可读，不做成浅灰的"禁用"感 */
.dict-wordlist .dict-wordmiss,
.dict-wordlist .dict-wordref {
  border: 1px dashed #DCCBB4;
  background: #FBF5EB;
  color: var(--d-ink-3);
}

/* 同根词里那个"原形"（= core.lemma）：唯一实线 + 珊瑚色的词块，
   从一排虚线米色词块里一眼跳出来，并带「原形」小标 */
.dict-wordlist .dict-wordref.is-lemma {
  border-style: solid;
  border-color: var(--d-primary);
  background: var(--d-primary-softer);
  color: var(--d-primary);
}

.dict-wordlist .dict-wordref.is-lemma small {
  color: var(--d-primary);
  opacity: 0.85;
}

.dict-wordref-tag {
  margin-right: 6px;   /* 标在词块最前面，与后面的词性、词形分开 */
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--d-primary);
}

/* 同根词词块内的词性（词性分组已拉平到词块上，见 relatedHtml） */
.dict-wordref-pos {
  margin-right: 5px;
  font-size: 0.85em;
  font-style: italic;
  font-weight: 600;
  color: var(--d-muted);
}

.dict-wordlist .dict-wordref.is-lemma .dict-wordref-pos {
  color: var(--d-primary);
  opacity: 0.8;
}

/* 词条头部的"英式拼写 / 美式拼写"行：去掉胶囊外观，回到行内文字 */
.dict-entry-lemma .dict-wordmiss {
  border: none;
  background: none;
  padding: 0;
}

/* ---------- 讲解类文本 ---------- */
.dict-prose {
  font-size: 1.04rem;
  line-height: 1.95;
  color: var(--d-ink-2);
  white-space: pre-wrap;
  word-break: break-word;
}

/* ---------- 记忆法 / 词形变化 ---------- */
.dict-memory {
  font-size: 0.94rem;
  line-height: 1.9;
  color: #1f6b41;
  background: var(--d-green-soft);
  border-left: 3px solid var(--d-green-bar);
  border-radius: 0 9px 9px 0;
  padding: 10px 14px;
}

.dict-forms {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 16px;
  font-size: 0.92rem;
  color: var(--d-ink-2);
}

.dict-forms span b {
  color: var(--d-muted);
  font-weight: 700;
  margin-right: 5px;
  font-size: 0.8rem;
}

/* ---------- 空状态 / 加载 ---------- */
.dict-empty {
  background: var(--d-bg);
  border: 1px solid var(--d-line);
  border-radius: 14px;
  padding: 26px 20px;
  text-align: center;
  color: var(--d-muted);
  font-size: 0.94rem;
  box-shadow: var(--d-card-shadow);
}

.dict-empty .dict-empty-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--d-ink-2);
  margin-bottom: 6px;
}

.dict-alpha {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: center;
  margin-top: 16px;
}

.dict-alpha button {
  width: 32px;
  height: 32px;
  border: 1px solid var(--d-line);
  background: var(--d-bg-soft);
  border-radius: 9px;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--d-ink-2);
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
  .dict-alpha button:hover {
    border-color: var(--d-primary);
    color: var(--d-primary);
    background: var(--d-primary-soft);
  }
}

.dict-hint {
  margin-top: 12px;
  font-size: 0.86rem;
  color: var(--d-muted);
}

.dict-hint b {
  color: var(--d-primary);
  cursor: pointer;
}

.dict-loading {
  padding: 28px 18px;
  text-align: center;
  color: var(--d-muted);
  font-size: 0.92rem;
}

/* ---------- 移动端 ---------- */
@media (max-width: 767.98px) {
  .dict-entry-word {
    font-size: 1.6rem;
  }

  .dict-entry-head,
  .dict-panel {
    padding-left: 15px;
    padding-right: 15px;
  }

  .dict-result-item,
  .dict-results-head {
    padding-left: 15px;
    padding-right: 15px;
  }

  .dict-tab {
    padding: 8px 13px;
    font-size: 0.9rem;
  }

  .dict-sentence-zh,
  .dict-note {
    padding-left: 0;
  }

  .dict-sense-sub {
    margin-left: 0;
  }
}

/* 手机竖屏无需特殊处理：词头 + 书写示范保持与桌面同一行，
   全尺寸即可放下（实测 grandfather 也能容纳）；
   真正超长的词由 .dict-entry-title-row 的 flex-wrap 兜底换行 */
