/* CTXRS — navigation
 * Loaded after styles.css. Owns the whole top bar so nothing has to fight
 * inherited rules: desktop row, hamburger panel under 860px.
 */

.topbar .nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 66px;
  position: relative;
}

/* Groups the hamburger, the link row, and the day/night toggle so the
 * whole cluster sits together on the right, in both desktop and mobile. */
.nav-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* --- hamburger (hidden on desktop) --- */
.navtoggle {
  display: none;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--field-border);
  border-radius: 10px;
  background: var(--field-bg);
  color: var(--muted-2);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.navtoggle span,
.navtoggle span::before,
.navtoggle span::after {
  position: absolute;
  left: 50%;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transform: translateX(-50%);
  transition: transform 180ms ease, opacity 140ms ease;
}
.navtoggle span { top: 50%; margin-top: -1px; }
.navtoggle span::before { content: ""; top: -6px; left: 0; transform: none; }
.navtoggle span::after  { content: ""; top:  6px; left: 0; transform: none; }

.navtoggle[aria-expanded="true"] span { background: transparent; }
.navtoggle[aria-expanded="true"] span::before { transform: translateY(6px) rotate(45deg); }
.navtoggle[aria-expanded="true"] span::after  { transform: translateY(-6px) rotate(-45deg); }

/* --- link row --- */
.navlinks {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: nowrap;
}

/* Every item - anchor or button - identical box, so they share a baseline. */
.navlinks > a,
.navdrop-btn {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 13px;
  margin: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted-2);
  font-family: inherit;
  font-size: .88rem;
  font-weight: 650;
  line-height: 1;
  letter-spacing: 0;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: color 150ms ease, background 150ms ease;
}

.navlinks > a:hover,
.navlinks > a:focus-visible,
.navdrop-btn:hover,
.navdrop-btn:focus-visible {
  color: var(--text);
  background: var(--nav-hover-bg);
  outline: none;
}

.navlinks > a.active,
.navlinks > a[aria-current="page"] {
  color: var(--text);
  background: var(--nav-active-bg);
  box-shadow: inset 0 0 0 1px var(--nav-active-ring);
}

/* --- dropdown --- */
.navdrop { position: relative; display: flex; align-items: center; }

.navdrop.is-current .navdrop-btn,
.navdrop.is-open .navdrop-btn {
  color: var(--text);
  background: var(--nav-active-bg);
}

.navdrop-btn .caret {
  margin-left: 7px;
  font-size: .6em;
  line-height: 1;
  opacity: .75;
  transition: transform 180ms ease;
}
.navdrop.is-open .navdrop-btn .caret { transform: rotate(180deg); }

.navdrop-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 60;
  min-width: 196px;
  display: none;
  flex-direction: column;
  gap: 2px;
  padding: 7px;
  border: 1px solid var(--field-border);
  border-radius: 12px;
  background: var(--panel-2);
  box-shadow: var(--shadow);
}
.navdrop.is-open .navdrop-menu { display: flex; }

.navdrop-menu a {
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 12px;
  border-radius: 8px;
  color: var(--muted-2);
  font-size: .88rem;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}
.navdrop-menu a:hover,
.navdrop-menu a:focus-visible {
  color: var(--text);
  background: var(--nav-hover-bg);
  outline: none;
}
.navdrop-menu a.active {
  color: var(--text);
  background: var(--nav-active-bg);
}

/* --- phones and small tablets --- */
@media (max-width: 860px) {
  .navtoggle { display: block; position: relative; flex: 0 0 auto; }

  .navlinks {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 55;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 3px;
    padding: 10px;
    border: 1px solid var(--field-border);
    border-radius: 14px;
    background: var(--panel-2);
    box-shadow: var(--shadow);
  }

  .navlinks.is-open { display: flex; }

  .navlinks > a,
  .navdrop-btn {
    height: 46px;
    width: 100%;
    justify-content: flex-start;
    font-size: .95rem;
  }

  .navdrop { display: block; width: 100%; }
  .navdrop-btn { justify-content: space-between; }
  .navdrop-btn .caret { margin-left: auto; }

  .navdrop-menu {
    position: static;
    display: none;
    min-width: 0;
    margin: 3px 0 3px 14px;
    padding: 0;
    border: 0;
    border-left: 2px solid var(--line-strong);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .navdrop.is-open .navdrop-menu { display: flex; }
  .navdrop-menu a { height: 42px; padding-left: 14px; }
}
