/* ============================================================
   货代术语库 · 深色紧凑主题
   主色 #00D07E · 底色 #213041
   ============================================================ */

:root {
  --bg: #213041;
  --bg-deep: #1A2634;
  --bg-card: #263549;
  --bg-card-2: #2B3C52;
  --bg-hover: #31445C;
  --border: #32445C;
  --border-light: #3D5170;
  --text: #E8EEF5;
  --text-2: #B4C2D4;
  --text-3: #7E90A8;
  --accent: #00D07E;
  --accent-soft: rgba(0, 208, 126, 0.12);
  --accent-strong: #00E08A;
  --danger: #E4572E;
  --radius: 10px;
  --radius-sm: 7px;
  --shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", sans-serif;
  --mono: "SF Mono", "JetBrains Mono", "Cascadia Code", Consolas, "Courier New", monospace;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

/* overflow-x: clip 不创建滚动容器，因此不会破坏顶栏 position: sticky；
   同时兜住 100vw 全宽元素（hero 光晕区）在经典滚动条下多出的十几像素横向溢出 */
html { scroll-behavior: smooth; overflow-x: clip; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

.wrap { max-width: 1320px; margin: 0 auto; padding: 0 24px; }

a { color: inherit; text-decoration: none; }

::selection { background: rgba(0, 208, 126, 0.3); }

/* 滚动条 */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-deep); }
::-webkit-scrollbar-thumb { background: #3A4C66; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #475C7A; }

.ico { flex-shrink: 0; vertical-align: -3px; }

kbd.kbd {
  font-family: var(--mono);
  font-size: 11px;
  background: var(--bg-card-2);
  border: 1px solid var(--border-light);
  border-bottom-width: 2px;
  border-radius: 5px;
  padding: 1px 7px;
  color: var(--text-2);
}

/* ============================================================
   顶栏
   ============================================================ */
.topbar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(33, 48, 65, 0.55);
  backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid rgba(50, 68, 92, 0.55);
}

.topbar-in {
  display: flex;
  align-items: center;
  gap: 26px;
  height: 65px;
}

.brand { display: flex; align-items: center; gap: 9px; }

/* 品牌嵌入 nav（菜单中·行业基础之后）· 圆形 LOGO · 浮动于 nav 之外 */
.brand-in-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: transparent;
  border: none;
  padding: 0;
  margin: 0 12px -16px 12px;  /* 负 margin-bottom 让 LOGO 浮出 nav 下方 */
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
  box-shadow: none;
  transition: none;  /* 去掉 hover 放大 */
}

.brand-in-nav::after { display: none !important; }

/* 去掉 hover scale，保持纯静态 */
.brand-logo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* nav 内联状态下隐藏文字 brand-name（圆形版已去掉文字） */
.brand-name { display: none; }

/* nav 居中布局 */
.nav { display: flex; gap: 4px; align-items: center; }
.nav.nav-center { margin: 0 auto; }

.nav a {
  padding: 7px 14px;
  border-radius: 7px;
  font-size: 15.5px;
  font-weight: 600;
  color: var(--text-2);
  transition: color 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.nav a::after {
  content: "";
  width: 11px; height: 11px;
  background: url("data:image/svg+xml,utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237E90A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 3h6v6'/><path d='M10 14 21 3'/><path d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/></svg>") no-repeat center / 11px 11px;
  opacity: 0.55;
  transition: opacity 0.15s;
}

.nav a:hover { color: var(--accent); background: transparent; }
.nav a:hover::after { opacity: 1; }

.nav a.on { color: var(--accent); background: transparent; font-weight: 600; }

.top-search { display: none; }  /* 顶栏不再有搜索框，已移到侧边栏 */

.nav-toggle { display: none; background: none; border: none; color: var(--text-2); cursor: pointer; }

.nav-mobile { display: none; }

/* ============================================================
   页面顶部彩色光晕区 · hero（克制版·更少遮罩）
   ============================================================ */
.page-top {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  isolation: isolate;
  background-image:
    radial-gradient(ellipse 100% 70% at 50% 0%, rgba(0, 208, 126, 0.22), transparent 70%),
    radial-gradient(circle at 15% 18%, rgba(20, 115, 88, 0.18), transparent 38%),
    radial-gradient(circle at 85% 22%, rgba(46, 163, 255, 0.16), transparent 45%),
    radial-gradient(ellipse 80% 40% at 50% 95%, rgba(0, 208, 126, 0.10), transparent 70%);
}

/* Hero 在 page-top 内，紧贴顶栏、紧接 codes-sec */
.hero {
  position: relative;
  padding: 90px 0 40px;
  margin-top: -10px;
}

/* 一个缓慢漂移的浮动光斑（极克制） */
.page-top::before {
  content: "";
  position: absolute;
  top: 5%; right: 8%;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 208, 126, 0.14), transparent 70%);
  filter: blur(60px);
  animation: hero-drift 36s ease-in-out infinite alternate;
  z-index: 0;
  pointer-events: none;
}

.page-top::after {
  content: "";
  position: absolute;
  bottom: 8%; left: 5%;
  width: 380px; height: 380px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(46, 163, 255, 0.10), transparent 70%);
  filter: blur(60px);
  animation: hero-drift-2 40s ease-in-out infinite alternate;
  z-index: 0;
  pointer-events: none;
}

@keyframes hero-drift {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(-80px, 60px) scale(1.1); }
}

@keyframes hero-drift-2 {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(60px, -50px) scale(1.05); }
}

/* hero 内容在所有光效之上 */
.hero-in { position: relative; z-index: 1; }
.hero-stats { display: none; }  /* 已替换为营销卖点 */

/* 减弱动效偏好 */
@media (prefers-reduced-motion: reduce) {
  .page-top::before, .page-top::after { animation: none; }
}

/* ============================================================
   详情页顶部渐变光晕 · page-glow
   术语/编码详情页复用 hero 配色，替换纯色底的黑块感。
   z-index:-1 = 页面背景之上、全部内容之下；mask 向下淡出。
   ============================================================ */
.page-glow {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 640px;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
  background-image:
    radial-gradient(ellipse 100% 70% at 50% 0%, rgba(0, 208, 126, 0.20), transparent 70%),
    radial-gradient(circle at 12% 16%, rgba(20, 115, 88, 0.16), transparent 38%),
    radial-gradient(circle at 88% 20%, rgba(46, 163, 255, 0.14), transparent 45%),
    radial-gradient(ellipse 80% 40% at 50% 95%, rgba(0, 208, 126, 0.08), transparent 70%);
  -webkit-mask-image: linear-gradient(180deg, #000 40%, transparent 96%);
  mask-image: linear-gradient(180deg, #000 40%, transparent 96%);
}

.hero-in { position: relative; text-align: center; max-width: 720px; margin: 0 auto; }

.hero-title {
  font-size: 56px;
  font-weight: 800;
  letter-spacing: -0.5px;
  line-height: 1.15;
}

.hero-title em {
  font-style: normal;
  background: linear-gradient(90deg, var(--accent), #57E6A8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero-sub {
  margin-top: 18px;
  color: var(--text-2);
  font-size: 17px;
  line-height: 1.7;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

.hero-search {
  margin: 34px auto 0;
  max-width: 600px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 15px 20px;
  color: var(--text-3);
  transition: border-color 0.2s, background 0.2s;
}

.hero-search:focus-within {
  border-color: var(--accent);
  background: rgba(0, 208, 126, 0.04);
}

.hero-search input {
  flex: 1;
  min-width: 0;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 16.5px;
  font-family: var(--font);
}

.hero-search input::placeholder { color: var(--text-3); }

.hero-search-btn {
  background: linear-gradient(135deg, #FFA94D, #FF6B35);
  color: #1A1A1A;
  font-weight: 700;
  font-size: 14px;
  border: none;
  border-radius: 8px;
  padding: 8px 16px;
  cursor: pointer;
  white-space: nowrap;
  transition: transform 0.15s, box-shadow 0.15s;
  box-shadow: 0 2px 8px rgba(255, 107, 53, 0.3);
}

.hero-search-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(255, 107, 53, 0.5);
}

/* 首页 HERO 热门词条：药丸 + 向左滚动跑马灯（悬停/聚焦暂停；尊重 reduce-motion） */
.hero-hints {
  margin-top: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.hero-hints-t { flex: none; font-size: 12.5px; color: var(--text-3); white-space: nowrap; }

.hero-hints-view {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 22px, #000 calc(100% - 40px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 22px, #000 calc(100% - 40px), transparent);
}

.hero-hints-track {
  display: flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  animation: heroHintsScroll 46s linear infinite;
}

.hero-hints:hover .hero-hints-track,
.hero-hints:focus-within .hero-hints-track { animation-play-state: paused; }

@keyframes heroHintsScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.hero-hint {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg-card);
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 12.5px;
  font-weight: 650;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.hero-hint em { font-family: var(--font); font-style: normal; font-size: 11.5px; font-weight: 400; color: var(--text-3); }
.hero-hint:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
.hero-hint:hover em { color: var(--accent); }

@media (prefers-reduced-motion: reduce) {
  .hero-hints-track { animation: none; width: auto; flex-wrap: wrap; }
  .hero-hints-view { overflow-x: auto; }
}

.hero-stats {
  position: relative;
  margin-top: 52px;
  display: flex;
  justify-content: center;
  gap: 18px;
}

.stat {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 12px;
  text-align: center;
}

.stat b {
  display: block;
  font-size: 27px;
  font-weight: 800;
  color: var(--accent);
  font-family: var(--mono);
  letter-spacing: -0.5px;
}

.stat span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: var(--text-3);
  margin-top: 3px;
}

/* ============================================================
   Hero 营销卖点 · 4 张价值卡
   ============================================================ */
.value-props {
  position: relative;
  z-index: 1;
  margin-top: 50px;
  margin-bottom: 60px;  /* 卖点卡下方加大留白 */
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.value-prop {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 18px;
  text-align: left;
  transition: all 0.18s;
}

.value-prop:hover {
  border-color: rgba(0, 208, 126, 0.4);
  background: var(--bg-card-2);
  transform: translateY(-2px);
}

.value-ico {
  width: 40px; height: 40px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: var(--accent-soft);
  color: var(--accent);
  flex-shrink: 0;
}

.value-body { display: flex; flex-direction: column; min-width: 0; }

.value-title {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 2px;
}

.value-desc {
  font-size: 12.5px;
  color: var(--text-3);
  line-height: 1.45;
  text-align: justify;
  text-justify: inter-ideograph;
}

/* ============================================================
   区块标题
   ============================================================ */
.sec-title {
  font-size: 21px;
  font-weight: 700;
  margin: 0 0 18px;
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.sec-sub {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-3);
}

section.codes-sec { padding: 34px 0 10px; }
section.hot-sec, section.cat-sec { padding: 34px 0 10px; }
section.hot-sec { border-top: none; }  /* 去掉热门词条顶部分割线 */
section.cat-sec { border-top: 1px solid var(--border); margin-top: 30px; }

/* ============================================================
   代码库入口卡片
   ============================================================ */
.code-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.code-card {
  --cc: var(--accent);
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  position: relative;
  transition: all 0.18s;
  overflow: hidden;
}

.code-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--cc);
  opacity: 0.85;
}

.code-card:hover {
  transform: translateY(-3px);
  border-color: var(--cc);
  box-shadow: var(--shadow);
}

.code-ico {
  width: 44px; height: 44px;
  border-radius: 11px;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--cc) 16%, transparent);
  color: var(--cc);
}

.code-body { display: flex; flex-direction: column; gap: 3px; }

.code-title { font-size: 16px; font-weight: 700; }

.code-desc { font-size: 13px; color: var(--text-3); line-height: 1.45; }

.code-num {
  position: absolute;
  top: 18px; right: 16px;
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 700;
  color: var(--text-3);
  opacity: 0.6;
}

.code-arrow {
  position: absolute;
  bottom: 16px; right: 16px;
  color: var(--text-3);
  transition: all 0.18s;
}

.code-card:hover .code-arrow { color: var(--cc); transform: translateX(3px); }

/* ============================================================
   热门词条
   ============================================================ */
.hot-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.hot-card {
  --cat: var(--accent);
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 15px;
  transition: all 0.15s;
}

.hot-card:hover {
  background: var(--bg-card-2);
  border-color: var(--cat);
  transform: translateY(-2px);
}

.hot-term {
  font-family: var(--mono);
  font-size: 15.5px;
  font-weight: 700;
  color: var(--cat);
}

.hot-zh {
  font-size: 12.5px;
  color: var(--text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sec-more { margin-top: 16px; text-align: right; }
.sec-more a { font-size: 13.5px; color: var(--text-2); }
.sec-more a:hover { color: var(--accent); }

/* 首页机场区域聚合入口（P2①） */
.region-quick-row {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px;
}
.region-quick-row .cd-chip b { color: var(--accent); }

/* ============================================================
   分类矩阵
   ============================================================ */
.cat-group { margin-bottom: 26px; }

.cat-group-title {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 12px;
}

.cat-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
}

.cat-item {
  --cat: var(--accent);
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 11px 13px;
  transition: all 0.15s;
}

.cat-item:hover {
  border-color: var(--cat);
  background: var(--bg-card-2);
  transform: translateY(-2px);
}

.cat-ico {
  width: 30px; height: 30px;
  border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--cat) 14%, transparent);
  color: var(--cat);
  flex-shrink: 0;
}

.cat-body { display: flex; flex-direction: column; min-width: 0; }

.cat-name {
  font-size: 13.5px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cat-count { font-size: 11.5px; color: var(--text-3); font-family: var(--mono); }

/* ============================================================
   面包屑
   ============================================================ */
.crumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text-3);
  padding: 20px 0 0;
}

.crumbs a { color: var(--text-2); }
.crumbs a:hover { color: var(--accent); }
.crumbs span { color: var(--text-3); }
.crumbs a { display: inline-flex; align-items: center; gap: 5px; }

/* ============================================================
   分类页
   ============================================================ */
.cat-head {
  --cat: var(--accent);
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 22px 0 26px;
  padding: 36px 32px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--cat) 12%, var(--bg-card)), var(--bg-card));
  border: 1px solid color-mix(in srgb, var(--cat) 30%, var(--border));
  border-radius: var(--radius);
}

.cat-head-ico {
  width: 62px; height: 62px;
  border-radius: 15px;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--cat) 18%, transparent);
  color: var(--cat);
  flex-shrink: 0;
}

.cat-head h1 { font-size: 26px; font-weight: 800; }

.cat-head-count {
  font-size: 14px;
  font-family: var(--mono);
  color: var(--cat);
  background: color-mix(in srgb, var(--cat) 15%, transparent);
  padding: 3px 10px;
  border-radius: 20px;
  vertical-align: middle;
  margin-left: 6px;
}

.cat-head p { color: var(--text-2); font-size: 14px; margin-top: 4px; }

.term-list {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 50px;
}

.term-list-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}

.list-filter {
  flex: 1;
  max-width: 340px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: 8px 14px;
  color: var(--text);
  font-size: 14px;
  font-family: var(--font);
  outline: none;
}

.list-filter:focus { border-color: var(--accent); }
.list-filter::placeholder { color: var(--text-3); }

.list-count { margin-left: auto; font-size: 12.5px; color: var(--text-3); font-family: var(--mono); }

.term-row {
  display: grid;
  grid-template-columns: 130px 1fr 200px 24px;
  align-items: center;
  gap: 14px;
  padding: 11px 18px;
  border-bottom: 1px solid var(--border);
  transition: background 0.12s;
}

.term-row:last-child { border-bottom: none; }
.term-row:hover { background: var(--bg-card-2); }

.term-abbr {
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 700;
  color: var(--accent);
}

.term-full {
  font-size: 14px;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.term-zh {
  font-size: 13px;
  color: var(--text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.term-go { color: var(--text-3); }
.term-row:hover .term-go { color: var(--accent); }

.term-empty {
  padding: 40px;
  text-align: center;
  color: var(--text-3);
  display: none;
}

/* ============================================================
   词条详情页
   ============================================================ */
.term-layout {
  display: grid;
  grid-template-columns: 1fr 296px 48px;
  gap: 32px;
  margin: 24px 0 60px;
  align-items: start;
}

.term-article {
  --cat: var(--accent);
  min-width: 0;
}

.t-head {
  padding: 6px 0 22px;
  border-bottom: 2px solid var(--cat);
  margin-bottom: 24px;
}

.t-head-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.t-cat {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--cat);
  background: color-mix(in srgb, var(--cat) 13%, transparent);
  padding: 4px 12px;
  border-radius: 20px;
}

.lvl {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-2);
  background: var(--bg-card-2);
  border: 1px solid var(--border);
  padding: 3px 10px;
  border-radius: 20px;
}

.lvl-adv { color: #F5A623; border-color: rgba(245, 166, 35, 0.4); background: rgba(245, 166, 35, 0.1); }

.lvl-pro { color: #5B9CF6; border-color: rgba(91, 156, 246, 0.4); background: rgba(91, 156, 246, 0.1); }

.lvl-core { color: #00D07E; border-color: rgba(0, 208, 126, 0.4); background: rgba(0, 208, 126, 0.1); }

.t-updated {
  font-size: 12.5px;
  color: var(--text-3);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: auto;
}

.t-term {
  font-family: var(--mono);
  font-size: 40px;
  font-weight: 800;
  letter-spacing: 1px;
  color: var(--cat);
  line-height: 1.15;
}

.t-full { font-size: 16px; color: var(--text-2); margin-top: 6px; }
.t-zh { font-size: 18px; font-weight: 600; color: var(--text); margin-top: 4px; }

.t-tags { display: flex; gap: 7px; margin-top: 12px; flex-wrap: wrap; }

.tag {
  font-size: 11px;
  color: var(--text-2);
  background: var(--bg-card);
  border: 1px solid var(--border);
  padding: 2px 10px;
  border-radius: 20px;
  font-family: var(--font);
}

.t-def {
  display: block;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.12), rgba(0, 208, 126, 0.04) 70%, var(--bg-card));
  border: 1.5px solid rgba(0, 208, 126, 0.35);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius);
  padding: 22px 24px;
  margin-bottom: 26px;
  box-shadow: 0 4px 16px rgba(0, 208, 126, 0.08);
}

.t-def-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.t-def-mark {
  width: 30px; height: 30px;
  border-radius: 8px;
  background: var(--accent-soft);
  color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.t-def-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.t-def p { font-size: 13.5px; line-height: 1.85; color: var(--text); text-align: justify; text-justify: inter-ideograph; }

.t-views {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12.5px;
  color: var(--text-3);
}
.t-views b { color: var(--accent); font-family: var(--mono); font-weight: 600; }

.t-sec { margin-bottom: 26px; }

.t-sec-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 12px;
  letter-spacing: 0.3px;
}

.t-sec-body {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 18px 20px;
  font-size: 13px;
  line-height: 1.85;
  color: var(--text);
  text-align: justify;
  text-justify: inter-ideograph;
}

.t-example .t-sec-body { border-left: 3px solid var(--accent); }

.t-source .t-sec-body {
  border: 1px dashed var(--border-light);
  background: var(--bg-deep);
  color: var(--text-2);
  font-size: 12.5px;
  text-align: justify;
  text-justify: inter-ideograph;
}

/* 多重含义 */
/* 多重含义 — 容器包裹 + 双列网格 */
.t-meanings-wrap {
  margin-bottom: 26px;
  background: linear-gradient(135deg, rgba(59, 163, 255, 0.06), rgba(0, 208, 126, 0.04));
  border: 1px solid rgba(59, 163, 255, 0.18);
  border-radius: var(--radius);
  padding: 20px 22px 22px;
}

.t-meanings-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px dashed rgba(59, 163, 255, 0.25);
}

.t-meanings-ico {
  width: 30px; height: 30px;
  border-radius: 8px;
  background: rgba(59, 163, 255, 0.15);
  color: #3BA3FF;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.t-meanings-header h2 {
  font-size: 15px;
  font-weight: 700;
  color: #3BA3FF;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.t-meanings-sub {
  font-size: 12.5px;
  color: var(--text-3);
  margin-left: auto;
}

.meanings {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.meaning {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  transition: border-color 0.15s, background 0.15s;
}

.meaning:hover {
  border-color: rgba(0, 208, 126, 0.3);
  background: var(--bg-card-2);
}

.meaning-ico {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--accent-soft);
  color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.meaning-body { min-width: 0; flex: 1; }

.meaning-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}

.meaning-head b { color: var(--accent); font-family: var(--mono); font-size: 14.5px; font-weight: 700; }

.meaning-head span { font-size: 13.5px; color: var(--text-2); font-weight: 600; }

.meaning p { font-size: 12.5px; color: var(--text-2); line-height: 1.7; text-align: justify; text-justify: inter-ideograph; }

/* 关联词 */
.related {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 9px;
}

.rel-chip {
  --rc: var(--accent);
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 7px 14px;
  transition: all 0.15s;
  text-decoration: none;
}

.rel-chip:hover {
  background: var(--bg-card-2);
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

.rel-chip { font-family: var(--mono); font-size: 14px; font-weight: 700; color: var(--rc); }
.rel-chip span { font-family: var(--font); font-size: 12px; font-weight: 400; color: var(--text-3); }

/* 同分类 */
.siblings {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
}

.siblings a {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  font-family: var(--mono);
  font-size: 13px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 4px 12px;
  color: var(--text-2);
  transition: all 0.13s;
}

.siblings a span { font-family: var(--font); font-size: 12px; color: var(--text-3); }

/* ============================================================
   词条页 · 右侧栏
   ============================================================ */
.sidebar {
  position: sticky;
  top: 85px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sb-search {
  display: flex;
  align-items: center;
  gap: 9px;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.06), rgba(0, 208, 126, 0.02));
  border: 1.5px solid rgba(0, 208, 126, 0.4);
  border-radius: var(--radius);
  padding: 11px 14px;
  color: var(--text-3);
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
  box-shadow: 0 2px 10px rgba(0, 208, 126, 0.08);
}

.sb-search:focus-within {
  border-color: var(--accent);
  background: var(--bg-card);
  box-shadow: 0 0 0 3px rgba(0, 208, 126, 0.12), 0 4px 14px rgba(0, 208, 126, 0.18);
}

.sb-search-ico { color: var(--accent); flex-shrink: 0; }

.sb-search input {
  flex: 1;
  min-width: 0;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 13.5px;
  font-family: var(--font);
}

.sb-search input::placeholder { color: var(--text-3); }

.sb-search-btn {
  background: var(--accent);
  color: #0D1B2A;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  padding: 5px 10px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  flex-shrink: 0;
  line-height: 1;
  transition: transform 0.12s, background 0.12s;
}

.sb-search-btn:hover { background: #00E68C; transform: scale(1.05); }
.sb-search-btn:active { transform: scale(0.96); }

.sb-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.sb-card-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-2);
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-deep);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.sb-list { padding: 6px; }

.sb-row {
  --rc: var(--accent);
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 8px 11px;
  border-radius: 7px;
  transition: background 0.12s;
}

.sb-row:hover { background: var(--bg-card-2); }

.sb-term {
  font-family: var(--mono);
  font-size: 13.5px;
  font-weight: 700;
  color: var(--rc);
  flex-shrink: 0;
}

.sb-zh {
  font-size: 12.5px;
  color: var(--text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 分类页侧边栏：全部分类（不用 .sb-row 的 mono/加粗/分类色） */
.sb-cat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 11px;
  border-radius: 6px;
  color: var(--text-2);
  font-size: 13px;
  font-weight: 400;
  transition: background 0.12s, color 0.12s;
}

.sb-cat-row:hover { background: var(--bg-card-2); color: var(--text); }

.sb-cat-name {
  font-family: var(--font);
  font-size: 13px;
  font-weight: 400;
  color: inherit;
  letter-spacing: 0;
  text-transform: none;
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sb-cat-count {
  font-size: 12px;
  color: var(--text-3);
  font-family: var(--mono);
  flex-shrink: 0;
}

.sb-clear {
  width: 100%;
  background: none;
  border: none;
  border-top: 1px solid var(--border);
  padding: 9px;
  font-size: 12.5px;
  color: var(--text-3);
  cursor: pointer;
  font-family: var(--font);
  transition: color 0.12s;
}

.sb-clear:hover { color: var(--accent); }

.sb-feedback {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.1), var(--bg-card));
  border: 1px solid rgba(0, 208, 126, 0.3);
  border-radius: var(--radius);
  padding: 16px 18px;
  transition: all 0.18s;
}

.sb-feedback:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

.sb-feedback > .ico {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--accent-soft);
  color: var(--accent);
  padding: 8px;
  box-sizing: content-box;
  flex-shrink: 0;
}

.sb-feedback-text { display: flex; flex-direction: column; min-width: 0; }
.sb-feedback-text b { font-size: 13px; font-weight: 600; }
.sb-feedback-text span { font-size: 12px; color: var(--text-3); margin-top: 2px; }

.siblings a:hover { color: var(--accent); border-color: var(--accent); }

/* ============================================================
   代码库
   ============================================================ */
.code-index-head {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 40px 0 8px;
}

.code-index-head h1 { font-size: 30px; font-weight: 800; }

.code-index-head p { color: var(--text-2); margin-top: 8px; font-size: 15.5px; }

.code-index-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding: 24px 0 50px;
}

.code-entry {
  display: flex;
  align-items: center;
  gap: 18px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 24px;
  transition: all 0.18s;
  position: relative;
}

.code-entry:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

.code-entry-ico {
  width: 52px; height: 52px;
  border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  background: var(--accent-soft);
  color: var(--accent);
  flex-shrink: 0;
}

.code-entry-body { flex: 1; }

.code-entry-body h3 { font-size: 17px; font-weight: 700; }

.code-entry-body h3 b {
  font-family: var(--mono);
  color: var(--accent);
  font-size: 14px;
  background: var(--accent-soft);
  padding: 2px 8px;
  border-radius: 20px;
  margin-left: 4px;
  vertical-align: 2px;
}

.code-entry-body p { font-size: 13.5px; color: var(--text-3); margin-top: 4px; }

.code-entry-go { color: var(--text-3); }
.code-entry:hover .code-entry-go { color: var(--accent); }

/* 数据表页 */
.tbl-head {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 30px 0 22px;
}

.tbl-head-body {
  flex: 1;
  min-width: 0;
}

.tbl-head-art {
  width: 280px;
  height: 96px;
  flex-shrink: 0;
  color: var(--accent);
  opacity: 0.85;
  margin-left: auto;
}

.tbl-head-art svg {
  width: 100%;
  height: 100%;
  display: block;
}

@media (max-width: 880px) {
  .tbl-head-art { display: none; }
}

.tbl-head-ico {
  width: 52px; height: 52px;
  border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  background: var(--accent-soft);
  color: var(--accent);
  flex-shrink: 0;
}

.tbl-head h1 { font-size: 26px; font-weight: 800; }
.tbl-head h1 b { font-family: var(--mono); font-size: 17px; color: var(--accent); vertical-align: 3px; margin-left: 5px; }
.tbl-head p { color: var(--text-2); margin-top: 4px; font-size: 14px; }

.tbl-box {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 50px;
}

.tbl-toolbar {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}

.tbl-search {
  flex: 1;
  min-width: 220px;
  max-width: 380px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: 8px 13px;
  color: var(--text-3);
}

.tbl-search:focus-within { border-color: var(--accent); }

.tbl-search input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 14px;
  font-family: var(--font);
}

.tbl-search input::placeholder { color: var(--text-3); }

.tbl-filters { display: flex; gap: 7px; flex-wrap: wrap; }

.chip {
  font-size: 13px;
  color: var(--text-2);
  background: var(--bg-card-2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 4px 13px;
  cursor: pointer;
  font-family: var(--font);
  transition: all 0.13s;
}

.chip:hover { border-color: var(--text-3); }

.chip.on {
  color: var(--accent);
  border-color: var(--accent);
  background: var(--accent-soft);
  font-weight: 600;
}

.tbl-wrap { overflow-x: auto; }

.tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }

.tbl thead th {
  text-align: left;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-deep);
  white-space: nowrap;
}

/* 表头点击排序（优化 1） */
.tbl th.th-sort {
  cursor: pointer;
  user-select: none;
  position: relative;
  transition: color .15s, background .15s;
}
.tbl th.th-sort:hover { color: var(--text); background: var(--bg-card-2); }
.tbl th.th-sort .th-sort-t { display: inline-block; vertical-align: middle; }
.tbl th.th-sort .th-sort-ico {
  display: inline-block;
  vertical-align: middle;
  margin-left: 4px;
  fill: var(--text-3);
  opacity: 0.35;
  transition: opacity .15s;
}
.tbl th.th-sort:hover .th-sort-ico { opacity: 0.7; }
.tbl th.th-sort.asc .th-sort-ico,
.tbl th.th-sort.desc .th-sort-ico { opacity: 1; }
.tbl th.th-sort.asc .th-sort-ico .th-sort-asc { fill: var(--accent); }
.tbl th.th-sort.desc .th-sort-ico .th-sort-desc { fill: var(--accent); }
.tbl th.th-sort.asc .th-sort-ico .th-sort-desc,
.tbl th.th-sort.desc .th-sort-ico .th-sort-asc { opacity: 0.25; }

.tbl tbody td {
  padding: 9px 16px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  white-space: nowrap;
}

.tbl tbody tr { transition: background 0.1s; }
.tbl tbody tr:hover { background: var(--bg-card-2); }
.tbl tbody tr:last-child td { border-bottom: none; }

.td-code {
  font-family: var(--mono);
  font-weight: 700;
  color: var(--accent);
  cursor: pointer;
  user-select: all;
}

.td-code:hover { text-decoration: underline; }

.td-dim { color: var(--text-3); font-weight: 400; }
.td-sub { color: var(--text-3); }

.type-pill {
  font-size: 12px;
  color: var(--text-2);
  background: var(--bg-card-2);
  border: 1px solid var(--border);
  padding: 2px 9px;
  border-radius: 20px;
  white-space: nowrap;
}

.type-pill.hub { color: var(--accent); border-color: rgba(0, 208, 126, 0.35); background: var(--accent-soft); }

.tbl-empty {
  padding: 46px;
  text-align: center;
  color: var(--text-3);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.tbl-meta {
  padding: 10px 18px;
  font-size: 12px;
  color: var(--text-3);
  border-top: 1px solid var(--border);
  background: var(--bg-deep);
}

/* 表格行内链接（机场 / 港口名称） */
.tbl-link {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px dashed rgba(0, 208, 126, 0.4);
  transition: all 0.12s;
}

.tbl-link:hover {
  color: #00E68C;
  border-bottom-style: solid;
}

/* 表格内的货运外链（航司代码页最后一列）：小药丸样式，区别于普通行内导航链接 */
.tbl-cargo {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border: 1px solid rgba(0, 208, 126, 0.4);
  border-bottom: 1px solid rgba(0, 208, 126, 0.4) !important;
  border-radius: 999px;
  background: rgba(0, 208, 126, 0.08);
  color: var(--accent);
  font-weight: 600;
  font-size: 12px;
  text-decoration: none;
  transition: all 0.12s;
  white-space: nowrap;
}
.tbl-cargo:hover {
  background: rgba(0, 208, 126, 0.18);
  border-color: var(--accent) !important;
  color: #00E68C;
  transform: translateY(-1px);
}
.tbl-cargo .ico {
  flex-shrink: 0;
}
/* 客运官网：弱化一档，与「有货运追踪入口」的航司区分开 */
.tbl-cargo-pax {
  border-color: var(--border) !important;
  background: transparent;
  color: var(--text-3);
}
.tbl-cargo-pax:hover {
  background: var(--bg-hover, rgba(127, 127, 127, 0.08));
  border-color: var(--text-3) !important;
  color: var(--text-2);
}

/* ============================================================
   分享栏（详情页左侧 5 个分享按钮）
   ============================================================ */
.term-article, .cd-article { position: relative; }

.share-bar {
  position: sticky;
  top: 80px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 42px;
  align-self: flex-start;
  z-index: 5;
}

.share-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--bg-card);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-2);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s;
  padding: 0;
  font-family: var(--font);
}

.share-btn:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
  transform: translateY(-2px);
}

.share-btn.faved {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.share-btn svg { width: 18px; height: 18px; }

/* 微信分享弹层 */
.wx-modal { position: fixed; inset: 0; z-index: 300; display: none; align-items: center; justify-content: center; }
.wx-modal.show { display: flex; }
.wx-modal-mask { position: absolute; inset: 0; background: rgba(13, 27, 42, 0.7); backdrop-filter: blur(4px); }
.wx-modal-card {
  position: relative;
  width: min(420px, calc(100vw - 32px));
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px 22px 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  animation: wx-modal-in 0.2s ease-out;
}
@keyframes wx-modal-in {
  from { opacity: 0; transform: translateY(10px) scale(0.97); }
  to { opacity: 1; transform: none; }
}
.wx-modal-close {
  position: absolute; top: 12px; right: 14px;
  background: none; border: none; color: var(--text-3); font-size: 24px; line-height: 1;
  cursor: pointer; padding: 4px 8px; border-radius: 6px;
}
.wx-modal-close:hover { color: var(--text); background: var(--bg-card-2); }
.wx-modal-title { font-size: 17px; font-weight: 700; margin-bottom: 6px; }
.wx-modal-tip { font-size: 13px; color: var(--text-2); margin-bottom: 14px; line-height: 1.6; }
.wx-modal-url {
  background: var(--bg-deep);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
  color: var(--text);
  font-family: var(--mono);
  word-break: break-all;
  margin-bottom: 16px;
  max-height: 96px;
  overflow: auto;
}
.wx-modal-actions { display: flex; gap: 10px; }
.wx-modal-btn {
  flex: 1;
  background: var(--bg-card-2);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 9px 14px;
  border-radius: 8px;
  font-size: 13.5px;
  font-family: var(--font);
  cursor: pointer;
  transition: all 0.12s;
}
.wx-modal-btn:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
.wx-copy { background: var(--accent); color: #fff; border-color: var(--accent); }
.wx-copy:hover { background: #00E68C; }

@media (max-width: 1100px) {
  .term-layout { grid-template-columns: 1fr; }
  .share-bar {
    position: static;
    flex-direction: row;
    width: 100%;
    justify-content: center;
    gap: 12px;
    margin: 26px 0 14px;
    padding: 16px 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }
  .share-bar::before {
    content: '分享到';
    color: var(--text-3);
    font-size: 13px;
    margin-right: 6px;
    align-self: center;
  }
}

/* ============================================================
   代码详情页（机场 / 港口）
   ============================================================ */
.cd-article {
  max-width: 860px;
  margin: 26px auto 60px;
}

/* Guide 深度文章样式（IATA 三字代码、HS 编码等）
   —— 宽度对齐 header/footer：去 max-width 限制，靠内部 grid 控宽 */
.cd-article.guide,
.cd-article.cd-article-guide {
  max-width: 1200px;
}
.cd-article.guide .guide-layout {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 36px;
  align-items: start;
}
.cd-article.guide .guide-side {
  position: sticky;
  top: 88px;
  align-self: start;
  max-height: calc(100vh - 110px);
  overflow-y: auto;
  padding-right: 4px;
  /* 隐藏滚动条但保留滚动能力（窄列） */
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.cd-article.guide .guide-side::-webkit-scrollbar { width: 4px; }
.cd-article.guide .guide-side::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
.cd-article.guide .guide-toc {
  display: block;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 14px 12px;
  font-size: 13px;
  line-height: 1.55;
}
.cd-article.guide .guide-toc b {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: 0.5px;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.cd-article.guide .guide-toc ol {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: toc;
}
.cd-article.guide .guide-toc ol li {
  counter-increment: toc;
  margin: 0 0 2px;
  padding: 0;
  display: block;
}
.cd-article.guide .guide-toc ol li::before {
  content: counter(toc, decimal-leading-zero) ".";
  display: inline-block;
  width: 22px;
  color: var(--text-3);
  font-variant-numeric: tabular-nums;
  font-size: 11.5px;
}
.cd-article.guide .guide-toc ol li a {
  display: inline-block;
  color: var(--text-2);
  text-decoration: none;
  padding: 4px 0;
  font-size: 12.5px;
  line-height: 1.45;
  transition: color 0.12s;
}
.cd-article.guide .guide-toc ol li a:hover {
  color: var(--accent);
}
.cd-article.guide h2,
.cd-article.cd-article-guide h2 {
  font-size: 22px;
  margin-top: 38px;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.cd-article.guide h3,
.cd-article.cd-article-guide h3 {
  font-size: 17px;
  margin-top: 24px;
  margin-bottom: 10px;
  color: var(--text);
}
.cd-article.guide p,
.cd-article.cd-article-guide p {
  text-align: justify;
  text-justify: inter-ideograph;
  line-height: 1.78;
  margin-bottom: 14px;
}
.cd-article.guide ul,
.cd-article.guide ol,
.cd-article.cd-article-guide ul,
.cd-article.cd-article-guide ol {
  margin: 8px 0 18px 0;
  padding-left: 22px;
  line-height: 1.78;
}
.cd-article.guide li,
.cd-article.cd-article-guide li { margin-bottom: 6px; }
.cd-article.guide blockquote,
.cd-article.cd-article-guide blockquote {
  margin: 14px 0; padding: 10px 16px;
  background: var(--bg-card-2);
  border-left: 3px solid var(--accent);
  border-radius: 4px;
  color: var(--text-2);
}
.cd-article.guide .guide-callout,
.cd-article.cd-article-guide .guide-callout {
  margin: 18px 0;
  padding: 14px 18px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text-2);
}
.cd-article.guide .guide-callout b,
.cd-article.cd-article-guide .guide-callout b { color: var(--accent); }
.cd-article.guide table,
.cd-article.cd-article-guide table {
  width: 100%;
  margin: 14px 0 20px;
  border-collapse: collapse;
}
.cd-article.guide table th,
.cd-article.guide table td,
.cd-article.cd-article-guide table th,
.cd-article.cd-article-guide table td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  font-size: 14px;
}
.cd-article.guide table th,
.cd-article.cd-article-guide table th {
  background: var(--bg-deep);
  font-weight: 600;
  color: var(--text);
}
.cd-article.guide table code,
.cd-article.cd-article-guide table code {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 13px;
  padding: 1px 6px;
  background: var(--bg-deep);
  border-radius: 3px;
  color: var(--accent);
}
.cd-article.guide .guide-faq,
.cd-article.cd-article-guide .guide-faq { margin-top: 16px; }
.cd-article.guide .guide-faq dt,
.cd-article.cd-article-guide .guide-faq dt {
  font-weight: 600;
  margin-top: 14px;
  color: var(--text);
}
.cd-article.guide .guide-faq dd,
.cd-article.cd-article-guide .guide-faq dd {
  margin-left: 0;
  margin-bottom: 8px;
  color: var(--text-2);
  line-height: 1.78;
}

/* Guide 末尾 CTA 卡片（指向 /codes/airports/ 主列表） */
.cd-article.guide .guide-cta {
  margin-top: 36px;
  padding: 22px 24px;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.08), var(--bg-card) 60%);
  border: 1px solid rgba(0, 208, 126, 0.25);
  border-radius: var(--radius);
  text-align: center;
}
.cd-article.guide .guide-cta h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 8px;
}
.cd-article.guide .guide-cta p {
  font-size: 13.5px;
  color: var(--text-2);
  line-height: 1.7;
  margin: 0 auto 16px;
  max-width: 620px;
  text-align: justify;
  text-justify: inter-ideograph;
}
.cd-article.guide .guide-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 22px;
  background: var(--accent);
  color: #0D1B2A;
  font-weight: 700;
  font-size: 14px;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.15s, transform 0.15s;
}
.cd-article.guide .guide-cta-btn:hover {
  background: #00E68C;
  transform: translateY(-1px);
}
.cd-article.guide .guide-cta-btn svg { flex: none; }

/* Guide 内 TOP 20 卡片网格（港口 UN/LOCODE 指南页，对齐 IATA guide 版式） */
.cd-article.guide .port-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(158px, 1fr));
  gap: 10px;
  margin: 14px 0 20px;
}
.cd-article.guide .pcard {
  display: block;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  text-decoration: none;
  transition: border-color 0.12s, transform 0.12s;
}
.cd-article.guide .pcard:hover {
  border-color: var(--accent);
  transform: translateY(-1px);
}
.cd-article.guide .pcard b {
  display: block;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 13px;
  letter-spacing: 0.5px;
  color: var(--accent);
}
.cd-article.guide .pcard span {
  display: block;
  font-size: 13px;
  color: var(--text);
  margin-top: 3px;
}
.cd-article.guide .pcard i {
  display: block;
  font-style: normal;
  font-size: 11.5px;
  color: var(--text-3);
  margin-top: 2px;
}
.cd-article.guide .port-cards { font-size: 13px; }

/* Guide 响应式：<980px 单列 + TOC 上移 */
@media (max-width: 980px) {
  .cd-article.guide .guide-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .cd-article.guide .guide-side {
    position: static;
    max-height: none;
    overflow: visible;
  }
  .cd-article.guide .guide-toc ol {
    columns: 2;
    column-gap: 18px;
  }
}
@media (max-width: 560px) {
  .cd-article.guide .guide-toc ol {
    columns: 1;
  }
}

/* 机场 / 港口详情页复用 term-layout 双栏时，去掉自身居中 */
.term-layout .cd-article {
  max-width: none;
  margin: 0;
  min-width: 0;
}

.cd-head {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 30px 30px 26px;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.07), var(--bg-card) 55%);
  border: 1px solid rgba(0, 208, 126, 0.25);
  border-radius: var(--radius);
  margin-bottom: 24px;
}

.cd-code {
  flex-shrink: 0;
  min-width: 108px;
  text-align: center;
  font-family: var(--mono);
  font-size: 40px;
  font-weight: 800;
  letter-spacing: 2px;
  color: var(--accent);
  background: rgba(0, 208, 126, 0.1);
  border: 1.5px solid rgba(0, 208, 126, 0.3);
  border-radius: 14px;
  padding: 14px 10px;
  user-select: all;
}

.cd-head-body h1 {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.3;
}

.cd-en {
  color: var(--text-2);
  font-size: 14px;
  margin-top: 6px;
}

.cd-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.cd-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--text-2);
  background: var(--bg-card-2);
  border: 1px solid var(--border);
  padding: 2px 9px;
  border-radius: 20px;
  white-space: nowrap;
}

.cd-sec {
  margin-top: 24px;
}

.cd-sec-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}

/* 代码页实体画像：航线网络 / 适配货类 / 常见问题 */
.cd-prose p {
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--text-2);
  margin: 0 0 8px;
  text-align: justify;
  text-justify: inter-ideograph;
}

.cd-prose p:last-child { margin-bottom: 0; }

.cd-faq .faq-q { font-size: 14px; }

@media (max-width: 720px) {
  .cd-faq .faq-list { grid-template-columns: 1fr; }
}

.cd-sec-title svg { color: var(--accent); }

.cd-info {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 24px;
}

.cd-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px 26px;
}

.cd-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px dashed var(--border);
}

.cd-item:last-child, .cd-item:nth-last-child(2) { border-bottom: none; }

.cd-label {
  font-size: 12.5px;
  color: var(--text-3);
  flex-shrink: 0;
}

.cd-item b {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  text-align: right;
  word-break: break-all;
}

.cd-item .cd-copy {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  color: var(--accent);
  font-family: var(--mono);
  transition: color 0.12s;
  user-select: all;
}

.cd-item .cd-copy:hover { color: #00E68C; }
.cd-item .cd-copy svg { opacity: 0.6; }

.cd-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.cd-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  text-decoration: none;
  transition: all 0.15s;
  min-width: 0;
}

.cd-chip:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
  transform: translateY(-1px);
}

.cd-chip b {
  flex-shrink: 0;
  font-family: var(--mono);
  font-size: 13px;
  color: var(--accent);
  font-weight: 700;
}

.cd-chip span {
  font-size: 13px;
  color: var(--text-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cd-links .cd-chip b { font-size: 15px; }

/* 全量索引区块：索引页底部把「懒注入」的条目以真 HTML 分组列出（爬虫可见 + 用户可跳转） */
.cd-allindex { margin-top: 26px; }
.ai-note {
  margin: 10px 0 0;
  font-size: 13px;
  color: var(--text-3);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-ideograph;
}
.ai-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
  gap: 12px;
  margin-top: 16px;
}
.ai-card {
  padding: 12px 14px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.ai-card--wide { grid-column: 1 / -1; }
.ai-card--mid .ai-list { display: block; columns: 2; column-gap: 14px; }
.ai-card--mid .ai-list li { break-inside: avoid; margin-bottom: 5px; }
.ai-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 9px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border-light);
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}
.ai-head span {
  font-size: 11px;
  font-weight: 400;
  color: var(--text-3);
  font-family: var(--mono);
}
.ai-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.ai-card--wide .ai-list { display: block; columns: 4; column-gap: 16px; }
.ai-card--wide .ai-list li { break-inside: avoid; margin-bottom: 5px; }
.ai-list a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 12.5px;
  color: var(--text-2);
  text-decoration: none;
  transition: color .12s;
}
.ai-list a:hover { color: var(--accent); }
.ai-list a i {
  font-style: normal;
  font-size: 11px;
  color: var(--text-3);
  font-family: var(--mono);
  flex-shrink: 0;
}
.ai-foot { margin: 14px 0 0; font-size: 12.5px; color: var(--text-3); }
.ai-foot a { color: var(--accent); text-decoration: none; }
.ai-foot a:hover { text-decoration: underline; }
@media (max-width: 900px) { .ai-card--wide .ai-list { columns: 2; } }
@media (max-width: 560px) {
  .ai-grid { grid-template-columns: 1fr; }
  .ai-card--wide .ai-list, .ai-card--mid .ai-list { columns: 1; }
}

/* 详情页迷你地图 */
.cd-map-sec { margin-top: 0; }
.cd-map {
  width: 100%;
  height: 320px;
  margin-top: 6px;
  margin-bottom: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: #E8EEF5;  /* 浅色地图背景，OSM 加载失败时兜底 */
}
.cd-map-coord {
  margin-top: 8px;
  font-size: 12px;
  color: var(--text-3);
  font-family: var(--mono);
}

/* 详情页地图上的彩色 pin（divIcon） */
.cd-map-pin {
  position: relative;
  width: 22px;
  height: 22px;
}
.cd-map-pin span {
  position: absolute;
  left: 50%; top: 50%;
  width: 18px; height: 18px;
  margin: -9px 0 0 -9px;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 2px 6px rgba(0,0,0,0.3);
}

/* OSM 浅色瓦片 → 浅色 leaflet 控件适配 */
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #fff; color: #0D1B2A; }
.leaflet-control-attribution { background: rgba(255,255,255,0.85) !important; color: #5A6B7E; font-size: 10px; }
.leaflet-control-attribution a { color: #1E78D6; }
.leaflet-bar a { background: #fff; color: #0D1B2A; border-bottom: 1px solid #ddd; }
.leaflet-bar a:hover { background: #f4f4f4; }

@media (max-width: 620px) {
  .wrap { padding: 0 16px; }
  .cd-head { flex-direction: column; align-items: flex-start; gap: 14px; padding: 22px 18px; }
  .cd-code { font-size: 32px; min-width: 90px; padding: 10px 8px; }
  .cd-info-grid { grid-template-columns: 1fr; }
  .cd-grid { grid-template-columns: 1fr; }
  .cd-item:nth-last-child(2) { border-bottom: 1px dashed var(--border); }

  .footer .footer-nav { padding: 22px 0 18px; gap: 12px; }
  .footer .footer-bottom {
    padding: 18px 0 22px;
    min-height: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
  }
  .footer .footer-text { width: 100%; max-width: 100%; min-width: 0; }
  .footer .footer-qr { display: none; }
}

/* 复制提示 */
.toast {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%) translateY(80px);
  background: var(--bg-card-2);
  border: 1px solid var(--accent);
  color: var(--text);
  font-size: 13.5px;
  padding: 10px 22px;
  border-radius: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: var(--shadow);
  opacity: 0;
  transition: all 0.25s;
  z-index: 200;
  pointer-events: none;
}

.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

.toast .ico { color: var(--accent); }

/* ============================================================
   全局搜索面板
   ============================================================ */
.search-panel {
  position: fixed;
  z-index: 300;
  background: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--radius);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
  overflow: hidden;
  max-height: 420px;
  overflow-y: auto;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity 0.15s, transform 0.15s;
}

.search-panel.show { opacity: 1; transform: translateY(0); pointer-events: auto; }

.sp-item {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  border-bottom: 1px solid var(--border);
  transition: background 0.1s;
}

.sp-item:last-child { border-bottom: none; }
.sp-item:hover { background: var(--bg-card-2); }

.sp-term {
  font-family: var(--mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--accent);
}

.sp-cat {
  font-size: 11px;
  color: var(--text-3);
  background: var(--bg-card-2);
  border: 1px solid var(--border);
  padding: 1px 7px;
  border-radius: 12px;
  white-space: nowrap;
}

.sp-zh {
  font-size: 13px;
  color: var(--text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: right;
}

.sp-empty {
  padding: 22px 20px;
  text-align: center;
  color: var(--text-2);
  font-size: 13.5px;
  line-height: 1.7;
}

.sp-empty-title { color: var(--text); font-weight: 600; font-size: 14px; }
.sp-empty-tip { font-size: 12.5px; color: var(--text-3); margin-top: 4px; }
.sp-empty-actions { display: flex; gap: 14px; justify-content: center; margin-top: 12px; font-size: 12.5px; }
.sp-empty-actions a { color: var(--accent); }
.sp-empty-actions a:hover { text-decoration: underline; }

/* 综合搜索结果分组（与站内导航抽屉风格一致） */
.sp-group { padding: 10px 0; border-bottom: 1px solid var(--border); }
.sp-group:last-child { border-bottom: none; }
.sp-group-title {
  display: flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700; letter-spacing: .04em;
  color: var(--text-3); text-transform: uppercase;
  padding: 0 14px 8px;
}
.sp-group-list { display: flex; flex-direction: column; gap: 5px; padding: 0 10px; }
.sp-result {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.04);
  color: var(--text);
  text-decoration: none;
  transition: border-color .15s ease, background .15s ease, transform .1s ease;
}
.sp-result:hover {
  border-color: rgba(0,208,126,.4);
  background: rgba(0,208,126,.08);
  transform: translateX(-2px);
}
.spr-main {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; gap: 1px;
}
.spr-term {
  font-size: 13.5px; font-weight: 700;
  color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.spr-sub {
  font-size: 11.5px; color: var(--text-2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.spr-cat {
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 5px;
  background: rgba(0,208,126,.12);
  color: var(--accent);
  font-size: 10.5px; font-weight: 700;
}

/* ============================================================
   页脚
   ============================================================ */
.footer {
  border-top: 1px solid var(--border);
  background: var(--bg-deep);
  margin-top: 60px;
}

.footer-nav {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 14px;
  padding: 28px 0 22px;
}

.footer-nav a {
  font-size: 14px;
  color: var(--text-2);
  transition: color 0.12s;
}

.footer-nav a:hover { color: var(--accent); }

.footer-sep {
  color: var(--border-light);
  font-size: 14px;
  user-select: none;
}

.footer-bottom {
  border-top: 1px solid var(--border);
  padding: 18px 332px 24px 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  position: relative;
  min-height: 300px;
  align-items: start;
}

.footer-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.footer-brand { font-size: 13.5px; font-weight: 600; }
.footer-brand .dot { color: var(--accent); margin: 0 2px; }

.footer-brand-link {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  text-decoration: none;
  letter-spacing: 0.3px;
  transition: color 0.12s;
}
.footer-brand-link:hover { color: var(--accent); }

.footer-brand-suffix {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text-2);
}

.footer-tagline {
  font-size: 12.5px;
  color: var(--accent);
  font-weight: 600;
  letter-spacing: 1px;
}

.footer-meta { font-size: 12.5px; color: var(--text-3); line-height: 1.7; }
.footer-meta b { color: var(--accent); font-family: var(--mono); font-weight: 600; }

.footer-icp { /* 默认左对齐沿用 flex 父容器对齐 */ }
.footer-icp a { font-size: 12.5px; color: var(--text-3); }
.footer-icp a:hover { color: var(--accent); }
.footer-copy { font-size: 12.5px; color: var(--text-3); }
.footer-copy a { color: var(--text-2); text-decoration: none; transition: color 0.12s; }
.footer-copy a:hover { color: var(--accent); }

/* Footer 免责声明：精简一段，小字号、灰字、两端对齐，不抢 QR 与导航 */
.footer-disclaimer {
  font-size: 12px;
  line-height: 1.75;
  color: var(--text-3);
  text-align: justify;
  text-justify: inter-ideograph;
  margin: 14px 0 0;
}

/* 二维码突破到上方 footer-nav 行（右侧 332×300 固定尺寸） */
.footer-qr {
  position: absolute;
  top: -74px;        /* 向上溢出到 nav 行内（-54px 基础上再 +20px） */
  right: 0;
  width: 332px;
  height: 300px;
  pointer-events: none;  /* 避免遮挡文字 */
}

.footer-qr img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom right;
  display: block;
  pointer-events: auto;  /* 图片本身保留交互 */
}

/* ============================================================
   下载页
   ============================================================ */
.dl-hero {
  position: relative;
  padding: 70px 0 50px;
  text-align: center;
  overflow: hidden;
  isolation: isolate;
  margin-bottom: 16px;
}

.dl-hero-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.06) 0%, transparent 50%, rgba(59, 163, 255, 0.05) 100%);
}

.dl-hero-in { max-width: 720px; margin: 0 auto; }

.dl-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid rgba(0, 208, 126, 0.3);
  padding: 5px 13px;
  border-radius: 20px;
  margin-bottom: 18px;
}

.dl-hero h1 {
  font-size: 38px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.5px;
}

.dl-hero p {
  margin-top: 14px;
  color: var(--text-2);
  font-size: 16px;
}

.dl-cta {
  margin-top: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.dl-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  border-radius: 9px;
  font-size: 15px;
  font-weight: 600;
  font-family: var(--font);
  transition: all 0.18s;
  border: none;
  cursor: pointer;
}

.dl-btn-primary {
  background: var(--accent);
  color: #0D1B2A;
  box-shadow: 0 4px 14px rgba(0, 208, 126, 0.25);
}

.dl-btn-primary:hover {
  background: var(--accent-strong);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 208, 126, 0.35);
}

.dl-btn-ghost {
  background: var(--bg-card);
  color: var(--text);
  border: 1px solid var(--border-light);
}

.dl-btn-ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.dl-btn-block { width: 100%; justify-content: center; margin-top: 14px; padding: 13px 22px; }

.dl-btn-wide { padding: 14px 40px; font-size: 16px; min-width: 220px; justify-content: center; }

.dl-meta { font-size: 12.5px; color: var(--text-3); }

.dl-updated {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: var(--accent);
  background: rgba(0, 208, 126, 0.08);
  border: 1px solid rgba(0, 208, 126, 0.25);
  padding: 4px 12px;
  border-radius: 20px;
  margin-top: 8px;
}

.dl-section { padding: 40px 0 16px; border-top: 1px solid var(--border); }

.dl-section:first-of-type { border-top: none; padding-top: 14px; }

.dl-h2 {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 20px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 22px;
}

.dl-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.dl-feature {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px;
  transition: all 0.18s;
}

.dl-feature:hover {
  border-color: rgba(0, 208, 126, 0.4);
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

.dl-fi {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border-radius: 10px;
  background: var(--accent-soft);
  color: var(--accent);
  margin-bottom: 12px;
}

.dl-feature h3 { font-size: 15.5px; font-weight: 700; margin-bottom: 7px; }

.dl-feature p { font-size: 13px; color: var(--text-2); line-height: 1.7; text-align: justify; text-justify: inter-ideograph; }

/* 受众 */
.dl-audience {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}

.dl-au {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 18px;
}

.dl-au b { font-size: 14px; font-weight: 700; display: block; margin-bottom: 3px; }

.dl-au span { font-size: 12.5px; color: var(--text-3); }

/* 购买区 */
.dl-buy {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 20px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px;
}

.dl-price {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.dl-price-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-3);
  background: var(--bg-card-2);
  padding: 4px 10px;
  border-radius: 20px;
}

.dl-price-num {
  font-family: var(--mono);
  font-size: 38px;
  font-weight: 800;
  color: var(--accent);
  letter-spacing: -1px;
}

.dl-currency { font-size: 22px; vertical-align: 8px; margin-right: 2px; }

.dl-price-note { font-size: 12.5px; color: var(--text-3); }

.dl-perks { list-style: none; padding: 8px 0; }

.dl-perks li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14px;
  color: var(--text);
  padding: 5px 0;
}

.dl-perks li .ico { color: var(--accent); flex-shrink: 0; }

.dl-buy-side {
  background: var(--bg-deep);
  border-radius: var(--radius-sm);
  padding: 22px;
  border-left: 1px solid var(--border);
}

.dl-buy-side h4 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 12px;
}

.dl-buy-side ol {
  list-style: none;
  counter-reset: step;
}

.dl-buy-side ol li {
  counter-increment: step;
  position: relative;
  padding: 7px 0 7px 28px;
  font-size: 13px;
  color: var(--text-2);
  line-height: 1.55;
  border-bottom: 1px dashed var(--border);
}

.dl-buy-side ol li:last-child { border-bottom: none; }

.dl-buy-side ol li::before {
  content: counter(step);
  position: absolute;
  left: 0; top: 7px;
  width: 20px; height: 20px;
  background: var(--accent);
  color: #0D1B2A;
  font-size: 12px;
  font-weight: 700;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
}

/* FAQ */
.dl-faq { display: flex; flex-direction: column; gap: 10px; }

.dl-faq details {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 20px;
  transition: border-color 0.15s;
}

.dl-faq details[open] { border-color: rgba(0, 208, 126, 0.4); }

.dl-faq summary {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.dl-faq summary::-webkit-details-marker { display: none; }

.dl-faq summary::after {
  content: "+";
  font-family: var(--mono);
  font-size: 22px;
  color: var(--accent);
  font-weight: 300;
  line-height: 1;
}

.dl-faq details[open] summary::after { content: "−"; }

.dl-faq details p {
  margin-top: 10px;
  font-size: 13.5px;
  color: var(--text-2);
  line-height: 1.75;
  padding-top: 10px;
  border-top: 1px dashed var(--border);
}

/* 反馈条 */
.dl-feedback-band {
  margin-top: 36px;
  padding: 22px 28px;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.08), var(--bg-card));
  border: 1px solid rgba(0, 208, 126, 0.3);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 20px;
}

.dl-feedback-band > .ico {
  width: 40px; height: 40px;
  background: var(--accent-soft);
  color: var(--accent);
  border-radius: 10px;
  padding: 10px;
  box-sizing: content-box;
  flex-shrink: 0;
}

.dl-feedback-band b { font-size: 15px; font-weight: 700; }

.dl-feedback-band p { font-size: 13px; color: var(--text-3); margin-top: 2px; }

.dl-feedback-band > div { flex: 1; min-width: 0; }

/* ============================================================
   普通页面（关于本站 / 更新日志）
   ============================================================ */
.plain-head {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 34px 0 8px;
}

.plain-head h1 { font-size: 30px; font-weight: 800; }

.plain-head p { color: var(--text-2); margin-top: 8px; font-size: 15px; }

/* ============================================================
   品牌化 HERO（术语对比 / 操作指南 / 常见误区 等聚合页）
   左右分栏 + 徽章 + 标题 + 副标题 + lead + 亮点列表 + 主题 SVG 插画 + 光晕动效
   ============================================================ */
.brand-hero {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: 40px;
  padding: 30px 0 34px;
}
.brand-hero-text { min-width: 0; }

.hero-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--accent-soft);
  border: 1px solid rgba(0, 208, 126, 0.3);
  color: var(--accent);
  font-size: 12.5px; font-weight: 700;
  letter-spacing: .02em;
}
.hero-badge-ico { flex: none; }

.brand-hero-title {
  margin: 16px 0 0;
  font-size: 34px; font-weight: 800; line-height: 1.2;
  color: var(--text);
  display: flex; flex-direction: column; gap: 5px;
}
.brand-hero-accent {
  font-size: 18px; font-weight: 700; color: var(--accent);
}
.brand-hero-lead {
  margin: 14px 0 0;
  max-width: 560px;
  color: var(--text-2);
  font-size: 15px; line-height: 1.7;
}
.hero-points {
  list-style: none; margin: 18px 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.hero-points li {
  display: flex; align-items: center; gap: 10px;
  color: var(--text-1); font-size: 14px;
}
.hero-points li svg { flex: none; color: var(--accent); }

.brand-hero-art { display: flex; justify-content: center; }
.hero-art-frame {
  position: relative;
  width: 100%; max-width: 360px;
  aspect-ratio: 360 / 210;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: linear-gradient(160deg, rgba(0, 208, 126, 0.07), rgba(0, 208, 126, 0.012));
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  animation: hero-floaty 6s ease-in-out infinite;
}
.hero-glow {
  position: absolute; inset: -30%;
  background: radial-gradient(circle at 50% 45%, rgba(0, 208, 126, 0.22), transparent 60%);
  filter: blur(30px);
  pointer-events: none;
}
.hero-art-svg { position: relative; width: 78%; color: var(--accent); opacity: .92; }
.hero-art-svg svg { width: 100%; height: auto; display: block; }

@keyframes hero-floaty {
  from { transform: translateY(0); }
  to   { transform: translateY(-9px); }
}
@keyframes hero-rise {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.rise-in { animation: hero-rise .6s ease both; }

@media (prefers-reduced-motion: reduce) {
  .hero-art-frame { animation: none; }
  .rise-in { animation: none; }
}

@media (max-width: 860px) {
  .brand-hero { grid-template-columns: 1fr; gap: 22px; }
  .brand-hero-art { order: -1; }
  .hero-art-frame { max-width: 300px; }
  .brand-hero-title { font-size: 28px; }
  .brand-hero-accent { font-size: 16px; }
}

/* 对比页统计概览条 */
.cmp-idx-stats {
  display: flex; flex-wrap: wrap; gap: 12px;
  margin: 6px 0 26px;
}
.cmp-stat {
  flex: 1 1 160px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 18px;
  display: flex; flex-direction: column; gap: 2px;
}
.cmp-stat b { font-size: 22px; font-weight: 800; color: var(--accent); font-family: var(--mono); }
.cmp-stat span { font-size: 12.5px; color: var(--text-3); }

.plain-body {
  padding: 18px 0 50px;
}

.plain-sec { margin: 26px 0; }

.plain-sec h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 17px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 12px;
}

.plain-sec p { font-size: 14.5px; line-height: 1.85; color: var(--text); margin-bottom: 10px; }

.plain-sec ul { list-style: none; }

.plain-sec ul li {
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--text-2);
  padding: 5px 0 5px 22px;
  position: relative;
}

.plain-sec ul li::before {
  content: "";
  position: absolute;
  left: 4px; top: 13px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--accent);
  opacity: 0.7;
}

.plain-sec ul li b { color: var(--accent); font-family: var(--mono); font-weight: 700; }

.plain-note {
  font-size: 13px !important;
  color: var(--text-3) !important;
  background: var(--bg-card);
  border-left: 3px solid var(--accent);
  padding: 10px 14px;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.plain-mail {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14.5px;
  color: var(--accent);
}

.plain-mail:hover { text-decoration: underline; }

/* 关于页：免责声明（置于「联系与反馈」卡片上方） */
.about-disclaimer {
  margin: 30px 0 30px;
  padding: 18px 22px 16px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.about-disclaimer h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 12px;
}
.about-disclaimer h3 svg { color: var(--accent); }
.about-disclaimer p {
  font-size: 14px;
  line-height: 1.9;
  color: var(--text-2);
  text-align: justify;
  text-justify: inter-ideograph;
  margin-bottom: 10px;
}
.about-disclaimer p:last-child { margin-bottom: 0; }

/* ============================================================
   关于页 · 新版（hero 引言 / 统计条 / 编号卡 / 受众卡 / 代码入口 / 来源 / CTA）
   ============================================================ */
.sec-lead { font-size: 14.5px !important; color: var(--text-2) !important; margin-bottom: 14px !important; }

/* hero 引言 */
.about-hero {
  padding: 10px 0 6px;
}
.about-hero-lead {
  font-size: 17px !important;
  line-height: 1.9 !important;
  color: var(--text) !important;
  font-weight: 600;
}
.about-hero-link {
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 208, 126, 0.4);
  transition: border-color 0.15s;
}
.about-hero-link:hover {
  border-bottom-color: var(--accent);
}
.about-hero > p {
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--text-2);
  margin-bottom: 12px;
}
.about-goals {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.about-goal {
  display: inline-flex;
  align-items: center;
  padding: 7px 16px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 700;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid rgba(0, 208, 126, 0.35);
}
.about-goal-note {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 6px;
  font-size: 13px;
  color: var(--text-3);
}
.about-goal-note svg { color: var(--accent); }

/* 统计条 */
.about-stats {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  padding: 20px 0 2px;
  margin-bottom: 0;
}

/* about 页首个 plain-sec（价值特色）与统计条紧贴 */
.plain-body > .plain-sec:first-child {
  margin-top: 14px;
}
.about-stat {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px 12px;
  text-align: center;
  transition: border-color 0.15s, transform 0.15s;
}
.about-stat:hover {
  border-color: rgba(0, 208, 126, 0.45);
  transform: translateY(-2px);
}
.about-stat b {
  display: block;
  font-family: var(--mono);
  font-size: 24px;
  font-weight: 800;
  color: var(--accent);
  line-height: 1.2;
}
.about-stat span {
  display: block;
  margin-top: 5px;
  font-size: 12px;
  color: var(--text-3);
}

/* 编号特征卡（为什么选择我们） */
.about-feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 14px;
}
.about-feat {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 18px 16px;
  overflow: hidden;
  transition: border-color 0.15s, transform 0.15s, background 0.15s;
}
.about-feat:hover {
  border-color: rgba(0, 208, 126, 0.5);
  transform: translateY(-2px);
  background: var(--bg-card-2);
}
.about-feat-num {
  position: absolute;
  top: 6px; right: 10px;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--accent);
  opacity: 0.35;
}
.about-feat-ico {
  width: 42px; height: 42px;
  border-radius: 11px;
  background: var(--accent-soft);
  color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.about-feat-body b {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  display: block;
  margin-bottom: 4px;
}
.about-feat-body p {
  font-size: 13px;
  color: var(--text-3);
  line-height: 1.55;
  margin: 0;
}

/* 受众卡（适合谁用） */
.about-aud-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 14px;
}
.about-aud {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 16px;
  text-align: center;
  transition: border-color 0.15s, transform 0.15s;
}
.about-aud:hover {
  border-color: rgba(0, 208, 126, 0.5);
  transform: translateY(-2px);
}
.about-aud-ico {
  width: 48px; height: 48px;
  margin: 0 auto 10px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  display: flex; align-items: center; justify-content: center;
}
.about-aud b {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text);
  display: block;
  margin-bottom: 4px;
}
.about-aud p {
  font-size: 12.5px;
  color: var(--text-3);
  line-height: 1.5;
  margin: 0;
}

/* 来源卡 */
.about-src-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 14px;
}
.about-src {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 13px 15px;
}
.about-src-ico {
  width: 36px; height: 36px;
  border-radius: 9px;
  background: var(--accent-soft);
  color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.about-src b {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
  display: block;
  margin-bottom: 3px;
}
.about-src p {
  font-size: 12.5px;
  color: var(--text-3);
  line-height: 1.5;
  margin: 0;
}

/* 联系反馈 CTA */
.about-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--accent-soft);
  border: 1px solid rgba(0, 208, 126, 0.35);
  border-radius: var(--radius);
  padding: 22px 24px;
  margin-top: 30px;
}
.about-cta h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 6px;
}
.about-cta p {
  font-size: 13.5px;
  color: var(--text-2);
  line-height: 1.7;
  margin: 0;
}
.about-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex-shrink: 0;
  background: var(--accent);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 11px 20px;
  border-radius: 22px;
  text-decoration: none;
  transition: background 0.15s, transform 0.15s;
}
.about-cta-btn:hover {
  background: #00b76f;
  transform: translateY(-1px);
}

@media (max-width: 880px) {
  .about-stats { grid-template-columns: repeat(3, 1fr); }
  .about-aud-grid { grid-template-columns: repeat(2, 1fr); }
  .about-feat-grid { grid-template-columns: 1fr; }
  .about-src-grid { grid-template-columns: repeat(2, 1fr); }
  .about-cta { flex-direction: column; align-items: flex-start; }
}

/* 更新日志 */
.changelog-layout {
  display: grid;
  grid-template-columns: 1fr 296px;
  gap: 32px;
  align-items: start;
  margin: 24px 0 60px;
}

.changelog-layout .sidebar {
  position: sticky;
  top: 85px;
}

.changelog-layout .plain-body {
  min-width: 0;
}

.log-item {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--border);
}

.log-item:first-child { padding-top: 8px; }

.log-date { display: flex; flex-direction: column; gap: 4px; }

.log-date b { font-size: 14px; color: var(--text); font-family: var(--mono); }

.log-date span {
  font-size: 12px;
  color: var(--accent);
  background: var(--accent-soft);
  padding: 2px 8px;
  border-radius: 12px;
  width: fit-content;
  font-family: var(--mono);
}

.log-body h3 { font-size: 16px; font-weight: 700; margin-bottom: 8px; }

.log-body ul { list-style: none; }

.log-body ul li {
  font-size: 14px;
  line-height: 1.75;
  color: var(--text-2);
  padding: 3px 0 3px 20px;
  position: relative;
}

.log-body ul li::before {
  content: "";
  position: absolute;
  left: 2px; top: 12px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  opacity: 0.7;
}

/* 更新日志侧边栏：站点数据 */
.sb-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--border);
}
.sb-stat {
  background: var(--bg-card);
  padding: 12px 10px;
  text-align: center;
}
.sb-stat b {
  display: block;
  font-family: var(--mono);
  font-size: 18px;
  font-weight: 800;
  color: var(--accent);
  line-height: 1.2;
}
.sb-stat span {
  display: block;
  margin-top: 3px;
  font-size: 11.5px;
  color: var(--text-3);
}

/* 更新日志侧边栏：快速入口 */
.sb-links { padding: 6px; }
.sb-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  border-radius: 7px;
  transition: background 0.12s;
  text-decoration: none;
}
.sb-link:hover { background: var(--bg-card-2); }
.sb-link-ico {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--accent-soft);
  color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sb-link-body { min-width: 0; }
.sb-link-body b {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
}
.sb-link-body span {
  display: block;
  font-size: 11.5px;
  color: var(--text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 820px) {
  .changelog-layout { grid-template-columns: 1fr; gap: 24px; }
  .changelog-layout .sidebar { position: static; }
}

/* ============================================================
   全部术语页 · /all/
   ============================================================ */
.all-page { padding: 10px 0 60px; }

.all-stats {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding: 14px 22px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 14px;
  color: var(--text-2);
  margin-bottom: 24px;
  position: sticky;
  top: 75px;
  z-index: 10;
  backdrop-filter: blur(8px);
  background: rgba(33, 48, 65, 0.85);
}

.all-stats b { color: var(--accent); font-family: var(--mono); }

.all-stats a { color: var(--accent); text-decoration: none; }
.all-stats a:hover { text-decoration: underline; }

.all-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(94px, 1fr));
  gap: 10px;
  margin-bottom: 30px;
}

.all-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 8px;
  text-decoration: none;
  transition: border-color .15s, background .15s;
}

.all-card:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.all-card-key {
  font-family: var(--mono);
  font-size: 18px;
  font-weight: 800;
  color: var(--text);
}

.all-card:hover .all-card-key { color: var(--accent); }

.all-card-num {
  font-size: 12px;
  color: var(--text-3);
}

.all-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  color: var(--accent);
  font-size: 13.5px;
  text-decoration: none;
}

.all-more:hover { text-decoration: underline; }

.all-letter a { color: inherit; text-decoration: none; }
.all-letter a:hover { color: var(--accent); }

.all-letter-nav a.on {
  background: var(--accent-soft);
  color: var(--accent);
  border-color: var(--accent);
}

.all-letter-nav {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
}

.all-letter-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px; height: 26px;
  border-radius: 6px;
  font-family: var(--mono);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-2);
  background: var(--bg-card-2);
  border: 1px solid var(--border);
  transition: all 0.12s;
}

.all-letter-nav a:hover {
  background: var(--accent-soft);
  color: var(--accent);
  border-color: var(--accent);
}

.all-group { margin: 36px 0; }

.all-letter {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 28px;
  font-weight: 800;
  color: var(--accent);
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
  margin-bottom: 14px;
  font-family: var(--mono);
}

.all-count {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-3);
  font-family: var(--font);
  background: var(--bg-card-2);
  padding: 2px 8px;
  border-radius: 12px;
}

.all-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.all-row {
  --rc: var(--accent);
  display: grid;
  grid-template-columns: 110px 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 10px 14px;
  border-radius: 7px;
  transition: background 0.12s;
  border-left: 2px solid transparent;
}

.all-row:hover {
  background: var(--bg-card);
  border-left-color: var(--rc);
}

.all-term {
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 700;
  color: var(--rc);
}

.all-full {
  font-size: 13.5px;
  color: var(--text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.all-meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: var(--text-3);
}

.all-tag {
  background: rgba(0, 208, 126, 0.1);
  color: var(--accent);
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 11px;
}

.all-cat {
  background: var(--bg-card-2);
  color: var(--text-2);
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 11px;
}

/* ============================================================
   知识图谱页 · /graph/ · 地铁线路式
   ============================================================ */
.graph-head {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 28px 0 6px;
}

/* ============================================================
   货代地图页 · /map/
   ============================================================ */
.map-head {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 26px 0 4px;
}
.map-head h1 { font-size: 26px; font-weight: 800; display: flex; align-items: center; gap: 8px; }
.map-head h1 svg { color: var(--accent); }
.map-head p { color: var(--text-2); margin-top: 8px; font-size: 14.5px; }

.map-toolbar {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

.map-tab {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  color: var(--text-2);
  font-size: 14px;
  font-family: var(--font);
  padding: 14px 20px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s;
}

.map-tab b { font-family: var(--mono); font-weight: 600; color: var(--text-3); }
.map-tab:hover { border-color: var(--accent); color: var(--text); }
.map-tab.on {
  background: var(--accent);
  border-color: var(--accent);
  color: #0D1B2A;
  font-weight: 700;
}
.map-tab.on b { color: #0D1B2A; }
.mt-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }

.map-box {
  width: 100%;
  height: 640px;
  margin: 18px 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: #0D1B2A;
}

.map-note {
  font-size: 12px;
  color: var(--text-3);
  padding: 4px 2px 30px;
}

/* popup 深色适配 */
.map-pop { display: flex; flex-direction: column; gap: 3px; min-width: 170px; }
.map-pop .mp-code { color: var(--accent); font-family: var(--mono); font-size: 16px; font-weight: 700; }
.map-pop .mp-name { font-size: 13.5px; font-weight: 600; color: #0D1B2A; }
.map-pop .mp-meta { font-size: 12px; color: #5A6B7E; }
.map-pop .mp-link { font-size: 12.5px; color: var(--accent); margin-top: 5px; text-decoration: none; }
.map-pop .mp-link:hover { text-decoration: underline; }

.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #fff; color: #0D1B2A; }
.leaflet-container { font-family: var(--font); background: #0D1B2A; }

/* 注：原 OSM 浅色瓦片→深色滤镜方案已移除（实测渲染异常），改回 CARTO dark_all */
.leaflet-control-attribution { background: rgba(13, 27, 42, 0.7) !important; color: #5A6B7E; font-size: 10px; }
.leaflet-control-attribution a { color: #7E90A8; }
.leaflet-bar a { background: #1E2E42; color: #E8EEF5; border-bottom: 1px solid #2A3B52; }
.leaflet-bar a:hover { background: #2A3B52; }

@media (max-width: 620px) {
  .map-box { height: 460px; }
}

.graph-head h1 {
  font-size: 28px;
  font-weight: 800;
}

.graph-head p {
  color: var(--text-2);
  margin-top: 8px;
  font-size: 14.5px;
}

.graph-tip-line {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 12.5px;
  color: var(--text-3);
}

.graph-tip-line .ico { color: var(--accent); }

.graph-wrap {
  margin: 18px 0 10px;
  background: linear-gradient(135deg, rgba(0, 208, 126, 0.04), rgba(59, 163, 255, 0.03));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 6px;
}

.graph-chart {
  width: 100%;
  height: 640px;
}

.graph-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 6px 2px 30px;
}

.graph-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: var(--text-2);
}

.graph-legend-item i {
  width: 10px; height: 10px;
  border-radius: 3px;
  display: inline-block;
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width: 1024px) {
  .cat-grid { grid-template-columns: repeat(4, 1fr); }
  .code-grid { grid-template-columns: repeat(2, 1fr); }
  .hot-grid { grid-template-columns: repeat(3, 1fr); }
  .term-layout { grid-template-columns: 1fr 280px; gap: 28px; }
}

@media (max-width: 820px) {
  .nav, .top-search { display: none; }
  .nav-toggle { display: block; margin-left: auto; }

  .dl-grid { grid-template-columns: 1fr 1fr; }
  .dl-buy { grid-template-columns: 1fr; }
  .dl-buy-side { border-left: none; border-top: 1px solid var(--border); }
  .dl-hero h1 { font-size: 28px; }
  .dl-feedback-band { flex-direction: column; text-align: center; }

  .nav-mobile {
    display: none;
    border-top: 1px solid var(--border);
    padding: 8px 20px 12px;
    background: var(--bg);
  }

  .nav-mobile.show { display: block; }

  .nav-mobile a {
    display: block;
    padding: 10px 4px;
    color: var(--text-2);
    font-size: 15px;
    border-bottom: 1px solid var(--border);
  }

  .nav-mobile a:last-child { border-bottom: none; }

  .hero { padding: 48px 0 34px; }
  .hero-title { font-size: 30px; }
  .hero-sub { font-size: 14.5px; }

  .hero-stats { flex-direction: column; gap: 12px; }

  .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .code-grid, .hot-grid, .code-index-grid { grid-template-columns: 1fr; }

  .term-row { grid-template-columns: 100px 1fr 20px; }
  .term-zh { display: none; }

  .t-term { font-size: 30px; }

  .term-layout { grid-template-columns: 1fr; gap: 24px; }
  .sidebar { position: static; }
  .meanings { grid-template-columns: 1fr; }
  .t-meanings-sub { display: none; }
  .all-row { grid-template-columns: 90px 1fr; }
  .all-row .all-meta { grid-column: 1 / -1; padding-left: 110px; }
  .all-stats { position: static; }
  .graph-chart { height: 520px; }

  .topbar-in { height: 54px; }
}

@media (max-width: 480px) {
  .cat-grid { grid-template-columns: 1fr; }
  .code-grid, .hot-grid { grid-template-columns: 1fr; }
  .hero-stats { grid-template-columns: repeat(2, 1fr); }
  .value-props { grid-template-columns: repeat(2, 1fr); }
  .about-stats { grid-template-columns: repeat(2, 1fr); }
  .stat b { font-size: 22px; }
  .log-item { grid-template-columns: 1fr; gap: 8px; }
  .dl-grid { grid-template-columns: 1fr; }
  .dl-hero h1 { font-size: 24px; }
  .dl-cta { flex-direction: column; }
  .dl-price-num { font-size: 32px; }
}

/* 收藏 / 最近使用 */
.fav-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 3px;
  background: var(--bg-deep);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.fav-tab {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  border: none;
  padding: 6px 12px;
  font: inherit;
  font-size: 12.5px;
  color: var(--text-2);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}
.fav-tab:hover { background: var(--bg-card-2); color: var(--text); }
.fav-tab.on {
  background: var(--bg-card);
  color: var(--accent);
  font-weight: 700;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.fav-tab.on svg { color: var(--accent); }
.fav-tab .fav-count {
  display: inline-block;
  min-width: 18px;
  padding: 1px 6px;
  background: var(--bg-card-2);
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  border-radius: 10px;
  text-align: center;
}
.fav-tab.on .fav-count { background: var(--accent-soft); color: var(--accent); }

.td-fav { width: 40px; padding-left: 6px !important; padding-right: 6px !important; text-align: center; }
.fav-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px; height: 30px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--text-3);
  cursor: pointer;
  transition: all 0.12s;
}
.fav-star:hover { background: var(--accent-soft); color: var(--accent); border-color: rgba(0, 208, 126, 0.2); }
.fav-star.on { color: var(--accent); }
.fav-star.on svg { fill: var(--accent); }

.fav-star-lg {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  margin-top: 12px;
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: 9px;
  color: var(--text-2);
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
.fav-star-lg:hover { border-color: var(--accent); color: var(--accent); }
.fav-star-lg.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.fav-star-lg.on svg { fill: var(--accent); }

.fav-empty {
  text-align: center;
  padding: 36px 16px;
  color: var(--text-3);
  background: var(--bg-card);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  margin: 14px 0;
}
.fav-empty-ico {
  display: inline-flex;
  width: 48px; height: 48px;
  align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--bg-deep);
  color: var(--text-3);
  margin-bottom: 10px;
}
.fav-empty p { font-size: 13.5px; line-height: 1.7; margin: 0; }

@media (max-width: 880px) {
  .fav-tabs { font-size: 11.5px; }
  .fav-tab { padding: 5px 9px; }
  .td-fav { display: none; }
}

/* 对比页 */
.cmp-head {
  display: grid;
  grid-template-columns: 1fr 76px 1fr;
  align-items: stretch;
  gap: 0;
  margin: 24px 0 28px;
}
.cmp-vs-left, .cmp-vs-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 30px 16px;
  border-radius: var(--radius);
  border: 1.5px solid var(--border);
  background: var(--bg-card);
  text-align: center;
}
.cmp-vs-left b, .cmp-vs-right b {
  font-size: 26px;
  font-weight: 800;
  font-family: var(--mono);
  color: var(--rc, var(--accent));
  line-height: 1.1;
}
.cmp-vs-left span, .cmp-vs-right span { font-size: 14px; color: var(--text-2); }
.cmp-vs-left em, .cmp-vs-right em {
  font-style: normal;
  font-size: 11.5px;
  color: var(--rc, var(--accent));
  background: color-mix(in srgb, var(--rc, var(--accent)) 12%, transparent);
  padding: 2px 10px;
  border-radius: 12px;
}
.cmp-vs-mid {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 17px;
  font-weight: 800;
  color: var(--text-3);
}
.cmp-sec { margin: 26px 0; }
.cmp-h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 12px;
}
.cmp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.cmp-table th, .cmp-table td {
  padding: 12px 14px;
  border: 1px solid var(--border);
  vertical-align: top;
  line-height: 1.75;
  text-align: justify;
}
.cmp-table thead th {
  background: var(--bg-deep);
  font-weight: 700;
  font-size: 13.5px;
  color: var(--text);
}
.cmp-table tbody th {
  background: var(--bg-deep);
  color: var(--text-2);
  font-weight: 600;
  font-size: 12.5px;
  width: 22%;
  white-space: nowrap;
}
.cmp-tips-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.cmp-tips {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px 18px;
}
.cmp-tips h3 { font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.cmp-tips ul { list-style: none; margin: 0; padding: 0; }
.cmp-tips ul li {
  font-size: 12.5px;
  color: var(--text-2);
  line-height: 1.7;
  padding: 3px 0 3px 16px;
  position: relative;
}
.cmp-tips ul li::before {
  content: "";
  position: absolute;
  left: 2px; top: 12px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--accent);
  opacity: 0.6;
}
.cmp-note {
  font-size: 12.5px;
  color: var(--text-3);
  margin: 22px 0 40px;
  padding: 10px 14px;
  background: var(--bg-card);
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm);
}
.cmp-note a { color: var(--accent); }
/* ④ 相关对比推荐块 */
.cmp-rel-sec { margin-top: 30px; }
.cmp-rel-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.cmp-rel {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-card);
  color: var(--text-1);
  font-size: 13px;
  transition: border-color .15s, transform .15s, color .15s;
}
.cmp-rel span { color: var(--text-3); font-size: 12px; }
.cmp-rel:hover { border-color: var(--accent); color: var(--accent); transform: translateY(-1px); }
.cmp-rel svg { color: var(--accent-2, var(--accent)); opacity: .8; }
.cmp-intro { font-size: 13px; color: var(--text-2); margin-bottom: 10px; }
.cmp-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-card);
  color: var(--accent);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.15s;
}
.cmp-chip:hover { border-color: var(--accent); background: var(--accent-soft); }
.cmp-chip span { font-weight: 400; color: var(--text-3); }

/* 对比页 H1（修复无 H1 的 SEO 问题） */
.cmp-title {
  font-size: 30px;
  font-weight: 800;
  font-family: var(--mono);
  color: var(--text);
  margin: 18px 0 4px;
  text-align: center;
}
.cmp-title .cmp-vs { color: var(--accent); font-size: 22px; margin: 0 10px; }

/* 对比索引页 */
.cmp-idx-group { margin: 26px 0; }
.cmp-idx-group-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-2);
  margin: 0 0 12px;
  padding-left: 10px;
  border-left: 3px solid var(--accent);
}
.cmp-idx-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 10px;
}
.cmp-idx-card {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-card);
  text-decoration: none;
  color: var(--text);
  font-family: var(--mono);
  font-weight: 700;
  font-size: 15px;
  transition: all 0.15s;
}
.cmp-idx-card:hover { border-color: var(--accent); background: var(--accent-soft); }
.cmp-idx-vs { color: var(--text-3); font-size: 12px; font-weight: 600; }
.cmp-idx-a, .cmp-idx-b { color: var(--text); }

/* 首页对比入口 */
.cmp-home-sec { margin: 30px 0; }
.cmp-home-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 10px;
}
.cmp-home-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  padding: 12px 7px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: linear-gradient(145deg, var(--bg-card), var(--bg-card-2));
  text-decoration: none;
  color: var(--text);
  font-family: var(--mono);
  font-weight: 700;
  font-size: 12px;
  transition: all 0.18s ease;
  position: relative;
  overflow: hidden;
}
.cmp-home-card::before {
  content: '';
  position: absolute; inset: 0; border-radius: inherit; padding: 1px;
  background: linear-gradient(135deg, rgba(0,208,126,.45), transparent 55%, rgba(59,163,255,.30));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s ease;
}
.cmp-home-card:hover { border-color: rgba(0,208,126,.45); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.cmp-home-card:hover::before { opacity: 1; }
.cmp-home-a, .cmp-home-b {
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
  padding: 5px 2px;
  border-radius: 5px;
  background: rgba(0,208,126,.10);
  color: var(--accent);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cmp-home-b { background: rgba(59,163,255,.10); color: #3BA3FF; }
.cmp-home-vs { color: var(--text-3); font-size: 10px; font-weight: 800; padding: 0 1px; }
@media (max-width: 1200px) {
  .cmp-home-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .cmp-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .cmp-home-card { padding: 11px 6px; font-size: 11px; }
}

.plain-title { font-size: 28px; font-weight: 800; color: var(--text); margin: 0 0 8px; }
.plain-sub { font-size: 14px; color: var(--text-2); margin: 0 0 4px; max-width: 760px; line-height: 1.6; }

@media (max-width: 880px) {
  .cmp-head { grid-template-columns: 1fr 48px 1fr; }
  .cmp-vs-left b, .cmp-vs-right b { font-size: 20px; }
  .cmp-tips-grid { grid-template-columns: 1fr; }
  .cmp-table { font-size: 12px; }
  .cmp-table th, .cmp-table td { padding: 9px 10px; }
}

/* 生成分享卡片 */
.share-card-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.share-card-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 16px;
  background: var(--accent);
  color: #0D1B2A;
  border: none;
  border-radius: 8px;
  font: inherit;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s;
}
.share-card-btn:hover { background: #00E68C; transform: translateY(-1px); }
.share-card-btn.ghost {
  background: transparent;
  color: var(--text-2);
  border: 1px solid var(--border);
}
.share-card-btn.ghost:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
.share-card-preview { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--border); }
.share-card-img { display: flex; justify-content: center; }
.share-card-img canvas { max-width: 100%; height: auto; border-radius: 12px; box-shadow: 0 6px 24px rgba(0,0,0,0.15); }
.share-card-hint { text-align: center; font-size: 12.5px; color: var(--text-3); margin: 12px 0 0; }

/* 侧边栏竖版分享卡片 */
.sb-share-card .sb-share-lead { font-size: 12.5px; color: var(--text-2); margin: 10px 16px 14px; line-height: 1.7; }
.sb-share-card .sb-share-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 16px 16px;
}
.sb-share-card .sb-share-actions .share-card-btn { width: 100%; justify-content: center; }
.sb-share-card .share-card-preview { margin: 14px 16px 0; }
.sb-share-card .share-card-preview .share-card-actions { flex-direction: column; }
.sb-share-card .share-card-preview .share-card-actions .share-card-btn { width: 100%; justify-content: center; }

/* 词条翻页（上一篇/下一篇） */
.t-prevnext { }
.prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.prevnext-card {
  display: flex; flex-direction: column; gap: 6px;
  padding: 14px 18px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--text-2);
  transition: all 0.15s;
  position: relative;
  overflow: hidden;
}
.prevnext-card b {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11.5px; font-weight: 600; color: var(--text-3);
  text-transform: uppercase; letter-spacing: 0.5px;
}
.prevnext-card.prev b svg { transform: rotate(180deg); }
.prevnext-card.next { text-align: right; }
.prevnext-card.next b { justify-content: flex-end; }
.prevnext-card:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
  color: var(--text);
  transform: translateY(-1px);
}
.prevnext-term {
  display: block;
  font-family: var(--mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--accent);
}
.prevnext-term em {
  display: block;
  font-style: normal;
  font-family: var(--font);
  font-size: 12.5px;
  font-weight: 400;
  color: var(--text-3);
  margin-top: 2px;
}
@media (max-width: 620px) {
  .prevnext { grid-template-columns: 1fr; }
}

/* 正文内链交叉（自动港口/机场代码 → 详情页） */
.t-cross-link {
  color: var(--accent);
  text-decoration: none;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 0.92em;
  padding: 1px 4px;
  margin: 0 1px;
  border-radius: 4px;
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  transition: all 0.12s;
}
.t-cross-link:hover {
  background: var(--accent);
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}

/* ============================================
   打印样式 — 词条/代码库/详情页纸面输出
   ============================================ */
@media print {
  /* 页面设置：A4、合理边距 */
  @page {
    margin: 14mm 16mm 16mm;
    size: A4;
  }

  /* 重置全局背景与文字 */
  html, body {
    background: #fff !important;
    color: #000 !important;
    font-size: 10.5pt !important;
    line-height: 1.55 !important;
    -webkit-print-color-adjust: economy;
    print-color-adjust: economy;
  }

  /* 隐藏所有非内容元素 */
  header.site-nav,
  .site-header,
  nav.crumbs,
  .crumbs,
  .share-bar,
  .sb-feedback,
  .sb-search,
  .sb-stat,
  .sb-link,
  .cm-prevnext,
  .prevnext,
  .prevnext-card,
  .t-prevnext,
  .t-share-card,
  .share-card-actions,
  .share-card-preview,
  .cd-sidebar,
  .cd-links,
  .fav-tabs,
  .td-fav,
  .fav-star,
  .fav-star-lg,
  .footer,
  .footer-col,
  .bottom-bar,
  .t-search-bar,
  .hero,
  .hero-stats,
  .hot-grid,
  .cat-grid,
  .value-props,
  .cd-action,
  .cd-callout,
  .cd-down,
  .cd-map-sec,
  #miniMap,
  #aggregateMap,
  .leaflet-container,
  aside.sidebar,
  .sidebar,
  .sidebar-cta,
  .toc,
  .toolbar,
  .filter-bar,
  .filter-pills,
  .agg-stat,
  button,
  input[type="search"],
  input[type="text"],
  .crumbs-back,
  .hl-c,
  .chips,
  .clipboard,
  .copy-btn,
  .toggle-bar,
  .scroll-top {
    display: none !important;
  }

  /* 链接：去掉下划线，链接文字后跟 URL */
  a, a:link, a:visited {
    color: #000 !important;
    text-decoration: none !important;
  }
  a[href^="/"]:not(.t-cross-link):not(.tbl-link):not(.logo),
  a[href^="https://terms.lawnwing.com"]:not(.t-cross-link):not(.tbl-link) {
    color: #333 !important;
  }

  /* 主体布局：去 sidebar，全宽 */
  .wrap, .container, .plain-body, .cd-body, .term-layout, .term-page {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: none !important;
  }

  /* 卡片去背景色边框 */
  .t-def, .t-sec, .tbl, .t-card, .cd-card,
  .tbl-box, .tbl-wrap, .cd-head, .about-stats,
  [class*="-card"], [class*="-box"] {
    background: #fff !important;
    border: 1px solid #ccc !important;
    box-shadow: none !important;
    overflow: visible !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* 标题 */
  h1, h2, h3, h4 {
    color: #000 !important;
    page-break-after: avoid;
    break-after: avoid;
  }
  h1 { font-size: 18pt !important; margin: 12pt 0 6pt !important; }
  h2 { font-size: 13pt !important; margin: 14pt 0 4pt !important; }
  h3 { font-size: 11pt !important; margin: 10pt 0 3pt !important; }

  /* 表格 */
  .tbl, table {
    width: 100% !important;
    font-size: 9pt !important;
    border-collapse: collapse !important;
    page-break-inside: auto !important;
  }
  .tbl th, .tbl td, table th, table td {
    padding: 5pt 7pt !important;
    border: 1px solid #999 !important;
    background: #fff !important;
    color: #000 !important;
  }
  .tbl thead { display: table-header-group !important; }
  .tbl tr { page-break-inside: avoid !important; }
  .tbl thead th { background: #eee !important; }

  /* 段落 */
  p, li {
    color: #000 !important;
    orphans: 3;
    widows: 3;
  }

  /* 禁止孤立小元素 */
  ul, ol, .siblings, .related, .chips {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* 强制显示：t-cross-link 内的 URL（便于纸面检索） */
  .t-cross-link::after {
    content: "" !important;
  }

  /* 强制 URL 显示（页脚型） */
  .plain-foot::before {
    content: " 本文档来自 https://terms.lawnwing.com · 货代术语库 ";
    display: block;
    font-size: 8pt;
    color: #666;
    margin-top: 8pt;
    border-top: 1px solid #ccc;
    padding-top: 4pt;
  }

  /* 词条页特殊：核心释义加边框明显 */
  .t-def {
    border: 1.5px solid #000 !important;
    padding: 10pt 14pt !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* 词条首行：term + 中文 */
  .t-term { font-family: var(--mono) !important; font-weight: 700 !important; }
}

/* ============================================
   BLOG 货代知识
   ============================================ */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-top: 8px;
}
.blog-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px 20px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: all 0.15s;
}
.blog-card:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
  transform: translateY(-1px);
}
.blog-card-date {
  font-family: var(--mono);
  font-size: 11.5px;
  color: var(--text-3);
}
.blog-card-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.5;
  margin: 0;
}
.blog-card:hover .blog-card-title { color: var(--accent); }
.blog-card-desc {
  font-size: 12.5px;
  color: var(--text-2);
  line-height: 1.65;
  margin: 0;
}
.blog-card-more {
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  margin-top: 4px;
}
.blog-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 2px;
}

/* BLOG 类型标签 + 专栏筛选 */
.type-term { color: var(--accent); background: rgba(0, 208, 126, 0.12); border-color: rgba(0, 208, 126, 0.32); }
.type-code { color: #3BA3FF; background: rgba(59, 163, 255, 0.12); border-color: rgba(59, 163, 255, 0.32); }
.blog-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 18px;
  flex-wrap: wrap;
}
.blog-filter-btn {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-2);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 6px 16px;
  cursor: pointer;
  transition: all 0.15s;
}
.blog-filter-btn:hover { border-color: var(--accent); color: var(--accent); }
.blog-filter-btn.is-active { color: #fff; background: var(--accent); border-color: var(--accent); }
.blog-meta-date { font-family: var(--mono); }
.blog-meta-cat { color: var(--text); font-weight: 600; }

/* 文章页 */
.blog-head {
  padding: 6px 0 18px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
.blog-title {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.45;
  margin: 0 0 10px;
}
.blog-meta {
  font-size: 12.5px;
  color: var(--text-3);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 12px;
}
.blog-desc {
  font-size: 14px;
  color: var(--text-2);
  line-height: 1.8;
  margin: 0;
}
.blog-body {
  padding-bottom: 10px;
}
.blog-body .t-sec-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--text);
  margin: 28px 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 8px;
}
.blog-body .t-sec-title svg { color: var(--accent); }
.blog-h3 {
  font-size: 15.5px;
  font-weight: 700;
  color: var(--text);
  margin: 20px 0 8px;
}
.blog-p {
  font-size: 14px;
  line-height: 1.95;
  color: var(--text-2);
  margin: 0 0 12px;
  text-align: justify;
  text-justify: inter-ideograph;
}
.blog-ul {
  margin: 0 0 12px;
  padding-left: 20px;
}
.blog-ul li {
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--text-2);
  margin-bottom: 4px;
}
.blog-quote {
  margin: 16px 0;
  padding: 12px 18px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm);
  color: var(--text-2);
  font-size: 13.5px;
  line-height: 1.8;
}
@media (max-width: 620px) {
  .blog-grid { grid-template-columns: 1fr; }
  .blog-title { font-size: 20px; }
}

/* 文章头：标题 + 主题图 */
.blog-head-art {
  width: 280px;
  height: 96px;
  margin: 16px 0 22px;
  color: var(--accent);
  opacity: 0.92;
}
.blog-head-art svg { width: 100%; height: 100%; display: block; }

.blog-desc {
  text-align: justify;
  text-justify: inter-ideograph;
}
@media (max-width: 620px) {
  .blog-head-art { height: 70px; padding: 0 10px; }
}

/* ============================================================
   公司信息卡与机场/港口关联公司（B 详情页增强）
   ============================================================ */

/* 公司信息卡（航司 / 船司） */
.t-company-info {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px 20px;
  margin-top: 20px;
}

.t-company-info .t-sec-title {
  margin-bottom: 14px;
}

.company-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
}

.ci-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--bg-card-2);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
}

.ci-item span {
  font-size: 12px;
  color: var(--text-3);
}

.ci-item b {
  font-size: 14px;
  color: var(--text);
  font-weight: 600;
}

.ci-hubs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.ci-hubs > span {
  font-size: 12.5px;
  color: var(--text-3);
  margin-right: 4px;
}

.info-hub {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: var(--accent-soft);
  border: 1px solid rgba(0, 208, 126, 0.35);
  border-radius: 20px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--accent);
  transition: all 0.15s;
}

.info-hub:hover {
  background: rgba(0, 208, 126, 0.18);
  border-color: var(--accent);
}

/* 机场 / 港口 关联公司模块 */
.cd-companies { margin-top: 18px; }

/* 优化 7：机场↔港口互查（机场详情页底部） */
.cd-ports { margin-top: 18px; }
.cd-ports-lead { font-size: 13.5px; color: var(--text-2); line-height: 1.7; margin: -6px 0 14px; }
.cd-ports-lead b { color: var(--text); font-weight: 600; }
.cd-ports-lead a { color: var(--accent); text-decoration: none; border-bottom: 1px dashed var(--accent); }
.cd-ports-lead a:hover { border-bottom-style: solid; }
.cd-ports .cd-sec-title { display: flex; align-items: center; gap: 6px; }
.cd-ports-meta { font-size: 11px; color: var(--text-3); font-weight: 400; padding: 1px 6px; background: var(--bg-card-2); border-radius: 4px; }
.cd-chip-port b { color: #3BA3FF; }
.cd-chip-port:hover b { color: #62baff; }
.cd-chip-port b::before { content: "⚓"; margin-right: 3px; font-size: 11px; color: var(--text-3); }

.company-chip {
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 14px;
}

.company-chip b {
  font-size: 15px;
}

.company-chip > span {
  font-size: 12.5px;
}

/* 词条页 → 代码库档案页 反向内链（82 个船司/航司代码页的入口） */
.ci-codelink {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.ci-codelink a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border: 1px solid rgba(0, 208, 126, 0.35);
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  transition: background .15s, border-color .15s;
}

.ci-codelink a:hover {
  background: rgba(0, 208, 126, 0.16);
  border-color: var(--accent);
}

.ci-route {
  font-size: 11.5px;
  color: var(--text-3);
  margin-top: 2px;
}

@media (max-width: 620px) {
  .company-info-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .ci-item { padding: 9px 10px; }
}

/* ============================================================
   常见误区 FAQ 聚合页（C1）
   ============================================================ */

.faq-hero .tbl-head-body p { max-width: 720px; }

.faq-controls {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  margin: 24px 0 20px;
}

.faq-search {
  position: relative;
  margin-bottom: 14px;
}

.faq-search svg {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-3);
  width: 16px;
  height: 16px;
}

.faq-search input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 12px 10px 36px;
  color: var(--text);
  font-size: 14px;
  outline: none;
}

.faq-search input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px var(--accent-soft);
}

.faq-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.faq-tab {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-2);
  padding: 6px 11px;
  font-size: 13px;
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}

.faq-tab span {
  color: var(--text-3);
  font-size: 11px;
}

.faq-tab:hover {
  border-color: var(--accent);
  color: var(--text);
}

.faq-tab.on {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
}

.faq-tab.on span { color: var(--accent); opacity: .85; }

.hs-pager {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 16px 0 8px;
}

.hs-pg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 30px;
  padding: 0 9px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg-card);
  color: var(--text-2);
  font-size: 13px;
  font-family: var(--mono);
  text-decoration: none;
  transition: border-color .15s, color .15s, background .15s;
}

.hs-pg:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--accent-soft);
}

.hs-pg.on {
  border-color: var(--accent);
  background: var(--accent-soft);
  color: var(--accent);
  font-weight: 700;
}

.hs-pg.off {
  opacity: .4;
  cursor: default;
}

.hs-pg-gap {
  color: var(--text-3);
  padding: 0 2px;
}

.hs-pg-info {
  margin-left: auto;
  color: var(--text-3);
  font-size: 12.5px;
}

@media (max-width: 640px) {
  .hs-pg-info { margin-left: 0; width: 100%; }
}

.faq-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 10px;
  margin: 0 0 26px;
}

.faq-cat-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  text-decoration: none;
  transition: border-color .15s, background .15s;
}

.faq-cat-card:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.faq-cat-card-name {
  color: var(--text);
  font-size: 13.5px;
  font-weight: 600;
}

.faq-cat-card:hover .faq-cat-card-name { color: var(--accent); }

.faq-cat-card-num {
  color: var(--text-3);
  font-size: 12px;
}

.faq-cat-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  color: var(--accent);
  font-size: 13.5px;
  text-decoration: none;
}

.faq-cat-more:hover { text-decoration: underline; }

.faq-cat-title a {
  color: inherit;
  text-decoration: none;
}

.faq-cat-title a:hover { color: var(--accent); }

.faq-hits {
  display: grid;
  gap: 6px;
  margin: 0 0 14px;
  max-height: 320px;
  overflow-y: auto;
}

.faq-hits[hidden] { display: none; }

.faq-hit {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 8px 11px;
  text-decoration: none;
  font-size: 13.5px;
}

.faq-hit:hover { border-color: var(--accent); }

.faq-hit b {
  color: var(--text);
  font-weight: 600;
}

.faq-hit span {
  color: var(--text-2);
  font-size: 12.5px;
}

.faq-hit em {
  margin-left: auto;
  color: var(--text-3);
  font-style: normal;
  font-size: 12px;
}

.faq-hit-empty,
.faq-empty {
  color: var(--text-3);
  font-size: 13.5px;
  margin: 8px 0 0;
}

.faq-hit-empty a { color: var(--accent); }

.faq-item h4.faq-q {
  font-size: 14.5px;
}

.faq-body { margin-top: 10px; }

.faq-cat-group { margin-bottom: 36px; }

.faq-cat-title {
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 8px;
}

.faq-cat-title span {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-3);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 1px 8px;
}

.faq-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.faq-item {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 18px;
}

.faq-q {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  margin: 0 0 10px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

.faq-term {
  color: var(--accent);
  text-decoration: none;
}

.faq-term:hover { text-decoration: underline; }

.faq-zh {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-2);
}

.faq-a {
  color: var(--text-2);
  font-size: 13.5px;
  line-height: 1.7;
}

.faq-a p { margin: 0; }

.faq-ol,
.faq-ul {
  margin: 0;
  padding-left: 18px;
  color: var(--text-2);
}

.faq-ol li,
.faq-ul li {
  margin-bottom: 6px;
  line-height: 1.65;
}

.faq-ol li:last-child,
.faq-ul li:last-child { margin-bottom: 0; }

.faq-more {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 12px;
  font-size: 12.5px;
  color: var(--text-3);
  text-decoration: none;
}

.faq-more svg {
  width: 12px;
  height: 12px;
}

.faq-more:hover { color: var(--accent); }

@media (max-width: 900px) {
  .faq-list { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .faq-controls { padding: 14px; }
  .faq-filter { gap: 6px; }
  .faq-tab { padding: 5px 9px; font-size: 12px; }
  .faq-cat-title { font-size: 16px; }
  .faq-item { padding: 14px; }
  .faq-q { font-size: 14px; }
}


/* ===== 操作指南页 ===== */
.guide-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 4px; }
.guide-card { display: flex; gap: 12px; align-items: flex-start; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; color: var(--text-1); transition: border-color .15s, transform .15s; }
.guide-card:hover { border-color: var(--accent); transform: translateY(-1px); }
.guide-card-ico { flex: none; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent); }
.guide-card-go { margin-left: auto; align-self: center; color: var(--text-3); flex: none; transition: transform .15s, color .15s; }
.guide-card:hover .guide-card-go { color: var(--accent); transform: translateX(3px); }
.guide-card-body b { display: block; font-size: 15px; margin-bottom: 4px; color: var(--text-1); }
.guide-card-body span { font-size: 12.5px; line-height: 1.65; color: var(--text-3); }
.guide-card-sm { padding: 12px 14px; gap: 10px; }
.guide-card-sm .guide-card-ico { width: 32px; height: 32px; }
.guide-card-sm .guide-card-body b { font-size: 13.5px; }
.guide-card-sm .guide-card-body span { font-size: 12px; }
.guide-layout { display: grid; grid-template-columns: 1fr 280px; gap: 24px; align-items: start; }
.guide-intro { background: var(--accent-soft); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; font-size: 13.5px; line-height: 1.75; color: var(--text-1); margin-bottom: 20px; }
.guide-sec { margin-bottom: 22px; }
.guide-sec-title { font-size: 15px; font-weight: 600; color: var(--accent); margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
.guide-terms { display: flex; flex-wrap: wrap; gap: 8px; }
.g-term { display: inline-flex; align-items: baseline; gap: 6px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 7px 11px; font-size: 12.5px; color: var(--text-1); transition: border-color .15s; }
.g-term:hover { border-color: var(--accent); }
.g-term b { color: var(--accent); font-weight: 600; }
.g-term span { color: var(--text-3); font-size: 12px; }
.guide-links { display: flex; flex-wrap: wrap; gap: 8px; }
.guide-lib-link { display: inline-block; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 6px 10px; font-size: 12.5px; color: var(--text-1); }
.guide-lib-link:hover { border-color: var(--accent); }
.guide-aside .sb-card-title { margin-bottom: 10px; }
.guide-others { display: flex; flex-direction: column; gap: 10px; }
.guide-tag { display: inline-block; font-size: 11.5px; color: var(--accent); border: 1px solid var(--accent); border-radius: 999px; padding: 2px 10px; margin-bottom: 8px; }
/* ⑤ 上一篇 / 下一篇 */
.guide-pager {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 26px 0 44px;
}
.guide-pager a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-card);
  color: var(--text-1);
  transition: border-color .15s, transform .15s;
}
.guide-pager a:hover { border-color: var(--accent); transform: translateY(-1px); }
.guide-pager .gp-next { justify-content: flex-end; text-align: right; }
.guide-pager a span { display: flex; flex-direction: column; gap: 2px; }
.guide-pager a em { font-style: normal; font-size: 11.5px; color: var(--text-3); }
.guide-pager a b { font-size: 14px; font-weight: 700; }
.guide-pager a svg { color: var(--accent); flex: none; }
.guide-pager .gp-empty { border: none; background: none; }
@media (max-width: 860px) {
  .guide-grid { grid-template-columns: 1fr; }
  .guide-layout { grid-template-columns: 1fr; }
  .guide-pager { grid-template-columns: 1fr; }
  .guide-pager .gp-next { justify-content: flex-start; text-align: left; }
}

/* ===== 分类页导读 ===== */
.cat-intro { display: flex; gap: 8px; align-items: flex-start; background: var(--accent-soft); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; margin: 14px 0 18px; font-size: 13px; line-height: 1.7; color: var(--text-1); }
.cat-intro .ico { flex: none; margin-top: 3px; color: var(--accent); }

/* ===== 侧边栏下载 CTA ===== */
.sb-card.sb-cta { display: flex; align-items: center; gap: 10px; background: var(--accent-soft); border-color: var(--accent); padding: 12px 14px; color: var(--text-1); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.sb-card.sb-cta:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,208,126,.18); color: var(--text-1); }
.sb-cta-ico { flex: none; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); background: var(--accent); color: #fff; }
.sb-cta-body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.sb-cta-body b { font-size: 13.5px; font-weight: 600; color: var(--text-1); }
.sb-cta-body span { font-size: 12px; color: var(--text-3); }
.sb-cta-arrow { flex: none; color: var(--accent); opacity: .85; transition: transform .15s; }
.sb-card.sb-cta:hover .sb-cta-arrow { transform: translateX(2px); opacity: 1; }

/* ===== 收藏夹页 ===== */
.fav-page { display: flex; flex-direction: column; gap: 16px; }
.fav-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fav-search { position: relative; display: flex; align-items: center; flex: 1; min-width: 220px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0 10px; }
.fav-search .sb-search-ico { color: var(--text-3); display: flex; }
.fav-search input { flex: 1; background: transparent; border: 0; outline: 0; color: var(--text-1); font-size: 13px; padding: 9px 8px; }
.fav-actions { display: flex; gap: 8px; }
.fav-btn { display: inline-flex; align-items: center; gap: 6px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-1); font-size: 12.5px; padding: 8px 12px; cursor: pointer; transition: border-color .15s, color .15s; }
.fav-btn:hover { border-color: var(--accent); color: var(--accent); }
.fav-btn .ic { width: 14px; height: 14px; }
.fav-btn.fav-danger:hover { border-color: #E24B4A; color: #E24B4A; }
.fav-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.fav-item { display: flex; align-items: center; gap: 8px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; transition: border-color .15s; }
.fav-item:hover { border-color: var(--rc, var(--accent)); }
.fav-main { display: flex; align-items: baseline; gap: 8px; flex: 1; min-width: 0; color: var(--text-1); text-decoration: none; }
.fav-main:hover { color: var(--text-1); }
.fav-term { font-size: 14px; font-weight: 600; color: var(--rc, var(--accent)); }
.fav-zh { font-size: 13px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fav-cat { flex: none; font-size: 11.5px; color: var(--text-3); border: 1px solid var(--border); border-radius: 999px; padding: 2px 8px; }
.fav-del { flex: none; display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; background: transparent; border: 0; border-radius: var(--radius-sm); color: var(--text-3); cursor: pointer; }
.fav-del:hover { color: #E24B4A; background: rgba(226,75,74,.08); }
.fav-del .ic { width: 14px; height: 14px; }
.fav-empty { text-align: center; padding: 40px 20px; color: var(--text-3); background: var(--bg-card); border: 1px dashed var(--border); border-radius: var(--radius); line-height: 2; }
.fav-empty p { margin: 4px 0; }
.fav-none { color: var(--text-3); text-align: center; padding: 24px; }
@media (max-width: 620px) {
  .fav-list { grid-template-columns: 1fr; }
}

/* ===== 下载页：双版本 CTA + 对比表 ===== */
.dl-cta-duo { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.dl-cta-duo .dl-btn { flex: 1; min-width: 200px; }
.dl-free-note { font-size: 12px; color: var(--text-3); margin-top: 10px; text-align: center; }
.dl-compare { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.dl-compare th { background: var(--bg-elev); color: var(--text-1); font-weight: 600; padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--border); }
.dl-compare td { padding: 11px 14px; border-bottom: 1px solid var(--border); color: var(--text-2); vertical-align: top; }
.dl-compare tr:last-child td { border-bottom: 0; }
.dl-compare tbody tr:hover td { background: var(--bg-hover, rgba(0,208,126,.03)); }
.dl-c-free { color: var(--accent); }
.dl-c-pro { color: #F5A623; }
.dl-cmp-cta-row td { padding: 14px; }

/* ===== P2 移动端体验深化 ===== */
@media (max-width: 620px) {
  .hero-search { padding: 10px 12px; gap: 8px; margin-top: 26px; }
  .hero-search input { font-size: 15px; }
  .hero-search-btn { padding: 7px 12px; font-size: 12.5px; }
  .hero-hints { gap: 8px; max-width: 100%; padding: 0 12px; }
  .hero-hint { font-size: 11.5px; padding: 3px 10px; }
  .hero-hint em { font-size: 10.5px; }
  .value-props { grid-template-columns: 1fr; gap: 8px; }
  .value-prop { padding: 10px 12px; }
}
@media (max-width: 620px) {
  .cmp-sec { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .cmp-table { min-width: 460px; }
  .cmp-table th, .cmp-table td { padding: 9px 10px; font-size: 12px; }
  .cmp-table tbody th { white-space: normal; width: 26%; }
}
@media (max-width: 620px) {
  .guide-layout { grid-template-columns: 1fr; }
  .guide-intro { padding: 12px 14px; font-size: 12.5px; }
  .g-term { padding: 6px 9px; font-size: 12px; }
}
@media (max-width: 620px) {
  .faq-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
  .faq-tab { white-space: nowrap; flex: none; }
}
@media (max-width: 620px) {
  .dl-compare { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .dl-compare th, .dl-compare td { padding: 9px 10px; font-size: 12px; }
  .dl-cta-duo { flex-direction: column; }
  .dl-cta-duo .dl-btn { min-width: 0; }
}
@media (max-width: 480px) {
  .hero-title { font-size: 26px; }
  .hero-sub { font-size: 13px; }
  .crumbs { font-size: 12px; flex-wrap: wrap; }
  .t-sec-title { font-size: 15px; }
  .t-sec-body { font-size: 13px; line-height: 1.75; }
  .sb-card { padding: 12px; }
}

/* ===== P2 首页操作指南区块 ===== */
.guide-home-sec { padding: 26px 0 6px; }
.guide-home-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 16px; }
.guide-home-card { display: flex; gap: 10px; align-items: center; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; color: var(--text-1); text-decoration: none; transition: border-color .15s, transform .15s; }
.guide-home-card:hover { border-color: var(--accent); transform: translateY(-1px); color: var(--text-1); }
.guide-home-ico { flex: none; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent); }
.guide-home-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.guide-home-body b { font-size: 13.5px; font-weight: 600; }
.guide-home-body span { font-size: 12px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 620px) {
  .guide-home-grid { grid-template-columns: 1fr; gap: 8px; }
  .guide-home-card { min-width: 0; overflow: hidden; }
  .guide-home-card:hover { transform: none; }
  .guide-home-body b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .guide-home-body span { white-space: normal; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}

/* ===== 侧边栏次级 CTA（我的收藏）===== */
.sb-card.sb-cta-fav { display: flex; align-items: center; gap: 10px; padding: 10px 14px; color: var(--text-1); text-decoration: none; border-color: var(--border); background: var(--bg-card); transition: border-color .15s; }
.sb-card.sb-cta-fav:hover { border-color: var(--accent); color: var(--text-1); }
.sb-cta-fav-ico { background: var(--bg-deep); color: var(--amber); }

/* ===== 指南页正文叙述段（长文 SEO）===== */
.guide-prose { margin: 18px 0 24px; display: flex; flex-direction: column; gap: 14px; }
.guide-prose-block { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 18px; }
.guide-prose-title { font-size: 14.5px; font-weight: 600; color: var(--accent); margin-bottom: 6px; }
.guide-prose-body { font-size: 13.5px; line-height: 1.85; color: var(--text-2); text-align: justify; text-justify: inter-ideograph; margin: 4px 0 10px; }
.guide-prose-body b { color: var(--text-1); font-weight: 600; }
.guide-prose-list { list-style: none; padding-left: 0; margin: 6px 0 10px; }
.guide-prose-list li { position: relative; padding-left: 24px; margin-bottom: 9px; font-size: 13.5px; line-height: 1.85; color: var(--text-2); text-align: justify; text-justify: inter-ideograph; }
.guide-prose-list li::marker { content: ''; }
.guide-prose-list li .guide-prose-num { position: absolute; left: 0; top: 0; min-width: 18px; color: var(--accent); font-weight: 600; font-size: 13px; }
.guide-prose-list li .guide-prose-text { display: inline; }
@media (max-width: 620px) { .guide-prose-list li { padding-left: 22px; } }

/* ===== 词条页相关指南反向链接 ===== */
.guide-refs { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-top: 8px; }
.guide-ref { display: flex; align-items: center; gap: 10px; padding: 11px 14px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text-1); text-decoration: none; transition: border-color .15s, transform .15s; }
.guide-ref:hover { border-color: var(--accent); transform: translateY(-1px); color: var(--text-1); }
.guide-ref-tag { flex: none; font-size: 11px; color: var(--accent); background: var(--accent-soft); padding: 2px 8px; border-radius: 999px; }
.guide-ref b { font-size: 13px; font-weight: 500; }

/* ===== 收藏页模式切换 + 学习清单 ===== */
.fav-modes { display: inline-flex; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 2px; }
.fav-mode-btn { background: transparent; border: 0; color: var(--text-3); font-size: 12px; padding: 6px 12px; border-radius: var(--radius-sm); cursor: pointer; }
.fav-mode-btn.on { background: var(--accent); color: #fff; font-weight: 500; }
.fav-stats { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 16px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); font-size: 12px; color: var(--text-3); }
.fav-stat-pill { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--bg-deep); color: var(--text-2); }
.fav-stat-pill.mastered { background: rgba(0,208,126,.15); color: var(--accent); }
.fav-stat-pill.learning { background: rgba(245,166,35,.15); color: #F5A623; }
.fav-stat-pill.newc { background: var(--bg-deep); color: var(--text-3); }
.fav-stat-progress { flex: 1; min-width: 100px; height: 6px; background: var(--bg-deep); border-radius: 999px; overflow: hidden; }
.fav-stat-bar { display: block; height: 100%; background: var(--accent); transition: width .25s; }
.fav-stat-pct { font-weight: 600; color: var(--accent); }
.fav-groups { display: flex; flex-direction: column; gap: 16px; }
.fav-group-title { font-size: 13px; font-weight: 600; color: var(--accent); margin-bottom: 8px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.fav-group-title span { color: var(--text-3); font-weight: 400; font-size: 12px; margin-left: 6px; }
.fav-item .fav-st-badge { font-size: 10.5px; padding: 2px 8px; border-radius: 999px; margin-left: 6px; }
.fav-item .fav-st-badge.mastered { background: rgba(0,208,126,.15); color: var(--accent); }
.fav-item .fav-st-badge.learning { background: rgba(245,166,35,.15); color: #F5A623; }
.fav-item .fav-st-badge.newc { background: var(--bg-deep); color: var(--text-3); }
.fav-mst { flex: none; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: transparent; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-3); cursor: pointer; font-size: 13px; }
.fav-mst:hover { border-color: var(--accent); color: var(--accent); }

/* ===== P0 可视化：词条页图表 / 插画 ===== */
.t-vis { margin-top: 4px; }
.sec-lead { color: var(--text-2); font-size: 13.5px; line-height: 1.7; margin: 4px 0 14px; }

/* 箱型对比图 */
.cc-bars { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.cc-row { display: grid; grid-template-columns: 56px 1fr; grid-template-rows: auto auto; column-gap: 12px; row-gap: 5px; align-items: center; }
.cc-name { grid-row: 1 / span 2; font-weight: 700; font-size: 14px; color: var(--text); text-align: right; }
.cc-track { position: relative; display: flex; align-items: center; gap: 8px; }
.cc-bar { height: 14px; border-radius: 4px; min-width: 4px; }
.cc-vol { background: linear-gradient(90deg, var(--accent), var(--accent-strong)); }
.cc-pay { background: linear-gradient(90deg, #3BA3FF, #5FB8FF); }
.cc-val { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cc-table-wrap { overflow-x: auto; }
.cc-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.cc-table th, .cc-table td { padding: 8px 10px; text-align: center; border-bottom: 1px solid var(--border); }
.cc-table th { color: var(--text-3); font-weight: 600; background: var(--bg-deep); }
.cc-table td { color: var(--text-2); font-variant-numeric: tabular-nums; }
.cc-table tbody tr:hover { background: var(--bg-hover); }
.cc-note { display: flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 12px; color: var(--text-3); }

/* 迷你航线示意 */
.route-diagram { display: flex; justify-content: center; padding: 8px 0; }
.route-svg { width: 100%; max-width: 360px; height: auto; }
.route-nd { fill: var(--text-2); font-size: 12px; font-family: var(--font); }
.route-glyph { color: var(--accent); }

/* 指南页流程示意图 (P1) */
.guide-flow { margin-bottom: 24px; }
.guide-flow-title { font-size: 15px; font-weight: 600; color: var(--accent); margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.guide-flow-box { background: var(--bg-deep); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; overflow-x: auto; }
.gf-svg { width: 100%; height: auto; display: block; min-width: 320px; }
.gf-rect { fill: var(--bg-card); stroke: var(--border); stroke-width: 1; }
.gf-badge { fill: var(--accent); }
.gf-num { fill: #16242f; font-size: 17px; font-weight: 700; font-family: var(--font); }
.gf-title { fill: var(--text); font-size: 16px; font-weight: 600; font-family: var(--font); }
.gf-line { stroke: var(--accent); stroke-width: 2; }
.gf-tri { fill: var(--accent); }
@media (max-width: 480px) {
  .guide-flow-box { padding: 10px 12px; }
  .gf-title { font-size: 14px; }
}

/* 收藏夹 · 打印友好版 (P1) — 收藏即生成可勾画学习清单 */
.fav-print-head { display: none; }
@media print {
  @page { margin: 14mm; }
  :root {
    --bg: #ffffff; --bg-deep: #ffffff; --bg-card: #ffffff; --bg-card-2: #ffffff;
    --text: #1a1a1a; --text-1: #1a1a1a; --text-2: #333333; --text-3: #555555;
    --border: #cccccc; --border-light: #cccccc; --accent: #0a8a55; --accent-soft: #ffffff;
  }
  html, body { background: #fff !important; color: #000 !important; }
  .crumbs, .plain-head, .fav-toolbar, .fav-modes, .fav-search, .fav-actions,
  .fav-del, .fav-mst, .toast, footer, .site-foot, .site-nav, .sidebar, aside, .guide-aside, .fab-group {
    display: none !important;
  }
  .fav-print-head { display: block !important; margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid #000; }
  .fav-print-head .fav-print-title { font-size: 22px; font-weight: 700; margin: 0; color: #000; }
  .fav-print-head p { font-size: 12px; color: #555; margin: 4px 0 0; }
  .fav-page { display: block !important; gap: 0; }
  .fav-stats { display: flex !important; margin-bottom: 12px; background: #fff; color: #333; border: 1px solid #ccc; }
  .fav-list, .fav-groups { display: block !important; }
  .fav-group { break-inside: avoid; }
  .fav-group-title { color: #000; border-bottom: 1px solid #999; }
  .fav-item {
    display: flex !important; align-items: baseline; gap: 10px;
    background: #fff !important; border: none !important; border-bottom: 1px solid #ddd !important;
    border-radius: 0 !important; padding: 9px 0 !important; page-break-inside: avoid;
  }
  .fav-item::before { content: "\2610"; font-size: 16px; line-height: 1; color: #000; flex: none; }
  .fav-main { color: #000 !important; text-decoration: none !important; flex-wrap: wrap; }
  .fav-term { color: #000 !important; font-size: 15px; }
  .fav-zh { color: #333 !important; overflow: visible; white-space: normal; text-overflow: clip; }
  .fav-cat { color: #555 !important; border: 1px solid #999; }
  .fav-st-badge { display: inline-block !important; background: #fff !important; border: 1px solid #999; color: #000 !important; }
  .fav-st-badge.mastered { color: #0a8a55 !important; border-color: #0a8a55; }
  .fav-empty, .fav-none { color: #333 !important; }
}

/* 词条页「延伸理解」区块（薄词条扩展：实际场景 + 相近辨析） */
.t-ext { background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; margin: 20px 0; }
.t-ext .t-sec-title { font-size: 15px; margin: 0 0 10px; }
.t-ext-row { display: flex; gap: 12px; padding: 7px 0; border-top: 1px solid var(--border); }
.t-ext-row:first-of-type { border-top: none; }
.t-ext-k { flex: 0 0 74px; color: var(--accent); font-weight: 600; font-size: 13px; line-height: 1.7; }
.t-ext-v { flex: 1; color: var(--text); font-size: 13.5px; line-height: 1.7; text-align: justify; text-justify: inter-ideograph; }

/* 右下角浮动小工具组：返回顶部 + 复制链接 */
.fab-group {
  position: fixed; right: 22px; bottom: 22px; z-index: 60;
  display: flex; flex-direction: column; gap: 12px;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}
.fab-group.is-show { opacity: 1; visibility: visible; transform: translateY(0); }
.fab-btn {
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg-card); color: var(--text);
  border: 1px solid var(--border); cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,.28);
  transition: color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
}
.fab-btn:hover { color: var(--accent); border-color: var(--accent); transform: translateY(-1px); }
.fab-btn:active { transform: translateY(0); }
.fab-btn .ico { width: 20px; height: 20px; }
.fab-btn.is-ok { color: #fff; background: var(--accent); border-color: var(--accent); }
@media (max-width: 480px) {
  .fab-group { right: 14px; bottom: 14px; gap: 10px; }
  .fab-btn { width: 40px; height: 40px; }
}

/* ---------- 右侧站内导航（吊牌 + 抽屉） ---------- */
.side-nav-bookmark {
  position: fixed;
  top: 78px;
  right: 18px;
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.35));
}
.sn-tag-string {
  display: block;
  width: 2px;
  height: 28px;
  background: linear-gradient(to bottom, rgba(0,208,126,.2), rgba(0,208,126,.85));
  transform-origin: top center;
  transition: transform .35s ease;
}
.side-nav-bookmark:hover .sn-tag-string,
.side-nav-bookmark:focus-visible .sn-tag-string {
  transform: scaleY(1.25);
}
.sn-tag {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 46px;
  padding: 10px 0 12px;
  background: linear-gradient(145deg, rgba(0,208,126,.95) 0%, rgba(0,176,106,.98) 100%);
  border-radius: 10px;
  color: #0b1c28;
  box-shadow: 0 4px 14px rgba(0,208,126,.22);
  transition: transform .3s ease, box-shadow .3s ease, filter .3s ease;
  transform-origin: top center;
}
.side-nav-bookmark:hover .sn-tag,
.side-nav-bookmark:focus-visible .sn-tag {
  transform: translateY(2px) rotate(1deg);
  box-shadow: 0 8px 24px rgba(0,208,126,.32);
}
.sn-tag .ico {
  width: 18px;
  height: 18px;
  stroke-width: 2.5;
}
.sn-tag-txt {
  writing-mode: vertical-rl;
  letter-spacing: 2px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}
.side-nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 95;
  background: rgba(10,18,28,.55);
  backdrop-filter: blur(3px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}
.side-nav-overlay.is-open {
  opacity: 1;
  visibility: visible;
}
.side-nav-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(420px, 92vw);
  height: 100vh;
  z-index: 100;
  background: rgba(22,32,44,.98);
  border-left: 1px solid var(--border);
  box-shadow: -16px 0 50px rgba(0,0,0,.5);
  display: flex;
  flex-direction: column;
  transform: translateX(105%);
  transition: transform .32s cubic-bezier(.2,.8,.2,1), visibility .32s ease;
  visibility: hidden;
}
.side-nav-drawer.is-open {
  transform: translateX(0);
  visibility: visible;
}
.sn-head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
}
.sn-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
.sn-title .ico { width: 18px; height: 18px; color: var(--accent); }
.sn-close {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text-2);
  cursor: pointer;
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.sn-close:hover { color: var(--accent); border-color: var(--accent); background: rgba(0,208,126,.08); }
.sn-close .ico { width: 18px; height: 18px; }
.sn-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 20px;
}
.sn-search {
  position: relative;
  margin-bottom: 18px;
}
.sn-search .ico {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  color: var(--text-3);
  pointer-events: none;
}
.sn-search input {
  width: 100%;
  height: 44px;
  padding: 0 14px 0 38px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.05);
  color: var(--text);
  font-size: 14px;
  outline: none;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.sn-search input::placeholder { color: var(--text-3); }
.sn-search input:focus {
  border-color: var(--accent);
  background: rgba(0,208,126,.06);
  box-shadow: 0 0 0 3px rgba(0,208,126,.12);
}
.sn-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.sn-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.04);
  color: var(--text);
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease, transform .15s ease;
}
.sn-card:hover {
  border-color: rgba(0,208,126,.45);
  background: rgba(0,208,126,.09);
  transform: translateY(-2px);
}
.sn-card-ico {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(0,208,126,.12);
  color: var(--accent);
}
.sn-card-ico .ico { width: 22px; height: 22px; }
.sn-card-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.sn-card-label {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}
.sn-card-en {
  font-size: 11px;
  color: var(--text-3);
  letter-spacing: .02em;
}
.sn-card.is-hidden { display: none; }
.sn-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 32px 12px;
  color: var(--text-3);
  font-size: 13px;
}
.sn-divider {
  height: 1px;
  margin: 22px 0;
  background: linear-gradient(to right, transparent, rgba(255,255,255,.12) 20%, rgba(255,255,255,.12) 80%, transparent);
  border: none;
}
.sn-extras {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sn-extra {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: rgba(255,255,255,.03);
  color: var(--text);
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease, transform .15s ease;
}
.sn-extra:hover {
  border-color: rgba(0,208,126,.35);
  background: rgba(0,208,126,.07);
  transform: translateX(-2px);
}
.sn-extra-ico {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: rgba(0,208,126,.1);
  color: var(--accent);
}
.sn-extra-ico .ico { width: 18px; height: 18px; }
.sn-extra-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.sn-extra-label {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.sn-extra-sub {
  font-size: 12px;
  color: var(--text-3);
}
.sn-extra-arrow {
  flex: 0 0 auto;
  color: var(--text-3);
  transition: color .15s ease, transform .15s ease;
}
.sn-extra:hover .sn-extra-arrow {
  color: var(--accent);
  transform: translateX(2px);
}

/* ---------- 站内导航搜索结果 ---------- */
.sn-results { display: block; }
.sn-results[hidden] { display: none; }
.snr-group { margin-bottom: 16px; }
.snr-group-title {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
  color: var(--text-3); text-transform: uppercase;
  margin: 0 0 8px 4px;
}
.snr-list {
  display: flex; flex-direction: column; gap: 6px;
}
.sn-result {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.04);
  color: var(--text);
  text-decoration: none;
  transition: border-color .15s ease, background .15s ease, transform .1s ease;
}
.sn-result:hover {
  border-color: rgba(0,208,126,.4);
  background: rgba(0,208,126,.08);
  transform: translateX(-2px);
}
.snr-main {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.snr-term {
  font-size: 14px; font-weight: 700;
  color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.snr-sub {
  font-size: 12px; color: var(--text-2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.snr-cat {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(0,208,126,.12);
  color: var(--accent);
  font-size: 11px; font-weight: 700;
}
.snr-empty {
  text-align: center;
  padding: 36px 12px;
}
.snr-empty-title {
  font-size: 14px; font-weight: 700; color: var(--text);
  margin-bottom: 6px;
}
.snr-empty-tip {
  font-size: 12px; color: var(--text-3);
}
@media (max-width: 768px) {
  .side-nav-bookmark { display: none; }
}

/* ===== 机场字母/国家索引导航（P0 新增页） ===== */
.letter-nav, .country-nav {
  display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
  padding: 12px 0 6px; margin-bottom: 8px;
}
.letter-nav .ln, .country-nav .cn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 10px; min-width: 34px; justify-content: center;
  border: 1px solid var(--border); border-radius: 8px;
  background: var(--bg-card); color: var(--text);
  font-weight: 600; font-size: 13px; text-decoration: none;
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.letter-nav .ln b, .country-nav .cn b {
  font-family: var(--mono); font-size: 11px; font-weight: 600;
  color: var(--text-3);
}
.letter-nav .ln:hover, .country-nav .cn:hover { color: var(--accent); border-color: var(--accent); }
.letter-nav .ln.on, .country-nav .cn.on {
  color: #fff; background: var(--accent); border-color: var(--accent);
}

/* 国家索引页磁贴（/codes/airports/country/） */
.cn-tile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
  margin-top: 14px;
}
.cn-tile {
  display: flex; flex-direction: column; gap: 4px;
  padding: 13px 15px;
  background: var(--bg-card);
  border: 1px solid var(--border); border-radius: var(--radius);
  text-decoration: none;
  transition: transform .15s ease, border-color .15s, background .15s;
}
.cn-tile:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  background: var(--bg-card-2);
}
.cn-tile-name { font-size: 14.5px; font-weight: 700; color: var(--text); }
.cn-tile-meta { font-size: 12px; color: var(--text-3); display: flex; align-items: baseline; gap: 5px; flex-wrap: wrap; }
.cn-tile-meta b { font-family: var(--mono); font-size: 14px; font-weight: 700; color: var(--accent); }
.cn-tile-sample { font-family: var(--mono); font-size: 11.5px; color: var(--text-3); margin-left: 4px; }
.letter-nav .ln.on b, .country-nav .cn.on b { color: rgba(255,255,255,.85); }
.letter-nav .ln.off {
  color: var(--text-3); opacity: .45; cursor: default;
}
.letter-nav .ln.off:hover { color: var(--text-3); border-color: var(--border); }

/* ===== 代码库索引页快捷入口（P0） ===== */
.codes-quick { margin: 10px 0 2px; }
.codes-quick-row { display: flex; flex-wrap: wrap; gap: 8px; }
.cd-chip.cd-chip-off { opacity: .5; cursor: default; }
.cd-chip.cd-chip-off:hover { border-color: var(--border); background: var(--bg-card); transform: none; }

.cd-chip.cd-chip-accent {
  border-color: var(--accent); background: rgba(0,208,126,.08);
}
.cd-chip.cd-chip-accent b { color: var(--accent); }

/* ===== 机场页独特内容与枢纽专题页（P1） ===== */
.cd-ul { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cd-ul li { padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-card); line-height: 1.75; font-size: 14px; }
.cd-ul li b { color: var(--accent); }

/* ===== 机场页提示段（货代视角/说明） ===== */
.cd-note { margin-top: 8px; }
.cd-note p { margin: 6px 0 0; line-height: 1.8; font-size: 14px; color: var(--text-2); }
.cd-sub { font-size: 13px !important; color: var(--text-3) !important; }

/* 结构化货代正文（SVO 等富内容机场） */
.cd-note-structured { display: flex; flex-direction: column; gap: 12px; }
.cd-note-structured .cd-note-lead {
  margin: 8px 0 0; padding: 10px 14px; border-left: 3px solid var(--accent);
  background: var(--bg-2); font-size: 14px; line-height: 1.85; color: var(--text-1);
  text-align: justify; text-justify: inter-ideograph;
}
.cd-note-block { margin-top: 4px; }
.cd-note-block .cd-note-h3 {
  display: flex; align-items: center; gap: 6px; margin: 12px 0 6px;
  font-size: 15px; font-weight: 600; color: var(--text-1);
}
.cd-note-block .cd-note-h3 svg { color: var(--accent); }
.cd-note-block p { margin: 6px 0 0 4px; line-height: 1.85; font-size: 14px; color: var(--text-2); text-align: justify; text-justify: inter-ideograph; }
.cd-note-block p a { color: var(--accent); border-bottom: 1px dotted var(--accent); }
.cd-note-block ul.cd-note-list { margin: 8px 0 0 4px; padding-left: 0; list-style: none; }
.cd-note-block ul.cd-note-list li {
  position: relative; padding-left: 18px; margin: 6px 0;
  line-height: 1.85; font-size: 14px; color: var(--text-2);
  text-align: justify; text-justify: inter-ideograph;
}
.cd-note-block ul.cd-note-list li::before {
  content: ''; position: absolute; left: 2px; top: 11px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--accent);
}
.cd-note-block ul.cd-note-list li a { color: var(--accent); border-bottom: 1px dotted var(--accent); }

/* ============================================================
   机场三字代码页 · Landing 重构（.ap-*）
   全宽光晕着陆区 + 紧凑专业数据区
   ============================================================ */
.ap-page { padding-bottom: 8px; }

/* ---------- 全宽 Hero ---------- */
.ap-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  isolation: isolate;
  padding: 20px 0 30px;
  border-bottom: 1px solid rgba(50, 68, 92, 0.55);
  background-image:
    radial-gradient(ellipse 90% 82% at 20% 0%, rgba(0, 208, 126, 0.20), transparent 66%),
    radial-gradient(circle at 88% 8%, rgba(46, 163, 255, 0.15), transparent 46%),
    radial-gradient(ellipse 70% 44% at 50% 100%, rgba(0, 208, 126, 0.08), transparent 72%);
}
/* 极淡点阵纹理（不抢阅读） */
.ap-hero::before {
  content: "";
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: radial-gradient(rgba(232, 238, 245, 0.055) 1px, transparent 1px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(ellipse 78% 94% at 44% 6%, #000 24%, transparent 76%);
  mask-image: radial-gradient(ellipse 78% 94% at 44% 6%, #000 24%, transparent 76%);
}
/* 缓慢漂移光斑 */
.ap-hero::after {
  content: "";
  position: absolute; top: -14%; right: 3%;
  width: 460px; height: 460px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 208, 126, 0.13), transparent 70%);
  filter: blur(60px);
  animation: ap-drift 38s ease-in-out infinite alternate;
  z-index: 0; pointer-events: none;
}
@keyframes ap-drift {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(-70px, 50px) scale(1.12); }
}
.ap-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ap-wave { position: absolute; left: 0; bottom: 0; width: 100%; height: 72%; display: block; overflow: hidden; }
.ap-wave-g-1 path { fill: var(--accent); opacity: .10; }
.ap-wave-g-2 path { fill: #46A3FF; opacity: .14; }
.ap-wave-g-3 path { fill: #ffffff; opacity: .05; }
.ap-wave-g { animation: ap-wave-drift 32s linear infinite; will-change: transform; }
.ap-wave-g-2 { animation-duration: 46s; animation-direction: reverse; opacity: .85; }
.ap-wave-g-3 { animation-duration: 60s; }
@keyframes ap-wave-drift { from { transform: translateX(0); } to { transform: translateX(-2400px); } }
/* 机场沿用旧航线虚线（保留原 ap-route 样式，下面两行） */
.ap-route { position: absolute; left: 0; bottom: 0; width: 100%; height: 76%; display: block; }
.ap-route-line {
  fill: none; stroke: var(--accent); stroke-width: 1.2;
  stroke-dasharray: 5 12; opacity: .30;
  animation: ap-dash 30s linear infinite;
}
.ap-route-line-2 { stroke: #46A3FF; opacity: .16; animation-duration: 44s; animation-direction: reverse; }
.ap-route-line-3 { stroke: #ffffff; opacity: .10; animation-duration: 54s; }
@keyframes ap-dash { to { stroke-dashoffset: -340; } }

/* ---------- HERO 主题变体：船公司 sea（海蓝）/ 航空公司 sky（天紫） ---------- */
.ap-hero--sea {
  background-image:
    radial-gradient(ellipse 90% 82% at 20% 0%, rgba(77, 163, 255, 0.20), transparent 66%),
    radial-gradient(circle at 88% 8%, rgba(0, 208, 126, 0.12), transparent 46%),
    radial-gradient(ellipse 70% 44% at 50% 100%, rgba(77, 163, 255, 0.09), transparent 72%);
}
.ap-hero--sky {
  background-image:
    radial-gradient(ellipse 90% 82% at 20% 0%, rgba(155, 140, 255, 0.20), transparent 66%),
    radial-gradient(circle at 88% 8%, rgba(77, 163, 255, 0.14), transparent 46%),
    radial-gradient(ellipse 70% 44% at 50% 100%, rgba(155, 140, 255, 0.09), transparent 72%);
}
.ap-hero--sea::after { background: radial-gradient(circle, rgba(77, 163, 255, 0.14), transparent 70%); }
.ap-hero--sky::after { background: radial-gradient(circle, rgba(155, 140, 255, 0.14), transparent 70%); }

.ap-hero--sea .ap-badge { color: #6FB4FF; background: rgba(77, 163, 255, 0.10); border-color: rgba(77, 163, 255, 0.30); }
.ap-hero--sky .ap-badge { color: #B0A4FF; background: rgba(155, 140, 255, 0.10); border-color: rgba(155, 140, 255, 0.30); }
.ap-hero--sea .ap-h1-em { background: linear-gradient(92deg, #4DA3FF, #9AD0FF 88%); -webkit-background-clip: text; background-clip: text; }
.ap-hero--sky .ap-h1-em { background: linear-gradient(92deg, #9B8CFF, #C9C0FF 88%); -webkit-background-clip: text; background-clip: text; }
.ap-hero--sea .ap-code { background: rgba(77, 163, 255, 0.10); border-color: rgba(77, 163, 255, 0.28); color: #6FB4FF; }
.ap-hero--sky .ap-code { background: rgba(155, 140, 255, 0.10); border-color: rgba(155, 140, 255, 0.28); color: #B0A4FF; }
.ap-hero--sea .ap-search:focus-within { border-color: #4DA3FF; box-shadow: 0 0 0 3px rgba(77, 163, 255, 0.12); }
.ap-hero--sky .ap-search:focus-within { border-color: #9B8CFF; box-shadow: 0 0 0 3px rgba(155, 140, 255, 0.12); }
.ap-hero--sea .ap-search:focus-within .ico { color: #6FB4FF; }
.ap-hero--sky .ap-search:focus-within .ico { color: #B0A4FF; }
.ap-hero--sea .ap-hot a:hover { color: #6FB4FF; border-color: #4DA3FF; background: rgba(77, 163, 255, 0.10); }
.ap-hero--sky .ap-hot a:hover { color: #B0A4FF; border-color: #9B8CFF; background: rgba(155, 140, 255, 0.10); }
.ap-hero--sea .ap-cc-head b { color: #6FB4FF; }
.ap-hero--sky .ap-cc-head b { color: #B0A4FF; }
.ap-hero--sea .ap-code-card:hover { border-color: #4DA3FF; }
.ap-hero--sky .ap-code-card:hover { border-color: #9B8CFF; }
.ap-hero--sea .ap-wave-g-1 path { fill: #4DA3FF; }
.ap-hero--sea .ap-wave-g-2 path { fill: #00D07E; }
.ap-hero--sky .ap-route-line { stroke: #9B8CFF; opacity: .34; }
.ap-hero--sky .ap-route-line-2 { stroke: #4DA3FF; opacity: .20; }
.ap-hero--sky .ap-route-line-3 { stroke: #ffffff; opacity: .09; }

/* 铁路：橙 #F97316 主色 + 底部铁轨（枕木 = 粗虚线） */
.ap-hero--rail {
  background-image:
    radial-gradient(ellipse 90% 82% at 20% 0%, rgba(249, 115, 22, 0.20), transparent 66%),
    radial-gradient(circle at 88% 8%, rgba(255, 176, 92, 0.13), transparent 46%),
    radial-gradient(ellipse 70% 44% at 50% 100%, rgba(249, 115, 22, 0.09), transparent 72%);
}
.ap-hero--rail::after { background: radial-gradient(circle, rgba(249, 115, 22, 0.14), transparent 70%); }
.ap-hero--rail .ap-badge { color: #FFA153; background: rgba(249, 115, 22, 0.10); border-color: rgba(249, 115, 22, 0.32); }
.ap-hero--rail .ap-h1-em { background: linear-gradient(92deg, #F97316, #FDC08A 88%); -webkit-background-clip: text; background-clip: text; }
.ap-hero--rail .ap-code { background: rgba(249, 115, 22, 0.10); border-color: rgba(249, 115, 22, 0.30); color: #FFA153; }
.ap-hero--rail .ap-search:focus-within { border-color: #F97316; box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.12); }
.ap-hero--rail .ap-search:focus-within .ico { color: #FFA153; }
.ap-hero--rail .ap-hot a:hover, .ap-hero--rail .ap-hot-btn:hover { color: #FFA153; border-color: #F97316; background: rgba(249, 115, 22, 0.10); }
.ap-hero--rail .ap-cc-head b { color: #FFA153; }
.ap-hero--rail .ap-code-card:hover { border-color: #F97316; }
.ap-track { position: absolute; left: 0; bottom: 0; width: 100%; height: 76%; display: block; }
.ap-track-line {
  fill: none; stroke: #F97316; stroke-width: 1.2;
  stroke-dasharray: 5 12; opacity: .34;
  animation: ap-dash 30s linear infinite;
}
.ap-track-line-2 { stroke: #FFD9A8; opacity: .22; animation-duration: 44s; animation-direction: reverse; }
.ap-track-sleepers { stroke: #F97316; stroke-width: 15; stroke-dasharray: 3 26; opacity: .16; }
.ap-track-rail { stroke: #F97316; stroke-width: 1.6; opacity: .26; }

/* 仓库 HERO（theme=wh）：FBA 箱贴条码 + 扫描光束横扫，琥珀色系（区别于机场蓝 / 港口青 / 铁路橙） */
.ap-hero--wh {
  background-image:
    radial-gradient(ellipse 90% 82% at 20% 0%, rgba(245, 166, 35, 0.18), transparent 66%),
    radial-gradient(circle at 88% 8%, rgba(255, 205, 120, 0.12), transparent 46%),
    radial-gradient(ellipse 70% 44% at 50% 100%, rgba(245, 166, 35, 0.08), transparent 72%);
}
.ap-hero--wh::after { background: radial-gradient(circle, rgba(245, 166, 35, 0.13), transparent 70%); }
.ap-hero--wh .ap-badge { color: #FFC96B; background: rgba(245, 166, 35, 0.10); border-color: rgba(245, 166, 35, 0.32); }
.ap-hero--wh .ap-h1-em { background: linear-gradient(92deg, #F5A623, #FFE0A3 88%); -webkit-background-clip: text; background-clip: text; }
.ap-hero--wh .ap-code { background: rgba(245, 166, 35, 0.10); border-color: rgba(245, 166, 35, 0.30); color: #FFC96B; }
.ap-hero--wh .ap-search:focus-within { border-color: #F5A623; box-shadow: 0 0 0 3px rgba(245, 166, 35, 0.12); }
.ap-hero--wh .ap-search:focus-within .ico { color: #FFC96B; }
.ap-hero--wh .ap-hot a:hover, .ap-hero--wh .ap-hot button:hover { color: #FFC96B; border-color: #F5A623; background: rgba(245, 166, 35, 0.10); }
.ap-hero--wh .ap-cc-head b { color: #FFC96B; }
.ap-hero--wh .ap-code-card:hover { border-color: #F5A623; }
.ap-scan { position: absolute; left: 0; bottom: 0; width: 100%; height: 80%; display: block; }
.ap-scan-bars rect { fill: #F5A623; opacity: .15; }
.ap-scan-beam-g { animation: ap-scan-move 14s linear infinite; }
.ap-scan-beam { fill: rgba(255, 205, 120, 0.10); }
.ap-scan-edge { fill: #FFC96B; opacity: .45; }
.ap-scan-line {
  fill: none; stroke: #F5A623; stroke-width: 1.4;
  stroke-dasharray: 4 10; opacity: .30;
  animation: ap-dash 26s linear infinite;
}
@keyframes ap-scan-move {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(1280px); }
}
@media (prefers-reduced-motion: reduce) {
  .ap-scan-beam-g, .ap-scan-line { animation: none; }
}

/* HERO 热门查询 / 代码牌用 button 承载（未建详情页前点击只筛选表格） */
.ap-hot button {
  font-family: var(--mono); font-size: 12.5px; font-weight: 600;
  color: var(--text-2); background: rgba(43, 60, 82, 0.55);
  border: 1px solid var(--border); border-radius: 6px; padding: 3px 9px;
  display: inline-flex; align-items: baseline; gap: 5px; cursor: pointer;
  transition: color .15s, border-color .15s, background .15s;
}
.ap-hot button em { font-family: var(--font); font-style: normal; font-size: 11.5px; font-weight: 400; color: var(--text-3); }
a.ap-code-card,
button.ap-code-card {
  width: 100%; text-align: left; cursor: pointer;
  font-family: var(--font); color: var(--text);
  text-decoration: none;
}

/* 铁路车站表：说明列与「待核实」代码 */
.td-note { font-size: 12.5px; color: var(--text-2); line-height: 1.65; min-width: 260px; text-align: justify; text-justify: inter-ideograph; }
.td-code-none { color: var(--text-3) !important; font-size: 12px !important; font-weight: 400 !important; cursor: default; }

/* 浏览 chips 用 button 承载（点击后联动表格筛选），补回光标与字体 */
button.cn { cursor: pointer; font-family: var(--font); }
button.cn:hover { color: var(--accent); border-color: var(--accent); }

.ap-hero-in { position: relative; z-index: 1; }
.ap-crumbs { padding: 0; margin-bottom: 16px; }

.ap-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 292px;
  gap: 40px;
  align-items: start;
}

.ap-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; letter-spacing: .2px;
  color: var(--accent);
  background: rgba(0, 208, 126, 0.10);
  border: 1px solid rgba(0, 208, 126, 0.28);
  border-radius: 20px; padding: 4px 12px;
}
.ap-badge .ico { vertical-align: 0; }

.ap-hero h1 {
  margin-top: 13px;
  font-size: 46px; font-weight: 800;
  letter-spacing: -1px; line-height: 1.12;
}
.ap-h1-em {
  background: linear-gradient(92deg, var(--accent), #6BE9B4 88%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.ap-desc {
  margin-top: 13px;
  font-size: 14.5px; line-height: 1.85; color: var(--text-2);
  text-align: justify; text-justify: inter-ideograph;
}
.ap-desc b { color: var(--text); font-weight: 700; font-family: var(--mono); font-size: 15px; }
.ap-code { display: inline-block; padding: 0 6px; margin: 0 1px; background: rgba(0, 208, 126, 0.10); border: 1px solid rgba(0, 208, 126, 0.28); border-radius: 4px; font-family: var(--mono); font-size: 13.5px; color: var(--accent); font-weight: 600; }

/* 大搜索框 */
.ap-search {
  margin-top: 22px;
  display: flex; align-items: center; gap: 11px;
  background: rgba(26, 38, 52, 0.72);
  border: 1px solid var(--border-light);
  border-radius: 12px; padding: 13px 16px;
  color: var(--text-3);
  transition: border-color .18s, box-shadow .18s, background .18s;
  backdrop-filter: blur(6px);
}
.ap-search:focus-within {
  border-color: var(--accent);
  background: rgba(26, 38, 52, 0.93);
  box-shadow: 0 0 0 3px rgba(0, 208, 126, 0.12);
}
.ap-search:focus-within .ico { color: var(--accent); }
.ap-search input {
  flex: 1; min-width: 0; background: none; border: none; outline: none;
  color: var(--text); font-size: 15.5px; font-family: var(--font);
}
.ap-search input::placeholder { color: var(--text-3); }
.ap-search input::-webkit-search-cancel-button { filter: invert(.6); cursor: pointer; }
.ap-kbd { transition: opacity .18s; }
.ap-search:focus-within .ap-kbd { opacity: 0; }

/* 热门代码 */
.ap-hot { margin-top: 13px; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.ap-hot-t { font-size: 12.5px; color: var(--text-3); margin-right: 2px; }
.ap-hot a {
  font-family: var(--mono); font-size: 12.5px; font-weight: 600;
  color: var(--text-2);
  background: rgba(43, 60, 82, 0.55);
  border: 1px solid var(--border);
  border-radius: 6px; padding: 3px 9px;
  display: inline-flex; align-items: baseline; gap: 5px;
  transition: color .15s, border-color .15s, background .15s;
}
.ap-hot a em { font-family: var(--font); font-style: normal; font-size: 11.5px; font-weight: 400; color: var(--text-3); }
.ap-hot a:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
/* 航线服务代码页（lanes）热门查询标签较多，字号整体略收一档（scoped，不影响机场/港口等页） */
.lanes-page .ap-hot { gap: 6px; }
.lanes-page .ap-hot-t { font-size: 11.5px; }
.lanes-page .ap-hot a { font-size: 11.5px; padding: 2px 8px; }
.lanes-page .ap-hot a em { font-size: 10.5px; }

/* 右侧货运枢纽代码牌（静态 3 张） */
.ap-hero-side { display: flex; flex-direction: column; gap: 8px; }
.ap-side-t {
  font-size: 12px; color: var(--text-3); letter-spacing: .3px; padding: 0 2px;
}
.ap-code-card {
  display: flex; flex-direction: column; gap: 2px; justify-content: center;
  background: rgba(38, 53, 73, 0.78);
  border: 1px solid var(--border-light);
  border-radius: 10px; padding: 13px 15px;
  backdrop-filter: blur(8px);
  transition: transform .18s ease, border-color .18s, box-shadow .18s, background .18s;
}
.ap-code-card:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  background: rgba(38, 53, 73, 0.96);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.30);
}
.ap-cc-head { display: flex; align-items: baseline; gap: 9px; }
.ap-cc-head b {
  font-family: var(--mono); font-size: 25px; font-weight: 700;
  letter-spacing: 1.6px; color: var(--accent); line-height: 1.15;
}
.ap-cc-head i { font-family: var(--mono); font-style: normal; font-size: 11.5px; color: var(--text-3); letter-spacing: .8px; }
.ap-cc-name { display: block; margin-top: 4px; font-size: 13.5px; font-weight: 600; color: var(--text); }
.ap-cc-meta { display: block; margin-top: 1px; font-size: 12px; color: var(--text-3); }

/* ---------- 快捷入口 ---------- */
.ap-quick { margin-top: 22px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ap-quick-card {
  display: flex; align-items: center; gap: 13px;
  padding: 15px 16px;
  background: var(--bg-card);
  border: 1px solid var(--border); border-radius: var(--radius);
  color: var(--text-3);
  transition: transform .16s ease, border-color .16s, background .16s, color .16s;
}
.ap-quick-card:hover { transform: translateY(-2px); border-color: var(--accent); background: var(--bg-card-2); color: var(--accent); }
.ap-qc-ico {
  width: 38px; height: 38px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: 9px; background: var(--accent-soft); color: var(--accent);
}
.ap-qc-body { flex: 1; min-width: 0; }
.ap-qc-body b { display: block; font-size: 14.5px; font-weight: 700; color: var(--text); }
.ap-qc-body span { display: block; margin-top: 1px; font-size: 12.5px; color: var(--text-3); }

/* ---------- 浏览区（字母 / 大洲 / 国家） ---------- */
.ap-browse { margin-top: 22px; display: flex; flex-direction: column; gap: 12px; }
.ap-browse-block {
  background: var(--bg-card);
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 13px 16px 8px;
}
.ap-browse-t {
  display: flex; align-items: center; gap: 7px;
  font-size: 13.5px; font-weight: 700; color: var(--text);
  margin-bottom: 2px;
}
.ap-browse-t .ico { color: var(--accent); }
.ap-browse-block .letter-nav,
.ap-browse-block .country-nav { padding: 8px 0 4px; margin-bottom: 4px; }
.ap-browse-block .letter-nav .ln,
.ap-browse-block .country-nav .cn { background: var(--bg-deep); border-color: var(--border-light); }
.ap-browse-block .letter-nav .ln:hover,
.ap-browse-block .country-nav .cn:hover { background: var(--accent-soft); }

.ap-map-block { margin-top: 20px; }
.ap-map-block .ap-browse-t { margin-bottom: 0; }
.ap-map-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 12px; flex-wrap: wrap;
}
.ap-map-body {
  display: flex; gap: 12px; align-items: stretch;
  position: relative;
}
.ap-map-stage { flex: 1; min-width: 0; }
.ap-map-block .cd-map { height: 620px; border-radius: 10px; border: 1px solid var(--border); }
.ap-map-block .cd-map-sec { background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px 0; }

/* ---------- 地图左侧浮动区域树 ---------- */
.ap-side-tree {
  width: 260px; flex-shrink: 0;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 10px;
  display: flex; flex-direction: column;
  max-height: 620px;
  overflow: hidden;
}
.ap-tree-h {
  padding: 12px 14px 8px;
  border-bottom: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 2px;
}
.ap-tree-ht {
  font-size: 13px; font-weight: 600;
  color: var(--text);
  display: inline-flex; align-items: center; gap: 6px;
}
.ap-tree-hs { font-size: 11px; color: var(--text-3); }
.ap-tree-search {
  position: relative;
  padding: 8px 12px;
  border-bottom: 1px solid var(--border);
}
.ap-tree-search svg {
  position: absolute; left: 22px; top: 50%;
  transform: translateY(-50%);
  color: var(--text-3);
}
.ap-tree-search input {
  width: 100%;
  background: var(--bg-deep);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 5px 10px 5px 28px;
  font-size: 12px;
  color: var(--text);
  outline: none;
}
.ap-tree-search input:focus { border-color: var(--accent); }
.ap-tree {
  flex: 1; overflow-y: auto;
  list-style: none; margin: 0; padding: 6px 0;
}
.ap-tree::-webkit-scrollbar { width: 5px; }
.ap-tree::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }

.ap-tree-r { list-style: none; }
.ap-tree-r-t {
  width: 100%;
  display: flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  background: none; border: 0; cursor: pointer;
  font-size: 13px; color: var(--text);
  text-align: left;
  transition: background .12s ease;
}
.ap-tree-r-t:hover { background: var(--bg-card-2); }
.ap-tree-r-t.is-active { color: var(--accent); background: var(--bg-card-2); }
.ap-tree-r-caret {
  display: inline-flex; transition: transform .2s ease;
  color: var(--text-3);
}
/* 展开箭头用 CSS 三角（原为内联 SVG，94 个国家节点累计 30KB+） */
.ap-tree-r-caret::before {
  content: '';
  display: block;
  width: 0; height: 0;
  border-left: 5px solid currentColor;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}
.ap-tree-r.is-open .ap-tree-r-caret { transform: rotate(90deg); color: var(--accent); }
.ap-tree-r-n { flex: 1; font-weight: 600; }
.ap-tree-r-c {
  font-size: 11px; color: var(--text-3);
  background: var(--bg-deep);
  padding: 1px 7px;
  border-radius: 999px;
}
.ap-tree-r.is-open .ap-tree-r-c { color: var(--accent); background: rgba(0, 208, 126, .12); }
.ap-tree-cn {
  list-style: none; margin: 0; padding: 0 0 4px 0;
  max-height: 0; overflow: hidden;
  transition: max-height .25s ease;
}
.ap-tree-r.is-open .ap-tree-cn { max-height: 2000px; }
.ap-tree-cn-li { list-style: none; }
.ap-tree-cn-a {
  display: flex; align-items: center; gap: 6px;
  padding: 5px 14px 5px 32px;
  font-size: 12px; color: var(--text-2);
  text-decoration: none;
  cursor: pointer;
  border-left: 2px solid transparent;
  transition: all .12s ease;
}
.ap-tree-cn-a:hover {
  color: var(--accent);
  background: var(--bg-card-2);
  border-left-color: var(--accent);
}
.ap-tree-cn-a.is-active {
  color: var(--accent);
  border-left-color: var(--accent);
  background: var(--bg-card-2);
}
.ap-tree-cn-n { flex: 1; }
.ap-tree-cn-c {
  font-size: 10.5px; color: var(--text-3);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.ap-tree-cn-codes {
  display: block;
  padding: 0 14px 6px 32px;
  font-size: 10.5px;
  color: var(--text-3);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: .3px;
}

/* 机场代码列表（第三级） */
.ap-tree-cn-caret {
  display: inline-flex;
  transition: transform .2s ease;
  color: var(--text-3);
  width: 12px; flex-shrink: 0;
}
.ap-tree-cn-caret::before {
  content: '';
  display: block;
  margin: 0 auto;
  width: 0; height: 0;
  border-left: 4.5px solid currentColor;
  border-top: 3.5px solid transparent;
  border-bottom: 3.5px solid transparent;
}
.ap-tree-cn-li.is-open .ap-tree-cn-caret { transform: rotate(90deg); color: var(--accent); }
.ap-tree-ap {
  list-style: none; margin: 0; padding: 0 0 4px 0;
  max-height: 0; overflow: hidden;
  transition: max-height .25s ease;
}
.ap-tree-cn-li.is-open .ap-tree-ap { max-height: 2000px; }
.ap-tree-ap-li { list-style: none; }
.ap-tree-ap-a {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 14px 4px 50px;
  font-size: 11.5px; color: var(--text-2);
  text-decoration: none;
  cursor: pointer;
  border-left: 2px solid transparent;
  transition: all .12s ease;
}
.ap-tree-ap-a:hover {
  color: var(--accent);
  background: var(--bg-card-2);
  border-left-color: var(--accent);
}
.ap-tree-ap-a b {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px; font-weight: 700;
  color: var(--accent);
  min-width: 32px;
}
.ap-tree-ap-c {
  font-size: 11px; color: var(--text-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ap-tree-cn-li.is-hidden { display: none; }
.ap-tree-r.is-hidden { display: none; }

/* ---------- 机场 marker（飞机图标） ---------- */
.ap-mk-wrap { background: none !important; border: 0 !important; }
.ap-mk {
  width: 24px; height: 24px;
  background: var(--accent);
  color: #fff;
  border: 2.5px solid #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,.35);
  transition: transform .15s ease, box-shadow .15s ease;
}
.ap-mk:hover {
  transform: scale(1.25);
  box-shadow: 0 4px 12px rgba(0, 208, 126, .5);
  z-index: 1000;
}
.ap-mk-dim {
  opacity: .18 !important;
  filter: grayscale(.6);
  transform: scale(.8);
}
.ap-mk svg { display: block; }

/* ---------- cluster 醒目数字 ---------- */
.ap-cl-wrap { background: none !important; border: 0 !important; }
.ap-cl {
  background: linear-gradient(135deg, #00D07E 0%, #00B36A 100%);
  color: #fff;
  border: 3px solid #fff;
  border-radius: 50%;
  display: flex !important; align-items: center; justify-content: center;
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(0, 208, 126, .45),
              0 0 0 4px rgba(0, 208, 126, .12);
  text-shadow: 0 1px 2px rgba(0, 0, 0, .25);
  line-height: 1;
}
.ap-cl b { display: block; }
.ap-cl:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 20px rgba(0, 208, 126, .65),
              0 0 0 6px rgba(0, 208, 126, .18);
}

/* 大洲快捷 chip（地图头部） */
.region-chips {
  display: inline-flex; flex-wrap: wrap; gap: 6px;
}
.region-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text-2);
  font-size: 12.5px;
  cursor: pointer;
  transition: all .18s ease;
}
.region-chip:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: var(--bg-card-2);
}
.region-chip b {
  font-size: 11px; font-weight: 600;
  padding: 1px 6px;
  background: var(--bg-deep);
  border-radius: 999px;
  color: var(--text-3);
}
.region-chip.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #0a1f17;
}
.region-chip.is-active b {
  background: rgba(10, 31, 23, .18);
  color: #0a1f17;
}
.region-chip.is-static { text-decoration: none; }
.region-chip.is-static:hover { text-decoration: none; }

/* 地图 popup 卡片化 */
.mp-popup .leaflet-popup-content-wrapper {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .15);
  padding: 0;
}
.mp-popup .leaflet-popup-content { margin: 10px 14px; }
.mp-popup .leaflet-popup-tip { background: var(--bg-card); }
.mp-pop { display: flex; flex-direction: column; gap: 3px; min-width: 180px; }
.mp-pop-code {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 14px; font-weight: 700;
  color: var(--accent);
  letter-spacing: .5px;
}
.mp-pop-name { font-size: 12.5px; color: var(--text); font-weight: 500; }
.mp-pop-city { font-size: 11.5px; color: var(--text-3); }
.mp-pop-link {
  margin-top: 5px; font-size: 11.5px;
  color: var(--accent); text-decoration: none;
  display: inline-flex; align-items: center; gap: 3px;
}
.mp-pop-link:hover { text-decoration: underline; }

/* ---------- 机场代码专业打印页（优化 6） ---------- */
.pp { padding: 18px 0 60px; }
.pp-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; margin-bottom: 18px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px;
  position: sticky; top: 64px; z-index: 10;
}
.pp-toolbar-l { display: flex; flex-direction: column; gap: 2px; }
.pp-tb-t { font-size: 14px; font-weight: 600; color: var(--text); display: inline-flex; align-items: center; gap: 6px; }
.pp-tb-sub { font-size: 12px; color: var(--text-3); }
.pp-tb-sub b { color: var(--accent); font-weight: 600; }
.pp-toolbar-r { display: flex; gap: 8px; }
.pp-btn {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12.5px; color: var(--text-2);
  background: var(--bg-card-2); border: 1px solid var(--border);
  padding: 6px 12px; border-radius: 6px; cursor: pointer;
  text-decoration: none; font-family: inherit;
  transition: all .15s;
}
.pp-btn:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
.pp-btn-print { background: var(--accent); color: #fff; border-color: var(--accent); }
.pp-btn-print:hover { background: #00b56a; color: #fff; }
.pp-h1 {
  width: 100%;
  margin: 0 0 14px; padding: 0 0 10px;
  font-size: 21px; font-weight: 700; line-height: 1.35;
  letter-spacing: .3px; color: var(--text);
  border-bottom: 2px solid var(--accent);
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}
/* 主标题下方的「来源 · 货代术语库 + 网址链接」一行：放大撑满宽度、显著加深、悬停高亮
   ——解决打印/另存 PDF 时品牌识别缺失的问题；屏幕模式可点击回在线版。 */
.pp-h1-brand {
  width: 100%;
  margin: 0 0 16px;
  padding: 10px 14px;
  font-size: 13px; line-height: 1.5;
  color: var(--text-2);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 6px;
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
}
.pp-h1-brand b { color: var(--text); font-weight: 700; letter-spacing: .2px; }
.pp-h1-brand-l { color: var(--text-3); }
.pp-h1-brand-url-sep { color: var(--text-3); margin: 0 2px; }
.pp-h1-brand-url {
  color: var(--accent); text-decoration: none;
  font-family: var(--mono); font-size: 12.5px;
}
.pp-h1-brand-url:hover { text-decoration: underline; }
.pp-h1 svg { color: var(--accent); flex-shrink: 0; align-self: center; }
.pp-h1-sub { font-size: 12.5px; font-weight: 400; letter-spacing: 0; color: var(--text-3); }
.pp-pages { display: flex; flex-direction: column; gap: 18px; align-items: center; }
.pp-region {
  width: 100%;
  display: flex; flex-direction: column; gap: 16px;
  align-items: center;
}
.pp-region-t {
  width: 100%;
  margin: 18px 0 0;
  padding: 8px 16px;
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  background: linear-gradient(135deg, var(--bg-card), var(--bg-card-2));
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: 6px;
  display: flex; align-items: center; gap: 8px;
}
.pp-region-t svg { color: var(--accent); flex-shrink: 0; }
.pp-page {
  width: 100%;
  background: #fff; color: #000;
  border: 1px solid #d4d4d4; border-radius: 4px;
  padding: 22px 24px 18px;        /* 屏幕模式用 px，比 14mm 在宽屏下更舒服 */
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.pp-head {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: 11px; color: #555; padding-bottom: 6px; margin-bottom: 8px;
  border-bottom: 1px solid #ccc;
}
.pp-head-l { font-weight: 600; }
.pp-tbl { width: 100%; border-collapse: collapse; }
.pp-tbl thead th {
  text-align: left; font-size: 11px; font-weight: 700; color: #000;
  padding: 6px 8px; border-bottom: 1.5px solid #000;
  background: #f6f6f6;
}
.pp-tbl tbody td {
  font-size: 12.5px; color: #000;
  padding: 6px 8px; border-bottom: 1px solid #ddd;
  vertical-align: middle;
}
.pp-iata { width: 12%; font-family: var(--mono); font-weight: 700; letter-spacing: .5px; }
.pp-icao { width: 13%; font-family: var(--mono); color: #444; }
.pp-city-cn { width: 18%; }
.pp-city-en { width: 22%; color: #555; font-size: 11.5px; }
.pp-country { width: 17%; font-size: 12px; }
.pp-type { width: 18%; font-size: 11.5px; color: #555; }
/* 兼容旧类 */
.pp-city { width: 50%; }
.pp-city .pp-en { display: block; font-size: 10.5px; color: #777; margin-top: 1px; }
.pp-foot {
  margin-top: 14px; padding-top: 8px;
  font-size: 11.5px; color: #222; text-align: center;
  border-top: 1.5px solid #000;
}
.pp-foot b { color: #000; font-weight: 700; letter-spacing: .2px; }
.pp-foot a { color: #222; text-decoration: none; border-bottom: 1px dotted #666; }
.pp-foot a:hover { color: var(--accent); border-bottom-color: var(--accent); }

@media print {
  @page { size: A4 landscape; margin: 10mm; }
  html, body { background: #fff !important; color: #000 !important; }
  /* 打印页工具栏 / 全站导航 / footer / fab 全部隐藏 */
  .pp-toolbar, .topbar, .site-foot, footer, .crumbs, .fab-group, aside, .sidebar,
  nav, .nav, .brand-in-nav, .no-print, script + header {
    display: none !important;
  }
  /* 大洲小标题打印时保留，但缩小字号 */
  .pp-region-t {
    background: #fff !important;
    color: #000 !important;
    border: none !important;
    border-bottom: 1px solid #000 !important;
    border-radius: 0 !important;
    padding: 4px 0 !important;
    font-size: 12px !important;
    margin: 6mm 0 4mm !important;
    box-shadow: none !important;
    page-break-after: avoid;
  }
  .pp-region-t svg { display: none !important; }
  /* 打印页主标题：打印输出自带标题，装订后一眼可辨；A4 横版余量充足，不挤占表格分页 */
  .pp-h1 {
    color: #000 !important;
    border-bottom: 1.5px solid #000 !important;
    font-size: 14pt !important;
    padding: 0 0 3mm !important;
    margin: 0 auto 4mm !important;
    page-break-after: avoid; break-after: avoid;
  }
  .pp-h1 svg { display: none !important; }
  .pp-h1-sub { color: #444 !important; font-size: 9pt !important; }
  /* 打印模式：H1 下品牌行转换为「黑底白字」强标识条，每张打印纸均能看到来源 + 网址；无边框、不抢主表空间 */
  .pp-h1-brand {
    background: #000 !important;
    color: #fff !important;
    border: none !important; border-radius: 0 !important;
    padding: 3mm 4mm !important; margin: 0 0 5mm !important;
    font-size: 11pt !important;
    justify-content: center;
    page-break-after: avoid; break-after: avoid;
  }
  .pp-h1-brand b { color: #fff !important; }
  .pp-h1-brand-l, .pp-h1-brand-url-sep { color: #ccc !important; }
  .pp-h1-brand-url { color: #fff !important; font-size: 10.5pt !important; text-decoration: underline !important; }
  .pp-page {
    box-shadow: none !important; border: none !important;
    padding: 0 !important; margin: 0 !important;
    max-width: 100% !important;
    page-break-after: always;
  }
  .pp-page:last-child { page-break-after: auto; }
  .pp-tbl tbody td { padding: 4.5px 8px; }
  .pp-foot { color: #000 !important; font-size: 9pt !important; border-top: 1px solid #000 !important; padding-top: 3mm !important; margin-top: 5mm !important; }
  .pp-foot b { color: #000 !important; }
  .pp-foot a { color: #000 !important; border-bottom: 1px solid #000 !important; }
}

/* ---------- 数据表格（本页微调） ---------- */
.ap-page .tbl-box { margin-top: 18px; box-shadow: var(--shadow); }
.ap-page .tbl tbody tr { transition: background .12s; }
.ap-page .tbl tbody tr:hover { background: var(--bg-hover); }
.ap-page .tbl tbody td { padding-top: 8px; padding-bottom: 8px; }
.ap-page .tbl-toolbar { padding: 12px 16px; }
.ap-page .tbl-meta { padding: 11px 16px; font-size: 12.5px; }

/* ---------- 响应式 ---------- */
@media (max-width: 1080px) {
  .ap-hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .ap-hero-side { flex-direction: row; flex-wrap: wrap; }
  .ap-side-t { width: 100%; }
  .ap-code-card { flex: 1 1 220px; }
}
@media (max-width: 860px) {
  .ap-hero { padding: 14px 0 24px; }
  .ap-hero h1 { font-size: 34px; letter-spacing: -.6px; }
  .ap-quick { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .ap-hero h1 { font-size: 28px; letter-spacing: -.4px; }
  .ap-desc { font-size: 13.5px; line-height: 1.8; }
  .ap-search { padding: 11px 13px; margin-top: 18px; }
  .ap-kbd { display: none; }
  .ap-code-card { flex: 1 1 100%; }
  .ap-browse-block { padding: 12px 13px 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .ap-hero::after, .ap-route-line, .ap-wave-g { animation: none; }
  .ap-code-card:hover, .ap-quick-card:hover { transform: none; }
}

/* ============================================================
   HS 编码章节主页面（/codes/hs/）· Landing 重构（.hs-*）
   对齐 ap-* Landing 版式：全宽光晕 + 紧凑专业数据区
   ============================================================ */
.hs-page { padding-bottom: 8px; }

/* ---------- 全宽 Hero ---------- */
.hs-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  isolation: isolate;
  padding: 20px 0 30px;
  border-bottom: 1px solid rgba(50, 68, 92, 0.55);
  background-image:
    radial-gradient(ellipse 90% 82% at 16% 0%, rgba(0, 208, 126, 0.18), transparent 66%),
    radial-gradient(circle at 92% 10%, rgba(46, 163, 255, 0.14), transparent 48%),
    radial-gradient(ellipse 70% 44% at 50% 100%, rgba(0, 208, 126, 0.08), transparent 72%);
}
.hs-hero::before {
  content: "";
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: radial-gradient(rgba(232, 238, 245, 0.055) 1px, transparent 1px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(ellipse 78% 94% at 44% 6%, #000 24%, transparent 76%);
  mask-image: radial-gradient(ellipse 78% 94% at 44% 6%, #000 24%, transparent 76%);
}
.hs-hero::after {
  content: "";
  position: absolute; top: -14%; right: 3%;
  width: 480px; height: 480px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 208, 126, 0.11), transparent 70%);
  filter: blur(60px);
  animation: hs-drift 40s ease-in-out infinite alternate;
  z-index: 0; pointer-events: none;
}
@keyframes hs-drift {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(-60px, 56px) scale(1.12); }
}
.hs-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.hs-barcode {
  position: absolute; left: -20px; bottom: -10px; width: 110%; height: 64%;
  display: block; opacity: .55;
}
.hs-bc-line { fill: currentColor; }
.hs-bc-line:nth-child(3n) { opacity: .35; }
.hs-bc-line:nth-child(5n) { opacity: .6; }

.hs-hero-in { position: relative; z-index: 1; }
.hs-crumbs { padding: 0; margin-bottom: 16px; }

.hs-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 312px;
  gap: 40px;
  align-items: start;
}

.hs-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; letter-spacing: .2px;
  color: #00D07E;
  background: rgba(0, 208, 126, 0.10);
  border: 1px solid rgba(0, 208, 126, 0.28);
  border-radius: 20px; padding: 4px 12px;
}
.hs-badge .ico { vertical-align: 0; }

.hs-hero h1 {
  margin-top: 13px;
  font-size: 46px; font-weight: 800;
  letter-spacing: -1px; line-height: 1.12;
}
.hs-h1-em {
  background: linear-gradient(92deg, #00D07E, #34D399 88%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.hs-desc {
  margin-top: 13px;
  font-size: 14.5px; line-height: 1.85; color: var(--text-2);
  text-align: justify; text-justify: inter-ideograph;
}
.hs-desc b { color: var(--text); font-weight: 700; font-family: var(--mono); font-size: 15px; }
.hs-code { display: inline-block; padding: 0 6px; margin: 0 1px; background: rgba(0, 208, 126, 0.10); border: 1px solid rgba(0, 208, 126, 0.28); border-radius: 4px; font-family: var(--mono); font-size: 13.5px; color: #00D07E; font-weight: 600; }

/* 大搜索框 */
.hs-search {
  margin-top: 22px;
  display: flex; align-items: center; gap: 11px;
  background: rgba(26, 38, 52, 0.72);
  border: 1px solid var(--border-light);
  border-radius: 12px; padding: 13px 16px;
  color: var(--text-3);
  transition: border-color .18s, box-shadow .18s, background .18s;
  backdrop-filter: blur(6px);
}
.hs-search:focus-within {
  border-color: #00D07E;
  background: rgba(26, 38, 52, 0.93);
  box-shadow: 0 0 0 3px rgba(0, 208, 126, 0.12);
}
.hs-search:focus-within .ico { color: #00D07E; }
.hs-search input {
  flex: 1; min-width: 0; background: none; border: none; outline: none;
  color: var(--text); font-size: 15.5px; font-family: var(--font);
}
.hs-search input::placeholder { color: var(--text-3); }
.hs-search input::-webkit-search-cancel-button { filter: invert(.6); cursor: pointer; }
.hs-kbd { transition: opacity .18s; }
.hs-search:focus-within .hs-kbd { opacity: 0; }

/* 热门章 chips */
.hs-hot { margin-top: 13px; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.hs-hot-t { font-size: 12.5px; color: var(--text-3); margin-right: 2px; }
.hs-hot a {
  font-family: var(--mono); font-size: 12.5px; font-weight: 600;
  color: var(--text-2);
  background: rgba(43, 60, 82, 0.55);
  border: 1px solid var(--border);
  border-radius: 6px; padding: 3px 9px;
  display: inline-flex; align-items: baseline; gap: 5px;
  transition: color .15s, border-color .15s, background .15s;
}
.hs-hot a em { font-family: var(--font); font-style: normal; font-size: 11.5px; font-weight: 400; color: var(--text-3); }
.hs-hot a:hover { color: #00D07E; border-color: #00D07E; background: rgba(0, 208, 126, 0.10); }

/* 右侧大章代码牌（静态 3 张） */
.hs-hero-side { display: flex; flex-direction: column; gap: 8px; }
.hs-side-t {
  font-size: 12px; color: var(--text-3); letter-spacing: .3px; padding: 0 2px;
}
.hs-ch-card {
  display: flex; flex-direction: column; gap: 2px; justify-content: center;
  background: rgba(38, 53, 73, 0.78);
  border: 1px solid var(--border-light);
  border-radius: 10px; padding: 13px 15px;
  backdrop-filter: blur(8px);
  transition: transform .18s ease, border-color .18s, box-shadow .18s, background .18s;
}
.hs-ch-card:hover {
  transform: translateY(-2px);
  border-color: #00D07E;
  background: rgba(38, 53, 73, 0.96);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.30);
}
.hs-cc-head { display: flex; align-items: baseline; gap: 9px; }
.hs-cc-head b {
  font-family: var(--mono); font-size: 28px; font-weight: 700;
  letter-spacing: 1.6px; color: #00D07E; line-height: 1.15;
}
.hs-cc-head i { font-family: var(--font); font-style: normal; font-size: 11.5px; color: var(--text-3); letter-spacing: .4px; }
.hs-cc-name { display: block; margin-top: 4px; font-size: 14px; font-weight: 600; color: var(--text); }
.hs-cc-meta { display: block; margin-top: 1px; font-size: 12px; color: var(--text-3); }

/* ---------- 数字概览条 ---------- */
/* HS 口语词「常见叫法」条 */
.hs-syn {
  margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  font-size: 13px; color: var(--text-3);
}
.hs-syn b { color: var(--accent); font-weight: 600; margin-right: 2px; }
.hs-syn .ico { flex: none; }
.hs-syn-chip {
  padding: 3px 10px; border: 1px solid var(--border); border-radius: 999px;
  background: var(--bg-card); color: var(--text-2);
}

.hs-stats {
  margin-top: 22px;
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 10px; overflow: hidden;
}
.hs-stat {
  background: var(--bg-card);
  padding: 16px 18px;
  display: flex; flex-direction: column; gap: 4px;
}
.hs-stat-n {
  font-family: var(--mono);
  font-size: 26px; font-weight: 800; color: var(--text);
  letter-spacing: -.5px; line-height: 1.1;
}
.hs-stat-n em { font-style: normal; font-size: 13px; color: var(--text-3); font-weight: 500; margin-left: 2px; }
.hs-stat-t {
  font-size: 12px; color: var(--text-3); letter-spacing: .2px;
}

/* HS 4 位品目索引 chip（章页与品目页共用，跨 chapter/heading 页内部链接） */
.hs-hd-wrap { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; }
.hs-hd-mini {
  display: inline-flex; align-items: baseline; gap: 5px;
  font-size: 12.5px; padding: 5px 11px;
  border: 1px solid var(--border); border-radius: 20px;
  color: var(--text-2); background: var(--bg-card);
  transition: border-color .12s, color .12s, background .12s;
}
.hs-hd-mini b { font-family: var(--mono); font-weight: 600; color: var(--accent); }
.hs-hd-mini:hover { color: var(--accent); border-color: var(--accent); }
.hs-hd-mini.is-cur { color: #0D1B2A; background: var(--accent); border-color: var(--accent); font-weight: 700; }

/* HS 品目页概览块：由该品目下全部 10 位编码聚合监管/税率/申报要素，每页内容不同 */
.hs-hd-overview { margin: 22px 0 28px; }
.hs-hd-context { margin: 0 0 28px; }
.hs-ov-lead { font-size: 14px; line-height: 1.8; color: var(--text-2); margin: 0 0 16px; text-align: justify; text-justify: inter-ideograph; }
.hs-ctx-lead { font-size: 14px; line-height: 1.8; color: var(--text-2); margin: 0; text-align: justify; text-justify: inter-ideograph; }
.hs-ov-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hs-ov-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; }
.hs-ov-card h3 { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; margin: 0 0 12px; color: var(--text); }
.hs-ov-card h3 svg { color: var(--accent); flex-shrink: 0; }
.hs-ov-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.hs-ov-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; padding: 4px 10px; border: 1px solid var(--border-light); border-radius: 20px; background: var(--bg-2); color: var(--text-2); }
.hs-ov-tag b { font-family: var(--mono); font-weight: 700; color: var(--accent); }
.hs-ov-tag i { max-width: 86px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-ov-tag em { font-size: 11px; color: var(--text-3); font-style: normal; }
.hs-ov-tag.is-zero { opacity: .7; }
.hs-ov-list, .hs-ov-warn { list-style: none; margin: 0; padding: 0; }
.hs-ov-list li, .hs-ov-warn li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--border-light); font-size: 13px; color: var(--text-2); }
.hs-ov-list li:last-child, .hs-ov-warn li:last-child { border-bottom: none; }
.hs-ov-list li b { color: var(--text); font-weight: 600; }
.hs-ov-warn li { justify-content: flex-start; gap: 8px; }
.hs-ov-warn li.is-warn { color: var(--accent); }
.hs-ov-empty { font-size: 13px; color: var(--text-3); margin: 0; }
@media (max-width: 720px) {
  .hs-ov-grid { grid-template-columns: 1fr; }
  .hs-ov-tag i { max-width: 120px; }
}
.hs-hd-mini.is-cur b { color: #0D1B2A; }

/* ---------- 快捷入口 ---------- */
.hs-quick { margin-top: 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.hs-quick-card {
  display: flex; align-items: center; gap: 13px;
  padding: 15px 16px;
  background: var(--bg-card);
  border: 1px solid var(--border); border-radius: var(--radius);
  color: var(--text-3);
  transition: transform .16s ease, border-color .16s, background .16s, color .16s;
}
.hs-quick-card:hover { transform: translateY(-2px); border-color: #00D07E; background: var(--bg-card-2); color: #00D07E; }
.hs-qc-ico {
  width: 38px; height: 38px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: 9px; background: rgba(0, 208, 126, 0.12); color: #00D07E;
}
.hs-qc-body { flex: 1; min-width: 0; }
.hs-qc-body b { display: block; font-size: 14.5px; font-weight: 700; color: var(--text); }
.hs-qc-body span { display: block; margin-top: 1px; font-size: 12.5px; color: var(--text-3); }

/* ---------- 大章浏览 ---------- */
.hs-browse { margin-top: 22px; }
.hs-browse-head {
  display: flex; align-items: center; gap: 7px;
  font-size: 13.5px; font-weight: 700; color: var(--text);
  margin-bottom: 12px;
}
.hs-browse-head .ico { color: #00D07E; }
.hs-ch-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
.hs-ch-tile {
  display: flex; align-items: stretch; gap: 12px;
  padding: 13px 14px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: transform .16s ease, border-color .16s, background .16s;
  color: var(--text);
}
.hs-ch-tile:hover { transform: translateY(-2px); border-color: #00D07E; background: var(--bg-card-2); }
.hs-ch-tile-no {
  font-family: var(--mono);
  font-size: 22px; font-weight: 700;
  color: #00D07E; letter-spacing: .8px;
  display: flex; align-items: center;
  flex-shrink: 0; min-width: 50px;
  border-right: 1px solid var(--border-light);
  padding-right: 10px;
  justify-content: center;
}
.hs-ch-tile-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-ch-tile-name { font-size: 13.5px; font-weight: 600; color: var(--text); line-height: 1.3; }
.hs-ch-tile-meta { font-size: 11.5px; color: var(--text-3); }

/* ---------- 提示段 ---------- */
.hs-tip {
  margin-top: 20px;
  background: rgba(0, 208, 126, 0.06);
  border: 1px solid rgba(0, 208, 126, 0.20);
  border-radius: 10px;
  padding: 14px 18px;
  font-size: 13.5px; line-height: 1.75; color: var(--text-2);
  display: flex; gap: 12px; align-items: flex-start;
}
.hs-tip-ico {
  flex-shrink: 0;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px; background: rgba(0, 208, 126, 0.14); color: var(--accent);
}
.hs-tip-body b { color: var(--text); font-weight: 700; }

/* ---------- 兼容：HS 表行内 章节号与编码字段 ---------- */
.hs-code-pill {
  display: inline-block; padding: 1px 7px;
  background: rgba(0, 208, 126, 0.10);
  border: 1px solid rgba(0, 208, 126, 0.28);
  border-radius: 4px;
  font-family: var(--mono); font-size: 12.5px;
  color: #00D07E; font-weight: 600;
}
.hs-stat-meta {
  display: inline-block;
  font-family: var(--mono);
  font-size: 12.5px;
  color: var(--text-3);
  white-space: nowrap;
}
.hs-stat-meta b, .hs-stat-meta strong { color: var(--text); font-weight: 700; }

@media (max-width: 1080px) {
  .hs-hero-grid { grid-template-columns: 1fr; }
  .hs-stats { grid-template-columns: repeat(3, 1fr); }
  .hs-quick { grid-template-columns: repeat(2, 1fr); }
  .hs-ch-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .hs-hero h1 { font-size: 34px; }
  .hs-stats { grid-template-columns: repeat(2, 1fr); }
  .hs-quick { grid-template-columns: 1fr; }
  .hs-ch-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .hs-hero::after { animation: none; }
  .hs-ch-card:hover, .hs-quick-card:hover, .hs-ch-tile:hover { transform: none; }
}

/* ===== 国家机场页：货运概况 + 主要货运机场 + FAQ（SEO 长尾内容区） ===== */
.cty-block { margin-top: 26px; }

.cty-h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 10px;
  letter-spacing: -.1px;
}
.cty-h2 svg { color: var(--accent); flex: none; }

.cty-lead {
  color: var(--text-3);
  font-size: 13px;
  line-height: 1.7;
  margin-bottom: 14px;
}

/* 概况：整块卡片，四周统一边框（不使用单边高亮边框） */
.cty-brief-p {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  color: var(--text-2);
  font-size: 14.5px;
  line-height: 1.9;
  text-align: justify;
  text-justify: inter-ideograph;
  margin: 0;
}

/* 主要货运机场列表 */
.cty-cargo-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cty-cargo-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 15px 17px;
  transition: border-color .16s ease, background .16s ease;
}
.cty-cargo-item:hover {
  border-color: var(--border-light);
  background: var(--bg-card-2);
}

.cty-cargo-code {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  padding: 7px 0;
  font-family: var(--mono);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .5px;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid rgba(0, 208, 126, 0.3);
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: background .16s ease, border-color .16s ease;
}
.cty-cargo-code:hover {
  background: rgba(0, 208, 126, 0.2);
  border-color: var(--accent);
}

.cty-cargo-body { flex: 1; min-width: 0; }

.cty-cargo-t {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 4px;
}

.cty-cargo-name {
  font-size: 15px;
  font-weight: 650;
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.cty-cargo-name:hover { color: var(--accent); border-bottom-color: var(--accent); }

.cty-cargo-role {
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid rgba(0, 208, 126, 0.28);
  border-radius: 20px;
  padding: 2px 9px;
  white-space: nowrap;
}

.cty-cargo-meta {
  font-size: 12.5px;
  color: var(--text-3);
  margin-bottom: 7px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}
.cty-cargo-meta .type-pill { font-size: 11px; padding: 1px 7px; }

.cty-cargo-note {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.85;
  color: var(--text-2);
  text-align: justify;
  text-justify: inter-ideograph;
}

/* FAQ */
.cty-faq-list { margin: 0; }

.cty-faq-list dt {
  font-size: 14.5px;
  font-weight: 650;
  color: var(--text);
  line-height: 1.7;
  margin-top: 16px;
  padding-left: 13px;
  position: relative;
}
.cty-faq-list dt::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
}
.cty-faq-list dt:first-child { margin-top: 0; }

.cty-faq-list dd {
  margin: 6px 0 0;
  padding-left: 13px;
  font-size: 13.5px;
  line-height: 1.9;
  color: var(--text-2);
  text-align: justify;
  text-justify: inter-ideograph;
}

@media (max-width: 640px) {
  .cty-cargo-item { padding: 13px 14px; gap: 11px; }
  .cty-cargo-code { width: 54px; font-size: 15px; }
  .cty-cargo-name { font-size: 14px; }
  .cty-brief-p { padding: 15px 16px; font-size: 14px; line-height: 1.85; }
  .cty-h2 { font-size: 15.5px; }
}

/* ---------- /codes/airports/hubs/ 国际枢纽页面专用样式 ---------- */
.hubs-stats {
  list-style: none; margin: 14px 0 0; padding: 0;
  display: flex; gap: 10px; flex-wrap: wrap;
}
.hubs-stats li {
  display: flex; flex-direction: column; align-items: center;
  padding: 10px 18px;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  min-width: 92px;
}
.hubs-stats li b {
  font-size: 22px; font-weight: 700; color: var(--accent);
  font-family: var(--mono); line-height: 1.1;
}
.hubs-stats li span {
  font-size: 12px; color: var(--text-3); margin-top: 2px;
}

/* 紧凑 grid：6 大洲每个机场都是 chip；auto-fill 让大屏更密、小屏 2 列 */
.hubs-page .cd-grid {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
}
.hubs-page .cd-chip {
  padding: 8px 12px;
  gap: 8px;
  border-radius: 8px;
  font-size: 12.5px;
}
.hubs-page .cd-chip b {
  font-size: 12.5px;
  letter-spacing: .2px;
}
.hubs-page .cd-chip span {
  font-size: 12.5px;
  white-space: nowrap;
}
/* 大洲标题：紧凑 + 顶上一个分割 */
.hubs-page .cd-sec-title {
  margin-top: 12px;
  padding: 10px 14px;
  font-size: 14.5px;
}
.hubs-page .cd-sec-title + .cd-grid { margin-top: 6px; }

/* 重点枢纽货代提示：每条改成卡片网格（auto-fill minmax(280px, 1fr)） */
.hubs-page .hubs-tips {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
  margin-top: 4px;
}
.hubs-page .hubs-tips ul.cd-ul {
  display: contents; /* 让 ul/li 不参与 grid，li 直接挂 .hubs-tips 的列 */
}
.hubs-page .hubs-tips ul.cd-ul,
.hubs-page .hubs-tips {
  padding: 0; margin: 0;
}
.hubs-page .hubs-tips .cd-ul li {
  padding: 12px 14px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px; line-height: 1.7;
  transition: border-color .15s, background .15s;
}
.hubs-page .hubs-tips .cd-ul li:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.hubs-page .hubs-tips .cd-ul li b {
  font-size: 13px;
  font-family: var(--mono);
  color: var(--accent);
  margin-right: 6px;
  letter-spacing: .2px;
}

@media (max-width: 640px) {
  .hubs-page .cd-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .hubs-page .cd-chip { padding: 7px 10px; }
  .hubs-page .cd-chip b { font-size: 12px; }
  .hubs-page .cd-chip span { font-size: 12px; }
  .hubs-page .hubs-tips { grid-template-columns: 1fr; }
  .hubs-stats li { padding: 8px 12px; min-width: 72px; }
  .hubs-stats li b { font-size: 18px; }
}

/* ---------- /codes/ports/hubs/ 全球枢纽港页面专用样式（卡片带货代视角角色定位） ---------- */
.ports-hubs-page .phub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 10px;
}
.ports-hubs-page .phub-card {
  display: flex; flex-direction: column; gap: 5px;
  padding: 12px 14px;
  background: var(--bg-card);
  border: 1px solid var(--border); border-radius: var(--radius);
  text-decoration: none;
  transition: transform .15s ease, border-color .15s, background .15s;
}
.ports-hubs-page .phub-card:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  background: var(--bg-card-2);
}
.ports-hubs-page .phub-top { display: flex; align-items: baseline; gap: 8px; }
.ports-hubs-page .phub-top b {
  flex: none;
  font-family: var(--mono); font-size: 13px; font-weight: 700;
  color: var(--accent); letter-spacing: .3px;
}
.ports-hubs-page .phub-name { font-size: 14.5px; font-weight: 700; color: var(--text); }
.ports-hubs-page .phub-en {
  font-size: 11.5px; color: var(--text-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ports-hubs-page .phub-role {
  font-size: 12.5px; line-height: 1.7; color: var(--text-2);
  text-align: justify; text-justify: inter-ideograph;
}

/* ---------- 国家索引磁贴：枢纽港数量角标 ---------- */
.cn-tile-hub {
  display: inline-block; margin-left: 7px; padding: 1px 7px;
  font-size: 11px; font-style: normal; font-weight: 600;
  color: var(--accent);
  border: 1px solid rgba(0, 208, 126, 0.35); background: var(--accent-soft);
  border-radius: 20px; white-space: nowrap;
}

@media (max-width: 640px) {
  .ports-hubs-page .phub-grid { grid-template-columns: 1fr; }
  .ports-hubs-page .phub-card { padding: 11px 12px; }
}

/* ---------- HS 海关编码宇宙图（21 Section + 96 章气泡） ---------- */
.hs-map-wrap {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px 22px 22px;
  margin: 24px 0 0;
  position: relative;
  overflow: hidden;
}
.hs-map-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 360px at 20% 0%, rgba(0, 208, 126, 0.10), transparent 60%),
    radial-gradient(700px 280px at 100% 100%, rgba(255,140,0,0.06), transparent 60%);
  pointer-events: none;
}
.hs-map-wrap > * { position: relative; z-index: 1; }
.hs-map-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.hs-map-title {
  font-size: 18px;
  font-weight: 700;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--text-1);
}
.hs-map-title svg { color: #00D07E; }
.hs-map-sub {
  color: var(--text-2);
  font-size: 12.5px;
  margin: 4px 0 0;
  line-height: 1.55;
}
.hs-map-legend {
  display: flex;
  gap: 12px;
  font-size: 11.5px;
  color: var(--text-2);
  flex-wrap: wrap;
  align-items: center;
}
.hs-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.hs-map-legend i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}
.hs-map-body {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 14px;
  align-items: stretch;
}
@media (max-width: 880px) {
  .hs-map-body { grid-template-columns: 1fr; }
}
.hs-map-side {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 6px;
  max-height: 580px;
  overflow-y: auto;
}
.tm-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.tm-nav-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 6px;
  cursor: default;
  transition: background 0.12s;
}
.tm-nav-item:hover {
  background: rgba(0, 208, 126, 0.10);
}
.tm-nav-r {
  font-family: var(--mono);
  background: rgba(0, 208, 126, 0.16);
  color: #00D07E;
  border: 1px solid rgba(0, 208, 126, 0.30);
  border-radius: 4px;
  padding: 1px 5px;
  font-weight: 700;
  font-size: 11.5px;
  min-width: 28px;
  text-align: center;
  flex-shrink: 0;
  margin-top: 1px;
}
.tm-nav-body {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  flex: 1;
}
.tm-nav-name {
  font-weight: 600;
  font-size: 12.5px;
  color: var(--text-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.45;
}
.tm-nav-meta {
  font-size: 10.5px;
  color: var(--text-3);
  font-family: var(--mono);
  line-height: 1.5;
}
.hs-map-stage {
  background:
    linear-gradient(180deg, rgba(0,208,126,0.05), rgba(0,208,126,0.01)),
    var(--bg-1);
  border: 1px solid var(--border);
  border-radius: 8px;
  position: relative;
  min-height: 240px;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  padding: 14px;
}
.tm-stage {
  position: relative;
  width: 100%;
  /* 920:500 = 1.84 aspect，按父容器实际宽度自动算高 */
  aspect-ratio: 920 / 500;
}
.tm-block {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: 4px;
  text-decoration: none;
  font-family: var(--sans);
  font-weight: 600;
  transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, opacity 0.16s ease;
  overflow: hidden;
  box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.12);
  cursor: pointer;
  z-index: 1;
  padding: 4px 6px;
  gap: 1px;
  container-type: inline-size;
}
.tm-block:hover {
  transform: scale(1.04);
  box-shadow: inset 0 0 0 2px #fff, 0 6px 16px rgba(0,0,0,0.45);
  z-index: 5;
}
/* 罗马数字 + 条数字号：使用 cqi 单位（容器查询），跟块大小联动 */
.tm-r {
  font-family: var(--mono);
  font-size: clamp(10px, 4.4cqi, 13px);
  letter-spacing: 0.3px;
  opacity: 0.94;
  line-height: 1;
  font-weight: 700;
}
.tm-r-v {
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: 2px;
  opacity: 0.88;
}
.tm-n {
  font-family: var(--mono);
  font-size: clamp(11px, 5.6cqi, 16px);
  font-weight: 700;
  letter-spacing: -0.3px;
  line-height: 1.05;
  margin-top: 1px;
}
.tm-name {
  font-size: clamp(11px, 4.6cqi, 14px);
  font-weight: 600;
  opacity: 0.92;
  line-height: 1.12;
  margin-top: 2px;
}
.tm-meta {
  font-size: clamp(10px, 3.9cqi, 11.5px);
  opacity: 0.78;
  font-family: var(--mono);
  line-height: 1.15;
  margin-top: 2px;
}
/* 容器查询 fallback（容器 < 36px 宽时字号略小） */
@container (max-width: 56px) {
  .tm-r { font-size: 4.6cqi; }
  .tm-n { font-size: 4.4cqi; }
  .tm-name { display: none; }
  .tm-meta { display: none; }
}

/* ============================================
   移动端横向溢出兜底（2026-09-11 P0 修复）
   根因：grid 轨道裸 1fr = minmax(auto,1fr)，子项默认
   min-width:auto，侧栏（搜索框等）min-content 会把
   轨道撑出视口，详情页整页被撑到 ~486px。
   ============================================ */
.term-layout > *, .hs-layout > *, .guide-layout > *,
.changelog-layout > * { min-width: 0; }
.sb-search input { min-width: 0; }
/* P1a：/all/ 分类行 chips 换行（inline-flex 不换行被撑出 18px） */
.all-row .all-meta { flex-wrap: wrap; }
/* P1a：/map/ 三个 tab 在 390px 放不下，允许换行并收紧内边距 */
@media (max-width: 620px) {
  .map-toolbar { flex-wrap: wrap; }
  .map-tab { padding: 12px 12px; gap: 5px; font-size: 13px; min-width: 0; }
}
/* P0 补漏：/changelog/ 长词组（如"GSP/..."类长串）把 .log-body 撑到 574px */
.log-body { overflow-wrap: anywhere; }

/* ============================================================
   首页 · 货代代码仪表盘（8 切换：机场/港口/航司/船司/仓库/铁路/HS/其它）
   ============================================================ */
.home-code-sec { margin-top: 8px; }
.home-code-tabs {
  display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap;
  margin: 18px 0 22px;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 8px;
}
.home-code-tab {
  flex: 1 1 auto; min-width: 84px;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 10px 12px; border: 1px solid transparent; border-radius: 9px;
  background: transparent; color: var(--text-3); cursor: pointer;
  font-size: 14px; font-weight: 600; transition: all .16s ease;
}
.home-code-tab svg { color: var(--text-3); }
.home-code-tab:hover { color: var(--text); background: var(--bg-card-2); }
.home-code-tab.is-active { color: #0d1b12; background: var(--accent); border-color: var(--accent); }
.home-code-tab.is-active svg { color: #0d1b12; }

.home-code-panels { margin-top: 4px; }
.home-code-panel { display: none; }
.home-code-panel.is-active { display: block; }

.home-code-geo-layout { display: grid; grid-template-columns: 280px 1fr; gap: 18px; align-items: stretch; }
.home-code-geo-layout .ap-side-tree { width: auto; max-height: none; }
.home-code-geo-layout .ap-tree { max-height: 520px; }
.home-code-map-sec { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; display: flex; flex-direction: column; }
.home-code-map-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.home-code-map-title { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--text); margin: 0; }
.home-code-map-title svg { color: var(--accent); }
.home-code-map-note { font-size: 12.5px; color: var(--text-3); }
.home-code-map-sec .cd-map { height: 460px; border-radius: 10px; flex: 1; }

.home-code-main { min-width: 0; margin-top: 18px; }
.home-code-sub { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 700; color: var(--text); margin: 6px 0 12px; }
.home-code-sub svg { color: var(--accent); }

/* 其它：国家/税号/币种 卡片 */
.home-other-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 6px; }
.home-other-card {
  display: flex; align-items: center; gap: 14px;
  padding: 18px; background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); color: var(--text); transition: all .16s ease;
}
.home-other-card:hover { border-color: var(--oc); transform: translateY(-2px); background: var(--bg-card-2); }
.home-other-ico { width: 44px; height: 44px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 10px; background: color-mix(in srgb, var(--oc) 16%, transparent); color: var(--oc); }
.home-other-body { flex: 1; min-width: 0; }
.home-other-body b { display: block; font-size: 15px; font-weight: 700; }
.home-other-body span { display: block; margin-top: 3px; font-size: 12.5px; color: var(--text-3); }
.home-other-num { font-size: 22px; font-weight: 800; color: var(--oc); }
.home-other-arrow { color: var(--text-3); }
.home-other-note { margin-top: 16px; font-size: 13px; color: var(--text-3); }

@media (max-width: 1024px) {
  .home-code-geo-layout { grid-template-columns: 240px 1fr; }
  .home-code-map-sec .cd-map { height: 400px; }
}
@media (max-width: 900px) {
  .home-code-geo-layout { grid-template-columns: 1fr; }
  .home-code-geo-layout .ap-side-tree { max-height: 420px; }
  .home-code-geo-layout .ap-tree { max-height: 320px; }
  .home-other-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .home-code-tab { min-width: 0; flex: 1 1 40%; font-size: 13px; padding: 9px 8px; }
  .home-code-map-sec .cd-map { height: 320px; }
}

/* ===== footer 最近更新（全站回访信号） ===== */
.footer-updated {
  margin-top: 7px;
  font-size: 12px;
  color: var(--text-3);
}
.footer-updated b { color: var(--accent); font-weight: 600; }
.footer-updated a { color: var(--text-2); border-bottom: 1px dashed var(--border); }
.footer-updated a:hover { color: var(--accent); border-color: var(--accent); }

/* ===== 词条正文底部：分享引导 ===== */
.t-share-hint {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 22px 0 4px;
  padding: 11px 14px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 13px;
  color: var(--text-2);
}
.t-share-hint a { color: var(--accent); font-weight: 600; }
.t-share-hint a:hover { text-decoration: underline; }
.t-share-hint .ico { flex: 0 0 auto; color: var(--accent); }

/* ===== 侧边栏分享卡被定位时的高亮 ===== */
.sb-share-card.is-flash {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
  transition: box-shadow 0.35s ease, border-color 0.35s ease;
}


/* ============================================================
   搜索结果面板 · 工具化（2026-09-15）
   结果卡一键复制代码 / 分组「查看全部」跳列表页
   ============================================================ */
.spr-copy {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: transparent;
  color: var(--text-3);
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.spr-copy:hover,
.spr-copy.is-done { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }

.sp-group-more {
  margin-left: auto;
  font-size: 11px; font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px dashed rgba(0, 208, 126, .45);
  white-space: nowrap;
}
.sp-group-more:hover { border-bottom-style: solid; }

/* ============================================================
   船公司代码页 · 联盟卡片 / 表格联盟标签 / 箱号前缀（.al-*）
   ============================================================ */
.al-sec { margin-top: 26px; }
.al-head { margin-bottom: 12px; }
.al-h2 {
  display: flex; align-items: center; gap: 8px;
  font-size: 17px; font-weight: 700; color: var(--text); letter-spacing: -.2px;
}
.al-h2 svg { color: var(--accent); }
.al-lead { margin-top: 5px; font-size: 13px; line-height: 1.75; color: var(--text-3); text-align: justify; text-justify: inter-ideograph; }
.al-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.al-card {
  display: flex; flex-direction: column; gap: 9px;
  padding: 15px 16px 13px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius);
  transition: transform .16s ease, border-color .16s, background .16s;
}
.al-card:hover { transform: translateY(-2px); border-color: var(--al-c, var(--accent)); background: var(--bg-card-2); }
.al-c-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.al-c-name { font-size: 14.5px; font-weight: 700; color: var(--text); }
.al-c-name::before {
  content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 6px;
  border-radius: 50%; background: var(--al-c, var(--accent)); vertical-align: 1px;
}
.al-c-name em {
  display: block; margin-top: 1px; font-size: 11.5px; font-style: normal;
  font-weight: 500; color: var(--text-3); letter-spacing: .2px;
}
.al-c-count {
  flex-shrink: 0; padding: 2px 8px; border-radius: 20px; font-size: 11.5px; font-weight: 600;
  color: var(--al-c, var(--accent)); background: var(--accent-soft);
}
.al-c-desc { font-size: 12.5px; line-height: 1.75; color: var(--text-3); text-align: justify; text-justify: inter-ideograph; }
.al-c-members { display: flex; flex-wrap: wrap; gap: 6px; }
.al-chip {
  display: inline-flex; align-items: baseline; gap: 5px;
  padding: 4px 9px; border: 1px solid var(--border); border-radius: 7px;
  background: var(--bg); color: var(--text-2);
  transition: border-color .14s, color .14s;
}
.al-chip b { font-size: 12px; font-weight: 700; color: var(--text); }
.al-chip span { font-size: 11.5px; color: var(--text-3); }
.al-chip:hover { border-color: var(--al-c, var(--accent)); color: var(--al-c, var(--accent)); }
.al-chip:hover b { color: var(--al-c, var(--accent)); }
.al-c-merged { display: flex; align-items: center; gap: 5px; font-size: 11.5px; line-height: 1.7; color: var(--text-3); }
.al-c-merged svg { flex-shrink: 0; color: var(--accent); }
.al-c-note { margin-top: auto; padding-top: 8px; border-top: 1px dashed var(--border); font-size: 11.5px; color: var(--text-3); }

/* 表格里的联盟标签（船公司名后） */
.al-tag {
  display: inline-block; margin-left: 6px; padding: 1px 6px;
  border: 1px solid var(--al-c, var(--border)); border-radius: 5px;
  font-size: 10.5px; font-weight: 600; line-height: 1.55; white-space: nowrap;
  color: var(--al-c, var(--text-3)); vertical-align: 1px;
}

/* 详情页箱号前缀 */
.cd-box { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.cd-box .cd-label { display: block; margin-bottom: 8px; }
.cd-box-list { display: flex; flex-wrap: wrap; gap: 6px; }
.cd-box-code {
  padding: 3px 8px; border: 1px solid var(--border); border-radius: 6px;
  background: var(--bg); font-family: var(--mono, ui-monospace, Consolas, monospace);
  font-size: 12px; font-weight: 600; color: var(--text-2); letter-spacing: .4px;
}

@media (max-width: 980px) { .al-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) {
  .al-grid { grid-template-columns: 1fr; }
  .al-card:hover { transform: none; }
}
/* ============================================================
   海运航线走廊页 · 查询器 / 走廊卡 / 时效矩阵（.ln-*）
   ============================================================ */
.ln-pick { margin-top: 24px; }
.ln-pick-in {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px;
  padding: 14px 16px; background: var(--bg-card);
  border: 1px solid var(--border); border-radius: var(--radius);
}
.ln-pick-t {
  display: flex; align-items: center; gap: 7px; margin-right: 4px;
  font-size: 13.5px; font-weight: 700; color: var(--text);
}
.ln-pick-t svg { color: var(--accent); }
.ln-sel { display: flex; flex-direction: column; gap: 5px; }
.ln-sel > span { font-size: 11.5px; color: var(--text-3); letter-spacing: .2px; }
.ln-sel select {
  min-width: 190px; padding: 8px 11px; font-size: 13px; color: var(--text);
  background: var(--bg); border: 1px solid var(--border); border-radius: 8px;
  cursor: pointer; transition: border-color .15s;
}
.ln-sel select:hover, .ln-sel select:focus { border-color: var(--accent); outline: none; }
.ln-pick-arrow { padding-bottom: 9px; color: var(--text-3); font-size: 15px; }

.ln-groups { margin-top: 16px; }
.ln-group[hidden] { display: none; }
.ln-g-head {
  display: flex; align-items: baseline; gap: 10px; margin-bottom: 11px;
  padding-bottom: 9px; border-bottom: 1px solid var(--border);
}
.ln-g-head b { font-size: 15px; font-weight: 700; color: var(--text); }
.ln-g-head span { font-size: 12px; color: var(--text-3); }
.ln-g-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ln-g-grid > * { min-width: 0; }

.ln-card {
  display: flex; flex-direction: column; gap: 10px;
  padding: 15px 16px 13px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius);
  transition: border-color .16s, background .16s, transform .16s;
}
.ln-card:hover { border-color: var(--accent); background: var(--bg-card-2); transform: translateY(-2px); }
.ln-card.ln-focus {
  border-color: var(--accent); background: var(--bg-card-2);
  box-shadow: 0 0 0 2px var(--accent-soft);
}
.ln-c-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.ln-c-title { font-size: 14.5px; font-weight: 700; color: var(--text); letter-spacing: -.1px; }
.ln-c-arrow { color: var(--accent); font-weight: 600; }
.ln-c-region {
  flex-shrink: 0; padding: 2px 8px; border-radius: 20px;
  font-size: 11px; font-weight: 600; color: var(--accent); background: var(--accent-soft);
}
.ln-c-days { display: flex; align-items: baseline; gap: 4px; }
.ln-c-days b { font-size: 22px; font-weight: 700; color: var(--accent); letter-spacing: -.5px; }
.ln-c-days span { font-size: 12px; color: var(--text-3); }
.ln-c-days em { margin-left: 6px; font-size: 11.5px; font-style: normal; color: var(--text-3); }
.ln-c-dl { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.ln-c-dl > div { display: flex; align-items: baseline; gap: 8px; }
.ln-c-dl dt { flex-shrink: 0; width: 52px; font-size: 11.5px; color: var(--text-3); }
.ln-c-dl dd {
  margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--text-2);
  text-align: justify; text-justify: inter-ideograph;
}
.ln-c-dl a { color: var(--text-2); border-bottom: 1px dotted var(--border); }
.ln-c-dl a:hover { color: var(--accent); border-bottom-color: var(--accent); }
.ln-via-sep { margin: 0 4px; color: var(--text-3); }
.ln-none { color: var(--text-3); }
.ln-c-carriers { margin-top: 2px; }
.ln-c-label { display: block; margin-bottom: 7px; font-size: 11.5px; color: var(--text-3); }
.ln-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.ln-chip {
  display: inline-flex; align-items: baseline; gap: 4px;
  padding: 3px 7px; border: 1px solid var(--border); border-radius: 6px;
  background: var(--bg); transition: border-color .14s, color .14s;
}
.ln-chip b { font-size: 11px; font-weight: 700; color: var(--text); letter-spacing: .2px; }
.ln-chip span { font-size: 11px; color: var(--text-3); }
.ln-chip:hover { border-color: var(--accent); }
.ln-chip:hover b { color: var(--accent); }
.ln-c-peak, .ln-c-note {
  margin: 0; font-size: 11.5px; line-height: 1.7; color: var(--text-3);
  text-align: justify; text-justify: inter-ideograph;
}
.ln-c-peak { display: flex; align-items: flex-start; gap: 5px; }
.ln-c-peak svg { flex-shrink: 0; margin-top: 2px; color: var(--accent); }
.ln-c-alt {
  margin-top: auto; padding-top: 9px; border-top: 1px dashed var(--border);
  font-size: 11.5px; line-height: 1.7; color: var(--text-3);
}
.ln-c-alt span { margin-right: 5px; }
.ln-c-alt a { color: var(--text-2); margin-right: 2px; }
.ln-c-alt a:hover { color: var(--accent); }

/* 时效矩阵 */
.ln-matrix-sec { margin-top: 28px; }
.ln-matrix-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.ln-matrix { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.ln-matrix th, .ln-matrix td {
  padding: 9px 11px; border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border); white-space: nowrap;
}
.ln-matrix th:last-child, .ln-matrix td:last-child { border-right: 0; }
.ln-matrix tbody tr:last-child th, .ln-matrix tbody tr:last-child td { border-bottom: 0; }
.ln-matrix thead th {
  background: var(--bg-card); font-size: 12px; font-weight: 600; color: var(--text-2);
  text-align: center; vertical-align: bottom;
}
.ln-matrix thead th a { display: block; color: var(--text); }
.ln-matrix thead th a:hover { color: var(--accent); }
.ln-matrix thead th span {
  display: block; margin-top: 2px; font-size: 10.5px; font-weight: 500; color: var(--text-3);
}
.ln-m-corner {
  text-align: left !important; color: var(--text-3) !important;
  font-weight: 500 !important; font-size: 11.5px !important;
}
.ln-matrix tbody th { text-align: left; background: var(--bg-card); font-weight: 600; color: var(--text); }
.ln-matrix tbody th em {
  display: block; margin-top: 1px; font-size: 10.5px; font-style: normal;
  font-weight: 500; color: var(--text-3);
}
.ln-m-cell {
  display: block; text-align: center; color: var(--text-2);
  font-variant-numeric: tabular-nums; letter-spacing: .2px;
}
.ln-m-cell:hover { color: var(--accent); font-weight: 600; }
.ln-m-empty { text-align: center; color: var(--text-3); }

/* 口径说明 */
.ln-note-sec { margin-top: 28px; }
.ln-notes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 12px; }
.ln-notes p {
  margin: 0; padding: 12px 14px; font-size: 12.5px; line-height: 1.8; color: var(--text-3);
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius);
  text-align: justify; text-justify: inter-ideograph;
}
.ln-notes b { color: var(--text-2); }

@media (max-width: 1100px) { .ln-g-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px) {
  .ln-g-grid { grid-template-columns: 1fr; }
  .ln-notes { grid-template-columns: 1fr; }
  .ln-sel select { min-width: 150px; }
  .ln-card:hover { transform: none; }
}

/* ============================================================
   船司航线服务代码库（/codes/services/）· .sv-*
   ============================================================ */
.sv-group[hidden] { display: none; }
.sv-hit { font-size: 12px; color: var(--text-3); padding-bottom: 9px; }
.sv-pick-reset {
  align-self: flex-end; padding: 7px 14px; margin-bottom: 0;
  font-size: 12.5px; color: var(--text-2); background: var(--bg);
  border: 1px solid var(--border); border-radius: 8px; cursor: pointer; transition: border-color .15s, color .15s;
}
.sv-pick-reset:hover { border-color: var(--accent); color: var(--accent); }

/* 航线地图总览：左侧船司导航 + 右侧可视化地图 */
.ln-map-sec { margin-top: 34px; }
.sv-mapblk { display: grid; grid-template-columns: 280px 1fr; gap: 14px; align-items: stretch; }
.sv-map-side {
  display: flex; flex-direction: column; min-height: 0;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius);
  overflow: hidden;
}
.sv-mn-h {
  display: flex; align-items: center; justify-content: space-between;
  padding: 11px 13px 9px; font-size: 12.5px; font-weight: 600; color: var(--text);
}
.sv-mn-h svg { color: var(--accent); vertical-align: -2px; margin-right: 3px; }
.sv-mn-hs { font-size: 11px; font-weight: 500; color: var(--text-3); }
.sv-mn-search {
  display: flex; align-items: center; gap: 7px; margin: 0 11px 9px;
  padding: 7px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px;
}
.sv-mn-search svg { color: var(--text-3); flex-shrink: 0; }
.sv-mn-search input {
  width: 100%; border: 0; outline: 0; background: transparent;
  font-size: 12.5px; color: var(--text);
}
.sv-mn-list { flex: 1; overflow-y: auto; padding: 0 7px 7px; max-height: 460px; }
.sv-mn-gt {
  display: flex; align-items: baseline; gap: 6px;
  padding: 9px 7px 5px; font-size: 11.5px; font-weight: 600; color: var(--text-3);
  border-bottom: 1px dashed var(--border); letter-spacing: .3px;
}
.sv-mn-gt em { font-style: normal; color: var(--text-3); font-weight: 500; }
.sv-mn-it {
  display: flex; align-items: baseline; gap: 8px; width: 100%;
  margin-top: 2px; padding: 7px 8px; text-align: left;
  background: transparent; border: 1px solid transparent; border-radius: 8px;
  font: inherit; cursor: pointer; transition: background .14s, border-color .14s;
}
.sv-mn-it b { font-size: 12.5px; color: var(--accent); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.sv-mn-it span { flex: 1; min-width: 0; font-size: 12px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-mn-it i { font-style: normal; font-size: 10.5px; color: var(--text-3); flex-shrink: 0; }
.sv-mn-it:hover { background: var(--bg); }
.sv-mn-it.is-on { background: var(--bg); border-color: var(--accent); }
.sv-mn-it.is-on b { color: var(--accent); }
.sv-mn-all {
  margin: 8px 11px 11px; padding: 8px; font-size: 12px; color: var(--text-2);
  background: var(--bg); border: 1px solid var(--border); border-radius: 8px; cursor: pointer;
  transition: border-color .15s, color .15s;
}
.sv-mn-all:hover { border-color: var(--accent); color: var(--accent); }
.sv-mn-all svg { vertical-align: -2px; margin-right: 3px; }
.sv-map-stage { min-width: 0; display: flex; }
/* 地图撑满与左侧导航等高的格子，消除下方空白 */
.sv-map-all { flex: 1; height: auto; min-height: 560px; }
@media (max-width: 960px) {
  .sv-mapblk { grid-template-columns: 1fr; }
  .sv-map-all { flex: none; height: 380px; }
  .sv-mn-list { max-height: 280px; }
}

.sv-card {
  display: flex; flex-direction: column; gap: 9px; min-width: 0;
  padding: 15px 16px 13px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius);
  transition: border-color .16s, background .16s, transform .16s;
}
.sv-card:hover { border-color: var(--accent); background: var(--bg-card-2); transform: translateY(-2px); }
.sv-c-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.sv-c-code {
  font-size: 20px; font-weight: 700; letter-spacing: .5px; color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.sv-c-region { font-size: 11.5px; color: var(--text-3); white-space: nowrap; }
.sv-c-name { margin: 0; font-size: 14.5px; font-weight: 700; color: var(--text); line-height: 1.5; }
.sv-c-name a { color: var(--text); }
.sv-c-name a:hover { color: var(--accent); }
.sv-c-name em {
  display: block; margin-top: 2px; font-size: 11.5px; font-style: normal;
  font-weight: 500; color: var(--text-3); letter-spacing: .2px;
}
.sv-c-rot {
  display: flex; align-items: baseline; gap: 8px;
  font-size: 12.5px; line-height: 1.8; color: var(--text-2);
}
.sv-c-rot > span { flex-shrink: 0; font-size: 11.5px; color: var(--text-3); }
/* 港序行防外溢：.sv-rot-v 是唯一可收缩的块级容器，港名 .sv-p 整体不拆字、换行只发生在港与港之间 */
.sv-c-rot .sv-rot-v { flex: 1; min-width: 0; display: block; }
.sv-p { white-space: nowrap; }
.sv-c-rot a { color: var(--text-2); border-bottom: 1px dotted var(--border); }
.sv-c-rot a:hover { color: var(--accent); border-bottom-color: var(--accent); }
.sv-c-tt { margin: 0; font-size: 11.5px; line-height: 1.7; color: var(--text-3); }
.sv-c-tt b { color: var(--accent); font-variant-numeric: tabular-nums; }
.sv-c-tt svg { vertical-align: -2px; margin-right: 4px; color: var(--accent); }
.sv-c-foot { margin-top: auto; padding-top: 9px; border-top: 1px dashed var(--border); display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.sv-c-foot .ln-chips { gap: 5px; }
.sv-c-freq { font-size: 11.5px; color: var(--text-3); white-space: nowrap; }
.ln-pick-in .ln-sel { flex: 1; min-width: 240px; }
.ln-pick-in .ln-sel input {
  width: 100%; padding: 8px 11px; font-size: 13px; color: var(--text);
  background: var(--bg); border: 1px solid var(--border); border-radius: 8px;
  transition: border-color .15s;
}
.ln-pick-in .ln-sel input:hover, .ln-pick-in .ln-sel input:focus { border-color: var(--accent); outline: none; }

/* 详情页头部 */
.sv-hero {
  margin-top: 0; padding: 20px 22px 16px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius);
}
.sv-hero-main { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.sv-hero-fav { margin-left: auto; flex-shrink: 0; }
.sv-hero-code {
  padding: 8px 14px; border-radius: 10px; font-size: 26px; font-weight: 700; letter-spacing: 1px;
  color: var(--accent); background: var(--accent-soft); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.sv-hero-t h1 { margin: 0; font-size: 21px; font-weight: 700; color: var(--text); letter-spacing: -.3px; line-height: 1.4; }
.sv-hero-en { margin: 4px 0 0; font-size: 12.5px; color: var(--text-3); letter-spacing: .2px; }
.sv-hero-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.sv-cut {
  display: inline-flex; align-items: baseline; gap: 6px;
  padding: 4px 10px; border: 1px solid var(--border); border-radius: 7px;
  background: var(--bg); font-size: 12px; color: var(--text-2);
}
.sv-cut b { font-size: 11.5px; color: var(--text-3); font-weight: 500; }
.sv-hero-car { display: flex; align-items: center; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.sv-hero-car > span { font-size: 11.5px; color: var(--text-3); }

/* 港序表 / 航程表 */
.sv-rot { margin-bottom: 14px; }
.sv-rot:last-child { margin-bottom: 0; }
.sv-rot-t { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--text-2); }
.sv-rot-tbl { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: fixed; }
/* 定宽列：南行/北行两张港序表列宽完全一致；序号列固定宽，其余按比例 */
.sv-rot-tbl th:nth-child(1), .sv-rot-tbl td:nth-child(1) { width: 64px; }
.sv-rot-tbl th:nth-child(2), .sv-rot-tbl td:nth-child(2) { width: 45%; }
.sv-rot-tbl th, .sv-rot-tbl td { padding: 8px 12px; border-bottom: 1px solid var(--border); text-align: left; overflow-wrap: break-word; }
/* 航程参考表（起运港/目的港/参考航程）独立列宽：三列等距感 */
.sv-tt-tbl th:nth-child(1), .sv-tt-tbl td:nth-child(1) { width: 38%; }
.sv-tt-tbl th:nth-child(2), .sv-tt-tbl td:nth-child(2) { width: 38%; }
.sv-tt-tbl th:nth-child(3), .sv-tt-tbl td:nth-child(3) { width: 24%; }
.sv-rot-tbl thead th { background: var(--bg-card); font-size: 12px; font-weight: 600; color: var(--text-3); }
.sv-rot-tbl tbody tr:last-child td { border-bottom: 0; }
.sv-rot-tbl td b a { color: var(--text); }
.sv-rot-tbl td b a:hover { color: var(--accent); }
.sv-note { margin: 10px 0 0; font-size: 13px; line-height: 1.75; color: var(--text-2); }
.sv-cutoffs { display: flex; flex-wrap: wrap; gap: 8px; }
.sv-story { margin: 0; font-size: 13.5px; line-height: 1.85; color: var(--text-2); text-align: justify; text-justify: inter-ideograph; }
/* 详情页正文字号统一：FAQ 答案 / 相关页面 / 表格说明与正文同档（13.5px），减少字号与颜色层次 */
.cd-article .faq-item h3 { margin: 0 0 6px; font-size: 13.5px; font-weight: 600; color: var(--text); line-height: 1.6; }
.cd-article .faq-item p { margin: 0; font-size: 13.5px; line-height: 1.75; color: var(--text-2); text-align: justify; text-justify: inter-ideograph; }
.sv-rel p { margin: 0 0 8px; font-size: 13.5px; line-height: 1.8; color: var(--text-2); }
.sv-rel b { color: var(--text-2); }
.sv-rel a { color: var(--text-2); border-bottom: 1px dotted var(--border); }
.sv-rel a:hover { color: var(--accent); border-bottom-color: var(--accent); }

/* 地图 */
.sv-map-sec { margin-top: 4px; }
.sv-map { height: 400px; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg); }
.sw-leg { display: inline-block; width: 18px; height: 0; border-top: 2.5px solid; vertical-align: middle; margin: 0 4px; border-radius: 2px; }
.sw-sb { border-color: #00D07E; }
.sw-nb { border-color: #378ADD; border-top-style: dashed; }
.sw-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #E5A00D; vertical-align: -1px; margin: 0 4px; }

@media (max-width: 720px) {
  .sv-hero { padding: 16px; }
  .sv-hero-code { font-size: 22px; }
  .sv-map { height: 300px; }
  .sv-card:hover { transform: none; }
}

/* 代码库详情页收藏按钮 — 航司/船司 hero 右上角、HS 编码页标题区右上角 */
.cd-head { position: relative; }
.cd-head .fav-star-lg { position: absolute; top: 22px; right: 26px; margin-top: 0; }
.hsd-head { position: relative; }
.hsd-head .fav-star-lg { position: absolute; top: 0; right: 0; margin-top: 0; }
@media (max-width: 860px) {
  .cd-head .fav-star-lg,
  .hsd-head .fav-star-lg { position: static; display: inline-flex; margin-top: 12px; }
}
/* 分类总览页（/categories/） */
.cat-group { margin-top: 36px; }
.cat-group-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.cat-entry {
  --cat: var(--accent);
  align-items: flex-start;
  padding: 18px 20px;
  gap: 14px;
}
.cat-entry .code-entry-ico {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--cat) 18%, transparent);
  color: var(--cat);
}
.cat-entry .code-entry-body h3 { font-size: 16px; }
.cat-entry .code-entry-body h3 b { font-size: 12.5px; padding: 1px 7px; }
.cat-entry .code-entry-body p { font-size: 12.5px; line-height: 1.6; }
.cat-entry-reps {
  margin-top: 7px;
  font-family: var(--mono);
  font-size: 11.5px;
  color: var(--text-3);
  letter-spacing: 0.2px;
}
.cat-entry .code-entry-go { align-self: center; }
@media (max-width: 960px) {
  .cat-group-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .cat-group-grid { grid-template-columns: 1fr; }
}
