/* Bootstrap, tuned: Inter, a light header, generous spacing, readable listings. */
:root, [data-bs-theme] {
  --bs-body-font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-font-monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --bs-link-color-rgb: 154, 82, 38; --bs-link-hover-color-rgb: 120, 60, 25;
}
[data-bs-theme="dark"] { --bs-link-color-rgb: 230, 168, 110; --bs-link-hover-color-rgb: 245, 195, 145; }
body { font-feature-settings: "cv11", "ss01"; -webkit-font-smoothing: antialiased; }

.site-nav { background: color-mix(in srgb, var(--bs-body-bg) 85%, transparent); backdrop-filter: blur(8px);
            border-bottom: 1px solid var(--bs-border-color); }
.site-nav .navbar-brand { font-weight: 700; letter-spacing: -.01em; }
.site-nav .nav-link { font-weight: 500; }
.site-nav .nav-link.active { color: rgb(var(--bs-link-color-rgb)); }

.docs-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) { .docs-grid.with-toc { grid-template-columns: 14rem minmax(0, 66rem); column-gap: 3.5rem; } }
.docs-content { min-width: 0; max-width: 66rem; }
.docs-content h1 { font-weight: 700; letter-spacing: -.02em; }
.docs-content h2 { font-weight: 650; letter-spacing: -.01em; margin-top: 2.75rem; padding-top: .5rem; }
.docs-content h3 { font-weight: 600; margin-top: 1.75rem; }
.docs-content p, .docs-content li { line-height: 1.7; }
.docs-content pre { padding: 1rem 1.15rem; border-radius: .6rem; background: var(--bs-tertiary-bg);
                    border: 1px solid var(--bs-border-color); line-height: 1.6; }
.docs-content pre code { font-size: .9rem; color: var(--bs-body-color); }
.docs-content :not(pre) > code { padding: .1em .35em; border-radius: .3rem; background: var(--bs-tertiary-bg);
                                 color: var(--bs-body-color); font-size: .875em; }
/* Listings in plain text color: syntax colors were hard to read; comments stay muted. */
.highlight span { color: inherit !important; font-style: normal !important; }
.highlight :is(.c, .c1, .cm, .ch, .cs, .go) { color: var(--bs-secondary-color) !important; }
.highlight, .highlight pre { background: var(--bs-tertiary-bg) !important; }

/* Contents sidebar */
.docs-toc ul { padding-left: 0; margin: 0; }
.docs-toc .position-sticky { scrollbar-width: none; }
.docs-toc .position-sticky::-webkit-scrollbar { display: none; }
.docs-toc .position-sticky:hover { scrollbar-width: thin; }
.docs-toc ul ul { padding-left: .85rem; border-left: 1px solid var(--bs-border-color); margin: .15rem 0 .35rem; }
.docs-toc a.nav-link { padding: .2rem 0 !important; color: var(--bs-secondary-color); text-decoration: none; font-size: .9rem; }
.docs-toc a:hover { color: rgb(var(--bs-link-color-rgb)); }

.admonition { border: 1px solid var(--bs-border-color); border-left: .3rem solid var(--bs-info);
              border-radius: .5rem; padding: .6rem 1rem; margin: 1.25rem 0; background: var(--bs-tertiary-bg); }
.admonition-title { font-weight: 600; margin-bottom: .2rem; }
.admonition p:last-child { margin-bottom: 0; }

.headerlink { margin-left: .4rem; color: var(--bs-secondary-color); text-decoration: none; opacity: 0; transition: opacity .15s; }
:is(h1, h2, h3, h4, h5, h6):hover .headerlink, .headerlink:focus { opacity: .6; }
.headerlink:hover { opacity: 1; }

/* Home: a hero, then cards */
.home { max-width: 60rem; margin: 0 auto; }
.hero { text-align: center; padding: 2.5rem 0 1.5rem; }
.hero img { width: 8.5rem; height: auto; filter: drop-shadow(0 .5rem 1rem rgba(0, 0, 0, .12)); }
.hero h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); margin: 1.25rem 0 .5rem; }
.hero .lead { max-width: 38rem; margin: 0 auto 1.5rem; color: var(--bs-secondary-color); }
.hero .btn { padding: .6rem 1.2rem; font-weight: 600; border-radius: .6rem; }
.btn-brand { --bs-btn-bg: #9a5226; --bs-btn-border-color: #9a5226; --bs-btn-color: #fff;
             --bs-btn-hover-bg: #7c4019; --bs-btn-hover-border-color: #7c4019; --bs-btn-hover-color: #fff; }
.users .card { height: 100%; border-radius: .8rem; border-color: var(--bs-border-color); }
.users .card h3 { font-size: 1.05rem; margin: 0 0 .4rem; }
.users .card p { margin: 0; font-size: .95rem; color: var(--bs-secondary-color); }
.home > article > p.note { text-align: center; font-size: .85rem; color: var(--bs-secondary-color); }

/* Copy buttons */
pre.has-copy { position: relative; }
.copy-btn { position: absolute; top: .5rem; right: .5rem; opacity: 0; transition: opacity .15s;
            font-family: var(--bs-body-font-family); border: 1px solid var(--bs-border-color); }
pre.has-copy:hover .copy-btn, .copy-btn:focus { opacity: 1; }
