:root{
  --navy:#173b57;--blue:#246a8a;--pale:#eaf4f8;--ink:#193247;--muted:#536a79;
  --line:#cad9e1;--bg:#f4f7f9;--paper:#fff;--gold:#f1bf4a;--green:#28744e;
  --red:#a34235;--softgreen:#e7f4eb;--yellow:#fff5d6
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:#075c86}

/* ---- shared site navigation (injected by nav.js) ---- */
#siteNav{background:linear-gradient(120deg,#173b57,#246a8a);color:#fff}
#siteNav .navwrap{max-width:1120px;margin:auto;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
#siteNav .brand{color:#fff;font-weight:800;font-size:1.15rem;text-decoration:none;white-space:nowrap}
#siteNav .classlinks{display:flex;gap:6px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
#siteNav .classlinks>li{position:relative}
#siteNav .classlinks>li>button{
  background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);
  border-radius:9px;padding:7px 12px;font:inherit;font-weight:650;cursor:pointer
}
#siteNav .classlinks>li.has-pages>button{background:rgba(255,255,255,.22)}
#siteNav .classlinks>li>button:hover{background:rgba(255,255,255,.3)}
#siteNav .classlinks>li.current>button{background:var(--gold);color:var(--navy);border-color:var(--gold)}
#siteNav .dropdown{
  display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:200px;
  background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 25px #173b5733;
  padding:6px;z-index:40
}
#siteNav .classlinks>li.open .dropdown{display:block}
#siteNav .dropdown a{display:block;padding:8px 10px;border-radius:7px;color:var(--ink);text-decoration:none;font-size:.95rem}
#siteNav .dropdown a:hover{background:var(--pale)}
#siteNav .dropdown .empty{padding:8px 10px;color:var(--muted);font-size:.9rem;font-style:italic}
#siteNav .dropdown a.active{background:var(--navy);color:#fff}
@media(max-width:680px){
  #siteNav .classlinks{width:100%}
  #siteNav .classlinks>li{flex:1 1 auto}
  #siteNav .classlinks>li>button{width:100%}
}

/* ---- homepage topic slider ---- */
#topicSlider{text-align:left;margin-top:34px}
#topicSlider h2{color:var(--navy);font-size:1.2rem;margin:0 0 10px}
.classPicker{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}
.classPicker button{
  border:1px solid var(--line);border-radius:99px;padding:7px 14px;background:#fff;
  color:var(--navy);font:inherit;font-weight:650;cursor:pointer
}
.classPicker button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
.classPicker button:hover{filter:brightness(.97)}
.sliderRow{display:flex;align-items:center;gap:10px}
.sliderArrow{
  flex:0 0 auto;border:1px solid var(--line);border-radius:99px;width:40px;height:40px;
  background:#fff;color:var(--navy);font-size:1.3rem;font-weight:700;cursor:pointer;line-height:1
}
.sliderArrow:hover{background:var(--pale)}
.sliderArrow:disabled{opacity:.35;cursor:default}
.sliderTrack{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:118px}
.topicCard{
  display:flex;flex-direction:column;justify-content:center;gap:4px;
  border:1px solid var(--line);border-radius:12px;padding:16px;background:#f9fbfc;
  text-decoration:none;color:var(--ink);min-height:96px;transition:transform .12s, box-shadow .12s
}
.topicCard:hover{transform:translateY(-2px);box-shadow:0 8px 18px #173b5722;background:var(--pale)}
.topicCard b{color:var(--navy);font-size:1.02rem}
.topicCard span{color:var(--muted);font-size:.88rem}
.topicCard.empty{align-items:center;text-align:center;color:var(--muted);font-style:italic;background:#fff}
.sliderDots{display:flex;gap:6px;justify-content:center;margin-top:10px}
.sliderDots span{width:7px;height:7px;border-radius:99px;background:var(--line);display:inline-block}
.sliderDots span.active{background:var(--navy)}
@media(max-width:720px){
  .sliderTrack{grid-template-columns:1fr}
}

/* ---- password gate overlay (injected by gate.js) ---- */
#pwGateOverlay{
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(120deg,#173b57,#246a8a);
  display:flex;align-items:center;justify-content:center;padding:18px
}
#pwGateOverlay .pwGateBox{
  background:#fff;border-radius:15px;padding:clamp(22px,5vw,36px);
  max-width:360px;width:100%;text-align:center;box-shadow:0 20px 50px #0003
}
#pwGateOverlay h1{color:var(--navy);font-size:1.4rem;margin:0 0 8px}
#pwGateOverlay p{color:var(--muted);margin:0 0 16px}
#pwGateOverlay form{display:flex;gap:8px}
#pwGateOverlay input[type=password]{
  flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font:inherit
}
#pwGateOverlay button{
  border:0;border-radius:9px;padding:10px 16px;background:var(--navy);color:#fff;
  font-weight:650;cursor:pointer
}
#pwGateOverlay button:hover{filter:brightness(1.1)}
#pwGateOverlay .pwGateError{color:var(--red);font-weight:650;min-height:1.4em;margin:10px 0 0}
