/* Styling the built-in mkdocs (Bootstrap) theme needs for what Material gave us free:
   admonitions, collapsible FAQ blocks, and the numbered step timeline. */

:root {
  --ad-primary: #2fa4e7;
  --ad-border:  var(--bs-border-color, #e1e4e8);
  --ad-muted:   var(--bs-tertiary-bg, #f6f8fa);
}

/* ---- Admonitions (!!! note / warning / danger / tip) ---- */
.admonition {
  border: 1px solid var(--ad-border);
  border-left: 4px solid var(--ad-primary);
  border-radius: 4px;
  background: var(--ad-muted);
  padding: 0.9rem 1rem;
  margin: 1.2rem 0;
}
.admonition > .admonition-title {
  font-weight: 700;
  margin: 0 0 0.4rem;
  color: var(--ad-primary);
}
.admonition > :last-child { margin-bottom: 0; }

.admonition.warning { border-left-color: #d68910; background: #fdf6e8; }
.admonition.warning > .admonition-title { color: #a5670a; }
.admonition.danger  { border-left-color: #c0392b; background: #fdecea; }
.admonition.danger  > .admonition-title { color: #a1281b; }
.admonition.tip     { border-left-color: #16a085; background: #e9f7f4; }
.admonition.tip     > .admonition-title { color: #0e7a64; }
.admonition.info    { border-left-color: #2980b9; background: #eaf2f8; }

/* ---- Collapsible FAQ (??? question) ---- */
details {
  border: 1px solid var(--ad-border);
  border-radius: 4px;
  margin: 0.6rem 0;
  padding: 0.6rem 0.9rem;
  background: var(--bs-body-bg, #fff);
}
details > summary {
  font-weight: 600;
  cursor: pointer;
  color: var(--ad-primary);
  list-style: none;
}
details > summary::-webkit-details-marker { display: none; }
details > summary::before { content: "▸ "; }
details[open] > summary::before { content: "▾ "; }
details[open] > summary { margin-bottom: 0.6rem; }

/* ---- Numbered step timeline ---- */
.steps ol {
  list-style: none;
  counter-reset: step;
  margin: 1.2rem 0;
  padding-left: 0;
}
.steps ol > li {
  counter-increment: step;
  position: relative;
  margin: 0 0 0 1rem;
  padding: 0 0 1.6rem 3.1rem;
  border-left: 2px solid var(--ad-border);
}
.steps ol > li:last-child { border-left-color: transparent; padding-bottom: 0; }
.steps ol > li::before {
  content: counter(step);
  position: absolute;
  left: -1rem;
  top: -0.15rem;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--ad-primary);
  color: #fff;
  font-weight: 700;
  font-size: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 4px var(--bs-body-bg, #fff);
}
.steps ol > li > strong:first-child { display: block; margin-bottom: 0.2rem; }

/* ---- Tables: the built-in theme leaves them unstyled ---- */
table { border-collapse: collapse; margin: 1rem 0; }
table th, table td { border: 1px solid var(--ad-border); padding: 0.5rem 0.7rem; }
table th { background: var(--ad-muted); text-align: left; }

.mermaid { margin: 1.4rem 0; text-align: center; }



/* ---- Task list checkboxes (built-in theme leaves the bullet in place) ---- */
.task-list { list-style: none; padding-left: 0.4rem; }
.task-list-item { margin: 0.25rem 0; }
.task-list-control input[type="checkbox"],
.task-list-item input[type="checkbox"] { margin-right: 0.5rem; }

/* ---- Landing hero ---- */
.hero { text-align: center; padding: 1.5rem 0 0.5rem; }
.hero .headerlink { display: none; }
.hero .btn { margin: 0.25rem; }
.card-body h3 { margin-top: 0; }
