/* Five destinations, accessible touch targets, and a desktop dock. */
.nav{gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));height:calc(68px + env(safe-area-inset-bottom,0px));box-sizing:border-box;box-shadow:0 -8px 32px #0005}
.nav button{position:relative;min-width:0;min-height:48px;justify-content:center;gap:2px;border-radius:14px;font-weight:600;font-size:10px;cursor:pointer;transition:background .18s,color .18s}
.nav button i{display:flex;align-items:center;justify-content:center;height:26px;width:38px;border-radius:12px;font-style:normal}
.nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav button.on{color:#ff9aa6;background:#ffffff07}
.nav button.on i{background:#e8445129}
.nav button.on:before{content:'';position:absolute;top:0;width:18px;height:3px;border-radius:3px;background:#ff5968}
.nav button:hover{background:#ffffff0d}
.nav button:focus-visible{outline:2px solid #ff9aa6;outline-offset:-2px}
.mini{bottom:calc(68px + env(safe-area-inset-bottom,0px))}
.vw{bottom:calc(68px + env(safe-area-inset-bottom,0px))}
.fab{display:none!important}
@media(min-width:900px){
.nav{left:50%;right:auto;transform:translateX(-50%);width:580px;bottom:16px;height:68px;padding:6px 10px;border:1px solid #ffffff18;border-radius:24px;background:#170d10f2;box-shadow:0 8px 32px #0008}
.nav button{font-size:12px}
.mini{bottom:100px;left:50%;right:auto;transform:translateX(-50%);width:min(720px,calc(100% - 40px));border:1px solid #ffffff18;border-radius:18px;box-sizing:border-box}
.vw{bottom:0}
}
@media(prefers-reduced-motion:reduce){.nav button{transition:none}}

header{flex-wrap:wrap}header select{max-width:150px}.community-admin{white-space:nowrap}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Library ends above the actual dock and mini-player, including safe-area space. */
html[data-theme] #vl{bottom:var(--ritm-dock-clearance,calc(68px + env(safe-area-inset-bottom,0px)));padding-bottom:24px;scroll-padding-bottom:24px}
html[data-theme] #vl>.vb{padding-top:16px;padding-bottom:32px}
html[data-theme] #vl [data-ev-library]{display:block;width:100%;min-height:48px;margin:0 0 18px}
/* Tickets use their own Back action and the whole screen. No dock covers QR actions. */
html[data-theme] #ritm-events.open{inset:0;padding-bottom:0;scroll-padding-bottom:32px}
body:has(#ritm-events.open)>.nav,body:has(#ritm-events.open)>#mini{display:none!important}
html[data-theme] #ritm-events .ev-wrap{padding-bottom:calc(40px + env(safe-area-inset-bottom,0px))}
/* Every browse pane ends above BOTH the dock and the active mini-player. */
html[data-theme] .vw.ritm-framed{bottom:var(--ritm-dock-clearance,calc(68px + env(safe-area-inset-bottom,0px)))}
html[data-theme] body{padding-bottom:calc(var(--ritm-dock-clearance,190px) + 24px)}
html[data-theme] .ritm-scroll-pane :is(button,a,input,select,textarea,h1,h2,h3,p){scroll-margin-block:16px}
