/* O cartão recorta os cantos; a coluna verde acompanha todo o conteúdo.
   Somente o conteúdo do menu fica preso à janela durante a rolagem. */
@media (min-width: 851px) {
  body.app-pages-page,
  body.courses-page {
    --frame-gap: 30px;
    --frame-gutter: 34px;
    --rail-width: 238px;
    padding: var(--frame-gap) var(--frame-gutter) !important;
    overflow-x: clip;
  }

  body.app-pages-page .app-pages-frame,
  body.courses-page .app-frame {
    grid-template-columns: var(--rail-width) minmax(0, 1fr) !important;
    min-height: calc(100vh - 2 * var(--frame-gap));
    margin: 0 auto;
    align-items: stretch;
    border-radius: 30px !important;
    overflow: clip !important;
    background: linear-gradient(90deg, #24543A 0 var(--rail-width), #FFFDF8 var(--rail-width) 100%) !important;
  }

  body.app-pages-page .courses-sidebar,
  body.courses-page .courses-sidebar {
    position: relative !important;
    top: auto !important;
    align-self: stretch !important;
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0;
    border-radius: 0 !important;
    background: #24543A !important;
  }

  .courses-sidebar > .sidebar-content {
    position: sticky;
    top: var(--frame-gap);
    display: flex;
    flex-direction: column;
    height: calc(100vh - 2 * var(--frame-gap));
    min-height: 0;
    padding: 34px 20px 23px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
}

@media (min-width: 851px) and (max-width: 1250px) {
  body.app-pages-page,
  body.courses-page {
    --frame-gap: 20px;
    --frame-gutter: 20px;
    --rail-width: 214px;
  }

  .courses-sidebar > .sidebar-content { padding: 27px 15px 19px; }
}
