.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--brand-bg, #0b0b0d);border-top:1px solid rgba(255,255,255,.1);padding-bottom:env(safe-area-inset-bottom);font-family:var(--brand-font-family, system-ui, sans-serif);z-index:50}.bottom-nav__link{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;text-align:center;padding:.75rem .25rem;font-size:1rem;color:var(--brand-muted, #8a8a8e);text-decoration:none}.bottom-nav__link svg{width:24px;height:24px}.bottom-nav__link.active{color:var(--brand-accent, #ff3b30);font-weight:600}.progress-bar{width:100%;height:4px;border-radius:999px;background:#ffffff1f;overflow:hidden}.progress-bar__fill{height:100%;background:var(--brand-accent, #ff3b30);transition:width .5s linear}.like-button{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:none;border-radius:999px;background:none;color:var(--brand-muted, #8a8a8e);cursor:pointer;flex-shrink:0}.like-button svg{width:22px;height:22px}.like-button--liked{color:var(--brand-accent, #ff3b30)}.now-playing-bar{position:fixed;top:0;left:0;right:0;z-index:60;padding:calc(env(safe-area-inset-top) + .6rem) 1.25rem .65rem;background:#0b0b0d8c;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px #ffffff24;color:var(--brand-fg, #f5f5f5);font-family:var(--brand-font-family, system-ui, sans-serif)}.now-playing-bar__label{display:block;width:100%;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-muted, #8a8a8e);margin-bottom:.45rem}.now-playing-bar__now-playing{color:var(--brand-accent, #ff3b30)}.now-playing-bar__venue{background:none;border:none;padding:0;margin:0;font:inherit;font-weight:600;text-transform:none;letter-spacing:normal;color:var(--brand-fg, #f5f5f5);text-decoration:underline;cursor:pointer}.now-playing-bar__row{display:flex;align-items:center;gap:.65rem}.now-playing-bar__artwork{width:2.75rem;height:2.75rem;flex:0 0 auto;border-radius:8px;object-fit:cover;background:#ffffff14}.now-playing-bar__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.35rem}.now-playing-bar__track{margin:0;font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing-bar__hint{margin:0;font-size:.8rem;color:var(--brand-muted, #8a8a8e)}.build-badge{position:fixed;bottom:.25rem;right:.5rem;font-size:.6rem;opacity:.35;color:var(--brand-muted, #8a8a8e);font-family:monospace;pointer-events:none;z-index:999}.holding-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:var(--brand-bg, #0b0b0d);color:var(--brand-fg, #f5f5f5);font-family:var(--brand-font-family, system-ui, sans-serif);text-align:center;padding:2rem}.holding-screen__mark{width:2.25rem;height:2.25rem;border-radius:50%;border:3px solid var(--brand-muted, #8a8a8e);border-top-color:var(--brand-accent, #ff3b30);animation:holding-screen-spin 1s linear infinite}.holding-screen__message{font-size:1.1rem;margin:0}.holding-screen__detail{font-size:.9rem;color:var(--brand-muted, #8a8a8e);margin:0}.holding-screen__retry{margin-top:.5rem;background:var(--brand-accent, #ff3b30);color:#fff;border:none;border-radius:999px;padding:.75rem 1.5rem;font-size:.95rem;cursor:pointer}@keyframes holding-screen-spin{to{transform:rotate(360deg)}}.browse-screen{padding:calc(env(safe-area-inset-top) + 6.75rem) 1.25rem 5.5rem;background:var(--brand-bg, #0b0b0d);color:var(--brand-fg, #f5f5f5);font-family:var(--brand-font-family, system-ui, sans-serif);min-height:100dvh}.browse-screen__banner{background:#ff3b301f;color:var(--brand-accent, #ff3b30);border-radius:10px;padding:.75rem 1rem;font-size:.9rem;margin-bottom:1rem}.browse-screen__title{font-size:1.4rem;margin:0 0 1rem}.browse-screen__hint{color:var(--brand-muted, #8a8a8e)}.browse-screen__list{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}@media (min-width: 480px){.browse-screen__list{grid-template-columns:repeat(4,1fr)}}@media (min-width: 768px){.browse-screen__list{grid-template-columns:repeat(5,1fr)}}@media (min-width: 1024px){.browse-screen__list{grid-template-columns:repeat(6,1fr)}}.browse-screen__group{position:relative;display:block;color:inherit;text-decoration:none;border-radius:12px;overflow:hidden;aspect-ratio:1}.browse-screen__group:active{opacity:.8}.browse-screen__group-art{display:block;width:100%;height:100%;border-radius:8px;object-fit:cover;background:#ffffff14}.browse-screen__skeleton{aspect-ratio:1;border-radius:12px;background:#ffffff0a}.track-row{display:flex;align-items:center;gap:.5rem;width:100%}.track-row__hit{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;padding:.6rem 0;background:none;border:none;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.track-row__artwork{width:3rem;height:3rem;flex-shrink:0;border-radius:8px;object-fit:cover;background:#ffffff14}.track-row__meta{display:flex;flex-direction:column;flex:1;min-width:0}.track-row__title{font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-row__artist{font-size:.85rem;color:var(--brand-muted, #8a8a8e);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-row__trailing{flex-shrink:0}.confirm-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100}.confirm-sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c}.confirm-sheet__panel{position:absolute;left:0;right:0;bottom:0;background:var(--brand-bg, #0b0b0d);color:var(--brand-fg, #f5f5f5);border-radius:16px 16px 0 0;padding:1.5rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.4rem}.confirm-sheet__eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--brand-muted, #8a8a8e);font-size:.75rem;margin:0}.confirm-sheet__artwork{width:100%;max-width:50vh;max-height:50vh;aspect-ratio:1 / 1;border-radius:12px;object-fit:cover;background:#ffffff14;margin:.25rem auto .5rem}.confirm-sheet__heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.confirm-sheet__like{width:2.75rem;height:2.75rem}.confirm-sheet__like svg{width:26px;height:26px}.confirm-sheet__title{margin:0;font-size:1.3rem}.confirm-sheet__artist{margin:0;color:var(--brand-muted, #8a8a8e);font-weight:400;font-size:.95rem}.confirm-sheet__reason{color:var(--brand-accent, #ff3b30);font-size:.85rem;margin:0 0 .5rem}.confirm-sheet__panel button{border:none;border-radius:999px;padding:.9rem;font-size:1rem;font-family:inherit;cursor:pointer}.confirm-sheet__confirm{background:var(--brand-accent, #ff3b30);color:#fff;margin-top:.25rem}.confirm-sheet__confirm:disabled{opacity:.5}.confirm-sheet__cancel{background:none;color:var(--brand-muted, #8a8a8e)}.request-confirmation{position:fixed;left:1rem;right:1rem;bottom:calc(4.5rem + env(safe-area-inset-bottom));background:var(--brand-accent, #ff3b30);color:#fff;border-radius:14px;padding:1rem 1.25rem;z-index:100;text-align:center}.request-confirmation__title{margin:0;font-weight:600}.request-confirmation__detail{margin:.15rem 0 0;font-size:.9rem;opacity:.9}.group-screen{padding:calc(env(safe-area-inset-top) + 6.75rem) 1.25rem 5.5rem;background:var(--brand-bg, #0b0b0d);color:var(--brand-fg, #f5f5f5);font-family:var(--brand-font-family, system-ui, sans-serif);min-height:100dvh}.group-screen__back{background:none;border:none;color:var(--brand-muted, #8a8a8e);font-size:.95rem;padding:0 0 1rem;cursor:pointer}.group-screen__list{display:flex;flex-direction:column}.group-screen__skeleton{height:3.5rem;border-radius:10px;background:#ffffff0a;margin-bottom:.6rem}.group-screen__load-more{margin:1rem auto 0;display:block;background:#ffffff14;border:none;color:inherit;padding:.75rem 1.5rem;border-radius:999px;cursor:pointer}.search-screen{padding:calc(env(safe-area-inset-top) + 6.75rem) 1.25rem 5.5rem;background:var(--brand-bg, #0b0b0d);color:var(--brand-fg, #f5f5f5);font-family:var(--brand-font-family, system-ui, sans-serif);min-height:100dvh}.search-screen--message{display:flex;align-items:center;justify-content:center;text-align:center}.search-screen__input{width:100%;padding:.9rem 1rem;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:inherit;font-size:1rem;margin-bottom:1rem}.search-screen__hint{color:var(--brand-muted, #8a8a8e)}.search-screen__list{display:flex;flex-direction:column}.my-music-screen{padding:calc(env(safe-area-inset-top) + 6.75rem) 1.25rem 5.5rem;background:var(--brand-bg, #0b0b0d);color:var(--brand-fg, #f5f5f5);font-family:var(--brand-font-family, system-ui, sans-serif);min-height:100dvh}.my-music-screen__header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.my-music-screen__title{font-size:1.4rem;margin:0}.my-music-screen__change-venue{background:none;border:none;padding:0;font-family:inherit;font-size:.85rem;color:var(--brand-muted, #8a8a8e);text-decoration:underline;cursor:pointer;flex:0 0 auto}.my-music-screen__tabs{display:flex;gap:.5rem;margin-bottom:1.25rem;border-bottom:1px solid rgba(255,255,255,.1)}.my-music-screen__tab{flex:1;padding:.75rem .5rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--brand-muted, #8a8a8e);font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer}.my-music-screen__tab--active{color:var(--brand-fg, #f5f5f5);border-bottom-color:var(--brand-accent, #ff3b30)}.my-music-screen__hint{color:var(--brand-muted, #8a8a8e)}.my-music-screen__empty{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.my-music-screen__browse-link{display:inline-block;padding:.75rem 1.5rem;border-radius:999px;background:var(--brand-accent, #ff3b30);color:#fff;font-weight:600;text-decoration:none}.my-music-screen__groups{display:flex;flex-direction:column;gap:1.25rem}.my-music-screen__group-label{font-size:.85rem;font-weight:600;color:var(--brand-muted, #8a8a8e);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .4rem}.my-music-screen__list{display:flex;flex-direction:column;gap:.2rem}.entry-screen{min-height:100dvh;display:flex;flex-direction:column;gap:1rem;padding:2rem 1.5rem;background:var(--brand-bg, #0b0b0d);color:var(--brand-fg, #f5f5f5);font-family:var(--brand-font-family, system-ui, sans-serif)}.entry-screen__title{font-size:1.6rem;margin:0}.entry-screen__lead{color:var(--brand-muted, #8a8a8e);margin:0 0 .5rem}.entry-screen__primary{background:var(--brand-accent, #ff3b30);color:#fff;border:none;border-radius:999px;padding:.9rem;font-size:1rem;cursor:pointer}.entry-screen__secondary{background:none;border:none;color:var(--brand-muted, #8a8a8e);padding:.5rem;font-size:.9rem;cursor:pointer}.entry-screen__hint{color:var(--brand-muted, #8a8a8e);font-size:.9rem}.entry-screen__results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.entry-screen__venue{width:100%;display:flex;justify-content:space-between;background:#ffffff0f;border:none;border-radius:10px;color:inherit;font-family:inherit;padding:.9rem;font-size:1rem;cursor:pointer;text-align:left}.entry-screen__venue-meta{display:block;color:var(--brand-muted, #8a8a8e);font-size:.8rem;margin-top:.15rem}.entry-screen__distance{color:var(--brand-muted, #8a8a8e)}.entry-screen__confirm{background:#ffffff0f;border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}.entry-screen__confirm-name{font-size:1.2rem;font-weight:600;margin:0 0 .5rem}.entry-screen__manual{margin-top:auto;display:flex;flex-direction:column;gap:.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.entry-screen__manual label{font-size:.85rem;color:var(--brand-muted, #8a8a8e)}.entry-screen__manual-row{display:flex;gap:.5rem}.entry-screen__manual-row input{flex:1;padding:.8rem;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff0a;color:inherit;font-size:1rem}.entry-screen__manual-row button{padding:.8rem 1.25rem;border-radius:10px;border:none;background:#ffffff1a;color:inherit;font-size:1rem;cursor:pointer}.entry-screen__manual-row button:disabled{opacity:.4}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:#0b0b0d}input,button{font-family:inherit}
