/* Native module disclosures: keyboard and touch friendly, no animation dependency. */
.module-toggle-all {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46px;
  margin-top: 14px;
  padding: 10px 16px;
  border: 1px solid #595357;
  border-radius: 5px;
  background: #1c1d20;
  color: var(--white);
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
}
.module-toggle-all:hover:not(:disabled) { border-color: var(--accent); background: #252124; }
.module-toggle-all:disabled { opacity: .5; cursor: default; }
.module-list .module { padding-block: 0; }
.module-list .module-heading {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto 24px;
  align-items: center;
  gap: 10px 15px;
  min-height: 76px;
  padding-block: 22px;
  list-style: none;
  cursor: pointer;
}
.module-heading::-webkit-details-marker { display: none; }
.module-heading::marker { content: ''; }
.module-heading h3 { margin: 0; overflow-wrap: anywhere; }
.module-heading .module-number { align-self: start; padding-top: 3px; }
.module-heading .module-meta {
  color: #b7babe;
  font-size: .8rem;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
}
.module-heading .module-mark {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: var(--accent-text);
  font-size: 1.55rem;
  font-weight: 400;
  line-height: 1;
  transition: transform .2s ease;
}
.module[open] > .module-heading .module-mark { transform: rotate(45deg); }
.module-heading:hover h3 { color: #fff; }
.module-heading:focus-visible { position: relative; z-index: 1; outline-offset: -3px; border-radius: 4px; }
.module-content { padding: 0 0 26px; }
.module-content .module-topics { margin-top: 0; }
.module-content .module-pro { margin-bottom: 0; }
@media (max-width: 860px) {
  .module-toggle-all { grid-column: 1 / -1; margin-top: 0; }
}
@media (max-width: 600px) {
  .module-toggle-all { margin-top: 12px; min-height: 48px; font-size: .95rem; }
  .module-list .module-heading {
    grid-template-columns: 24px minmax(0, 1fr) 24px;
    gap: 6px 11px;
    min-height: 80px;
    padding-block: 20px;
  }
  .module-heading .module-number { grid-column: 1; grid-row: 1; }
  .module-heading h3 { grid-column: 2; grid-row: 1; }
  .module-heading .module-meta { grid-column: 2; grid-row: 2; white-space: normal; font-size: .8rem; }
  .module-heading .module-mark { grid-column: 3; grid-row: 1 / 3; }
  .module-content { padding-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .module-heading .module-mark { transition: none; }
}
