/* Final reader density rules: local context without duplicate footer controls. */

.md-content__inner > h1:has(+ .s5-reader-shell) {
  margin-bottom: .35rem !important;
}

.s5-reader-shell {
  margin-top: 0 !important;
}

/* The course navigator and end card replace Material's duplicate footer controls. */
body:has(.s5-reader-shell) .md-footer__inner {
  display: none !important;
}

@media (max-width: 800px) {
  /* Keep the entire 32 px library tab outside the reading column. */
  body:has(.s5-reader-shell) .md-content__inner {
    padding-left: 2.25rem !important;
  }

  .md-content__inner > h1:has(+ .s5-reader-shell) {
    margin-bottom: .2rem !important;
  }

  .s5-reader-shell {
    min-height: 0;
    margin: 0 0 .55rem !important;
  }

  /* Previous/next remain available at the end; persistent navigation is the library tab. */
  .s5-reader-topbar,
  .s5-reader-rail {
    display: none !important;
  }

  .s5-reader-direct-toggle {
    position: fixed !important;
    top: 50dvh !important;
    right: auto !important;
    left: 0 !important;
    z-index: 121 !important;
    display: grid !important;
    place-items: center !important;
    width: 32px !important;
    min-width: 32px !important;
    height: 112px !important;
    min-height: 112px !important;
    padding: 0 !important;
    border: 1px solid var(--s5-line-strong) !important;
    border-left: 0 !important;
    background: var(--md-default-bg-color) !important;
    color: var(--s5-text) !important;
    box-shadow: 7px 0 16px color-mix(in srgb, var(--s5-text) 8%, transparent) !important;
    transform: translateY(-50%);
  }

  .s5-reader-direct-toggle > span,
  .s5-reader-direct-toggle > strong,
  .s5-reader-direct-toggle > b {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .s5-reader-direct-toggle::before {
    color: var(--s5-text);
    font-size: .43rem;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    content: 'Biblioteca';
    transform: rotate(180deg);
  }

  .s5-reader-direct-toggle::after {
    position: absolute;
    right: -1px;
    bottom: -1px;
    left: -1px;
    height: 3px;
    background: var(--s5-brand-blue);
    content: '';
  }

  .s5-reader-direct-toggle:hover,
  .s5-reader-direct-toggle:focus-visible {
    background: color-mix(in srgb, var(--s5-brand-blue) 8%, var(--md-default-bg-color)) !important;
    outline: 2px solid var(--s5-brand-blue);
    outline-offset: -2px;
  }

  body.s5-reader-direct-open .s5-reader-direct-toggle {
    opacity: 0;
    pointer-events: none;
  }
}

@media (max-width: 800px) and (max-height: 620px) {
  .s5-reader-direct-toggle {
    top: 54dvh !important;
    height: 96px !important;
    min-height: 96px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .s5-reader-direct-toggle {
    transition: none !important;
  }
}
