/*
Progressive sections for Quarto HTML.

Default behavior: hide all level-2 sections and show only those
explicitly marked as visible by JS.

We also inject a <noscript> fallback via Quarto config so that if
JavaScript is disabled, all sections render normally.
*/
main section.level2:not(.lr-visible):not(.lr-disabled) {
  display: none !important;
}

main section.level2.lr-visible {
  display: block !important;
}

/* Handle page-columns sections which use different display */
main section.level2.page-columns.lr-visible {
  display: grid !important;
}

/* When feature is disabled, show all sections */
main section.level2.lr-disabled {
  display: block !important;
}

main section.level2.page-columns.lr-disabled {
  display: grid !important;
}

/* Hide level-1 parent sections that contain level-2 children */
main section.level1:has(> section.level2):not(.lr-visible):not(.lr-disabled) {
  display: none !important;
}

main section.level1.lr-visible {
  display: block !important;
}

main section.level1.page-columns.lr-visible {
  display: grid !important;
}

main section.level1.lr-disabled {
  display: block !important;
}

main section.level1.page-columns.lr-disabled {
  display: grid !important;
}

.lr-controls {
  margin-top: var(--spacing-sm);
  margin-bottom: var(--spacing-sm);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--spacing-xs);
}

/* Make sure the button doesn't stretch oddly in narrow layouts */
.lr-controls .lr-next {
  white-space: nowrap;
}

/* Helper text styling - modern, subtle, and accessible */
.lr-helper-text {
  font-size: 0.875rem;
  color: #6c757d;
  font-style: italic;
  white-space: nowrap;
}

/* Responsive: hide helper text on smaller screens */
@media (max-width: 576px) {
  .lr-helper-text {
    display: none;
  }
}

/* Style TOC links - highlight active section and mute unrevealed ones */
#TOC a.nav-link {
  /* Default state - normal */
}

#TOC a.nav-link.active {
  /* Currently revealed section - highlight it */
  font-weight: 600 !important;
  text-decoration: underline !important;
}

/* Toggle control in TOC */
.lr-toc-toggle {
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid #dee2e6;
}

.lr-toggle-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.875rem;
  color: #495057;
  margin: 0;
}

.lr-toggle-label input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  cursor: pointer;
  accent-color: var(--usyd-red, #e64626);
}

.lr-toggle-text {
  user-select: none;
}

/* Hover state */
.lr-toggle-label:hover {
  color: #212529;
}

.lr-toggle-label:hover .lr-toggle-text {
  text-decoration: underline;
}

/* Fix code copy button positioning - ensure consistent positioning context */
.code-copy-outer-scaffold {
  position: relative !important;
}

/* Fix grid layout for page-columns cells */
.cell.page-columns > .code-copy-outer-scaffold {
  grid-column: body-content-start / body-content-end;
  align-self: start;
  display: block;
}

/* Ensure sourceCode div doesn't have weird positioning in page-columns */
.cell.page-columns > .code-copy-outer-scaffold > .sourceCode {
  position: static;
  margin-top: 0;
  padding-top: 0;
}

/* Force button position in page-columns cells */
.cell.page-columns .code-copy-button {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  margin-top: 5px !important;
  margin-right: 5px !important;
}

