.root {
  position: fixed;
  bottom: 0;
  left: 50%;
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  box-sizing: border-box;
  width: min(100vw, var(--app-max-width, 540px));
  min-height: calc(
    var(--app-bottom-nav-height, 64px) + var(--app-safe-bottom, 0px)
  );
  padding:
    6px
    calc(8px + var(--app-safe-right, 0px))
    calc(6px + var(--app-safe-bottom, 0px))
    calc(8px + var(--app-safe-left, 0px));
  border: 0;
  border-top: 1px solid var(--nav-border);
  background: var(--nav-background);
  box-shadow: var(--nav-shadow);
  transform: translateX(-50%);
}

.warm {
  --nav-background: #fffaf7;
  --nav-border: rgba(70, 46, 55, 0.12);
  --nav-shadow: 0 -6px 18px rgba(70, 46, 55, 0.08);
  --nav-button-color: #806f75;
  --nav-button-hover-background: rgba(246, 87, 160, 0.07);
  --nav-button-hover-color: #4a353d;
  --nav-active-color: #f657a0;
  --nav-focus-color: #ff5d95;
}

.dark {
  --nav-background: #17121c;
  --nav-border: rgba(255, 255, 255, 0.14);
  --nav-shadow: 0 -6px 20px rgba(0, 0, 0, 0.24);
  --nav-button-color: rgba(255, 255, 255, 0.62);
  --nav-button-hover-background: rgba(255, 255, 255, 0.07);
  --nav-button-hover-color: #ffffff;
  --nav-active-color: #ff8fc4;
  --nav-focus-color: #ffffff;
}

.button {
  display: flex;
  min-height: 52px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--nav-button-color);
  cursor: pointer;
  font: inherit;
  font-size: clamp(11px, 2.407vw, 13px);
  font-weight: 760;
  line-height: 1.1;
  transition:
    background 0.18s ease,
    color 0.18s ease,
    transform 0.18s ease;
}

.button:hover {
  background: var(--nav-button-hover-background);
  color: var(--nav-button-hover-color);
}

.button:active {
  transform: scale(0.98);
}

.button:focus-visible {
  outline: 2px solid var(--nav-focus-color);
  outline-offset: 3px;
}

.active {
  color: var(--nav-active-color);
}
