/* Floating Article TOC v2.4.0 - CSS confined to its own namespace. */
.fpftoc-root { position: fixed; inset: 0; z-index: 1000; pointer-events: none; font-family: inherit; }
.fpftoc-root *, .fpftoc-root *::before, .fpftoc-root *::after { box-sizing: border-box; }
.fpftoc-root [hidden] { display: none !important; }
.fpftoc-root .fpftoc-trigger, .fpftoc-root .fpftoc-close, .fpftoc-root .fpftoc-item {
  -webkit-appearance: none; appearance: none; cursor: pointer; font-family: inherit;
  text-transform: none; letter-spacing: normal; box-shadow: none; outline-offset: 3px;
}
.fpftoc-root .fpftoc-trigger {
  position: fixed; left: calc(18px + env(safe-area-inset-left, 0px));
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; margin: 0; padding: 10px 18px; border: 0;
  border-radius: 999px; background: #283443; color: #fff;
  font-size: 14px; font-weight: 700; line-height: 1.4;
  box-shadow: 0 3px 14px rgba(0,0,0,.22); pointer-events: auto;
}
.fpftoc-root .fpftoc-trigger:hover, .fpftoc-root .fpftoc-trigger:focus-visible { background: #42566e; color: #fff; }
.fpftoc-root .fpftoc-mobile-text { display: none; }
.fpftoc-root .fpftoc-overlay {
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(18,27,42,.48); pointer-events: auto;
}
.fpftoc-root .fpftoc-panel {
  display: flex; flex-direction: column; width: 80vw; height: 80vh; height: 80dvh;
  min-width: 0; overflow: hidden; margin: 0; padding: 0; border: 1px solid #dce0e5;
  border-radius: 14px; background: #fff; color: #29313b;
  box-shadow: 0 12px 44px rgba(0,0,0,.24);
}
.fpftoc-root .fpftoc-header {
  position: relative; flex: none; display: flex; justify-content: center; align-items: center;
  min-height: 56px; margin: 0; padding: 12px 56px;
  background: #fff; border-bottom: 1px solid #e7e9ed;
  color: #29313b; font-size: 17px; line-height: 1.5; text-align: center;
}
.fpftoc-root .fpftoc-header strong { font-weight: 700; }
.fpftoc-root .fpftoc-close {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; margin: 0; padding: 0; border: 0; border-radius: 8px;
  background: transparent; color: #29313b; font-size: 26px; font-weight: 400; line-height: 1;
}
.fpftoc-root .fpftoc-close:hover, .fpftoc-root .fpftoc-close:focus-visible { background: #eef1f5; color: #29313b; }
.fpftoc-root .fpftoc-scroll {
  flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto;
  overscroll-behavior: contain; margin: 0; padding: 18px clamp(14px, 4vw, 32px) 24px;
  background: #fff;
}
.fpftoc-root .fpftoc-item {
  display: block; width: 100%; max-width: 100%; min-width: 0;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  margin: 0; padding: 10px 12px; border-radius: 5px; background: transparent;
  color: #29313b; text-align: left; text-decoration: none;
  font-size: 14px; line-height: 1.5; word-break: normal;
}
.fpftoc-root .fpftoc-level-h2 {
  margin: 4px 0; padding: 10px 12px; border: 0; border-left: 3px solid #64748b;
  border-radius: 4px; background: #f2f5f9; font-weight: 700;
}
.fpftoc-root .fpftoc-level-h3 {
  width: calc(100% - 22px); margin: 2px 0 6px 22px;
  padding: 8px 10px 8px 14px; border: 0; border-left: 2px solid #d9e2ed;
  background: transparent; font-weight: 400;
}
.fpftoc-root .fpftoc-item:hover, .fpftoc-root .fpftoc-item:focus-visible {
  background: #e8eff8; color: #1a426b;
}
/* Visible current heading: keep the H2/H3 hierarchy styles intact. */
.fpftoc-root .fpftoc-item.fpftoc-active {
  background: #deebf8; color: #185a91;
  box-shadow: inset 3px 0 0 #287aba;
  font-weight: 700;
}
@media (max-width: 767px) {
  .fpftoc-root .fpftoc-desktop-text { display: none; }
  .fpftoc-root .fpftoc-mobile-text { display: inline; }
  .fpftoc-root .fpftoc-trigger { left: calc(12px + env(safe-area-inset-left, 0px)); bottom: var(--fpftoc-mobile-bottom, calc(12px + env(safe-area-inset-bottom, 0px))); padding: 10px 14px; }
  .fpftoc-root .fpftoc-scroll { padding: 10px 12px 18px; }
  .fpftoc-root .fpftoc-item { font-size: 13px; }
  .fpftoc-root .fpftoc-level-h3 { width: calc(100% - 16px); margin-left: 16px; padding-left: 10px; }
}

/* Keep THE THOR's open slide-out menu above the floating TOC, regardless
   of any site-specific custom z-index applied to the theme menu. */
@supports selector(body:has(.menuBtn__checkbox:checked)) {
  body:has(.menuBtn__checkbox:checked) .fpftoc-root { visibility: hidden; }
}
