.root { position: fixed; bottom: 0; left: 50%; z-index: 30; display: grid; grid-template-columns: 1fr 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); }