:root { --ink:#17242b; --muted:#61727c; --line:#d7e3e8; --paper:#fff; --soft:#f4f8fa; --blue:#1f6f8b; --blue-dark:#174f63; font-family: Arial, Helvetica, sans-serif; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); line-height:1.58; background:#fff; }
a { color:var(--blue-dark); text-underline-offset:.18em; }
.site-masthead { background:linear-gradient(rgba(248,251,252,.9),rgba(248,251,252,.9)), url("cog.png") 0 0 / 25px 25px repeat; border-bottom:1px solid var(--line); }
.site-masthead-inner { max-width:1220px; margin:0 auto; min-height:96px; padding:18px 32px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.logo img { width:clamp(150px,15vw,210px); height:auto; display:block; }
.site-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:18px; font-size:15px; }
.site-nav a { color:var(--ink); text-decoration:none; }
.course-link { padding:11px 17px; border-radius:999px; background:var(--blue); color:#fff !important; font-weight:700; }
.report-strip { border-bottom:1px solid var(--line); background:#f8fbfc; }
.report-strip-inner { max-width:1220px; margin:0 auto; padding:14px 32px; display:flex; justify-content:space-between; gap:18px; color:var(--muted); }
main, .layout, footer div { max-width:1220px; margin:0 auto; }
.hero { padding:38px 32px 26px; }
.kicker { margin:0 0 8px; color:var(--blue-dark); font-weight:700; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(34px,4vw,54px); line-height:1.08; letter-spacing:0; }
.lede { max-width:760px; color:#263841; font-size:19px; margin:16px 0 0; }
.layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:34px; padding:30px 32px 58px; }
.sidebar { border-right:1px solid var(--line); padding-right:22px; }
.sidebar h2 { font-size:16px; margin:0 0 12px; }
.sidebar ol { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.sidebar a { text-decoration:none; color:var(--ink); }
.sidebar a.active { color:var(--blue-dark); font-weight:700; }
.content { max-width:830px; }
.content h1 { font-size:36px; margin:0 0 18px; }
.content h2 { font-size:23px; margin:32px 0 10px; }
p { margin:0 0 15px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-top:26px; }
.card { border:1px solid var(--line); border-radius:8px; padding:20px; background:var(--paper); box-shadow:0 7px 18px rgba(23,36,43,.05); }
.card h2 { margin:0 0 8px; font-size:21px; }
.card p { margin:0; color:var(--muted); }
.breadcrumb { color:var(--muted); font-size:14px; margin:0 0 16px; }
.report-figure { margin:28px auto; text-align:center; }
.report-figure img { display:block; max-width:min(100%, var(--figure-width, 720px)); height:auto; margin:0 auto; }
.report-figure figcaption, .caption-only { color:var(--muted); font-size:14px; margin-top:8px; }
.missing-figure { border:1px dashed #b7791f; background:#fff8e8; border-radius:8px; padding:18px; margin:24px 0; color:#5d4316; display:grid; gap:6px; }
.bullet-list { margin:0 0 18px 22px; }
.endnote-ref { display:inline-block; color:var(--blue-dark); font-size:.82em; font-weight:700; line-height:1; text-decoration:none; position:relative; padding:0 .08em; border-radius:3px; }
.endnote-ref:hover, .endnote-ref:focus { background:#e8f3f7; outline:none; }
.endnote-ref::after { content:attr(data-note); position:absolute; left:50%; bottom:1.45em; transform:translateX(-50%); width:min(360px, 70vw); padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 12px 30px rgba(23,36,43,.16); font-size:13px; font-weight:400; line-height:1.42; text-align:left; opacity:0; pointer-events:none; z-index:20; }
.endnote-ref:hover::after, .endnote-ref:focus::after { opacity:1; }
.endnotes { margin:34px 0 0; padding:20px 22px; border-top:1px solid var(--line); background:#f8fbfc; }
.endnotes h2 { margin:0 0 12px; font-size:20px; }
.endnotes ul { margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.endnotes li { color:var(--muted); font-size:14px; line-height:1.48; }
.endnote-number { color:var(--ink); font-weight:700; }
.endnote-backref { margin-left:.35em; font-size:13px; }
.notes-list { padding-left:24px; display:grid; gap:10px; }
.notes-list li { padding-left:4px; }
.section-pager { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; margin-top:38px; padding-top:20px; border-top:1px solid var(--line); }
.section-pager a { font-weight:700; text-decoration:none; }
.section-pager-next { text-align:right; }
footer { border-top:1px solid var(--line); color:var(--muted); font-size:14px; }
footer div { padding:22px 32px; }
.ad-slot {
  margin: 28px auto;
  padding: 0;
  width: min(100%, 728px);
  min-height: 90px;
}
.ad-slot ins {
  display: block;
}
@media (max-width: 760px) {
  .ad-slot {
    width: min(100%, 336px);
    min-height: 280px;
  }
}

.acronym-term,
.reference-term {
  position: relative;
  border-bottom: 1px dotted currentColor;
  cursor: help;
  text-decoration: none;
}
.acronym-term:focus,
.reference-term:focus {
  outline: 2px solid rgba(31, 111, 139, 0.28);
  outline-offset: 2px;
}
.acronym-term::after,
.reference-term::after {
  position: absolute;
  left: 50%;
  bottom: 1.55em;
  transform: translateX(-50%);
  z-index: 40;
  width: min(360px, 78vw);
  padding: 0.75rem 0.85rem;
  border: 1px solid #d7e3e8;
  border-radius: 8px;
  background: #ffffff;
  color: #17242b;
  box-shadow: 0 14px 32px rgba(23, 36, 43, 0.18);
  font-size: 0.86rem;
  font-weight: 400;
  line-height: 1.38;
  text-align: left;
  white-space: normal;
  opacity: 0;
  pointer-events: none;
}
.acronym-term::after {
  content: attr(data-definition);
}
.reference-term::after {
  content: attr(data-reference-preview);
}
.acronym-term:hover::after,
.acronym-term:focus::after,
.reference-term:hover::after,
.reference-term:focus::after {
  opacity: 1;
}
@media (max-width: 760px) {
  .acronym-term::after,
  .reference-term::after {
    position: fixed;
    right: 20px;
    bottom: 20px;
    left: 20px;
    width: auto;
    max-width: none;
    transform: none;
  }
  .acronym-term:hover::after,
  .acronym-term:focus::after,
  .reference-term:hover::after,
  .reference-term:focus::after {
    transform: none;
  }
}

@media (max-width:820px){ .site-masthead-inner,.report-strip-inner{align-items:flex-start; flex-direction:column;} .site-nav{justify-content:flex-start;gap:12px;} .layout{grid-template-columns:1fr;} .sidebar{border-right:0;border-bottom:1px solid var(--line);padding:0 0 18px;} }
