/* 名词小词典 — shared glossary component (js/concept-glossary.js). Inherits the host page's tokens when present. */
[data-term][data-cg-first] { text-decoration: underline dotted var(--muted, #78716c); text-underline-offset: 3px; }
.cg-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px;
  margin: 0 2px 0 3px; padding: 0; vertical-align: 1px; border: 1px solid var(--line2, #d6d3d1); border-radius: 50%;
  background: var(--surface, #fff); color: var(--muted, #57534e); font: 600 10.5px/1 var(--sans, sans-serif); cursor: pointer; }
.cg-btn::before { content: ''; position: absolute; inset: -12px; }  /* ≥40px touch target without a big visual */
.cg-btn:hover, .cg-btn[aria-expanded="true"] { border-color: var(--accent, #c2410c); color: var(--accent, #c2410c); }
.cg-btn:focus-visible { outline: 2px solid var(--accent, #c2410c); outline-offset: 2px; }
.cg-pop { box-sizing: border-box; position: absolute; z-index: 130; background: var(--surface, #fff); color: var(--ink, #1c1917); border: 1px solid var(--line2, #d6d3d1);
  border-radius: 6px; box-shadow: 0 8px 24px #1c191722; padding: 10px 12px; font: 13.5px/1.6 var(--sans, sans-serif); }
.cg-pop:focus { outline: none; }
.cg-pop:focus-visible { outline: 2px solid var(--accent, #c2410c); }
.cg-pop-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.cg-pop-title { font-size: 14px; }
.cg-pop-close { border: 0; background: none; font-size: 18px; line-height: 1; color: var(--muted, #57534e); cursor: pointer; min-width: 32px; min-height: 32px; margin: -8px -8px 0 0; }
.cg-pop-def { margin: 4px 0 0; color: var(--ink2, #44403c); }
.cg-pop-all { display: inline-block; margin-top: 6px; font-size: 12.5px; color: var(--accent, #c2410c); }
.cg-list { margin-top: 14px; background: var(--surface, #fff); border: 1px solid var(--line, #e7e5e4); border-radius: 10px; padding: 12px 18px; scroll-margin-top: 72px; }
.cg-list-sum { cursor: pointer; font-weight: 700; color: var(--ink2, #44403c); }
.cg-list-note { margin: 6px 0 0; font-size: 12.5px; color: var(--muted, #57534e); }
.cg-dl { margin: 8px 0 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 16px; font-size: 13.5px; }
.cg-dl dt { font-weight: 600; color: var(--ink, #1c1917); }
.cg-dl dd { margin: 0; color: var(--ink2, #44403c); }
@media (max-width: 560px) {
  .cg-dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .cg-dl dd { margin-bottom: 8px; }
}

.cg-source{margin:6px 0 0;color:var(--muted,#78716c);font-size:11px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;}
