.page-outline { overflow-anchor: none; position: sticky; top: var(--outline-top, 82px); z-index: 94; color: var(--ps-navy); background: #fff; border-block: 1px solid var(--ps-line); box-shadow: 0 5px 16px rgba(9,44,76,.06); }
.page-outline__bar { display: flex; align-items: center; gap: 16px; min-height: 58px; }
.page-outline__label { flex: 0 0 auto; color: var(--ps-muted); font-size: 12px; font-weight: 700; }
.page-outline__current { display: none; }
.page-outline__rail { display: flex; flex: 1; min-width: 0; gap: 5px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: #c6dbe7 transparent; }
.page-outline__rail a { flex: 0 0 auto; padding: 10px 13px; border-radius: 7px; font-size: 13px; font-weight: 700; line-height: 1.5; }
.page-outline a:hover { background: var(--ps-surface); }
.page-outline a[aria-current="location"] { color: #006ca8; background: #e7f5fe; box-shadow: inset 0 -3px #087fc4; font-weight: 800; }
.page-outline__toggle { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 13px; border: 1px solid var(--ps-line); border-radius: 8px; background: white; cursor: pointer; font-size: 13px; font-weight: 700; }
.page-outline__toggle[aria-expanded="true"] { color: #006ca8; background: #e7f5fe; }
.page-outline__toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.page-outline__panel { position: absolute; top: 100%; left: 0; right: 0; max-height: min(65vh, calc(100dvh - var(--outline-top) - 80px)); overflow-y: auto; overscroll-behavior: contain; background: #fff; border-bottom: 1px solid var(--ps-line); box-shadow: 0 16px 22px rgba(9,44,76,.12); }
.page-outline__panel[hidden] { display: none; }
.page-outline__caption { margin: 18px 0 10px; color: var(--ps-muted); font-size: 12px; }
.page-outline ol { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px 16px; margin: 0; padding: 0 0 22px; list-style: none; }
.page-outline li { min-width: 0; }
.page-outline li a { display: flex; align-items: baseline; gap: 10px; min-height: 44px; padding: 10px; border-radius: 7px; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.page-outline-target { scroll-margin-top: var(--outline-offset, 160px) !important; }
@media (max-width: 767px) {
  .page-outline__bar { gap: 10px; min-height: 54px; }
  .page-outline__label, .page-outline__rail { display: none; }
  .page-outline__current { display: block; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 800; }
  .page-outline__toggle { min-height: 44px; padding-inline: 11px; }
  .page-outline ol { grid-template-columns: 1fr; gap: 3px; }
  .page-outline__panel { max-height: min(60vh, calc(100dvh - var(--outline-top) - 76px)); }
}
@media (prefers-reduced-motion: reduce) { html:has(.page-outline) { scroll-behavior: auto; } }
