/* glossary.css: underline + popover for the shared glossary layer (_shared/glossary.js).
   ONE SOURCE: _shared/glossary.css; site copies are overwritten by _shared/sync-glossary.sh.
   The engine sets <html data-gl-skin="sophron|aic">; every colour is a custom property below.
   The AIC skin reads the options course tokens (--m-*, modules.css), so it follows that page's
   light / dark toggle by itself; the Sophron skin has its own dark set for pages with a toggle. */

:root {
  --gl-accent: #ae1f19;
  --gl-line: rgba(174, 31, 25, .55);
  --gl-bg: #ffffff;
  --gl-ink: #140503;
  --gl-text: #24191a;
  --gl-muted: #6b625f;
  --gl-border: #e6dfdb;
  --gl-shadow: 0 10px 28px rgba(20, 5, 3, .12);
  --gl-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --gl-sans: 'Chivo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --gl-body-font: var(--gl-sans);
}

/* AIC (the options course): the course's own tokens, light and dark */
html[data-gl-skin="aic"] {
  --gl-accent: var(--m-red, #ae1f19);
  --gl-line: var(--m-red-line, rgba(174, 31, 25, .45));
  --gl-bg: var(--m-card, #ffffff);
  --gl-ink: var(--m-ink, #140503);
  --gl-text: var(--m-text, #24191a);
  --gl-muted: var(--m-muted, #6b625f);
  --gl-border: var(--m-line, #e6dfdb);
  --gl-serif: var(--m-serif, 'Newsreader', Georgia, serif);
  --gl-sans: var(--m-sans, 'Chivo', system-ui, sans-serif);
  --gl-body-font: var(--gl-sans);
}
html[data-gl-skin="aic"][data-theme="dark"] {
  --gl-line: var(--m-red-line, rgba(232, 99, 90, .5));
  --gl-shadow: 0 12px 30px rgba(0, 0, 0, .45);
}

/* Sophron: cream, burgundy, Cardo */
html[data-gl-skin="sophron"] {
  --gl-accent: #66100c;
  --gl-line: rgba(102, 16, 12, .5);
  --gl-bg: #f6f3ee;
  --gl-ink: #1c0d0b;
  --gl-text: #2b1d1a;
  --gl-muted: #6d5c58;
  --gl-border: rgba(102, 16, 12, .18);
  --gl-shadow: 0 10px 28px rgba(40, 10, 6, .12);
  --gl-serif: 'Cardo', Georgia, 'Times New Roman', serif;
  --gl-sans: 'Chivo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --gl-body-font: var(--gl-serif);
}
html[data-gl-skin="sophron"][data-theme="dark"] {
  --gl-accent: #e3a29b;
  --gl-line: rgba(227, 162, 155, .55);
  --gl-bg: #1d1010;
  --gl-ink: #f6f3ee;
  --gl-text: #efe8e1;
  --gl-muted: #bfaea9;
  --gl-border: rgba(246, 243, 238, .14);
  --gl-shadow: 0 12px 30px rgba(0, 0, 0, .45);
}

/* the term: a quiet dotted underline, no colour change */
.gl-term {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: var(--gl-line);
  text-decoration-thickness: 1.5px;
  text-underline-offset: .2em;
  text-decoration-skip-ink: auto;
  cursor: help;
  border-radius: 2px;
  -webkit-tap-highlight-color: transparent;
}
.gl-term:hover, .gl-term--on {
  text-decoration-style: solid;
  text-decoration-color: var(--gl-accent);
}
.gl-term:focus { outline: none; }
.gl-term:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: 2px; }

/* the popover */
.gl-pop {
  position: fixed;
  z-index: 10000;
  box-sizing: border-box;
  max-width: 340px;
  width: max-content;
  padding: 12px 16px 14px;
  background: var(--gl-bg);
  color: var(--gl-text);
  border: 1px solid var(--gl-border);
  border-top: 2px solid var(--gl-accent);
  border-radius: 4px;
  box-shadow: var(--gl-shadow);
  font-family: var(--gl-body-font);
  font-size: 15px;
  line-height: 1.5;
  text-align: left;
  letter-spacing: normal;
  text-transform: none;
  font-weight: 400;
  pointer-events: auto;
}
.gl-pop[hidden] { display: none; }
.gl-pop p { margin: 0; }
.gl-pop__t {
  font-family: var(--gl-serif);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--gl-ink);
  margin-bottom: 6px !important;
}
html[data-gl-skin="sophron"] .gl-pop__t { font-weight: 700; color: var(--gl-accent); }
html[data-gl-skin="sophron"][data-theme="dark"] .gl-pop__t { color: var(--gl-accent); }
.gl-pop__d { color: var(--gl-text); }
.gl-pop__e {
  margin-top: 8px !important;
  padding-top: 8px;
  border-top: 1px solid var(--gl-border);
  font-size: 14px;
  color: var(--gl-muted);
}
.gl-pop__e b {
  font-family: var(--gl-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gl-accent);
  margin-right: 6px;
}
.gl-pop__f span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; color: var(--gl-text); }
.gl-pop__more { margin-top: 8px !important; font-size: 13px; }
.gl-pop__more a { color: var(--gl-accent); font-weight: 600; text-decoration: none; }
.gl-pop__more a:hover { text-decoration: underline; }
@media (max-width: 480px) {
  .gl-pop { font-size: 14.5px; padding: 12px 14px 13px; }
}
@media print {
  .gl-pop { display: none !important; }
  .gl-term { text-decoration: none; }
}
