/* =========================
   GLOBAL TOC (book-style)
========================= */
#cblGlobalToc{
  max-width:1200px;
  margin:18px auto 0;
  padding:0 12px;
}
.cbl-toc-card{
  background:#ffffff;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:16px;
}
.cbl-toc-title{
  font-weight:900;
  font-size:18px;
  color:#0f172a;
}
.cbl-toc-sub{
  margin-top:4px;
  color:#475569;
  font-weight:700;
  font-size:13px;
}
.cbl-toc-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-top:12px;
}
@media (max-width:980px){
  .cbl-toc-grid{ grid-template-columns:1fr; }
}
.cbl-toc-btn{
  border:1px solid #d1d5db;
  background:#f8fafc;
  border-radius:12px;
  padding:12px;
  cursor:pointer;
  text-align:left;
  font-weight:900;
  color:#0f172a;
}
.cbl-toc-btn:hover{ background:#f1f5f9; }

/* =========================
   DOC TOC (chips)
========================= */
#cblDocToc{
  margin:0 0 12px 0;
}
.cbl-doc-toc{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:12px;
}
.cbl-doc-toc-title{
  font-weight:900;
  color:#0f172a;
  margin-bottom:8px;
}
.cbl-doc-toc-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.cbl-chip{
  border:1px solid #d1d5db;
  background:#ffffff;
  border-radius:999px;
  padding:8px 10px;
  font-weight:900;
  cursor:pointer;
  color:#0f172a;
}
.cbl-chip:hover{ background:#f1f5f9; }

/* =========================
   STRUCTURED TEXT LINES + HIT HIGHLIGHT
========================= */
#cblText{ white-space:normal; }
.cbl-line{
  white-space:pre-wrap;
  padding:1px 0;
}
.cbl-line.is-hit{
  background:#fff7ed;
  outline:2px solid #fdba74;
  border-radius:6px;
  padding:6px;
}

/* =========================
   BOTTOM TICKER
========================= */
#cblTicker{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:9999;
  display:none;
}
#cblTicker.is-on{ display:block; }

.cbl-ticker-wrap{
  border-top:1px solid #e5e7eb;
  background:#0b1220;
  color:#ffffff;
  padding:10px 0;
  overflow:hidden;
}
.cbl-ticker-track{
  display:inline-flex;
  gap:14px;
  padding-left:100%;
  animation:cblMarquee 42s linear infinite;
  align-items:center;
  white-space:nowrap;
}
.cbl-tick{
  background:transparent;
  border:1px solid rgba(255,255,255,.25);
  color:#ffffff;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.cbl-tick:hover{ border-color:#ffffff; }
.cbl-tick-sep{
  color:rgba(255,255,255,.35);
  font-weight:900;
}

@keyframes cblMarquee{
  0%   { transform:translateX(0); }
  100% { transform:translateX(-100%); }
}

/* ONLY add bottom room when ticker is on */
body.cbl-has-ticker{ padding-bottom:72px; }
@media (max-width:800px){
  body.cbl-has-ticker{ padding-bottom:86px; }
}