/* Shared sidebar. A left rail on wide screens, a Menu button that opens a list on phones. */
.side { background: #fff; border-bottom: 1px solid var(--line); }
.side-head { display: flex; align-items: center; justify-content: space-between; padding: .7rem 1rem; }
.side-brand { font-weight: 700; letter-spacing: .01em; text-decoration: none; }
.side .side-toggle { margin: 0; padding: .35rem .8rem; background: #fff; color: var(--ink); border: 1px solid var(--line); }
.side-links { display: none; flex-direction: column; gap: .15rem; padding: 0 .6rem .7rem; }
.side.open .side-links { display: flex; }
.side-links a { display: block; padding: .55rem .7rem; border-radius: 8px; text-decoration: none; color: var(--ink); font-size: .95rem; }
.side-links a:hover { background: var(--soft); }
.side-links a[aria-current="page"] { background: var(--ink); color: #fff; }
.side-links a:focus-visible, .side .side-toggle:focus-visible, .side-brand:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (min-width: 900px) {
  body.has-side { padding-left: 230px; }
  .side { position: fixed; top: 0; left: 0; bottom: 0; width: 230px; overflow: auto; z-index: 6; border-bottom: 0; border-right: 1px solid var(--line); }
  .side-head { padding: 1rem 1.1rem .8rem; }
  .side .side-toggle { display: none; }
  .side-links { display: flex; padding: 0 .6rem 1rem; }
}
