/* New components only: original style.css is untouched. */
.navbar-links .project-menu { position: relative; display: flex; align-items: center; flex-wrap: wrap; }
.project-menu .project-menu__toggle {
  display: none;
  min-height: 44px;
  padding: .25rem .7rem;
  background: var(--primary);
  color: var(--text);
  border: 0;
  box-shadow: none;
  transform: none;
}
.project-menu .project-menu__toggle:hover,
.project-menu .project-menu__toggle:active { background: var(--primary); box-shadow: none; transform: none; }
.project-menu .project-menu__toggle[aria-expanded="true"] { color: var(--link); }
.project-menu .project-menu__panel { position: absolute; top: 100%; right: 0; z-index: 1010; width: min(24rem, 85vw); max-height: 65vh; overflow: auto; padding: 1rem; background: var(--primary); border: 1px solid var(--border); border-radius: var(--control-radius); box-shadow: var(--shadow); }
.project-menu .project-menu__panel[hidden] { display: none; }
.project-menu .project-menu__panel a { display: block; }
.project-menu .project-menu__label { margin: .75rem 0 .25rem; padding-inline: .8rem; color: var(--muted); font-weight: bold; }
.project-menu__toggle:focus-visible, .project-menu__panel a:focus-visible, .cookie-banner button:focus-visible, .cookie-settings:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
.cookie-banner { position: fixed; bottom: 1rem; left: 1rem; z-index: 2200; width: min(40rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); overflow: auto; padding: 1.5rem; background: var(--primary); color: var(--text); border: 1px solid var(--border); border-radius: var(--card-radius); box-shadow: 0 8px 32px #0008; }
.cookie-banner[hidden], .cookie-settings[hidden] { display: none; }
.cookie-banner h2 { margin: 0 0 .6rem; font-size: 1.4rem; }
.cookie-banner p { margin: 0 0 1rem; }
.cookie-banner__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.cookie-banner__actions button { flex: 1 1 14rem; }
.cookie-settings { position: fixed; bottom: .75rem; right: .75rem; z-index: 2100; padding: .4rem .7rem; font-size: .9rem; }
@media (max-width: 768px) {
  .navbar-links .project-menu { justify-content: center; }
  .js .project-menu .project-menu__toggle { display: inline-flex; }
  .project-menu .project-menu__panel { position: static; width: 100%; max-height: none; margin-top: .5rem; }
}
