:root{font-family:'Noto Sans KR',system-ui,-apple-system,sans-serif;color:#f7f7f7;background:#000;color-scheme:dark;--bg:#101010;--panel:#181818;--elev:#242424;--muted:#aaa;--line:#303030;--accent:#1ed760;--soft:#b3b3b3;--radius:9px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sprite{position:absolute;width:0;height:0;overflow:hidden}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden],.hidden{display:none!important}
.shell{display:grid;grid-template-columns:282px minmax(0,1fr);gap:8px;padding:8px;height:calc(100dvh - 89px);background:#000}.sidebar{background:#121212;border-radius:10px;display:flex;flex-direction:column;overflow:hidden;min-height:0}.side-top{padding:26px 13px 16px}.brand{width:100%;display:flex;align-items:center;gap:12px;border:0;background:none;color:#fff;text-align:left;font-size:17px;font-weight:800;letter-spacing:-.6px;padding:0 10px 24px;white-space:nowrap}.brand b{font-weight:500}.brand-icon{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#111;display:grid;place-items:center}.brand-icon svg{width:21px;height:21px}.nav-items{display:grid;gap:3px}.nav-link{width:100%;display:flex;align-items:center;gap:15px;color:#a7a7a7;border:0;background:transparent;font-weight:700;font-size:14px;text-align:left;border-radius:7px;padding:12px 13px;transition:.15s}.nav-link svg{width:22px;height:22px}.nav-link.active,.nav-link:hover{color:#fff;background:#252525}.nav-link.active svg{color:var(--accent)}.sidebar-library{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid #292929;padding-top:18px}.sidebar-section-head{padding:0 14px 12px 25px;display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:#d2d2d2}.icon-btn,.close-btn{display:grid;place-items:center;border:0;background:none;color:#bcbcbc;width:33px;height:33px;border-radius:50%}.icon-btn:hover,.close-btn:hover{color:#fff;background:#333}.icon-btn svg{width:19px;height:19px}.side-playlists{padding:0 8px 10px;overflow:auto;min-height:0;scrollbar-color:#3b3b3b transparent;scrollbar-width:thin}.side-item{display:flex;align-items:center;gap:11px;width:100%;border:0;background:none;color:#e7e7e7;padding:8px;text-align:left;border-radius:6px}.side-item:hover,.side-item.active{background:#252525}.side-item .cover{width:49px;height:49px;border-radius:4px}.side-item .cover svg{width:24px;height:24px}.side-item .side-label{min-width:0;flex:1}.side-item strong{display:block;font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-item span{display:block;color:#999;font-size:11px;margin-top:5px}.sidebar-bottom{padding:8px 12px 14px;border-top:1px solid #292929}.sidebar-bottom .nav-link{padding:10px 13px}.app-version{display:block;font-size:10px;color:#696969;padding:14px 13px 0}.primary{border-radius:10px;background:var(--bg);min-width:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#4c4c4c #151515;scrollbar-width:thin}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 32px;background:#181818ed;backdrop-filter:blur(24px);min-height:70px;gap:16px}.breadcrumbs{font-size:13px;font-weight:700;color:#cfcfcf}.topbar-right{display:flex;align-items:center;gap:14px}.engine-indicator{font-size:12px;color:#a5a5a5;display:flex;gap:8px;align-items:center;white-space:nowrap}.status-dot{width:7px;height:7px;background:#777;border-radius:50%}.engine-indicator.active .status-dot{background:var(--accent);box-shadow:0 0 0 4px #1ed76019}.profile-btn{border:0;background:#080808;border-radius:30px;display:flex;align-items:center;gap:7px;color:#e8e8e8;padding:8px 13px 8px 9px;font-size:12px;font-weight:700}.profile-btn:hover{background:#303030}.profile-btn svg{width:17px;height:17px}.page-loading{display:flex;align-items:center;gap:16px;padding:50px;color:#aaa}.spinner{width:20px;height:20px;border:2px solid #333;border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.content{padding:0 34px 90px;max-width:1480px;margin:auto}.home-hero{min-height:286px;margin:0 -34px 31px;padding:45px 34px 30px;display:flex;align-items:end;gap:23px;background:linear-gradient(130deg,#245b49 0%,#174234 32%,#182d29 62%,#141414 100%);position:relative;overflow:hidden}.home-hero::before{content:'';position:absolute;top:-120px;right:-25px;height:380px;width:380px;border-radius:50%;background:#1ed76022;filter:blur(64px)}.hero-cover{position:relative;width:172px;height:172px;box-shadow:0 16px 45px #0005;border-radius:5px;flex-shrink:0}.hero-copy{position:relative;padding-bottom:6px;max-width:660px}.eyebrow{text-transform:uppercase;letter-spacing:1.4px;font-size:11px;font-weight:800;color:#d7f6e4;margin-bottom:8px}.hero-copy h1{font-size:clamp(33px,4.5vw,57px);line-height:1.16;letter-spacing:-2.6px;font-weight:900;margin:0 0 12px}.hero-copy p{font-size:13px;color:#dbeddf;margin:0 0 22px;line-height:1.7}.button-row{display:flex;gap:11px;flex-wrap:wrap}.solid-btn,.ghost-btn,.outline-btn{border:0;border-radius:100px;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 21px;white-space:nowrap;transition:transform .16s,filter .16s}.solid-btn{background:var(--accent);color:#09150c}.solid-btn:hover:not(:disabled){transform:scale(1.035);filter:brightness(1.05)}.ghost-btn{background:#ffffff20;color:#fff}.ghost-btn:hover{background:#ffffff30}.outline-btn{background:transparent;color:#eee;border:1px solid #777}.outline-btn:hover{border-color:#fff}.solid-btn svg,.ghost-btn svg,.outline-btn svg{width:17px;height:17px}
.section{margin:29px 0 34px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:18px}.section-head h2,.page-header h1{margin:0;letter-spacing:-.7px;font-size:23px;font-weight:850}.section-head p{font-size:12px;color:#aaa;margin:7px 0 0}.text-link{border:0;background:none;color:#bcbcbc;font-size:12px;font-weight:750}.text-link:hover{color:#fff;text-decoration:underline}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(166px,1fr));gap:15px}.tile{display:block;text-align:left;border:0;background:#1b1b1b;color:#f7f7f7;border-radius:8px;padding:14px;min-width:0;transition:.18s}.tile:hover{background:#292929;transform:translateY(-2px)}.tile .cover{aspect-ratio:1/1;width:100%;border-radius:5px;margin-bottom:15px;box-shadow:0 7px 20px #0005}.tile strong{display:block;font-weight:760;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile span{display:block;font-size:12px;color:#aaa;line-height:1.5;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cover{position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(150deg,#135d56,#31a587);color:#e0faed;flex-shrink:0}.cover svg{width:45%;height:45%;opacity:.75;filter:drop-shadow(0 4px 8px #0003)}.cover-1{background:linear-gradient(145deg,#5d337a,#c78bd4)}.cover-2{background:linear-gradient(145deg,#8b5130,#db9e58)}.cover-3{background:linear-gradient(145deg,#255282,#709fc3)}.cover-4{background:linear-gradient(145deg,#9a3452,#f09ab0)}.cover-5{background:linear-gradient(145deg,#327055,#93b475)}.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover::after{content:'';inset:0;position:absolute;pointer-events:none;box-shadow:inset 0 0 28px #0002}
.page-header{padding:38px 0 23px}.page-header h1{font-size:clamp(28px,4vw,38px);margin-bottom:9px}.page-header p{font-size:13px;color:#aaa;line-height:1.8;margin:0}.page-header .split{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.row-flex{display:flex;align-items:center;gap:12px}.track-list{width:100%;border-collapse:collapse;table-layout:fixed}.track-list thead{border-bottom:1px solid #404040}.track-list th{text-transform:uppercase;font-size:11px;color:#9b9b9b;letter-spacing:1px;text-align:left;font-weight:500;padding:10px 8px}.track-list td{padding:8px 8px;color:#aaa;font-size:12px;vertical-align:middle}.track-list tr.track-row{border-radius:6px}.track-list tbody tr:hover{background:#ffffff12}.track-no{width:40px;color:#929292;text-align:center}.track-main{display:flex;align-items:center;gap:12px;min-width:0}.track-main .cover{width:43px;height:43px;border-radius:4px}.track-main .cover svg{width:20px;height:20px}.track-meta{min-width:0}.track-meta strong{color:#fff;font-size:13px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-meta span{color:#9b9b9b;display:block;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-title{width:55%}.track-album{width:25%}.track-date{width:120px}.track-actions{width:55px}.row-play{width:37px;height:37px;border:0;background:#1ed760;color:#061209;border-radius:50%;display:grid;place-items:center}.row-play svg{width:17px;height:17px}.track-row:hover .track-no .row-number{display:none}.row-play-inplace{display:none;place-items:center;margin:auto;color:#fff;background:none;border:0}.track-row:hover .row-play-inplace{display:grid}.row-play-inplace svg{width:16px;height:16px}.track-more{background:none;color:#b8b8b8;border:0;padding:7px}.track-more:hover{color:#fff}.track-more svg{width:18px;height:18px}
.playlist-hero{margin:0 -34px 23px;padding:45px 34px 24px;min-height:260px;display:flex;align-items:end;gap:23px;background:linear-gradient(130deg,#3a5350,#253832 65%,#181818)}.playlist-hero .cover{width:192px;height:192px;box-shadow:0 12px 45px #0009;border-radius:5px}.playlist-hero h1{margin:8px 0;font-size:clamp(33px,5vw,66px);line-height:1.08;letter-spacing:-1.8px;font-weight:900;overflow-wrap:anywhere}.playlist-hero p{color:#dbdfe0;font-size:13px;line-height:1.8}.playlist-tools{display:flex;gap:13px;align-items:center;margin:22px 0 27px;flex-wrap:wrap}.round-play{width:52px;height:52px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#111}.round-play svg{width:24px;height:24px}.round-play:hover{transform:scale(1.04)}.tool-icon{border:0;background:none;color:#b1b1b1;display:grid;place-items:center;width:43px;height:43px;border-radius:50%}.tool-icon:hover{color:#fff;background:#ffffff12}.tool-icon svg{width:23px;height:23px}.source-link{color:#aaa;text-decoration:none;font-size:12px}.source-link:hover{color:#fff;text-decoration:underline}.filter-input{border:0;background:#242424;color:#fff;min-height:43px;padding:10px 15px 10px 42px;border-radius:6px;outline:none;width:min(100%,450px);font-size:14px}.search-wrap{position:relative;width:min(100%,450px)}.search-wrap svg{position:absolute;top:11px;left:13px;color:#aaa;width:19px;height:19px}.filter-input:focus{box-shadow:0 0 0 1px #999}.search-input-large{max-width:540px;width:100%}.search-input-large .filter-input{width:100%;min-height:52px;font-size:16px}.search-input-large svg{top:16px}.empty-state{margin:28px 0;background:#202020;border-radius:12px;padding:36px 20px;text-align:center}.empty-state svg{width:40px;height:40px;color:#aaa;margin-bottom:10px}.empty-state strong{display:block;font-size:18px;margin-bottom:8px}.empty-state p{color:#aaa;font-size:13px;line-height:1.7}.empty-state .solid-btn{margin-top:13px}
.activity-card{background:#1d1d1d;border-radius:10px;padding:18px 20px;margin-bottom:12px;border:1px solid #282828}.activity-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.activity-title{font-size:14px;font-weight:750}.activity-sub{font-size:12px;color:#aaa;margin-top:7px;line-height:1.8}.job-label{color:#bcbcbc;font-size:12px;margin:12px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-state{font-size:11px;white-space:nowrap;border-radius:100px;padding:6px 10px;background:#313131;color:#bbb}.job-state.done{background:#13402a;color:#a2efba}.job-state.running{background:#254735;color:#aff8c7}.job-state.failed,.job-state.warning{background:#56302e;color:#ffc3b7}.job-state.queued{background:#383738;color:#d1d1d1}.job-track{height:4px;border-radius:20px;background:#383838;overflow:hidden;margin-top:13px}.job-track div{height:100%;background:var(--accent);width:36%;animation:moving 1.6s ease-in-out infinite alternate}@keyframes moving{from{transform:translateX(-50%)}to{transform:translateX(250%)}}.terminal{margin-top:13px;background:#111;color:#a9c8b5;border-radius:8px;padding:15px;font:11px ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:290px;overflow:auto;line-height:1.65}.small-btn{border:1px solid #555;background:none;border-radius:50px;color:#ccc;padding:7px 11px;font-size:11px;font-weight:700}.small-btn:hover{border-color:#fff;color:#fff}
.settings-group{max-width:760px;margin:25px 0 33px}.settings-group h2{font-size:18px;margin:0 0 13px}.setting-card{background:#1b1b1b;border-radius:10px;padding:19px 21px;margin-bottom:9px;display:flex;align-items:center;justify-content:space-between;gap:18px}.setting-card.stack{display:block}.setting-text strong{font-size:14px;font-weight:750}.setting-text p{font-size:12px;color:#aaa;margin:7px 0 0;line-height:1.8}.setting-control{flex-shrink:0}.switch{position:relative;display:inline-block;width:42px;height:24px}.switch input{position:absolute;opacity:0}.switch .slider{display:block;width:100%;height:100%;border-radius:100px;background:#636363;transition:.15s}.switch .slider::after{content:'';position:absolute;left:3px;top:3px;height:18px;width:18px;border-radius:50%;background:#fff;transition:.15s}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:after{transform:translateX(18px);background:#132317}.switch input:focus-visible+.slider{outline:2px solid white;outline-offset:3px}.setting-input{background:#2b2b2b;color:#fff;border:1px solid #555;border-radius:5px;padding:10px 12px;font-size:13px;min-width:0;width:100%}.setting-control select{background:#2b2b2b;color:#fff;border:1px solid #555;border-radius:5px;padding:9px 10px}.setting-fields{display:grid;gap:13px;grid-template-columns:1fr 120px;margin-top:14px}.setting-fields label,.settings-group label{font-size:12px;color:#aaa}.setting-fields label span{display:block;margin-bottom:7px}.setting-fields label:nth-child(3){grid-column:1/-1}.setting-footer{display:flex;justify-content:flex-end;margin-top:14px}.warning-note{background:#3a2d15;color:#f6deb0;font-size:12px;padding:13px 15px;border-radius:8px;line-height:1.8;margin:13px 0}.info-note{border-left:3px solid var(--accent);padding:11px 14px;background:#1f2b23;color:#bce8cc;font-size:12px;line-height:1.8;margin:16px 0}.label-muted{font-size:11px;color:#999}.danger-outline{border:1px solid #c45a59;color:#f5b1b0;background:none;border-radius:100px;padding:10px 16px;font-size:12px;font-weight:700}
.player{height:81px;position:fixed;inset:auto 0 0;z-index:25;display:grid;grid-template-columns:minmax(160px,1fr) minmax(280px,1.35fr) minmax(150px,1fr);align-items:center;gap:22px;padding:10px 20px;background:#171717;border-top:1px solid #292929}.player-info{display:flex;gap:12px;align-items:center;min-width:0}.player-cover{width:54px;height:54px;border-radius:4px}.player-words{min-width:0}.player-words strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.player-words span{display:block;margin-top:5px;color:#aaa;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-controls{display:grid;gap:6px;justify-items:center}.player-buttons{display:flex;align-items:center;gap:22px}.player-icon{background:none;border:0;color:#aaa;display:grid;place-items:center}.player-icon:hover{color:#fff}.player-icon svg{width:18px;height:18px}.player-main{display:grid;place-items:center;border:0;border-radius:50%;background:white;color:black;width:31px;height:31px}.player-main svg{width:17px;height:17px}.player-progress{display:flex;width:min(100%,480px);gap:12px;align-items:center;color:#999;font-size:10px;font-variant-numeric:tabular-nums}.player-progress input{flex:1;accent-color:#fff;height:4px;min-width:0;cursor:pointer}.player-extra{display:flex;align-items:center;justify-content:end;gap:7px;color:#aaa;font-size:11px}.player-extra svg{width:17px;height:17px}
.mobile-nav{display:none}.modal{position:fixed;max-width:calc(100vw - 28px);width:min(448px,100%);border:1px solid #424242;background:#222;color:#fff;border-radius:12px;padding:0;box-shadow:0 22px 90px #000a}.modal::backdrop{background:#000b;backdrop-filter:blur(4px)}.modal-body{padding:25px}.modal-top{display:flex;justify-content:space-between;align-items:start;gap:10px}.modal-heading{flex:1}.modal-symbol{height:43px;width:43px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#102014;margin-bottom:18px}.modal-symbol.warning{background:#7a3f30;color:#ffe2cd}.modal-heading h2{font-size:23px;line-height:1.3;letter-spacing:-.8px;margin:0}.modal-heading p{color:#b2b2b2;font-size:13px;line-height:1.7;margin:10px 0 23px}.modal-body label{display:block;font-size:12px;color:#ddd;font-weight:700;margin:15px 0 8px}.modal-body input[type=password],.modal-body input[type=url],.modal-body input[type=text]{width:100%;background:#121212;border:1px solid #525252;border-radius:5px;padding:13px 14px;font-size:14px;color:white;outline:none}.modal-body input:focus{border-color:#f4f4f4}.modal-body .check-line{display:flex;align-items:center;gap:10px;font-weight:500;margin-top:21px}.modal-body input[type=checkbox]{accent-color:var(--accent);height:18px;width:18px}.field-hint{color:#999;font-size:11px;line-height:1.6;margin-top:9px}.form-error{color:#ffada5;font-size:12px;min-height:20px;margin-top:10px}.form-submit{width:100%;margin-top:4px}.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px}.dialog-actions .solid-btn{margin-left:auto}.text-danger{border:0;color:#ff9f9f;background:none;font-size:12px;text-decoration:underline}.toast-container{position:fixed;top:80px;right:20px;z-index:90;max-width:min(410px,calc(100vw - 40px))}.toast{padding:13px 17px;background:#282828;color:#fff;border:1px solid #4f4f4f;box-shadow:0 10px 50px #0008;border-radius:7px;margin-bottom:9px;display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.5}.toast:before{content:'✓';color:var(--accent);font-weight:900}.toast.error:before{content:'!';color:#f39d9d}.profile-btn,.tool-icon,.round-play,.row-play,.player-icon,.player-main,.mobile-nav button{touch-action:manipulation}
@media(max-width:1000px){.shell{grid-template-columns:240px minmax(0,1fr)}.content{padding-left:24px;padding-right:24px}.home-hero{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}.playlist-hero{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}.tiles{grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:11px}.player{grid-template-columns:1fr 1.2fr}.player-extra{display:none}}
@media(max-width:720px){body{overflow:hidden}.shell{display:block;padding:0;height:calc(100dvh - 74px);}.sidebar{display:none}.primary{height:100%;border-radius:0}.topbar{min-height:56px;padding:11px 19px}.breadcrumbs{font-size:13px}.topbar-right{gap:8px}.engine-indicator{font-size:10px}.profile-btn{padding:7px 10px}.profile-btn span{display:none}.content{padding:0 18px 125px}.home-hero{min-height:0;margin:0 -18px 21px;padding:26px 18px 30px;align-items:center;gap:15px}.hero-cover{width:106px;height:106px}.hero-copy h1{font-size:25px;letter-spacing:-1px}.hero-copy .eyebrow{font-size:9px;margin-bottom:5px}.hero-copy p{font-size:11px;margin-bottom:12px}.hero-copy .solid-btn,.hero-copy .ghost-btn{font-size:11px;padding:8px 13px;min-height:35px}.section{margin:22px 0 29px}.section-head h2{font-size:20px}.tiles{display:grid;grid-auto-flow:column;grid-auto-columns:148px;grid-template-columns:unset;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-18px;padding-right:18px;padding-bottom:9px;gap:10px}.tile{scroll-snap-align:start;padding:11px}.tile strong{font-size:13px}.tile span{font-size:11px}.page-header{padding:22px 0 18px}.page-header h1{font-size:29px}.playlist-hero{margin:0 -18px 15px;padding:26px 18px;min-height:0;gap:15px;align-items:center}.playlist-hero .cover{width:116px;height:116px}.playlist-hero h1{font-size:27px;letter-spacing:-1px}.playlist-hero p{font-size:11px}.playlist-tools{margin:18px 0}.track-no,.track-date,.track-album{display:none}.track-main .cover{height:47px;width:47px}.track-title{width:auto}.track-actions{width:46px}.track-list td{padding:7px 5px}.track-list thead{display:none}.track-main{gap:10px}.track-meta strong{font-size:12px}.track-meta span{font-size:11px}.row-play{width:36px;height:36px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:69px;padding-bottom:env(safe-area-inset-bottom);box-sizing:content-box;background:linear-gradient(#1b1b1bf5,#0a0a0a);z-index:30;align-items:center;justify-content:space-around;border-top:1px solid #323232}.mobile-nav button{border:0;background:none;color:#949494;display:flex;flex:1;align-items:center;flex-direction:column;gap:5px;font-size:10px;padding:9px 2px}.mobile-nav button svg{height:22px;width:22px}.mobile-nav button.active{color:#fff}.mobile-nav button.active svg{color:var(--accent)}.player{height:56px;bottom:calc(69px + env(safe-area-inset-bottom));padding:6px 12px;left:8px;right:8px;width:auto;border-radius:8px;background:#245343;grid-template-columns:minmax(0,1fr) 110px;gap:5px;border:0}.player-info{gap:9px}.player-cover{width:42px;height:42px}.player-progress,.player-extra{display:none}.player-buttons{gap:13px;justify-content:flex-end}.player-icon{display:none}.player-main{background:transparent;color:#fff}.player-main svg{width:21px;height:21px}.player:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff45}.shell:has(~.player:not([hidden])){height:calc(100dvh - 137px - env(safe-area-inset-bottom))}.modal{width:100%;max-width:100%;border-radius:17px 17px 0 0;position:fixed;margin:0;top:auto;bottom:0}.modal-body{padding:23px 20px calc(25px + env(safe-area-inset-bottom))}.setting-card{padding:16px 14px}.setting-fields{grid-template-columns:1fr 85px}.toast-container{top:68px;right:12px;left:12px;max-width:none}}
@media(max-width:390px){.home-hero{gap:12px}.hero-cover{width:88px;height:88px}.hero-copy h1{font-size:23px}.hero-copy p{display:none}.hero-copy .button-row{margin-top:11px}.tiles{grid-auto-columns:136px}.track-main .cover{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* v0.5.1 issue diagnostics */
.issue-actions{justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:14px}
.issues-panel{margin-top:17px;border-top:1px solid #343434;padding-top:17px}
.issues-heading{display:flex;flex-wrap:wrap;gap:5px 12px;align-items:center;margin-bottom:12px}
.issues-heading strong{font-size:14px;color:#fff}
.issues-heading span{font-size:11px;color:#969696}
.issue-card{background:#262626;border:1px solid #393939;border-radius:10px;padding:16px;margin:10px 0}
.issue-header{display:flex;gap:12px;align-items:center;min-width:0}
.issue-symbol{width:42px;height:42px;flex:none;display:grid;place-items:center;background:#463231;border-radius:8px;color:#ffb7ad}
.issue-symbol svg{width:21px;height:21px}
.issue-title-wrap{min-width:0;display:flex;flex-direction:column;gap:5px}
.issue-title-wrap strong{font-size:14px;line-height:1.4;color:#f1eeee}
.issue-title-wrap span{font-size:11px;color:#aaa;overflow-wrap:anywhere}
.issue-explanation{font-size:13px;line-height:1.65;color:#d3d3d3;margin:13px 0 7px}
.issue-advice{font-size:12px;line-height:1.6;color:#a9dcbc;margin:0 0 14px;display:flex;gap:6px;align-items:start}
.issue-advice svg{width:14px;height:14px;flex-shrink:0;margin-top:3px}
.issue-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.issue-buttons .small-btn{display:inline-flex;align-items:center;gap:5px;min-height:35px}
.issue-buttons .small-btn svg,.issue-video-link svg{width:13px;height:13px}
.issue-video-link{display:inline-flex;gap:5px;align-items:center;font-size:12px;text-decoration:none;color:#cbcbcb;border:1px solid #575757;padding:8px 12px;border-radius:22px;min-height:35px}
.issue-video-link:hover{color:#fff;border-color:#ddd}
.issue-placeholder,.issue-info{font-size:12px;color:#aaa;line-height:1.75;margin:12px 0}
.copy-textarea{width:100%;height:min(45vh,360px);resize:vertical;background:#111;color:#eaeaea;border:1px solid #555;border-radius:8px;padding:12px;font-size:12px;line-height:1.6;margin:16px 0}
@media(max-width:720px){.issue-card{padding:13px 12px}.issue-title-wrap strong{font-size:13px}.issue-buttons{gap:8px}.issue-buttons>*{flex-grow:1;justify-content:center}.issues-heading{align-items:flex-start;flex-direction:column}}

/* v0.6 YouTube Music album-first search */
.catalog-content .eyebrow{color:#1ed760}.catalog-searchbar{display:flex;align-items:center;gap:13px;background:#282828;border:1px solid #414141;border-radius:12px;padding:9px 10px 9px 17px;max-width:850px}.catalog-searchbar>svg{color:#aaa}.catalog-searchbar input{background:transparent;border:0;outline:0;color:#fff;flex:1;min-width:0;font-size:16px}.catalog-searchbar .solid-btn{min-height:38px}.catalog-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:19px 0}.catalog-controls>span{color:#aaa;font-size:12px}.catalog-controls select{background:#252525;border:1px solid #555;border-radius:7px;padding:10px;color:#fff;min-width:155px;max-width:260px}.catalog-controls .text-link{margin-left:auto}.catalog-info{font-size:12px;color:#a6cdb5;line-height:1.65;margin-bottom:24px}.catalog-empty{padding:35px 0;color:#aaa;font-size:13px}.catalog-section-head{margin:26px 0 15px}.catalog-section-head h2{font-size:20px;margin:0 0 7px}.catalog-section-head p{color:#aaa;font-size:12px;line-height:1.7;margin:0}.catalog-albums{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.catalog-album{border:0;text-align:left;background:#202020;border-radius:9px;color:#fff;padding:12px;min-width:0}.catalog-album:hover{background:#2e2e2e}.catalog-album .catalog-cover{width:100%;aspect-ratio:1/1;margin-bottom:12px}.catalog-album strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-album>span:last-child{display:block;font-size:11px;color:#aaa;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-cover{position:relative;display:grid;place-items:center;background:#29483e;border-radius:5px;overflow:hidden;flex-shrink:0;color:#b0edca}.catalog-cover svg{width:40%;height:40%}.catalog-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.catalog-list{display:grid;gap:3px}.catalog-track{display:flex;gap:13px;align-items:center;padding:10px 8px;min-height:68px;border-radius:6px}.catalog-track:hover{background:#222}.catalog-ordinal{width:24px;text-align:center;color:#999;font-size:12px}.catalog-track>.catalog-cover{width:48px;height:48px}.catalog-track-info{flex:1;min-width:0}.catalog-track-info strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-track-info>span{display:block;color:#aaa;font-size:11px;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-add{border:0;background:#1ed760;border-radius:30px;padding:9px 13px;color:#07210d;font-size:12px;font-weight:800;display:flex;gap:6px;align-items:center}.catalog-add svg{width:14px;height:14px}.catalog-open{font-size:11px;color:#aaa;display:flex;align-items:center;gap:4px;text-decoration:none}.catalog-open svg{height:13px;width:13px}.catalog-album-head{margin:20px 0}.catalog-album-summary{margin-top:18px;display:flex;gap:20px;align-items:end}.catalog-album-summary>.catalog-cover{width:145px;height:145px}.catalog-album-summary h2{font-size:28px;margin:8px 0 5px}.catalog-album-summary p{color:#aaa;font-size:12px}.oauth-fields{grid-template-columns:1fr!important}.oauth-fields input{width:100%}.oauth-result{border:1px solid #425a4a;border-radius:10px;background:#183226;padding:16px;margin-top:16px;font-size:12px;line-height:1.8}.oauth-result .oauth-code{font-size:26px;letter-spacing:2px;font-weight:900;margin:11px 0;color:#dcffe8;user-select:all}.oauth-result .row-flex{flex-wrap:wrap}.oauth-result .outline-btn{font-size:11px;padding:9px 12px;min-height:36px}.oauth-result .outline-btn svg{height:13px;width:13px}.oauth-result .solid-btn{font-size:11px;padding:9px 13px;min-height:36px}.oauth-result .small-btn{font-size:11px}
@media(max-width:720px){.catalog-albums{display:grid;grid-auto-flow:column;grid-auto-columns:145px;grid-template-columns:none;overflow-x:auto;padding-bottom:10px;margin-right:-18px}.catalog-searchbar{gap:7px;padding:7px 8px 7px 12px}.catalog-searchbar input{font-size:14px}.catalog-searchbar .solid-btn{padding:8px 14px;min-height:36px}.catalog-track{gap:9px;padding:9px 0}.catalog-track>.catalog-cover{width:43px;height:43px}.catalog-ordinal{display:none}.catalog-add{padding:8px}.catalog-add span{display:none}.catalog-album-summary>.catalog-cover{width:100px;height:100px}.catalog-album-summary h2{font-size:21px}.catalog-controls .text-link{width:100%;text-align:left;margin-top:5px}.oauth-result .row-flex{gap:8px}}

/* 0.6.3 — Artist discovery and complete discography */
.catalog-artists{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.catalog-artist{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:7px;color:#f7f7f7;background:#202020;border:1px solid #303030;border-radius:12px;padding:14px;cursor:pointer;min-width:0}
.catalog-artist:hover,.catalog-artist:focus-visible{background:#303030;border-color:#5e5e5e}
.catalog-artist .catalog-cover{width:80px;height:80px;border-radius:50%;margin-bottom:3px}
.catalog-artist strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.catalog-artist>span:last-child{font-size:12px;color:#aaa;display:flex;align-items:center;gap:4px}
.catalog-artist>span:last-child svg{width:14px;height:14px}
@media(max-width:720px){.catalog-artists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-artist{padding:12px}.catalog-artist .catalog-cover{width:66px;height:66px}}

/* v0.8 — reversible download suppression and human-approved alternatives */
.recovery-controls{border-top:1px solid #424242;padding-top:11px;margin-bottom:13px}
.recovery-hint{font-size:12px;line-height:1.65;color:#b9d6c5;margin:6px 0 10px}
.recovery-searchbox{margin:12px 0;background:#171b19;border:1px solid #365043;border-radius:10px;padding:12px}
.recovery-query{display:flex;gap:7px;align-items:center}
.recovery-query input{background:#252525;color:#fff;border:1px solid #565656;border-radius:8px;padding:9px 11px;min-width:0;flex:1;font-size:13px}
.recovery-candidate{border-top:1px solid #39483f;display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:12px 0}
.recovery-candidate>div{flex:1;min-width:130px;overflow-wrap:anywhere}
.recovery-candidate strong{font-size:12px;display:block;line-height:1.5}
.recovery-candidate span{font-size:11px;color:#aaa;display:block;margin-top:5px}
.recovery-candidate .small-btn{white-space:nowrap}
@media(max-width:720px){.recovery-query{flex-wrap:wrap}.recovery-query input{min-width:100%}.recovery-query button{width:100%}.recovery-candidate .issue-video-link,.recovery-candidate .small-btn{flex:1;justify-content:center}}

/* ==========================================================
   YTMM UI 0.9.0  |  One coherent visual system & motion layer
   Only frontend presentation. No backend / API logic changes.
   ========================================================== */
:root{
  --bg:#0e1115;--panel:#15191e;--elev:#20262b;--line:#2b3237;
  --muted:#98a4ac;--soft:#c2cbd1;--accent:#42e49a;
  --radius:16px;--border-soft:rgba(177,204,204,.105);
  --shadow-card:0 10px 30px rgba(0,0,0,.13);
}
html{background:#090c0f;scrollbar-color:#34413e transparent}
body{background:#090c0f;color:#f3f7f6;font-feature-settings:'ss01' on;letter-spacing:-.025em}
button,a,input,select{ -webkit-tap-highlight-color:transparent }
button{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s cubic-bezier(.2,.8,.2,1)}
button:active:not(:disabled){transform:scale(.975)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.shell{background:#090c0f;gap:12px;padding:12px}
.sidebar{border:1px solid var(--border-soft);background:linear-gradient(155deg,#171d20,#101417 68%);border-radius:18px}
.side-top{padding-top:25px}.brand{font-size:17px;letter-spacing:-.7px}.brand-icon{border-radius:11px;background:linear-gradient(135deg,#67f2aa,#23bd8c);box-shadow:0 8px 22px #15b47b35}
.sidebar-library{border-color:var(--border-soft)}.nav-link{border-radius:11px;font-weight:650}.nav-link.active{background:linear-gradient(90deg,#3bdf9d24,#3bdf9d08);color:#effff6}.nav-link.active svg{color:var(--accent)}
.nav-link:hover:not(.active){background:#ffffff0c;color:white}
.side-item{border-radius:12px}.side-item:hover{background:#ffffff0a}
.primary{background:linear-gradient(170deg,#171d21 0,#12171a 160px,#111417 420px);border:1px solid var(--border-soft);border-radius:18px;overflow-x:hidden}
.topbar{background:rgba(18,23,26,.86);border-bottom:1px solid rgba(200,225,222,.055);min-height:66px;padding:13px 32px;backdrop-filter:blur(20px) saturate(130%)}
.breadcrumbs{color:#d8e3e2;letter-spacing:-.25px}.engine-indicator{font-size:11px;background:#ffffff09;padding:7px 11px;border-radius:99px;border:1px solid #ffffff09}
.engine-indicator.active{color:#c8f8df}.engine-indicator.active .status-dot{box-shadow:0 0 0 4px #42e49a1b;animation:breathe 2.8s ease-in-out infinite}
.profile-btn{background:#272e30;border:1px solid #ffffff15;padding:8px 14px;border-radius:99px}
.content{padding:0 34px 110px;min-width:0}
.page-header{padding:35px 0 23px}.page-header h1{font-size:clamp(28px,4vw,39px);font-weight:850;letter-spacing:-1.65px;margin-bottom:11px}.page-header p{color:#aab8b8;font-size:13px;line-height:1.65}
.eyebrow{font-size:10px;letter-spacing:2.1px;color:var(--accent);font-weight:800}
.section{margin:33px 0}.section-head{margin-bottom:18px}.section-head h2{font-size:clamp(19px,2vw,24px);letter-spacing:-.8px;font-weight:800}.section-head p{color:var(--muted);line-height:1.6}.text-link{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.text-link svg{width:15px;height:15px}
.solid-btn{background:var(--accent);color:#072018;box-shadow:0 4px 16px #42e49a22;border-radius:12px;font-weight:800}
.solid-btn:hover:not(:disabled){background:#6ff1b2;filter:none;box-shadow:0 6px 22px #42e49a32;transform:translateY(-1px)}
.ghost-btn,.outline-btn,.small-btn{border-radius:12px}.ghost-btn{background:#ffffff10;border:1px solid #ffffff12}.ghost-btn:hover{background:#ffffff1a}.outline-btn{border-color:#566361}.outline-btn:hover{border-color:#7bd9aa;background:#44ee9d08}.small-btn{padding:9px 13px;border:1px solid #465253;font-size:12px}
.small-btn:hover{background:#ffffff12;border-color:#90aba2}
.info-note{border-radius:14px}.warning-note{border-radius:14px}
/* Home: navigation hub, not promotional banner */
.home-hero{min-height:300px;gap:26px;margin:0 -34px 28px;padding:42px 46px;align-items:center;justify-content:space-between;background:radial-gradient(ellipse at 83% 20%,#31ae8659 0,transparent 45%),linear-gradient(112deg,#213c39 0%,#16312f 47%,#152124 100%);border-bottom:1px solid #ffffff13}
.home-hero:before{display:none}.hero-copy{max-width:600px;z-index:1}.hero-copy h1{font-size:clamp(34px,5vw,61px);letter-spacing:-2.65px;line-height:1.11;margin:0 0 18px}.hero-copy h1 em{font-style:normal;color:#9af8c2}.hero-copy p{font-size:14px;max-width:430px;color:#d4e3df;line-height:1.7;margin-bottom:24px}
.hero-visual{display:grid;place-items:center;position:relative;flex:0 0 auto;min-width:200px;min-height:208px}.hero-visual .hero-cover{height:190px;width:190px;border-radius:19px;box-shadow:0 25px 65px #0008;transform:rotate(7deg);z-index:1;transition:transform .35s ease,box-shadow .35s ease}
.hero-visual:hover .hero-cover{transform:rotate(1deg) translateY(-4px);box-shadow:0 29px 72px #0008}
.hero-halo{position:absolute;z-index:0;width:195px;height:195px;border:1px solid #ffffff28;border-radius:100%;transform:scale(1.22)}
.dashboard-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:32px}
.stat-card{min-width:0;padding:20px 21px;text-align:left;border-radius:17px;border:1px solid var(--border-soft);background:linear-gradient(145deg,#1d2627,#181d20);color:#f7faf8;display:flex;flex-direction:column;gap:8px;min-height:137px}
.stat-card>span:first-child{font-size:12px;color:#a7b4b3}.stat-card>strong{font-size:34px;letter-spacing:-1.4px;font-weight:800;line-height:1.1}.stat-card strong small{font-size:13px;margin-left:5px;color:#b4c3c1;font-weight:600}.stat-card .stat-status{font-size:24px;color:#a4f5c7;letter-spacing:-.5px}
.stat-link{font-size:11px;color:#82dcb0;display:flex;gap:5px;align-items:center;margin-top:auto}.stat-link svg{width:13px;height:13px}.stat-card:hover{border-color:#49b88b69;transform:translateY(-2px)}
/* Playlist & album tiles */
.tiles{gap:16px}.tile,.catalog-album,.catalog-artist{background:#1b2225;border:1px solid var(--border-soft);border-radius:16px;box-shadow:var(--shadow-card);text-align:left;min-width:0;overflow:hidden}
.tile{padding:12px}.tile .cover{border-radius:11px;box-shadow:0 7px 18px #0004;margin-bottom:13px}.tile strong{font-size:14px;font-weight:750}.tile span{color:#a1aeaf}.cover,.catalog-cover{background:linear-gradient(135deg,#1d635a,#2ebd86)}
.catalog-cover{border-radius:12px}.catalog-album{padding:11px}.catalog-album .catalog-cover{border-radius:10px;margin-bottom:11px;box-shadow:0 8px 22px #0003}.catalog-album strong{font-size:13px;line-height:1.4}.catalog-album>span:last-child{color:#abb8b7}
.catalog-artist{padding:15px;gap:10px}.catalog-artist .catalog-cover{width:86px;height:86px;border:3px solid #ffffff10;box-shadow:0 10px 24px #0005}.catalog-artist strong{font-size:15px}.catalog-artist>span:last-child{font-size:11px;color:#8fe7b5}
.catalog-album:hover,.catalog-artist:hover,.tile:hover{background:#25302f;border-color:#53b78a66;transform:translateY(-3px);box-shadow:0 12px 30px #0005}
.catalog-albums,.catalog-artists{gap:13px}
/* Catalog search */
.catalog-content .page-header{padding-bottom:21px}.catalog-content .page-header h1{font-size:clamp(28px,4vw,41px)}
.catalog-searchbar{max-width:none;background:#232b2d;border:1px solid #4d5c5b;border-radius:17px;min-height:62px;gap:13px;padding:9px 10px 9px 18px;transition:box-shadow .2s,border-color .2s}
.catalog-searchbar:focus-within{border-color:#68e0a6;box-shadow:0 0 0 4px #42e49a12}.catalog-searchbar input{font-size:16px;min-width:0}.catalog-searchbar .solid-btn{min-height:44px;border-radius:12px}
.catalog-controls{background:#ffffff08;border:1px solid var(--border-soft);border-radius:14px;min-height:69px;padding:12px 16px;margin:18px 0 14px;gap:14px}
.catalog-controls select{background:#242d2d;border:1px solid #4e5b58;border-radius:10px;min-width:180px;padding:11px 12px;font-weight:650;font-size:13px;max-width:100%}.catalog-controls .text-link{color:#a5c8bc}
.catalog-connection{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#bdc7c2;margin:0 0 18px;line-height:1.5}.catalog-connection svg{width:15px;height:15px}.catalog-connection.is-connected{color:#a7eac6}
.catalog-action-notice{display:flex;align-items:center;gap:10px;background:#173d30;border:1px solid #32825c;padding:12px 14px;border-radius:12px;margin:0 0 16px;font-size:12px;color:#c2f8d8;line-height:1.5}.catalog-action-notice>svg{width:18px;height:18px;flex-shrink:0}.catalog-action-notice span{flex:1}.catalog-action-notice button{color:#d6ffea;border-color:#518e70;display:flex;align-items:center;gap:4px;flex-shrink:0}.catalog-action-notice button svg{width:13px;height:13px}
.catalog-info{border:1px solid #4d604b44;background:#1d38272e;border-radius:12px;padding:11px 13px;font-size:12px;color:#b8d7c7;line-height:1.7;margin:0 0 15px}
.catalog-section-head{margin:35px 0 17px}.catalog-section-head h2{font-size:20px}.catalog-section-head p{color:#9daaaa;max-width:620px;font-size:12px}
.catalog-empty{color:#96a5a5;padding:28px 0;font-size:13px}
.catalog-album-head{margin:22px 0 25px}.catalog-album-summary{align-items:center;gap:24px;margin-top:22px}.catalog-album-summary>.catalog-cover{width:166px;height:166px;border-radius:15px;box-shadow:0 18px 38px #0006}.catalog-album-summary h2{font-size:clamp(24px,3vw,36px);font-weight:800;letter-spacing:-1px;overflow-wrap:anywhere}.catalog-album-summary p{font-size:13px;color:#b5c1bf}
.catalog-list{border-top:1px solid var(--border-soft)}.catalog-track{border-bottom:1px solid #ffffff0a;border-radius:9px;min-height:71px;padding:10px 12px;gap:15px;transition:background .16s ease}.catalog-track:hover{background:#ffffff0b}.catalog-ordinal{color:#728380}.catalog-track>.catalog-cover{height:48px;width:48px;border-radius:9px}.catalog-track-info strong{font-size:14px;font-weight:710}.catalog-track-info>span{font-size:11px;color:#a0adac;margin-top:6px}
.catalog-add{min-height:39px;min-width:39px;justify-content:center;background:var(--accent);border-radius:12px;color:#0c2d20;box-shadow:none}.catalog-add:hover:not(:disabled){background:#8cf3ba;transform:scale(1.06)}.catalog-add.is-added{background:#2b5040;color:#b7f6d4;border:1px solid #4e956e;opacity:1}.catalog-add.is-working svg{animation:spin .95s linear infinite}
/* Skeleton loading, no content flash */
.catalog-skeleton{padding:21px 0 28px;display:grid;gap:18px}.skeleton{display:block;background:linear-gradient(100deg,#28312f 0%,#3e5048 47%,#28312f 100%);background-size:230% 100%;animation:skeletonShimmer 1.3s ease-in-out infinite;border-radius:12px}
.skeleton-heading{height:23px;width:170px}.skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.skeleton-card{aspect-ratio:1/1}.skeleton-line{height:15px;width:80%}.skeleton-line.short{width:48%}
/* Library */
.library-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:5px 0 24px;flex-wrap:wrap}.library-toolbar #library-result-count{font-size:12px;color:#9caeac}.library-toolbar .search-wrap{flex:1;max-width:450px;min-width:160px}.filter-input{background:#232a2c;border:1px solid #3d4848;border-radius:12px}.filter-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #42e49a12}.library-tiles{grid-template-columns:repeat(auto-fill,minmax(175px,1fr))}
.playlist-hero{background:linear-gradient(115deg,#244843,#1a3230 50%,#1b2325);border-bottom:1px solid var(--border-soft)}.playlist-hero .cover{border-radius:16px}.playlist-hero h1{letter-spacing:-1.7px}.playlist-tools{gap:13px}.round-play{background:var(--accent);box-shadow:0 6px 22px #1ed76030}.tool-icon{background:#ffffff09;border-radius:12px}.tool-icon:hover{background:#ffffff19}
.track-list tbody tr{border-bottom:1px solid #ffffff08}.track-list th{color:#8f9f9b;letter-spacing:.4px}.track-meta strong{color:#edf4f1;font-size:13px}.track-meta span{color:#9dacaa}
/* Activity: summary first, details on demand */
.activity-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 22px}.activity-stat{padding:18px 21px;background:#1c2326;border:1px solid var(--border-soft);border-radius:15px;min-width:0;display:flex;flex-direction:column;gap:7px}.activity-stat span{color:#a3b0b0;font-size:12px}.activity-stat strong{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums}.activity-stat.attention strong{color:#ffb3a3}
.activity-guide{display:flex;gap:11px;align-items:flex-start;border:1px solid #a783424e;background:#a7834214;border-radius:13px;padding:14px 17px;margin:20px 0;color:#e8cba9;font-size:12px;line-height:1.7}.activity-guide svg{color:#ecc68d;width:19px;height:19px;margin-top:1px}
.activity-card{background:#1b2326;border:1px solid var(--border-soft);border-radius:16px;padding:20px 22px;margin-bottom:12px;transition:border-color .17s,background-color .17s}.activity-card:hover{border-color:#6da98f45;background:#1e292b}.activity-title{font-size:15px;font-weight:750}.activity-sub{font-size:12px;line-height:1.8;color:#a4b2b1}.job-state{font-weight:730;font-size:11px;padding:7px 11px}.job-state.done{background:#26503c;color:#b3f7cf}.job-state.warning,.job-state.failed{background:#59322f;color:#ffc6b9}.job-state.running{background:#255746;color:#b4f7d5}
.issues-panel{border-color:var(--border-soft);margin-top:18px;padding-top:18px}.issue-card{border:1px solid #36413e;background:#242e30;border-radius:14px;padding:19px;margin:12px 0}.issue-title-wrap strong{font-size:14px}.issue-explanation{font-size:12px;color:#c6d0cd}.issue-advice{color:#aee3c4}.issue-symbol{border-radius:12px}
.recovery-controls{border-color:#5a74654d}.recovery-searchbox{background:#192524;border:1px solid #3b554a;border-radius:13px}.recovery-query input{background:#242e30;border-radius:10px;border-color:#4e5c58}.recovery-candidate{border-color:#43544a}
.terminal{border-radius:13px;border:1px solid #ffffff0b;background:#0f1516}
/* Settings, dialogs & feedback */
.settings-group{max-width:810px}.settings-group h2{font-size:18px}.setting-card{border:1px solid var(--border-soft);background:#1b2426;border-radius:15px;padding:22px}.setting-text strong{font-size:14px}.setting-text p{color:#a9b7b6}.setting-input,.setting-control select{border-radius:10px;background:#263031;border-color:#4b5854}.switch .slider{background:#53625e}.switch input:checked+.slider{background:var(--accent)}
.modal{background:#1b2427;border:1px solid #455550;border-radius:18px;box-shadow:0 26px 100px #000c}.modal::backdrop{background:#000b;backdrop-filter:blur(9px)}.modal[open]{animation:modalEnter .22s cubic-bezier(.16,1,.3,1)}.modal-body input[type=password],.modal-body input[type=url],.modal-body input[type=text]{background:#141b1d;border-radius:10px;border-color:#4a5955}
.toast{background:#24322e;border:1px solid #4b8068;border-radius:14px;box-shadow:0 14px 55px #0009;animation:toastIn .26s cubic-bezier(.16,1,.3,1)}.toast.error{background:#402826;border-color:#ad6757}
.player{background:rgba(20,27,27,.96);border-color:#33443c;backdrop-filter:blur(20px)}.player-cover{border-radius:10px}
/* Scrollbar + animation primitives */
.primary::-webkit-scrollbar,.catalog-albums::-webkit-scrollbar,.tiles::-webkit-scrollbar{width:6px;height:5px}.primary::-webkit-scrollbar-thumb,.catalog-albums::-webkit-scrollbar-thumb,.tiles::-webkit-scrollbar-thumb{border-radius:99px;background:#435451}
@keyframes breathe{50%{box-shadow:0 0 0 6px #42e49a05}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes modalEnter{from{opacity:.5;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes skeletonShimmer{to{background-position-x:-230%}}
@media(hover:hover){.catalog-track:hover .catalog-add{box-shadow:0 0 0 4px #42e49a16}}
@media(max-width:1000px){.content{padding-left:26px;padding-right:26px}.home-hero,.playlist-hero{margin-left:-26px;margin-right:-26px}.home-hero{padding:38px 30px}}
@media(max-width:720px){
 html,body{max-width:100%;overflow-x:hidden}.shell{padding:0;gap:0}.primary{border:0;border-radius:0;overflow-x:hidden}.topbar{padding:10px 17px;min-height:57px}.breadcrumbs{font-size:13px}.engine-indicator{padding:6px 8px;font-size:10px}.profile-btn{padding:8px;border-radius:13px;background:#25322e}
 .content{padding:0 16px calc(110px + env(safe-area-inset-bottom));overflow-x:clip}.page-header{padding:25px 0 20px}.page-header h1{font-size:29px;letter-spacing:-1.1px}.page-header p{font-size:12px}
 .home-hero{margin:0 -16px 20px;padding:28px 18px 27px;min-height:220px;gap:8px}.hero-copy{flex:1;min-width:0}.hero-copy h1{font-size:clamp(27px,7vw,37px);letter-spacing:-1.35px;margin-bottom:13px}.hero-copy p{font-size:11px;line-height:1.55;margin-bottom:15px;max-width:220px}.hero-copy .eyebrow{font-size:9px;letter-spacing:1.1px}.hero-visual{min-width:102px;min-height:120px}.hero-visual .hero-cover{width:102px;height:102px;border-radius:12px}.hero-halo{height:115px;width:115px}.hero-copy .button-row{gap:8px}.hero-copy .solid-btn,.hero-copy .ghost-btn{min-height:39px;font-size:11px;padding:8px 10px;gap:5px}.hero-copy .button-row svg{width:14px;height:14px}
 .dashboard-stats{gap:9px;margin-bottom:26px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:117px;padding:14px 15px;border-radius:13px}.stat-card>strong{font-size:27px}.stat-card .stat-status{font-size:19px}.stat-card.status-stat{grid-column:1/-1;min-height:100px}
 .section{margin:24px 0 29px}.section-head h2{font-size:20px}.tiles{gap:11px;margin-right:-16px;padding-right:16px;grid-auto-columns:152px}.tile{border-radius:13px}.tile .cover{border-radius:9px}.tile strong{font-size:13px}
 .library-tiles{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;overflow:visible;margin:0;padding:0;gap:11px}.library-tiles .tile{width:auto}.library-toolbar{margin:6px 0 20px}.library-toolbar .search-wrap{min-width:180px}.library-toolbar #library-result-count{font-size:11px}
 .catalog-searchbar{min-height:56px;border-radius:13px;gap:8px;padding:6px 7px 6px 12px}.catalog-searchbar input{font-size:15px}.catalog-searchbar .solid-btn{min-height:41px;padding:8px 13px}.catalog-controls{padding:12px 13px;gap:8px 10px;margin:14px 0}.catalog-controls>span{font-size:11px}.catalog-controls select{flex:1;min-width:130px;width:0;padding:10px;font-size:12px}.catalog-controls .text-link{margin-top:4px;font-size:11px}.catalog-action-notice{flex-wrap:wrap}.catalog-action-notice .small-btn{margin-left:24px}
 .catalog-artist{border-radius:14px;padding:12px}.catalog-artist .catalog-cover{width:73px;height:73px}.catalog-artist strong{font-size:14px}.catalog-albums{grid-auto-columns:152px;margin-right:-16px;padding-right:16px;gap:11px}.catalog-album{border-radius:13px;padding:9px}.catalog-album .catalog-cover{border-radius:9px}
 .catalog-album-summary{gap:13px;align-items:center;flex-wrap:nowrap}.catalog-album-summary>.catalog-cover{width:92px;height:92px;flex-shrink:0;border-radius:10px}.catalog-album-summary h2{font-size:21px;line-height:1.25;overflow-wrap:anywhere}.catalog-track{gap:8px;padding:12px 2px;min-width:0}.catalog-track>.catalog-cover{width:42px;height:42px}.catalog-track-info strong{font-size:13px}.catalog-track-info>span{font-size:10px;white-space:nowrap}.catalog-add{min-height:38px;min-width:38px;padding:9px;border-radius:11px}.catalog-skeleton .skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-skeleton .skeleton-card:last-child{display:none}
 .playlist-hero{margin:0 -16px;padding:27px 16px}.playlist-hero .cover{width:113px;height:113px;border-radius:11px}.playlist-hero h1{font-size:27px}
 .activity-stats{gap:8px}.activity-stat{padding:12px;border-radius:12px}.activity-stat strong{font-size:24px}.activity-stat span{font-size:10px}.activity-guide{padding:12px;gap:8px}.activity-card{padding:15px;border-radius:14px}.activity-title{font-size:13px}.activity-sub{font-size:11px;line-height:1.5}.issues-panel{margin-top:13px}.issue-card{padding:13px 12px}.issue-buttons>*{min-height:38px}.recovery-candidate{gap:9px}
 .setting-card{padding:16px}.player{border-radius:12px;background:#244638}.mobile-nav{background:linear-gradient(180deg,#141d1df5,#0b1012);border-color:#30413b;padding-left:3px;padding-right:3px}.mobile-nav button{position:relative;gap:4px;font-size:10px}.mobile-nav button.active{color:#f7fff9}.mobile-nav button.active:before{content:'';position:absolute;top:0;width:25px;height:2px;border-radius:9px;background:var(--accent)}.mobile-nav button.active svg{color:var(--accent)}
 .modal{border-radius:20px 20px 0 0;max-width:100%}.modal-body{padding:24px 20px calc(26px + env(safe-area-inset-bottom))}
}
@media(max-width:365px){.hero-visual{display:none}.hero-copy h1{font-size:32px}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-controls select{max-width:190px}.mobile-nav button{font-size:9px}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{transition-duration:0.01ms!important;animation-duration:0.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
}

/* v0.9.1 · Recovery & track metadata polish */
.track-actions{white-space:nowrap}
.track-actions .row-play,.track-actions .row-edit{display:inline-grid;place-items:center;vertical-align:middle;min-width:34px;min-height:34px;border-radius:50%;border:0;background:transparent;color:#cad8d3}
.track-actions .row-edit{color:#9db4ac}
.track-actions .row-edit svg{width:16px;height:16px}
.track-actions .row-edit:hover{background:#42e49a1c;color:#5cf0ab}
.issues-resolved{margin-top:15px;padding:13px;border:1px solid #3d4947;border-radius:14px;background:#ffffff04}
.issues-resolved summary{cursor:pointer;color:#b8d7cb;font-size:13px;font-weight:700;padding:4px;user-select:none}
.issues-resolved .issue-card{margin-top:12px;opacity:.82}
.issues-resolved .issue-card:hover{opacity:1}
.recovery-select{display:grid;gap:10px;border-top:1px solid #ffffff20;padding:15px 0}
.recovery-select label{font-size:12px;color:#ccd7d2;line-height:1.55}
.recovery-select select{width:100%;background:#232b2b;color:#fff;border:1px solid #637d73;padding:12px;border-radius:10px;font-size:13px}
.local-results{margin:10px 0 20px;padding:13px;border:1px solid #368666;border-radius:12px;background:#42e49a0b}
.local-results h3,.remote-results h3{font-size:14px;color:#e9fff2;display:flex;align-items:center;gap:8px;margin:0 0 8px}
.local-results h3 span{font-size:10px;color:#65ebaa;letter-spacing:.3px}
.local-candidate .cover{width:42px;height:42px;flex-shrink:0}
.local-candidate{padding:10px 0}
.local-candidate .small-btn{border-color:#42e49a72;color:#91efbe}
.remote-results{margin-top:12px}
#track-edit-dialog input:not([type=hidden]){width:100%;box-sizing:border-box}
#track-edit-dialog .field-hint{line-height:1.6;margin-top:14px}
@media(max-width:720px){.track-actions .row-edit{min-width:40px;min-height:40px}.local-candidate .small-btn{min-height:40px}}

/* v0.9.2 · Keep both actions inside table viewport on phones */
.track-actions{width:104px;text-align:right;white-space:nowrap}
.track-actions .row-play,.track-actions .row-edit{width:39px;height:39px;min-width:39px;min-height:39px;margin:0 2px;vertical-align:middle}
.track-main .track-meta{flex:1;min-width:0;overflow:hidden}
.track-list{min-width:0;max-width:100%}
@media(max-width:720px){
 .track-list{table-layout:fixed;width:100%;max-width:100%}
 .track-title{width:auto}
 .track-actions{width:91px;min-width:91px;padding-left:0!important;padding-right:0!important;text-align:right}
 .track-actions .row-play,.track-actions .row-edit{width:39px;height:39px;min-width:39px;min-height:39px;margin:0 2px}
 .track-list td.track-title{min-width:0;padding-left:0;padding-right:2px}
 .track-main{min-width:0;max-width:100%}
 .track-meta{overflow:hidden;min-width:0;max-width:100%}
 .issue-card,.activity-card,.recovery-controls{min-width:0;max-width:100%;overflow-wrap:anywhere}
 .recovery-candidate{flex-wrap:wrap;min-width:0}.recovery-candidate>div:not(.cover){min-width:0;flex:1 1 50%}
}

/* search playback: one-line dual actions, responsive without horizontal overflow */
.catalog-play{border:1px solid #39594b;color:#dcffec;background:#20382f;border-radius:12px;width:39px;height:39px;min-width:39px;display:grid;place-items:center;cursor:pointer;touch-action:manipulation}
.catalog-play svg{height:17px;width:17px}.catalog-play:hover{background:#2a5944}
.catalog-play.is-working svg{animation:spin .95s linear infinite}
.catalog-track-info{min-width:0;flex:1}.catalog-track{min-width:0}
@media(max-width:720px){.catalog-track{gap:7px}.catalog-play{width:38px;height:38px;min-width:38px}.catalog-add{width:38px;height:38px;min-width:38px}}

/* 0.9.6 album art and Plex metadata controls */
.track-cover-edit{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line,#333);margin-top:10px}.track-cover-edit img{width:74px;height:74px;object-fit:cover;border-radius:10px;background:#333}.track-cover-edit>div{flex:1;min-width:0;display:grid;gap:8px}.track-cover-edit input[type=file]{width:100%;max-width:100%;font-size:12px}.track-cover-edit button{justify-self:start}.track-plex-toggle{display:flex;align-items:center;gap:10px;font-size:13px}.track-plex-toggle input{accent-color:#39dc98}

/* Lilt v0.9.9 — browser playback queue */
.queue-open-top{border:1px solid #415749;background:#27372f;color:#eafff0;border-radius:20px;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;font-size:12px;min-height:36px}
.queue-open-top svg{width:18px;height:18px}.queue-open-top span{font-variant-numeric:tabular-nums}
.player-queue-button,.player-mobile-queue{border:0;background:transparent;color:#e5f3ea;display:flex;align-items:center;gap:6px;font-size:12px;padding:7px}
.player-queue-button svg,.player-mobile-queue svg{width:19px;height:19px}.player-mobile-queue{display:none}
.row-queue,.catalog-queue{border:0;background:transparent;color:#9fbea9;display:inline-grid;place-items:center;border-radius:100%;min-width:32px;min-height:32px}
.row-queue:hover,.catalog-queue:hover{color:#fff;background:#2d5039}.row-queue svg,.catalog-queue svg{width:18px;height:18px}
.catalog-queue{min-width:35px;min-height:35px;flex-shrink:0}
.queue-backdrop{position:fixed;inset:0;z-index:41;border:0;background:#0009;cursor:default}
.queue-panel{position:fixed;z-index:42;top:78px;bottom:92px;right:12px;width:min(425px,calc(100vw - 24px));background:#18211e;border:1px solid #3b5847;border-radius:15px;box-shadow:0 15px 70px #000a;display:flex;flex-direction:column;overflow:hidden}
.queue-top{padding:20px 18px 11px;display:flex;align-items:start;justify-content:space-between;gap:10px}.queue-top h2{margin:0;font-size:21px}.queue-top p{margin:4px 0 0;font-size:12px;color:#a0b6aa}
.queue-close{border:0;background:transparent;color:#becac1;width:34px;height:34px;display:grid;place-items:center}.queue-close svg{width:21px;height:21px}
.queue-tools{display:flex;gap:6px;padding:0 15px 14px;border-bottom:1px solid #375043}.queue-tools button{font-size:11px;color:#d3e5d8;background:#293b31;border:1px solid #415b4c;border-radius:17px;padding:7px 10px}.queue-tools button:disabled{opacity:.4}.queue-tools button[aria-pressed=true]{color:#15271c;background:#a5ebbc}
.queue-tools button:last-child{margin-left:auto;background:transparent}
.queue-items{padding:9px 11px;overflow-y:auto;flex:1;margin:0;list-style:none;scrollbar-width:thin}
.queue-entry{display:flex;align-items:center;gap:5px;border-radius:9px;padding:5px 4px;min-height:58px;border:1px solid transparent}
.queue-entry:hover{background:#25352c}.queue-entry.is-current{background:#294533;border-color:#497356}
.queue-song{display:flex;align-items:center;gap:10px;min-width:0;flex:1;text-align:left;color:#effcf2;background:none;border:0;padding:0}
.queue-art{flex:none;width:43px;height:43px;background:#264d34;border-radius:6px;position:relative;overflow:hidden;display:grid;place-items:center}.queue-art svg{width:20px;height:20px}.queue-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.queue-meta{min-width:0;display:flex;flex-direction:column;gap:4px}.queue-meta strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-meta small{font-size:11px;color:#aac6b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.queue-entry-controls{display:flex;align-items:center;gap:0;flex:none}.queue-entry-controls button{display:grid;place-items:center;background:none;border:0;width:26px;height:32px;color:#b1c5b6;border-radius:5px}.queue-entry-controls button:hover{background:#41674c;color:#fff}.queue-entry-controls svg{width:15px;height:15px}
.queue-empty{font-size:12px;color:#b3c4b8;text-align:center;line-height:1.8;padding:42px 8px}.queue-hint{margin:0;border-top:1px solid #375043;padding:12px 16px;color:#a9bfb1;line-height:1.6;font-size:11px}
@media(max-width:720px){
 .queue-open-top{padding:6px 9px;min-height:34px}.queue-open-top span{font-size:11px}
 .player-mobile-queue{display:grid;place-items:center;padding:0;color:#fff}.player-mobile-queue svg{width:20px;height:20px}
 .player{grid-template-columns:minmax(0,1fr) 139px}.player-buttons{gap:8px}.player-queue-button{display:none}
 .queue-panel{top:auto;bottom:calc(69px + env(safe-area-inset-bottom));left:0;right:0;width:100%;height:min(70dvh,650px);border-radius:20px 20px 0 0;border-bottom:0}
 .queue-entry-controls button{width:30px;height:37px}.queue-hint{padding-bottom:17px}
 .track-actions{width:auto}.track-actions .row-queue{min-width:30px;min-height:38px}
 .catalog-track{gap:5px}.catalog-queue{min-width:34px;min-height:38px}
}

@media(max-width:720px){#player-next{display:grid}#player-prev{display:none}}

/* Keep three music-row actions on one line after adding next-up. */
.track-actions{width:116px;white-space:nowrap}
@media(max-width:720px){.track-actions{width:111px}.track-actions .row-play,.track-actions .row-edit,.track-actions .row-queue{width:34px;height:38px;min-width:34px}}

/* Lilt v0.9.10 — new music-first identity and full player */
:root{--accent:#c8b5ff;--bg:#101019;--panel:#1a1925;--elev:#252435;--line:#3b374c;--soft:#cac7dd;--muted:#a6a1b7;--border-soft:rgba(209,199,248,.13)}
html,body{background:#0b0a12;color:#f7f5ff}
.shell{background:#0b0a12}
.sidebar{background:linear-gradient(165deg,#201c33,#11111a 80%);border-color:#393349}
.primary{background:linear-gradient(170deg,#242036 0,#161524 250px,#11111b 550px);border-color:#353046}
.brand-icon{background:linear-gradient(145deg,#dfceff,#a394ee);color:#21182f;box-shadow:0 10px 35px #b596fa44}
.brand{font-size:23px;letter-spacing:-1.3px}.brand b{font-size:10px;letter-spacing:.03em;text-transform:uppercase;align-self:center;color:#ab9fbf}
.topbar{background:#181624e8;border-bottom:1px solid #51476166}
.mobile-brand{display:none;font-size:25px;font-weight:900;letter-spacing:-1.7px;color:#f4eefe}.mobile-brand span{color:#d6afff;font-size:15px;margin-left:4px;vertical-align:top}
.nav-link.active{background:linear-gradient(90deg,#bc9dff30,#b99af00c)}
.nav-link.active svg{color:var(--accent)}
.home-hero{background:radial-gradient(ellipse at 15% 20%,#655085 0%,#2f2547 44%,#171725 95%);border-bottom:1px solid #78619a55}
.home-hero::before{background:#b99bfa44;filter:blur(70px)}
.hero-copy .eyebrow{color:#e0bffc}.hero-copy h1 em{font-style:normal;color:#dfc2ff}
.solid-btn{background:linear-gradient(130deg,#dec9ff,#b5a1fa);color:#20172c;box-shadow:0 6px 20px #a88ad923}
.status-dot,.engine-indicator.active .status-dot{background:var(--accent)}
.search-wrap:focus-within,.catalog-searchbar:focus-within{border-color:#b9a3ee;box-shadow:0 0 0 3px #b9a3ee20}
.tile:hover,.stat-card:hover{border-color:#957bbd}
.track-list tbody tr:hover{background:#d6b8ff0b}
.track-actions{width:124px!important;min-width:124px!important;white-space:nowrap!important;text-align:right}
.track-actions .row-play,.track-actions .row-queue,.track-actions .row-edit{display:inline-flex;align-items:center;justify-content:center;width:38px!important;min-width:38px!important;height:40px!important;min-height:40px!important;padding:0!important;margin:0!important;border-radius:10px;vertical-align:middle;line-height:1;flex:none}
.track-actions .row-queue{background:transparent;color:#d5c5ff}
.track-actions .row-queue svg,.catalog-queue svg{width:20px;height:20px;display:block;vertical-align:middle}
.track-actions .row-play:hover,.track-actions .row-queue:hover,.track-actions .row-edit:hover{background:#bca8ed2c;color:#fff}
.catalog-track{align-items:center}.catalog-play,.catalog-queue,.catalog-add{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}
.catalog-queue svg{display:block;margin:auto}
.queue-open-top{background:#30283d;border-color:#59496e;color:#e9dcff}
/* New mini-player, with full player trigger on title/cover */
.player{height:88px;background:linear-gradient(110deg,#1e1930,#161422);border-color:#6a568d66;box-shadow:0 -12px 45px #08061266}
.player-info{padding:0;background:transparent;color:inherit;border:0;text-align:left;cursor:pointer;display:flex;min-width:0;width:100%}
.player-info:hover .player-words strong{color:#dfc2ff}.player-expand{width:15px;height:15px;opacity:.6;transform:rotate(-90deg);margin-left:auto}
.player-cover{width:56px;height:56px;border-radius:12px;box-shadow:0 6px 15px #0005}
.player-words strong{font-size:13px}.player-words span{font-size:12px;color:#c5bfd3}
.player-main{background:#dfcaff;color:#211b30;width:36px;height:36px}.player-main svg{width:19px;height:19px}
.player-queue-button{color:#ded4ef}.player-queue-button:hover{color:white}
/* Centered queue, no offset icons */
.queue-backdrop{z-index:61;backdrop-filter:blur(9px)}
.queue-panel{z-index:62;background:linear-gradient(165deg,#29213a,#161522 54%);border-color:#69557f;box-shadow:0 18px 65px #000c}
.queue-kicker{font-weight:750;letter-spacing:.16em;font-size:10px;color:#c9afff}
.queue-top{padding:24px 21px 16px}.queue-top h2{font-size:24px;letter-spacing:-.8px;margin-top:6px}
.queue-top h2 small{font-size:12px;font-weight:600;color:#b3a6c2;letter-spacing:0;vertical-align:middle;margin-left:6px}
.queue-top p{color:#b7aac9;font-size:12px;margin:7px 0 0}
.queue-tools{border-color:#524367;padding:0 19px 16px;gap:8px}.queue-tools button{background:#443554;border-color:#6a547f;color:#f0e5ff;font-size:12px;padding:8px 12px}
.queue-tools button:last-child{background:#2e253a}.queue-tools button[aria-pressed=true]{background:#dec9ff;color:#261a31}
.queue-items{padding:12px 15px}.queue-entry{gap:8px;min-height:64px;border:1px solid transparent;padding:7px 5px}
.queue-entry.is-current{background:#58436b80;border-color:#a98acc88}.queue-entry:hover{background:#392e49}
.queue-art{width:46px;height:46px;background:#4a3469;border-radius:10px}
.queue-meta strong{font-size:13px}.queue-meta small{font-size:11px;color:#c6b9d6}
.queue-entry-controls{display:flex;align-items:center;justify-content:center}.queue-entry-controls button{display:grid;place-items:center;line-height:1;width:31px;height:40px;border-radius:8px;font-size:18px;color:#c7bbd5;padding:0}
.queue-entry-controls button svg{width:17px;height:17px}.queue-entry-controls button:hover{background:#725d89}
.queue-hint{border-color:#4f4060;color:#ada2bd;padding:12px 18px}
/* Full now playing */
.now-panel{position:fixed;z-index:55;inset:0;background:radial-gradient(ellipse 70% 45% at 50% 27%,#56426e,#262039 70%,#12111f 120%);color:#fff;overflow-y:auto;overscroll-behavior:contain}
.now-frame{width:min(540px,100%);min-height:100%;margin:auto;display:flex;flex-direction:column;padding:clamp(15px,3vh,27px) 26px 29px;gap:clamp(16px,2.6vh,28px)}
.now-top{display:flex;justify-content:space-between;align-items:center;min-height:40px}.now-top button,.now-queue-add{border:0;background:#ffffff15;color:#f3eafd;display:grid;place-items:center;border-radius:50%;width:42px;height:42px}
.now-top svg{width:21px;height:21px}.now-wordmark{font-weight:820;font-size:15px;letter-spacing:-.2px;color:#e9dbff}.now-wordmark i{font-style:normal;color:#c6a4ff;margin:0 3px}
.now-art{aspect-ratio:1/1;width:min(100%,42dvh,420px);align-self:center;background:linear-gradient(145deg,#735a98,#d4a1b6);border-radius:18px;overflow:hidden;display:grid;place-items:center;position:relative;box-shadow:0 18px 65px #09061798}
.now-art svg{width:25%;height:25%;opacity:.65}.now-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.now-track{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}.now-track>div{min-width:0}.now-eyebrow{font-size:10px;font-weight:800;letter-spacing:.14em;color:#ceb8ee}
.now-track h2{font-size:clamp(22px,4vw,29px);font-weight:800;margin:6px 0;letter-spacing:-.6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-track p{color:#c8bdd7;margin:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.now-queue-add svg{width:22px;height:22px}.now-progress{display:grid;gap:7px}.now-progress input{width:100%;accent-color:#dfc9ff;cursor:pointer}.now-progress>div{display:flex;justify-content:space-between;color:#cbbfd8;font-size:12px;font-variant-numeric:tabular-nums}
.now-controls{display:flex;align-items:center;justify-content:space-between;gap:8px}.now-controls button{display:grid;justify-items:center;align-content:center;gap:5px;border:0;background:none;color:#e3d9ee;min-width:38px;min-height:48px;padding:4px}.now-controls svg{width:24px;height:24px}.now-controls .now-toggle{width:68px;height:68px;min-width:68px;min-height:68px;border-radius:50%;background:#e0ccff;color:#1d152f;box-shadow:0 6px 22px #bf9ffa66}.now-toggle svg{width:29px!important;height:29px!important}
.now-controls span{font-size:10px;color:#bdaccb}.now-controls button[aria-pressed=true]{color:#e6c6ff}
.now-open-queue{border:1px solid #846c9d;background:#ffffff10;color:#eddbff;padding:14px 17px;border-radius:14px;display:flex;align-items:center;gap:11px;font-weight:700;font-size:13px;width:100%;text-align:left}.now-open-queue svg{width:20px;height:20px}.now-open-queue span{margin-left:auto;font-size:12px;color:#cbb9dd}
@media(max-width:1000px){.player{grid-template-columns:1fr 1.2fr}.player-extra{display:none}}
@media(max-width:720px){
 .shell{background:#100e19}.primary{background:linear-gradient(180deg,#262035 0%,#141320 310px);border:0}
 .topbar{background:#1b1728e8;padding:10px 19px;min-height:61px}
 .mobile-brand{display:inline-flex;align-items:flex-start}.breadcrumbs{display:none}
 .engine-indicator{display:none}.topbar-right{gap:11px}
 .home-hero{background:radial-gradient(ellipse at 10% 0%,#655381,#382748 63%,#1e192d 100%);padding-top:39px;padding-bottom:36px}
 .hero-copy h1{font-size:27px;line-height:1.21;letter-spacing:-1.2px}.hero-copy p{color:#e7d8f0}
 .mobile-nav{background:linear-gradient(180deg,#1b1727f9,#110f1bf9);border-color:#443850}
 .mobile-nav button.active svg{color:#d1b5ff}.mobile-nav button.active:before{background:#d1b5ff}
 .player{height:66px;bottom:calc(69px + env(safe-area-inset-bottom));left:9px;right:9px;padding:8px 11px;background:linear-gradient(105deg,#695480,#473859)!important;border:1px solid #a88ec251!important;border-radius:14px;grid-template-columns:minmax(0,1fr) 114px;gap:5px;box-shadow:0 8px 28px #08050db0}
 .player-info{gap:10px}.player-cover{width:46px;height:46px;border-radius:10px}.player-words strong{font-size:12px}.player-words span{font-size:11px;color:#e4d6e9}.player-expand{display:none}
 .player-buttons{align-items:center;justify-content:flex-end;gap:5px;height:48px}.player-buttons button{display:grid;place-items:center;width:36px;height:42px;padding:0}.player-mobile-queue svg{width:22px;height:22px}.player-main{width:38px!important;height:42px!important;background:transparent;color:#fff}.player-main svg{width:23px;height:23px}
 #player-next{display:grid!important;width:33px!important}#player-prev{display:none!important}.player:after{background:#f0d8ff80;border-radius:0 0 14px 14px}
 .shell:has(~.player:not([hidden])){height:calc(100dvh - 147px - env(safe-area-inset-bottom))}
 .track-actions{width:108px!important;min-width:108px!important;padding:0!important;white-space:nowrap!important;line-height:1}
 .track-actions .row-play,.track-actions .row-queue,.track-actions .row-edit{width:35px!important;min-width:35px!important;height:42px!important;min-height:42px!important;vertical-align:middle;margin:0!important}
 .track-actions svg{width:19px;height:19px}
 .catalog-track{gap:5px}.catalog-play,.catalog-queue,.catalog-add{width:36px!important;min-width:36px!important;height:42px!important;min-height:42px!important;padding:0!important;display:inline-grid;place-items:center}
 .catalog-play svg,.catalog-queue svg,.catalog-add svg{display:block;width:20px;height:20px;margin:auto}
 .queue-backdrop{background:#070511a6}
 .queue-panel{top:auto;bottom:calc(69px + env(safe-area-inset-bottom));height:min(74dvh,690px);max-height:calc(100dvh - 100px);border-radius:22px 22px 0 0;left:0;right:0;width:100%;border:1px solid #69527f;border-bottom:0;box-shadow:0 -10px 50px #090713d8}
 .queue-top{padding:22px 20px 17px}.queue-top h2{font-size:22px}.queue-tools{padding-left:19px;padding-right:19px}.queue-entry-controls button{height:42px;width:32px}
 .now-panel{z-index:52}.now-frame{padding:max(15px,env(safe-area-inset-top)) 24px max(23px,env(safe-area-inset-bottom));gap:clamp(13px,2.3dvh,25px)}
 .now-art{width:min(100%,39dvh,400px);border-radius:17px}
 .now-track h2{font-size:24px}.now-track p{font-size:13px}.now-controls .now-toggle{width:62px;height:62px;min-width:62px;min-height:62px}.now-controls svg{width:23px;height:23px}
}
@media(max-height:650px) and (max-width:720px){.now-frame{gap:9px}.now-art{width:min(100%,30dvh)}.now-controls .now-toggle{width:50px;height:50px;min-width:50px;min-height:50px}.now-track h2{font-size:19px}}

/* Lilt UI v0.9.11 — listen-first home and three-tab mobile navigation */
:root{--lilt-bg:#0e1116;--lilt-surface:#1a2129;--lilt-ink:#f3f0ec;--lilt-subtle:#a9b1b9;--lilt-highlight:#adc7bd;--lilt-violet:#b9a7e8}
.primary{background:linear-gradient(160deg,#182028 0%,#11171c 200px,#0d1217 560px);color:var(--lilt-ink)}
.topbar{background:rgba(15,20,26,.89);border-bottom:1px solid #e8f0f00b}
.lilt-mobile-topbtn{display:none;align-items:center;justify-content:center;border:0;background:transparent;color:#e4e9e8;width:36px;height:36px;border-radius:12px}
.lilt-mobile-topbtn svg{width:21px;height:21px}
.lilt-home{max-width:1130px;margin:0 auto;padding-top:26px!important}
.lilt-home-heading{margin:2px 0 18px}.lilt-kicker{font-size:10px;font-weight:800;letter-spacing:.17em;color:#adc7bd}
.lilt-home-heading h1{font-weight:790;font-size:clamp(28px,3.8vw,39px);letter-spacing:-1.6px;margin:7px 0 0;line-height:1.24;color:#f6f2ef}
.lilt-feature{height:290px;border:1px solid #ffffff1b;border-radius:22px;overflow:hidden;display:flex;align-items:flex-end;position:relative;padding:27px;background:radial-gradient(circle at 78% 20%,#555467,#283f47 50%,#1b262d);box-shadow:0 17px 45px #03060950}
.lilt-feature-backdrop{position:absolute;inset:-20px;opacity:.49;filter:blur(27px) saturate(.95);pointer-events:none}.lilt-feature-backdrop img{width:100%;height:100%;object-fit:cover}
.lilt-feature:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#121a21c7 0%,#10161ca0 50%,#10161c35 100%);pointer-events:none}
.lilt-feature-art{width:196px;height:196px;flex:none;border-radius:15px;overflow:hidden;display:grid;place-items:center;color:#c9d8d3;background:linear-gradient(145deg,#607276,#303841);box-shadow:0 14px 35px #0007;z-index:1;position:relative}
.lilt-feature-art>svg{width:40px;height:40px}.lilt-feature-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lilt-feature-content{min-width:0;margin:0 15px 11px 24px;flex:1;position:relative;z-index:1}
.lilt-feature-label{display:inline-block;margin-bottom:9px;color:#cce4d9;font-size:12px;font-weight:750}
.lilt-feature-title{font-size:clamp(22px,3vw,36px);letter-spacing:-1px;line-height:1.25;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.lilt-feature-artist{color:#d7dcd9;font-size:14px;margin:8px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lilt-feature-play{width:52px;height:52px;border-radius:50%;border:0;background:#eef4f0;color:#1c2a2b;display:grid;place-items:center;z-index:1;flex:none;box-shadow:0 10px 26px #0005}
.lilt-feature-play svg{width:24px;height:24px;margin-left:3px}
.lilt-feature-empty{align-items:center;gap:22px;text-align:left;color:#eff3ef;cursor:pointer;width:100%;height:180px}.lilt-feature-empty>span:nth-child(2){display:grid;gap:8px;flex:1}.lilt-feature-empty strong{font-size:23px}.lilt-feature-empty small{font-size:13px;color:#d4dddd}.lilt-feature-empty>svg{position:relative;z-index:1}.lilt-feature-icon{position:relative;z-index:1;width:76px;height:76px;border-radius:18px;background:#bacdc238;display:grid;place-items:center}
.lilt-block{margin:29px 0 33px}.lilt-block-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.lilt-block-head h2{font-size:19px;font-weight:780;letter-spacing:-.55px;margin:0}.lilt-block-head button{display:inline-flex;align-items:center;gap:3px;background:transparent;border:0;color:#b8c4c6;font-size:12px;white-space:nowrap;padding:5px 0}.lilt-block-head svg{width:16px;height:16px}
.lilt-recent-scroll{display:flex;gap:15px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:0 2px 13px;scrollbar-width:thin}
.lilt-recent-item{width:151px;min-width:151px;scroll-snap-align:start;text-align:left;background:none;border:0;padding:0;color:#f0f4f0}
.lilt-recent-art{position:relative;display:block;width:100%;aspect-ratio:1/1;margin-bottom:9px;border-radius:13px;overflow:hidden;background:#26363a}.lilt-recent-art>.cover{width:100%;height:100%;border:0;border-radius:0}
.lilt-recent-item strong,.lilt-recent-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lilt-recent-item strong{font-size:13px;font-weight:730}.lilt-recent-item small{font-size:11px;color:#a9b9b9;margin-top:4px}
.lilt-discovery-card{width:100%;border:1px solid #aec9bb29;background:linear-gradient(115deg,#202f34,#17242c);border-radius:17px;display:flex;align-items:center;gap:16px;padding:18px 18px;text-align:left;color:#f0f3ef}
.lilt-discovery-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#a8c7bb1b;color:#b8d8ca;flex:none}.lilt-discovery-card>span:nth-child(2){display:grid;gap:4px;flex:1}.lilt-discovery-card strong{font-size:15px}.lilt-discovery-card small{color:#afc0c0;font-size:12px}.lilt-discovery-card>svg{width:21px;height:21px;color:#b6ccc7}
.lilt-collection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lilt-collection{min-width:0;border:1px solid #ffffff14;background:#1a232b;border-radius:14px;display:flex;align-items:center;gap:13px;text-align:left;padding:11px;color:#eef0ef}.lilt-collection>.cover{width:58px;height:58px;flex:none;border-radius:9px}.lilt-collection>span:nth-child(2){display:grid;gap:5px;min-width:0;flex:1}.lilt-collection strong,.lilt-collection small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lilt-collection strong{font-size:13px}.lilt-collection small{color:#a6b6b8;font-size:11px}.lilt-collection>svg{width:16px;height:16px;color:#a8b8b9}
.lilt-admin-link{display:flex;align-items:center;width:100%;max-width:810px;gap:15px;text-align:left;padding:16px 19px;margin:0 0 24px;background:#222c32;border:1px solid #ffffff1b;border-radius:14px;color:#f6f5f1}.lilt-admin-link>span{display:grid;gap:4px;flex:1}.lilt-admin-link strong{font-size:14px}.lilt-admin-link small{font-size:12px;color:#a5b4b4}.lilt-admin-link>svg:last-child{width:16px}
/* Consistent neutral placeholders and sidebar against album-led home. */
.cover,.catalog-cover{background:linear-gradient(145deg,#3a5258,#23323d)!important;color:#d0ded7}
.cover>svg,.catalog-cover>svg{color:#c7d9d2}
.sidebar{background:linear-gradient(170deg,#1b222c,#141820 80%);border:1px solid #ffffff12}
.nav-link.active{background:#a9c7bb18;color:#f0f3f0}.nav-link.active svg{color:#bcd5c8}
.brand-icon{background:linear-gradient(140deg,#b9d6c9,#a89dbb);color:#192b2b}
.side-item:hover,.side-item.active{background:#ffffff09}
/* Compact exploratory pages, without instructional paragraphs taking the hero. */
.lilt-catalog-heading{padding-bottom:10px!important}.lilt-catalog-heading h1{margin:6px 0 0!important}.catalog-section-head p{display:none}
@media(max-width:720px){
 .primary{background:linear-gradient(175deg,#18242a 0%,#101820 220px,#0d1319 570px)}
 .topbar{min-height:62px;padding:10px 17px;background:#111a21ef}.topbar-right{gap:4px!important}.lilt-mobile-topbtn{display:flex}
 .topbar .queue-open-top{background:none;border:0;padding:5px 6px;min-width:38px}.topbar .queue-open-top span{font-size:10px}
 .topbar .profile-btn{display:none}.mobile-brand{font-weight:900;letter-spacing:-1.5px;color:#f5f4ef}.mobile-brand span{color:#a9cbbc}
 .content.lilt-home{padding:13px 19px 140px!important}
 .lilt-home-heading{margin:4px 0 16px}.lilt-home-heading h1{font-size:26px;letter-spacing:-1.1px;margin-top:6px}
 .lilt-feature{height:236px;border-radius:18px;align-items:flex-end;padding:17px}
 .lilt-feature:after{background:linear-gradient(0deg,#121920ed 0%,#17212b80 60%,#17212b24 100%)}
 .lilt-feature-art{position:absolute;top:14px;left:14px;width:126px;height:126px;border-radius:12px;opacity:.96}
 .lilt-feature-content{margin:0 3px 3px 0;max-width:calc(100% - 62px)}.lilt-feature-label{font-size:11px;margin-bottom:5px}.lilt-feature-title{font-size:20px;letter-spacing:-.65px}.lilt-feature-artist{font-size:12px;margin-top:4px}
 .lilt-feature-play{width:46px;height:46px;margin:0 0 1px auto}.lilt-feature-play svg{width:22px;height:22px}
 .lilt-feature-empty{height:170px;align-items:center}.lilt-feature-empty strong{font-size:18px}
 .lilt-block{margin:26px 0 28px}.lilt-block-head{margin-bottom:12px}.lilt-block-head h2{font-size:18px}
 .lilt-recent-scroll{gap:12px;margin-right:-19px;padding-right:19px}.lilt-recent-item{width:130px;min-width:130px}.lilt-recent-art{border-radius:12px}
 .lilt-collection-list{grid-template-columns:1fr}.lilt-collection{padding:9px}
 .lilt-discovery-card{padding:15px;border-radius:14px}
 .mobile-nav{justify-content:space-around;background:#0f171eee;border-color:#ffffff16}.mobile-nav button{max-width:140px;gap:5px;font-size:11px}.mobile-nav button.active{color:#f6f4ef}.mobile-nav button.active svg{color:#b8d5c8}.mobile-nav button.active:before{background:#b8d5c8}
 .player{background:linear-gradient(105deg,#263b40,#253138)!important;border-color:#8fb4a543!important}.player .player-main{color:#f4f2f0}
 .queue-hint{display:none}
}
@media(max-width:360px){.lilt-home-heading h1{font-size:24px}.lilt-feature-art{width:105px;height:105px}.lilt-feature{height:220px}.lilt-recent-item{width:116px;min-width:116px}}
@media(prefers-reduced-motion:reduce){.lilt-feature,.lilt-recent-item{transition:none}}


/* Lilt UI v0.9.14 — exploration: music first, controls second */
.lilt-explore{max-width:1100px;margin:0 auto;padding-top:28px!important;color:#f3f0ec}
.explore-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:19px}
.explore-head h1{font-size:clamp(30px,3.4vw,42px);line-height:1.1;letter-spacing:-1.45px;margin:7px 0 0;font-weight:800}
.explore-library-link{display:flex;align-items:center;gap:8px;cursor:pointer;color:#b5c9c1;background:#b7d3c010;border:1px solid #b7d3c01c;border-radius:99px;padding:10px 14px;font-size:13px;font-weight:700}
.explore-library-link svg{width:17px;height:17px}
.lilt-explore .explore-searchbar{max-width:none;background:#212c34;border:1px solid #b4cabd32;border-radius:16px;padding:8px 9px 8px 17px;gap:12px;box-shadow:0 7px 28px #0001;min-height:58px}
.explore-searchbar>svg{color:#b5c9c1;width:21px;height:21px;flex:none}
.lilt-explore .explore-searchbar input{font-size:16px;font-weight:500;letter-spacing:-.3px;min-height:42px;color:#f7f5ef;min-width:0;outline:0}
.lilt-explore .explore-searchbar input::placeholder{color:#899ba3}
.explore-searchbar input::-webkit-search-cancel-button{cursor:pointer}
.lilt-explore .explore-searchbar>button{border:0;border-radius:11px;background:#d4e5d9;color:#21302e;font-size:14px;font-weight:800;padding:0 20px;height:42px;cursor:pointer;min-width:61px}
.lilt-explore .explore-searchbar>button:disabled{opacity:.62}
.explore-savebar{margin-top:13px;display:flex;align-items:center;gap:10px;justify-content:flex-end;color:#a8b5b8;font-size:12px}
.explore-savebar>span{display:flex;gap:5px;align-items:center;white-space:nowrap}.explore-savebar>span svg{width:14px;height:14px}
.lilt-explore .explore-savebar select{appearance:auto;max-width:218px;min-width:0;background:#1b262d;color:#d9e5df;border:1px solid #ffffff24;border-radius:10px;padding:8px 11px;font-size:12px;cursor:pointer}
.explore-connect,.explore-notice{display:flex;align-items:center;gap:8px;background:#2b2a2633;border:1px solid #c8bc8e30;border-radius:10px;color:#d4c9aa;margin-top:14px;padding:11px 14px;font-size:12px;text-align:left;width:100%}
.explore-connect svg,.explore-notice svg{width:16px;height:16px;flex:none}.explore-connect svg:last-child{margin-left:auto}
.explore-notice{background:#b5c9c110;border-color:#b5c9c126;color:#b5c9c1;line-height:1.5}
.explore-notice button{background:none;border:0;color:inherit;text-decoration:underline;margin-left:auto;font-size:12px}
.explore-section{margin:29px 0 36px;min-width:0}
.explore-section h2{margin:0 0 15px;font-size:21px;font-weight:790;line-height:1.2;letter-spacing:-.65px}
.explore-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.explore-heading h2 span{color:#87979b;font-size:13px;font-weight:600;margin-left:5px}
.explore-heading button{display:flex;align-items:center;gap:2px;color:#b3c3bd;border:0;background:none;font-size:12px}
.explore-heading button svg{width:14px;height:14px}
.explore-chips{display:flex;gap:8px;flex-wrap:wrap}
.explore-chips button{display:inline-flex;align-items:center;gap:8px;border:1px solid #ffffff1e;background:#1b2830;color:#dbe4df;font-size:13px;border-radius:99px;padding:9px 13px;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.explore-chips svg{width:15px;height:15px;color:#afc4bc}
.explore-start .explore-local{padding-top:5px}.explore-start .lilt-recent-item{width:148px;min-width:148px}
.explore-albums{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:16px}
.explore-album{display:flex;min-width:0;flex-direction:column;text-align:left;align-items:stretch;border:0;background:transparent;color:#f1f2ee;padding:0;cursor:pointer}
.explore-album>.catalog-cover{width:100%;aspect-ratio:1/1;border-radius:13px;box-shadow:0 12px 25px #0003;transition:transform .18s ease}
.explore-album:hover>.catalog-cover{transform:translateY(-3px)}
.explore-album strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:730;margin-top:10px}
.explore-album small{color:#9aadb3;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;min-height:15px}
.explore-track-list{display:grid;gap:2px}
.lilt-explore .explore-track{display:flex;align-items:center;gap:6px;padding:6px 8px;min-height:67px;border-radius:11px;border-bottom:1px solid #ffffff0c}
.lilt-explore .explore-track:hover{background:#b8d0c30b}
.explore-track-main{padding:3px 0;display:flex;align-items:center;gap:13px;flex:1;min-width:0;color:#eee;border:0;text-align:left;background:none;cursor:pointer}
.explore-track-main>.catalog-cover{width:50px;height:50px;border-radius:9px;flex:none}
.explore-track-meta{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.explore-track-meta strong{font-size:14px;font-weight:730;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}
.explore-track-meta small{font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#a2b1b5}
.explore-track-actions{display:flex;align-items:center;gap:5px;flex:none}
.lilt-explore .explore-track-actions>button{width:42px;height:42px;min-width:42px;display:grid;place-items:center;border-radius:50%;padding:0;background:transparent;border:0;color:#b6c5bf;cursor:pointer}
.lilt-explore .explore-track-actions>button:hover{background:#ffffff14;color:#f1f5ef}
.lilt-explore .explore-track-actions>button svg{width:20px;height:20px;margin:0}
.lilt-explore .explore-track-actions .catalog-add{background:#bbd4c51a;color:#bcdaca}
.lilt-explore .explore-track-actions .catalog-add:disabled{opacity:.65}
.lilt-explore .explore-track-actions .catalog-add span{display:none}
.explore-artists{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:9px}
.explore-artist{border:1px solid #ffffff12;background:#18242b;color:#e9efea;padding:9px;border-radius:13px;display:flex;align-items:center;gap:12px;min-width:0;text-align:left;cursor:pointer}
.explore-artist>.catalog-cover{width:54px;height:54px;border-radius:50%;flex:none}
.explore-artist strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.explore-artist>svg{width:17px;height:17px;color:#a6b8ad;flex:none}
.explore-detail{margin-top:25px}.explore-back{display:flex;align-items:center;gap:8px;color:#b8c9c0;background:none;border:0;font-size:13px;padding:8px 0;cursor:pointer}
.explore-back svg{transform:rotate(180deg);width:16px;height:16px}
.explore-album-hero,.explore-artist-hero{display:flex;align-items:end;gap:23px;margin:16px 0 24px;min-width:0}
.explore-album-hero>.catalog-cover,.explore-artist-hero>.catalog-cover{width:min(28vw,180px);height:min(28vw,180px);border-radius:17px;box-shadow:0 14px 33px #0005}
.explore-artist-hero>.catalog-cover{border-radius:50%}
.explore-album-hero>div,.explore-artist-hero>div{min-width:0}
.explore-album-hero>div>span,.explore-artist-hero>div>span{font-size:10px;letter-spacing:1.9px;color:#b6d2c4;font-weight:800}
.explore-album-hero h2,.explore-artist-hero h2{font-size:clamp(22px,3.2vw,36px);letter-spacing:-1.3px;margin:8px 0 5px;overflow-wrap:anywhere}
.explore-album-hero p{font-size:13px;color:#b5c3c4;margin:0}
.explore-zero{padding:58px 12px;text-align:center;color:#a7b5b7}
.explore-zero>svg{width:28px;height:28px;color:#9bbbad}.explore-zero h2{font-size:19px;color:#f1f1ee;margin:14px 0 5px}.explore-zero p{font-size:13px}
.explore-note{font-size:12px;color:#a7b5b7;line-height:1.55}
@media(max-width:720px){
 .lilt-explore{padding:19px 19px 155px!important}
 .explore-head{margin-bottom:16px}.explore-head h1{font-size:31px}.explore-head .lilt-kicker{font-size:9px}
 .explore-library-link{padding:9px 12px}.explore-library-link span{display:none}
 .lilt-explore .explore-searchbar{min-height:54px;padding:6px 7px 6px 13px;border-radius:14px;gap:8px}
 .lilt-explore .explore-searchbar input{font-size:15px;min-height:40px}
 .lilt-explore .explore-searchbar>button{min-width:57px;height:40px;padding:0 12px;font-size:13px}
 .explore-savebar{margin-top:11px;justify-content:flex-end}.explore-savebar>span{font-size:11px}
 .lilt-explore .explore-savebar select{font-size:11px;max-width:210px;padding:7px 8px}
 .explore-section{margin:26px 0 30px}.explore-section h2{font-size:19px;margin-bottom:13px}
 .explore-albums{display:flex;gap:13px;overflow-x:auto;margin-right:-19px;padding:0 19px 8px 0;scroll-snap-type:x mandatory;scrollbar-width:thin}
 .explore-album{flex:0 0 137px;scroll-snap-align:start}.explore-album strong{font-size:13px}.explore-album small{font-size:11px}
 .explore-start .lilt-recent-scroll{margin-right:-19px}.explore-start .lilt-recent-item{width:136px;min-width:136px}
 .explore-track-main{gap:10px}.explore-track-main>.catalog-cover{width:47px;height:47px;border-radius:9px}
 .lilt-explore .explore-track{padding:5px 0;gap:2px;min-height:62px}
 .explore-track-meta strong{font-size:13px}.explore-track-meta small{font-size:11px}
 .explore-track-actions{gap:1px}.lilt-explore .explore-track-actions>button{width:35px;min-width:35px;height:42px}
 .lilt-explore .explore-track-actions>button svg{width:19px;height:19px}
 .explore-artists{grid-template-columns:1fr}.explore-artist{padding:7px}
 .explore-album-hero,.explore-artist-hero{gap:16px;align-items:center}.explore-album-hero>.catalog-cover,.explore-artist-hero>.catalog-cover{width:108px;height:108px;flex:none}
 .explore-album-hero h2,.explore-artist-hero h2{font-size:22px;line-height:1.25}
}
@media(max-width:350px){.explore-track-main>.catalog-cover{width:40px;height:40px}.lilt-explore .explore-track-actions>button{width:32px;min-width:32px}.explore-savebar>span{display:none}}

/* Lilt UI v0.9.15 — compact exploration and on-demand saving */
.lilt-explore{max-width:970px;padding-top:25px!important}
.lilt-explore .explore-head{align-items:center;margin:0 0 19px}
.lilt-explore .explore-head h1{font-size:clamp(30px,3.4vw,40px);margin:0;letter-spacing:-1.15px}
.lilt-explore .explore-library-link{border:0;background:transparent;color:#9eb7ac;padding:7px 4px}
.lilt-explore .explore-searchbar{min-height:55px;max-width:850px;background:#1a252d;border:1px solid #a9c7b335;box-shadow:none;border-radius:15px;padding:5px 6px 5px 15px}
.lilt-explore .explore-searchbar:focus-within{border-color:#acd0bb90;box-shadow:0 0 0 3px #a9d4bc0c}
.lilt-explore .explore-searchbar>button{background:#a9cabc;color:#152622;border-radius:11px;min-width:44px;width:44px;height:42px;padding:0;display:grid;place-items:center}
.lilt-explore .explore-searchbar>button svg{width:20px;height:20px}
.explore-tabs{display:flex;gap:8px;overflow-x:auto;padding:16px 0 1px;scrollbar-width:none}
.explore-tabs::-webkit-scrollbar{display:none}
.explore-tabs>button{white-space:nowrap;flex:none;padding:8px 16px;background:#1b252d;border:1px solid #ffffff10;border-radius:30px;color:#b0bfc0;font-size:13px;font-weight:650;cursor:pointer}
.explore-tabs>button.active{background:#bad7c8;color:#172722;border-color:#bad7c8}
.explore-tabs>button small{font-size:10px;font-weight:500;opacity:.78}
.lilt-explore .explore-results{margin-top:4px}
.lilt-explore .explore-section{margin:25px 0 28px}
.lilt-explore .explore-section h2{font-size:19px;margin:0 0 11px}
.lilt-explore .explore-track{padding:6px 6px;gap:7px;min-height:62px;background:transparent;border-radius:11px}
.lilt-explore .explore-track-main:hover{color:#e4f9ef}
.lilt-explore .explore-track-main>.catalog-cover{width:49px;height:49px;border-radius:9px}
.lilt-explore .explore-track-meta strong{font-size:14px;font-weight:710}
.lilt-explore .explore-track-actions>button{height:41px;min-width:41px;width:41px;color:#a9b8b2}
.lilt-explore .explore-track-actions .catalog-add{background:transparent;color:#afd3c0;border:1px solid #afd3c037;width:36px;min-width:36px;height:36px}
.lilt-explore .explore-track-actions .catalog-options-button{border:0;background:none}
.explore-best{padding:0 0 4px}
.explore-best .explore-track{background:#22342f99;border:1px solid #a0c7b523;border-radius:14px;min-height:77px;padding:10px 12px}
.explore-best .explore-track-main>.catalog-cover{width:55px;height:55px}
.explore-best .explore-track-main strong{font-size:16px}
.explore-success{margin:13px 0 0;font-size:12px;color:#a8d9be;display:flex;align-items:center;gap:8px}
.explore-success svg{width:15px;height:15px}
.explore-alert{margin:14px 0;color:#d4bcb2;font-size:12px;line-height:1.5}
.lilt-explore .explore-artists{gap:9px}
.lilt-explore .explore-artist{background:transparent;border:0;border-bottom:1px solid #ffffff12;border-radius:0;padding:8px 4px}
.catalog-sheet{border:1px solid #45605860;background:#162229;color:#e8eee9;border-radius:22px;width:min(94vw,420px);max-height:min(88dvh,700px);padding:0;box-shadow:0 22px 70px #000a}
.catalog-sheet::backdrop{background:#050d10c9;backdrop-filter:blur(5px)}
.catalog-sheet .modal-body{padding:22px 22px 20px;display:flex;flex-direction:column;gap:0}
.catalog-sheet-handle{display:none}
.catalog-sheet-head{display:flex;gap:13px;align-items:flex-start;justify-content:space-between;margin:0 0 17px}
.catalog-sheet-head h2{font-size:22px;font-weight:780;margin:0 0 9px;letter-spacing:-.7px}
.catalog-sheet-head strong{display:block;font-size:15px;font-weight:680;margin-bottom:4px}
.catalog-sheet-head p{font-size:12px;color:#a6b8b2;margin:0}
.catalog-sheet-head .close-btn{flex:none}
.catalog-save-choices{display:flex;flex-direction:column;gap:4px;max-height:43dvh;overflow:auto;margin:0 0 15px}
.catalog-save-choice{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:10px;border:1px solid transparent;cursor:pointer;font-size:14px}
.catalog-save-choice:has(input:checked){background:#abcbb217;border-color:#abcbb253}
.catalog-save-choice input{accent-color:#acd2b9;width:17px;height:17px;margin:0}
.catalog-save-choice-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalog-save-choice-check{color:#abd6bf;visibility:hidden}
.catalog-save-choice:has(input:checked) .catalog-save-choice-check{visibility:visible}
.catalog-save-choice-check svg{width:18px;height:18px}
.catalog-save-confirm{width:100%;border:0;border-radius:12px;min-height:48px;background:#badacb;color:#1a2925;font-size:15px;font-weight:750;cursor:pointer}
.catalog-save-confirm:disabled{opacity:.6}
.catalog-options-list{display:flex;flex-direction:column;gap:2px}
.catalog-options-list button{min-height:50px;background:transparent;color:#ecf2ee;border:0;border-bottom:1px solid #ffffff12;text-align:left;font-size:15px;cursor:pointer;padding:10px 5px}
.catalog-options-list button:last-child{border-bottom:0;color:#b9dcca}
.catalog-options-list button:disabled{opacity:.4}
@media(max-width:720px){
 .lilt-explore{padding:15px 19px 155px!important}
 .lilt-explore .explore-head{margin-bottom:18px}
 .lilt-explore .explore-head h1{font-size:30px}
 .lilt-explore .explore-searchbar{min-height:52px;padding:5px 5px 5px 13px}
 .lilt-explore .explore-searchbar input{font-size:15px}
 .lilt-explore .explore-searchbar>button{height:39px;width:39px;min-width:39px}
 .lilt-explore .explore-section{margin:20px 0 23px}
 .lilt-explore .explore-section h2{font-size:18px}
 .lilt-explore .explore-track{padding:5px 1px;min-height:59px}
 .lilt-explore .explore-track-main>.catalog-cover{width:46px;height:46px}
 .lilt-explore .explore-track-meta strong{font-size:13.5px}
 .lilt-explore .explore-track-actions>button{width:37px;min-width:37px;height:40px}
 .lilt-explore .explore-track-actions .catalog-add{width:33px;min-width:33px;height:33px}
 .lilt-explore .explore-track-actions>button svg{width:18px;height:18px}
 .explore-best .explore-track{padding:8px 10px}
 .catalog-sheet{position:fixed;width:100%;max-width:none;max-height:min(82dvh,730px);margin:0;inset:auto 0 0;border-radius:24px 24px 0 0;border-bottom:0}
 .catalog-sheet .modal-body{padding:10px 23px max(22px,env(safe-area-inset-bottom))}
 .catalog-sheet-handle{display:block;width:38px;height:4px;border-radius:8px;background:#61766e;margin:0 auto 22px}
}
.catalog-sheet .modal-body .catalog-save-choice{display:flex;align-items:center;gap:12px;margin:3px 0;padding:13px 12px;color:#ebf0ed;font-size:14px;font-weight:600}
.catalog-sheet .modal-body .catalog-save-choice input[type=radio]{flex:0 0 auto;margin:0;width:18px;height:18px;accent-color:#acd2b9}
.catalog-sheet .catalog-save-choice-name{display:block;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Lilt UI v0.9.15a: preserve true circular save controls on small screens.
   Overrides the legacy .catalog-add mobile !important height (42px). */
.lilt-explore .explore-track-actions .catalog-add{
  box-sizing:border-box;
  display:inline-grid;place-items:center;
  width:40px!important;height:40px!important;
  min-width:40px!important;min-height:40px!important;
  max-width:40px!important;max-height:40px!important;
  flex:0 0 40px!important;aspect-ratio:1/1;
  padding:0!important;border-radius:50%!important;
}

/* Lilt v0.9.18 — artist-first library and unified artist detail. */
.lib-content,.lib-detail{padding-bottom:170px}
.lib-heading{padding:32px 0 18px}.lib-heading h1{font-size:clamp(30px,5vw,43px);margin:6px 0;letter-spacing:-1.6px}.lib-heading p{font-size:13px;color:#9caca8}
.lib-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}
.lib-tabs button{border:1px solid #35413e;border-radius:99px;color:#d7e2dd;padding:10px 16px;background:transparent;font-size:13px;font-weight:650}
.lib-tabs button.active{background:#b8d9c8;color:#14251c;border-color:#b8d9c8}
.lib-search{max-width:500px;margin:14px 0 24px}.lib-section{margin:28px 0 34px}.lib-section h2,.lib-section-heading h2{font-size:19px;margin:0;font-weight:780;letter-spacing:-.55px}
.lib-section>h2{display:flex;align-items:center;gap:8px}.lib-section>h2 svg{width:18px;height:18px;color:#a2cfb5}
.lib-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:16px}.lib-section-heading small{color:#9fada7;font-size:12px}
.lib-artist-art{display:inline-grid;place-items:center;flex:none;width:68px;height:68px;border-radius:50%;background:#293730;overflow:hidden;color:#b8d6c9}
.lib-artist-art svg{width:28px;height:28px}.lib-artist-art img{width:100%;height:100%;object-fit:cover;grid-area:1/1}.lib-artist-art svg{grid-area:1/1}
.lib-artist-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.lib-artist-card{min-width:0;display:flex;flex-direction:column;align-items:center;gap:7px;background:transparent;border:0;color:#eff5f2;text-align:center;cursor:pointer}
.lib-artist-card .lib-artist-art{width:min(100%,108px);height:auto;aspect-ratio:1}.lib-artist-card strong{font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lib-artist-card small{color:#9bac9f;font-size:11px}
.lib-pinned,.lib-artist-line{background:transparent;border:0;color:#f0f5f2;display:flex;align-items:center;gap:12px;text-align:left;min-width:0;width:100%;cursor:pointer}
.lib-pinned{padding:10px 0}.lib-pinned .lib-artist-art{width:82px;height:82px}
.lib-pinned>span:nth-child(2),.lib-artist-line>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.lib-pinned strong,.lib-artist-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.lib-pinned small,.lib-artist-line small{color:#9daea7;font-size:12px}
.lib-pinned>svg,.lib-artist-line>svg{width:17px;height:17px;color:#8b9a93}
.lib-artist-line{padding:9px 0;border-bottom:1px solid #ffffff0e}.lib-artist-line .lib-artist-art{width:53px;height:53px}
.lib-artist-line:hover,.lib-pinned:hover{background:#ffffff05}.lib-add-list{background:transparent;border:0;color:#c0e0cc;display:flex;align-items:center;gap:5px}.lib-add-list svg{height:17px;width:17px}.lib-more{margin:20px auto;display:block}
.lib-profile{display:flex;gap:22px;align-items:center;padding:22px 0 35px;min-width:0}
.lib-profile>.catalog-cover,.lib-profile>.lib-artist-art{width:132px;height:132px;min-width:132px;border-radius:50%;box-shadow:0 12px 32px #0005}
.lib-profile .lib-artist-art svg{width:50px;height:50px}.lib-profile>div{min-width:0}.lib-profile h1{font-size:clamp(25px,4vw,40px);line-height:1.18;overflow-wrap:anywhere;margin:6px 0 9px}.lib-profile p{font-size:12px;color:#9caea6;margin-bottom:19px}
.lib-profile-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.lib-profile-actions button{border:1px solid #566d60;background:#222c2a;color:#e9f6ee;border-radius:99px;min-height:43px;padding:9px 13px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650}
.lib-profile-actions button:first-child{background:#badfca;color:#173527;border-color:#badfca}
.lib-profile-actions button:disabled{opacity:.5}.lib-profile-actions svg{width:16px;height:16px}
.lib-profile-actions .lib-pin-btn{width:43px;padding:0;justify-content:center}.lib-profile-actions .lib-pin-btn.active{background:#47634c;border-color:#89c0a5}
.lib-discover{padding-top:12px;border-top:1px solid #ffffff1a;margin-top:35px}.lib-discover .explore-track{border-bottom:1px solid #ffffff0c}
.lib-explore-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:43px;margin-top:17px;background:transparent;color:#bedbce;border:1px solid #4b6259;border-radius:12px;font-weight:650}
.lib-explore-more svg{width:16px;height:16px}.lib-release-note{font-size:10px;color:#a5dac0;margin-left:7px;font-weight:700}
@media(max-width:1000px){.lib-artist-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.lib-content,.lib-detail{padding:0 19px 165px!important}.lib-heading{padding-top:25px}.lib-artist-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 10px}.lib-artist-card .lib-artist-art{width:min(100%,92px)}.lib-profile{gap:15px;align-items:flex-start}.lib-profile>.catalog-cover,.lib-profile>.lib-artist-art{width:92px;height:92px;min-width:92px}.lib-profile h1{font-size:25px}.lib-profile-actions{gap:6px}.lib-profile-actions button{min-height:40px;padding:8px 10px}.lib-profile p{margin-bottom:11px}.lib-section{margin:24px 0 30px}}

/* v0.9.19 — Playlist detail adopts the artist-detail visual language. */
.lib-playlist-profile>.cover{width:132px;height:132px;min-width:132px;border-radius:17px;box-shadow:0 12px 32px #0005;overflow:hidden}
.lib-playlist-profile>.cover img{width:100%;height:100%;object-fit:cover}
.lib-playlist-profile .lib-profile-actions{margin-top:0}
.lib-playlist-profile .lib-playlist-source{display:inline-flex;align-items:center;gap:6px;margin-top:12px;text-decoration:none;color:#a9c7b9;font-size:12px}
.lib-playlist-profile .lib-playlist-source svg{width:14px;height:14px}
.lib-playlist-tracks{margin-top:10px}
.lib-playlist-tracks .explore-track{border-bottom:1px solid #ffffff0b}
.lib-playlist-tracks .explore-track-actions>button{border:0;background:transparent;color:#aec7ba;border-radius:12px;min-width:38px;width:38px;height:40px;display:inline-grid;place-items:center}
.lib-playlist-tracks .explore-track-actions>button:hover{background:#ffffff11}
.lib-playlist-tracks .explore-track-actions svg{height:19px;width:19px}
.lib-playlist-tracks .lib-more{margin-top:20px}
@media(max-width:720px){
 .lib-playlist-profile>.cover{width:92px;height:92px;min-width:92px;border-radius:13px}
 .lib-playlist-profile{align-items:flex-start}
 .lib-playlist-profile .lib-profile-actions button{padding:7px 10px}
 .lib-playlist-tracks .explore-track-actions>button{width:35px;min-width:35px}
}

/* Lilt 0.9.23 — quiet editing affordances */
.lilt-local-track{-webkit-touch-callout:none;touch-action:pan-y;}
.lilt-local-track:focus-visible{outline:2px solid #badfca;outline-offset:2px;}
#artist-rename-dialog label{font-size:13px;color:#b7cec2;margin-bottom:7px;display:block;}
#artist-rename-dialog input#artist-rename-name{background:#10191d;border:1px solid #5b746a;border-radius:11px;padding:13px;color:#f4f7f4;font-size:16px;width:100%;}
#artist-rename-dialog .field-hint{font-size:12px;line-height:1.5;color:#acc1b5;margin:12px 0;}
