.glossary-page { max-width: 1060px; }
.glossary-page h1 { font-size: clamp(2.1rem, 5vw, 3rem); margin-bottom: .6rem; }
.glossary-page .trail { margin-bottom: 1.2rem; }
.glossary-intro { margin: 0 0 1.5rem; }
#glossary-search { background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--forest); padding: 1.25rem; font-family: Arial, sans-serif; }
#glossary-search label { display: block; font-weight: 700; margin-bottom: .65rem; }
.glossary-search-row { display: flex; gap: .6rem; align-items: start; }
.glossary-input-wrap { position: relative; flex: 1; min-width: 0; }
#glossary-query { width: 100%; min-width: 0; min-height: 52px; border: 2px solid var(--forest); padding: .65rem .8rem; background: #fff; color: var(--ink); border-radius: 4px; font: inherit; }
.glossary-page button { min-height: 52px; padding: .65rem .9rem; border: 2px solid var(--forest); border-radius: 4px; background: var(--forest); color: white; font: inherit; font-weight: 700; cursor: pointer; }
.glossary-page button.secondary { background: transparent; color: var(--forest); }
.glossary-page :focus-visible { outline: 3px solid #ae7800; outline-offset: 3px; }
#glossary-hint, #glossary-status { font-size: 1rem; line-height: 1.5; }
#glossary-hint { margin: .8rem 0 0; }
#glossary-suggestions { position: absolute; z-index: 20; top: 100%; left: 0; width: 100%; list-style: none; margin: .3rem 0 0; padding: .25rem; background: #fff; border: 2px solid var(--forest); border-radius: 4px; box-shadow: 0 8px 20px #17352a26; max-height: 21rem; max-height: min(21rem, 48svh); overflow-y: auto; overscroll-behavior: contain; }
#glossary-suggestions li { padding: .75rem; min-height: 48px; border-bottom: 1px solid var(--line); cursor: pointer; line-height: 1.4; }
#glossary-suggestions li:last-child { border: 0; }
#glossary-suggestions li:hover, #glossary-suggestions li[aria-selected="true"] { background: #e6efe7; outline: 2px solid var(--forest); outline-offset: -2px; }
#glossary-suggestions strong, #glossary-suggestions span { display: block; }
#glossary-suggestions span { font-size: 1rem; margin-top: .2rem; }
.glossary-alphabet { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 2rem; overflow: visible; }
.glossary-alphabet a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .4rem .6rem; border: 1px solid var(--line); background: var(--paper); color: var(--forest); border-radius: 3px; font-size: 1.125rem; }
.glossary-letter { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1.2rem; margin-bottom: 1.7rem; }
.glossary-letter > h2 { font-size: 2rem; padding-top: 1.1rem; }
.glossary-entry { border-top: 1px solid var(--line); padding: 1.15rem 0 1.4rem; scroll-margin-top: calc(var(--site-header-height, 12rem) + 1rem); overflow-wrap: anywhere; }
.glossary-entry h3 { font-size: 1.5rem; margin: 0 0 .2rem; line-height: 1.3; }
.glossary-entry p { margin: .5rem 0 0; }
.glossary-entry .term-category { font-family: Arial, sans-serif; color: #486353; font-size: 1rem; margin: 0; }
.glossary-entry .see-also { font-size: 1rem; margin-top: .65rem; }
.glossary-entry:target { background: #fff8df; box-shadow: -.6rem 0 0 #d5a744; padding-left: .8rem; padding-right: .8rem; }
.glossary-letter > h2 { scroll-margin-top: calc(var(--site-header-height, 12rem) + 1rem); }
.glossary-sources { border-top: 2px solid var(--forest); padding-top: 1.5rem; margin-top: 2rem; }
.glossary-sources h2 { font-size: 1.65rem; }
.glossary-sources li { margin: .6rem 0; overflow-wrap: anywhere; }
#glossary-empty p { margin-top: 0; }
@media (max-width: 42rem) {
  .glossary-search-row { flex-wrap: wrap; }
  .glossary-input-wrap { flex-basis: 100%; }
  .glossary-search-row button { flex: 1; }
  #glossary-search { padding: 1rem; }
  .glossary-letter { grid-template-columns: 1.7rem minmax(0, 1fr); gap: .6rem; }
  .glossary-letter > h2 { font-size: 1.5rem; }
}
@media print {
  #glossary-search, #glossary-status, .glossary-alphabet, #glossary-empty { display: none !important; }
  .glossary-page > h1 { display: block !important; }
  .glossary-letter[hidden] { display: grid !important; }
  .glossary-entry[hidden] { display: block !important; }
  .glossary-entry { break-inside: avoid; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
