@font-face{font-family:Satoshi;src:url(/assets/Satoshi-Variable-CFg-z2ne.woff2)format("woff2"),url(/assets/Satoshi-Variable-B5cVmYQo.woff)format("woff");font-weight:300 900;font-display:swap;font-style:normal}@font-face{font-family:Satoshi;src:url(/assets/Satoshi-VariableItalic-DjwFspxr.woff2)format("woff2"),url(/assets/Satoshi-VariableItalic-DeirzIcA.woff)format("woff");font-weight:300 900;font-display:swap;font-style:italic}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e4e4e7;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#09090b;--bg-raised:#18181b;--bg-hover:#1f1f23;--border:#27272a;--border-light:#3f3f46;--text:#e4e4e7;--text-secondary:#a1a1aa;--text-tertiary:#71717a;--accent:#00baff;--accent-hover:#009ad6;--accent-soft:#00baff26;--secondary:#ff2300;--secondary-hover:#d91e00;--secondary-soft:#ff23001f;--green:#4ade80;--green-bg:#052e16;--red:#f87171;--red-bg:#450a0a;--player-height:80px;--sidebar-width:240px;background-color:#09090b;font-family:Satoshi,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}.loading-screen{min-height:100vh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--secondary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading{color:var(--text-secondary);text-align:center;padding:3rem 2rem}.empty-state{color:var(--text-tertiary);text-align:center;padding:4rem 1rem}.empty-state p{margin-bottom:.5rem}.empty-icon{margin-bottom:1rem}.error-page{color:var(--red);padding:2rem}.app-layout{min-height:100vh;display:flex}.app-layout.has-player{padding-bottom:var(--player-height)}.sidebar{width:var(--sidebar-width);background:var(--bg-raised);border-right:1px solid var(--border);z-index:10;flex-direction:column;flex-shrink:0;padding:1.25rem .75rem;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.app-layout.has-player .sidebar{bottom:var(--player-height)}.sidebar-brand{color:var(--text);align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.25rem .75rem;font-size:1.1rem;font-weight:700;display:flex}.brand-icon{filter:brightness(0)saturate()invert(55%)sepia(92%)saturate(1500%)hue-rotate(170deg)brightness(104%)contrast(104%);flex-shrink:0;width:28px;height:28px}.sidebar-section{margin-bottom:1.5rem}.sidebar-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem;padding:0 .75rem;font-size:.7rem;font-weight:600}.sidebar-nav{list-style:none}.sidebar-nav li{margin-bottom:2px}.sidebar-nav a{color:var(--text-secondary);border-radius:6px;align-items:center;gap:.6rem;padding:.45rem .75rem;font-size:.875rem;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-nav a:hover{background:var(--bg-hover);color:var(--text)}.sidebar-nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:500}.sidebar-footer{margin-top:auto;padding-top:1rem}.sign-out{border:1px solid var(--border);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8rem;transition:background .15s,color .15s;display:flex}.sign-out:hover{background:var(--bg-hover);color:var(--text)}.dev-badge{color:#fb923c;text-align:center;letter-spacing:.05em;text-transform:uppercase;background:#422006;border:1px solid #9a3412;border-radius:6px;padding:.4rem .5rem;font-size:.75rem;font-weight:600}.content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;padding:2rem 2.5rem;overflow-y:auto}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;width:100%;max-width:380px;padding:2.5rem}.login-card h1{margin-bottom:.25rem;font-size:1.5rem}.login-card p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem}.auth-tabs{border:1px solid var(--border);border-radius:8px;gap:0;margin-bottom:1.25rem;display:flex;overflow:hidden}.auth-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.auth-tab+.auth-tab{border-left:1px solid var(--border)}.auth-tab:hover{background:var(--bg-hover);color:var(--text)}.auth-tab.active{background:var(--accent-soft);color:var(--accent)}.auth-switch-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;margin-top:1rem;padding:.6rem;font-size:.875rem;font-weight:500;transition:background .15s;display:block}.auth-switch-btn:hover{background:var(--accent-hover)}.login-card form{flex-direction:column;gap:.75rem;display:flex}input[type=email],input[type=password],input[type=text]{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;padding:.6rem .75rem;font-size:.875rem;transition:border-color .15s}input:focus{border-color:var(--accent)}button[type=submit]{background:var(--secondary);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:.5rem;padding:.6rem;font-size:.875rem;font-weight:500;transition:background .15s}button[type=submit]:hover{background:var(--secondary-hover)}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--red);font-size:.8rem}h2{letter-spacing:-.02em;margin-bottom:1.5rem;font-size:1.75rem;font-weight:700}h3{color:var(--text-secondary);margin-top:2rem;margin-bottom:.75rem;font-size:1rem;font-weight:600}.library-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.library-header h2{margin-bottom:0}.search-bar{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-secondary);border-radius:8px;align-items:center;gap:.5rem;width:280px;padding:.5rem .75rem;transition:border-color .15s;display:flex}.search-bar:focus-within{border-color:var(--accent)}.search-bar input{color:var(--text);background:0 0;border:none;outline:none;width:100%;padding:0;font-size:.85rem}.search-bar input::placeholder{color:var(--text-tertiary)}.tab-bar{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1.5rem;display:flex}.tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1rem;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.sort-bar{margin-bottom:1.25rem}.sort-bar select{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;outline:none;padding:.4rem .75rem;font-size:.8rem}.sort-bar select:focus{border-color:var(--accent)}.list-toolbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.list-count{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:.75rem}.list-loading-more{padding:1rem 0 2rem;font-size:.8rem}.list-more{justify-content:center;padding:1rem 0;display:flex}.selection-bar{z-index:5;border:1px solid var(--border-light);background:var(--bg-raised);border-radius:10px;align-items:center;gap:.75rem;margin-top:1rem;padding:.6rem .9rem;font-size:.85rem;display:flex;position:sticky;bottom:.75rem;box-shadow:0 8px 30px #00000073}.selection-count strong{color:var(--accent)}.selection-spacer{flex:1}.btn-link{color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.btn-danger{background:var(--danger,#dc2626);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.select-check{border:1.5px solid var(--border-light);background:var(--bg);color:#fff;cursor:pointer;opacity:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:opacity .15s,background .15s,border-color .15s;display:inline-flex}.select-check.checked{opacity:1;background:var(--accent);border-color:var(--accent)}.song-row:hover .select-check,.album-card:hover .select-check,.select-check:focus-visible,.selecting .select-check{opacity:1}.song-list-header .select-check{visibility:hidden}.song-row.selected{background:var(--accent-soft)}.album-card.selected{background:var(--bg-raised);outline:1px solid var(--accent)}.modal-confirm{max-width:440px}.confirm-body{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.confirm-body ul{max-height:180px;margin:.5rem 0 0;padding-left:1.2rem;overflow-y:auto}.bulk-field{border:1px solid #0000;border-radius:6px;flex-direction:column;gap:.3rem;padding:.5rem .6rem;display:flex}.bulk-field.active{border-color:var(--accent);background:var(--accent-soft)}.bulk-field-label{font-size:.8rem;font-weight:600}.bulk-field-label small{color:var(--text-tertiary);font-weight:400}.bulk-field-input{align-items:center;gap:.4rem;display:flex}.bulk-field-input input{flex:1}.bulk-field-reset{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;width:28px;height:28px}.bulk-field-note{color:var(--warning,#f59e0b);font-size:.75rem}.bulk-toasts{right:1rem;bottom:calc(var(--player-height,90px) + 1rem);z-index:60;flex-direction:column;gap:.5rem;width:min(360px,100vw - 2rem);display:flex;position:fixed}.bulk-toast{background:var(--bg-raised);border:1px solid var(--border-light);border-radius:10px;padding:.6rem .8rem;font-size:.8rem;box-shadow:0 8px 30px #00000073}.bulk-toast-row{align-items:center;gap:.5rem;display:flex}.bulk-toast-title{flex:1;font-weight:600}.bulk-toast-count{color:var(--text-secondary);font-variant-numeric:tabular-nums}.bulk-toast-bar{background:var(--bg-hover);border-radius:2px;height:4px;margin-top:.4rem;overflow:hidden}.bulk-toast-bar span{background:var(--accent);height:100%;transition:width .3s;display:block}.bulk-toast.complete .bulk-toast-bar span{background:var(--success,#22c55e)}.artist-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.25rem;display:grid}.artist-card{text-align:center;color:var(--text);border-radius:10px;flex-direction:column;align-items:center;padding:1rem .5rem;text-decoration:none;transition:background .2s;display:flex}.artist-card:hover{background:var(--bg-raised)}.artist-avatar{background:var(--bg-hover);border-radius:50%;flex-shrink:0;width:120px;height:120px;margin-bottom:.75rem;overflow:hidden}.artist-avatar img{object-fit:cover;width:100%;height:100%}.avatar-placeholder{width:100%;height:100%;color:var(--text-tertiary);background:var(--bg-hover);justify-content:center;align-items:center;display:flex}.avatar-placeholder.large{border-radius:50%;width:180px;height:180px}.album-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1.25rem;display:grid}.album-card{color:var(--text);border-radius:8px;flex-direction:column;padding:.75rem;text-decoration:none;transition:background .2s;display:flex}.album-card:hover{background:var(--bg-raised)}.album-cover{aspect-ratio:1;background:var(--bg-hover);border-radius:6px;width:100%;margin-bottom:.6rem;position:relative;overflow:hidden}.album-cover img{object-fit:cover;width:100%;height:100%;display:block}.cover-placeholder{width:100%;height:100%;color:var(--text-tertiary);background:var(--bg-hover);justify-content:center;align-items:center;display:flex}.cover-placeholder.large{border-radius:8px;width:240px;height:240px}.album-play-overlay{background:var(--accent);color:#fff;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:8px;right:8px;transform:translateY(4px);box-shadow:0 4px 12px #ff23004d}.album-card:hover .album-play-overlay{opacity:1;transform:translateY(0)}.card-title{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;display:block;overflow:hidden}.card-subtitle{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem;font-size:.75rem;display:block;overflow:hidden}.song-list{flex-direction:column;display:flex}.song-list-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);align-items:center;gap:.75rem;margin-bottom:.25rem;padding:0 .75rem .5rem;font-size:.7rem;display:flex}.song-list-header .song-num{text-align:center;width:32px}.song-list-header .song-info{flex:1}.song-list-header .song-duration{justify-content:flex-end;width:50px;display:flex}.song-row{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.75rem;width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;transition:background .15s;display:flex}.song-row:hover{background:var(--bg-hover)}.song-row.active{background:var(--accent-soft)}.song-row.active .song-title{color:var(--accent)}.song-num{text-align:center;width:32px;color:var(--text-tertiary);flex-shrink:0;font-size:.8rem}.song-cover-small{background:var(--bg-hover);border-radius:4px;flex-shrink:0;width:36px;height:36px;overflow:hidden}.song-cover-small img{object-fit:cover;width:100%;height:100%}.cover-placeholder-sm{background:var(--bg-hover);width:100%;height:100%}.song-info{flex-direction:column;flex:1;min-width:0;display:flex}.song-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.song-meta{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.song-duration{color:var(--text-tertiary);text-align:right;flex-shrink:0;width:50px;font-size:.8rem}.playing-indicator{align-items:flex-end;gap:2px;height:14px;display:inline-flex}.playing-indicator span{background:var(--accent);border-radius:1px;width:3px;animation:.8s ease-in-out infinite eq-bar;display:block}.playing-indicator span:first-child{height:6px;animation-delay:0s}.playing-indicator span:nth-child(2){height:10px;animation-delay:.2s}.playing-indicator span:nth-child(3){height:4px;animation-delay:.4s}@keyframes eq-bar{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}.disc-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);align-items:center;gap:.5rem;margin-top:.75rem;padding:.6rem .75rem .4rem;font-size:.75rem;font-weight:600;display:flex}.disc-header:first-child{margin-top:0}.detail-page{max-width:900px}.back-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;margin-bottom:1.5rem;padding:0;font-family:inherit;font-size:.85rem;text-decoration:none;transition:color .15s;display:inline-flex}.back-link:hover{color:var(--text)}.artist-hero{align-items:flex-end;gap:2rem;margin-bottom:2rem;display:flex}.artist-hero-avatar{background:var(--bg-hover);border-radius:50%;flex-shrink:0;width:180px;height:180px;overflow:hidden;box-shadow:0 8px 32px #0000004d}.artist-hero-avatar img{object-fit:cover;width:100%;height:100%}.album-hero{align-items:flex-end;gap:2rem;margin-bottom:2.5rem;display:flex}.album-hero-cover{background:var(--bg-hover);border-radius:8px;flex-shrink:0;width:240px;height:240px;overflow:hidden;box-shadow:0 8px 32px #0006}.album-hero-cover img{object-fit:cover;width:100%;height:100%}.album-hero-info,.artist-hero-info{flex-direction:column;gap:.25rem;min-width:0;display:flex}.detail-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-size:.75rem;font-weight:600}.album-hero-info h1,.artist-hero-info h1{letter-spacing:-.03em;font-size:2rem;font-weight:800;line-height:1.2}.detail-meta{color:var(--text-secondary);margin-top:.25rem;font-size:.875rem}.detail-comment{color:var(--text-tertiary);margin-top:.25rem;font-size:.85rem;font-style:italic}.meta-link{color:var(--text-secondary);font-weight:500;text-decoration:none}.meta-link:hover{color:var(--text);text-decoration:underline}.album-actions{gap:.75rem;margin-top:1rem;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:99px;align-items:center;gap:.4rem;padding:.6rem 1.5rem;font-size:.875rem;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.btn-primary:hover{background:var(--secondary-hover);transform:scale(1.03)}.btn-primary:active{transform:scale(.98)}.btn-secondary{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:99px;align-items:center;gap:.4rem;padding:.6rem 1.25rem;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-light)}.search-results section{margin-bottom:2rem}.search-results section:first-child h3{margin-top:0}.player-bar{height:var(--player-height);border-top:1px solid var(--border);z-index:100;background:#111113;align-items:center;gap:1rem;padding:0 1.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.player-song{flex-shrink:0;align-items:center;gap:.75rem;width:240px;display:flex}.player-cover{background:var(--bg-hover);border-radius:6px;flex-shrink:0;width:48px;height:48px;overflow:hidden}.player-cover img{object-fit:cover;width:100%;height:100%}.player-cover-placeholder{width:100%;height:100%;color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}.player-song-info{flex-direction:column;min-width:0;display:flex}.player-song-title{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:500;overflow:hidden}.player-song-artist{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.player-controls{flex-direction:column;flex:1;align-items:center;gap:.35rem;max-width:600px;margin:0 auto;display:flex}.player-buttons{align-items:center;gap:.5rem;display:flex}.player-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.35rem;transition:color .15s,background .15s;display:flex}.player-btn:hover{color:var(--text)}.player-btn.play{color:#000;background:#fff;width:36px;height:36px}.player-btn.play:hover{transform:scale(1.06)}.player-btn.small{padding:.3rem}.player-btn.active{color:var(--accent)}.player-progress{align-items:center;gap:.5rem;width:100%;display:flex}.player-time{color:var(--text-tertiary);font-variant-numeric:tabular-nums;width:40px;font-size:.7rem}.player-time:last-child{text-align:right}.progress-bar{background:var(--border);cursor:pointer;border-radius:2px;flex:1;height:4px;position:relative}.progress-bar:hover{height:6px}.progress-fill{background:#fff;border-radius:2px;height:100%;transition:background .15s}.progress-bar:hover .progress-fill{background:var(--accent)}.progress-thumb{opacity:0;background:#fff;border-radius:50%;width:12px;height:12px;transition:opacity .15s;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-bar:hover .progress-thumb{opacity:1}.player-volume{flex-shrink:0;justify-content:flex-end;align-items:center;gap:.4rem;width:160px;display:flex}.volume-bar{background:var(--border);cursor:pointer;border-radius:2px;width:90px;height:4px;position:relative}.volume-fill{background:#fff;border-radius:2px;height:100%}.volume-bar:hover .volume-fill{background:var(--accent)}.volume-thumb{opacity:0;background:#fff;border-radius:50%;width:10px;height:10px;transition:opacity .15s;position:absolute;top:50%;transform:translate(-50%,-50%)}.volume-bar:hover .volume-thumb{opacity:1}.purchases-table{border-collapse:collapse;width:100%}.purchases-table th{text-align:left;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding:.5rem .75rem;font-size:.75rem}.purchases-table td{border-bottom:1px solid var(--border);padding:.75rem;font-size:.875rem}.purchases-table tr:hover td{background:var(--bg-raised)}.status{border-radius:9999px;padding:.15rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.status-complete,.status-ok{background:var(--green-bg);color:var(--green)}.status-downloading,.status-scanning{color:#60a5fa;background:#172554}.status-queued{color:#a8a29e;background:#1c1917}.status-failed,.status-unreachable{background:var(--red-bg);color:var(--red)}.settings-section{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;padding:1.25rem}.setting-row{justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.setting-row+.setting-row{border-top:1px solid var(--border)}.setting-label{color:var(--text-secondary);font-size:.875rem}.setting-help{color:var(--text-secondary);margin:0 0 1rem;font-size:.85rem;line-height:1.45}.marketplace-embed{flex-direction:column;gap:1rem;height:100%;min-height:0;display:flex}.marketplace-embed-header{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.marketplace-embed-title{flex-direction:column;gap:.2rem;display:flex}.marketplace-embed-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:700}.marketplace-embed-title h1{letter-spacing:-.01em;margin:0;font-size:1.75rem;font-weight:700}.marketplace-embed-frame{border:1px solid var(--border);background:radial-gradient(1200px 320px at 10% -10%, var(--accent-soft), transparent 60%), var(--bg-raised);border-radius:14px;flex:1;min-height:480px;position:relative;overflow:hidden;box-shadow:0 24px 60px -30px #0009}.marketplace-embed-iframe{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;opacity:1;background:0 0;border:0;width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0}.marketplace-embed-iframe.is-loading{opacity:0}.marketplace-embed-loader,.marketplace-embed-error{color:var(--text-secondary);text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:2rem;display:flex;position:absolute;inset:0}.marketplace-embed-error{pointer-events:auto;color:var(--red)}.marketplace-embed-error strong{color:var(--text);font-size:1rem}.marketplace-embed-hint{color:var(--text-tertiary);font-size:.8rem}.marketplace-embed-hint code{background:var(--bg-hover);color:var(--text-secondary);border-radius:4px;padding:.1rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.purchases-list{flex-direction:column;gap:1.25rem;display:flex}.purchase-card{background:var(--bg-elevated,#ffffff08);border:1px solid var(--border);border-radius:8px;overflow:hidden}.purchase-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:.9rem 1rem;display:flex}.purchase-card-title{min-width:0}.purchase-headline{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.purchase-date{color:var(--text-tertiary);margin-top:.2rem;font-size:.75rem}.purchase-facts{border-bottom:1px solid var(--border);background:#ffffff04;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem 1.5rem;margin:0;padding:.7rem 1rem;display:grid}.purchase-facts>div{min-width:0}.purchase-facts .purchase-fact-wide{grid-column:1/-1}.purchase-facts dt{letter-spacing:.02em;text-transform:uppercase;color:var(--text-tertiary);font-size:.7rem;font-weight:600}.purchase-facts dd{color:var(--text-secondary);overflow-wrap:anywhere;margin:.1rem 0 0;font-size:.85rem}.purchase-facts .purchase-ref{color:var(--text-secondary);background:var(--bg-hover);-webkit-user-select:all;user-select:all;border-radius:4px;padding:.1rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.purchase-card-meta{align-items:center;gap:.75rem;display:flex}.purchase-total{font-size:.95rem;font-weight:700}.purchase-kind{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600;display:inline-block}.delivery-badge{letter-spacing:.02em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;padding:.25rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.delivery-badge.delivery-success{color:#4caf50;background:#2e7d321f;border-color:#4caf504d}.delivery-badge.delivery-failed{color:#ef5350;background:#c628281f;border-color:#ef53504d}.delivery-badge.delivery-progress{color:#64b5f6;background:#1976d21f;border-color:#64b5f64d}.purchase-item-actions{text-align:right;white-space:nowrap}.purchase-item-note{color:var(--text-tertiary);font-size:.75rem;font-style:italic}.purchase-card-error{color:#ef5350;border-top:1px solid var(--border);background:#c6282814;padding:.6rem 1rem;font-size:.8rem}.purchase-items{flex-direction:column;display:flex}.purchase-item{border-top:1px solid var(--border)}.purchase-item:first-child{border-top:none}.purchase-item-main{align-items:center;gap:.85rem;padding:.75rem 1rem;display:flex}.purchase-item-body{flex-direction:column;flex:1;min-width:0;display:flex}.purchase-item-title{color:var(--text-primary);font-size:.95rem;font-weight:600}.purchase-item-subtitle{color:var(--text-secondary);font-size:.8rem}.purchase-item-price{color:var(--text-secondary);white-space:nowrap;font-size:.85rem}.purchase-item-tracks{border-top:1px dashed var(--border);margin:0;padding:0 0 .75rem;list-style:none}.purchase-item-track-row{grid-template-columns:2.5rem 1fr 3.5rem auto;align-items:center;gap:.75rem;padding:.4rem 1rem .4rem 2.5rem;font-size:.85rem;display:grid}.purchase-item-track-num{color:var(--text-tertiary);text-align:right;font-variant-numeric:tabular-nums}.purchase-item-track-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.purchase-item-track-format{color:var(--text-tertiary);text-transform:uppercase;font-size:.7rem}.btn-sm{gap:.3rem;padding:.3rem .75rem;font-size:.75rem}.purchase-ref{color:var(--text-tertiary);font-family:monospace;font-size:.8rem}.marketplace-toast{border-radius:8px;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.85rem;line-height:1.5;position:relative}.toast-success{background:var(--green-bg);color:var(--green);border:1px solid #166534}.toast-warning{color:#fb923c;background:#422006;border:1px solid #9a3412}.toast-sub{opacity:.7;font-size:.75rem}.toast-close{color:inherit;opacity:.5;cursor:pointer;background:0 0;border:none;padding:.25rem;display:flex;position:absolute;top:.5rem;right:.5rem}.toast-close:hover{opacity:1}.spinner-sm{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.status-pending{color:#fb923c;background:#422006}.status-delivering{color:#60a5fa;background:#172554}.status-delivered{background:var(--green-bg);color:var(--green)}.onboarding-page{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.onboarding-card{background:var(--bg-raised);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:440px;padding:2.5rem}.onboarding-brand{color:var(--text);justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:1.1rem;font-weight:700;display:flex}.onboarding-brand .brand-icon{filter:brightness(0)saturate()invert(55%)sepia(92%)saturate(1500%)hue-rotate(170deg)brightness(104%)contrast(104%);width:28px;height:28px}.onboarding-progress{justify-content:center;gap:.5rem;margin-bottom:2rem;display:flex}.progress-dot{background:var(--border);border-radius:50%;width:8px;height:8px;transition:background .2s,transform .2s}.progress-dot.done{background:var(--accent)}.progress-dot.active{background:var(--accent);transform:scale(1.3)}.onboarding-card h2{letter-spacing:-.02em;margin-bottom:.5rem;font-size:1.4rem;font-weight:700}.onboarding-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem;line-height:1.5}.onboarding-form{text-align:left;flex-direction:column;gap:1rem;display:flex}.onboarding-label{color:var(--text-secondary);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500;display:flex}.onboarding-label .optional{color:var(--text-tertiary);font-weight:400}.onboarding-actions{justify-content:center;gap:.75rem;margin-top:.5rem;display:flex}.onboarding-spinner{justify-content:center;padding:2rem 0;display:flex}.onboarding-success-icon{margin-bottom:1rem}.onboarding-review{text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.6rem;margin:0 0 1.25rem;padding:.9rem 1rem;display:flex}.onboarding-review>div{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.onboarding-review dt{color:var(--text-tertiary);flex-shrink:0;font-size:.8rem}.onboarding-review dd{color:var(--text);overflow-wrap:anywhere;text-align:right;margin:0;font-size:.85rem;font-weight:500}.onboarding-notice{text-align:left;color:var(--text-secondary);background:#f59e0b14;border:1px solid #f59e0b4d;border-radius:8px;margin:0 0 1.25rem;padding:.7rem .85rem;font-size:.82rem;line-height:1.5}.onboarding-consent{text-align:left;color:var(--text-secondary);margin:0 0 1.25rem;padding-left:1.1rem;font-size:.85rem;line-height:1.55}.onboarding-consent li+li{margin-top:.35rem}.onboarding-field{text-align:left;flex-direction:column;gap:.35rem;margin-bottom:1.25rem;display:flex}.onboarding-field label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.onboarding-field input{letter-spacing:.04em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.onboarding-hint{color:var(--text-tertiary);margin:0;font-size:.78rem;line-height:1.5}.onboarding-hint code{overflow-wrap:anywhere;font-size:.95em}.btn-delete-sm{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.btn-delete-sm:hover{color:var(--red);background:var(--red-bg)}.btn-delete-sm:disabled{opacity:.5;cursor:not-allowed}.btn-edit-sm{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.btn-edit-sm:hover{color:var(--accent);background:var(--accent-soft)}.btn-delete{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:99px;align-items:center;gap:.4rem;padding:.6rem 1.25rem;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-delete:hover{color:var(--red);background:var(--red-bg);border-color:#f871714d}.btn-delete:disabled{opacity:.6;cursor:not-allowed}.card-title-row{justify-content:space-between;align-items:center;gap:.25rem;display:flex}.card-title-row .card-title{flex:1;min-width:0}.song-actions-header{flex-shrink:0;width:28px}@media (width<=768px){.sidebar{width:64px;padding:1rem .5rem}.sidebar-brand{justify-content:center;padding:.25rem;font-size:0}.sidebar-brand .brand-icon{margin:0}.sidebar-label{display:none}.sidebar-nav a{justify-content:center;padding:.6rem}.sidebar-nav a svg+*{display:none}.sign-out{justify-content:center;padding:.6rem;font-size:0}.sign-out svg+*{display:none}.content{margin-left:64px;padding:1.5rem 1rem}:root{--sidebar-width:64px}.library-header{flex-direction:column;align-items:flex-start}.search-bar{width:100%}.album-hero,.artist-hero{flex-direction:column;align-items:flex-start;gap:1.25rem}.album-hero-cover{width:180px;height:180px}.artist-hero-avatar{width:120px;height:120px}.album-hero-info h1,.artist-hero-info h1{font-size:1.5rem}.player-song{flex:0;width:auto}.player-song-info,.player-volume{display:none}}.toast-info{color:#cbd5e1;background:#1e293b;border:1px solid #334155}.import-page{flex-direction:column;gap:1rem;padding-bottom:1rem;display:flex}.import-dropzone{min-height:clamp(280px,38vh,420px);color:var(--text-secondary);background:radial-gradient(80% 60% at 15% 25%,#00baff1a,#0000 70%),radial-gradient(70% 60% at 85% 80%,#ff230014,#0000 70%),linear-gradient(#15151a 0%,#0d0d10 100%);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:4.5rem 1.5rem;transition:transform .18s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a,0 1px #0006,0 20px 40px -20px #00000080}.import-dropzone:before{content:"";pointer-events:none;opacity:.5;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.import-dropzone.drag-over{color:var(--text);transform:translateY(-1px);box-shadow:inset 0 0 0 1px #00baff80,0 0 0 4px #00baff14,0 24px 60px -24px #00baff40}.import-dropzone.drag-over:after{content:"";pointer-events:none;background:radial-gradient(60% 50%,#00baff1f,#0000 70%);position:absolute;inset:0}.import-dropzone-icon{width:88px;height:88px;color:var(--accent);background:radial-gradient(circle at 50% 35%,#00baff26,#00baff05);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.5rem;transition:transform .25s;display:flex;box-shadow:inset 0 0 0 1px #00baff33,0 0 32px -8px #00baff40}.import-dropzone.drag-over .import-dropzone-icon{transform:scale(1.06)}.import-dropzone-title{letter-spacing:-.01em;color:var(--text);text-align:center;margin:0;font-size:1.4rem;font-weight:600}.import-dropzone-sub{color:var(--text-tertiary);text-align:center;letter-spacing:.02em;margin:0;font-size:.82rem}.import-picker-buttons{gap:.6rem;margin-top:.75rem;display:flex}.import-dropzone.compact{background:linear-gradient(180deg, #ffffff05, #fff0 80%), var(--bg-raised);min-height:0;box-shadow:inset 0 0 0 1px var(--border);border-radius:10px;padding:.65rem 1rem}.import-dropzone.compact:before{display:none}.import-dropzone.compact.drag-over{box-shadow:inset 0 0 0 1px var(--accent), 0 0 0 4px #00baff0f}.import-dropzone-compact{color:var(--text-secondary);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;width:100%;font-size:.85rem;display:flex}.import-dropzone-compact:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;margin-right:.1rem;animation:2.4s ease-in-out infinite import-compact-pulse}@keyframes import-compact-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;margin:0;padding:0;text-decoration:none;transition:border-color .15s}.link-button:hover{border-bottom-color:currentColor}.import-progress-summary{z-index:5;-webkit-backdrop-filter:blur(10px)saturate(140%);border:1px solid var(--border);background:linear-gradient(#ffffff06,#fff0 60%),#141418eb;border-radius:12px;padding:1rem 1.1rem .9rem;position:sticky;top:0;box-shadow:inset 0 1px #ffffff08}.import-progress-summary.is-done{background:linear-gradient(#4ade800d,#4ade8000 70%),#141418eb;border-color:#4ade8059}.import-progress-stats{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.7rem;display:flex}.import-progress-headline{color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:.82rem;display:flex}.import-progress-headline strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums lining-nums;color:var(--text);font-size:1.85rem;font-weight:600;line-height:1}.import-progress-summary.is-done .import-progress-headline strong{color:var(--green)}.import-progress-bytes{font-variant-numeric:tabular-nums;color:var(--text-tertiary);letter-spacing:.02em;font-size:.78rem}.import-progress-chip{letter-spacing:.02em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:.7rem;font-weight:600;animation:1.6s ease-in-out infinite import-chip-pulse;display:inline-flex;box-shadow:inset 0 0 0 1px #00baff2e}.import-progress-chip.subtle{color:var(--text-tertiary);box-shadow:inset 0 0 0 1px var(--border);text-transform:none;letter-spacing:0;background:#ffffff0a;font-weight:500;animation:none}.import-progress-chip.error{color:#ef4444;background:#ef44441f;animation:none;box-shadow:inset 0 0 0 1px #ef44444d}@keyframes import-chip-pulse{0%,to{opacity:1}50%{opacity:.55}}.import-progress-bar{background:var(--bg);border-radius:999px;height:4px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0006}.import-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-hover));border-radius:999px;height:100%;transition:width .25s ease-out;position:relative;overflow:hidden}.import-progress-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff47 50%,#0000 100%);animation:1.6s ease-in-out infinite import-progress-sweep;position:absolute;inset:0;transform:translate(-100%)}.import-progress-summary.is-done .import-progress-fill{background:linear-gradient(90deg, var(--green), #22c55e)}.import-progress-summary.is-done .import-progress-fill:after{opacity:0;animation:none}@keyframes import-progress-sweep{0%{transform:translate(-100%)}60%{transform:translate(100%)}to{transform:translate(100%)}}.import-groups{flex-direction:column;gap:.75rem;display:flex}.import-group{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;overflow:hidden}.import-group.has-issues{border-color:#fb923c66}.import-group-header{text-align:left;width:100%;color:var(--text);background:linear-gradient(#ffffff06,#0000 80%);border:none;align-items:center;gap:.6rem;padding:.7rem .95rem;font-size:.8rem;display:flex}.import-group-title{white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.08em;flex:1;font-size:.72rem;font-weight:600;overflow:hidden}.import-group-meta{color:var(--text-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-shrink:0;font-size:.7rem}.import-transit-pulse{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 0 var(--accent-soft);border-radius:50%;flex-shrink:0;animation:1.6s ease-out infinite import-transit-pulse}@keyframes import-transit-pulse{0%{box-shadow:0 0 0 0 var(--accent-soft)}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}.import-group-transit .import-group-header{border-bottom:1px solid var(--border)}.import-file-list-scroll{max-height:clamp(220px,38vh,420px);overflow-y:auto}.import-file-list{flex-direction:column;gap:2px;padding:.25rem .5rem .5rem;display:flex}.import-file-row{background:0 0;border:1px solid #0000;border-radius:7px;grid-template-columns:22px 1fr auto;align-items:center;gap:.7rem;padding:.45rem .6rem;font-size:.84rem;transition:background .12s;display:grid}.import-file-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.import-retry-btn{color:var(--accent)}.import-retry-btn:hover{color:var(--accent);background:var(--accent-soft)}.import-retry-all{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin-left:.5rem;font-size:.72rem;font-weight:600}.import-file-row:hover{background:#ffffff06}.import-file-row.import-file-error,.import-file-row.import-file-cancelled{background:#ef44440a;border-color:#ef444440}.import-file-row.import-file-uploading{background:#00baff06}.import-file-status{justify-content:center;align-items:center;display:flex}.import-file-body{min-width:0}.import-file-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.import-file-meta{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:.01em;margin-top:1px;font-size:.72rem;overflow:hidden}.import-file-dest{color:var(--text-secondary);letter-spacing:-.01em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.import-file-flags{color:#fb923c;font-feature-settings:"tnum"}.import-file-progress{background:#ffffff0d;border-radius:999px;height:2px;margin-top:5px;position:relative;overflow:hidden}.import-file-progress-fill{background:linear-gradient(90deg, var(--accent), #38bdf8);border-radius:999px;height:100%;transition:width .15s linear;box-shadow:0 0 6px #00baff66}.import-review-section{flex-direction:column;gap:.75rem;display:flex}.import-review-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.15rem .25rem .5rem;font-size:.78rem;display:flex}.import-review-title{color:var(--text-secondary);font-weight:600}.import-review-title strong,.import-review-title b{color:var(--text);font-variant-numeric:tabular-nums}.import-review-actions{text-transform:none;letter-spacing:0;align-items:center;gap:.5rem;font-size:.72rem;display:flex}.import-album-list{flex-direction:column;gap:.6rem;display:flex}.import-album-group{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;transition:border-color .15s,transform .15s,box-shadow .18s;overflow:hidden}.import-album-group:hover{border-color:var(--border-light)}.import-album-group.has-issues{background:linear-gradient(135deg, #fb923c0a, transparent 40%), var(--bg-raised);border-color:#fb923c73}.import-album-header{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;grid-template-columns:52px minmax(0,1fr) auto 16px;align-items:center;gap:.95rem;padding:.8rem .95rem;transition:background .15s;display:grid}.import-album-header:hover{background:#ffffff05}.import-album-cover{color:#ffffffe6;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .18s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14,inset 0 1px #ffffff1f,inset 0 -1px #00000040,0 3px 8px -3px #00000080}.import-album-cover:after{content:"";pointer-events:none;opacity:.35;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.5' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.import-album-header:hover .import-album-cover{transform:translateY(-1px)}.import-album-info{flex-direction:column;gap:1px;min-width:0;display:flex}.import-album-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.import-album-artist{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.import-album-pills{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.import-pill{color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.02em;box-shadow:inset 0 0 0 1px var(--border);background:#ffffff0a;border-radius:999px;align-items:center;padding:3px 9px;font-size:.68rem;font-weight:600;display:inline-flex}.import-pill-warning{color:#fb923c;background:#fb923c1f;box-shadow:inset 0 0 0 1px #fb923c4d}.import-pill-error{color:#ef4444;background:#ef44441f;box-shadow:inset 0 0 0 1px #ef44444d}.import-album-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform .15s}.import-album-chevron.open{transform:rotate(90deg)}.import-album-tracks{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:.25rem .5rem .6rem;display:flex}.import-commit-bar{-webkit-backdrop-filter:blur(14px)saturate(160%);border:1px solid var(--border);z-index:10;background:linear-gradient(#141418f0,#0f0f12f7);border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;padding:.9rem 1.1rem;animation:.32s cubic-bezier(.16,1,.3,1) import-commit-enter;display:flex;position:sticky;bottom:.5rem;box-shadow:inset 0 -1px #ffffff0d,0 12px 32px -8px #0009,0 0 0 1px #00baff0a}@keyframes import-commit-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.import-commit-summary{color:var(--text-secondary);letter-spacing:.01em;font-size:.88rem}.import-commit-summary strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.import-commit-actions{gap:.55rem;display:flex}.text-tertiary{color:var(--text-tertiary)}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 1px #ffffff0d}.status-dot.status-pending{background:var(--text-tertiary)}.status-dot.status-success{background:var(--green);box-shadow:0 0 0 1px #4ade8040,0 0 6px #4ade8059}.status-dot.status-warning{background:#fb923c;box-shadow:0 0 0 1px #fb923c40,0 0 6px #fb923c4d}.status-dot.status-error{background:#ef4444;box-shadow:0 0 0 1px #ef444440,0 0 6px #ef44444d}.text-warning{color:#fb923c}.text-error{color:#ef4444}.text-secondary{color:var(--text-secondary)}.btn-icon{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.btn-icon:hover{background:var(--bg-hover);color:var(--text)}.nav-badge{border-radius:10px;margin-left:auto;padding:1px 7px;font-size:.7rem;font-weight:600;line-height:1.4}.nav-badge-progress{background:var(--accent);color:#fff}.nav-badge-ready{background:var(--green);border-radius:50%;width:8px;height:8px;padding:0;animation:2s ease-in-out infinite nav-badge-pulse}@keyframes nav-badge-pulse{0%,to{opacity:1}50%{opacity:.4}}.modal-backdrop{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;width:100%;max-width:480px;max-height:calc(100vh - 2rem);overflow-y:auto;box-shadow:0 20px 60px #00000080}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-header h2{margin:0;font-size:1.05rem;font-weight:600}.modal-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.6rem;line-height:1}.modal-close:hover{color:var(--text)}.modal-warning{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:8px;margin:1rem 1.25rem 0;padding:.75rem 1rem;font-size:.85rem}.modal-warning code{background:#00000040;border-radius:4px;padding:.1rem .35rem;font-size:.8rem}.modal-form{flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.modal-form label{color:var(--text-dim);flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:500;display:flex}.modal-form label>span{text-transform:uppercase;letter-spacing:.04em}.modal-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.55rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.modal-form input:focus{border-color:var(--accent);outline:none}.modal-form input:disabled{opacity:.5;cursor:not-allowed}.modal-row{grid-template-columns:1fr 1fr 1fr;gap:.6rem;display:grid}.modal-error{color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;padding:.6rem .85rem;font-size:.85rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.modal-actions .btn-primary:disabled,.modal-actions .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.modal-identify{flex-direction:column;gap:.6rem;padding:.75rem 1.25rem 0;display:flex}.candidate-list{flex-direction:column;gap:.35rem;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.candidate-row{text-align:left;background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:.75rem;padding:.55rem .75rem;transition:border-color .15s,background .15s;display:flex}.candidate-row:hover{border-color:var(--accent);background:var(--accent-soft)}.candidate-score{color:var(--accent);background:var(--accent-soft);text-align:center;border-radius:99px;flex-shrink:0;min-width:3rem;padding:.2rem .45rem;font-size:.75rem;font-weight:600}.candidate-meta{flex-direction:column;gap:.1rem;min-width:0;display:flex}.candidate-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.candidate-sub{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.album-hero-cover-editable{cursor:pointer;color:inherit;background:0 0;border:none;border-radius:8px;padding:0;position:relative;overflow:hidden}.album-hero-cover-editable:disabled{cursor:wait}.album-hero-cover-overlay{color:#fff;opacity:0;pointer-events:none;background:#0000008c;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;transition:opacity .15s;display:flex;position:absolute;inset:0}.album-hero-cover-editable:hover .album-hero-cover-overlay,.album-hero-cover-editable:focus-visible .album-hero-cover-overlay,.album-hero-cover-editable:disabled .album-hero-cover-overlay{opacity:1}.rename-summary{color:var(--text);background:#00baff14;border:1px solid #00baff40;border-radius:8px;align-items:flex-start;gap:.75rem;margin:0 0 1rem;padding:.75rem 1rem;animation:.2s ease-out rename-summary-in;display:flex}@keyframes rename-summary-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.rename-summary-icon{color:var(--accent);flex-shrink:0;padding-top:.1rem}.rename-summary-body{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.rename-summary-title{font-size:.9rem;font-weight:500}.rename-summary-detail{color:var(--text-dim);font-size:.8rem}.rename-summary-failed{color:var(--red);font-weight:500}.rename-summary-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 .25rem;font-size:1.3rem;line-height:1}.rename-summary-close:hover{color:var(--text)}.settings-actions{flex-wrap:wrap;gap:.6rem;margin-top:.5rem;display:flex}.cred-field{flex-direction:column;gap:.35rem;display:flex}.cred-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);font-size:.75rem;font-weight:500}.cred-value-row{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;gap:.4rem;padding:.4rem .55rem;display:flex}.cred-value{word-break:break-all;background:0 0;flex:1;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.cred-action{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:.25rem .55rem;font-size:.75rem;transition:color .15s,border-color .15s,background .15s}.cred-action:hover{color:var(--text);border-color:var(--border-light);background:var(--bg-hover)}.cred-help{color:var(--text-dim);padding:.5rem 0;font-size:.8rem;line-height:1.45}.sidebar-storage{padding:0 12px 12px}.storage-widget{color:inherit;background:#ffffff0f;border:1px solid #ffffff14;border-radius:12px;padding:10px 12px}.storage-widget-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.storage-widget-title{letter-spacing:.08em;text-transform:uppercase;opacity:.72;font-size:.7rem;font-weight:700}.storage-widget-row strong{font-size:.82rem;font-weight:700}.storage-widget-meter{background:#ffffff1f;border-radius:999px;height:5px;margin-bottom:8px;overflow:hidden}.storage-widget-meter-fill{border-radius:inherit;opacity:.72;background:currentColor;height:100%;transition:width .24s}.storage-widget-details{opacity:.62;justify-content:space-between;gap:8px;font-size:.68rem;display:flex}.storage-widget-muted{opacity:.62;margin-top:4px;font-size:.74rem}.storage-widget.warning .storage-widget-meter-fill,.storage-widget.danger .storage-widget-meter-fill{opacity:.9;background:currentColor}.storage-widget-error{opacity:.72}.member-add{gap:.5rem;margin-bottom:.75rem;display:flex}.member-add input{flex:1;min-width:0}.member-none{margin:0 0 .75rem}.member-error{margin-bottom:.75rem}.member-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.member-row{background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .85rem;display:flex}.member-found{border-color:var(--accent,var(--border));margin-bottom:.75rem}.member-identity{flex-direction:column;gap:.15rem;min-width:0;display:flex}.member-name{color:var(--text);overflow-wrap:anywhere;font-size:.9rem;font-weight:500}.member-sub{color:var(--text-tertiary);font-size:.78rem}.member-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.member-actions select{padding:.3rem .4rem;font-size:.82rem}.btn-danger-sm{border:1px solid var(--border);color:var(--red);cursor:pointer;background:0 0;border-radius:6px;padding:.3rem .6rem;font-size:.82rem}.btn-danger-sm:disabled{opacity:.45;cursor:not-allowed;color:var(--text-tertiary)}.export-card{max-width:560px}.export-signin{margin-top:8px}.export-key-form{gap:8px;margin:12px 0 4px;display:flex}.export-key-form .text-input{border:1px solid var(--border,#27272a);background:var(--bg-elevated,#18181b);min-width:0;color:inherit;font:inherit;border-radius:8px;flex:1;padding:10px 12px}.export-artists{border-top:1px solid var(--border,#27272a);max-height:320px;margin:16px 0 0;padding:0;list-style:none;overflow-y:auto}.export-artists li{border-bottom:1px solid var(--border,#27272a);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:8px 0;display:grid}.export-artist-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.export-artist-meta{color:var(--text-muted,#a1a1aa);white-space:nowrap;font-size:.85em}.btn-small{padding:4px 10px;font-size:.85em}.error-text{color:var(--danger,#f87171);margin:8px 0 0}
