/* glossary_app.css (scoped) */
.fn-glossary{
  --fn-text: var(--basic_text_black, #111);
  --fn-muted: rgba(0,0,0,.65);
  --fn-border: rgba(0,0,0,.10);
  --fn-card: #fff;
  --fn-shadow: 0 14px 36px rgba(0,0,0,.06);
  --fn-shadow-sm: 0 10px 24px rgba(0,0,0,.06);
  --fn-chip: rgba(0,0,0,.035);
  --fn-chip-active: #111;
  --fn-chip-active-text: #fff;
  --fn-radius: 16px;
  color: var(--fn-text);
}
.fn-glossary *{ box-sizing:border-box; }
.fn-glossary .fn-wrap{ margin:0 auto; }
.fn-glossary .fn-h1{ margin:0 0 8px; font-size:clamp(22px,3vw,40px); line-height:1.1; letter-spacing:-.2px;}
.fn-glossary .fn-lead{ margin:0; color:var(--fn-muted); max-width:78ch; font-size:15px; line-height:1.55;}
.fn-glossary .fn-head{ margin-bottom:16px; }

.fn-glossary .fn-toolbar{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; margin: 16px 0 14px; }
.fn-glossary .fn-search{ flex:1 1 520px; min-width:260px; }
.fn-glossary .fn-search__label{ display:block; font-size:12px; color:var(--fn-muted); margin-bottom:6px; }
.fn-glossary .fn-search__row{ position:relative; display:flex; gap:10px; align-items:center; }
.fn-glossary .fn-search__input{
  width:100%;
  padding:12px 42px 12px 14px;
  border-radius:14px;
  border:1px solid var(--fn-border);
  background:#fff;
  outline:none;
  font-size:14px;
}
.fn-glossary .fn-search__input:focus{ border-color:rgba(0,0,0,.25); box-shadow:0 0 0 3px rgba(0,0,0,.06); }
.fn-glossary .fn-search__clear{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  width:28px; height:28px; border-radius:10px;
  border:1px solid rgba(0,0,0,.10); background:rgba(0,0,0,.03);
  cursor:pointer; display:none;
}
.fn-glossary .fn-search__clear:hover{ background:rgba(0,0,0,.06); }
.fn-glossary .fn-search__btn{ padding:12px 14px; border-radius:14px; border:1px solid rgba(0,0,0,.12); background:#111; color:#fff; font-weight:700; cursor:pointer; }
.fn-glossary .fn-search__btn:hover{ opacity:.92; }

.fn-glossary .fn-stats{
  display:flex; gap:8px; align-items:baseline;
  padding:10px 12px; border:1px solid var(--fn-border); border-radius:14px;
  background: rgba(255,255,255,.7); box-shadow: var(--fn-shadow-sm);
}
.fn-glossary .fn-stats__count{ font-weight:800; letter-spacing:.2px; }
.fn-glossary .fn-stats__hint{ color:var(--fn-muted); font-size:12.5px; }

.fn-glossary .fn-cats{ display:flex; gap:10px; flex-wrap:wrap; margin: 10px 0 16px; }
.fn-glossary .fn-chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 12px; border-radius:999px;
  border:1px solid var(--fn-border);
  background: var(--fn-chip);
  color: var(--fn-text);
  text-decoration:none;
  font-size:13px;
  transition: transform .12s ease, box-shadow .12s ease;
}
.fn-glossary .fn-chip:hover{ transform:translateY(-1px); box-shadow: var(--fn-shadow-sm); }
.fn-glossary .fn-chip.is-active{
  background:#111; color:#fff; border-color:rgba(0,0,0,.20);
}
.fn-glossary .fn-chip__count{ opacity:.75; font-size:12px; }

.fn-glossary .fn-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; }
@media (max-width:860px){ .fn-glossary .fn-grid{ grid-template-columns:1fr; } }

.fn-glossary .fn-card{
  background: var(--fn-card);
  border:1px solid var(--fn-border);
  border-radius: var(--fn-radius);
  box-shadow: var(--fn-shadow);
  padding:14px;
  display:flex; gap:14px; align-items:flex-start;
}

.fn-glossary .fn-num{
  width:30px; height:30px; border-radius:999px;
  background:#111; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:13px;
  box-shadow: 0 10px 20px rgba(0,0,0,.18);
  margin-top:6px;
  flex:0 0 auto;
}

.fn-glossary .fn-media{
  width:120px; height:92px; border-radius:14px; overflow:hidden;
  border:1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.03);
  flex: 0 0 auto;
  display:flex; align-items:center; justify-content:center;
  color: rgba(0,0,0,.4);
  font-size:12px;
}
.fn-glossary .fn-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.fn-glossary .fn-media__empty{ padding:10px; }

.fn-glossary .fn-title{ margin:0 0 6px; font-size:16px; line-height:1.25; letter-spacing:-.1px; }
.fn-glossary .fn-teaser{
  margin:0;
  color: var(--fn-muted);
  font-size:13.5px; line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

.fn-glossary .fn-card.is-teaser-open .fn-teaser{
  display:block;
  -webkit-line-clamp: initial;
  -webkit-box-orient: initial;
  overflow: visible;
}

.fn-glossary .fn-actions{ margin-top:10px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }

.fn-glossary .fn-more{
  border:1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.04);
  border-radius:12px;
  padding:9px 12px;
  font-weight:700;
  font-size:13px;
  cursor:pointer;
}
.fn-glossary .fn-more:hover{ background:rgba(0,0,0,.07); }

.fn-glossary .fn-readmore{
  border:0;
  background: transparent;
  padding:0;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  color: var(--fn-text);
  opacity:.9;
  text-decoration: underline;
  text-underline-offset:2px;
}
.fn-glossary .fn-readmore:hover{ opacity:1; }

.fn-glossary .fn-link{
  font-size:13px;
  color: var(--fn-text);
  opacity:.9;
  text-decoration: underline;
  text-underline-offset:2px;
}

.fn-glossary .fn-details{
  margin-top:10px;
  border-top:1px dashed rgba(0,0,0,.18);
  padding-top:10px;
  display:none;
}
.fn-glossary .fn-details.is-open{ display:block; }

.fn-glossary .fn-details p{
  margin:0;
  color: rgba(0,0,0,.78);
  font-size:13.5px;
  line-height:1.55;
  white-space: pre-wrap;
}

.fn-glossary .fn-empty{
  margin-top: 14px;
  padding: 18px;
  border: 1px dashed rgba(0,0,0,.22);
  border-radius: 18px;
  background: rgba(255,255,255,.7);
}
.fn-glossary .fn-empty h3{ margin:0 0 6px; }
.fn-glossary .fn-empty p{ margin:0 0 12px; color:var(--fn-muted); }
.fn-glossary .fn-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px; border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#111; color:#fff; font-weight:700;
  text-decoration:none;
}
.fn-glossary .fn-btn:hover{ opacity:.92; }