:root{color-scheme:dark}body{background:#0b0c0f;color:#f5f5f5;min-height:100vh}.navbar{background:#101115}.brand-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#e00025;box-shadow:0 0 18px #e00025;margin-right:10px}.hero,.panel,.metric,.audio-card,.empty-state{background:#12141a;border:1px solid #282b33;border-radius:18px}.hero{background:radial-gradient(circle at 85% 10%,rgba(224,0,37,.18),transparent 35%),#12141a}.eyebrow{color:#ff294c;font-size:.75rem;font-weight:800;letter-spacing:.16em;margin-bottom:.5rem}.form-control{background:#0d0f13;border-color:#343843;color:#fff}.form-control:focus{background:#0d0f13;color:#fff;border-color:#e00025;box-shadow:0 0 0 .2rem rgba(224,0,37,.15)}.btn-danger{background:#e00025;border-color:#e00025}.audio-list{display:grid;gap:12px}.audio-card{padding:18px}.empty-state{padding:50px;text-align:center;color:#8d93a1}.metric{padding:20px;display:flex;align-items:center;justify-content:space-between;color:#9aa0ad}.metric strong{font-size:2rem;color:#fff}.success-mark{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:#123d28;color:#56d889;font-size:2rem;margin:0 auto 20px}.status-pending{background:#69550d;color:#ffe37b}.status-approved{background:#153e2b;color:#75e3a7}.status-rejected{background:#4a1c25;color:#ff8da2}audio{height:36px;max-width:520px}.table-dark{--bs-table-bg:#12141a;--bs-table-hover-bg:#181b22}
.form-select{background-color:#0d0f13;border-color:#343843;color:#fff}.form-select:focus{border-color:#e00025;box-shadow:0 0 0 .2rem rgba(224,0,37,.15)}.qr-code{width:min(100%,320px);background:#fff;padding:14px;border-radius:18px}.badge{text-transform:capitalize}

/* alpha.10 mobile-first shell */
a{color:#ff5a73;text-decoration:none}.app-shell{max-width:1180px}.topbar{position:sticky;top:0;z-index:1030;backdrop-filter:blur(16px);background:rgba(16,17,21,.92)}.avatar-button{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e00025;color:#fff;font-weight:800}.main-content{min-height:calc(100vh - 170px)}.content-narrow{max-width:760px;margin:0 auto}.legal-notice{background:#24181b;border:1px solid #71303d;border-radius:16px;padding:18px;color:#f8dfe4}.rights-check{display:flex;gap:14px;align-items:flex-start;background:#17191f;border:1px solid #343843;border-radius:16px;padding:18px;cursor:pointer}.rights-check .form-check-input{min-width:24px;width:24px;height:24px;margin-top:1px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.cover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.book-card{position:relative;min-width:0}.book-cover{aspect-ratio:1/1.35;border-radius:18px;background:radial-gradient(circle at 75% 15%,rgba(255,75,105,.45),transparent 36%),linear-gradient(145deg,#35121a,#101116);border:1px solid #49303a;display:grid;place-items:center;box-shadow:0 14px 35px rgba(0,0,0,.28);overflow:hidden}.book-cover span{font-size:3.3rem;font-weight:900;color:rgba(255,255,255,.9)}.book-info{padding:10px 3px}.book-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-nav{display:flex;position:fixed;z-index:1040;left:0;right:0;bottom:0;padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:rgba(13,14,18,.97);border-top:1px solid #2d3038;backdrop-filter:blur(18px)}.mobile-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:#848b99;font-size:1.15rem;min-height:48px;justify-content:center}.mobile-nav a.active{color:#ff294c}.mobile-nav small{font-size:.67rem}.footer-space{padding-bottom:105px!important}.btn{min-height:44px}.form-control-lg{min-height:52px}
@media(min-width:768px){.cover-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-nav{left:50%;right:auto;transform:translateX(-50%);width:min(560px,calc(100% - 24px));bottom:14px;border:1px solid #2d3038;border-radius:20px;padding:8px}.footer-space{padding-bottom:95px!important}}
@media(min-width:1100px){.cover-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.favorite-button{border:0;background:transparent;color:#ef4444;font-size:1.45rem;line-height:1;padding:0 .15rem;position:relative;z-index:3}.favorite-button:hover,.favorite-button:focus{transform:scale(1.08);color:#ff6b6b}.progress{height:.4rem;background:#303747}.progress-bar{background:#dc3545}.audio-card:target{outline:2px solid rgba(220,53,69,.65);scroll-margin-top:6rem}

/* alpha.14 mobile dashboard and mini player */
.playable-card{cursor:pointer}.book-cover{position:relative}.cover-play{position:absolute;right:12px;bottom:12px;width:48px;height:48px;border-radius:50%;border:0;background:#e00025;color:#fff;font-size:1.1rem;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.45);z-index:4}.cover-play:active{transform:scale(.94)}.mini-player{position:fixed;z-index:1050;left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));min-height:68px;border:1px solid #373b45;border-radius:18px;background:rgba(24,26,32,.97);backdrop-filter:blur(18px);display:flex;align-items:center;gap:12px;padding:10px 12px;box-shadow:0 16px 40px rgba(0,0,0,.45)}.mini-player[hidden]{display:none}.mini-play-button{width:46px;height:46px;min-width:46px;border:0;border-radius:50%;background:#e00025;color:#fff;font-weight:800}.mini-meta{min-width:0;flex:1}.mini-title{font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-artist{font-size:.76rem;color:#959ba8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-progress{height:3px;background:#40444e;border-radius:3px;margin-top:7px;overflow:hidden}.mini-progress>div{height:100%;width:0;background:#ff294c}.mini-open{width:38px;height:38px;display:grid;place-items:center;color:#fff;font-size:1.3rem}.has-mini-player .footer-space{padding-bottom:180px!important}@media(min-width:768px){.mini-player{left:50%;right:auto;transform:translateX(-50%);width:min(620px,calc(100% - 24px));bottom:88px}}

/* alpha.15: artist-first card presentation */

/* alpha.16 artist library */
.library-search-wrap{position:relative;display:flex;align-items:center}.library-search-wrap>span{position:absolute;left:16px;color:#8f96a4;font-size:1.4rem;z-index:2}.library-search-wrap .form-control{padding-left:48px;padding-right:48px}.library-search-clear{position:absolute;right:10px;width:36px;height:36px;border:0;border-radius:50%;background:#292c34;color:#fff;font-size:1.5rem;line-height:1}.artist-library{display:grid;gap:22px}.artist-section{background:#12141a;border:1px solid #282b33;border-radius:20px;overflow:hidden}.artist-header{display:flex;align-items:center;gap:14px;padding:18px;border-bottom:1px solid #282b33}.artist-avatar{width:54px;height:54px;min-width:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#5a1624,#e00025);font-size:1.45rem;font-weight:900}.track-list{display:grid}.library-track{display:flex;align-items:center;gap:13px;padding:13px 16px;border-bottom:1px solid #242730}.library-track:last-child{border-bottom:0}.library-track:hover{background:#181b22}.track-play{width:42px;height:42px;min-width:42px;border:0;border-radius:50%;background:#e00025;color:#fff;display:grid;place-items:center}.track-meta{min-width:0;flex:1}.track-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.min-w-0{min-width:0}[hidden]{display:none!important}@media(min-width:900px){.artist-library{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}

/* alpha.17 artist detail and alphabet navigation */
.alphabet-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.alphabet-nav::-webkit-scrollbar{display:none}.alphabet-chip{flex:0 0 auto;min-width:42px;height:42px;border-radius:999px;border:1px solid #343843;background:#17191f;color:#cbd0da;font-weight:750}.alphabet-chip.active{background:#e00025;border-color:#e00025;color:#fff}.artist-header-link{color:#fff}.artist-header-link:hover{background:#181b22;color:#fff}.artist-open{font-size:2rem;color:#8f96a4;line-height:1}.artist-more{display:block;padding:13px 18px;border-top:1px solid #282b33;font-weight:700;text-align:center}.artist-detail-hero{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:radial-gradient(circle at 85% 10%,rgba(224,0,37,.22),transparent 36%),#12141a;border:1px solid #282b33;border-radius:22px;padding:24px;position:relative}.artist-detail-avatar{width:92px;height:92px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(145deg,#5a1624,#e00025);font-size:2.6rem;font-weight:900}.back-link{grid-column:1/-1;color:#d6dae2;font-weight:700}.track-number{width:24px;text-align:center;color:#8f96a4;font-variant-numeric:tabular-nums}@media(max-width:520px){.artist-detail-avatar{width:72px;height:72px;border-radius:20px;font-size:2rem}.artist-detail-hero{padding:18px}.artist-library{gap:16px}}

/* alpha.18 mobile player core */
.player-page{max-width:860px;margin:0 auto}.now-playing-card{background:radial-gradient(circle at 80% 0,rgba(224,0,37,.25),transparent 38%),#12141a;border:1px solid #30333c;border-radius:28px;padding:20px;display:grid;grid-template-columns:110px 1fr;gap:18px;box-shadow:0 20px 55px rgba(0,0,0,.32)}.now-cover{width:110px;aspect-ratio:1;border-radius:24px;background:linear-gradient(145deg,#5a1624,#e00025);display:grid;place-items:center;box-shadow:0 14px 35px rgba(0,0,0,.35)}.now-cover span{font-size:3.2rem;font-weight:900}.now-meta{min-width:0;align-self:center}.now-meta h2{font-size:clamp(1.35rem,5vw,2.2rem);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-title{color:#aeb4c0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-timeline{grid-column:1/-1}.player-timeline .form-range{accent-color:#e00025}.player-controls{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:24px}.primary-control,.secondary-control{border:0;color:#fff;border-radius:999px;display:grid;place-items:center}.primary-control{width:76px;height:76px;background:#e00025;font-size:1.7rem;box-shadow:0 12px 30px rgba(224,0,37,.32)}.secondary-control{width:54px;height:54px;background:#292c34;font-weight:800}.primary-control:active,.secondary-control:active{transform:scale(.95)}.player-options{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.player-options label{color:#9ca3af;font-size:.82rem}.player-options .form-select{width:auto;min-width:92px}.player-queue{display:grid;gap:10px}.queue-track{display:flex;align-items:center;gap:13px;padding:12px 14px;background:#12141a;border:1px solid #282b33;border-radius:17px;transition:.15s}.queue-track.active{border-color:#e00025;background:#1b1418;box-shadow:0 0 0 1px rgba(224,0,37,.15)}.queue-play{width:44px;height:44px;min-width:44px;border:0;border-radius:50%;background:#292c34;color:#fff}.queue-track.active .queue-play{background:#e00025}.queue-duration{color:#8f96a4;font-size:.78rem;font-variant-numeric:tabular-nums}@media(max-width:560px){.now-playing-card{grid-template-columns:86px 1fr;padding:16px;border-radius:24px}.now-cover{width:86px;border-radius:20px}.now-cover span{font-size:2.5rem}.primary-control{width:70px;height:70px}.player-controls{gap:20px}.queue-track{padding:11px}.queue-duration{display:none}}

/* 0.2.0-beta.1 PWA */
.pwa-install-banner{position:sticky;top:62px;z-index:1025;margin:10px auto 0;padding:12px 14px;background:#17191f;border:1px solid #4b2730;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 14px 30px rgba(0,0,0,.35)}
.pwa-install-banner[hidden]{display:none!important}.offline-card{max-width:440px;margin-top:10vh;background:#12141a;border:1px solid #282b33;border-radius:24px;padding:34px}.offline-icon{font-size:4rem;color:#ff294c;margin-bottom:10px}
@media(display-mode:standalone){.topbar{padding-top:env(safe-area-inset-top)}body{overscroll-behavior-y:contain}}

/* 0.2.0-beta.2 Immersive Player */
.immersive-player{max-width:920px;margin:0 auto}.player-topbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;margin-bottom:18px}.player-collapse,.player-more{width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;background:#1d2027;color:#fff;font-size:1.8rem}.player-more{font-size:1.6rem}.player-top-title{text-align:center;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.immersive-stage{position:relative;overflow:hidden;border:1px solid #30333c;border-radius:30px;padding:24px;background:#111318;box-shadow:0 24px 70px rgba(0,0,0,.42)}.ambient-cover{position:absolute;inset:-20%;background:radial-gradient(circle,#9d102c 0,rgba(157,16,44,.35) 30%,transparent 70%);filter:blur(45px);opacity:.55;pointer-events:none}.hero-cover{position:relative;width:min(78vw,390px);aspect-ratio:1;border-radius:30px;margin:0 auto 24px;display:grid;place-items:center;background:linear-gradient(145deg,#5a1624,#e00025);box-shadow:0 28px 65px rgba(0,0,0,.46)}.hero-cover span{font-size:clamp(5rem,24vw,9rem);font-weight:900}.hero-meta{position:relative;text-align:center}.hero-artist{font-size:clamp(1.35rem,5vw,2.15rem);font-weight:850}.hero-title{font-size:clamp(1rem,4vw,1.35rem);font-weight:550;color:#c4c8d0;margin:.2rem 0}.hero-status{font-size:.78rem;color:#8f96a4}.hero-timeline{position:relative;margin-top:24px}.hero-timeline .form-range{accent-color:#ff294c}.timeline-labels{display:flex;justify-content:space-between;font:12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:#969dab}.hero-controls{position:relative;display:flex;justify-content:center;align-items:center;gap:clamp(10px,3vw,22px);margin:18px 0}.tiny-control{border:0;background:transparent;color:#cbd0d8;font-size:1.35rem;width:36px;height:44px}.hero-controls .primary-control{width:82px;height:82px}.hero-controls .secondary-control{width:56px;height:56px}.player-actions{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.action-pill{border:1px solid #333741;background:#1a1d24;color:#fff;border-radius:17px;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.action-pill>span{font-weight:800;font-size:1rem}.action-pill small{color:#8f96a4;font-size:.68rem}.player-sheet{height:auto!important;max-height:78vh;background:#111318;border-radius:26px 26px 0 0;border-top:1px solid #3b3f49;color:#fff}.sheet-list{display:grid;gap:8px}.sheet-track{display:grid;grid-template-columns:28px 1fr 30px;align-items:center;gap:10px;width:100%;border:1px solid #292d36;background:#171a20;color:#fff;border-radius:15px;padding:12px;text-align:left}.sheet-track.active{border-color:#e00025;background:#24151a}.sheet-track div{min-width:0}.sheet-track strong,.sheet-track small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-track small{color:#969dab}.speed-grid,.sleep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.speed-grid button,.sleep-grid button{min-height:58px;border:1px solid #343842;border-radius:16px;background:#1a1d24;color:#fff;font-weight:750}.speed-grid button.active{background:#e00025;border-color:#e00025}.compact-track-browser{padding-bottom:20px}@media(max-width:560px){.immersive-stage{margin-inline:-6px;padding:18px;border-radius:26px}.hero-cover{width:min(80vw,330px);border-radius:26px}.player-actions{gap:7px}.action-pill{min-height:60px}.hero-controls .primary-control{width:76px;height:76px}.hero-controls .secondary-control{width:52px;height:52px}.compact-track-browser .queue-duration{display:none}}@media(min-width:768px){.immersive-stage{padding:34px}.player-sheet{left:50%;right:auto;transform:translateX(-50%);width:min(680px,100%);border-radius:26px 26px 0 0}}

/* Discover / Universal Search */
.discover-hero{padding:1.4rem 0 .5rem}.discover-search{position:relative;display:flex;align-items:center}.discover-search>span{position:absolute;left:1rem;font-size:1.35rem;color:#9ca3af;z-index:2}.discover-search input{padding-left:3rem;padding-right:3rem;border-radius:1.1rem;background:#171b24;border-color:#303642;color:#fff;min-height:58px}.discover-search button{position:absolute;right:.75rem;border:0;background:#343a46;color:#fff;border-radius:50%;width:34px;height:34px}.discover-artist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.discover-artist-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem .7rem;border:1px solid #2d3440;border-radius:1.15rem;background:#171b24;color:#fff;text-decoration:none;min-width:0}.discover-artist-card strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discover-artist-card small{color:#9ca3af}.discover-avatar{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;margin-bottom:.65rem;background:linear-gradient(145deg,#c1121f,#5f0710);font-size:1.7rem;font-weight:800}.discover-track-list{display:grid;gap:.65rem}.discover-track{display:grid;grid-template-columns:46px minmax(0,1fr);gap:.8rem;align-items:center;padding:.75rem;border:1px solid #2d3440;border-radius:1rem;background:#171b24}.search-result-group[hidden]{display:none!important}@media(min-width:720px){.discover-artist-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.discover-track-list{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* QR Connect beta.5 */
.connect-page{max-width:680px}.qr-scanner-frame{position:relative;aspect-ratio:1/1;max-height:62vh;background:#06070a;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}.qr-scanner-frame video{width:100%;height:100%;object-fit:cover}.qr-scanner-guide{position:absolute;inset:14%;border:3px solid #dc3545;border-radius:24px;box-shadow:0 0 0 999px rgba(0,0,0,.22)}.qr-scanner-guide:before,.qr-scanner-guide:after{content:"";position:absolute;width:44px;height:44px;border-color:#fff}.qr-scanner-guide:before{left:-3px;top:-3px;border-left:5px solid;border-top:5px solid;border-radius:20px 0 0}.qr-scanner-guide:after{right:-3px;bottom:-3px;border-right:5px solid;border-bottom:5px solid;border-radius:0 0 20px}.qr-scanner-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#8b93a1;padding:2rem;text-align:center}.connect-success-mark{width:86px;height:86px;margin:1rem auto;display:grid;place-items:center;border-radius:50%;font-size:3rem;font-weight:800;background:rgba(25,135,84,.16);color:#45d483;border:2px solid rgba(69,212,131,.5)}.manual-pairing summary{cursor:pointer;color:#c7cbd2;text-align:center}

.pairing-code-box{margin:1rem auto;padding:.75rem 1rem;max-width:520px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}.pairing-code-box span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:#8b93a1}.pairing-code-box code{display:block;margin-top:.35rem;color:#fff;overflow-wrap:anywhere;user-select:all}
