/* Stage 8 music app: mobile-first hierarchy on top of the shared green design tokens. */
#music-app [hidden],#global-music [hidden]{display:none!important}
.glory-app.has-music-player{padding-bottom:calc(190px + env(safe-area-inset-bottom))}
.glory-app.has-sermon-player .music-player{display:none}
.music-app-shell{width:min(100%,920px);margin-inline:auto;padding-bottom:190px}
.music-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 18px}
.music-toolbar h1{font-size:clamp(25px,5vw,32px);line-height:1.25;margin:5px 0 0}
.music-toolbar-actions{display:flex;align-items:center;gap:4px}
.music-icon-button{display:inline-grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--primary);text-decoration:none;font:inherit;font-size:24px}
.music-icon-button:hover{background:var(--primary-soft)}.music-icon-button .icon{width:22px;height:22px}
.music-search-panel{display:grid;grid-template-columns:22px minmax(0,1fr) 44px;align-items:center;gap:7px;margin:0 0 18px;padding:5px 6px 5px 14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;box-shadow:0 8px 24px #2627030b}
.music-search-panel>.icon{width:20px;color:var(--text-secondary)}
#music-app .music-search-panel input{width:100%;min-width:0;border:0;border-radius:0;padding:11px 3px;background:transparent;font-size:16px;outline:0}
.music-toast{position:fixed;z-index:80;left:50%;bottom:calc(172px + env(safe-area-inset-bottom));transform:translate(-50%,12px);width:max-content;max-width:calc(100% - 32px);margin:0;padding:10px 16px;border-radius:999px;background:#262703ed;color:#fff;font-size:13px;text-align:center;opacity:0;pointer-events:none;transition:opacity var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard)}
.music-toast.is-visible{opacity:1;transform:translate(-50%,0)}
.music-playlist-hub,.music-library{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px;margin-bottom:16px}
.music-hub-heading,.music-library-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.music-hub-heading h2,.music-library-head h2{font-size:22px;margin:5px 0 0}.music-hub-heading .eyebrow{margin:0}
.music-quiet-button,.music-shuffle-all{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;border:0;border-radius:11px;background:var(--primary-soft);color:var(--primary);font:inherit;font-size:13px;font-weight:650;white-space:nowrap}
.music-shuffle-all .icon{width:18px;height:18px}.music-shuffle-all:disabled{opacity:.45}
.music-playlist-tabs,.music-library-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:4px;margin:15px 0 12px;background:var(--surface-secondary);border-radius:12px}.music-playlist-tabs::-webkit-scrollbar,.music-library-tabs::-webkit-scrollbar{display:none}
.music-playlist-tabs button,.music-library-tabs .music-tab{flex:1 0 auto;min-height:44px;margin:0;padding:8px 8px;border:0;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;white-space:nowrap}
.music-playlist-tabs button[aria-selected=true],.music-library-tabs .music-tab[aria-current=true]{background:var(--surface);color:var(--primary);font-weight:700;box-shadow:0 1px 4px #0000000d}
.music-playlist-groups{min-height:70px}.music-playlist-rail{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 4px;scrollbar-width:thin}.music-playlist-card{flex:0 0 154px;min-height:64px;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text-primary);text-align:left;font:inherit;font-size:14px;font-weight:700;overflow-wrap:anywhere}.music-playlist-card small{display:block;margin-top:4px;color:var(--text-secondary);font-size:11px;font-weight:400}.music-playlist-card[aria-current=true]{border-color:var(--brand-soft);background:var(--primary-soft);color:var(--primary)}
.music-hint{font-size:13px;color:var(--text-secondary);margin:10px 0 12px}.music-list-actions{margin:12px 0}.music-library-head>div{min-width:0}.music-library-head p{font-size:13px;color:var(--text-secondary);margin-top:5px}
#playlist-settings{padding:16px;background:var(--surface-secondary);border-radius:14px}#playlist-edit>label{display:block;margin-bottom:12px}#playlist-edit textarea{margin-top:5px}
#music-app input:not([type=checkbox]):not([type=range]),#music-app textarea{width:100%;border:1px solid var(--border-strong);border-radius:12px;padding:11px;font-size:16px;background:#fff}#music-app select{max-width:100%;min-height:44px;border:1px solid var(--border-strong);border-radius:10px;padding:8px;background:#fff}
.music-track{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto 34px;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}
.music-track:last-child{border-bottom:0}.music-track-thumb{display:grid;place-items:center;width:46px;height:46px;border-radius:10px;background:linear-gradient(145deg,#eaf4ef,#dbeae2);color:var(--primary);font-size:20px}.music-track-info{min-width:0}.glory-app .music-track-info>button{min-height:0;line-height:1.35;display:flex;align-items:center;gap:7px;width:100%;min-width:0;padding:0;border:0;background:none;color:var(--text-primary);font:inherit;font-size:15px;font-weight:700;text-align:left;overflow:hidden}.music-track-info>button:not(:disabled):hover{color:var(--primary)}.music-track-info>button .sound-wave{display:none;flex:0 0 auto}.music-track-info small{display:block;margin-top:3px;color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-track-actions{display:flex;align-items:center;gap:2px;margin:0}.music-track-actions button{display:grid;place-items:center;width:42px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--primary);font:inherit;font-size:22px}.music-track-actions button:hover,.music-track-actions button[aria-pressed=true]{background:var(--primary-soft)}.music-track-actions .music-playlist-add{font-size:25px;font-weight:350}
.music-track-menu{position:relative}.music-track-menu>summary{display:grid;place-items:center;width:34px;height:44px;list-style:none;color:var(--text-secondary);cursor:pointer;font-size:20px}.music-track-menu>summary::-webkit-details-marker{display:none}.music-track-menu-panel{position:absolute;z-index:20;right:0;top:40px;width:max-content;min-width:154px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 12px 30px #2627031c}.music-track-menu-panel button{display:block;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:inherit;font-size:12px;text-align:left}.music-track-menu-panel button:hover{background:var(--surface-secondary);color:var(--primary)}.music-track-menu-panel .music-admin-disable{color:#9c4747}
.music-track-list-manage{grid-column:2/5;display:flex;justify-content:flex-end;gap:4px}.music-track-list-manage button{min-height:36px;padding:5px 9px;border:0;background:transparent;color:var(--text-secondary);font-size:11px}.music-track.is-current .music-track-thumb{background:var(--primary);color:#fff}.music-track.is-current .music-track-info>button .sound-wave{display:inline-flex}.music-track.is-disabled{opacity:.6}.music-track.is-disabled .music-track-thumb{filter:grayscale(1)}
.music-load-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin-top:10px;border:0;border-radius:12px;background:var(--surface-secondary);color:var(--primary);font:inherit;font-size:13px;font-weight:650}
.sound-wave{height:15px;display:inline-flex;align-items:flex-end;gap:2px}.sound-wave i{display:block;width:2px;height:40%;border-radius:2px;background:currentColor;animation:sound-wave .75s ease-in-out infinite alternate;animation-play-state:paused}.sound-wave i:nth-child(2){height:80%;animation-delay:-.25s}.sound-wave i:nth-child(3){height:55%;animation-delay:-.5s}.sound-wave i:nth-child(4){height:95%;animation-delay:-.12s}.is-playing .sound-wave i,.music-track.is-playing .sound-wave i{animation-play-state:running}@keyframes sound-wave{to{height:100%}}
.music-player{position:fixed;z-index:35;left:calc(216px + max(18px,(100vw - 216px - 920px)/2));right:max(18px,(100vw - 216px - 920px)/2);bottom:16px;max-width:920px;margin:auto;padding:12px 16px 14px;border:1px solid var(--border-strong);border-radius:18px;background:#f8fbf9f5;box-shadow:0 12px 42px #26270324;backdrop-filter:blur(16px)}
.music-player-summary{display:grid;grid-template-columns:44px minmax(0,1fr) 48px;align-items:center;gap:10px}.music-note{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--primary-soft);color:var(--primary)}.now-playing{display:block;min-width:0;padding:0;border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left}.now-title-viewport{display:block;max-width:100%;overflow:hidden;white-space:nowrap;line-height:1.35}.now-title-viewport #now-title{display:block;width:max-content;max-width:none;white-space:nowrap;will-change:transform;font-size:14px;line-height:1.35}.now-playing small{display:block;margin-top:2px;color:var(--text-secondary);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-mini-toggle{display:none;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--primary);color:#fff}.music-mini-toggle .icon{width:20px}.music-player:not(.is-playing) .pause-state,.music-player.is-playing .play-state{display:none}
.music-player-details{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:18px;margin-top:8px}.music-primary-controls{display:flex;justify-content:center;align-items:center;gap:10px}.music-primary-controls button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--primary)}.music-primary-controls button .icon{width:21px;height:21px}.music-primary-controls #music-toggle{width:56px;height:56px;background:var(--primary);color:#fff}.music-primary-controls #music-toggle .icon{width:24px;height:24px}
.music-progress-wrap{min-width:0}.music-progress-wrap input{display:block;width:100%;height:22px;margin:0;accent-color:var(--primary)}.music-time{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:10px;font-variant-numeric:tabular-nums}
.music-player audio{display:none}.music-controls{display:flex;align-items:center;justify-content:flex-end;gap:4px}.music-controls button{display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:6px 8px;border:0;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:11px}.music-controls button .icon{width:18px;height:18px}.music-controls button[aria-pressed=true]{background:var(--primary-soft);color:var(--primary)}.music-volume{display:none}
.music-queue{grid-column:1/-1;position:relative}.music-queue summary{display:inline-flex;align-items:center;gap:6px;min-height:40px;color:var(--text-secondary);font-size:12px;cursor:pointer;list-style:none}.music-queue summary::-webkit-details-marker{display:none}.music-queue summary .icon{width:18px;height:18px}.queue-sheet-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:12px 0 8px;border-top:1px solid var(--border)}.queue-sheet-heading small{color:var(--text-secondary);font-size:11px}#queue-list{position:relative;max-height:210px;overflow:auto;overscroll-behavior:contain}.queue-row{display:grid;grid-template-columns:36px minmax(0,1fr) 44px;align-items:center;gap:4px;min-height:48px;border-bottom:1px solid var(--border)}.queue-row>button{min-height:40px;border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left}.queue-row>button:last-child{text-align:center;color:var(--text-secondary);font-size:18px}.queue-handle{display:grid;place-items:center;min-height:44px;touch-action:none;cursor:grab;color:var(--text-tertiary);letter-spacing:-4px;font-size:17px}
.queue-row{position:relative;transition:transform var(--motion-base) var(--ease-standard),background-color var(--motion-base) var(--ease-standard)}.queue-row.is-dragging{z-index:2;margin-block:3px;transform:translateY(-2px) scale(1.02);border-radius:10px;background:var(--brand-surface);box-shadow:0 8px 20px #202A2620;opacity:.92}.queue-row.is-drop-target:before{content:"";position:absolute;left:8px;right:8px;top:0;height:3px;border-radius:2px;background:var(--primary)}.queue-row.is-placeholder{visibility:hidden}.queue-drag-ghost{position:fixed;left:0;top:0;z-index:150;pointer-events:none;background:var(--surface);border-radius:10px;box-shadow:0 8px 24px #202a2638;transform-origin:center;transition:none!important}.queue-handle.is-active{color:var(--primary);cursor:grabbing;background:var(--brand-soft);border-radius:9px}
.music-dialog{width:min(430px,calc(100% - 28px));border:0;border-radius:20px;padding:20px;box-shadow:0 20px 60px #26270340}.music-dialog::backdrop{background:#26270366}.music-dialog label{display:grid;gap:6px;margin:10px 0}.music-dialog select{width:100%}.music-dialog hr{border:0;border-top:1px solid var(--border);margin:18px 0}
@keyframes glory-title-marquee{0%,15%{transform:translateX(0)}80%,92%{transform:translateX(var(--marquee-distance))}100%{transform:translateX(0)}}.now-title-viewport #now-title.is-overflowing{animation:glory-title-marquee var(--marquee-duration,12s) ease-in-out infinite}
@media(max-width:1023px){.music-player{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(74px + env(safe-area-inset-bottom))}}
@media(max-width:700px){.music-app-shell{padding-bottom:112px}.music-toolbar{margin-top:8px}.music-playlist-hub,.music-library{padding:15px 14px;border-radius:16px}.music-hub-heading h2,.music-library-head h2{font-size:20px}.music-playlist-tabs{margin-inline:-4px}.music-library-head{align-items:flex-end}.music-library-head .badge{font-size:10px}.music-shuffle-all{padding-inline:10px}.music-track{grid-template-columns:42px minmax(0,1fr) auto 28px;gap:7px;padding:10px 0}.music-track-thumb{width:40px;height:40px;border-radius:9px}.music-track-info>button{font-size:14px}.music-track-actions button{width:38px;height:42px}.music-track-menu>summary{width:28px}.music-track-menu-panel{right:-4px}.music-player{padding:8px 10px;border-radius:15px}.music-player-summary{grid-template-columns:40px minmax(0,1fr) 44px;gap:8px}.music-note{width:38px;height:38px}.music-mini-toggle{display:grid}.music-player-details{display:none;grid-template-columns:1fr;margin-top:12px;gap:10px}.music-player.is-expanded{max-height:min(76dvh,610px);overflow-y:auto;padding:16px}.music-player.is-expanded .music-player-details{display:grid}.music-player.is-expanded .music-mini-toggle{display:none}.music-primary-controls{gap:18px;margin:2px 0 5px}.music-primary-controls button{width:48px;height:48px}.music-primary-controls #music-toggle{width:62px;height:62px}.music-controls{justify-content:center}.music-queue{grid-column:1}.music-queue[open]{position:fixed;z-index:90;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:calc(70px + env(safe-area-inset-bottom));max-height:68dvh;padding:16px;border:1px solid var(--border);border-radius:20px 20px 12px 12px;background:var(--surface);box-shadow:0 18px 60px #26270345}.music-queue[open]>summary{width:100%;justify-content:center}.music-queue[open] #queue-list{max-height:50dvh}.music-toast{bottom:calc(142px + env(safe-area-inset-bottom))}}
@media(max-width:359px){.music-track{grid-template-columns:38px minmax(0,1fr) auto 24px;gap:5px}.music-track-thumb{width:36px;height:36px}.music-track-actions button{width:34px}.music-track-menu>summary{width:24px}.music-shuffle-all{font-size:12px}.music-playlist-tabs button{padding-inline:9px}}
@media(prefers-reduced-motion:reduce){.sound-wave i,.now-title-viewport #now-title.is-overflowing{animation:none!important}.now-title-viewport #now-title.is-overflowing{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.music-toast,.queue-row{transition:none}}

/* Stage 10: compact mobile density and a single, non-overlapping player sheet. */
.music-playlist-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
.music-playlist-tabs button{width:100%;min-width:0;white-space:normal;text-align:center;line-height:1.3}
.music-track-info{display:grid;align-content:center;gap:1px}
.music-track-info small{margin-top:0}
.music-options-icon{display:grid;width:20px;height:18px;align-content:center;gap:3px}
.music-options-icon i{position:relative;display:block;width:18px;height:1.5px;border-radius:2px;background:currentColor}
.music-options-icon b{position:absolute;top:50%;width:4px;height:4px;border:1.5px solid currentColor;border-radius:50%;background:var(--surface);transform:translateY(-50%)}
.music-options-icon i:nth-child(1) b,.music-options-icon i:nth-child(3) b{left:3px}
.music-options-icon i:nth-child(2) b{right:3px}
@media(max-width:700px){
 .music-app-shell{padding-bottom:168px}
 .music-toolbar{margin:6px 0 14px}.music-toolbar-actions{gap:0}
 .music-playlist-hub,.music-library{padding:14px 12px;margin-bottom:12px}
 .music-hub-heading{gap:10px}.music-quiet-button{padding-inline:10px}
 .music-playlist-tabs{margin:12px 0 10px;gap:2px;padding:3px}
 .music-playlist-tabs button{padding:7px 4px;font-size:12px}
 .music-playlist-groups{min-height:58px}
 .music-track{padding:9px 0}.music-track-info{gap:0}.music-track-info small{line-height:1.35}
 .music-player{bottom:calc(74px + env(safe-area-inset-bottom));max-height:none;overflow:visible}
 .music-player.is-expanded{display:flex;flex-direction:column;max-height:calc(100dvh - 104px - env(safe-area-inset-bottom));overflow:hidden;padding:14px}
 .music-player.is-expanded .music-player-summary{flex:0 0 auto;padding-bottom:10px;border-bottom:1px solid var(--border)}
 .music-player.is-expanded .music-player-details{display:grid;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
 .music-player.is-expanded .music-primary-controls{position:sticky;top:0;z-index:2;margin:0;padding:8px 0;background:#f8fbf9}
 .music-queue[open]{position:static;z-index:auto;max-height:none;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
 .music-queue[open]>summary{width:auto;justify-content:flex-start}
 .music-queue[open] #queue-list{max-height:min(30dvh,240px);overflow-y:auto;overscroll-behavior:contain}
 .queue-sheet-heading{position:sticky;top:78px;z-index:1;background:#f8fbf9}
 .music-toast{bottom:calc(150px + env(safe-area-inset-bottom))}
}
@media(max-width:374px){.music-playlist-tabs button{font-size:11px;padding-inline:2px}.music-track-actions{gap:0}}

/* Stage 10.1: calm mobile sheet motion and an explicit collapse control. */
.music-player-collapse{display:none;place-items:center;width:44px;height:44px;margin:-8px auto -2px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-secondary)}
.music-player-collapse .icon{width:20px;height:20px}
@media(max-width:700px){
 .music-player{max-height:64px;overflow:hidden;transition:none}
 .music-player-details{display:grid;max-height:0;margin-top:0;opacity:0;overflow:hidden;visibility:hidden;pointer-events:none;transform:none;transition:opacity var(--motion-base) var(--ease-standard),visibility 0s linear var(--motion-base)}
 .music-player.is-expanded{max-height:calc(100dvh - 104px - env(safe-area-inset-bottom));border-radius:20px;padding:14px}
 .music-player.is-expanded .music-player-collapse{display:grid;flex:0 0 44px}
 .music-player.is-expanded .music-player-details{display:grid;max-height:calc(100dvh - 212px - env(safe-area-inset-bottom));margin-top:10px;opacity:1;overflow-y:auto;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
}
@media(prefers-reduced-motion:reduce){.music-player,.music-player-details{transition:none!important}}


.queue-row{transition:translate var(--motion-base) var(--ease-standard)}
.queue-row.is-dragging{transform:scale(1.015);box-shadow:0 3px 10px #202a2620;position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.queue-row{transition:none}.queue-row.is-dragging{transform:none}}
@media(max-width:700px){.music-library-tabs .music-tab{flex:1 1 0;min-width:0;padding-inline:4px;font-size:12px}}

.music-player:not([hidden]){animation:motion-rise-in var(--motion-base) var(--ease-enter)}
.music-track-menu[open] .music-track-menu-panel{animation:motion-rise-in var(--motion-base) var(--ease-enter)}

