@charset "utf-8";
/* ===== Collapsible TOC (page-scoped) ===== */
.page--power nav.toc { font-size: 0.95rem; line-height: 1.35; width: 100%; box-sizing: border-box; }
.page--power nav.toc.toc--top { 
  margin: .25rem auto .75rem; 
  max-width: var(--content-max); 
  padding: 0 16px; 
  float: none;
  /* Prevent Chrome scroll anchoring from snapping viewport */
  overflow-anchor: none;
}
.page--power nav.toc.toc--top header { display: none; }
.page--power nav.toc.toc--top .toc-mobile-toggle { display: flex !important; }

/* Top-placement TOC: always collapsible card */
.page--power nav.toc.toc--top .toc-mobile-toggle{ 
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 10px 12px; margin: 0 0 6px 0; border: 1px solid #e1e4e8;
  background: #f8f9fa; color: #0f2742; border-radius: 6px; font-weight: 600; cursor: pointer;
  overflow-anchor: none; /* avoid sticky control being an anchor target */
}
.page--power nav.toc.toc--top .toc-mobile-toggle__icon{ width: 1.2em; height: 1.2em; position: relative; }
.page--power nav.toc.toc--top .toc-mobile-toggle__icon::before{ content: "\25BE"; display: inline-block; transform-origin: 50% 50%; transition: transform 160ms ease; }
.page--power nav.toc.toc--top.is-collapsed .toc-mobile-toggle__icon::before{ transform: rotate(-90deg); }
.page--power nav.toc.toc--top ul.toc__menu { border: 1px solid #e1e4e8; border-radius: 6px; padding: 8px 10px; }
.page--power nav.toc.toc--top.is-collapsed ul.toc__menu { display: none !important; }
.page--power nav.toc a { text-decoration: none; width: 100%; box-sizing: border-box; display: block; border: 0 !important; }
.page--power nav.toc a:hover { text-decoration: underline; }
/* Hide toggle by default for sidebar placement (will be overridden for toc--top) */
.page--power nav.toc .toc-mobile-toggle { display: none; }
/* caret button inside anchors */
.page--power nav.toc .toc-caret{
  margin-left: 6px; width: 0.8em; height: 0.8em; border: none; background: transparent; padding: 0; cursor: pointer;
  position: relative; top: 1px;
}
.page--power nav.toc .toc-caret::before{
  content: "\25BE"; /* small down triangle */
  display: inline-block; line-height: 1; font-size: 0.9em; color: #646769;
}
.page--power nav.toc li.is-open > a .toc-caret::before{ content: "\25BE"; transform: rotate(0deg); }
.page--power nav.toc li:not(.is-open) > a .toc-caret::before{ content: "\25B8"; } /* small right triangle */

/* Hide caret now that clicking the text toggles sections */
.page--power nav.toc .toc-caret { display: none !important; }

/* List rhythm */
.page--power nav.toc li { margin: 4px 0; }

/* Collapse child lists under top-level items only when JS is available */
/* Fallback: with JS disabled (html.no-js), submenus remain visible */
.page--power nav.toc > ul.toc__menu > li ul { padding-left: 12px; }
/* Default with JS: collapse submenus until user interacts */
.js .page--power nav.toc > ul.toc__menu > li > ul { display: none; }

/* Ensure anchored headings account for fixed top navigation */
/* remove heading scroll-margin offset; JS handles precise offset */
/* Add offset for headings pulled by TOC; use CSS var updated by JS */
/* default; JS will update precisely */
:root{ 
  --header-offset: 108px; /* For scroll-margin-top */
  --sticky-top: 64px;     /* For sticky positioning */
  --sidebar-width: 320px; 
}
.page--power .page__content h2,
.page--power .page__content h3{ scroll-margin-top: var(--header-offset); }

/* Remove any space for old toggle; anchor stands alone */
.page--power nav.toc .toc-item { display: inline; }

/* Compact long lists when expanded */
.page--power nav.toc ul ul a { display: inline-block; padding: 2px 0; }

/* Mobile & tablet: sidebar stacks; adjust styles */
@media (max-width: 1200px) {
  .page--power nav.toc { font-size: 1rem; }
}

/* ===== Mobile whole-TOC toggle ===== */
@media (max-width: 1200px) {
  /* Sidebar itself is not sticky on mobile */
  .page--power .sidebar__right,
  .page--power .sidebar__right.sticky { 
    position: static !important; 
    top: auto !important; 
    width: 100%; 
    margin-bottom: 12px; 
  }
  .page--power .page__content{ overflow: visible !important; }
  /* Allow sticky content inside the TOC card */
  .dayone-report .sidebar__right .toc,
  .page--power .sidebar__right .toc { overflow: visible !important; }
  
  /* Sticky toggle container prevents jank */
  .page--power nav.toc { position: relative; z-index: auto; width: 100%; }
  .page--power nav.toc .toc-mobile-toggle,
  .page--power nav.toc.toc--top .toc-mobile-toggle{ 
    position: sticky !important;
    top: var(--sticky-top, 64px) !important;
    z-index: 70 !important;
    background: #f8f9fa;
  }
  .page--power nav.toc header { display: none; }
}

/* ===== Desktop sticky behavior ===== */
@media (min-width: 1201px) {
  /* Make sidebar sticky on desktop (placement handled by grid in style.css) */
  .page--power .sidebar__right,
  .page--power .sidebar__right.sticky {
    position: sticky !important;
    top: var(--sticky-top, 80px) !important;
    z-index: 50;
    max-height: calc(100vh - var(--sticky-top, 80px) - 20px);
    overflow-y: auto;
    overflow-x: visible;
    margin: 0 !important;
  }
  
  /* Ensure TOC doesn't have its own scroll */
  .page--power nav.toc {
    max-height: none;
    overflow: visible !important;
    width: 100%;
  }
}

/* Ensure proper z-index hierarchy */
.page--power .topnav { z-index: 100; }
.page--power .sidebar__right { z-index: 50; }
.page--power nav.toc .toc-mobile-toggle { z-index: 70; }

