@layer components {
  .navbar {
    background-color: var(--color-surface);
    box-shadow: var(--shadow-sm);
    position: sticky;
    top: 0;
    z-index: var(--z-nav);
  }

  .navbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 4rem;
    max-width: var(--container-xl);
    margin-inline: auto;
    padding-inline: var(--space-md);

    @media (min-width: 640px) {
      padding-inline: var(--space-lg);
    }

    @media (min-width: 1024px) {
      padding-inline: var(--space-xl);
    }
  }

  .navbar__left {
    display: flex;
    align-items: center;
    gap: var(--space-xl);
  }

  .navbar__brand {
    font-size: var(--text-xl);
    font-weight: var(--font-semibold);
    color: var(--color-ink);
    text-decoration: none;
  }

  .navbar__links {
    display: none;
    gap: var(--space-sm);

    @media (min-width: 640px) {
      display: flex;
    }
  }

  .navbar__link {
    padding: var(--space-sm) var(--space-md);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: var(--color-ink-subtle);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: color var(--transition-fast), background-color var(--transition-fast);

    &:hover {
      color: var(--color-ink);
    }

    &.is-active {
      color: var(--color-primary-hover);
      background-color: oklch(var(--lch-primary) / 0.1);
    }
  }

  .navbar__right {
    display: flex;
    align-items: center;
    gap: var(--space-md);
  }

  .navbar__user {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    color: var(--color-ink-subtle);
    text-decoration: none;
    transition: color var(--transition-fast);

    &:hover {
      color: var(--color-ink);
    }
  }

  .navbar__user-name {
    display: none;
    font-size: var(--text-sm);

    @media (min-width: 640px) {
      display: inline;
    }
  }

  .navbar__logout {
    color: var(--color-ink-muted);
    transition: color var(--transition-fast);

    &:hover {
      color: var(--color-ink);
    }

    & svg {
      width: 1.25rem;
      height: 1.25rem;
    }
  }

  .navbar__mobile {
    display: flex;
    justify-content: space-around;
    padding-block: var(--space-sm);
    border-top: 1px solid var(--color-border-subtle);

    @media (min-width: 640px) {
      display: none;
    }
  }

  .navbar__mobile-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-sm) var(--space-md);
    color: var(--color-ink-subtle);
    text-decoration: none;
    font-size: var(--text-xs);
    transition: color var(--transition-fast);

    &:hover {
      color: var(--color-ink);
    }

    &.is-active {
      color: var(--color-primary-hover);
    }

    & svg {
      width: 1.5rem;
      height: 1.5rem;
    }
  }

}
