@font-face {
  font-family: 'Hack';
  src: url('fonts/hack-regular.woff2') format('woff2'), url('fonts/hack-regular.woff2') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

html {
  font-size: 12px;
}

body {
  font-family: 'Hack', sans-serif !important;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

/* --- navbar: logo + name --- */
.navbar-brand.logo {
  font-weight: 700;
  letter-spacing: 0.02em;
}

/* --- table of contents accordion --- */
.toc-title {
  font-size: 1.25rem;
  margin-bottom: 1.5rem;
}

.accordion-item > .accordion-summary {
  padding: 0.5rem 0;
  cursor: pointer;
  list-style: none;
}

.accordion-summary::-webkit-details-marker {
  display: none;
}

.accordion-summary::marker {
  content: '';
}

.accordion-summary::before {
  display: inline-block;
  width: 1em;
  margin-right: 0.5em;
  content: '\25B8'; /* ▸ */
}

details[open] > .accordion-summary::before {
  content: '\25BE'; /* ▾ */
}

.accordion-content {
  padding: 0 0 0.25rem 1.5em;
  color: #333;
  white-space: pre-line;
}

.accordion-readmore {
  padding: 0 0 0.75rem 1.5em;
}

.accordion-children {
  margin: 0 0 0.5rem 1.5em;
  padding-left: 0.75rem;
}

/* --- login form --- */
.login-card {
  max-width: 22rem;
  margin-top: 3rem;
}

/* --- article editor --- */
.editor-toolbar {
  background-color: #f2f2f2;
  padding: 0.5rem 0.75rem;
}

.editor-pane {
  min-height: 26rem;
  overflow-y: auto;
}

textarea.editor-pane {
  font-family: 'Hack', monospace;
  resize: vertical;
}

/* --- article view --- */
.article-page {
  max-width: 42rem;
  margin-inline: auto;
}

.article-title {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}

.article-content :first-child {
  margin-top: 0;
}