.flsw-btn{position:fixed;top:auto;bottom:calc(12px + env(safe-area-inset-bottom) + var(--fls-waffle-bottom-offset,0px));left:12px;z-index:1000;width:46px;height:46px;border:1px solid var(--fls-border);border-radius:14px;background:var(--fls-surface);cursor:pointer;display:grid;grid-template-columns:repeat(3,5px);gap:4px;place-content:center;box-shadow:0 8px 22px rgb(0 0 0 / 52%)}
.flsw-btn:hover,.flsw-btn[aria-expanded=true]{background:var(--fls-surface-raised)}
.flsw-btn:focus-visible{outline:2px solid var(--fls-accent);outline-offset:3px}
.flsw-btn i{width:5px;height:5px;border-radius:2px;background:var(--fls-accent);display:block}
.flsw-btn:hover i,.flsw-btn[aria-expanded=true] i{background:var(--fls-accent-hover)}
.flsw-panel{position:fixed;top:auto;bottom:calc(68px + env(safe-area-inset-bottom) + var(--fls-waffle-bottom-offset,0px));left:12px;z-index:1001;width:min(320px,calc(100vw - 24px));max-height:calc(100vh - 92px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - var(--fls-waffle-bottom-offset,0px));max-height:calc(100dvh - 92px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - var(--fls-waffle-bottom-offset,0px));overflow:auto;background:var(--fls-surface);border:1px solid var(--fls-border);border-radius:var(--fls-radius-panel);padding:14px;box-shadow:var(--fls-shadow-panel);font-family:var(--fls-font-body)}
.flsw-panel[hidden]{display:none}
.flsw-h{font-family:var(--fls-font-display);text-transform:uppercase;letter-spacing:.6px;color:var(--fls-text);font-size:22px;margin:0 0 10px}
.flsw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.flsw-t{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:12px;text-decoration:none;color:var(--fls-text);font-size:12px;text-align:center}
.flsw-t:hover,.flsw-t:focus-visible{background:var(--fls-surface-raised)}
.flsw-t:focus-visible{outline:2px solid var(--fls-accent);outline-offset:1px}
.flsw-t[aria-current=page]{background:color-mix(in srgb,var(--fls-accent) 12%,var(--fls-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--fls-accent) 44%,transparent)}
.flsw-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:var(--fls-surface-raised)}
@media(max-width:360px){.flsw-grid{grid-template-columns:repeat(2,1fr)}}
