:root{--bg-base: #000000;--bg-elevated: #121212;--bg-highlight: #1a1a1a;--bg-hover: #2a2a2a;--bg-input: #242424;--text-base: #ffffff;--text-subdued: #b3b3b3;--text-subdued-darker: #727272;--spotify-green: #1ED760;--spotify-green-hover: #3BE477;--border-subdued: rgba(255, 255, 255, .1);--album-color-rgb: 30, 30, 30;--font-main: "SpotifyMixUI", "CircularSp-Arab", "CircularSp-Hebr", "CircularSp-Cyrl", "CircularSp-Grek", "CircularSp-Deva", "Figtree", "Helvetica Neue", helvetica, arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "MS Gothic", sans-serif;--radius-pill: 500px;--radius-card: 4px;--radius-app: 16px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-base);color:var(--text-base);display:flex;justify-content:center;align-items:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hidden,.mobile-only{display:none!important}span.desktop-only{display:inline}div.desktop-only{display:block}i.desktop-only{display:inline-block}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column-reverse;align-items:center;gap:8px;pointer-events:none}.toast{background:#282828f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-base);padding:12px 20px;border-radius:8px;font-size:.85rem;font-weight:500;font-family:var(--font-main);box-shadow:0 4px 20px #00000080;border:1px solid rgba(255,255,255,.08);pointer-events:auto;animation:toastIn .3s ease forwards;max-width:400px;text-align:center}.toast.toast-error{border-color:#ef444466;color:#fca5a5}.toast.toast-success{border-color:#1ed76066;color:#86efac}.toast.toast-out{animation:toastOut .25s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.95)}}.ambient-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% -10%,#1ed7601a,#000 60%);pointer-events:none;z-index:0}.app-wrapper{position:relative;width:100%;max-width:680px;z-index:1;display:flex;justify-content:center}.app-wrapper:before{content:"";position:absolute;inset:-2px;background:linear-gradient(135deg,#1ed76066,#0000,#1ed76040);border-radius:calc(var(--radius-app) + 2px);filter:blur(28px);z-index:-1;opacity:.85;pointer-events:none}.app-container{width:100%;height:auto;min-height:380px;max-height:85vh;background-color:var(--bg-elevated);border:1px solid var(--border-subdued);border-radius:var(--radius-app);box-shadow:0 20px 50px #000000b3;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.25,.8,.25,1)}.dynamic-bg{position:absolute;top:0;left:0;right:0;height:100%;max-height:500px;background:linear-gradient(to bottom,rgba(var(--album-color-rgb),.6),rgba(var(--album-color-rgb),.15) 200px,#121212 400px);pointer-events:none;z-index:0;transition:background .8s ease}.content{padding:10px 0 0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:var(--bg-hover) transparent;display:flex;flex-direction:column;flex:1}.content::-webkit-scrollbar{width:8px}.content::-webkit-scrollbar-thumb{background-color:var(--bg-hover);border-radius:4px}.header,.content{position:relative;z-index:1}.header{padding:16px 28px;display:flex;justify-content:space-between;align-items:center;background:transparent;position:relative}.brand{display:flex;align-items:center;gap:10px;font-size:1.25rem;font-weight:800;font-style:italic;letter-spacing:-.04em;text-shadow:0 2px 10px rgba(0,0,0,.3);z-index:2;cursor:pointer;transition:opacity .2s}.brand:hover{opacity:.8}.brand i{color:var(--spotify-green);font-size:1.6rem;font-style:normal;display:inline-block;transform:rotate(0);transform-origin:50% 50%;will-change:transform;flex-shrink:0}@keyframes brandIconBoot{0%{transform:rotate(165deg) scale(.96)}30%{transform:rotate(70deg) scale(1.5)}60%{transform:rotate(-35deg) scale(1.15)}80%{transform:rotate(8deg) scale(1.02)}to{transform:rotate(0) scale(1)}}.brand i.is-animating{animation:brandIconBoot .9s cubic-bezier(.34,1.56,.64,1) forwards}.brand span{display:inline-block;transition:opacity .3s ease,max-width .3s ease;max-width:100px;opacity:1;overflow:hidden;padding-right:6px}.header-actions{display:flex;align-items:center;gap:10px;z-index:2;flex-shrink:0}.icon-btn{background:transparent;border:none;color:#ffffffb3;padding:8px;border-radius:50%;cursor:pointer;transition:color .2s,background-color .2s;display:flex;align-items:center;justify-content:center;font-size:1.1rem;text-decoration:none}.icon-btn:hover{color:var(--text-base);background-color:#0003}.header-search{position:absolute;left:50%;top:50%;transform:translate(-50%,calc(-50% + 12px)) scale(.95);opacity:0;pointer-events:none;transition:opacity .3s ease,transform .4s cubic-bezier(.175,.885,.32,1.1);width:280px;z-index:1}.header.show-search .header-search{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.header.is-settings .header-search{display:none!important}.header-search .search-box{height:44px}.header-search .search-box button{height:36px;padding:0 16px}.search-section,.status-area,.progress-section{padding:0 28px}.search-section{padding-top:36px;transition:opacity .18s ease}.search-section.is-condensed{opacity:0;pointer-events:none}.search-observer-sentinel{height:1px;margin-top:-1px;pointer-events:none}.hero-text{color:var(--text-subdued);font-size:1.05rem;font-weight:500;margin-bottom:24px;line-height:1.5;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.4)}.mode-indicator{display:inline-flex;align-items:center;justify-content:center;margin:0 auto 16px;padding:8px 14px;border-radius:999px;background:#1ed76024;border:1px solid rgba(30,215,96,.35);color:#b7f7cd;font-size:.8rem;font-weight:700;letter-spacing:.01em}.search-hint{margin:-8px 0 20px;color:#ffffff9e;font-size:.8rem;text-align:center}.search-hint code{font-family:inherit;font-weight:700;color:var(--text-base)}.search-wrapper{position:relative;margin-bottom:24px}.search-box{display:flex;align-items:center;background-color:var(--bg-input);height:48px;border-radius:var(--radius-pill);padding:4px;box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .22s ease-in,background-color .22s ease-in}.search-box:hover{background-color:var(--bg-hover);box-shadow:inset 0 0 0 1px #fff3}.search-box:focus-within{background-color:var(--bg-hover);box-shadow:inset 0 0 0 2px var(--text-base)}.search-box input{flex:1;background:transparent;border:none;color:var(--text-base);padding:0 16px;font-family:inherit;font-size:16px;outline:none;min-width:0}.search-box input::placeholder{color:var(--text-subdued)}.search-box button{height:40px;background:var(--spotify-green);color:#000;border:none;padding:0 24px;border-radius:var(--radius-pill);font-weight:700;font-family:inherit;font-size:.875rem;cursor:pointer;transition:transform .1s,background-color .2s;white-space:nowrap;letter-spacing:.02em}.search-box button:hover{background:var(--spotify-green-hover);transform:scale(1.03)}.search-box button:active{transform:scale(.97)}.search-box button:disabled{opacity:.5;cursor:not-allowed;transform:none}.status-area{text-align:center;font-size:.85rem;color:#ffffffb3;min-height:20px;margin-bottom:20px;font-weight:500}.progress-card{background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-card);padding:12px;display:flex;align-items:center;gap:14px;margin-bottom:24px}.progress-art{width:44px;height:44px;background:var(--bg-hover);border-radius:4px;background-size:cover;background-position:center;flex-shrink:0;box-shadow:0 2px 8px #00000080}.progress-info{flex:1;min-width:0}.progress-title{font-size:.9rem;font-weight:600;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-track{height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--spotify-green);width:0%;transition:width .3s ease}.progress-fill.indeterminate{width:40%;animation:indeterminateSlide 1.2s linear infinite}@keyframes indeterminateSlide{0%{transform:translate(-100%)}to{transform:translate(300%)}}#album-view{animation:fadeIn .4s ease forwards;padding-bottom:24px}.album-hero{display:flex;gap:24px;align-items:flex-end;padding:12px 28px 24px;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.4) 100%)}.album-art-large{width:192px;height:192px;border-radius:4px;background-color:#0003;background-size:cover;background-position:center;box-shadow:0 10px 40px #00000080;flex-shrink:0;transition:background-image .3s ease}.album-meta{flex:1;min-width:0;color:var(--text-base);text-shadow:0 2px 10px rgba(0,0,0,.3);margin-bottom:4px}.album-meta-type{font-size:.75rem;text-transform:uppercase;font-weight:700;margin-bottom:8px;letter-spacing:.05em;opacity:.9}.album-meta h2{margin:0 0 12px;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:900;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.04em}.artist-profile{display:flex;align-items:center;font-size:.875rem;font-weight:500;opacity:.9}.artist-avatar{width:24px;height:24px;border-radius:50%;background-size:cover;background-position:center;margin-right:8px}.artist-name{font-weight:700}.album-details{color:var(--text-subdued);font-size:.85rem;margin-top:4px}.album-body{padding:0 28px;margin-top:8px}.action-row{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:56px;margin-bottom:8px}.btn-download-all{background:transparent;color:var(--text-base);border:1px solid rgba(255,255,255,.3);padding:8px 16px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;letter-spacing:.02em}.btn-download-all:hover{border-color:var(--text-base);background:#ffffff0d;transform:scale(1.02)}.btn-download-all:disabled{cursor:not-allowed;transform:none;opacity:.7}.btn-download-all.is-busy{border-color:#1ed76073;color:#b7f7cd}.btn-download-all.is-complete{border-color:#1ed7608c;color:#b7f7cd;background:#1ed7601f}.track-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.track-card{display:grid;grid-template-columns:16px 1fr auto;gap:16px;padding:0 16px;height:56px;border-radius:var(--radius-card);align-items:center;transition:background .2s;cursor:default}.track-card:hover{background-color:#ffffff0d}.track-num{color:var(--text-subdued);font-size:1rem;text-align:right;font-variant-numeric:tabular-nums;position:relative;display:flex;justify-content:flex-end;align-items:center}.track-num-text{display:block}.track-num-icon{display:none;color:var(--text-base);font-size:1.1rem;position:absolute;cursor:pointer}.track-card:focus-within{background-color:#ffffff0d}.track-details{display:flex;flex-direction:column;justify-content:center;min-width:0}.track-title{font-weight:500;font-size:1rem;color:var(--text-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.track-artist{font-size:.875rem;color:var(--text-subdued);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:0}.explicit-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;min-width:16px;border-radius:2px;background:#fff9;color:#121212;font-size:9px;font-weight:800;letter-spacing:0;line-height:1;margin-right:6px;flex-shrink:0}.track-duration{font-size:.8rem;color:var(--text-subdued-darker);font-variant-numeric:tabular-nums;margin-right:8px}.track-action{color:var(--text-subdued);background:transparent;border:none;cursor:pointer;padding:8px;border-radius:50%;transition:all .2s;opacity:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.track-card:hover .track-action{opacity:1}.track-action:hover{color:var(--text-base);transform:scale(1.1)}.track-action:disabled{cursor:default;transform:none;opacity:1}.track-action.downloading{opacity:1;color:var(--spotify-green);animation:pulse 1.5s ease-in-out infinite}.track-action.completed{opacity:1;color:var(--spotify-green)}.track-action.error{opacity:1;color:#ef4444}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.single-track-hero{display:flex;flex-direction:column;align-items:center;padding:24px 28px;gap:20px;text-align:center}.single-track-art{width:240px;height:240px;border-radius:4px;background-size:cover;background-position:center;box-shadow:0 10px 40px #00000080}.single-track-info{max-width:100%}.single-track-mode-badge{display:inline-flex;margin-bottom:12px;padding:6px 12px;border-radius:999px;background:#1ed76024;border:1px solid rgba(30,215,96,.35);color:#b7f7cd;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.single-track-info h2{margin:0 0 8px;font-size:1.6rem;font-weight:800;letter-spacing:-.03em;line-height:1.2}.single-track-info .artist-name{font-size:.95rem;color:var(--text-subdued);font-weight:500}.single-track-info .track-meta{font-size:.8rem;color:var(--text-subdued-darker);margin-top:8px}.single-track-actions{display:flex;gap:12px;margin-top:20px;justify-content:center}.btn-download-single{background:var(--spotify-green);color:#000;border:none;padding:12px 32px;border-radius:var(--radius-pill);font-size:.9rem;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .1s,background-color .2s;display:flex;align-items:center;gap:8px;letter-spacing:.02em}.btn-download-single:hover{background:var(--spotify-green-hover);transform:scale(1.03)}.btn-download-single:active{transform:scale(.97)}.btn-download-single:disabled{cursor:not-allowed;transform:none;opacity:.8}.btn-download-single.completed{background:#1ed7602e;color:#b7f7cd;border:1px solid rgba(30,215,96,.35)}.track-card.inactive-track{opacity:.4;cursor:not-allowed;background:transparent!important}.track-card.inactive-track:hover{background:transparent}.track-action-forbidden{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff6;font-size:1rem;cursor:help}#settings-view{padding:10px 28px 40px;animation:fadeIn .3s ease forwards}.settings-toolbar{margin-bottom:24px}.settings-back-btn{appearance:none;background:none;border:none;padding:0;display:inline-flex;align-items:center;gap:8px;color:#ffffff9e;font-family:inherit;font-size:.92rem;font-weight:500;cursor:pointer;text-decoration:underline;text-decoration-color:#fff0;text-underline-offset:4px;transition:color .2s ease,text-decoration-color .2s ease,font-weight .2s ease}.settings-back-btn:hover,.settings-back-btn:focus-visible{color:var(--text-base);font-weight:700;text-decoration-color:currentColor}.settings-back-btn:focus-visible{outline:none}.settings-section{margin-bottom:36px}.settings-h2{font-size:1.125rem;font-weight:800;margin:0 0 16px;color:var(--text-base)}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:16px}.settings-text{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.settings-title{color:var(--text-base);font-size:.95rem;font-weight:500}.settings-desc{color:var(--text-subdued);font-size:.875rem;line-height:1.4}.settings-title,.settings-desc{overflow-wrap:anywhere}.settings-row--chips{justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;gap:8px}.settings-row--toggle .sp-toggle{margin-left:12px}.sp-select{appearance:none;-webkit-appearance:none;background-color:#ffffff1a;color:var(--text-base);border:none;padding:8px 36px 8px 12px;border-radius:4px;font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 16 16'%3E%3Cpath d='M3.146 5.646a.5.5 0 0 1 .708 0L8 9.793l4.146-4.147a.5.5 0 0 1 .708.708l-4.5 4.5a.5.5 0 0 1-.708 0l-4.5-4.5a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px;transition:background-color .2s ease}.sp-select:hover{background-color:#ffffff26}.sp-select:focus{outline:2px solid var(--text-base);outline-offset:2px}.sp-select option{background-color:var(--bg-hover);color:var(--text-base)}.sp-toggle{appearance:none;-webkit-appearance:none;width:40px;height:24px;background-color:#535353;border-radius:12px;position:relative;cursor:pointer;outline:none;transition:background-color .2s ease;flex-shrink:0;margin:0}.sp-toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background-color:#fff;border-radius:50%;transition:transform .2s ease}.sp-toggle:hover{background-color:#727272}.sp-toggle:checked{background-color:var(--spotify-green)}.sp-toggle:checked:hover{background-color:var(--spotify-green-hover)}.sp-toggle:checked:after{transform:translate(16px)}.sp-btn-outline{background:transparent;color:var(--text-base);border:1px solid var(--text-subdued-darker);padding:6px 16px;border-radius:500px;font-family:inherit;font-size:.875rem;font-weight:700;cursor:pointer;transition:transform .1s,border-color .2s;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.sp-btn-outline:hover{border-color:var(--text-base);transform:scale(1.04)}.sp-btn-outline:active{transform:scale(.98)}.sp-input{background-color:#ffffff1a;color:var(--text-base);border:1px solid transparent;padding:10px 14px;border-radius:4px;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .2s ease;width:320px;max-width:100%}.sp-input:hover{background-color:#ffffff26}.sp-input:focus{outline:none;border-color:#727272;background-color:#fff3}.settings-chip{display:inline-block;padding:6px 12px;background-color:#ffffff14;border-radius:500px;font-size:.8rem;color:var(--text-subdued);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.settings-chip:hover{background-color:#ffffff26;color:var(--text-base)}.settings-chip:active{transform:scale(.95)}@media(max-width:600px){.settings-toolbar{margin-bottom:18px}.settings-section{margin-bottom:28px}.settings-h2{margin-bottom:14px}.settings-row{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:14px;padding:14px;border-radius:14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.settings-row--chips{flex-direction:row;align-items:flex-start;padding:0;border:none;background:none;gap:8px}.settings-row--toggle{flex-direction:row;align-items:center}.settings-text{width:100%}.settings-title{font-size:.94rem;line-height:1.35}.settings-desc{font-size:.83rem}.sp-input,.sp-select{width:100%;min-width:0}.sp-input{font-size:.84rem;padding:11px 12px}.settings-row--toggle .settings-text{flex:1;width:auto}.settings-row--toggle .sp-toggle{align-self:center;margin-left:12px}.settings-chip{padding:5px 10px;font-size:.76rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){body{align-items:flex-start;background-color:var(--bg-elevated)}.ambient-bg{display:none}.app-wrapper{max-width:100%;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh}.app-wrapper:before{display:none}.app-container{max-height:100vh;max-height:100dvh;min-height:100vh;min-height:100dvh;border-radius:0;border:none;box-shadow:none}.dynamic-bg{display:none}.header{padding:12px 16px}.header.show-search .brand span{max-width:0;opacity:0;margin-left:-10px}.header-actions{gap:6px}.icon-btn{padding:7px;font-size:1rem}.header-search{left:52px;right:106px;width:auto;transform:translateY(calc(-50% + 12px)) scale(.95)}.header.show-search .header-search{transform:translateY(-50%) scale(1)}.search-section,.status-area,.progress-section{padding:0 16px}.search-section{transition:none}.desktop-only{display:none!important}.mobile-only{display:block!important}.mobile-only.flex-container{display:flex!important}span.mobile-only{display:inline!important}i.mobile-only{display:inline-block!important}.album-hero{flex-direction:column;align-items:flex-start;padding:16px 16px 0;gap:16px;background:transparent}.album-art-large{width:250px;height:250px;margin:0 auto;box-shadow:0 8px 30px #00000080}.album-meta{width:100%;margin-bottom:0}.album-meta h2{font-size:1.8rem;margin-bottom:10px}.artist-profile{margin-bottom:6px;opacity:1}.album-details{color:var(--text-subdued);font-size:.85rem;margin-top:4px}.album-body{padding:0 16px;margin-top:16px}.action-row{justify-content:flex-end;height:auto;margin-bottom:24px}.btn-download-all{width:56px;height:56px;border-radius:50%;background-color:var(--spotify-green);color:#000;border:none;display:flex;justify-content:center;align-items:center;padding:0}.btn-download-all i{font-size:1.5rem;margin:0}.track-card{grid-template-columns:1fr auto;padding:0;height:60px;gap:12px}.track-title{font-size:1.05rem;margin-bottom:2px}.track-artist{font-size:.85rem}.track-action{opacity:1;padding:0;font-size:1.3rem;margin-right:4px}.single-track-art{width:200px;height:200px}.single-track-info h2{font-size:1.3rem}#settings-view{padding:10px 16px 40px}}
