:root{--bg:#0E0E0E;--surface:#161412;--surface-raised:#201E1A;--border:#2A2620;--accent:#F9C032;--accent-dim:rgba(249,192,50,0.08);--accent-border:rgba(249,192,50,0.18);--text:#F0EDE6;--muted:#7A7268;--dim:#3D3A34}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden;overflow-y:auto}body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}@media(hover:hover){html,body{overscroll-behavior:none}}nav{display:flex;flex-direction:column;background:rgba(14,14,14,.95);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;backdrop-filter:blur(12px)}.nav-row-top{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:48px}.logo{font-weight:800;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);cursor:pointer;user-select:none;white-space:nowrap;display:flex;align-items:center}.nav-links{display:flex;align-items:center;gap:.25rem;padding:6px 1.5rem .4rem;border-top:1px solid var(--border)}.nav-links-scroll{display:flex;align-items:center;gap:.25rem;min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.nav-links-scroll::-webkit-scrollbar{display:none}.nav-link{background:0 0;border:2px solid transparent;color:var(--muted);padding:.3rem .75rem;border-radius:6px;cursor:pointer;font-size:.82rem;transition:color .15s,background .15s,border-color .15s;flex-shrink:0}.nav-link:hover{color:var(--text);background:var(--surface-raised)}.nav-link-icon{display:inline-flex;align-items:center;justify-content:center;padding:.35rem}.nav-link.active{color:var(--accent);background:var(--accent-dim);font-weight:700;border-color:var(--accent)}#nav-imported-btn{margin-left:auto;border:1px solid var(--border);border-radius:20px;padding:.2rem .65rem .2rem .5rem;display:inline-flex;align-items:center;gap:.3rem;position:relative}#nav-imported-btn:hover{background:var(--surface-raised);border-color:var(--muted)}#nav-imported-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}#nav-imported-btn .tip{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font-size:.75rem;color:var(--text);white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.3);z-index:9999;pointer-events:none;text-align:left;line-height:1.6}#nav-imported-btn:hover .tip{display:block}#global-search-btn{background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);height:26px;width:85px;border-radius:20px;cursor:pointer;display:inline-flex;align-items:center;justify-content:flex-start;gap:.35rem;font-size:.8rem;padding:0 .75rem;transition:background .15s;margin-right:.5rem}#global-search-btn:hover{background:rgba(249,192,50,.15)}#global-search-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:3000}#global-search-overlay.open{display:block}#global-search-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}#global-search-panel{position:absolute;top:0;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 8px 32px rgba(0,0,0,.4);max-height:80vh;display:flex;flex-direction:column}#global-search-input-row{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--accent-dim)}#global-search-input-row svg{flex-shrink:0;color:var(--accent)}#global-search-input{flex:1;background:0 0;border:none;outline:none;color:var(--text);font-size:1.2rem;font-family:inherit;padding:.2rem 0}#global-search-input::placeholder{color:var(--muted)}#global-search-close{background:0 0;border:none;color:var(--muted);cursor:pointer;font-size:1.2rem;padding:.1rem .3rem;line-height:1}#global-search-close:hover{color:var(--text)}#global-search-results{overflow-y:auto;padding:.75rem 1.25rem 1.25rem}.gs-section{margin-bottom:1.25rem}.gs-section:last-child{margin-bottom:0}.gs-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.5rem}.gs-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .75rem;border-radius:8px;cursor:default}.gs-card:hover{background:var(--surface-raised)}.gs-card-info{flex:1;min-width:0}.gs-card-title{font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-card-meta{font-size:.76rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-card-actions{display:flex;gap:.35rem;flex-shrink:0}.profile-wrap{position:relative}.profile-btn{background:0 0;border:1px solid var(--accent);color:var(--accent);padding:.35rem .85rem;border-radius:6px;cursor:pointer;font-size:.82rem;display:flex;align-items:center;gap:.4rem;transition:border-color .15s,color .15s}.profile-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:280px;box-shadow:0 8px 32px rgba(0,0,0,.6);overflow:hidden;z-index:200}.profile-dropdown.open{display:block}.profile-modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.1rem;border-bottom:1px solid var(--border)}.profile-modal-title{font-size:.88rem;font-weight:600;color:var(--text)}.profile-menu-item{display:flex;align-items:center;gap:1rem;width:100%;background:0 0;border:none;color:var(--text);padding:.9rem 1.25rem;cursor:pointer;font-size:.88rem;text-align:left;transition:background .15s;border-bottom:1px solid var(--border)}.profile-menu-item:last-child{border-bottom:none}.profile-menu-item:hover{background:var(--surface-raised)}.profile-menu-item.danger:hover{color:#ef4444}.profile-back-btn{background:0 0;border:none;color:var(--muted);cursor:pointer;font-size:.82rem;padding:.2rem 0;transition:color .15s}.profile-back-btn:hover{color:var(--text)}.profile-settings-body{padding:1.1rem 1.25rem}.profile-settings-body .field{margin-bottom:.9rem}.downloads-summary{font-size:.85rem;color:var(--muted);margin-bottom:1rem}.pwd-success{color:#22c55e;font-size:.82rem;margin-bottom:.75rem;min-height:1rem}.page{display:none;padding:2rem}.page.active{display:block}#page-login{display:none;align-items:center;justify-content:center;min-height:calc(100vh - 56px);padding:2rem}#page-login.active{display:flex}.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--dim);margin-bottom:1.5rem;flex-wrap:wrap}.breadcrumb a{color:var(--muted);text-decoration:none;cursor:pointer;transition:color .15s}.breadcrumb a:hover{color:var(--accent)}.breadcrumb .sep{color:var(--dim)}.breadcrumb .current{color:var(--text)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2.5rem;width:100%;max-width:380px}.login-card h2{font-size:1.3rem;font-weight:800;margin-bottom:1.5rem;color:var(--text);letter-spacing:-.02em}.field{margin-bottom:1rem}.field label{display:block;font-size:.72rem;font-weight:600;color:var(--muted);margin-bottom:.35rem;letter-spacing:.04em}.field input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.6rem .8rem;border-radius:8px;font-size:.9rem;outline:none;transition:border-color .15s;font-family:inherit}.field input:focus{border-color:var(--accent)}.error{color:#f87171;font-size:.82rem;margin-bottom:.75rem;min-height:1rem}.btn-primary{width:100%;background:var(--accent);color:#111;border:none;padding:.7rem;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;margin-top:.25rem;transition:opacity .15s;font-family:inherit}.btn-primary:hover{opacity:.88}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.tab-bar{display:flex;gap:.5rem}.tab-bar button{background:0 0;border:1px solid var(--border);color:var(--muted);padding:.35rem .9rem;border-radius:6px;cursor:pointer;font-size:.82rem;transition:border-color .15s,color .15s;font-family:inherit}.tab-bar button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.search-bar{display:flex;gap:.75rem;margin-bottom:1.5rem;max-width:460px}.search-bar input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.55rem .8rem;border-radius:8px;font-size:.9rem;outline:none;transition:border-color .15s;font-family:inherit}.search-bar input:focus{border-color:var(--accent)}.search-bar button{background:var(--accent);border:none;color:#111;padding:.55rem 1rem;border-radius:8px;cursor:pointer;font-size:.88rem;font-weight:600;white-space:nowrap;transition:opacity .15s;font-family:inherit}.search-bar button:hover{opacity:.88}.search-bar button:disabled{opacity:.5;cursor:not-allowed}input[type=search]::-webkit-search-decoration{display:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;height:1em;width:1em;cursor:pointer;opacity:.6;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 1l8 8M9 1l-8 8' stroke='%23F9C032' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")no-repeat 50%/contain}input[type=search]::-webkit-search-cancel-button:hover{opacity:1}.artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.artist-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem 1rem 1.75rem;cursor:pointer;transition:border-color .15s;user-select:none;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;min-width:0;overflow:hidden}.artist-card:hover{border-color:var(--accent)}.artist-card-overlay{position:absolute;left:-1rem;right:-1rem;top:0;transform:translateY(-100%);background:var(--surface-raised);border-bottom:1px solid var(--border);transition:transform .28s cubic-bezier(.4,0,.2,1);padding:0;z-index:10}.artist-card.menu-open .artist-card-overlay{transform:translateY(0)}.card-menu-btn.is-close,.album-menu-btn.is-close{opacity:1!important;color:var(--danger,#e05c5c)!important;border-color:rgba(224,92,92,.6)!important}.artist-card .thumb,.artist-card .thumb-placeholder{width:112px;height:112px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--surface-raised)}.artist-card .thumb-placeholder{display:flex;align-items:center;justify-content:center;font-size:2.2rem;color:var(--border)}.artist-card .info{min-width:0;width:100%}.artist-card h3{font-size:.75rem;margin-bottom:0;line-height:1.3;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word;text-align:center}.artist-card .card-info-btn{position:absolute;bottom:.4rem;left:.5rem;width:22px;height:22px;border-radius:50%;border:1px solid rgba(212,168,67,.35);background:var(--surface-raised);color:#d4a843;font-size:.65rem;font-style:italic;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:default;opacity:.45;transition:opacity .15s;z-index:2;line-height:1}@media(hover:hover){.artist-card .card-info-btn{opacity:0}.artist-card:hover .card-info-btn{opacity:1}}#artist-card-tooltip{position:fixed;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;box-shadow:0 4px 14px rgba(0,0,0,.3);font-size:.78rem;color:var(--text);pointer-events:none;z-index:9998;display:none;min-width:140px;line-height:1.7}#artist-card-tooltip .tip-label{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.artist-card .card-menu-btn{position:absolute;bottom:.4rem;right:.5rem;width:22px;height:22px;border-radius:50%;border:1px solid rgba(212,168,67,.35);background:var(--surface-raised);color:#d4a843;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.45;transition:opacity .15s;z-index:1;line-height:1}@media(hover:hover){.artist-card .card-menu-btn{opacity:0}.artist-card:hover .card-menu-btn{opacity:1}.artist-card .card-menu-btn:hover{color:#e8c55a;border-color:#d4a843}}#artist-card-menu{position:fixed;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);padding:.25rem 0;min-width:160px;z-index:9999;visibility:hidden;opacity:0}#artist-card-menu.open{visibility:visible;opacity:1}#artist-card-menu button{display:block;width:100%;text-align:left;padding:.45rem .9rem;background:0 0;border:none;color:var(--text);font-size:.82rem;cursor:pointer;white-space:nowrap}#artist-card-menu button:hover{background:var(--surface)}#artist-card-menu button.danger{color:var(--danger,#e05c5c)}#artist-card-menu hr{border:none;border-top:1px solid var(--border);margin:.2rem 0}#album-card-menu{position:fixed;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);padding:.25rem 0;min-width:170px;z-index:9999;visibility:hidden;opacity:0}#album-card-menu.open{visibility:visible;opacity:1}#album-card-menu button{display:block;width:100%;text-align:left;padding:.45rem .9rem;background:0 0;border:none;color:var(--text);font-size:.82rem;cursor:pointer;white-space:nowrap}#album-card-menu button:hover{background:var(--surface)}#album-card-menu button.danger{color:var(--danger,#e05c5c)}#album-card-menu hr{border:none;border-top:1px solid var(--border);margin:.2rem 0}.album-card .album-menu-btn{background:0 0;border:1px solid rgba(212,168,67,.35);border-radius:50%;width:22px;height:22px;color:#d4a843;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.45;transition:opacity .15s;line-height:1;flex-shrink:0}@media(hover:hover){.album-card .album-menu-btn{opacity:0}.album-card:hover .album-menu-btn{opacity:1}.album-card .album-menu-btn:hover{color:#e8c55a;border-color:#d4a843}}.discover-carousel-wrap{position:relative}.discover-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.discover-carousel::-webkit-scrollbar{display:none}.discover-arrow{display:none;position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font-size:1.1rem;line-height:1;align-items:center;justify-content:center;cursor:pointer;z-index:2;transition:border-color .15s,opacity .15s}.discover-arrow:hover{border-color:var(--accent)}.discover-arrow.hidden{visibility:hidden;pointer-events:none}.discover-arrow-prev{left:.4rem}.discover-arrow-next{right:.4rem}@media(hover:hover) and (pointer:fine){.discover-arrow{display:flex}}.discover-card{flex:0 0 100%;width:100%;box-sizing:border-box;scroll-snap-align:center;scroll-snap-stop:always;padding:.5rem 1.5rem 1.5rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem}.discover-card .thumb,.discover-card .thumb-placeholder{width:148px;height:148px;border-radius:50%;object-fit:cover;background:var(--surface-raised)}.discover-card .thumb-placeholder{display:flex;align-items:center;justify-content:center;font-size:2.8rem;color:var(--border)}.discover-card h3{font-size:1.05rem;font-weight:600;margin:0;line-height:1.3}.discover-card .discover-reason{font-size:.8rem;color:var(--dim);line-height:1.4}.discover-dots{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:0 0 1.25rem}.discover-dot{width:7px;height:7px;border-radius:50%;background:var(--border);border:none;padding:0;cursor:pointer;transition:background .15s,transform .15s}.discover-dot.active{background:var(--accent);transform:scale(1.35)}.artist-detail-header{display:flex;gap:1.25rem;margin-bottom:.75rem;height:160px}.artist-detail-header .art-image{width:160px;height:160px;border-radius:12px;object-fit:cover;flex-shrink:0;background:var(--surface)}.artist-detail-header .ad-info{min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden}.artist-detail-header .ad-info h1{flex-shrink:0}.artist-bio{font-size:.85rem;color:var(--muted);line-height:1.5;max-width:70ch;margin-bottom:0;flex:1;overflow:hidden}.artist-bio-readmore{font-size:.8rem;color:var(--accent);cursor:pointer;margin-top:.35rem;flex-shrink:0;background:0 0;border:none;padding:0;text-decoration:underline;align-self:flex-start;position:relative;top:-5px}.artist-bio-modal-img{display:block;margin:0 auto 1rem;width:220px;height:220px;object-fit:cover;border-radius:12px;background:var(--surface)}.artist-bio-modal-text{font-size:.88rem;line-height:1.6;color:var(--text);text-align:left;white-space:pre-wrap}.icon-btn{background:0 0;border:none;color:var(--muted);cursor:pointer;line-height:1;padding:.15rem .2rem;border-radius:4px;flex-shrink:0;display:inline-flex;align-items:center;transition:color .15s}.icon-btn:hover{color:var(--text)}.icon-btn.danger:hover{color:#ef4444;background:rgba(239,68,68,.12)}.icon-btn.copied{color:#4ade80}.type-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.type-filters button{background:0 0;border:1px solid var(--border);color:var(--muted);padding:.25rem .75rem;border-radius:20px;cursor:pointer;font-size:.78rem;transition:border-color .15s,color .15s;font-family:inherit}.type-filters button:hover{border-color:var(--dim);color:var(--text)}.type-filters button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:.75rem}.album-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .15s;user-select:none;display:flex;flex-direction:column}.album-card:hover{border-color:var(--accent)}.album-card .art-wrap{width:100%;aspect-ratio:1;background:var(--bg);overflow:hidden;flex-shrink:0}.album-card .art-wrap img{width:100%;height:100%;object-fit:cover;display:block}.album-card .art-flip{position:relative;width:100%;aspect-ratio:1;flex-shrink:0;transform-style:preserve-3d;transition:transform .42s cubic-bezier(.4,0,.2,1)}.album-card.art-flipped .art-flip{transform:rotateY(180deg)}.album-card .art-front{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--bg);overflow:hidden}.album-card .art-front img{width:100%;height:100%;object-fit:cover;display:block}.album-card .art-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:rotateY(180deg);background:var(--surface-raised);display:flex;flex-direction:column}.album-card .art-back button,.artist-card-overlay button{display:block;width:100%;text-align:left;padding:10px 25px;background:0 0;border:none;color:var(--text);font-size:.82rem;cursor:pointer;white-space:nowrap;font-family:inherit}.album-card .art-back button:hover,.artist-card-overlay button:hover{background:rgba(255,255,255,6%)}.album-card .art-back button.danger,.artist-card-overlay button.danger{color:var(--danger,#e05c5c)}.album-card .art-back hr,.artist-card-overlay hr{border:none;border-top:1px solid var(--border);margin:0}.album-card .art-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:var(--border)}.album-card .card-info{padding:.55rem .65rem .6rem;display:flex;flex-direction:column;gap:.2rem;min-width:0}.album-card .card-year{font-size:.7rem;color:var(--dim)}.album-card .card-title{font-size:.82rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.personal-badge{display:inline-block;font-size:.6rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#d4a843;border:1px solid rgba(212,168,67,.4);border-radius:4px;padding:1px 5px;margin-left:.4rem;vertical-align:middle}.album-card .card-counts{display:flex;align-items:center;justify-content:space-between;margin-top:.1rem}.count-badge{font-size:.7rem;color:var(--dim)}.count-badge.complete{color:#22c55e}.btn-outline{background:0 0;border:1px solid var(--border);color:var(--muted);padding:.4rem .9rem;border-radius:7px;cursor:pointer;font-size:.85rem;transition:border-color .15s,color .15s;font-family:inherit}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.btn-outline:disabled{opacity:.4;cursor:not-allowed}.btn-outline.queued{border-color:#22c55e;color:#22c55e}.btn-danger-outline{background:0 0;border:1px solid var(--border);color:var(--dim);padding:.4rem .9rem;border-radius:7px;cursor:pointer;font-size:.85rem;transition:border-color .15s,color .15s;font-family:inherit}.btn-danger-outline:hover{border-color:#ef4444;color:#ef4444}.btn-delete{background:0 0;border:1px solid #ef4444;color:#ef4444;padding:.4rem .9rem;border-radius:7px;cursor:pointer;font-size:.85rem;font-family:inherit}.btn-delete:hover{background:rgba(239,68,68,8%)}.dl-all-btn{background:0 0;border:1px solid var(--border);color:var(--dim);padding:.2rem .5rem;border-radius:5px;cursor:pointer;font-size:.72rem;flex-shrink:0;transition:border-color .15s,color .15s;font-family:inherit}.dl-all-btn:hover{border-color:var(--accent);color:var(--accent)}.dl-all-btn:disabled{opacity:.4;cursor:not-allowed}.dl-all-btn.queued{border-color:#22c55e;color:#22c55e}.album-detail-header{display:grid;grid-template-columns:180px 1fr;grid-template-areas:"art info";column-gap:2rem;row-gap:1.25rem;margin-bottom:2.5rem}.album-detail-art{grid-area:art;width:180px;height:180px;border-radius:10px;overflow:hidden;background:var(--surface);align-self:start;position:relative}.album-detail-art img{width:100%;height:100%;object-fit:cover;display:block}.album-detail-art .art-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;color:var(--border)}.album-detail-art{cursor:pointer}.album-detail-art:hover .art-upload-overlay{opacity:1}.album-detail-info{grid-area:info;min-width:0;align-self:start}.album-detail-info h1{font-size:1.55rem;font-weight:800;color:var(--text);margin-bottom:.3rem;line-height:1.2;letter-spacing:-.02em}.album-artist-link{font-size:1rem;color:var(--accent);margin-bottom:.5rem;cursor:pointer;display:inline-block}.album-artist-link:hover{text-decoration:underline}.album-detail-meta{font-size:.82rem;color:var(--dim)}.album-detail-meta span+span::before{content:" · "}.album-actions-wrap{position:relative;display:inline-block}.album-actions-wrap #abd-actions-menu{min-width:200px}.disc-header{font-size:.7rem;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;padding:1rem 0 .4rem;border-bottom:1px solid var(--border);margin-bottom:0}.song-row{display:flex;align-items:center;gap:.5rem;height:2.4rem;border-bottom:1px solid var(--surface);font-size:.88rem;padding-left:3px}.song-row:last-child{border-bottom:none}.song-row .track{width:16px;text-align:right;color:var(--dim);font-size:.78rem;flex-shrink:0}.song-row .song-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-row .duration{color:var(--text);font-size:.78rem;flex-shrink:0;width:36px;text-align:right}.song-row .has-file{color:#22c55e;font-size:.78rem;flex-shrink:0}.song-ellipsis-btn{background:0 0;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 2px;line-height:1;flex-shrink:0;width:20px;text-align:center;border-radius:3px;letter-spacing:-1px}.song-ellipsis-btn:hover{color:var(--text);background:var(--surface-raised)}.song-ctx-wrap{position:relative;flex-shrink:0;width:20px}.song-ctx-menu{display:none;position:absolute;left:0;bottom:calc(100% + 2px);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.2rem 0;min-width:120px;z-index:200;box-shadow:0 4px 16px rgba(0,0,0,.6)}.song-ctx-menu.open{display:block}.song-ctx-menu--down{top:calc(100% + 2px);bottom:auto}.song-ctx-menu button,#tpt-menu-portal button{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:0 0;border:none;color:var(--text);padding:.38rem .75rem;font-size:.82rem;cursor:pointer;white-space:nowrap;transition:background .1s;font-family:inherit}.song-ctx-menu button:hover,#tpt-menu-portal button:hover{background:var(--surface-raised)}.song-ctx-menu button:disabled,#tpt-menu-portal button:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.song-ctx-menu button.danger,#tpt-menu-portal button.danger{color:#ef4444}.song-ctx-menu button.danger:hover,#tpt-menu-portal button.danger:hover{background:rgba(239,68,68,8%)}.song-ctx-menu button.edit,#tpt-menu-portal button.edit{color:var(--accent)}.song-ctx-menu button.edit:hover,#tpt-menu-portal button.edit:hover{background:var(--accent-dim)}.song-ctx-menu hr{border:none;border-top:1px solid var(--border);margin:.1rem 0}.ctx-icon{display:inline-flex;align-items:center;justify-content:center;width:12px;flex-shrink:0;font-size:.78rem}.karaoke-line{font-size:1.4rem;line-height:1.9;color:#555;padding:.15rem 0;transition:color .25s;text-align:center}.karaoke-line.kl-active{color:#f9c032;font-weight:700;font-size:1.65rem}.rating-toggle{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:color .12s,opacity .12s}.rating-toggle:hover{opacity:.8}.rating-toggle.neutral{color:var(--accent)}.rating-toggle.liked{color:#22c55e}.rating-toggle.disliked{color:#ef4444}.song-row .rating-toggle,.song-page-row .rating-toggle{margin-right:3px}.rating-badge{display:inline-flex;gap:.3rem;align-items:center;color:var(--surface-raised);font-size:.76rem}.rating-badge.has-likes{color:#22c55e}.rating-badge .like-count{color:var(--muted)}.dl-btn{background:0 0;border:1px solid var(--border);color:var(--dim);padding:.15rem .5rem;border-radius:4px;cursor:pointer;font-size:.72rem;flex-shrink:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s;font-family:inherit}.dl-btn:hover{border-color:var(--accent);color:var(--accent)}.dl-btn:disabled{opacity:.4;cursor:not-allowed}.dl-btn.queued{border-color:#22c55e;color:#22c55e}.song-row.editing{background:var(--surface);gap:.5rem;flex-wrap:wrap;padding:.5rem .4rem;border-radius:6px;height:auto}.song-edit-input{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.2rem .4rem;border-radius:4px;font-size:.82rem;outline:none;transition:border-color .15s;font-family:inherit}.song-edit-input:focus{border-color:var(--accent)}.song-edit-input.title{flex:1;min-width:120px}.song-edit-input.num{width:46px;text-align:center}.save-btn{background:0 0;border:1px solid #22c55e;color:#22c55e;padding:.15rem .5rem;border-radius:4px;cursor:pointer;font-size:.75rem;flex-shrink:0;transition:background .15s;font-family:inherit}.save-btn:hover{background:rgba(34,197,94,.1)}.mbz-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.mbz-card .info{flex:1;min-width:0}.mbz-card h3{font-size:1rem;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mbz-card .meta{font-size:.78rem;color:var(--muted)}.mbz-card .meta span+span::before{content:" · "}.add-btn{background:0 0;border:1px solid var(--border);color:var(--text);padding:.3rem .7rem;border-radius:6px;cursor:pointer;font-size:.8rem;white-space:nowrap;flex-shrink:0;transition:border-color .15s,color .15s;font-family:inherit}.add-btn:hover{border-color:var(--accent);color:var(--accent)}.add-btn:disabled{opacity:.4;cursor:not-allowed}.add-btn.added{border-color:#22c55e;color:#22c55e}.src-badge{font-size:.68rem;font-weight:600;padding:.1rem .4rem;border-radius:4px;vertical-align:middle;margin-left:.4rem}.src-library{background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.3)}.src-catalog{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border)}.letter-filter{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem}.letter-filter button{background:0 0;border:1px solid var(--border);color:var(--dim);padding:.2rem .45rem;border-radius:4px;cursor:pointer;font-size:.75rem;min-width:26px;text-align:center;transition:border-color .15s,color .15s;font-family:inherit}.letter-filter button:hover{border-color:var(--dim);color:var(--muted)}.letter-filter button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.song-page-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .25rem;border-bottom:1px solid var(--surface);font-size:.88rem}.song-page-row:hover{background:var(--surface);border-radius:4px}.song-page-row .track{width:28px;text-align:right;color:var(--dim);font-size:.78rem;flex-shrink:0}.song-page-row .song-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-page-row .song-album{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:180px;flex-shrink:0;cursor:pointer;transition:color .15s}.song-page-row .song-album:hover{color:var(--accent)}.song-page-row .song-artist{font-size:.78rem;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:130px;flex-shrink:0}.song-page-row .duration{color:var(--dim);font-size:.78rem;flex-shrink:0;width:36px;text-align:right}.download-row-art{width:36px;height:36px;border-radius:4px;overflow:hidden;flex-shrink:0;background:var(--surface-raised)}.download-row-art img{width:100%;height:100%;object-fit:cover;display:block}.download-row-art .art-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--border)}.download-row-size{color:var(--dim);font-size:.78rem;flex-shrink:0;width:64px;text-align:right}.similar-heading{font-size:.72rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.top-track-list-scroll{max-height:calc(5 * 3.2rem);overflow-y:auto;overflow-x:visible}.top-track-list{overflow:visible}.top-track-row{display:flex;align-items:center;gap:.5rem;padding:.55rem .5rem;border-bottom:1px solid var(--surface)}.top-track-row:last-child{border-bottom:none}.top-track-num{font-size:.78rem;color:var(--dim);width:1.4rem;text-align:right;flex-shrink:0}.top-track-info{flex:1;min-width:0}.top-track-name{font-size:.88rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-track-album{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}.sim-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .75rem;border-radius:6px;cursor:pointer;transition:background .1s}.sim-row:hover{background:var(--surface-raised)}.sim-row.added{opacity:.45;cursor:default;pointer-events:none}.sim-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex-shrink:0;cursor:pointer}.sim-row-name{flex:1;font-size:.88rem;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-badge{font-size:.7rem;padding:.15rem .45rem;border-radius:4px;flex-shrink:0}.sim-badge.catalog{background:var(--accent-dim);color:var(--accent)}.sim-badge.new{background:var(--surface-raised);color:var(--dim)}.tape-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.tape-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color .15s;user-select:none;position:relative;display:flex;flex-direction:column;min-width:0}.tape-card:hover{border-color:var(--accent)}.tape-card-art{width:100%;aspect-ratio:1;background:var(--surface-raised);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}.tape-card-art img{width:100%;height:100%;object-fit:cover;display:block}.tape-card-art .art-placeholder{font-size:3rem;color:var(--border)}.tape-card-body{padding:.55rem .7rem .65rem;min-width:0}.tape-card-name{font-size:.75rem;font-weight:600;color:var(--text);line-height:1.3;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.tape-detail-header{display:grid;grid-template-columns:180px 1fr;column-gap:2rem;margin-bottom:2rem;align-items:start}.tape-detail-art{width:180px;height:180px;border-radius:10px;overflow:hidden;background:var(--surface);cursor:pointer;position:relative;flex-shrink:0}.tape-detail-art img{width:100%;height:100%;object-fit:cover;display:block}.tape-detail-art .art-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;color:var(--border)}.tape-detail-art:hover .art-upload-overlay{opacity:1}.art-upload-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.3rem;opacity:0;transition:opacity .16s;cursor:pointer;color:var(--accent);font-size:.75rem;font-weight:600}.art-upload-overlay svg{opacity:.9}.tape-detail-info{min-width:0}.tape-detail-info h1{font-size:1.55rem;font-weight:800;color:var(--text);margin-bottom:.2rem;line-height:1.2;letter-spacing:-.02em}.tape-detail-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.85rem}.tape-collage{display:grid;width:100%;height:100%}.tape-collage img{width:100%;height:100%;object-fit:cover;display:block}.tape-song-row{display:flex;align-items:center;gap:.5rem;padding:.65rem .5rem;border-bottom:1px solid var(--surface)}.tape-song-row:last-child{border-bottom:none}.tape-song-row--drag-over{border-top:2px solid var(--accent)}.tape-song-info{flex:1;min-width:0}.tape-song-title{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.tape-song-album{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}.tape-song-artist{font-size:.72rem;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.05rem}.tape-song-meta{font-size:.75rem;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}.song-no-file{font-size:.7rem;color:#c84;margin-left:.35rem}.tape-search-result-row{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-bottom:1px solid var(--surface)}.tape-search-result-row:last-child{border-bottom:none}.tape-name{flex:1;font-size:.95rem}.tape-title-input{background:var(--surface);border:1px solid var(--accent);color:var(--text);padding:.2rem .5rem;border-radius:6px;font-size:1.55rem;font-weight:800;outline:none;width:16ch;font-family:inherit}.surprise-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.5rem}.surprise-row select{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.3rem .5rem;border-radius:8px;font-size:.85rem;outline:none;min-width:110px;font-family:inherit}.surprise-row select:focus{border-color:var(--accent)}.btn-surprise{background:var(--accent);border:none;color:#111;padding:.45rem 1rem;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:600;white-space:nowrap;transition:opacity .15s;font-family:inherit}.btn-surprise:hover{opacity:.88}.btn-surprise:disabled{opacity:.5;cursor:default}#tpd-search:disabled{opacity:.4;cursor:not-allowed}#toast-container{position:fixed;bottom:1.25rem;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:none;width:max-content;max-width:calc(100vw - 2rem)}.toast{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;border-radius:8px;font-size:.85rem;font-weight:500;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);pointer-events:all;opacity:0;transform:translateY(8px);animation:toast-in .2s ease forwards}.toast.toast-out{animation:toast-out .2s ease forwards}.toast-success{background:#1a3a1a;border:1px solid #22c55e;color:#86efac}.toast-update{background:#2a2000;border:1px solid var(--accent);color:#fde68a}.toast-delete{background:#3a1a1a;border:1px solid #ef4444;color:#fca5a5}.toast-error{background:#3a1a1a;border:1px solid #ef4444;color:#fca5a5}.toast-info{background:var(--surface);border:1px solid var(--border);color:var(--text)}@keyframes toast-in{to{opacity:1;transform:translateY(0)}}@keyframes toast-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@media(max-width:480px){#toast-container{bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;right:1rem;transform:none;width:auto;max-width:none}}.ms-wrap{position:relative}.ms-trigger{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.3rem .6rem;border-radius:8px;font-size:.85rem;cursor:pointer;white-space:nowrap;min-width:120px;display:flex;align-items:center;justify-content:space-between;gap:.4rem;user-select:none;transition:border-color .15s}.ms-trigger:hover,.ms-wrap.open .ms-trigger{border-color:var(--accent)}.ms-trigger .ms-caret{font-size:.6rem;color:var(--muted)}.ms-clear{display:none;font-size:.7rem;color:var(--muted);line-height:1;cursor:pointer;transition:color .15s}.ms-clear.show{display:inline}.ms-clear:hover{color:var(--accent)}.ms-panel{display:none;position:absolute;top:calc(100% + 4px);left:0;min-width:100%;max-height:200px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;z-index:50;padding:.3rem 0;box-shadow:0 4px 16px rgba(0,0,0,.5)}.ms-wrap.open .ms-panel{display:block}.ms-option{display:block;text-align:left;width:100%;padding:.3rem .75rem;font-size:.83rem;color:var(--text);cursor:pointer;transition:background .1s;font-family:inherit}.ms-option:hover{background:var(--surface-raised)}.ms-option input[type=checkbox]{accent-color:var(--accent);cursor:pointer;vertical-align:middle;position:relative;top:-1px;margin-right:.2rem}.ms-wrap-inline{flex:0 0 220px}.ms-trigger-inline{padding:.55rem .8rem;font-size:.9rem;min-width:0}.ms-trigger-inline span:first-child{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.ms-wrap-inline{flex:1}}.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);z-index:100;align-items:center;justify-content:center;padding:1rem}.modal-backdrop.open{display:flex}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.7)}.modal-close-btn{background:0 0;border:none;color:var(--dim);cursor:pointer;font-size:1.1rem;line-height:1;padding:.25rem;border-radius:4px;transition:color .15s}.modal-close-btn:hover{color:var(--text)}.modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-title{font-size:.92rem;font-weight:600;color:var(--text)}.share-meta{padding:.875rem 1.25rem;background:var(--bg);border-bottom:1px solid var(--border)}.share-meta-name{font-size:.9rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-meta-sub{font-size:.78rem;color:var(--muted);margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-select{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.5rem 2rem .5rem .75rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:border-color .15s;font-family:inherit}.share-select:focus{outline:none;border-color:var(--accent)}.yt-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:580px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.7)}.yt-modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0;gap:1rem}.yt-modal-heading{font-size:.92rem;font-weight:700;color:var(--accent)}.modal-section-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--accent);text-transform:uppercase;display:block}.yt-modal-subheading{font-size:.75rem;color:var(--dim);margin-top:.15rem}.yt-modal-body{flex:1;overflow-y:auto;min-height:0}.yt-modal-footer{display:flex;justify-content:flex-end;gap:.6rem;padding:.85rem 1.25rem;border-top:1px solid var(--border);flex-shrink:0}.btn-cancel{background:0 0;border:1px solid var(--border);color:var(--muted);padding:.45rem 1rem;border-radius:8px;cursor:pointer;font-size:.85rem;transition:border-color .15s,color .15s;font-family:inherit}.btn-cancel:hover{border-color:var(--dim);color:var(--text)}.btn-confirm{background:var(--accent);color:#111;border:none;padding:.45rem 1.1rem;border-radius:8px;font-size:.85rem;font-weight:700;cursor:pointer;transition:opacity .15s;font-family:inherit}.btn-confirm:hover{opacity:.88}.btn-confirm:disabled{opacity:.4;cursor:not-allowed}.yt-candidate-row{display:flex;align-items:stretch;gap:.85rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.yt-candidate-row:last-child{border-bottom:none}.yt-candidate-row:hover{background:var(--surface-raised)}.yt-candidate-row.selected{background:var(--accent-dim);border-left:2px solid var(--accent);padding-left:calc(1rem - 2px)}.yt-thumb-wrap{position:relative;flex-shrink:0}.yt-thumb{width:100px;height:100%;min-height:56px;object-fit:cover;border-radius:4px;display:block;background:var(--bg)}.yt-duration{position:absolute;bottom:3px;right:3px;background:rgba(0,0,0,.82);color:#fff;font-size:.65rem;font-weight:500;padding:1px 4px;border-radius:3px;line-height:1.5;pointer-events:none}.yt-preview-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:0 0;border:none;border-radius:4px;cursor:pointer;color:#fff;font-size:1rem;opacity:0;transition:opacity .15s,background .15s}.yt-thumb-wrap:hover .yt-preview-btn{opacity:1;background:rgba(0,0,0,.5)}.yt-preview-btn.loading{opacity:1;background:rgba(0,0,0,.6)}.yt-preview-btn.playing{opacity:1;background:rgba(0,0,0,.55)}.yt-wave{display:flex;gap:1px;align-items:flex-end;height:14px;width:12px}.yt-wave span{width:3px;background:var(--accent);border-radius:2px;animation:ytWaveBar .75s ease-in-out infinite}.yt-wave span:nth-child(2){animation-delay:.12s}.yt-wave span:nth-child(3){animation-delay:.24s}.yt-wave span:nth-child(4){animation-delay:.36s}@keyframes ytWaveBar{0%,100%{height:3px}50%{height:16px}}.yt-cand-info{flex:1;min-width:0;padding-top:.05rem}.yt-cand-title{font-size:.83rem;color:var(--text);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;min-height:calc(.83rem * 1.4 * 2);margin-bottom:.35rem}.yt-cand-meta{font-size:.71rem;color:var(--dim)}.yt-cand-views{font-size:.71rem;color:var(--muted);font-weight:500}.yt-cand-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:.2rem}.yt-cand-dur{font-size:.71rem;color:var(--muted);font-weight:500}.yt-cand-id{font-size:.68rem;color:var(--dim);font-family:monospace;margin-left:auto;cursor:pointer;user-select:none;transition:color .15s}.yt-cand-id:hover{color:var(--muted)}.yt-cand-id.copied{color:var(--accent)}.yt-cand-open{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;color:var(--dim);cursor:pointer;padding:0;margin-left:.4rem;line-height:0;transition:color .15s}.yt-cand-open:hover{color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.25}}.spin-ring{display:inline-block;width:10px;height:10px;border:1.5px solid rgba(249,192,50,.25);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}.queue-dot{display:inline-block;width:7px;height:7px;background:var(--dim);border-radius:50%;animation:pulse-dot 1.4s ease-in-out infinite;vertical-align:middle}.empty{color:var(--dim);font-size:.9rem;margin-top:1rem}.loading{color:var(--dim);font-size:.9rem}.shares-table{width:100%;border-collapse:collapse;font-size:.88rem}.shares-table th{text-align:left;font-size:.68rem;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;padding:.4rem .75rem;border-bottom:1px solid var(--border)}.shares-table td{padding:.65rem .75rem;border-bottom:1px solid var(--surface);vertical-align:middle}.shares-table tr:last-child td{border-bottom:none}.shares-table tr:hover td{background:var(--surface)}.share-type-badge{display:inline-block;font-size:.68rem;font-weight:600;padding:.15rem .55rem;border-radius:20px;text-transform:capitalize}.share-type-badge.song{background:rgba(139,92,246,.15);color:#a78bfa}.share-type-badge.tape{background:var(--accent-dim);color:var(--accent)}.share-name{font-weight:600;color:var(--text)}.share-subtitle{font-size:.75rem;color:var(--dim);margin-top:.15rem}.share-expiry{font-size:.8rem;color:var(--muted);white-space:nowrap}.share-expiry.soon{color:#f97316}.share-actions{display:flex;gap:.5rem;align-items:center}.btn-copy-link{background:0 0;border:1px solid var(--border);color:var(--muted);width:28px;height:28px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s,color .15s}.btn-copy-link:hover{border-color:var(--dim);color:var(--text)}.btn-copy-link.copied{border-color:#22c55e;color:#22c55e}.share-ctx-wrap{position:relative}.share-ellipsis-btn{background:0 0;border:1px solid var(--border);color:var(--dim);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.share-ellipsis-btn:hover{border-color:var(--dim);color:var(--muted)}.share-ctx-menu{display:none;position:absolute;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:120px;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.5);overflow:hidden}.share-ctx-menu.open{display:block}.share-ctx-menu button{display:block;width:100%;text-align:left;background:0 0;border:none;color:var(--text);padding:.55rem .9rem;font-size:.82rem;cursor:pointer;transition:background .1s;font-family:inherit}.share-ctx-menu button:hover{background:var(--surface-raised)}.share-ctx-menu button.danger{color:#ef4444}.share-ctx-menu button.danger:hover{background:rgba(239,68,68,8%)}.extend-duration-opts{display:flex;flex-direction:column;gap:.6rem;padding:1.25rem}.extend-duration-opt{display:flex;align-items:center;gap:.6rem;cursor:pointer}.extend-duration-opt input[type=radio]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.extend-duration-opt span{font-size:.88rem;color:var(--text)}.shares-empty{color:var(--dim);font-size:.9rem;padding:2rem 0;text-align:center}.sample-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 1.25rem 1.25rem}.sample-action-btn{display:flex;align-items:center;gap:.35rem;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.4rem .75rem;border-radius:8px;font-size:.8rem;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s;font-family:inherit}.sample-action-btn:hover{background:var(--surface-raised);border-color:var(--dim)}.sample-action-btn svg{flex-shrink:0}.player-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);z-index:60;flex-direction:column;box-shadow:0 -4px 24px rgba(0,0,0,.5)}.player-bar.visible{display:flex}.player-bar-main{display:flex;align-items:center;gap:.75rem;padding:.55rem 1rem}.player-art{width:44px;height:44px;border-radius:5px;object-fit:cover;flex-shrink:0}.player-art-ph{width:44px;height:44px;border-radius:5px;background:var(--surface-raised);display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:1.5rem;flex-shrink:0}.player-info{flex:1;min-width:0}.player-title{font-size:.88rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-sub{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.15rem}.player-controls{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.player-btn{background:0 0;border:none;color:var(--accent);cursor:pointer;width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.player-btn:hover{background:var(--accent-dim)}.player-btn.primary{background:var(--accent);color:#111;border-radius:50%;width:36px;height:36px}.player-btn.primary svg polygon{transform:translateX(1.5px)}.player-btn.primary:hover{opacity:.88}.player-scrubber{padding:0 1rem}.player-scrubber input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;display:block}.player-time{display:flex;justify-content:space-between;padding:.15rem 0 .4rem;font-size:.68rem;color:var(--dim);font-variant-numeric:tabular-nums}#full-player{position:fixed;right:0;top:0;bottom:0;width:380px;background:var(--bg);border-left:1px solid var(--border);z-index:55;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s ease;overflow:hidden}#fp-top-section{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.4rem 1rem .6rem;width:100%;flex-shrink:0}#full-player.open{transform:translateX(0)}body.fp-open .page:not(#page-login){margin-right:380px}body.fp-open nav{padding-right:380px}body.fp-open .player-bar{display:none!important}#fp-dismiss{align-self:flex-start;background:0 0;border:none;color:var(--dim);cursor:pointer;padding:.12rem .2rem;border-radius:6px;line-height:1;transition:color .15s;flex-shrink:0}#fp-dismiss:hover{color:var(--text)}#fp-compact-strip{display:none;flex-shrink:0;align-items:center;gap:.75rem;padding:.55rem 1rem;border-bottom:1px solid var(--border)}#full-player.q-expanded #fp-compact-strip{display:flex}#full-player.q-expanded #fp-top-section{display:none}#fp-compact-art{width:38px;height:38px;border-radius:4px;object-fit:cover;flex-shrink:0}#fp-compact-art-ph{width:38px;height:38px;border-radius:4px;background:var(--surface-raised);display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:1.2rem;flex-shrink:0}#fp-compact-info{flex:1;min-width:0}#fp-compact-title{font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fp-compact-controls{display:flex;align-items:center;gap:.1rem;flex-shrink:0}.fp-compact-btn{background:0 0;border:none;color:var(--accent);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .15s}.fp-compact-btn:hover{background:var(--accent-dim)}.fp-compact-btn.primary{background:var(--accent);color:#111;border-radius:50%}.fp-compact-btn.primary:hover{opacity:.88}#fp-art{width:180px;height:180px;border-radius:12px;object-fit:cover;flex-shrink:0}#fp-art-ph{width:180px;height:180px;border-radius:12px;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--border);flex-shrink:0}#fp-title{font-size:1.05rem;font-weight:700;color:var(--text);text-align:center;width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;min-height:1.4em}#fp-album{font-size:.85rem;color:var(--muted);text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.6;min-height:1.6em}#fp-artist{font-size:.85rem;color:var(--dim);text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.6;min-height:1.6em}#fp-stars{text-align:center;min-height:1.2rem}#fp-stars .rating-toggle svg{width:20px;height:20px}.fp-scrubber{width:100%;padding:0;margin-top:.75rem}.fp-scrubber input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;display:block}.fp-time{display:flex;justify-content:space-between;font-size:.72rem;color:var(--dim);font-variant-numeric:tabular-nums;padding:.15rem 0 0}.fp-controls{display:flex;align-items:center;gap:.75rem}.fp-ctrl-btn{background:0 0;border:none;color:var(--accent);cursor:pointer;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.fp-ctrl-btn:hover{background:var(--accent-dim)}.fp-ctrl-btn.primary{background:var(--accent);color:#111;border-radius:50%;width:44px;height:44px}.fp-ctrl-btn.primary svg polygon{transform:translateX(1.5px)}.fp-ctrl-btn.primary:hover{opacity:.88}#fp-queue-scroll{border-top:1px solid var(--border);flex:1;overflow-y:auto;min-height:0;padding:0 1rem 1rem;overscroll-behavior:contain}#fp-queue-panel,#fp-history-panel{width:100%}#fp-list-hdr{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:.4rem;padding:.4rem .15rem;position:sticky;top:0;background:var(--bg);z-index:1;min-height:2.2rem}#fp-list-hdr span{font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}#fp-history-toggle{background:0 0;border:1px solid var(--border);color:var(--dim);font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.15rem .5rem;border-radius:10px;cursor:pointer;transition:border-color .15s,color .15s;font-family:inherit}#fp-history-toggle:hover{border-color:var(--muted);color:var(--muted)}#fp-history-toggle.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}#fp-queue-expand{background:0 0;border:none;color:var(--dim);cursor:pointer;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;padding:0;transition:color .15s,transform .25s}#fp-queue-expand:hover{color:var(--muted)}#full-player.q-expanded #fp-queue-expand{transform:rotate(180deg)}#fp-queue-clear{background:0 0;border:none;color:#ef4444;font-size:.72rem;cursor:pointer;padding:.1rem .3rem;border-radius:4px;transition:color .15s,background .15s;font-family:inherit}#fp-queue-clear:hover{color:#f87171;background:rgba(239,68,68,8%)}.fp-queue-row{display:flex;align-items:center;gap:.5rem;padding:.55rem .1rem;border-bottom:1px solid var(--surface)}.fp-queue-row:last-child{border-bottom:none}.fp-queue-row.np{padding-right:.25rem;background:var(--accent-dim)}.fp-q-handle{color:var(--dim);cursor:grab;font-size:.9rem;flex-shrink:0;user-select:none;line-height:1;padding:0 2px;transition:color .15s}.fp-q-handle:hover{color:var(--muted)}.fp-q-info{flex:1;min-width:0;cursor:pointer}.fp-q-info:hover .fp-q-title{color:var(--accent)}.fp-q-title{font-size:.82rem;font-weight:600;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.fp-q-album{font-size:.7rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.2rem}.fp-q-artist{font-size:.68rem;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}.fp-q-duration{font-size:.7rem;color:var(--dim);flex-shrink:0;padding:0 .4rem;font-variant-numeric:tabular-nums}.fp-queue-row--drag-over{border-top:2px solid var(--accent)}.fp-queue-empty{font-size:.78rem;color:var(--dim);padding:.5rem .15rem}.fp-queue-row.np .fp-q-title{color:var(--accent)}@media(max-width:768px){#full-player{width:100%;top:0;left:0;right:0;bottom:0;border-left:none;z-index:70;transform:translateY(100%);justify-content:flex-start}#fp-dismiss{padding:1rem 1rem .25rem}#fp-top-section{padding:.5rem 2rem .75rem}#fp-compact-strip{padding:.55rem 1.5rem}#fp-queue-scroll{padding:0 1.5rem 1.5rem}#full-player.open{transform:translateY(0)}body.fp-open .page{margin-right:0}body.fp-open .player-bar{display:flex!important}#fp-art,#fp-art-ph{width:min(220px,60vw);height:min(220px,60vw)}}.play-icon-btn{background:0 0;border:none;color:var(--accent);cursor:pointer;padding:0;width:18px;font-size:.82rem;flex-shrink:0;opacity:0;transition:opacity .1s;line-height:1}.play-icon-btn[disabled]{visibility:hidden;pointer-events:none}.song-row:hover .play-icon-btn:not([disabled]),.song-page-row:hover .play-icon-btn:not([disabled]){opacity:1}.tape-song-info.playable{cursor:pointer}.tape-song-info.playable:hover .tape-song-title{color:var(--accent)}.np-playing .play-icon-btn:not([disabled]){opacity:1}.song-play-indicator{background:0 0;border:none;color:var(--accent);cursor:pointer;padding:0;width:18px;font-size:.78rem;flex-shrink:0;line-height:1}.song-pi-wrap{width:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.song-play-indicator.empty{visibility:hidden;pointer-events:none}.song-tape-wrap{width:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.song-tape-btn{background:0 0;border:none;color:var(--dim);cursor:pointer;padding:0;line-height:1;opacity:0;transition:opacity .1s,color .1s}.song-tape-btn svg{display:block}.song-row:hover .song-tape-btn{opacity:1}.song-tape-btn:hover{color:var(--accent)}.att-tape-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .75rem;border-radius:6px;cursor:pointer;transition:background .1s}.att-tape-row:hover{background:var(--surface-raised)}.att-tape-row.selected{background:var(--accent-dim)}.att-tape-radio{width:15px;height:15px;accent-color:var(--accent);flex-shrink:0;cursor:pointer}.att-tape-name{font-size:.88rem;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-new-input{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.45rem .65rem;border-radius:6px;font-size:.85rem;outline:none;margin-top:.4rem;transition:border-color .15s;font-family:inherit}.att-new-input:focus{border-color:var(--accent)}.selection-bar{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;margin-bottom:.5rem;border-bottom:1px solid var(--border);flex-wrap:wrap}.sel-count{font-size:.82rem;color:var(--muted)}.song-checkbox{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.song-row.selected,.song-page-row.selected{background:var(--accent-dim);border-radius:4px}.song-row--playing,.tape-song-row--playing{background:var(--accent-dim);position:relative}.song-row--playing::before,.tape-song-row--playing::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);z-index:1}.song-row.selectable{cursor:pointer}.song-row.selectable:hover{background:var(--surface)}@media(max-width:600px){.nav-row-top{padding:0 .75rem;height:44px}.logo{font-size:.75rem}.nav-links{padding:6px .75rem .35rem;gap:0}.nav-links-scroll{gap:0}.nav-link{padding:.3rem .45rem;font-size:.72rem}.profile-btn{padding:.35rem .6rem;font-size:.75rem;gap:.25rem}.profile-btn svg{display:none}.profile-dropdown{right:0;width:240px}.page{padding:1rem}.artist-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.tape-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.artist-card{padding:1.1rem .6rem 1.4rem;gap:.45rem}.artist-card-overlay{left:-.6rem;right:-.6rem}.artist-card .thumb,.artist-card .thumb-placeholder{width:84px;height:84px}.artist-card .thumb-placeholder{font-size:1.7rem}.artist-card h3{font-size:.85rem}.album-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.album-card .card-info{padding:.4rem .5rem .45rem}.album-card .card-title{font-size:.75rem}.album-card .card-year{font-size:.65rem}.count-badge{font-size:.65rem}.album-detail-header{grid-template-columns:110px 1fr;grid-template-areas:"art info";column-gap:.75rem;row-gap:.85rem;margin-bottom:1.25rem}.album-detail-art{width:110px;height:110px}.album-detail-art .art-placeholder{font-size:2.5rem}.album-detail-info h1{font-size:1.15rem}.album-artist-link{font-size:.85rem;margin-bottom:.25rem}.album-detail-meta{font-size:.75rem}.tape-detail-header{grid-template-columns:110px 1fr;column-gap:.75rem;margin-bottom:1.25rem}.tape-detail-art{width:110px;height:110px}.tape-detail-art .art-placeholder{font-size:2.5rem}.tape-detail-info h1{font-size:1.15rem}.song-page-row .song-album,.song-page-row .song-artist{display:none}}.home-section{margin-bottom:2.5rem}.home-section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}.home-section-hdr h2{font-size:.92rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.home-section-hdr a{font-size:.78rem;color:var(--dim);cursor:pointer;transition:color .15s}.home-section-hdr a:hover{color:var(--accent)}.carousel{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.75rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border)transparent}.carousel::-webkit-scrollbar{height:4px}.carousel::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.carousel-card{flex-shrink:0;width:136px;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .15s;scroll-snap-align:start;user-select:none}.carousel-card:hover{border-color:var(--accent)}.carousel-card .art-wrap{position:relative;width:100%;aspect-ratio:1;background:var(--bg);overflow:hidden}.carousel-card .art-hover-tint,.tape-card-art .art-hover-tint{position:absolute;inset:0;background:rgba(0,0,0,.42);opacity:0;transition:opacity .18s;pointer-events:none}.carousel-card:hover .art-hover-tint,.tape-card:hover .art-hover-tint{opacity:1}.carousel-card .art-action-btn,.tape-card-art .art-action-btn{position:absolute;bottom:.35rem;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--accent);background:rgba(0,0,0,.45);color:var(--accent);font-size:.6rem;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;opacity:0;transition:opacity .18s}.carousel-card:hover .art-action-btn,.tape-card:hover .art-action-btn{opacity:1}.carousel-card .art-play-btn,.tape-card-art .art-play-btn{left:.35rem;padding-left:2px}.tape-card-art .art-play-btn{padding-left:0}.carousel-card .art-queue-btn,.tape-card-art .art-queue-btn{right:.35rem}.carousel-card .art-wrap img{width:100%;height:100%;object-fit:cover;display:block}.carousel-card .art-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--border)}.carousel-card .card-info{padding:.5rem .55rem}.carousel-card .card-title{font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);margin-bottom:.15rem}.carousel-card .card-sub{font-size:.7rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.carousel-card .card-link:hover{text-decoration:underline;cursor:pointer}.carousel-empty{font-size:.82rem;color:var(--dim);padding:.5rem 0}.home-discover-card{flex-shrink:0;width:148px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem .85rem 1.4rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.55rem;cursor:pointer;scroll-snap-align:start;user-select:none;transition:border-color .15s}.home-discover-card:hover{border-color:var(--accent)}.home-discover-card .thumb,.home-discover-card .thumb-placeholder{width:88px;height:88px;border-radius:50%;object-fit:cover;background:var(--surface-raised);flex-shrink:0}.home-discover-card .thumb-placeholder{display:flex;align-items:center;justify-content:center;font-size:1.7rem;color:var(--border)}.home-discover-card .card-title{font-size:.78rem;font-weight:500;color:var(--text);line-height:1.3;width:100%;word-wrap:break-word}.home-discover-card .card-sub{font-size:.68rem;color:var(--muted);line-height:1.3;width:100%;word-wrap:break-word}.gen-tape-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.65rem}.gen-tape-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;display:flex;align-items:flex-start;gap:.85rem;padding:.85rem 1rem;user-select:none;transition:border-color .15s,background .15s}.gen-tape-card:hover{border-color:var(--accent);background:var(--accent-dim)}.gen-tape-card:active{opacity:.75}.gen-tape-icon{font-size:1.6rem;width:42px;height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bg);border-radius:8px}.gen-tape-info{min-width:0}.gen-tape-title{font-size:.88rem;font-weight:600;color:var(--text);margin-bottom:.2rem}.gen-tape-desc{font-size:.76rem;color:var(--muted);line-height:1.4}.artist-picker-list{max-height:320px;overflow-y:auto}.artist-picker-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;cursor:pointer;border-radius:6px;transition:background .1s}.artist-picker-row:hover{background:var(--surface-raised)}.artist-picker-name{font-size:.88rem;color:var(--text)}.artist-picker-genre{font-size:.75rem;color:var(--dim)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}