/* 用語集プラグイン
   角丸は2pxまで。配色は設定画面の値を CSS 変数（--uyg-*）で受け取る。 */

.uyg{--uyg-accent:#1f2e43;--uyg-gold:#bb9c5e;--uyg-link:#0652c9;
  --uyg-ink:#1a222e;--uyg-mute:#5f6d7e;--uyg-line:#dfe4ea;--uyg-soft:#f4f6f8;--uyg-top:0px;
  color:var(--uyg-ink);line-height:1.8}
.uyg *,.uyg *::before,.uyg *::after{box-sizing:border-box}
.uyg a{text-decoration:none}
.uyg button{font-family:inherit}
.uyg :focus-visible{outline:3px solid #7aa7ff;outline-offset:2px;border-radius:2px}

/* ── 個別ページの冒頭に出る定義枠 ────────────────────── */
.uyg-term{margin:1.6em 0 1.9em;background:#fff;border:1px solid var(--uyg-line);
  border-left:4px solid var(--uyg-accent);border-radius:2px;padding:19px 22px 18px}
.uyg-term-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;
  padding-bottom:11px;margin-bottom:13px;border-bottom:1px solid #edf0f3}
.uyg-term-name{font-size:21px;font-weight:800;color:var(--uyg-accent);line-height:1.4}
.uyg-term-yomi{font-size:12.5px;color:var(--uyg-mute);letter-spacing:.08em}
.uyg-term-cat{margin-left:auto;font-size:11.5px;font-weight:700;color:#4a5a6a;
  background:var(--uyg-soft);border:1px solid #e0e5ea;border-radius:2px;padding:3px 9px;white-space:nowrap}
.uyg .uyg-term-def{margin:0;font-size:15.5px;line-height:1.95;color:#20272f}

/* ── 会話（吹き出しはテーマ側のCSSが描く。ここは余白だけ） ── */
.uyg-talk{display:flex;flex-direction:column;gap:10px;margin:1.4em 0 1.8em}
.uyg-talk .dbp-voice{gap:.55em}
.uyg-talk .dbp-voice.is-voice-layout-inline .dbp-voice-icon{width:3.4em}
.uyg-talk .dbp-voice-text{font-size:14px;padding:.9em 1.15em;line-height:1.85}
.uyg-talk .dbp-voice-text p{margin:0}
.uyg-talk .dbp-voice-meta-name{font-size:10.5px}

/* ── 個別ページの末尾 ──────────────────────────────── */
.uyg-links{margin:1.8em 0 0;padding:15px 18px;background:var(--uyg-soft);
  border:1px solid var(--uyg-line);border-radius:2px}
.uyg .uyg-links-title{margin:0 0 9px;font-size:14.5px;font-weight:700;color:var(--uyg-accent)}
.uyg-links ul{margin:0;padding-left:1.1em}
.uyg-links li{margin:.45em 0;font-size:15.5px;line-height:1.9}
.uyg-links a{color:var(--uyg-link);font-weight:700}
.uyg-back{margin:1.4em 0 0;font-size:15px}
.uyg-back a{color:var(--uyg-link);font-weight:700}

/* ── 一覧 ──────────────────────────────────────────── */
.uyg-bar{position:sticky;top:var(--uyg-top);z-index:20;margin:0 -8px 4px;padding:10px 8px 8px;
  background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--uyg-line)}
.uyg-search{position:relative;max-width:520px;margin:0 0 9px}
.uyg-search input{width:100%;height:46px;border:1px solid var(--uyg-line);border-radius:2px;
  padding:0 42px 0 14px;font-size:15px;color:var(--uyg-ink);background:#fff}
.uyg-search input::-webkit-search-cancel-button{display:none}
.uyg-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;
  border:0;border-radius:2px;background:#eef1f5;color:#5f6d7e;font-size:16px;line-height:1;
  cursor:pointer;display:none}
.uyg-search.is-filled .uyg-clear{display:block}
.uyg-chips,.uyg-idx{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.uyg-idx{margin-top:7px}
.uyg-chip{flex:0 0 auto;cursor:pointer;border:1px solid var(--uyg-line);background:#fff;
  border-radius:2px;padding:6px 13px;font-size:12.5px;font-weight:700;color:var(--uyg-mute);
  white-space:nowrap;transition:.16s}
.uyg-chip:hover{border-color:#c2cbd6;color:var(--uyg-ink)}
.uyg-chip[aria-pressed="true"]{background:var(--uyg-accent);border-color:var(--uyg-accent);color:#fff}
.uyg-go{flex:0 0 auto;min-width:38px;height:30px;padding:0 6px;cursor:pointer;
  border:1px solid var(--uyg-line);border-radius:2px;background:#fff;
  font-size:12.5px;font-weight:800;color:var(--uyg-accent);transition:.16s}
.uyg-go:hover:not(:disabled){background:var(--uyg-soft);border-color:#c2cbd6}
.uyg-go:disabled{opacity:.28;cursor:default}
.uyg .uyg-count{margin:9px 2px 0;font-size:12px;color:var(--uyg-mute)}
.uyg .uyg-count b{color:var(--uyg-accent);font-size:13.5px}

.uyg-row{margin:34px 0 0;scroll-margin-top:calc(var(--uyg-top) + 120px)}
.uyg .uyg-row-h{display:flex;align-items:center;gap:11px;margin:0 0 15px;padding:0;border:0;
  background:none;color:var(--uyg-accent);font-size:20px;font-weight:800;line-height:1.5}
.uyg .uyg-row-h::before,.uyg .uyg-row-h::after{content:none;display:none}
.uyg-row-h i{flex:0 0 auto;width:4px;height:20px;background:var(--uyg-gold)}
.uyg-row-h span{font-size:12px;font-weight:600;color:var(--uyg-mute)}

.uyg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(322px,1fr));gap:14px}
/* カードは縦のフレックスにして、「くわしく見る」を必ず下端にそろえる */
.uyg-card{position:relative;display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--uyg-line);
  border-left:3px solid var(--uyg-accent);border-radius:2px;padding:16px 18px 14px;
  transition:box-shadow .16s,border-color .16s;
  scroll-margin-top:calc(var(--uyg-top) + 120px)}
.uyg-card{cursor:pointer}
.uyg-card:hover{border-color:#c6ced8;box-shadow:0 2px 12px rgba(31,46,67,.07)}
/* カードのどこを押しても用語ページへ飛ぶ（見出しのリンクを全面に広げる）
   テーマが h3 に position:relative を当てるので、それを消さないと
   広がる範囲が見出しの大きさ（126×24px）で止まる */
.uyg .uyg-card .uyg-term{position:static}
.uyg .uyg-term a::after{content:"";position:absolute;inset:0;z-index:1}
.uyg-card:hover .uyg-term a{color:var(--uyg-link)}
.uyg-card:hover .uyg-more a{text-decoration:underline}
.uyg .uyg-more a{position:relative;z-index:2}
.uyg-card-head{display:flex;align-items:baseline;flex-wrap:nowrap;gap:9px;
  padding-bottom:9px;margin-bottom:11px;border-bottom:1px solid #edf0f3}
.uyg .uyg-term{flex:0 1 auto;min-width:0;margin:0;padding:0;border:0;background:none;
  font-size:17px;font-weight:800;line-height:1.4}
.uyg .uyg-term::before,.uyg .uyg-term::after{content:none;display:none}
.uyg .uyg-term a{color:var(--uyg-accent)}
.uyg .uyg-term a:hover{color:var(--uyg-link)}
.uyg .uyg-yomi{flex:0 1 auto;min-width:0;margin:0;font-size:11.5px;letter-spacing:.06em;
  color:var(--uyg-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uyg-badge{flex:0 0 auto;margin-left:auto;padding:2px 8px;border-radius:2px;white-space:nowrap;
  font-size:11px;font-weight:700;color:#4a5a6a;background:var(--uyg-soft);border:1px solid #e0e5ea}
.uyg .uyg-def{flex:1 1 auto;margin:0;font-size:14.5px;line-height:1.88;color:#3b4553}
.uyg .uyg-more{flex:0 0 auto;margin:11px 0 0;padding:10px 0 0;
  border-top:1px solid #edf0f3;font-size:12.5px}
.uyg-more a{color:var(--uyg-link);font-weight:700}
.uyg-more a::after{content:"→";margin-left:5px;font-size:11px}

.uyg-empty{display:none;margin:30px 0 0;padding:40px 24px;text-align:center;
  background:var(--uyg-soft);border:1px dashed #cfd7e0;border-radius:2px}
.uyg-empty p{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--uyg-accent)}
.uyg-empty small{color:var(--uyg-mute);font-size:13px}
.uyg-list.is-empty .uyg-empty{display:block}

.uyg-solo .uyg-card{margin:1.6em 0}

@media (max-height:620px){ .uyg-bar{position:static} }
@media (max-width:640px){
  .uyg-grid{grid-template-columns:1fr}
  .uyg-term{padding:16px 16px 15px}
  .uyg-term-name{font-size:19px}
  .uyg-term-cat{margin-left:0}
}
@media (prefers-reduced-motion:reduce){ .uyg *{transition:none !important} }

/* 会話の吹き出しの字が本文より小さかったのでそろえる */
.uyg-talk .dbp-voice-text p{font-size:15.5px;line-height:1.9}
.uyg-talk .dbp-voice-meta-name{font-size:13px}

/* 逆引き（場面から用語を引く） */
.uyg-scenes{margin:1.8em 0 0}
.uyg-scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.uyg-scene{background:#fff;border:1px solid var(--uyg-line);
  border-left:3px solid var(--uyg-gold);border-radius:2px;padding:14px 16px 13px}
.uyg .uyg-scene-h{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;padding:0;
  border:0;background:none;font-size:14.5px;font-weight:800;color:var(--uyg-navy);line-height:1.5}
.uyg .uyg-scene-h::before,.uyg .uyg-scene-h::after{content:none;display:none}
.uyg .uyg-scene-h span{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--uyg-mute)}
.uyg .uyg-scene-terms{margin:0;font-size:14.5px;line-height:2.1}
.uyg-scene-terms a{color:var(--uyg-link);font-weight:700}
.uyg-sep{margin:0 7px;color:#c9d0d8}
