/* ============================================================
   医学词库 / 单词本 独立页
   ============================================================ */
html{scroll-behavior:smooth}
body.dict-page{
  margin:0;min-height:100vh;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--v2-text);
  background:
    radial-gradient(900px 460px at -10% -12%,rgba(20,184,166,.14),transparent 62%),
    radial-gradient(760px 420px at 108% 4%,rgba(6,182,212,.1),transparent 60%),
    var(--v2-bg);
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
  padding-bottom:calc(30px + env(safe-area-inset-bottom));
}
body.dict-page *{box-sizing:border-box}
body.dict-page button{font-family:inherit}
body.dict-page a{text-decoration:none;color:inherit}
body.dict-page input{font-family:inherit}

/* ---------- 顶栏 ---------- */
.dict-topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:10px;
  padding:calc(10px + env(safe-area-inset-top)) max(14px, calc((100vw - 800px) / 2)) 10px;
  background:rgba(248,250,252,.88);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border-bottom:1px solid var(--v2-border-light);
}
.dict-back{
  flex:0 0 34px;width:34px;height:34px;border-radius:11px;
  display:grid;place-items:center;
  background:var(--v2-card);border:1px solid var(--v2-border);
  color:var(--v2-text-secondary);font-size:23px;font-weight:700;line-height:1;
  padding-bottom:3px;cursor:pointer;
}
.dict-back:active{transform:scale(.92);background:var(--v2-bg-alt)}
.dict-brand{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.dict-logo{
  flex:0 0 36px;width:36px;height:36px;border-radius:12px;
  display:grid;place-items:center;font-size:17px;color:#fff;
  background:linear-gradient(140deg,#0d9488,#14b8a6 55%,#06b6d4);
  box-shadow:0 6px 16px rgba(13,148,136,.24);
}
.dict-titles{min-width:0}
.dict-title{font-size:16px;font-weight:800;letter-spacing:-.2px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dict-sub{font-size:10px;font-weight:600;letter-spacing:.2px;color:var(--v2-text-tertiary);line-height:1.4;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dict-head-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px}
.dict-head-link{
  display:inline-flex;align-items:center;gap:4px;
  height:32px;padding:0 10px;border-radius:10px;
  border:1px solid rgba(13,148,136,.28);
  background:linear-gradient(135deg,#f0fdfa,#ecfeff);
  color:#0f766e;font-size:11.5px;font-weight:800;letter-spacing:.2px;
  white-space:nowrap;
}
.dict-head-link:active{transform:scale(.95);background:#e0f7f3}
.dict-head-badge{
  min-width:15px;height:15px;padding:0 4px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;
  font-size:9px;font-weight:800;line-height:1;
}
.dict-head-badge[hidden]{display:none}

/* ---------- 页面容器 ---------- */
.dict-main{width:100%;max-width:800px;margin:0 auto;padding:16px 14px 12px}

/* ---------- 搜索主视觉 ---------- */
.dict-hero{
  position:relative;overflow:hidden;
  border-radius:22px;padding:16px 14px 13px;margin-bottom:18px;
  background:linear-gradient(140deg,#0d9488 0%,#14b8a6 52%,#06b6d4 100%);
  box-shadow:0 12px 30px rgba(13,148,136,.22);
}
.dict-hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(220px 110px at 92% -10%,rgba(255,255,255,.34),transparent 64%),
    radial-gradient(180px 120px at 4% 110%,rgba(255,255,255,.16),transparent 60%);
}
.dict-searchbox{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:6px;
  background:#fff;border:1px solid rgba(255,255,255,.6);
  border-radius:15px;padding:0 8px 0 13px;
  box-shadow:0 4px 16px rgba(15,23,42,.08);
}
.dict-search-icon{flex:0 0 auto;font-size:14px;opacity:.55}
.dict-searchbox input{
  flex:1;min-width:0;height:46px;border:0;outline:none;background:transparent;
  color:#0f172a;font-size:15px;
}
.dict-searchbox input::placeholder{color:#94a3b8}
.dict-searchbox input::-webkit-search-cancel-button,
.dict-searchbox input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
.dict-search-clear{
  flex:0 0 28px;width:28px;height:28px;border:0;border-radius:9px;
  background:#f1f5f9;color:#64748b;font-size:12px;line-height:1;
  display:grid;place-items:center;cursor:pointer;
}
.dict-search-clear:active{background:#e2e8f0;transform:scale(.92)}
.dict-search-clear[hidden]{display:none}
.dict-stats{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding-top:11px;color:rgba(255,255,255,.9);
  font-size:10.5px;font-weight:600;letter-spacing:.2px;
}
.dict-stats b{font-size:12px;font-weight:800;color:#fff}
.dict-stats i{width:1px;height:10px;background:rgba(255,255,255,.34);border-radius:1px}

/* ---------- 分类区块 ---------- */
.dict-section-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:10px;
  padding:0 3px 10px;
}
.dict-section-title{
  display:flex;align-items:center;gap:8px;
  font-size:15.5px;font-weight:800;letter-spacing:-.2px;color:var(--v2-text);
}
.dict-section-title::before{
  content:'';width:4px;height:14px;border-radius:4px;
  background:linear-gradient(135deg,#0d9488,#06b6d4);
}
.dict-section-desc{font-size:10.5px;line-height:1.5;color:var(--v2-text-tertiary);margin-top:3px}
.dict-count{flex:0 0 auto;font-size:10px;font-weight:700;color:var(--v2-text-tertiary)}

.dict-cats{
  display:flex;gap:6px;overflow-x:auto;
  padding:0 1px 12px;
  scrollbar-width:none;-ms-overflow-style:none;
}
.dict-cats::-webkit-scrollbar{display:none}
.dict-cat{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;
  padding:7px 12px;border-radius:999px;
  border:1px solid var(--v2-border);background:var(--v2-card);
  color:var(--v2-text-secondary);font-size:12px;font-weight:700;
  white-space:nowrap;cursor:pointer;font-family:inherit;
  transition:background .15s,color .15s,transform .1s;
}
.dict-cat em{
  font-style:normal;font-size:9px;font-weight:800;
  color:var(--v2-text-tertiary);
  background:var(--v2-bg-alt);border-radius:999px;padding:1px 5px;
}
.dict-cat:active{transform:scale(.96)}
.dict-cat.active{
  background:linear-gradient(135deg,#0d9488,#06b6d4);
  border-color:transparent;color:#fff;
  box-shadow:0 4px 12px rgba(13,148,136,.22);
}
.dict-cat.active em{background:rgba(255,255,255,.22);color:#fff}

/* ---------- 词条列表 ---------- */
.dict-list{display:flex;flex-direction:column;gap:8px}
.dict-row{
  display:flex;align-items:center;gap:8px;
  background:var(--v2-card);border:1px solid var(--v2-border-light);
  border-radius:14px;padding:11px 9px 11px 14px;
  box-shadow:var(--v2-shadow-sm);
  transition:background .15s,transform .1s;
}
.dict-row:active{background:var(--v2-bg-alt)}
.dict-row-main{
  flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;
  background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;
}
.dict-row-top{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;min-width:0}
.dict-row-word{font-size:15px;font-weight:800;letter-spacing:-.1px;color:var(--v2-text);word-break:break-word}
.dict-row-phon{
  font-size:10.5px;font-weight:600;color:var(--v2-text-tertiary);
  font-family:"Segoe UI",Arial,sans-serif;word-break:break-all;
}
.dict-row-brief{
  font-size:12.5px;font-weight:500;line-height:1.5;color:var(--v2-text-secondary);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  word-break:break-word;
}
.dict-row-side{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.dict-row-cat{
  max-width:74px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:9px;font-weight:700;color:#0f766e;
  background:rgba(13,148,136,.1);border-radius:5px;padding:2px 6px;
}
.dict-row-star{
  width:30px;height:30px;border-radius:9px;
  border:1px solid transparent;background:transparent;
  color:var(--v2-text-tertiary);font-size:16px;line-height:1;
  display:grid;place-items:center;cursor:pointer;font-family:inherit;
}
.dict-row-star:active{transform:scale(.88);background:rgba(245,158,11,.12)}
.dict-row-star.saved{color:#f59e0b;background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.24)}

.dict-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  padding:38px 18px;text-align:center;
  background:var(--v2-card);border:1px dashed var(--v2-border);
  border-radius:16px;
}
.dict-empty-icon{
  width:50px;height:50px;border-radius:16px;display:grid;place-items:center;
  font-size:22px;background:var(--v2-bg-alt);
}
.dict-empty-title{font-size:13.5px;font-weight:800;color:var(--v2-text-secondary)}
.dict-empty-desc{font-size:11.5px;line-height:1.7;color:var(--v2-text-tertiary);max-width:260px}
.dict-loading{display:flex;flex-direction:column;gap:8px}
.dict-skl-row{
  height:64px;border-radius:14px;
  background:linear-gradient(90deg,var(--v2-card) 25%,var(--v2-bg-alt) 37%,var(--v2-card) 63%);
  background-size:400% 100%;animation:dictShimmer 1.3s ease infinite;
  border:1px solid var(--v2-border-light);
}
@keyframes dictShimmer{0%{background-position:100% 0}100%{background-position:0 0}}

/* ---------- 详情 ---------- */
.dict-detail-back{
  display:inline-flex;align-items:center;gap:4px;
  margin:-2px 0 10px;padding:6px 10px;border-radius:9px;
  border:1px solid var(--v2-border);background:var(--v2-card);
  color:var(--v2-text-secondary);font-size:11.5px;font-weight:700;
  cursor:pointer;font-family:inherit;
}
.dict-detail-back:active{background:var(--v2-bg-alt);transform:scale(.96)}
.dict-detail-body{
  background:var(--v2-card);border:1px solid var(--v2-border-light);
  border-radius:20px;padding:18px 16px;
  box-shadow:var(--v2-shadow-sm);
  animation:dictFade .2s ease-out;
}
@keyframes dictFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.dict-detail-body .de-source a{color:#0d9488;font-weight:700}

/* ---------- 数据缺失提示 ---------- */
.dict-alert{
  display:flex;flex-direction:column;gap:3px;
  margin-bottom:14px;padding:12px 14px;border-radius:13px;
  background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.28);
  color:#92400e;font-size:11.5px;line-height:1.6;
}
.dict-alert b{font-size:12.5px;font-weight:800}

/* ---------- 页脚 ---------- */
.dict-foot{
  margin-top:22px;padding:14px 4px 6px;
  border-top:1px dashed var(--v2-border);
  color:var(--v2-text-tertiary);font-size:10px;line-height:1.8;text-align:center;
}
.dict-foot a{color:#0d9488;font-weight:700}
.dict-foot-note{margin-top:3px;opacity:.9}

/* ============================================================
   单词本
   ============================================================ */
.wb-summary{
  display:grid;grid-template-columns:repeat(3,1fr) auto;gap:7px;
  align-items:stretch;margin-bottom:12px;
}
.wb-sum-item{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  padding:12px 6px;border-radius:15px;
  background:var(--v2-card);border:1px solid var(--v2-border-light);
  box-shadow:var(--v2-shadow-sm);
}
.wb-sum-item b{font-size:22px;font-weight:800;letter-spacing:-.5px;line-height:1.15;color:#0f766e}
.wb-sum-item span{font-size:9.5px;font-weight:600;color:var(--v2-text-tertiary)}
.wb-clear{
  align-self:center;height:100%;min-height:58px;padding:0 12px;
  border:1px solid var(--v2-border);border-radius:15px;
  background:var(--v2-card);color:var(--v2-text-tertiary);
  font-size:11px;font-weight:700;cursor:pointer;
}
.wb-clear:active{background:rgba(244,63,94,.08);color:#e11d48;border-color:rgba(244,63,94,.28)}
.wb-clear:disabled{opacity:.42;cursor:default}
.wb-clear:disabled:active{background:var(--v2-card);color:var(--v2-text-tertiary);border-color:var(--v2-border)}

.wb-recite{
  position:relative;display:flex;align-items:center;gap:11px;
  margin-bottom:12px;padding:13px 13px;border-radius:17px;overflow:hidden;
  background:linear-gradient(135deg,#0f766e,#0d9488 56%,#0891b2);
  box-shadow:0 8px 20px rgba(13,148,136,.18);color:#fff;
}
.wb-recite::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(180px 80px at 96% -20%,rgba(255,255,255,.24),transparent 64%);
}
.wb-recite:active{transform:scale(.992)}
.wb-recite-icon{
  flex:0 0 38px;width:38px;height:38px;border-radius:12px;
  display:grid;place-items:center;font-size:17px;font-weight:800;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.24);
}
.wb-recite-body{position:relative;z-index:1;flex:1;min-width:0}
.wb-recite-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:800;line-height:1.3}
.wb-recite-due{
  min-width:18px;height:18px;padding:0 5px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.94);color:#0f766e;
  font-size:9.5px;font-weight:800;line-height:1;
}
.wb-recite-due[hidden]{display:none}
.wb-recite-desc{margin-top:3px;font-size:10.5px;line-height:1.5;color:rgba(255,255,255,.84)}
.wb-recite-arrow{position:relative;z-index:1;font-size:22px;line-height:1;color:rgba(255,255,255,.8)}

.wb-searchbox{
  background:var(--v2-card);border:1px solid var(--v2-border-light);
  border-radius:14px;box-shadow:var(--v2-shadow-sm);
}
.wb-searchbox input{color:var(--v2-text)}
.wb-searchbox input::placeholder{color:var(--v2-text-tertiary)}
.wb-cats{padding-top:11px}
.wb-list{display:flex;flex-direction:column}
.wb-group-title{
  padding:14px 5px 8px;font-size:10.5px;font-weight:800;letter-spacing:.6px;
  color:var(--v2-text-tertiary);
}
.wb-group-title:first-child{padding-top:4px}
.wb-card{
  position:relative;display:flex;align-items:stretch;gap:6px;
  margin-bottom:8px;padding:11px 8px 11px 14px;
  background:var(--v2-card);border:1px solid var(--v2-border-light);
  border-radius:15px;box-shadow:var(--v2-shadow-sm);
  overflow:hidden;
}
.wb-card::before{
  content:'';position:absolute;left:0;top:11px;bottom:11px;width:3px;
  border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,#14b8a6,#06b6d4);opacity:.6;
}
.wb-card-main{
  flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;
  padding:0;border:0;background:none;text-align:left;cursor:pointer;color:inherit;
}
.wb-word-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.wb-word{font-size:16px;font-weight:800;letter-spacing:-.2px;color:var(--v2-text);word-break:break-word}
.wb-phon{
  font-size:10.5px;font-weight:600;color:var(--v2-text-tertiary);
  font-family:"Segoe UI",Arial,sans-serif;word-break:break-all;
}
.wb-dst{font-size:12.5px;font-weight:600;line-height:1.5;color:#0f766e;word-break:break-word}
.wb-meta{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;
  margin-top:3px;font-size:9px;color:var(--v2-text-tertiary);
}
.wb-dir{font-weight:800;color:#0d9488;letter-spacing:.3px}
.wb-cat{background:var(--v2-bg-alt);border-radius:5px;padding:1px 5px;font-weight:600}
.wb-actions{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;gap:5px}
.wb-icon-btn{
  width:30px;height:30px;border-radius:9px;
  display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--v2-border-light);background:var(--v2-bg);
  color:var(--v2-text-tertiary);font-size:13px;line-height:1;font-family:inherit;
}
.wb-icon-btn:active{transform:scale(.9);background:var(--v2-bg-alt)}
.wb-icon-btn.is-star{
  color:#f59e0b;border-color:rgba(245,158,11,.26);background:rgba(245,158,11,.09);
}
.wb-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  padding:46px 20px;text-align:center;
  background:var(--v2-card);border:1px dashed var(--v2-border);border-radius:18px;
}
.wb-empty-icon{
  width:56px;height:56px;border-radius:18px;display:grid;place-items:center;
  font-size:24px;color:#d97706;
  background:linear-gradient(145deg,#fef3c7,#ffedd5);
  border:1px solid rgba(245,158,11,.2);
}
.wb-empty-title{font-size:14px;font-weight:800;color:var(--v2-text-secondary)}
.wb-empty-desc{font-size:11.5px;line-height:1.7;color:var(--v2-text-tertiary);max-width:260px}
.wb-empty-link{
  margin-top:4px;padding:8px 15px;border-radius:10px;
  background:linear-gradient(135deg,#0d9488,#06b6d4);color:#fff;
  font-size:12px;font-weight:800;
}

/* ---------- 深色模式 ---------- */
@media (prefers-color-scheme:dark){
  body.dict-page{
    background:
      radial-gradient(900px 460px at -10% -12%,rgba(20,184,166,.09),transparent 62%),
      radial-gradient(760px 420px at 108% 4%,rgba(6,182,212,.07),transparent 60%),
      var(--v2-bg);
  }
  .dict-topbar{background:rgba(11,18,32,.9)}
  .dict-head-link{background:#12303a;border-color:#1e4d52;color:#7fe3d6}
  .dict-head-link:active{background:#17424c}
  .dict-searchbox{background:#f8fafc;border-color:rgba(255,255,255,.14)}
  .dict-empty{border-color:var(--v2-border)}
  .dict-alert{background:rgba(245,158,11,.13);border-color:rgba(245,158,11,.3);color:#fcd34d}
  .dict-row-cat{background:rgba(20,184,166,.14);color:#5eead4}
  .wb-sum-item b{color:#5eead4}
  .wb-dst{color:#5eead4}
  .wb-empty-icon{background:#3b2a12;color:#fbbf24;border-color:#5a4217}
  .dict-cat em{background:var(--v2-bg-alt)}
  .dict-cat.active em{background:rgba(255,255,255,.22)}
  .dict-skl-row{background:linear-gradient(90deg,#111c2e 25%,#16243a 37%,#111c2e 63%);background-size:400% 100%}
  .wb-icon-btn{background:#0f172a}
  .dict-foot a{color:#5eead4}
}

/* ---------- 窄屏 ---------- */
@media (max-width:380px){
  .dict-main{padding:12px 10px 10px}
  .dict-topbar{gap:8px;padding-left:10px;padding-right:10px}
  .dict-sub{display:none}
  .dict-title{font-size:15px}
  .dict-hero{border-radius:19px;padding:13px 11px 11px}
  .dict-stats{gap:7px;font-size:9.5px}
  .dict-stats b{font-size:11px}
  .dict-head-link{padding:0 8px;font-size:10.5px}
  .dict-row{padding-left:12px}
  .dict-row-cat{max-width:60px}
  .wb-summary{grid-template-columns:repeat(3,1fr)}
  .wb-clear{grid-column:1 / -1;min-height:0;height:34px;border-radius:11px}
  .dict-detail-body{padding:15px 13px;border-radius:17px}
  .dict-section-title{font-size:14.5px}
  .wb-word{font-size:15px}
}
@media (max-width:340px){
  .dict-head-link span:not(.dict-head-badge){display:none}
  .dict-logo{display:none}
}
