.quick-grid::-webkit-scrollbar,.event-carousel::-webkit-scrollbar,.category-scroll::-webkit-scrollbar,.player-toolbar .overflow-x-auto::-webkit-scrollbar{display:none}.player-toolbar .overflow-x-auto{scrollbar-width:none}.chord-sheet{overflow-x:auto}.chord-sheet::-webkit-scrollbar{height:4px}.chord-sheet::-webkit-scrollbar-thumb{background:#c8d5d1;border-radius:4px}
@media(max-width:780px){.player-toolbar{overflow:hidden}.player-toolbar .overflow-x-auto{padding-bottom:2px}.app-song:last-child{margin-bottom:2px}}
.song-chords{width:100%;margin:28px 0 0;padding:24px;background:#fff;border:1px solid var(--stroke,#dfe5e2);border-radius:24px;box-shadow:0 14px 38px rgba(18,60,58,.08)}
.song-chords-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.song-chords-heading small{display:block;color:#d36b35;font-size:.7rem;font-weight:800;letter-spacing:.12em}.song-chords-heading h2{margin:4px 0 0;font-size:1.25rem;font-weight:750}.song-chords-heading>span{padding:6px 10px;background:#edf3f1;color:#123c3a;border-radius:999px;font-size:.75rem;font-weight:750;white-space:nowrap}
.song-chords-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.song-chord-chip{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-height:218px;padding:12px 8px 9px;border:1px solid #dfe5e2;border-radius:17px;background:#fafcfb;color:#123c3a;text-align:center;transition:.18s}.song-chord-chip:hover,.song-chord-chip:focus-visible{border-color:#d36b35;background:#fff8f4;outline:none;transform:translateY(-2px)}.song-chord-chip b{font-size:1.08rem}.song-chord-chip small{color:#75817e;font-size:.65rem}.song-chord-diagram{display:block;width:100%;height:164px}.song-chord-diagram .chord-svg{width:100%;height:100%}.song-chord-chip.is-loading .song-chord-diagram{border-radius:12px;background:linear-gradient(90deg,#edf2f0,#f8faf9,#edf2f0);background-size:200% 100%;animation:chord-loading 1.2s linear infinite}.diagram-missing{display:grid;height:100%;place-items:center;color:#75817e;font-size:.72rem}@keyframes chord-loading{to{background-position:-200% 0}}
@media(max-width:650px){.song-chords{margin-top:20px;padding:18px 14px;border-radius:20px}.song-chords-list{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:5px}.song-chord-chip{min-width:140px;min-height:207px;scroll-snap-align:start}.song-chord-diagram{height:155px}.song-chords-heading h2{font-size:1.08rem}}
.player:fullscreen{width:100%;height:100vh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:var(--bg,#f5f7f6)}.player:fullscreen .player-head{top:0}.player:fullscreen .player-toolbar{top:57px}.player:fullscreen .player-body{padding-bottom:45vh}
.connection-status{display:flex;align-items:center;gap:6px;margin-left:auto;padding:6px 9px;border-radius:999px;background:#edf5f2;color:#37645d;font-size:.68rem;font-weight:750;white-space:nowrap}.connection-status i{width:7px;height:7px;border-radius:50%;background:#2aa36b;box-shadow:0 0 0 3px #2aa36b1d}.connection-status[data-state="offline"],.connection-status[data-state="limited"]{background:#fff0df;color:#955d19}.connection-status[data-state="offline"] i,.connection-status[data-state="limited"] i{background:#e5962d;box-shadow:0 0 0 3px #e5962d22}.install-app{min-height:36px;padding:0 12px;border:0;border-radius:10px;background:#e0f1ed;color:#0b6b5f;font-size:.72rem;font-weight:800}.is-offline .app-new{opacity:.55;pointer-events:none}@media(max-width:780px){.connection-status{margin-left:auto}.connection-status span{display:none}.connection-status{width:30px;height:30px;justify-content:center;padding:0}.install-app{position:fixed;z-index:151;right:12px;bottom:82px;box-shadow:0 8px 24px #12302b28}.app-new{margin-left:0}}
.header-login{padding:8px 11px;border-radius:9px;color:#0b6b5f;font-size:.75rem;font-weight:800;text-decoration:none}.user-menu{position:relative}.user-menu>button{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:#29413d;font-size:.75rem}.user-menu>button>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#0b6b5f;color:#fff;font-weight:800}.user-menu-popover{position:absolute;z-index:220;top:42px;right:0;width:210px;padding:12px;border:1px solid #e2e8e6;border-radius:14px;background:#fff;box-shadow:0 18px 50px #12302b24}.user-menu-popover strong,.user-menu-popover small{display:block;padding:0 7px}.user-menu-popover small{margin:2px 0 8px;color:#788581}.user-menu-popover a,.user-menu-popover form button{display:block;width:100%;padding:9px 7px;border:0;border-radius:8px;background:transparent;color:#29413d;text-align:left;text-decoration:none;font-size:.78rem}.user-menu-popover a:hover,.user-menu-popover form button:hover{background:#edf5f2}.auth-shell{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:30px 16px;background:radial-gradient(circle at top,#dff1ed,#f5f7f6 48%)}.auth-card{width:min(430px,100%);padding:30px;border:1px solid #e0e8e5;border-radius:24px;background:#fff;box-shadow:0 24px 70px #12302b1c}.auth-brand{display:flex;align-items:center;gap:9px;margin-bottom:28px;color:#152522;text-decoration:none}.auth-brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#0b6b5f;color:#fff}.auth-card>div small{color:#0b6b5f;font-size:.66rem;font-weight:850;letter-spacing:.14em}.auth-card h1{margin:5px 0 8px;font-size:1.65rem}.auth-card p{color:#6d7b78;font-size:.84rem;line-height:1.5}.auth-card form label{margin-top:13px}.auth-card form .button{margin-top:20px}.setup-link{display:block;margin-top:16px;color:#0b6b5f;text-align:center;font-size:.76rem;font-weight:750}@media(max-width:780px){.user-menu>button b{display:none}.user-menu-popover{right:-45px}.header-login{padding:7px}.auth-shell{min-height:calc(100vh - 128px)}}
.admin-users-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:24px}.user-list{display:flex;flex-direction:column;gap:10px}.user-list article{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #e2e8e6;border-radius:15px;background:#fff}.user-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e0f1ed;color:#0b6b5f;font-weight:850}.user-list article>div{min-width:0;flex:1}.user-list h2{margin:0;font-size:.92rem}.user-list p{margin:3px 0 0;color:#6d7b78;font-size:.7rem}.role-badge{padding:5px 8px;border-radius:99px;background:#fff0d8;color:#8b5a16;font-size:.65rem;font-weight:800}.user-list form{display:flex;gap:5px}.user-list form select,.user-list form button{height:34px;border:1px solid #e2e8e6;border-radius:8px;background:#fff;color:#29413d;font-size:.68rem}.check-row{display:flex;align-items:center;gap:8px;min-height:46px;padding:10px;border:1px solid #e2e8e6;border-radius:11px;background:#fafcfb}@media(max-width:900px){.admin-users-layout{grid-template-columns:1fr}.user-list article{flex-wrap:wrap}.user-list article>div{min-width:55%}.user-list form{width:100%}.user-list form select{flex:1}}
.celebration{position:fixed;inset:0;z-index:300;display:grid;grid-template-rows:64px minmax(0,1fr) 72px;background:#eef2f0;color:#152522}.celebration-header{display:flex;align-items:center;gap:14px;padding:8px 18px;background:#073f39;color:#fff}.celebration-header>a,.celebration-header>button{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:12px;background:#ffffff18;color:#fff;text-decoration:none;font-size:1.2rem}.celebration-header>div:nth-child(2){min-width:0;flex:1}.celebration-header small,.celebration-header strong{display:block}.celebration-header small{color:#a9d4cb;font-size:.63rem;text-transform:uppercase}.celebration-time{text-align:right}.celebration-time span{font:700 1.05rem monospace}.celebration-stage{min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr)}.celebration-sequence{overflow:auto;padding:12px;background:#fff;border-right:1px solid #dce5e2}.sequence-title{display:flex;justify-content:space-between;padding:8px;color:#6d7b78;font-size:.68rem}.celebration-sequence button{width:100%;display:flex;align-items:center;gap:9px;padding:10px;border:0;border-radius:12px;background:transparent;text-align:left}.celebration-sequence button.active{background:#e0f1ed;color:#07534a}.celebration-sequence button>span{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#edf2f0;font-weight:800}.celebration-sequence button div{min-width:0;flex:1}.celebration-sequence button small,.celebration-sequence button b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.celebration-sequence button small{font-size:.59rem;text-transform:uppercase}.celebration-sequence button b{font-size:.75rem}.celebration-sequence button em{font-size:.7rem;font-style:normal;font-weight:800}.celebration-song{overflow:auto;padding:18px max(18px,calc((100vw - 1000px)/2));scroll-behavior:auto}.celebration-song-head{display:flex;justify-content:space-between;gap:20px}.celebration-song-head small{color:#d36b35;font-size:.68rem;font-weight:850;letter-spacing:.09em}.celebration-song-head h1{margin:3px 0;font-size:1.65rem}.celebration-song-head p{margin:0;color:#6d7b78}.celebration-key{display:flex;align-items:center;height:44px;border:1px solid #dce5e2;border-radius:12px;background:#fff}.celebration-key button{width:40px;height:100%;border:0;background:transparent}.celebration-tools{position:sticky;top:-18px;z-index:2;display:flex;align-items:center;gap:7px;margin:14px 0;padding:8px;border:1px solid #dce5e2;border-radius:14px;background:#ffffffef;backdrop-filter:blur(10px)}.celebration-tools button{height:38px;padding:0 12px;border:1px solid #dce5e2;border-radius:10px;background:#fff;font-weight:800}.celebration-tools button.active{background:#0b6b5f;color:#fff}.celebration-tools label{display:flex;align-items:center;gap:6px;font-size:.68rem}.celebration-tools>span{margin-left:auto;color:#5d746f;font-size:.65rem}.celebration-content{min-height:70vh;margin:0;padding:24px;background:#fff;border:1px solid #dce5e2;border-radius:18px}.celebration-notes{margin-top:10px;padding:12px;border-radius:12px;background:#fff0d8;color:#7e5316}.celebration-nav{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:#073f39;color:#fff}.celebration-nav button{min-width:130px;height:48px;border:0;border-radius:13px;background:#ffffff18;color:#fff;font-weight:800}.celebration-nav button:disabled{opacity:.3}.celebration-nav>div{text-align:center}.celebration-nav small{display:block;color:#a9d4cb}.has-update .celebration-header{box-shadow:inset 0 -3px #ffb45c}@media(max-width:780px){.celebration{grid-template-rows:58px minmax(0,1fr) 68px}.celebration-stage{display:block}.celebration-sequence{display:none}.celebration-song{height:100%;padding:10px 8px}.celebration-header{padding:7px 9px}.celebration-time small{display:none}.celebration-song-head h1{font-size:1.25rem}.celebration-tools{top:-10px;margin:10px 0;overflow-x:auto}.celebration-tools>span{display:none}.celebration-content{padding:16px 10px;border-radius:13px}.celebration-nav{padding:7px 9px}.celebration-nav button{min-width:92px}.celebration-nav button span{display:none}}
