/* alsa.opensrc.org — site skin over the DCS base.css design system */
body { background: var(--bg-primary); color: var(--text-primary, inherit); font-family: var(--font-sans); margin: 0; }
.site-head { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-3) var(--space-4);
  background: var(--bg-secondary); border-block-end: 1px solid var(--border);
  position: sticky; inset-block-start: 0; z-index: 10; flex-wrap: wrap; }
.site-logo { font-weight: 600; font-size: var(--text-lg); color: var(--accent); text-decoration: none; }
.site-menu { display: flex; gap: var(--space-3); margin-inline-start: auto; flex-wrap: wrap; }
.site-menu a { color: inherit; text-decoration: none; opacity: .8; }
.site-menu a:hover { opacity: 1; color: var(--accent); }
.site-tag { text-align: center; margin: var(--space-2) 0; opacity: .7; }
.doc-wrap { display: grid; grid-template-columns: minmax(0,16rem) minmax(0,1fr); gap: var(--space-6);
  max-width: 78rem; margin: 0 auto; padding: var(--space-4); align-items: start; }
.doc-wrap.home { grid-template-columns: minmax(0,1fr); }
#docnav { position: sticky; inset-block-start: 4.5rem; max-block-size: calc(100vh - 6rem); overflow-y: auto;
  border-inline-end: 1px solid var(--border); padding-inline-end: var(--space-2); }
#docnav:empty { display: none; }
#docnav .tree-item { display: block; padding: 2px var(--space-2); font-size: .85rem; color: inherit;
  text-decoration: none; border-radius: var(--radius-sm); }
#docnav .tree-item:hover { background: var(--bg-tertiary); color: var(--accent); }
#docnav .tree-item.active { background: var(--accent-subtle); color: var(--accent); font-weight: 600; }
#navfilter { inline-size: 100%; margin-block-end: var(--space-2); padding: var(--space-1) var(--space-2);
  background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: var(--radius-sm); color: inherit; }
.index-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem,1fr)); gap: 0 var(--space-4); }
.index-grid a { padding: 2px 0; text-decoration: none; color: inherit; font-size: .9rem; }
.index-grid a:hover { color: var(--accent); text-decoration: underline; }
.doc-src { margin-block-start: var(--space-6); padding-block-start: var(--space-3);
  border-block-start: 1px solid var(--border); text-align: end; opacity: .7; }
.site-foot { margin-block-start: var(--space-8); padding: var(--space-4);
  border-block-start: 1px solid var(--border); text-align: center; opacity: .7; font-size: .85rem; }
@media (max-width: 60rem) { .doc-wrap { grid-template-columns: minmax(0,1fr); }
  #docnav { position: static; max-block-size: 22rem; border-inline-end: 0; border-block-end: 1px solid var(--border); } }
