html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/* Ensure icon-only nav links are vertically centered inside the navbar */
.navbar-nav .nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.navbar-nav .nav-link i,
.navbar-nav .nav-link .bi {
  line-height: 1;
  display: inline-block;
}

/* Ensure all nav items (links and buttons) share the same alignment and padding */
.navbar-nav {
  align-items: center; /* make sure the list aligns its children */
}

.navbar-nav .nav-item,
.navbar-nav > li {
  display: flex;
  align-items: center;
}

.navbar-nav .nav-link,
.navbar-nav button.nav-link,
.navbar-nav .btn.nav-link,
.navbar-nav .nav-link.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.5rem;
}

/* Normalize icon sizing so all icons take the same visual space */
.navbar-nav .nav-link i,
.navbar-nav .nav-link .bi {
  font-size: 1.25rem; /* consistent icon size */
  line-height: 1;
}

/* Force consistent flex and alignment even if other styles interfere */
.navbar-nav .nav-link,
.navbar-nav .nav-link > i,
.navbar-nav .nav-link .bi {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
}

/* Ensure nav links share a uniform height so icons align */
.navbar-nav .nav-link {
  min-height: 2rem;
  height: 2rem;
  line-height: 1;
}

/* Tweak for icons whose glyph metrics differ (person-circle appears visually higher) */
.navbar-nav .nav-link i.bi-person-circle,
.navbar-nav .nav-link .bi-person-circle {
  transform: translateY(2px);
  display: inline-block !important;
}

