:root{--font-sans: "DM Sans", system-ui, sans-serif;--font-display: "Outfit", var(--font-sans);--bg-base: #070b12;--bg-elevated: #0f1522;--bg-card: #141c2e;--bg-sidebar: #0a0f18;--bg-hover: rgba(61, 214, 198, .08);--bg-active: rgba(61, 214, 198, .14);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--text: #e8ecf4;--text-muted: #8b95a8;--text-dim: #5c6678;--accent: #3dd6c6;--accent-dim: #2ba89b;--accent-glow: rgba(61, 214, 198, .35);--accent-secondary: #6b8cff;--danger: #ff6b7a;--success: #5ee0a8;--warning: #ffc266;--sidebar-width: 260px;--topbar-height: 56px;--player-height: 80px;--content-padding-x: clamp(1rem, 2.5vw, 2.5rem);--content-padding-y: clamp(1rem, 2vw, 2rem);--grid-card-min: clamp(180px, 14vw, 280px);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .35);--shadow-glow: 0 0 40px var(--accent-glow);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 20% -10%,rgba(61,214,198,.12),transparent),radial-gradient(ellipse 60% 40% at 90% 10%,rgba(107,140,255,.1),transparent);pointer-events:none;z-index:0}a{color:var(--accent);text-decoration:none}a:hover{color:#6ee8dc}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}button{font-family:inherit}input,textarea,select{font-family:inherit;font-size:.9375rem}.app-layout{position:relative;z-index:1;display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:1fr;height:100%;min-height:100vh;padding-bottom:var(--player-height)}.app-main-column{display:flex;flex-direction:column;min-width:0;min-height:0;grid-row:1;grid-column:2;overflow:hidden}.app-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--content-padding-y) var(--content-padding-x) calc(var(--content-padding-y) + .5rem);width:100%}.library-page,.search-page,.tasks-page,.tools-page,.library-artist-page{width:100%;max-width:none}.media-grid,.library-grid,.library-album-grid,.search-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--grid-card-min),100%),1fr));gap:clamp(.75rem,1.5vw,1.25rem);width:100%}.page-title{margin:0 0 .35rem;font-size:1.75rem}.page-subtitle{margin:0 0 1.75rem;color:var(--text-muted);font-size:.95rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:var(--shadow-card)}.card+.card{margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.1rem;border-radius:var(--radius-sm);border:none;font-weight:600;font-size:.875rem;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dim) 100%);color:#041210;box-shadow:0 2px 12px var(--accent-glow)}.btn-primary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn-danger{background:color-mix(in srgb,var(--danger) 18%,var(--bg-elevated));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border))}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 28%,var(--bg-elevated));color:#fff}.input{width:100%;padding:.65rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-muted);margin-bottom:.4rem}.field{margin-bottom:1rem}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:1rem}.alert-error{background:#ff6b7a1f;border:1px solid rgba(255,107,122,.35);color:#ffb3bc}.alert-success{background:#5ee0a81a;border:1px solid rgba(94,224,168,.3);color:var(--success)}.alert-success .library-tasks-link{color:var(--accent);font-weight:600;text-decoration:underline}.list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:none}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0}.tab{padding:.65rem 1rem;background:none;border:none;color:var(--text-muted);font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover{color:var(--text)}@media (max-width: 768px){:root{--grid-card-min: clamp(140px, 42vw, 200px)}.page-title{font-size:1.45rem}.library-hero-text h1{font-size:1.55rem}.library-stat-num{font-size:2rem}}.sidebar{grid-row:1 / 3;grid-column:1;display:flex;flex-direction:column;background:var(--bg-sidebar);border-right:1px solid var(--border);padding:1.25rem .75rem}.sidebar-brand{display:flex;align-items:center;gap:.65rem;padding:.5rem .75rem 1.5rem;font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text)}.brand-logo-img{display:block;flex-shrink:0;object-fit:contain;background:transparent;filter:drop-shadow(0 2px 12px var(--accent-glow))}.sidebar-brand-logo .brand-wordmark{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text)}.auth-logo-wrap .brand-logo-img{filter:drop-shadow(0 4px 28px var(--accent-glow))}.auth-logo-wrap{margin-bottom:.5rem}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-md);color:var(--text-muted);font-weight:500;transition:background .15s,color .15s}.sidebar-link:hover{background:var(--bg-hover);color:var(--text)}.sidebar-link.active{background:var(--bg-active);color:var(--accent)}.sidebar-link-badge{margin-left:auto;min-width:1.25rem;padding:.1rem .4rem;border-radius:999px;background:var(--accent);color:var(--bg-base);font-size:.7rem;font-weight:700;text-align:center}.topbar{height:var(--topbar-height);display:flex;align-items:center;gap:.75rem;padding:0 var(--content-padding-x);border-bottom:1px solid var(--border);background:#0f152299;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0}.topbar-menu-btn{display:none;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.topbar-menu-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.topbar-brand-mobile{display:none;align-items:center;gap:.5rem;min-width:0;font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--text)}.topbar-spacer{flex:1}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;border:none;padding:0;margin:0;background:#0000008c;cursor:pointer}.topbar-user{display:flex;align-items:center;gap:.75rem}.user-menu{position:relative;display:flex;align-items:center;gap:.35rem}.user-menu-trigger{display:flex;align-items:center;gap:.75rem;padding:.25rem .35rem;border:none;border-radius:var(--radius-md);background:transparent;color:inherit;cursor:pointer;transition:background .15s}.user-menu-trigger:hover{background:var(--bg-hover)}.user-menu-dropdown{position:absolute;top:calc(100% + .45rem);right:0;min-width:220px;padding:.35rem;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-elevated);box-shadow:var(--shadow-card);z-index:200}.user-menu-item{display:flex;align-items:center;gap:.65rem;width:100%;padding:.65rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:.9rem;font-weight:500;text-decoration:none;cursor:pointer;text-align:left}.user-menu-item:hover{background:var(--bg-hover)}.user-menu-item-danger{color:var(--danger)}.user-menu-sep{height:1px;margin:.25rem .35rem;background:var(--border)}.user-menu-logout-mobile{display:none}.topbar-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-secondary));color:#041210;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.topbar-meta{display:flex;flex-direction:column;line-height:1.25}.topbar-name{font-size:.875rem;font-weight:600}.topbar-email{font-size:.75rem;color:var(--text-muted)}.topbar-logout{padding:.5rem}.player-bar{position:fixed;left:0;right:0;bottom:0;z-index:1400;display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding:0 1.5rem 0 calc(var(--sidebar-width) + 1rem);height:var(--player-height);background:var(--bg-elevated);border-top:1px solid var(--border);box-shadow:0 -8px 32px #00000047}.player-track{display:flex;align-items:center;gap:1rem;min-width:0}.player-art-placeholder{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-dim);flex-shrink:0}.player-title{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-artist{font-size:.8rem;color:var(--text-muted)}.player-artist-link{color:inherit;text-decoration:none}.player-artist-link:hover{color:var(--text);text-decoration:underline}.player-stream-source{display:inline-flex;align-items:center;gap:.35rem;margin-top:.3rem;padding:.12rem .5rem .12rem .35rem;border-radius:999px;font-size:.68rem;font-weight:600;letter-spacing:.02em;line-height:1.2;white-space:nowrap}.player-stream-source--deezer{color:#c89bff;background:color-mix(in srgb,#a238ff 18%,transparent);border:1px solid color-mix(in srgb,#a238ff 42%,transparent)}.player-stream-source--yandex{color:#ff8a60;background:color-mix(in srgb,#fc3c00 14%,transparent);border:1px solid color-mix(in srgb,#fc3c00 38%,transparent)}.player-center{display:flex;align-items:center;gap:1rem;min-width:0}.player-controls{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.player-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease}.player-btn:disabled{cursor:not-allowed;opacity:.45}.player-btn:not(:disabled):hover{background:var(--bg-hover);color:var(--text)}.player-btn-main{width:42px;height:42px;background:var(--accent);color:#fff}.player-btn-main:not(:disabled):hover{filter:brightness(1.08);color:#fff}.player-btn-main.is-playing{background:var(--accent)}.player-art{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.player-track-text{min-width:0}.player-progress-row{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.player-progress-slider{flex:1;min-width:0;height:5px;accent-color:var(--accent);cursor:pointer}.player-progress-slider:disabled{cursor:not-allowed;opacity:.45}.player-time{font-size:.72rem;color:var(--text-dim);min-width:2.5rem;font-variant-numeric:tabular-nums;flex-shrink:0;text-align:center}.player-side{display:flex;align-items:center;gap:.75rem;justify-self:end}.player-queue-toggle{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:var(--radius-sm);padding:.35rem .55rem;cursor:pointer;font-size:.78rem}.player-queue-toggle:hover:not(:disabled),.player-queue-toggle.is-open{border-color:var(--accent);color:var(--accent)}.player-queue-toggle:disabled{opacity:.4;cursor:not-allowed}.player-queue-count{font-variant-numeric:tabular-nums}.player-queue-panel{position:absolute;right:1rem;bottom:calc(var(--player-height) + .5rem);width:min(360px,calc(100vw - 2rem));max-height:min(420px,50vh);overflow:hidden;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 40px #00000059}.player-queue-head{display:flex;align-items:center;justify-content:space-between;padding:.65rem .85rem;border-bottom:1px solid var(--border)}.player-queue-title{font-size:.85rem;font-weight:600}.player-queue-close{border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:inline-flex}.player-queue-list{list-style:none;margin:0;padding:.35rem;overflow-y:auto}.player-queue-item{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center;border:none;background:transparent;color:inherit;text-align:left;padding:.45rem .55rem;border-radius:var(--radius-sm);cursor:pointer}.player-queue-item:hover{background:var(--bg-hover)}.player-queue-item.is-current{background:color-mix(in srgb,var(--accent) 14%,transparent)}.player-queue-item-pos{font-size:.75rem;color:var(--text-dim);min-width:1.25rem}.player-queue-item-text{min-width:0;display:flex;flex-direction:column}.player-queue-item-title{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-queue-item-artist{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-queue-item-now{color:var(--accent);font-size:.75rem}.player-volume{display:flex;align-items:center;gap:.65rem;color:var(--text-dim);min-width:120px}.player-volume-slider{flex:1;min-width:72px;accent-color:var(--accent)}.player-volume-track{flex:1;height:4px;background:var(--bg-card);border-radius:2px;overflow:hidden}.player-volume-fill{height:100%;background:var(--accent);border-radius:2px;opacity:.5}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;position:relative;z-index:1}.auth-brand{display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;background:linear-gradient(160deg,rgba(61,214,198,.08) 0%,transparent 50%)}.auth-brand h1{font-size:2.5rem;margin:1rem 0 .5rem}.auth-brand p{color:var(--text-muted);max-width:360px;line-height:1.6}.auth-panel{display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg-elevated);border-left:1px solid var(--border)}.auth-form-card{width:100%;max-width:400px}.auth-form-card h2{margin:0 0 .35rem;font-size:1.5rem}.auth-form-card .subtitle{color:var(--text-muted);margin:0 0 1.5rem;font-size:.9rem}.auth-switch{margin-top:1.25rem;text-align:center;font-size:.875rem;color:var(--text-muted)}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--text-muted)}.auth-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}@media (max-width: 900px){.app-layout{grid-template-columns:1fr;grid-template-rows:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:150;width:min(var(--sidebar-width),85vw);transform:translate(-100%);transition:transform .22s ease-out;box-shadow:none}.sidebar.is-open{transform:translate(0);box-shadow:8px 0 32px #00000073}.sidebar-backdrop.is-visible{display:block}.topbar-menu-btn,.topbar-brand-mobile{display:inline-flex}.topbar-meta{display:none}.app-main-column{grid-column:1;grid-row:1;min-height:0}.player-bar{grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:.5rem var(--content-padding-x);gap:.5rem .75rem;height:auto;min-height:var(--player-height)}.player-track{grid-column:1;grid-row:1}.player-side{grid-column:2;grid-row:1;align-self:center}.player-center{grid-column:1 / -1;grid-row:2;padding-bottom:.15rem}.player-side .player-volume{display:none}.auth-layout{grid-template-columns:1fr}.auth-brand{display:none}.auth-panel{border-left:none}}@media (max-width: 480px){.topbar-email{display:none}.topbar-user{gap:.5rem}.user-menu-logout-mobile{display:inline-flex}}.search-sources{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1.25rem}.search-source-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-weight:600;font-size:.875rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.search-source-btn:hover{border-color:var(--border-strong);color:var(--text)}.search-source-btn.active{border-color:var(--accent);background:var(--bg-active);color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 20px var(--accent-glow)}.search-source-deezer-brand{display:inline-flex;align-items:center;gap:.45rem;line-height:1}.search-source-deezer-mark{width:1.35rem;height:1.35rem;flex-shrink:0;display:block;shape-rendering:geometricPrecision}.search-source-deezer-name{font-size:.9375rem;font-weight:700;letter-spacing:-.04em;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.search-source-btn--deezer{padding:.5rem .95rem}.search-source-btn--deezer.active .search-source-deezer-name{color:var(--accent)}.search-source-btn--deezer:not(.active) .search-source-deezer-brand{opacity:.92}.search-source-icon{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:800;background:linear-gradient(135deg,#ff6b35,#ff9f43);color:#fff}.search-source-icon--yandex{background:transparent;padding:0}.search-source-yandex-mark{width:22px;height:22px;display:block;border-radius:6px}.search-bar-wrap{position:relative;margin-bottom:2rem}.search-bar{width:100%;padding:1rem 3rem;font-size:1.125rem;border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.search-bar:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.search-bar-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-dim);pointer-events:none}.search-bar-clear{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;border-radius:50%;background:var(--bg-hover);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.search-bar-clear:hover{color:var(--text);background:var(--bg-active)}.search-section{margin-bottom:2rem}.search-section-title{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin:0 0 1rem}.search-library-row{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.25rem}.search-library-row .library-artist-card--search{width:200px;flex-shrink:0}.media-card{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1;background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.media-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-glow)}.media-card img{width:100%;height:100%;object-fit:cover;display:block}.media-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-dim);background:linear-gradient(145deg,var(--bg-card),var(--bg-elevated))}.media-card-label{position:absolute;left:0;right:0;bottom:0;padding:2.5rem .65rem .65rem;background:linear-gradient(transparent,#000000d9);font-size:.8125rem;font-weight:600;line-height:1.25;color:#fff}.media-card-sub{display:block;font-size:.7rem;font-weight:400;color:#ffffffbf;margin-top:.15rem}.media-card-actions{position:absolute;top:.5rem;right:.5rem;opacity:0;transition:opacity .15s}.media-card:hover .media-card-actions{opacity:1}.media-card-import{padding:.35rem .6rem;font-size:.7rem;border-radius:6px;border:none;background:var(--accent);color:#041210;font-weight:700;cursor:pointer}.search-empty-hint{color:var(--text-muted);font-size:.9rem;padding:2rem 0;text-align:center}.search-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--text-muted)}.search-page--preview-open{overflow:hidden}.search-preview-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;justify-content:flex-end}.search-preview-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#0000008c;cursor:pointer}.search-preview-panel{position:relative;width:min(440px,100vw);height:100%;display:flex;flex-direction:column;background:var(--bg-card);border-left:1px solid var(--border-strong);box-shadow:-8px 0 40px #00000073;animation:search-preview-slide .22s ease-out}@keyframes search-preview-slide{0%{transform:translate(100%)}to{transform:translate(0)}}.search-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.search-preview-back{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border:none;border-radius:var(--radius-md);background:transparent;color:var(--accent);font-size:.8125rem;font-weight:600;cursor:pointer;font-family:inherit}.search-preview-back:hover{background:var(--bg-hover)}.search-preview-close{width:36px;height:36px;border:none;border-radius:50%;background:var(--bg-hover);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.search-preview-close:hover{color:var(--text);background:var(--bg-active)}.search-preview-hero{display:flex;gap:1rem;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.search-preview-cover{width:120px;height:120px;border-radius:var(--radius-md);overflow:hidden;flex-shrink:0;border:1px solid var(--border);background:var(--bg-elevated)}.search-preview-cover img{width:100%;height:100%;object-fit:cover}.search-preview-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.search-preview-hero-text{min-width:0;padding-top:.25rem}.search-preview-type{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.search-preview-title{margin:.35rem 0 0;font-size:1.25rem;font-weight:700;line-height:1.2;word-break:break-word}.search-preview-subtitle,.search-preview-meta{margin:.4rem 0 0;font-size:.8125rem;color:var(--text-muted);line-height:1.4}.search-preview-body{flex:1;overflow-y:auto;padding:1rem 1.25rem}.search-preview-loading{display:flex;align-items:center;gap:.65rem;color:var(--text-muted);padding:1rem 0}.search-preview-hint{color:var(--text-muted);font-size:.9rem;margin:0}.search-preview-link,.search-preview-artist-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.8125rem;color:var(--accent);text-decoration:none;margin-bottom:1rem;background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.search-preview-link:hover,.search-preview-artist-link:hover{text-decoration:underline}.search-preview-category{margin-bottom:1.25rem}.search-preview-category:last-child{margin-bottom:0}.search-preview-section-title{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin:0 0 .75rem}.search-preview-album-list,.search-preview-track-list{list-style:none;margin:0;padding:0}.search-preview-album-item{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem;padding:.15rem;border-radius:var(--radius-md);border:1px solid transparent}.search-preview-album-item.is-in-library{border:2px solid #3db87a;padding:calc(.15rem - 1px)}.search-preview-album-in-library{flex-shrink:0;font-size:.78rem;font-weight:600;color:#3db87a;white-space:nowrap;padding:.5rem .85rem}.search-preview-album-row{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;padding:.5rem;border:none;border-radius:var(--radius-md);background:transparent;cursor:pointer;text-align:left;color:inherit;font-family:inherit;transition:background .12s}.search-preview-album-add{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;padding:.5rem .85rem;border-radius:999px;border:1px solid var(--border-strong);background:transparent;color:var(--text);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.search-preview-album-add:hover:not(:disabled){border-color:var(--lib-accent, #2dd4bf);color:var(--lib-accent, #2dd4bf);background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 8%,transparent)}.search-preview-album-add:disabled{opacity:.55;cursor:not-allowed}.search-preview-album-row:hover{background:var(--bg-hover)}.search-preview-album-thumb{width:44px;height:44px;border-radius:6px;object-fit:cover;flex-shrink:0}.search-preview-album-thumb--empty{display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);color:var(--text-dim)}.search-preview-album-info{min-width:0;display:flex;flex-direction:column;gap:.15rem}.search-preview-album-title{font-size:.875rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-preview-album-year{font-size:.75rem;color:var(--text-dim)}.search-preview-track-row{display:grid;grid-template-columns:2rem 1fr auto;gap:.5rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--border);font-size:.8125rem}.search-preview-track-pos{color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums}.search-preview-track-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-preview-track-dur{color:var(--text-dim);font-variant-numeric:tabular-nums}.search-preview-empty{color:var(--text-dim);font-size:.875rem;padding:.5rem 0}.search-preview-footer{display:flex;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--border);flex-shrink:0}.library-page,.library-artist-page{--lib-accent: var(--accent);--lib-accent-dim: var(--accent-dim);--lib-accent-ring: color-mix(in srgb, var(--lib-accent) 28%, transparent);--lib-accent-soft: color-mix(in srgb, var(--lib-accent) 12%, transparent);--lib-accent-soft-strong: color-mix(in srgb, var(--lib-accent) 26%, transparent);--lib-accent-shadow: color-mix(in srgb, var(--lib-accent) 16%, transparent);--lib-accent-glow: color-mix(in srgb, var(--lib-accent) 24%, transparent)}.library-page--deezer,.library-artist-page--deezer{--lib-accent: #a238ff;--lib-accent-dim: #872fd9}.library-page--yandex,.library-artist-page--yandex{--lib-accent: #fc3c00;--lib-accent-dim: #d63200}.library-catalog-switch{display:flex;flex-wrap:wrap;gap:.5rem}.library-entity-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;width:min(100%,34rem);padding:.3rem;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 82%,transparent)}.library-entity-tab{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.6rem 1rem;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--text-muted);font-size:.9rem;font-weight:700;cursor:pointer;transition:color .15s,border-color .15s,background .15s,box-shadow .15s}.library-entity-tab:hover:not(.is-active){color:var(--text);background:#ffffff09}.library-entity-tab.is-active{color:var(--lib-accent);border-color:var(--lib-accent-ring);background:var(--lib-accent-soft);box-shadow:0 0 18px var(--lib-accent-shadow)}.library-catalog-mark{flex-shrink:0;display:block;object-fit:contain}.library-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.75rem;flex-wrap:wrap}.library-hero-text h1{font-family:var(--font-display);font-size:2rem;font-weight:700;margin:0 0 .35rem;letter-spacing:-.02em}.library-hero-text h1 span{color:var(--lib-accent)}.library-hero-sub{margin:0;color:var(--text-muted);font-size:.9375rem}.library-stat{text-align:right}.library-stat-num{font-family:var(--font-display);font-size:2.5rem;font-weight:800;line-height:1;color:var(--lib-accent)}.library-stat-label{font-size:.7rem;letter-spacing:.12em;color:var(--text-dim);margin-top:.25rem}.library-toolbar{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.25rem}.library-search-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.library-search-row .library-search-wrap{flex:1;min-width:200px}.library-gap-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.library-only-added{display:inline-flex;align-items:center;gap:.65rem;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0}.library-only-added-label{font-size:.875rem;color:var(--text-muted);white-space:nowrap}.library-only-added-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.library-only-added-switch{position:relative;width:44px;height:24px;border-radius:999px;background:var(--border-strong);transition:background .2s}.library-only-added-switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}.library-only-added-input:checked+.library-only-added-switch{background:var(--lib-accent)}.library-only-added-input:checked+.library-only-added-switch:after{transform:translate(20px)}.library-only-added-input:focus-visible+.library-only-added-switch{outline:2px solid var(--lib-accent);outline-offset:2px}.library-search-wrap{position:relative}.library-search-wrap svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-dim);pointer-events:none}.library-search{width:100%;padding:.9rem 1rem .9rem 2.75rem;font-size:1rem;border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text)}.library-search:focus{outline:none;border-color:var(--lib-accent);box-shadow:0 0 0 2px var(--lib-accent-ring)}.library-view-switch{display:inline-flex;flex-shrink:0;gap:.2rem;padding:.25rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-card)}.library-view-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.25rem;padding:.45rem .8rem;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-size:.82rem;font-weight:650;cursor:pointer;transition:color .15s,background .15s,box-shadow .15s}.library-view-btn:hover:not(.is-active){color:var(--text)}.library-view-btn.is-active{color:var(--lib-accent);background:var(--lib-accent-soft);box-shadow:inset 0 0 0 1px var(--lib-accent-ring)}.library-alpha{display:flex;flex-direction:column;gap:.45rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.library-alpha-all{align-self:flex-start}.library-alpha-row{display:flex;flex-wrap:wrap;gap:.35rem}.library-alpha-btn{min-width:2rem;padding:.35rem .5rem;border:none;border-radius:6px;background:transparent;color:var(--text-dim);font-size:.8rem;font-weight:600;cursor:pointer;transition:color .15s,background .15s}.library-alpha-btn:hover{color:var(--text)}.library-alpha-btn.active{color:var(--text);background:#ffffff1a;box-shadow:0 0 12px #ffffff26}.library-results-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem;color:var(--text-muted);font-size:.82rem;scroll-margin-top:1rem}.library-results-bar span:first-child{color:var(--text);font-weight:650}.library-entity-panel{display:flex;flex-direction:column;gap:1rem}.library-entity-panel>.library-search-row,.library-entity-panel>.library-alpha,.library-entity-panel>.library-results-bar{margin-bottom:0}.library-entity-empty{min-height:15rem;padding:2.5rem}.library-entity-empty svg{opacity:.35}.library-entity-empty p{margin:0;color:var(--text-muted);font-size:1rem}.library-artist-card{position:relative;aspect-ratio:1.15;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);cursor:pointer;text-decoration:none;color:inherit;display:block;transition:transform .2s,box-shadow .2s,border-color .2s}.library-artist-card:hover{transform:translateY(-3px);border-color:var(--lib-accent);box-shadow:0 12px 32px #00000073,0 0 24px var(--lib-accent-shadow)}.library-artist-card-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(145deg,#1a2238,#0d111c)}.library-artist-card-bg img{width:100%;height:100%;object-fit:cover}.library-artist-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.2) 55%,transparent 100%)}.library-artist-card-body{position:absolute;left:0;right:0;bottom:0;padding:1rem;z-index:1}.library-artist-card-body h3{margin:0 0 .25rem;font-size:1.05rem;font-weight:700;line-height:1.2}.library-artist-card-meta{font-size:.8rem;color:var(--text-muted)}.library-artist-card--selectable{cursor:default}.library-artist-card--selectable:hover{transform:translateY(-3px);border-color:var(--lib-accent);box-shadow:0 12px 32px #00000073,0 0 24px var(--lib-accent-shadow)}.library-artist-card--selectable.is-selected{border-color:var(--lib-accent);box-shadow:0 0 0 1px var(--lib-accent-ring)}.library-artist-card-link{position:absolute;top:0;right:0;bottom:0;left:0;display:block;text-decoration:none;color:inherit;cursor:pointer}.library-artist-card-check{position:absolute;top:.65rem;left:.65rem;z-index:3;width:26px;height:26px;padding:0;border:2px solid rgba(255,255,255,.85);border-radius:5px;background:#00000080;color:#0a0812;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s,border-color .15s,transform .15s}.library-artist-card-check:hover{border-color:#fff;transform:scale(1.05)}.library-artist-card-check[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.library-artist-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 84%,transparent);box-shadow:var(--shadow-card);-webkit-overflow-scrolling:touch}.library-artist-table{width:100%;min-width:720px;border-collapse:collapse;font-size:.88rem}.library-artist-table th,.library-artist-table td{padding:.7rem .85rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.library-artist-table th{color:var(--text-dim);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.library-artist-table tbody tr{transition:background .15s,box-shadow .15s}.library-artist-table tbody tr:hover{background:var(--lib-accent-soft)}.library-artist-table tbody tr.is-selected{background:color-mix(in srgb,var(--lib-accent) 10%,transparent);box-shadow:inset 3px 0 0 var(--lib-accent)}.library-artist-table tbody tr:last-child td{border-bottom:none}.library-artist-table-check{width:3rem;text-align:center!important}.library-artist-table-check input{width:1rem;height:1rem;margin:0;accent-color:var(--lib-accent);cursor:pointer}.library-artist-table-artist{display:inline-flex;align-items:center;gap:.75rem;min-width:0;color:var(--text);text-decoration:none}.library-artist-table-artist:hover{color:var(--lib-accent)}.library-artist-table-cover{display:inline-flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:linear-gradient(145deg,#1a2238,#0d111c);color:var(--text-dim)}.library-artist-table-cover img{width:100%;height:100%;object-fit:cover}.library-artist-table-main{display:flex;flex-direction:column;gap:.18rem;min-width:0}.library-artist-table-main strong{max-width:28rem;overflow:hidden;font-size:.94rem;text-overflow:ellipsis;white-space:nowrap}.library-artist-table-main span{max-width:28rem;overflow:hidden;color:var(--text-dim);font-family:ui-monospace,monospace;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.poster-service-badges.library-artist-table-badges{position:static;flex-direction:row;justify-content:flex-start;gap:.3rem}.library-artist-table-badges .poster-service-badge{width:26px;height:26px;background:color-mix(in srgb,var(--bg-base) 72%,transparent);border:1px solid var(--border)}.library-artist-table-number{width:7rem;text-align:right!important;font-variant-numeric:tabular-nums}.library-artist-table-status{display:inline-flex;align-items:center;padding:.25rem .55rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);background:#ffffff06;font-size:.72rem;font-weight:650;white-space:nowrap}.library-artist-table-status.is-added{color:var(--lib-accent);border-color:var(--lib-accent-ring);background:var(--lib-accent-soft)}.library-release-card{min-width:0}.library-release-cover-button{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;padding:0;border:none;background:transparent;color:inherit;cursor:pointer}.library-release-cover-button>img,.library-release-cover-button>.library-empty-cover{width:100%;height:100%}.library-release-title-button{display:block;width:100%;margin:0;padding:0;overflow:hidden;border:none;background:transparent;color:var(--text);font-size:.875rem;font-weight:650;line-height:1.3;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.library-release-title-button:hover{color:var(--lib-accent)}.library-release-table-wrap,.library-track-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 84%,transparent);box-shadow:var(--shadow-card);-webkit-overflow-scrolling:touch}.library-release-table,.library-track-table{width:100%;min-width:780px;border-collapse:collapse;font-size:.86rem}.library-release-table th,.library-release-table td,.library-track-table th,.library-track-table td{padding:.7rem .85rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.library-release-table th,.library-track-table th{color:var(--text-dim);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.library-release-table tbody tr,.library-track-table tbody tr{transition:background .15s}.library-release-table tbody tr:hover,.library-track-table tbody tr:hover{background:var(--lib-accent-soft)}.library-release-table tbody tr:last-child td,.library-track-table tbody tr:last-child td{border-bottom:none}.library-release-table-main{display:inline-flex;align-items:center;gap:.7rem;max-width:30rem;padding:0;border:none;background:transparent;color:var(--text);text-align:left;cursor:pointer}.library-release-table-main:hover{color:var(--lib-accent)}.library-release-table-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-release-table-cover,.library-track-table-cover{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:linear-gradient(145deg,#1a2238,#0d111c);color:var(--text-dim)}.library-release-table-cover img,.library-track-table-cover img{width:100%;height:100%;object-fit:cover}.library-release-table-artist,.library-track-table-link{color:var(--text-muted);text-decoration:none}button.library-track-table-link{padding:0;border:none;background:transparent;font:inherit;text-align:left;cursor:pointer}.library-release-table-artist:hover,.library-track-table-link:hover{color:var(--lib-accent)}.library-release-table-number{text-align:right!important;font-variant-numeric:tabular-nums}.library-release-table .poster-service-badges.library-release-service-badges{position:static;flex-direction:row;justify-content:flex-start;gap:.3rem}.library-release-table .library-release-service-badges .poster-service-badge{width:26px;height:26px;border:1px solid var(--border)}.library-track-table{min-width:880px}.library-track-table-main{display:inline-flex;align-items:center;gap:.7rem;min-width:0}.library-track-table-title{display:flex;flex-direction:column;gap:.15rem;min-width:0}.library-track-table-title strong{max-width:28rem;overflow:hidden;color:var(--text);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.library-track-table-title span{color:var(--text-dim);font-family:ui-monospace,monospace;font-size:.68rem}.library-track-table-duration{text-align:right!important;font-variant-numeric:tabular-nums}.library-track-sources{display:inline-flex;align-items:center;gap:.3rem}.library-track-source{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--border);border-radius:50%;background:color-mix(in srgb,var(--bg-base) 72%,transparent)}.library-track-source--navidrome{color:#5eead4}.library-pagination{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;margin-top:1.25rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 74%,transparent)}.library-pagination-summary{display:flex;flex-direction:column;gap:.15rem;color:var(--text-muted);font-size:.8rem;white-space:nowrap}.library-pagination-page{color:var(--text-dim);font-size:.74rem}.library-pagination-controls{display:flex;align-items:center;justify-content:flex-end;gap:.3rem}.library-pagination-btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-width:2.25rem;height:2.25rem;padding:0 .65rem;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-muted);font-size:.82rem;font-weight:650;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.library-pagination-btn:hover:not(:disabled):not(.is-active){color:var(--text);border-color:var(--border-strong);background:#ffffff0a}.library-pagination-btn.is-active{color:#0a0812;border-color:var(--lib-accent);background:var(--lib-accent)}.library-pagination-btn:disabled{opacity:.35;cursor:not-allowed}.library-pagination-nav{padding-inline:.7rem}.library-pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;color:var(--text-dim)}.library-batch-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid rgba(45,212,191,.35);background:#2dd4bf14}.library-batch-count{font-size:.9rem;font-weight:600;color:var(--text)}.library-batch-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}.library-batch-clear{padding:.55rem .85rem;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-size:.875rem;font-family:inherit;cursor:pointer}.library-batch-clear:hover{color:var(--text)}.library-batch-delete{color:var(--danger)}.library-batch-delete:hover:not(:disabled){color:#fff;background:color-mix(in srgb,var(--danger) 75%,transparent);border-color:color-mix(in srgb,var(--danger) 55%,var(--border))}.library-delete-artists-related{margin-top:.25rem;padding-top:1rem;border-top:1px dashed var(--border)}.library-tasks-link{color:var(--accent);font-weight:600}.library-merge-artists-modal{max-width:32rem}.library-merge-artists-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.65rem;max-height:min(50vh,22rem);overflow-y:auto}.library-merge-artists-option{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .85rem;border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffff08;cursor:pointer}.library-merge-artists-option.is-canonical{border-color:#2dd4bf8c;background:#2dd4bf14}.library-merge-artists-option input{margin-top:1.35rem;flex-shrink:0}.library-merge-artists-avatar{flex-shrink:0;width:3.25rem;height:3.25rem;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#1e2640,#12182a);border:1px solid rgba(255,255,255,.12)}.library-merge-artists-avatar img{width:100%;height:100%;object-fit:cover;display:block}.library-merge-artists-avatar-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.library-merge-artists-option-body{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1}.library-merge-artists-option-body strong{font-size:.95rem}.library-merge-artists-option-body span,.library-merge-artists-option-body code{font-size:.78rem;color:var(--text-muted)}.library-merge-artists-sources{text-transform:capitalize}.library-merge-artists-badge{font-size:.72rem;font-weight:600;color:var(--accent);white-space:nowrap}.library-merge-artists-error{margin:0 0 .75rem;color:#f87171;font-size:.875rem}.poster-service-badges{position:absolute;top:.65rem;right:.65rem;z-index:2;display:flex;flex-direction:column;gap:.35rem;align-items:center}.poster-service-badge{width:28px;height:28px;padding:0;border:none;border-radius:50%;background:#0000008c;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-shrink:0;overflow:hidden;cursor:pointer;transition:box-shadow .2s ease,transform .15s ease}span.poster-service-badge{cursor:default;pointer-events:none}.poster-service-badge:hover{transform:scale(1.06)}.poster-service-badge--tunetide:hover{box-shadow:0 0 16px var(--accent-glow, rgba(45, 212, 191, .65))}.poster-service-badge--deezer:hover{box-shadow:0 0 16px #a238ffbf}.poster-service-badge--yandex:hover{box-shadow:0 0 16px #fc3c008c}.poster-service-badge--navidrome{color:#5eead4}.poster-service-badge--navidrome:hover{box-shadow:0 0 16px #2dd4bf8c}.poster-service-badge .brand-logo-img{object-fit:cover;pointer-events:none}.library-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:1.25rem;color:var(--text-muted);font-size:.9rem;background:none;border:none;cursor:pointer;padding:0;font-family:inherit}.library-back:hover{color:var(--lib-accent)}.library-artist-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(720px,980px);gap:2rem;margin-bottom:2rem;align-items:stretch}.library-artist-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem;height:0;min-height:100%;align-self:stretch;min-width:0}.library-artist-main{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.library-artist-hero{display:grid;grid-template-columns:minmax(200px,320px) minmax(0,1fr);gap:2rem;align-items:start}@media (max-width: 1400px){.library-artist-top{grid-template-columns:minmax(0,1fr) minmax(620px,1fr)}}@media (max-width: 1100px){.library-artist-top{grid-template-columns:1fr}.library-artist-side{height:auto;min-height:0;grid-template-columns:1fr}.library-artist-best-tracks{height:22rem;min-height:22rem;max-height:22rem}}@media (max-width: 768px){.library-artist-hero{grid-template-columns:1fr}.library-hero{flex-direction:column;align-items:stretch}.library-stat{text-align:left}.library-search-row{flex-direction:column;align-items:stretch}.library-only-added{justify-content:space-between}.library-view-switch{width:100%}.library-view-btn{flex:1}.library-pagination{align-items:stretch;flex-direction:column}.library-pagination-summary{flex-direction:row;justify-content:space-between}.library-pagination-controls{justify-content:center;overflow-x:auto}.library-entity-tabs{width:100%}}@media (max-width: 520px){.library-entity-tab{gap:.35rem;padding-inline:.45rem;font-size:.8rem}.library-results-bar{align-items:flex-start;flex-direction:column;gap:.2rem}.library-pagination{padding-inline:.65rem}.library-pagination-nav span{display:none}.library-pagination-nav{padding-inline:.45rem}}.library-artist-best-tracks{border:1px solid color-mix(in srgb,var(--lib-accent, #2dd4bf) 35%,transparent);border-radius:.75rem;padding:.85rem .9rem .75rem;min-height:0;height:auto;overflow:hidden;display:flex;flex-direction:column;background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 4%,transparent);align-self:stretch}.library-artist-liked-tracks{background:color-mix(in srgb,#e2557a 5%,transparent);border-color:color-mix(in srgb,#e2557a 32%,transparent)}.library-artist-best-tracks-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem;flex-shrink:0}.library-artist-best-tracks-title-row{display:inline-flex;align-items:center;gap:.45rem;min-width:0}.library-artist-best-tracks-title{margin:0;font-size:.95rem;font-weight:600;letter-spacing:.02em}.library-artist-best-tracks-play-all{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:1.75rem;padding:.2rem .65rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--lib-accent, #2dd4bf) 55%,transparent);background:transparent;color:var(--lib-accent, #2dd4bf);font-family:inherit;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap}.library-artist-best-tracks-play-all:hover:not(:disabled){background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 12%,transparent)}.library-artist-best-tracks-play-all:disabled{opacity:.5;cursor:not-allowed}.library-artist-best-tracks-sources{display:inline-flex;gap:.25rem;flex-shrink:0}.library-artist-best-tracks-source{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:1.75rem;padding:0 .4rem;border-radius:.4rem;border:1px solid transparent;background:transparent;color:inherit;cursor:pointer;opacity:.65}.library-artist-best-tracks-source.is-active{opacity:1;border-color:var(--lib-accent, #2dd4bf);color:var(--lib-accent, #2dd4bf)}.library-artist-best-tracks-list{list-style:none;margin:0;padding:0 .85rem 0 0;overflow:auto;display:flex;flex-direction:column;gap:.15rem;flex:1;min-height:0;scrollbar-gutter:stable}.library-artist-best-tracks-row{display:grid;grid-template-columns:1.1rem 2.35rem 1.75rem 1.25rem minmax(0,1fr) auto 1.75rem 1.75rem;align-items:center;gap:.3rem;padding:.28rem .15rem .28rem .2rem;border-radius:.4rem}.library-artist-liked-tracks-row{grid-template-columns:2.35rem 1.75rem 1.25rem minmax(0,1fr) auto 1.75rem}.library-artist-best-tracks-heart-slot{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex-shrink:0}.library-artist-best-tracks-heart{width:1.75rem;height:1.75rem;flex-shrink:0}.library-artist-best-tracks-cover{width:2.35rem;height:2.35rem;border-radius:.3rem;object-fit:cover;background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 12%,transparent);display:block}.library-artist-best-tracks-cover-placeholder{width:2.35rem;height:2.35rem;border-radius:.3rem;background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 12%,transparent);opacity:.5}.library-artist-best-tracks-row.is-selected{background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 12%,transparent)}.library-artist-best-tracks-check{display:inline-flex;align-items:center;justify-content:center;margin:0;cursor:pointer}.library-artist-best-tracks-check input{width:.9rem;height:.9rem;accent-color:var(--lib-accent, #2dd4bf)}.library-artist-best-tracks-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem;flex-shrink:0}.library-artist-best-tracks-select-all{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;opacity:.8;cursor:pointer}.library-artist-best-tracks-select-all input{accent-color:var(--lib-accent, #2dd4bf)}.library-artist-best-tracks-download-selected,.library-artist-best-tracks-icon-btn,.library-artist-best-tracks-dl{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;border:1px solid color-mix(in srgb,var(--lib-accent, #2dd4bf) 45%,transparent);background:transparent;color:var(--lib-accent, #2dd4bf);cursor:pointer;font-family:inherit}.library-artist-best-tracks-download-selected{min-height:1.65rem;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}.library-artist-best-tracks-icon-btn,.library-artist-best-tracks-dl{width:1.65rem;height:1.65rem;padding:0;border-radius:999px}.library-artist-best-tracks-download-selected:disabled,.library-artist-best-tracks-icon-btn:disabled,.library-artist-best-tracks-dl:disabled{opacity:.45;cursor:not-allowed}.library-artist-best-tracks-msg.is-error{color:#f87171;opacity:1}.library-artist-best-tracks-row:hover{background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 10%,transparent)}.library-artist-best-tracks-play{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:999px;background:transparent;color:var(--lib-accent, #2dd4bf);cursor:pointer;padding:0}.library-artist-best-tracks-play:disabled{opacity:.5;cursor:wait}.library-artist-best-tracks-pos{font-size:.75rem;opacity:.55;text-align:center}.library-artist-best-tracks-meta{min-width:0;display:flex;flex-direction:column;gap:.05rem}.library-artist-best-tracks-track-title{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-artist-best-tracks-album{font-size:.72rem;opacity:.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-artist-best-tracks-have{font-size:.68rem;color:#3db87a;font-weight:600}.library-artist-best-tracks-have.is-meta{color:var(--lib-accent, #2dd4bf);opacity:.85}.library-artist-best-tracks-dur{font-size:.75rem;opacity:.55;font-variant-numeric:tabular-nums}.library-artist-best-tracks-empty,.library-artist-best-tracks-msg{margin:0;display:flex;align-items:center;gap:.5rem;font-size:.82rem;opacity:.7;line-height:1.4}.library-artist-related{margin-top:2rem;margin-bottom:1rem;min-width:0;max-width:100%}.library-artist-related-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem;flex-wrap:wrap}.library-artist-related-title-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;min-width:0}.library-artist-related-title{margin:0;font-size:1.05rem;font-weight:650}.library-artist-related-icon-btn,.library-artist-related-nav-btn,.library-artist-related-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:.45rem;border:1px solid var(--border);background:color-mix(in srgb,var(--panel, #121826) 88%,transparent);color:inherit;cursor:pointer;text-decoration:none;transition:border-color .15s,background .15s,color .15s}.library-artist-related-icon-btn:hover:not(:disabled),.library-artist-related-nav-btn:hover:not(:disabled),.library-artist-related-action-btn:hover:not(:disabled){border-color:var(--lib-accent);color:var(--lib-accent)}.library-artist-related-icon-btn:disabled,.library-artist-related-nav-btn:disabled,.library-artist-related-action-btn:disabled{opacity:.5;cursor:default}.library-artist-related-sources{display:inline-flex;gap:.35rem}.library-artist-related-source{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:.45rem;border:1px solid transparent;background:transparent;cursor:pointer;opacity:.55}.library-artist-related-source.is-active{opacity:1;border-color:var(--lib-accent);background:var(--lib-accent-soft)}.library-artist-related-nav{display:inline-flex;gap:.35rem}.library-artist-related-scroller{width:100%;max-width:100%;min-width:0;overflow:hidden;padding:.2rem .15rem .65rem}.library-artist-related-track{display:flex;flex-wrap:nowrap;gap:.9rem;width:max-content;will-change:transform}.library-artist-related-card{flex:0 0 clamp(130px,12vw,220px);width:clamp(130px,12vw,220px);aspect-ratio:1}.library-artist-related-card--remote{cursor:default}.library-artist-related-remote-actions{position:absolute;top:.55rem;right:.55rem;z-index:3;display:flex;gap:.35rem}.library-artist-related-empty,.library-artist-related-msg{margin:0;display:flex;align-items:center;gap:.5rem;font-size:.82rem;opacity:.7;line-height:1.4}.library-artist-related-msg.is-error{color:#f87171;opacity:1}.library-artist-cover-editable{cursor:pointer}.library-artist-cover-editable:hover .library-artist-cover-edit-badge{opacity:1}.library-artist-cover-edit-badge{position:absolute;right:.5rem;bottom:.5rem;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:999px;background:#000000a6;color:#fff;opacity:0;transition:opacity .15s ease;pointer-events:none}.artist-cover-modal{max-width:36rem}.artist-cover-modal-preview{display:flex;align-items:center;gap:1rem;padding:0 1rem 1rem}.artist-cover-modal-preview img,.artist-cover-modal-preview .match-modal-result-placeholder{width:5.5rem;height:5.5rem;border-radius:var(--radius-md);flex-shrink:0}.artist-cover-modal-hint{margin:0;font-size:.85rem;color:var(--text-muted);line-height:1.4}.artist-cover-source-tabs{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 1rem .75rem}.artist-cover-source-tabs button{border:1px solid var(--border);background:transparent;color:var(--text-muted);border-radius:999px;padding:.35rem .75rem;font-size:.85rem;cursor:pointer}.artist-cover-source-tabs button.is-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.artist-cover-upload{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:0 1rem 1rem}.artist-cover-file-input{display:none}.artist-cover-upload-hint{font-size:.85rem;color:var(--text-muted)}.library-artist-cover{position:relative;aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-strong);background:linear-gradient(145deg,#1a2238,#0d111c);box-shadow:var(--shadow-card)}.library-artist-cover img{width:100%;height:100%;object-fit:cover}.library-artist-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:800;color:var(--lib-accent);opacity:.5}.library-artist-info h1{font-family:var(--font-display);font-size:2.25rem;margin:0 0 .75rem;letter-spacing:-.02em}.library-artist-name-edit{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;margin:0 0 .85rem;max-width:36rem}.library-artist-name-edit-top{display:flex;align-items:flex-end;gap:.65rem;width:100%}.library-artist-name-edit-top .library-artist-name-edit-label{flex:1;min-width:0}.library-artist-enhanced-heart{width:2.25rem;height:2.25rem;flex-shrink:0;margin-bottom:.2rem}.library-artist-name-edit-label{display:flex;flex-direction:column;gap:.35rem;width:100%;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.library-artist-name-edit-label input{font-family:var(--font-display);font-size:1.75rem;letter-spacing:-.02em;padding:.45rem .65rem;border:1px solid color-mix(in srgb,var(--lib-accent) 35%,transparent);border-radius:8px;background:color-mix(in srgb,var(--bg) 88%,var(--lib-accent));color:var(--text)}.library-artist-name-edit .library-btn-primary{display:inline-flex;align-items:center;gap:.4rem}.library-artist-name-edit-msg{margin:0;font-size:.85rem;color:var(--lib-accent)}.library-artist-stats{display:flex;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.25rem}.library-artist-stat-item strong{display:block;font-size:1.35rem;color:var(--lib-accent)}.library-artist-stat-item span{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.library-artist-actions{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;width:min(100%,17.5rem);margin-bottom:1rem}.library-artist-action-btn{width:100%;min-height:2.75rem;justify-content:center;padding-left:1rem;padding-right:1rem;box-sizing:border-box}.library-artist-action-btn .search-source-deezer-brand{justify-content:center}.library-artist-action-external{flex-shrink:0;opacity:.65;margin-left:.15rem}.library-artist-segments{display:flex;flex-direction:column;gap:.5rem;width:min(100%,22.5rem);margin-bottom:0}.library-artist-segments-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.library-artist-segments-row .library-segmented-tab{width:100%;min-width:0}.library-segmented-tab{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.5rem;padding:.55rem 1.15rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-muted);font-family:inherit;font-size:.9rem;font-weight:600;line-height:1.2;cursor:pointer;transition:border-color .15s,color .15s,background .15s,box-shadow .15s}.library-segmented-tab:hover:not(.is-active){color:var(--text);border-color:color-mix(in srgb,var(--lib-accent) 45%,transparent)}.library-segmented-tab.is-active{background:var(--lib-accent-soft);border-color:var(--lib-accent);color:var(--lib-accent);box-shadow:0 0 18px var(--lib-accent-glow)}.library-segmented-tab-count{font-size:.8rem;font-weight:700;color:var(--text);min-width:1.1rem;text-align:center}.library-segmented-tab.is-active .library-segmented-tab-count{color:var(--text)}.library-album-author{margin:.2rem 0 0;font-size:.78rem;color:var(--text-muted);line-height:1.35}.library-album-author-link{padding:0;border:none;background:none;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;text-decoration:none;text-align:left}.library-album-author-link:hover{color:var(--text);opacity:.85}.library-btn-primary{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem 1.1rem;border-radius:999px;border:none;background:var(--lib-accent);color:#0a0812;font-weight:700;font-size:.875rem;cursor:pointer;transition:filter .15s,transform .15s}.library-btn-primary:hover:not(:disabled){filter:brightness(1.08)}.library-btn-primary:disabled{opacity:.6;cursor:wait}.library-btn-ghost{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1rem;border-radius:999px;border:1px solid var(--border-strong);background:transparent;color:var(--text);font-size:.875rem;cursor:pointer;text-decoration:none}.library-btn-ghost:hover{border-color:var(--lib-accent);color:var(--lib-accent)}.library-section{margin-bottom:2.5rem}.library-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.library-section-header h2{margin:0;font-size:1.25rem;font-weight:700}.library-section-count{font-size:.85rem;color:var(--text-muted)}.library-album-grid{--grid-card-min: clamp(130px, 12vw, 220px)}.library-album-card{display:block;position:relative}.library-album-thumb{position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card);border:1px solid var(--border);margin-bottom:.5rem;cursor:pointer;font-family:inherit;transition:transform .15s,border-color .15s,box-shadow .15s}.library-album-thumb:hover{transform:translateY(-2px);border-color:var(--lib-accent)}.library-album-thumb.is-active{outline:2px solid var(--lib-accent);outline-offset:3px}.library-album-thumb img{width:100%;height:100%;object-fit:cover}.library-album-thumb-frame,.library-enhanced-cover-frame{position:relative;display:block;width:100%;height:100%;border-radius:inherit;overflow:hidden}.library-album-thumb.is-local-low{border-color:#e05050;box-shadow:inset 0 0 0 2px #e05050}.library-album-thumb.is-local-mid{border-color:#e0b020;box-shadow:inset 0 0 0 2px #e0b020}.library-album-thumb.is-local-full{border-color:#3db87a;box-shadow:inset 0 0 0 2px #3db87a}.library-local-cover-frame.is-local-low{box-shadow:inset 0 0 0 3px #e05050}.library-local-cover-frame.is-local-mid{box-shadow:inset 0 0 0 3px #e0b020}.library-local-cover-frame.is-local-full{box-shadow:inset 0 0 0 3px #3db87a}.library-local-status-badge{position:absolute;left:6px;bottom:6px;z-index:4;padding:.15rem .45rem;border-radius:6px;background:#000000b8;color:#fff;font-size:.72rem;font-weight:700;line-height:1.2;pointer-events:none}.library-local-status-badge--enhanced{position:static;flex-shrink:0;align-self:center;padding:.2rem .5rem;border-radius:6px;background:color-mix(in srgb,var(--bg-card) 88%,var(--text-muted));border:1px solid var(--border);color:var(--text);font-size:.75rem;font-weight:700;line-height:1.2;white-space:nowrap;pointer-events:auto}.library-local-file-path{display:block;margin-top:.2rem;font-size:.74rem;color:var(--text-muted);word-break:break-all;line-height:1.35}.library-local-file-path.is-missing{color:var(--text-dim)}.library-album-expand-track-row.is-local-track-present,.library-enhanced-track-row.is-local-track-present,.library-artist-best-tracks-row.is-local-track-present{box-shadow:inset 0 0 0 2px #3db87a;border-radius:8px}.library-enhanced-track-file{min-width:0;max-width:100%;font-size:.72rem;color:var(--text-muted);line-height:1.3;overflow:hidden}.library-enhanced-track-file .library-local-file-path{margin-top:0;font-size:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal;max-width:100%}.library-enhanced-track-performer{min-width:0;display:flex;flex-direction:column;gap:.22rem;font-size:.78rem;color:var(--text-muted);overflow:hidden}.library-enhanced-track-performer>span:not(.library-enhanced-track-cell-label),.library-enhanced-track-performer-link,.library-enhanced-track-performer-list{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.library-enhanced-track-performer--co{align-self:stretch}.library-enhanced-track-performer-list{display:flex;flex-direction:column;gap:.18rem}.library-enhanced-track-performer-link{color:var(--text);text-decoration:none}.library-enhanced-track-performer-link:hover{color:var(--lib-accent)}.library-album-expand-cover-square.library-local-cover-frame{width:112px;height:112px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.library-enhanced-cover-frame{width:42px;height:42px;border-radius:6px}.library-album-thumb-play{position:absolute;right:.45rem;bottom:.45rem;z-index:3;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:50%;background:color-mix(in srgb,var(--accent) 88%,black);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px #0006;opacity:0;transform:scale(.9);transition:opacity .15s ease,transform .15s ease,background .15s ease}.library-album-thumb:hover .library-album-thumb-play,.library-album-thumb-play.is-playing,.library-album-thumb-play:focus-visible{opacity:1;transform:scale(1)}.library-album-thumb-play:hover:not(:disabled){background:var(--accent)}.library-album-thumb-play:disabled{cursor:wait;opacity:1}.library-album-thumb-play--sm{width:1.35rem;height:1.35rem;right:.12rem;bottom:.12rem;opacity:0}.library-enhanced-summary-wrap:hover .library-album-thumb-play--sm,.library-enhanced-summary:hover .library-album-thumb-play--sm,.library-album-thumb-play--sm.is-playing,.library-album-thumb-play--sm:focus-visible{opacity:1}.library-album-title{font-size:.875rem;font-weight:600;margin:0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.library-album-meta{display:flex;flex-wrap:wrap;gap:.35rem .6rem;font-size:.75rem;color:var(--text-dim);margin:.25rem 0 0;line-height:1.3}.library-album-genre{color:var(--accent, #2dd4bf)}.library-album-date{color:var(--text-dim)}.library-empty-cover{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e2640,#12182a);color:var(--text-dim);font-size:.75rem}.library-album-thumb--add{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2dd4bf14,#2dd4bf05);border-style:dashed;border-color:color-mix(in srgb,var(--lib-accent, #2dd4bf) 45%,var(--border));color:var(--lib-accent, #2dd4bf)}.library-album-thumb--add:hover{background:linear-gradient(135deg,#2dd4bf24,#2dd4bf0d);border-color:var(--lib-accent, #2dd4bf)}.library-album-title--add{color:var(--text-muted);font-weight:500}.library-add-release-dialog{max-width:420px}.library-add-release-actions{display:flex;flex-direction:column;gap:.65rem;padding:0 1rem 1rem}.library-add-release-action{display:flex;align-items:flex-start;gap:.85rem;width:100%;padding:.9rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.library-add-release-action:hover:not(:disabled){border-color:var(--lib-accent, #2dd4bf);background:color-mix(in srgb,var(--lib-accent, #2dd4bf) 6%,var(--bg-card))}.library-add-release-action.is-disabled,.library-add-release-action:disabled{opacity:.45;cursor:not-allowed}.library-add-release-action span{display:flex;flex-direction:column;gap:.2rem}.library-add-release-action strong{font-size:.95rem}.library-add-release-action em{font-size:.8rem;font-style:normal;color:var(--text-muted)}.library-import-release-modal .search-sources{padding:0 1rem .75rem}.library-import-release-fields{display:grid;gap:.65rem;padding:0 1rem .75rem}.library-import-release-field{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--text-muted)}.library-import-release-field input{width:100%;padding:.55rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:inherit;font-family:inherit;font-size:.9rem}.library-enhanced-table{display:flex;flex-direction:column;gap:.55rem;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.library-enhanced-head,.library-enhanced-summary-wrap{display:grid;grid-template-columns:minmax(280px,1.5fr) .5fr .65fr .45fr 2.4rem .75fr;gap:.8rem;align-items:center}.library-enhanced-head{padding:0 1rem .35rem;color:var(--text-dim);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.library-enhanced-fav-col,.library-enhanced-summary-fav{display:flex;align-items:center;justify-content:center}.library-enhanced-row{border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffff06;overflow:hidden}.library-enhanced-summary-wrap{padding:.75rem 1rem;transition:background .15s}.library-enhanced-summary-wrap:hover{background:var(--lib-accent-soft)}.library-enhanced-summary{grid-column:1 / 5;display:grid;grid-template-columns:subgrid;align-items:center;width:auto;padding:0;border:none;background:transparent;color:var(--text);font-family:inherit;font-size:.88rem;text-align:left;cursor:pointer}.library-enhanced-release{min-width:0;display:flex;align-items:center;gap:.7rem}.library-enhanced-cover{position:relative;flex-shrink:0;width:42px;height:42px}.library-enhanced-cover img,.library-enhanced-cover-placeholder{width:42px;height:42px;border-radius:8px;border:1px solid var(--border);object-fit:cover;display:block}.library-enhanced-cover .library-enhanced-cover-placeholder{display:inline-flex;align-items:center;justify-content:center;color:var(--text-dim);background:linear-gradient(135deg,#1e2640,#12182a)}.library-enhanced-release strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-enhanced-release em{display:block;margin-top:.15rem;color:var(--text-muted);font-size:.78rem;font-style:normal}.library-enhanced-release em span{color:var(--lib-accent)}.library-enhanced-action-hint{display:inline-flex;align-items:center;justify-content:flex-start;gap:.35rem;padding:0;border:none;background:transparent;color:var(--lib-accent);font:inherit;font-size:.8rem;cursor:pointer;text-align:left}.library-enhanced-detail{padding:1rem;border-top:1px solid var(--border);background:#00000029}.library-enhanced-ids{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:.85rem}.library-enhanced-id-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .65rem;border-radius:8px;border:1px solid var(--border);background:#ffffff0a;font-size:.8rem}.library-enhanced-id-label{color:var(--text-muted);font-weight:600}.library-enhanced-id-chip code{font-family:ui-monospace,monospace;font-size:.8rem;color:var(--lib-accent)}.library-enhanced-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.library-enhanced-edit-grid label{display:flex;flex-direction:column;gap:.35rem;color:var(--text-muted);font-size:.76rem;font-weight:700}.library-enhanced-edit-grid input,.library-enhanced-edit-grid select,.library-enhanced-track-row input{width:100%;min-width:0;border:1px solid var(--border-strong);border-radius:8px;background:#ffffff0a;color:var(--text);font:inherit}.library-enhanced-edit-grid input,.library-enhanced-edit-grid select{padding:.6rem .7rem}.library-enhanced-track-row input{width:100%;min-width:0;box-sizing:border-box;padding:.5rem .55rem;font-size:.82rem}.library-enhanced-edit-grid input:disabled,.library-enhanced-edit-grid select:disabled,.library-enhanced-track-row input:disabled{opacity:.55;cursor:not-allowed}.library-enhanced-save{margin-top:.85rem}.library-enhanced-track-area{margin-top:1.1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.library-enhanced-track-area h3{margin:0 0 .7rem;font-size:1rem}.library-enhanced-disc{margin-bottom:1rem}.library-enhanced-disc h4{margin:0 0 .5rem;color:var(--text-muted);font-size:.85rem}.library-enhanced-track-table{display:grid;grid-template-columns:9.6rem 2.5rem minmax(7.5rem,1.15fr) minmax(5rem,.7fr) minmax(6.5rem,.9fr) minmax(6.5rem,.9fr) minmax(4.5rem,.65fr) minmax(4.5rem,.65fr) 2.6rem 5rem 3.2rem minmax(4.5rem,.65fr) minmax(6rem,.95fr) 2.25rem 2.25rem 2.25rem;column-gap:.4rem;row-gap:0;align-items:center;min-width:70rem}.library-enhanced-track-head,.library-enhanced-track-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;column-gap:inherit;align-items:center}.library-enhanced-track-head>*,.library-enhanced-track-row>*{min-width:0;max-width:100%}.library-enhanced-track-head{padding:0 0 .4rem;margin-bottom:.15rem;border-bottom:1px solid var(--border);color:var(--text-dim);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.library-enhanced-track-head>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-enhanced-track-row{margin:0;padding:.4rem 0;border-bottom:1px solid color-mix(in srgb,var(--border) 85%,transparent)}.library-enhanced-disc .library-enhanced-track-row:last-child{border-bottom:none}.library-enhanced-track-row.is-playing{background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:8px}.library-enhanced-track-play{justify-self:center}.library-enhanced-track-match{min-width:0;display:flex;align-items:center;gap:.25rem;overflow:hidden}.library-enhanced-track-match-heart{width:1.55rem;height:1.55rem;flex-shrink:0;background:transparent;border:none;color:var(--text-muted);-webkit-backdrop-filter:none;backdrop-filter:none}.library-enhanced-track-match-heart.is-on{color:#ff6b8a}.library-enhanced-track-match .track-match-badges{flex-wrap:nowrap;gap:.18rem;min-width:0}.library-enhanced-track-match .track-match-badge{box-sizing:border-box;width:1.7rem;min-width:1.7rem;height:1.25rem;padding:0;flex-shrink:0;border-radius:999px;font-size:.55rem;line-height:1}.track-match-badges{display:flex;flex-wrap:wrap;gap:.22rem}.track-match-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;padding:.14rem .34rem;border-radius:999px;border:1px solid transparent;font-size:.62rem;font-weight:700;letter-spacing:.02em;line-height:1.2;white-space:nowrap}.track-match-badge--tunetide.is-linked{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.track-match-badge--yandex.is-linked{color:#fc3c00;border-color:color-mix(in srgb,#fc3c00 55%,transparent);background:color-mix(in srgb,#fc3c00 12%,transparent)}.track-match-badge--deezer.is-linked{color:#a238ff;border-color:color-mix(in srgb,#a238ff 55%,transparent);background:color-mix(in srgb,#a238ff 12%,transparent)}.track-match-badge--navidrome.is-linked{color:#5eead4;border-color:color-mix(in srgb,#2dd4bf 55%,transparent);background:color-mix(in srgb,#2dd4bf 12%,transparent)}.track-match-badge.is-missing{color:var(--text-dim);border-color:color-mix(in srgb,var(--text-dim) 35%,transparent);background:#ffffff08}button.track-match-badge.is-clickable{cursor:pointer;font:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;background:#ffffff08}button.track-match-badge.is-clickable.is-linked{background:transparent}button.track-match-badge.is-clickable.is-linked.track-match-badge--tunetide{background:color-mix(in srgb,var(--accent) 12%,transparent)}button.track-match-badge.is-clickable.is-linked.track-match-badge--yandex{background:color-mix(in srgb,#fc3c00 12%,transparent)}button.track-match-badge.is-clickable.is-linked.track-match-badge--deezer{background:color-mix(in srgb,#a238ff 12%,transparent)}button.track-match-badge.is-clickable.is-linked.track-match-badge--navidrome{background:color-mix(in srgb,#2dd4bf 12%,transparent)}button.track-match-badge.is-clickable:hover{filter:brightness(1.15)}.entity-match-panel{display:flex;flex-direction:column;gap:.55rem;margin:.65rem 0 .85rem}.library-enhanced-album-match{margin:.75rem 0 .25rem}.entity-match-links,.entity-match-statuses{display:flex;flex-wrap:wrap;gap:.35rem}.entity-match-link{display:inline-flex;align-items:center;justify-content:center;padding:.22rem .55rem;border-radius:.35rem;border:1px solid transparent;font-size:.62rem;font-weight:800;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}.entity-match-link--yandex{color:#fc3c00;border-color:color-mix(in srgb,#fc3c00 50%,transparent);background:color-mix(in srgb,#fc3c00 10%,transparent)}.entity-match-link--deezer{color:#a238ff;border-color:color-mix(in srgb,#a238ff 50%,transparent);background:color-mix(in srgb,#a238ff 10%,transparent)}.entity-match-link.is-disabled{opacity:.45;cursor:default}.entity-match-status{display:inline-flex;align-items:center;padding:.18rem .55rem;border-radius:999px;border:1px solid transparent;font-size:.68rem;font-weight:600;cursor:pointer;background:#ffffff08;transition:filter .15s ease}.entity-match-status:hover{filter:brightness(1.12)}.entity-match-status.is-linked{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.entity-match-status.is-missing{color:#f07178;border-color:color-mix(in srgb,#f07178 40%,transparent)}.match-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.match-modal{width:min(640px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;padding:1rem 1.1rem 1.1rem;overflow:hidden}.match-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.match-modal-header h2{margin:0;font-size:1.05rem}.match-modal-close{width:2rem;height:2rem;border:none;border-radius:999px;background:#ffffff14;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.match-modal-intro{margin:-.2rem 0 .8rem;color:var(--text-muted);font-size:.9rem;line-height:1.4}.match-modal-skip-bar{display:flex;align-items:center;gap:.65rem;margin:-.15rem 0 .75rem;padding:.55rem .65rem;border-radius:.45rem;background:color-mix(in srgb,var(--accent) 8%,transparent)}.match-modal-skip-hint{color:var(--text-muted);font-size:.78rem;line-height:1.35}.match-modal-toolbar{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.75rem}.match-modal-toolbar input{flex:1 1 12rem;min-width:0}.match-modal-clear{border:1px solid color-mix(in srgb,#f07178 45%,transparent);background:color-mix(in srgb,#f07178 12%,transparent);color:#f07178;border-radius:.45rem;padding:.45rem .75rem;font-weight:600;cursor:pointer}.match-modal-results{overflow:auto;display:flex;flex-direction:column;gap:.55rem;padding-right:.15rem}.match-modal-result{display:grid;grid-template-columns:3.25rem 1fr auto;gap:.65rem;align-items:center;padding:.65rem;border:1px solid var(--border);border-radius:.65rem;background:#ffffff05}.match-modal-result.is-in-library{border:2px solid #3db87a}.match-modal-in-library-label{font-size:.78rem;font-weight:600;color:#3db87a;white-space:nowrap;padding:.35rem .65rem}.match-modal-result img,.match-modal-result-placeholder{width:3.25rem;height:3.25rem;border-radius:.45rem;object-fit:cover;background:#ffffff0f;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.match-modal-result-body{min-width:0;display:flex;flex-direction:column;gap:.12rem}.match-modal-result-body strong{font-size:.92rem}.match-modal-result-body span,.match-modal-result-body code,.match-modal-result-body em{font-size:.78rem;color:var(--text-muted);font-style:normal}.match-modal-hub-badge{display:inline-flex;align-self:flex-start;margin-top:.15rem;padding:.12rem .45rem;border-radius:999px;font-size:.72rem!important;font-weight:600;color:var(--success, #1f7a4d)!important;background:color-mix(in srgb,var(--success, #1f7a4d) 16%,transparent)}.match-modal-hub-badge--pending{color:#a16207!important;background:color-mix(in srgb,#eab308 18%,transparent)}.match-modal-release-link{display:inline-flex;align-items:center;gap:.3rem;width:fit-content;margin-top:.1rem;padding:0;border:0;background:none;color:var(--accent, #5b8def);font-size:.78rem;font-weight:500;text-decoration:none;cursor:pointer}.match-modal-release-link span{color:inherit;font-size:inherit}.match-modal-release-link:hover{text-decoration:underline}.match-criteria-summary{display:flex;flex-direction:column;gap:.15rem}.match-criteria-summary em{font-size:.78rem;color:var(--text-muted);font-style:normal}.match-criteria-failed{font-size:.72rem;color:#e0b020;line-height:1.3}.match-criteria-ok{font-size:.72rem;color:#3db87a;line-height:1.3}.match-modal-apply{white-space:nowrap}.match-modal-action-legend{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:0 0 .85rem}.match-modal-action-legend-item{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--border);font-size:.82rem;line-height:1.35}.match-modal-action-legend-item strong{font-size:.88rem}.match-modal-action-legend-item span{color:var(--muted, #6b7280)}.match-modal-action-legend-item--match{background:color-mix(in srgb,#0d9488 12%,transparent);border-color:color-mix(in srgb,#0d9488 45%,var(--border))}.match-modal-action-legend-item--match strong{color:#0f766e}.match-modal-action-legend-item--couple{background:color-mix(in srgb,#d97706 12%,transparent);border-color:color-mix(in srgb,#d97706 45%,var(--border))}.match-modal-action-legend-item--couple strong{color:#b45309}.match-modal-apply--match{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2rem;padding:.35rem .75rem;border-radius:8px;border:1px solid color-mix(in srgb,#0d9488 55%,transparent);background:#0d9488;color:#fff;font-weight:600;cursor:pointer}.match-modal-apply--match:hover:not(:disabled){background:#0f766e}.match-modal-apply--match:disabled{opacity:.6;cursor:not-allowed}.match-modal-couple--apply{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2rem;padding:.35rem .75rem;border-radius:8px;border:1px solid color-mix(in srgb,#d97706 55%,transparent);background:color-mix(in srgb,#d97706 14%,transparent);color:#b45309;font-weight:600;cursor:pointer}.match-modal-couple--apply:hover:not(:disabled){background:color-mix(in srgb,#d97706 24%,transparent)}.match-modal-couple--apply:disabled{opacity:.6;cursor:not-allowed}.match-modal-result-actions{display:flex;flex-direction:column;gap:.35rem;align-items:stretch}.match-modal-preview{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;border:1px solid var(--border);background:transparent;color:var(--text);border-radius:8px;padding:.35rem .65rem;cursor:pointer}.match-modal-preview:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.match-modal-preview.is-playing{border-color:var(--accent);color:var(--accent)}.match-modal-preview:disabled{opacity:.45;cursor:not-allowed}.match-modal-global{border:1px solid var(--border);background:transparent;color:var(--text);border-radius:8px;padding:.45rem .75rem;font-size:.82rem;cursor:pointer;white-space:nowrap}.match-modal-global:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.match-modal-global:disabled{opacity:.5;cursor:not-allowed}.global-match-page{display:flex;flex-direction:column;gap:1rem}.global-match-header h1{margin:.35rem 0 0;font-size:1.35rem}.global-match-subtitle{margin:.35rem 0 0;color:var(--text-muted);max-width:52rem}.global-match-loading{display:flex;align-items:center;gap:.65rem;padding:2rem 0;color:var(--text-muted)}.global-match-board{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1rem;align-items:start}.global-match-board-main{display:flex;flex-direction:column;gap:.45rem;min-width:0}.global-match-board-weak{border:1px solid var(--border);border-radius:12px;padding:.75rem;background:var(--surface-elevated);position:sticky;top:.75rem;align-self:start;display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - var(--topbar-height) - var(--player-height) - var(--content-padding-y) - 1.25rem);overflow:hidden}.global-match-board-weak-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem;margin-right:-.1rem}.global-match-board-weak h2{margin:0 0 .35rem;font-size:1rem}.global-match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;align-items:stretch}.global-match-row--head h2{margin:0;font-size:1rem}.global-match-row--pool{margin-bottom:.25rem}.global-match-cell--internal,.global-match-cell--link{min-width:0}.global-match-pool-label{font-size:.82rem;color:var(--text-muted);padding:.35rem 0}.global-match-pool{display:flex;flex-wrap:wrap;gap:.45rem;padding:.45rem;border:1px dashed color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:10px;min-height:3.5rem}.global-match-hint{margin:0 0 .65rem;font-size:.82rem;color:var(--text-muted)}.global-match-weak-list{display:flex;flex-direction:column;gap:.45rem}.global-match-empty{color:var(--text-muted);font-size:.9rem;margin:0}.global-match-slot{min-height:4.5rem;height:100%;display:flex;align-items:stretch;border-radius:10px}.global-match-slot.is-empty{border:1px dashed color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--surface) 80%,transparent)}.global-match-slot.is-filled{border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border))}.global-match-slot-placeholder{display:flex;align-items:center;justify-content:center;width:100%;padding:.65rem;text-align:center;font-size:.82rem;color:var(--text-muted)}.global-match-card{display:flex;align-items:center;gap:.45rem;padding:.45rem .55rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-elevated);width:100%;min-width:0}.global-match-card.is-compact{padding:.4rem .5rem}.global-match-card.is-draggable{cursor:grab}.global-match-card.is-draggable:active{cursor:grabbing}.global-match-drag{color:var(--text-muted);display:flex;flex-shrink:0}.global-match-card img,.global-match-card-placeholder{width:44px;height:44px;flex-shrink:0;border-radius:6px;object-fit:cover;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:1.1rem}.global-match-card-body{display:flex;flex:1 1 0;flex-direction:column;gap:.12rem;min-width:0}.global-match-card-body strong{font-size:.88rem;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.global-match-card-contributor{font-size:.75rem;color:var(--accent);line-height:1.25;white-space:normal;overflow-wrap:anywhere}.global-match-card-note{display:block;font-size:.72rem;color:color-mix(in srgb,var(--warning, #d4a017) 85%,var(--text));line-height:1.25}.global-match-contested-block{margin-bottom:.75rem}.global-match-contested-block h3{margin:0 0 .35rem;font-size:.82rem;color:color-mix(in srgb,var(--warning, #d4a017) 85%,var(--text))}.global-match-contributors-board{margin-bottom:1rem;padding:.85rem 1rem 1rem}.global-match-contributors-board-header{margin-bottom:.75rem}.global-match-contributors-board-header h2{margin:0 0 .25rem;font-size:1.05rem}.global-match-contributors-board-body{margin-top:0;padding-top:0;border-top:none}.global-match-batch-review{margin-bottom:1rem;padding:.85rem 1rem 1rem;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%)}.global-match-batch-review-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem;margin-bottom:.75rem}.global-match-batch-review-header h2{margin:0 0 .25rem;font-size:1.05rem}.global-match-batch-review-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.global-match-batch-review-list{display:flex;flex-direction:column;gap:.5rem}.global-match-batch-review-row{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem .75rem;align-items:center;padding:.55rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.global-match-batch-review-row.is-selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.global-match-batch-review-check input{width:1rem;height:1rem}.global-match-batch-review-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.5rem .75rem;align-items:center}.global-match-batch-review-pair strong{display:block;font-size:.92rem}.global-match-batch-review-pair span{display:block;font-size:.78rem;color:var(--muted)}.global-match-batch-review-arrow{font-size:.85rem;color:var(--muted);text-align:center}.global-match-batch-review-issues{grid-column:2 / -1;margin:0;font-size:.78rem;color:var(--warning, #b8860b)}.global-match-edit-board--contributors{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.global-match-card-body span,.global-match-card-body code{font-size:.75rem;color:var(--text-muted)}.global-match-card-clear{border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:.2rem;border-radius:6px;display:flex;flex-shrink:0}.global-match-card-clear:hover{color:var(--text);background:color-mix(in srgb,var(--border) 50%,transparent)}.global-match-import-zone{border:1px dashed color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:12px;padding:.85rem 1rem;background:color-mix(in srgb,var(--surface-elevated) 90%,transparent)}.global-match-import-zone h2{margin:0 0 .25rem;font-size:1rem}.global-match-import-placeholder{margin-top:.55rem;padding:1.25rem;text-align:center;color:var(--text-muted);font-size:.88rem;border:1px dashed var(--border);border-radius:10px}.global-match-import-list{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.55rem}.global-match-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.5rem;border-top:1px solid var(--border)}.global-match-summary{display:flex;gap:1rem;color:var(--text-muted);font-size:.9rem}.global-match-card.is-match-full,.global-match-slot.is-match-full{border:2px solid #3db87a}.global-match-card.is-match-linked,.global-match-slot.is-match-linked{border:2px solid var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}.global-match-card.is-match-partial,.global-match-slot.is-match-partial{border:2px solid #e0b020}.global-match-track-card.is-match-full,.global-match-slot.global-match-slot--track.is-match-full{border:2px solid #3db87a}.global-match-track-card.is-match-partial,.global-match-slot.global-match-slot--track.is-match-partial{border:2px solid #e0b020}.global-match-track-mismatch{font-size:.72rem;color:#e0b020;line-height:1.3}.global-match-collect-text{margin:0 0 .75rem;color:var(--text-muted);line-height:1.45;font-size:.92rem}.global-match-collect-note{margin:0 0 .5rem;font-size:.85rem;color:var(--accent)}.global-match-edit-btn{border:1px solid var(--border);background:transparent;color:var(--accent);border-radius:8px;padding:.35rem .55rem;font-size:.78rem;cursor:pointer;white-space:nowrap;flex-shrink:0}.global-match-edit-btn--inline{margin-top:.35rem;align-self:flex-start}.global-match-edit-modal{width:min(960px,96vw);max-height:90vh;overflow:auto}.global-match-edit-subtitle{margin:.2rem 0 0;font-size:.85rem;color:var(--text-muted)}.global-match-edit-board{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:1rem;align-items:start}.global-match-edit-main{min-width:0}.global-match-edit-external h3{margin:0 0 .35rem;font-size:.95rem}.global-match-edit-footer{display:flex;justify-content:flex-end;padding-top:.75rem;border-top:1px solid var(--border)}.global-match-track-card{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-elevated);width:100%;min-width:0}.global-match-track-card.is-draggable{cursor:grab}.global-match-track-card-body{display:flex;flex:1 1 0;flex-direction:column;gap:.1rem;min-width:0}.global-match-track-card-body strong{font-size:.82rem;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.global-match-track-card-body span,.global-match-track-card-body code{font-size:.72rem;color:var(--text-muted)}.global-match-slot--track{min-height:3.2rem}.global-match-row--track{align-items:flex-start}.global-match-track-internal-wrap{display:flex;align-items:flex-start;gap:.35rem;width:100%}.global-match-track-expand-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;margin-top:.45rem;padding:.15rem;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer}.global-match-track-expand-toggle:hover{color:var(--text);background:var(--surface-hover, rgba(255, 255, 255, .06))}.global-match-track-expand{margin-top:.45rem;margin-left:1.35rem;padding:.45rem .5rem;border:1px dashed var(--border);border-radius:8px;background:var(--surface)}.global-match-track-expand-label{margin:0 0 .35rem;font-size:.72rem;color:var(--text-muted)}.global-match-track-performers{display:flex;flex-direction:column;gap:.35rem}.global-match-track-performer-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.35rem}.global-match-track-performer-cell{display:flex;flex-direction:column;gap:.1rem;min-width:0;padding:.35rem .45rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-elevated);font-size:.75rem}.global-match-track-performer-cell strong,.global-match-track-performer-cell span{line-height:1.3;overflow-wrap:anywhere}.global-match-track-performer-cell code{font-size:.68rem;color:var(--text-muted)}.global-match-track-performer-cell--link.is-match-full{border-color:var(--match-full-border, #3ecf8e)}.global-match-track-performer-cell--link.is-match-partial{border-color:var(--match-partial-border, #e6c84b)}.global-match-track-performer-cell--link.is-empty{border-style:dashed;color:var(--text-muted)}@media (max-width: 860px){.global-match-edit-board{grid-template-columns:1fr}}@media (max-width: 960px){.global-match-board{grid-template-columns:1fr}.global-match-board-weak{position:static;max-height:none;overflow:visible}.global-match-board-weak-scroll{overflow:visible;max-height:none}}.match-modal-empty{display:flex;align-items:center;justify-content:center;gap:.55rem;padding:1.5rem .5rem;color:var(--text-muted);text-align:center}.alert-warning{border-color:color-mix(in srgb,#f0c040 45%,transparent);background:color-mix(in srgb,#f0c040 10%,transparent);color:#f0c040}.library-enhanced-track-cell{display:flex;flex-direction:column;gap:.2rem;min-width:0}.library-enhanced-track-cell-label{display:none;color:var(--text-dim);font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.library-enhanced-track-duration{display:flex;flex-direction:column;gap:.2rem;color:var(--text-muted);font-size:.82rem;font-variant-numeric:tabular-nums}.library-enhanced-track-save,.library-enhanced-track-download{width:2.25rem;height:2.25rem;justify-content:center;padding:0}.library-enhanced-album-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.library-artist-download-discography{margin-left:auto}.download-discography-dialog{max-width:36rem}.download-discography-toolbar{margin-bottom:.75rem}.download-discography-select-all{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.download-discography-list{max-height:min(50vh,24rem);overflow:auto;display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.download-discography-item{display:flex;align-items:center;gap:.55rem;padding:.45rem .35rem;border-radius:8px;cursor:pointer}.download-discography-thumb{flex:0 0 3rem;width:3rem;height:3rem;border-radius:.45rem;object-fit:cover;background:#ffffff0f}.download-discography-thumb.is-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:1rem}.download-discography-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.download-discography-item-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.download-discography-item-main em{font-style:normal;color:var(--text-muted);font-size:.82rem}.download-discography-item-title-row{display:flex;align-items:center;gap:.45rem;min-width:0}.download-discography-item-title-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.release-source-badges{display:inline-flex;align-items:center;gap:.2rem;flex-shrink:0}.release-source-badge{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:.32rem;flex-shrink:0}.release-source-badge--deezer.is-linked{background:#a238ff3d;box-shadow:inset 0 0 0 1px #a238ff9e}.release-source-badge--yandex.is-linked{background:#fc3c0033;box-shadow:inset 0 0 0 1px #fc3c0080}.release-source-badge.is-missing{opacity:.22;filter:grayscale(1)}.download-source-picker{margin-bottom:.85rem}.download-source-picker-loading{display:inline-flex;align-items:center;gap:.45rem;color:var(--text-muted);font-size:.88rem}@media (max-width: 900px){.library-enhanced-head{display:none}.library-enhanced-summary-wrap{grid-template-columns:1fr auto auto;gap:.5rem .75rem}.library-enhanced-summary{grid-column:1 / -1;display:flex;flex-direction:column;align-items:stretch;gap:.35rem}.library-enhanced-summary>span:not(.library-enhanced-release){display:none}.library-enhanced-edit-grid{grid-template-columns:1fr}.library-enhanced-track-table{display:block;min-width:0}.library-enhanced-track-head{display:none}.library-enhanced-track-row{display:grid;grid-template-columns:1fr 1fr;grid-column:auto;padding:.65rem;border:1px solid var(--border);border-radius:8px;background:#ffffff05;margin-bottom:.45rem}.library-enhanced-track-match,.library-enhanced-track-cell--title{grid-column:1 / -1}.library-enhanced-track-cell-label,.library-enhanced-track-duration .library-enhanced-track-cell-label{display:block}.library-enhanced-track-save{grid-column:1 / -1;width:100%;height:auto;padding:.5rem}.library-enhanced-track-play{grid-column:1 / -1;justify-self:start}}.library-album-expand-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1.25rem}.library-album-expand-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#04060eb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer}.library-album-expand-panel{position:relative;z-index:1;width:min(720px,100%);max-height:min(90vh,880px);display:flex;flex-direction:column;background:var(--bg-elevated, #12141f);border:1px solid var(--border-strong);border-radius:var(--radius-lg, 16px);box-shadow:0 24px 80px #0000008c;overflow:hidden}.library-album-expand-close{position:absolute;top:.85rem;right:.85rem;z-index:2;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:999px;background:#ffffff0f;color:var(--text-muted);cursor:pointer}.library-album-expand-close:hover{color:var(--text);background:#ffffff1a}.library-album-expand-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1.25rem 1.1rem;border-top:1px solid var(--border)}.library-album-expand-footer-start{display:flex;align-items:center;min-width:0;flex:1}.library-album-expand-delete-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.65rem 1rem;width:100%;max-width:100%;padding:.65rem .85rem;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,#f87171 35%,var(--border));background:color-mix(in srgb,#f87171 6%,var(--bg-card));font-size:.875rem}.library-album-expand-delete{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1rem;border-radius:999px;border:1px solid color-mix(in srgb,#f87171 45%,var(--border));background:color-mix(in srgb,#f87171 8%,transparent);color:#fca5a5;font-family:inherit;font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s}.library-album-expand-delete:hover:not(:disabled){background:color-mix(in srgb,#f87171 16%,transparent);border-color:#f87171}.library-album-expand-delete:disabled{opacity:.5;cursor:not-allowed}.library-album-expand-delete-actions{display:flex;gap:.5rem}.library-album-expand-delete-submit{display:inline-flex;align-items:center;justify-content:center;min-width:5.5rem;padding:.6rem 1rem;border-radius:999px;border:none;background:#dc2626;color:#fff;font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.library-album-expand-delete-submit:hover:not(:disabled){background:#b91c1c}.library-album-expand-delete-submit:disabled{opacity:.65;cursor:not-allowed}.library-album-expand-header{display:flex;gap:1.25rem;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--border)}.library-album-expand-cover-square{position:relative;width:112px;height:112px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.library-album-expand-cover-square img{width:100%;height:100%;object-fit:cover}.library-album-expand-hero-text{min-width:0;padding-right:2rem}.library-album-expand-hero-text h2{margin:0 0 .35rem;font-size:1.35rem;line-height:1.25}.library-album-expand-artist,.library-album-expand-contributors{margin:0 0 .35rem;font-size:.88rem;color:var(--text-muted)}.library-album-expand-role{color:var(--text-dim)}.library-album-expand-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.library-album-expand-badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--lib-accent-soft);color:var(--lib-accent);border:1px solid var(--lib-accent-ring)}.library-album-expand-meta-list{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.4rem}.library-album-expand-meta-chip{display:inline-flex;align-items:center;gap:.4rem;max-width:100%;padding:.22rem .5rem;border-radius:6px;background:#ffffff0a;border:1px solid var(--border);font-size:.6875rem;line-height:1.35}.library-album-expand-meta-label{flex-shrink:0;color:var(--text-muted);font-weight:500;font-family:inherit}.library-album-expand-meta-value{color:var(--text);font-family:ui-monospace,monospace;font-size:.6875rem;font-weight:500;word-break:break-all}.library-album-expand-meta-chip.is-missing .library-album-expand-meta-value{color:var(--text-dim);font-family:inherit;font-style:italic;font-weight:400}.library-album-expand-external-row{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:.55rem;font-size:.8125rem;line-height:1.3;font-family:inherit}.library-album-expand-external-label{font-size:inherit;font-weight:500;color:var(--text-muted);letter-spacing:.01em;flex-shrink:0}.library-album-expand-external-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem .3rem .55rem;border-radius:999px;border:1px solid var(--border-strong);background:#ffffff08;color:var(--text);font-size:inherit;font-family:inherit;font-weight:500;line-height:1;text-decoration:none;transition:border-color .15s,background .15s}.library-album-expand-external-btn .search-source-deezer-brand{gap:.35rem}.library-album-expand-external-btn .search-source-deezer-mark{width:1.05rem;height:1.05rem}.library-album-expand-external-btn .search-source-deezer-name{font-size:inherit;font-weight:600;letter-spacing:-.02em;color:inherit}.library-album-expand-external-btn>svg{width:.875rem;height:.875rem;opacity:.7;flex-shrink:0}.library-album-expand-external-btn:hover{border-color:color-mix(in srgb,var(--lib-accent) 55%,transparent);background:var(--lib-accent-soft);color:var(--text)}.library-album-expand-external-btn:hover .search-source-deezer-name{color:var(--lib-accent)}.library-album-expand-artist-link{padding:0;border:none;background:none;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;text-decoration:none;text-align:left}.library-album-expand-artist-link:hover{opacity:.85}.library-album-expand-body{flex:1;overflow-y:auto;padding:1rem 1.5rem 1.25rem}.library-album-expand-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--text-muted)}.library-album-expand-tracks-title{margin:0 0 .25rem;text-align:center;font-size:1rem}.library-album-expand-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.library-album-expand-title-row h2{margin:0;flex:1;min-width:0}.library-album-expand-play-all{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:var(--radius-sm);padding:.45rem .75rem;font-size:.85rem;cursor:pointer;flex-shrink:0}.library-album-expand-play-all:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.library-album-expand-play-all.is-playing{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.library-album-expand-play-all:disabled{opacity:.45;cursor:not-allowed}.library-album-expand-tracks-hint{margin:0 0 1rem;text-align:center;font-size:.78rem;color:var(--text-dim)}.library-album-expand-disc-section{margin-bottom:1.35rem}.library-album-expand-disc-section:last-child{margin-bottom:0}.library-album-expand-disc-title{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0 0 .65rem;padding:0 .15rem .45rem;font-size:.92rem;font-weight:700;color:var(--text);border-bottom:1px solid var(--border)}.library-album-expand-disc-count{font-size:.78rem;font-weight:500;color:var(--text-dim)}.library-album-expand-track-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.library-album-expand-track-row{display:grid;grid-template-columns:2rem 1fr auto;gap:.75rem;align-items:center;padding:.75rem .85rem;border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffff05}.library-album-expand-track-pos{font-size:.85rem;color:var(--text-dim);text-align:center;font-weight:600}.library-album-expand-track-main{min-width:0;display:flex;flex-direction:column;gap:.25rem}.library-album-expand-track-title{font-weight:600;font-size:.9rem;line-height:1.3}.entity-version{color:var(--text-muted);font-weight:400;opacity:.72}.library-album-expand-track-performers{margin:.2rem 0 .35rem;font-size:.8rem;color:var(--text-muted)}.library-album-expand-track-performer-line{margin:0 0 .15rem}.library-album-expand-track-artist{font-size:.78rem;color:var(--text-muted)}.library-album-expand-track-row.is-playing{background:color-mix(in srgb,var(--accent) 12%,transparent)}.library-album-expand-track-play{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.library-album-expand-track-play:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.library-album-expand-track-play.is-disabled,.library-album-expand-track-play:disabled{opacity:.35;cursor:not-allowed}.library-album-expand-tracks-hint{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted);margin:0 0 .75rem}.library-album-expand-track-end{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-shrink:0}.library-album-expand-track-dur{font-size:.82rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.library-album-expand-track-check{color:var(--lib-accent);opacity:.9}.library-album-expand-track-empty{margin:0;padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.88rem}.track-lyrics-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;color:var(--lib-accent);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:color .15s ease,background .15s ease}.track-lyrics-icon-btn:hover{color:#a78bfa;background:#7c5cff26}.track-lyrics-open-btn{display:inline-flex;align-items:center;gap:.35rem;margin-top:.45rem;padding:.2rem .55rem;font-size:.78rem;color:var(--lib-accent);background:#7c5cff1a;border:1px solid rgba(124,92,255,.25);border-radius:6px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.track-lyrics-open-btn:hover{background:#7c5cff2e;border-color:#7c5cff66}.track-lyrics-modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}.track-lyrics-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#0000008c;cursor:pointer}.track-lyrics-modal-card{position:relative;z-index:1;display:flex;flex-direction:column;width:min(520px,100%);max-height:min(80vh,640px);background:var(--surface, #1a1a22);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 48px #00000073}.track-lyrics-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--border)}.track-lyrics-modal-header h3{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.05rem;font-weight:700}.track-lyrics-modal-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;color:var(--text-muted);background:transparent;border:none;border-radius:6px;cursor:pointer}.track-lyrics-modal-close:hover{color:var(--text);background:#ffffff0f}.track-lyrics-sync-badge{display:inline-block;padding:.15rem .45rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--lib-accent);background:#7c5cff1f;border-radius:4px}.track-lyrics-modal-body{flex:1;min-height:0;padding:.85rem 1rem;font-size:.88rem;line-height:1.6;color:var(--text);white-space:pre-wrap;word-break:break-word;overflow-y:auto}.track-lyrics-modal-footer{display:flex;justify-content:flex-end;padding:.65rem 1rem .85rem;border-top:1px solid var(--border)}.scroll-to-top-btn{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:calc(var(--player-height) + 1rem);z-index:120;pointer-events:auto;display:flex;align-items:center;justify-content:center;width:4.125rem;height:4.125rem;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-card);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,opacity .15s ease}.scroll-to-top-btn:hover{background:var(--bg-active);border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.scroll-to-top-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.library-auto-match-review-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin:.65rem 0 .2rem;padding:.75rem .9rem;border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}.library-auto-match-review-banner p{margin:0;font-size:.875rem;color:var(--text-muted)}.library-auto-match-review-banner-link{font-size:.875rem;font-weight:600;white-space:nowrap}.library-artist-watch{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.library-artist-watch-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.library-artist-watch-toggle{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;-webkit-user-select:none;user-select:none}.library-artist-watch-toggle input{position:absolute;opacity:0;width:0;height:0}.library-artist-watch-track{position:relative;width:2.5rem;height:1.4rem;border-radius:999px;background:var(--bg-active);border:1px solid var(--border-strong);transition:background .15s ease;flex-shrink:0}.library-artist-watch-track:after{content:"";position:absolute;top:2px;left:2px;width:1rem;height:1rem;border-radius:50%;background:var(--text-muted);transition:transform .15s ease,background .15s ease}.library-artist-watch-toggle input:checked+.library-artist-watch-track{background:var(--lib-accent-soft-strong);border-color:var(--lib-accent)}.library-artist-watch-toggle input:checked+.library-artist-watch-track:after{transform:translate(1.1rem);background:var(--lib-accent)}.library-artist-watch-toggle input:disabled+.library-artist-watch-track{opacity:.5}.library-artist-watch-label{font-size:.95rem;font-weight:500}.library-artist-watch-settings-btn{padding:.45rem .55rem;min-width:auto}.library-artist-watch-scan-btn{font-size:.875rem}.library-artist-watch-summary{margin:.5rem 0 0;font-size:.8rem;color:var(--text-muted)}.library-watch-settings-modal{max-width:28rem}.library-watch-settings-loading{display:flex;justify-content:center;padding:2rem}.library-watch-settings-body{display:flex;flex-direction:column;gap:1rem;padding:0 1.25rem 1.25rem}.library-watch-field{display:flex;flex-direction:column;gap:.35rem}.library-watch-label{font-size:.875rem;font-weight:600}.library-watch-select,.library-watch-input{width:100%;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font:inherit}.library-watch-hint{font-size:.78rem;color:var(--text-muted);line-height:1.4}.library-watch-meta{margin:0;font-size:.8rem;color:var(--text-muted)}.library-watch-settings-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}.library-release-card{position:relative}.library-release-card.is-selected .library-album-thumb{box-shadow:0 0 0 2px var(--lib-accent)}.library-entity-select{position:absolute;z-index:8;top:.55rem;left:.55rem;display:grid;place-items:center;width:1.65rem;height:1.65rem;border:1px solid var(--border-strong);border-radius:.4rem;background:color-mix(in srgb,var(--bg) 86%,transparent);cursor:pointer}.library-entity-select input,.library-entity-select-cell input{width:1rem;height:1rem;accent-color:var(--lib-accent)}.library-entity-select-cell{width:2.5rem;text-align:center}.favorite-heart-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:1px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--bg) 72%,transparent);color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s,border-color .15s,transform .15s}.favorite-heart-btn:hover{color:#e2557a;border-color:color-mix(in srgb,#e2557a 35%,var(--border));transform:scale(1.06)}.favorite-heart-btn.is-on{color:#e2557a;background:color-mix(in srgb,#e2557a 18%,transparent)}.favorite-heart-btn:disabled,.favorite-heart-btn.is-busy{opacity:.7;cursor:wait}.library-artist-card-heart,.library-release-card-heart{position:absolute;top:calc(1rem + 28px);left:.65rem;right:auto;z-index:8;width:28px;height:28px;border:none;border-radius:50%;background:#0000008c;color:#ffffffe6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.library-artist-card-heart svg,.library-release-card-heart svg{width:16px;height:16px}.library-artist-card-heart:hover,.library-release-card-heart:hover{color:#ff6b8a;transform:scale(1.06)}.library-artist-card-heart.is-on,.library-release-card-heart.is-on{color:#ff6b8a}.library-artist-card--with-heart,.library-artist-card--selectable{position:relative}.library-favorite-col{width:2.4rem;text-align:center;vertical-align:middle}.library-artist-title-row{display:inline-flex;align-items:center;gap:.55rem;margin:0}.library-artist-title-heart{width:2.1rem;height:2.1rem;flex-shrink:0}.settings-page{width:100%;max-width:900px;margin-inline:auto}.settings-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.settings-tabs{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1.5rem;border-bottom:1px solid var(--border);padding-bottom:0}.settings-tab{padding:.7rem 1.1rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-muted);font-weight:600;font-size:.875rem;cursor:pointer}.settings-tab:hover{color:var(--text)}.settings-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.settings-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.settings-section-title{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin:0}.settings-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1rem}.settings-field{margin-bottom:1.1rem}.settings-field:last-child{margin-bottom:0}.settings-hint{font-size:.8rem;color:var(--text-muted);margin:.35rem 0 0;line-height:1.45}.settings-hint-italic{font-style:italic}.settings-inline-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.settings-inline-row .label{margin:0;font-weight:500}.settings-inline-select{width:auto;min-width:5.5rem;flex-shrink:0}.settings-accordion{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:.65rem}.settings-accordion-header{width:100%;display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;background:var(--bg-elevated);border:none;color:var(--text);font-weight:600;font-size:.9375rem;cursor:pointer;text-align:left}.settings-accordion-header:hover{background:var(--bg-hover)}.settings-accordion-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.settings-accordion-dot.deezer{width:18px;height:18px;border-radius:4px;background:url(/deezer-icon.svg) center / 18px 18px no-repeat;background-color:transparent;flex-shrink:0}.settings-accordion-dot.yandex{width:18px;height:18px;border-radius:4px;background:url(/yandex-music-icon.svg) center / 18px 18px no-repeat;background-color:transparent;flex-shrink:0}.settings-accordion-icon{flex-shrink:0;color:var(--text-muted)}.settings-accordion-body{padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--border);background:var(--bg-card)}.settings-accordion-chevron{margin-left:auto;color:var(--text-dim);transition:transform .2s}.settings-accordion.open .settings-accordion-chevron{transform:rotate(180deg)}.settings-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 700px){.settings-row-2{grid-template-columns:1fr}}.settings-status-ok{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--success);margin-top:.5rem}.settings-check-status{display:inline-flex;align-items:center;margin-top:.6rem;font-size:.8rem;font-weight:600}.settings-check-status.checking{color:var(--text-muted)}.settings-check-status.success{color:var(--success)}.settings-check-status.warning{color:var(--warning, #d4a017)}.settings-check-status.error{color:var(--danger)}.settings-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem 1rem;margin-top:1rem}.settings-check{display:flex;align-items:center;gap:.5rem;font-size:.92rem;cursor:pointer}.settings-check input{accent-color:var(--accent)}.settings-save-bar{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.settings-external-watch-panel+.settings-external-watch-panel{margin-top:1rem}.settings-external-watch-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.settings-external-watch-title{margin:0;font-size:1.05rem}.settings-external-watch-toggle{display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9rem}.settings-external-watch-toggle input{position:absolute;opacity:0;width:0;height:0}.settings-external-watch-track{position:relative;width:2.4rem;height:1.35rem;border-radius:999px;background:var(--bg-active);border:1px solid var(--border-strong);flex-shrink:0}.settings-external-watch-track:after{content:"";position:absolute;top:2px;left:2px;width:.95rem;height:.95rem;border-radius:50%;background:var(--text-muted);transition:transform .15s ease,background .15s ease}.settings-external-watch-toggle input:checked+.settings-external-watch-track{background:color-mix(in srgb,var(--accent) 26%,transparent);border-color:var(--accent)}.settings-external-watch-toggle input:checked+.settings-external-watch-track:after{transform:translate(1.05rem);background:var(--accent)}.settings-download-priority{display:flex;flex-direction:column;gap:.45rem;margin-top:.65rem}.settings-download-priority-row{display:grid;grid-template-columns:1.6rem 1fr auto auto;gap:.65rem;align-items:center;padding:.55rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05}.settings-download-priority-rank{font-size:.82rem;color:var(--text-dim);text-align:center}.settings-download-priority-label{font-size:.92rem}.settings-download-priority-auto{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text-muted);white-space:nowrap}.settings-download-priority-actions{display:inline-flex;gap:.2rem}.settings-download-priority-move{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.settings-download-priority-move:disabled{opacity:.35;cursor:not-allowed}.settings-download-priority-move:not(:disabled):hover{color:var(--text);border-color:var(--accent)}.tasks-title{display:flex;align-items:center;gap:.65rem}.tasks-subtitle{margin:.35rem 0 0;color:var(--text-muted);font-size:.95rem;max-width:52rem}.tasks-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.5rem}.tasks-tabs{display:flex;flex-wrap:wrap;gap:.35rem}.tasks-tab{padding:.45rem .9rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.tasks-tab:hover{color:var(--text);background:var(--bg-hover)}.tasks-tab.active{background:var(--bg-active);border-color:#3dd6c659;color:var(--accent)}.tasks-toolbar-right{display:flex;align-items:center;gap:.75rem;margin-left:auto;flex-wrap:wrap}@media (max-width: 768px){.tasks-toolbar{flex-direction:column;align-items:stretch}.tasks-toolbar-right{margin-left:0;justify-content:space-between}}.tasks-summary{font-size:.875rem;color:var(--text-muted)}.tasks-cancel-all{padding:.4rem .85rem;border-radius:var(--radius-sm);border:1px solid rgba(255,107,122,.45);background:transparent;color:var(--danger);font-size:.875rem;cursor:pointer}.tasks-cancel-all:hover{background:#ff6b7a1a}.tasks-section-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;color:var(--text-dim);margin:0 0 .75rem}.tasks-list{display:flex;flex-direction:column;gap:.5rem}.tasks-row-wrap{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);overflow:hidden}.tasks-row-wrap--expandable .tasks-row{cursor:pointer}.tasks-row-wrap--expandable .tasks-row:hover{background:#ffffff05}.tasks-row{position:relative;display:grid;grid-template-columns:4px 56px 1fr auto auto;grid-template-rows:auto auto;align-items:center;gap:.75rem 1rem;padding:.85rem 1rem .85rem 0;border:none;border-radius:0;background:transparent;overflow:hidden}.tasks-row-accent{grid-row:1 / -1;align-self:stretch;width:4px;border-radius:4px 0 0 4px;margin-left:0}.tasks-row-accent--running,.tasks-row-accent--queued{background:var(--accent)}.tasks-row-accent--completed{background:var(--success)}.tasks-row-accent--failed,.tasks-row-accent--cancelled{background:var(--danger)}.tasks-row-poster{width:56px;height:56px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-elevated)}.tasks-row-poster img{width:100%;height:100%;object-fit:cover}.tasks-row-poster-fallback{width:100%;height:100%;background:linear-gradient(135deg,var(--bg-hover),var(--bg-elevated))}.tasks-row-body{min-width:0}.tasks-row-title{font-weight:600;font-size:1rem}.tasks-row-title a{color:var(--text)}.tasks-row-title a:hover{color:var(--accent)}.tasks-row-meta{margin-top:.2rem;font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tasks-row-status{display:flex;align-items:center;gap:.4rem;color:var(--accent-secondary);font-size:.85rem;font-weight:500}.tasks-status-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-secondary);box-shadow:0 0 8px var(--accent-secondary)}.tasks-status-spin{animation:spin 1s linear infinite;opacity:.85}.tasks-status-ok{color:var(--success)}.tasks-status-err{color:var(--danger)}.tasks-row-cancel{padding:.35rem .65rem;font-size:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.tasks-row-cancel:hover{color:var(--danger);border-color:#ff6b7a66}.tasks-row-progress{grid-column:2 / -1;height:3px;background:var(--bg-elevated);border-radius:2px;overflow:hidden}.tasks-row-progress-bar{height:100%;background:var(--accent);transition:width .3s ease}.tasks-row-times{grid-column:2 / -1;display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.1rem;font-size:.7rem;line-height:1.2;color:var(--text-dim);font-variant-numeric:tabular-nums}.tasks-row--selectable .tasks-row-times,.tasks-row--selectable .tasks-row-progress{grid-column:3 / -1}.tasks-row-time--start{text-align:left}.tasks-row-time--end{text-align:right;margin-left:auto}.tasks-row-chevron{flex-shrink:0;color:var(--text-dim);transition:transform .2s ease,color .15s}.tasks-row-chevron--open{transform:rotate(180deg);color:var(--accent)}.tasks-row-releases{border-top:1px solid var(--border);padding:.5rem 1rem .75rem 4.75rem;background:#0000002e}.tasks-row-releases-empty,.tasks-row-releases-note{margin:0;font-size:.8rem;color:var(--text-dim)}.tasks-row-releases-note{margin-top:.5rem;color:var(--danger)}.tasks-release-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:.15rem}.tasks-release-item{display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.35rem .25rem;font-size:.85rem;color:var(--text-muted);border-radius:var(--radius-sm)}.tasks-release-thumb{flex:0 0 2.25rem;width:2.25rem;height:2.25rem;border-radius:.35rem;object-fit:cover;background:#ffffff0f}.tasks-release-thumb.is-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:.85rem}.tasks-release-item--running{color:var(--text)}.tasks-release-item--done{color:var(--text-muted)}.tasks-release-item--error{color:var(--danger)}.tasks-release-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.tasks-release-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks-release-error{font-size:.75rem;line-height:1.35;color:var(--danger);opacity:.92;white-space:normal;word-break:break-word}.tasks-release-icon--done{color:var(--success);flex-shrink:0}.tasks-release-icon--error{color:var(--danger);flex-shrink:0}.tasks-release-icon--running{color:var(--accent-secondary);flex-shrink:0}.tasks-release-icon--pending{color:var(--text-dim);flex-shrink:0;opacity:.65}.tasks-empty{padding:2rem;text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-md)}.tasks-empty-hint{font-size:.875rem;color:var(--text-dim)}.tasks-row--selectable{grid-template-columns:28px 4px 56px 1fr minmax(120px,240px) auto;padding-left:.65rem}.tasks-row-check{grid-row:1 / -1;align-self:start;margin-top:.15rem;width:26px;height:26px;padding:0;border:2px solid rgba(255,255,255,.55);border-radius:5px;background:#00000059;color:#0a0812;display:flex;align-items:center;justify-content:center;cursor:pointer}.tasks-row-check[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.tasks-status-text--wrap{max-width:240px;white-space:normal;text-align:right;line-height:1.35;font-size:.78rem}.tasks-batch-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid rgba(255,107,122,.35);background:#ff6b7a14}.tasks-batch-count{font-size:.9rem;font-weight:600}.tasks-batch-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}.tasks-batch-retry{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .95rem;border:none;border-radius:999px;background:var(--accent);color:#0a0812;font-size:.875rem;font-weight:700;font-family:inherit;cursor:pointer}.tasks-batch-retry:disabled{opacity:.6;cursor:wait}.tasks-batch-clear{padding:.55rem .85rem;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-size:.875rem;font-family:inherit;cursor:pointer}.tasks-batch-clear:hover{color:var(--text)}.tasks-failed-hint{margin:.5rem 0 0;font-size:.875rem;color:var(--text-dim)}.auto-match-report{margin:.75rem 0 0;padding:.75rem .9rem;border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}.auto-match-report-title{margin:0 0 .35rem;font-size:.8125rem;font-weight:600;color:var(--text)}.auto-match-report-summary,.auto-match-report-line,.auto-match-report-errors{display:block;margin:.15rem 0 0;font-size:.8125rem;color:var(--text-muted)}.auto-match-report-list{margin:.35rem 0 0;padding-left:1rem}.auto-match-report-list li{margin:.2rem 0}.auto-match-report-errors{color:var(--danger, #c0392b)}.auto-match-report-link{display:inline-block;margin-top:.55rem;font-size:.8125rem;font-weight:600}.tasks-auto-match-report{margin-top:.65rem}.tasks-phase-steps{display:flex;flex-direction:column;gap:.45rem}.tasks-phase-step{border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface-2) 88%,transparent);overflow:hidden}.tasks-phase-step--running{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.tasks-phase-step--done{border-color:color-mix(in srgb,#3dd6c6 25%,var(--border))}.tasks-phase-step--error{border-color:color-mix(in srgb,var(--danger, #c0392b) 35%,var(--border))}.tasks-phase-step-head{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;gap:.65rem;align-items:center;padding:.55rem .7rem;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.tasks-phase-step-head:hover{background:var(--bg-hover)}.tasks-phase-step-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));color:var(--accent);font-size:.75rem;font-weight:700}.tasks-phase-step-main{min-width:0;display:flex;flex-direction:column;gap:.1rem}.tasks-phase-step-label{font-size:.875rem;font-weight:600}.tasks-phase-step-detail{font-size:.78rem;color:var(--text-muted)}.tasks-phase-step-progress{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.tasks-phase-step .tasks-release-list{border-top:1px solid var(--border);max-height:280px}.tools-page{width:100%;max-width:none}.tools-header{margin-bottom:1.5rem}.tools-title{display:flex;align-items:center;gap:.65rem}.tools-subtitle{margin:.35rem 0 0;color:var(--text-muted);font-size:.95rem;max-width:40rem}.tools-groups{display:flex;flex-direction:column;gap:1.25rem}.tools-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.35rem 1.5rem;box-shadow:var(--shadow-card)}.tools-panel-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.tools-panel-title-wrap{display:flex;align-items:flex-start;gap:.75rem}.tools-panel-icon{color:var(--accent);flex-shrink:0;margin-top:.15rem}.tools-panel-title{margin:0;font-size:1.1rem;font-weight:600}.tools-panel-desc{margin:.25rem 0 0;font-size:.85rem;color:var(--text-muted)}.tools-section-toggle{display:flex;align-items:center;gap:.65rem;font-size:.875rem;color:var(--text-muted);cursor:pointer}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.tools-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.1rem;transition:border-color .15s,opacity .15s}.tools-card--disabled{opacity:.72}.tools-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.tools-card-title-row{display:flex;align-items:center;gap:.5rem;min-width:0}.tools-card-dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.tools-card-dot--on{background:var(--success);box-shadow:0 0 8px #5ee0a880}.tools-card--danger{border-color:#ff6b7a40}.tools-card-dot--danger.tools-card-dot--on{background:var(--danger);box-shadow:0 0 8px #ff6b7a73}.tools-icon-btn--danger:not(:disabled){color:var(--danger);border-color:#ff6b7a66}.tools-icon-btn--danger:hover:not(:disabled){background:#ff6b7a1f}.tools-card-title{margin:0;font-size:.95rem;font-weight:600}.tools-card-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.tools-toggle{position:relative;display:inline-flex;cursor:pointer}.tools-toggle input{position:absolute;opacity:0;width:0;height:0}.tools-toggle-track{display:block;width:40px;height:22px;border-radius:999px;background:#ffffff1f;transition:background .2s}.tools-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.tools-toggle input:checked+.tools-toggle-track{background:var(--accent-dim)}.tools-toggle input:checked+.tools-toggle-track:after{transform:translate(18px)}.tools-toggle input:disabled+.tools-toggle-track{opacity:.5;cursor:not-allowed}.tools-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.tools-icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text);border-color:var(--border-strong)}.tools-icon-btn:disabled{opacity:.45;cursor:not-allowed}.tools-icon-btn--run:not(:disabled){color:var(--accent);border-color:#3dd6c659}.tools-icon-btn--run:hover:not(:disabled){background:var(--bg-active)}.tools-card-desc{margin:0 0 .75rem;font-size:.85rem;line-height:1.45;color:var(--text-muted)}.tools-card-footer{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-dim)}.tools-card-last-msg{color:var(--accent)}.tools-settings-wrap{position:relative}.tools-settings-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:30;width:min(20rem,80vw);padding:.85rem 1rem 1rem;box-shadow:var(--shadow-card)}.tools-settings-title{margin:0 0 .75rem;font-size:.95rem;font-weight:600}.tools-settings-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.tools-settings-label{font-size:.8rem;color:var(--text-muted)}.tools-settings-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.tools-icon-btn.active{color:var(--accent);border-color:#3dd6c659;background:var(--bg-active)}.tools-loading,.tools-empty{color:var(--text-muted);font-size:.9rem;display:flex;align-items:center;gap:.5rem}.tools-hint{display:flex;align-items:flex-start;gap:.5rem;margin-top:1.25rem;font-size:.8rem;color:var(--text-dim);max-width:42rem}.tools-hint svg{flex-shrink:0;margin-top:.1rem;color:var(--text-muted)}.tools-hint-icon{margin-left:.35rem}.tools-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;margin-left:.35rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:600}.tools-page .tab{display:inline-flex;align-items:center;gap:.35rem}.tools-results-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:.85rem}.tools-results-filters{display:flex;flex-wrap:wrap;gap:.4rem}.tools-filter-chip{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);border-radius:var(--radius-md);padding:.35rem .7rem;font-size:.8rem;cursor:pointer}.tools-filter-chip:hover{color:var(--text);border-color:var(--text-muted)}.tools-filter-chip.active{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.tools-results-search{min-width:min(100%,16rem);flex:1;max-width:22rem;padding:.45rem .7rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}.tools-results-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.85rem}.tools-results-actions-right{display:flex;flex-wrap:wrap;gap:.45rem;margin-left:auto}.tools-results-count{font-size:.85rem;color:var(--text-muted)}.tools-results-table-wrap{overflow:auto;max-height:min(70vh,48rem);border:1px solid var(--border);border-radius:var(--radius-md)}.tools-results-table{width:100%;border-collapse:collapse;font-size:.875rem}.tools-results-table th,.tools-results-table td{padding:.55rem .7rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.tools-results-table th{position:sticky;top:0;background:var(--bg-elevated);z-index:1;font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.tools-results-table tr.is-muted{opacity:.62}.tools-results-title{font-weight:560}.tools-results-sub{color:var(--text-muted);font-size:.8rem;margin-top:.1rem}.tools-results-path{margin-top:.25rem;font-size:.72rem;color:var(--text-dim);max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tools-results-ids{display:flex;flex-direction:column;gap:.15rem;font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.tools-status{display:inline-block;font-size:.75rem;padding:.15rem .45rem;border-radius:var(--radius-sm);border:1px solid var(--border)}.tools-status--open{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.tools-status--dismissed{color:var(--text-muted)}.tools-status--restored{color:#2f9e6a;border-color:color-mix(in srgb,#2f9e6a 40%,var(--border))}@media (max-width: 768px){.tools-results-actions-right{margin-left:0;width:100%}.tools-results-search{max-width:none}}.import-mode-dialog-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}.import-mode-dialog-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#04080eb8;cursor:pointer}.import-mode-dialog-card{position:relative;width:min(100%,520px);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.25rem 1.35rem 1.1rem}.import-mode-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.import-mode-dialog-header h2{margin:0;font-size:1.2rem;font-family:var(--font-display)}.import-mode-dialog-sub{margin:.35rem 0 0;color:var(--text-muted);font-size:.92rem}.import-mode-dialog-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.import-mode-dialog-close:hover{background:var(--bg-hover);color:var(--text)}.import-mode-dialog-loading{display:flex;align-items:center;gap:.65rem;color:var(--text-muted);padding:1.5rem 0}.import-mode-dialog-options{display:flex;flex-direction:column;gap:.75rem}.import-mode-option{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-elevated);cursor:pointer;transition:border-color .15s,background .15s}.import-mode-option.is-active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--bg-elevated))}.import-mode-option-text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.import-mode-option-title{font-weight:600}.import-mode-option-desc{color:var(--text-muted);font-size:.88rem;line-height:1.35}.import-mode-toggle{position:relative;flex-shrink:0}.import-mode-toggle-input{position:absolute;opacity:0;width:0;height:0}.import-mode-toggle-track{display:block;width:44px;height:24px;border-radius:999px;background:var(--border-strong);transition:background .2s;position:relative}.import-mode-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}.import-mode-toggle-input:checked+.import-mode-toggle-track{background:var(--accent)}.import-mode-toggle-input:checked+.import-mode-toggle-track:after{transform:translate(20px)}.import-mode-toggle-input:focus-visible+.import-mode-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.import-mode-dialog-footer{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.15rem;padding-top:.85rem;border-top:1px solid var(--border)}.profile-page{width:100%;max-width:900px;margin-inline:auto}.profile-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.profile-header-icon{width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);flex-shrink:0}.profile-title{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.75rem}.profile-subtitle{margin:0;color:var(--text-muted);line-height:1.5;max-width:52rem}.profile-note{margin-bottom:1.25rem;padding:.9rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffff05;color:var(--text-muted);font-size:.9rem;line-height:1.5}.profile-note a{color:var(--accent)}.profile-actions-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}.profile-playlists-link{margin-left:.75rem}.page-loading{display:flex;justify-content:center;padding:4rem 0}.playlists-page{width:100%;max-width:1430px;margin-inline:auto}.playlists-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.playlists-title{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.85rem}.playlists-subtitle{margin:0;color:var(--text-muted);line-height:1.5;max-width:44rem}.playlists-history-btn{flex-shrink:0;white-space:nowrap}.playlists-shell{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.playlists-tabs{display:flex;gap:.35rem;flex-wrap:wrap;padding:.75rem .75rem 0;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.playlists-tab{display:inline-flex;align-items:center;gap:.45rem;padding:.65rem .9rem;border:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;color:var(--text-muted);font-weight:600;font-size:.82rem;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.playlists-tab:hover{color:var(--text);background:#ffffff08}.playlists-tab.active{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);box-shadow:0 4px 18px #7c3aed59}.playlists-panel{padding:1.25rem 1.5rem 1.75rem;min-height:320px}.playlists-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.playlists-panel-head h2{margin:0;font-size:1.15rem}.playlists-panel-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.favorites-sync-sources{margin-bottom:1rem}.favorites-sync-summary{margin:0 0 .85rem}.expandable-log{display:flex;flex-direction:column;gap:.25rem;min-width:0}.expandable-log-body{display:flex;flex-direction:column;gap:.18rem;min-width:0;overflow:hidden}.expandable-log-body.is-expanded{overflow:visible;max-height:none}.expandable-log-toggle{align-self:flex-start;margin:0;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:.78rem;cursor:pointer}.expandable-log-toggle:hover{text-decoration:underline}.playlists-sync-hint{color:var(--text-muted, #94a3b8);font-size:.85rem}.favorites-internal-scopes{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.favorites-internal-scope{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:999px;border:1px solid rgba(148,163,184,.25);background:transparent;color:inherit;cursor:pointer;font-size:.9rem}.favorites-internal-scope.active{border-color:#7c3aed99;background:#7c3aed26}.favorites-scope-desc{margin:.35rem 0 0;color:var(--text-muted, #94a3b8);font-size:.9rem}.playlists-refresh-btn{display:inline-flex;align-items:center;gap:.45rem;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none}.playlists-refresh-btn:hover:not(:disabled){filter:brightness(1.06)}.playlists-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;min-height:220px;text-align:center;color:var(--text-muted)}.playlists-status-ok{color:var(--success);font-weight:600}.playlists-coming-soon{max-width:28rem;font-size:.88rem;line-height:1.45}.playlists-link-tab{display:flex;flex-direction:column;gap:1rem}.playlists-link-row{display:flex;gap:.75rem;flex-wrap:wrap}.playlists-link-row .input{flex:1;min-width:220px}.playlists-link-hint{margin:0;text-align:center;color:var(--text-dim);font-size:.9rem}.playlists-list{display:flex;flex-direction:column;gap:.85rem}.playlists-card{display:flex;align-items:center;gap:.85rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.playlists-card.is-selected{border-color:color-mix(in srgb,var(--accent, #3b82f6) 45%,var(--border));background:color-mix(in srgb,var(--accent, #3b82f6) 8%,var(--bg-elevated))}.playlists-card-check{margin-right:-.15rem}.playlists-remote-select-all{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.playlists-card-cover{width:52px;height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.playlists-card-cover img{width:100%;height:100%;object-fit:cover}.playlists-card-body{flex:1;min-width:0}.playlists-card-title{margin:0 0 .2rem;font-size:.95rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlists-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin:0;font-size:.82rem;color:var(--text-muted)}.playlists-meta-sep{color:var(--text-dim)}.playlists-meta-tag{color:var(--warning)}.playlists-card-link{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-sm);color:var(--text-muted);transition:color .15s,background .15s}.playlists-card-link:hover{color:var(--text);background:var(--bg-hover)}.playlists-card-actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.playlists-server-card{display:flex;flex-direction:column;gap:1rem;padding:1.1rem 1.2rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-card)}.playlists-server-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.playlists-server-identity{display:flex;align-items:center;gap:.9rem;min-width:0;flex:1}.playlists-server-cover{width:64px;height:64px;border-radius:var(--radius-md);flex-shrink:0}.playlists-cover-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.playlists-cover-mosaic--md,.playlists-cover-single--md{width:64px;height:64px;border-radius:var(--radius-md)}.playlists-cover-mosaic--sm,.playlists-cover-single--sm{width:52px;height:52px;border-radius:var(--radius-sm)}.playlists-cover-mosaic img,.playlists-cover-mosaic-empty{width:100%;height:100%;object-fit:cover;display:block;min-width:0;min-height:0}.playlists-cover-mosaic-empty{background:color-mix(in srgb,var(--bg-elevated) 80%,var(--accent) 20%)}.playlists-server-titles{min-width:0}.playlists-server-title{margin:0 0 .3rem;font-family:var(--font-display);font-size:1.05rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlists-server-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.45rem;flex-shrink:0}.playlists-action-btn{padding:.45rem .85rem;font-size:.82rem}.playlists-server-summary{display:flex;flex-direction:column;gap:.55rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.playlists-server-summary-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin:0;font-size:.78rem;color:var(--text-dim)}.playlists-sync-settings-modal{max-width:32rem}.playlists-sync-settings-subtitle{margin:.2rem 0 0;font-size:.82rem;font-weight:400;color:var(--text-muted)}.playlists-chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.playlists-chip{border:1px solid var(--border);background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);padding:.32rem .75rem;font-size:.78rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.playlists-chip:hover:not(:disabled){color:var(--text);border-color:var(--border-strong);background:var(--bg-hover)}.playlists-chip.is-active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.playlists-chip:disabled{opacity:.45;cursor:not-allowed}.playlists-chip--static{cursor:default;pointer-events:none}.playlists-chip--static:not(.is-active){opacity:.45}.playlists-option{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.playlists-option input{accent-color:var(--accent)}.playlists-sync-row{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-top:.75rem}.playlists-play-error{margin:0;padding:.55rem .75rem;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);font-size:.82rem;color:var(--danger)}.playlists-sync-label{font-size:.82rem;color:var(--text-muted)}.playlists-sync-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text)}.playlists-sync-schedule{width:auto;min-width:150px;padding:.35rem .55rem;font-size:.8rem}.playlists-sync-schedule:disabled{opacity:.5}.playlists-sync-status-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.55rem}.playlists-sync-status-card{display:flex;flex-direction:column;gap:.4rem;padding:.7rem .8rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.playlists-sync-status-card.is-running,.playlists-sync-status-card.is-queued{border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.playlists-sync-status-card.is-error{border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.playlists-sync-status-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.playlists-sync-status-target{font-size:.84rem;font-weight:600;color:var(--text)}.playlists-sync-status-badge{display:inline-flex;align-items:center;padding:.12rem .5rem;border-radius:var(--radius-sm);font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--text-muted);background:#ffffff0f}.playlists-sync-status-badge.is-idle{color:var(--text-muted)}.playlists-sync-status-badge.is-queued,.playlists-sync-status-badge.is-running{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.playlists-sync-status-badge.is-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}.playlists-sync-status-meta{display:flex;flex-direction:column;gap:.18rem;font-size:.76rem;line-height:1.35;color:var(--text-dim)}.playlists-sync-status{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.6rem;color:var(--text-muted);font-size:.78rem}.playlists-sync-status.running,.playlists-sync-status.queued{color:var(--accent)}.playlists-sync-error{margin:0;font-size:.76rem;color:var(--danger)}.playlists-sync-unmatched{margin:.1rem 0 0;padding-left:1rem;color:var(--text-muted);font-size:.76rem}.playlists-sync-unmatched-note{color:var(--danger)}.playlists-track-details{margin-top:0;padding-top:.85rem;border-top:1px solid var(--border);font-size:.84rem}.playlists-track-details summary{width:fit-content;color:var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500}.playlists-track-details[open] summary{margin-bottom:.75rem}.playlists-track-list{max-height:360px;margin:0;padding:0;list-style:none;overflow-y:auto}.playlists-track-list li{display:flex;align-items:center;gap:.7rem;padding:.4rem .5rem;border-bottom:1px solid rgba(148,163,184,.12)}.playlists-track-list li.is-selected{background:color-mix(in srgb,var(--accent, #3b82f6) 10%,transparent)}.playlists-gap-filter-group{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem}.playlists-gap-filter-services{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding-left:.1rem}.playlists-gap-filter-service{display:inline-flex;align-items:center;gap:.3rem;margin:0;padding:.15rem .35rem .15rem .25rem;border-radius:.45rem;border:1px solid transparent;cursor:pointer;color:var(--text-muted);opacity:.55;transition:opacity .15s ease,border-color .15s ease,background .15s ease}.playlists-gap-filter-service:hover{opacity:.85;background:color-mix(in srgb,var(--text-muted) 8%,transparent)}.playlists-gap-filter-service.is-active{opacity:1;color:var(--text);border-color:#94a3b847;background:color-mix(in srgb,var(--surface-2, #1e293b) 80%,transparent)}.playlists-gap-filter-service input{margin:0;accent-color:var(--accent, #3b82f6)}.playlists-gap-filter-service-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;line-height:0}.playlists-gap-filter-service-icon svg,.playlists-gap-filter-service-icon img{display:block;width:1rem;height:1rem}.playlists-track-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.55rem .5rem .35rem;border-bottom:1px solid rgba(148,163,184,.14)}.playlists-list-search{flex:1 1 14rem;min-width:12rem;max-width:28rem}.playlists-list-search input{width:100%;box-sizing:border-box;padding:.4rem .65rem;border-radius:8px;border:1px solid rgba(148,163,184,.28);background:#0f172a59;color:var(--text);font-size:.9rem}.playlists-list-search input::placeholder{color:var(--text-muted)}.playlists-track-select-all{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.playlists-favorites-track-table .col-check{width:2rem;text-align:center}.playlists-favorites-track-table tr.is-selected{background:color-mix(in srgb,var(--accent, #3b82f6) 10%,transparent)}.playlists-track-bulk-remove{color:var(--danger, #ef4444)}.playlists-track-bulk-remove:hover:not(:disabled){background:color-mix(in srgb,var(--danger, #ef4444) 12%,transparent)}.playlists-track-check{display:grid;place-items:center;flex:0 0 auto;margin:0;cursor:pointer}.playlists-track-pos{flex:0 0 1.75rem;font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--text-muted);text-align:right}.playlists-track-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.playlists-track-remove{flex:0 0 auto;padding:.35rem;color:var(--text-muted);opacity:.55}.playlists-track-remove:hover:not(:disabled){color:var(--danger, #ef4444);opacity:1;background:color-mix(in srgb,var(--danger, #ef4444) 12%,transparent)}.playlists-track-release-cover{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;overflow:hidden;border-radius:6px;background:#7c3aed1f;color:var(--text-muted)}.playlists-track-release-cover img{width:100%;height:100%;object-fit:cover}.playlists-track-title-row{display:flex;align-items:center;gap:.45rem;min-width:0}.playlists-track-title-row .playlists-track-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlists-track-source-badges{margin-left:auto}.release-source-badge--navidrome.is-linked{background:#2dd4bf2e;box-shadow:inset 0 0 0 1px #2dd4bf8c;color:#5eead4}.playlists-track-title,.playlists-track-meta{display:block}.playlists-track-title{color:var(--text);font-weight:500}.playlists-track-meta{margin-top:.15rem;color:var(--text-muted);font-size:.76rem}.playlists-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c}.playlists-modal{width:min(960px,100%);max-height:min(88vh,900px);display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.playlists-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--border)}.playlists-modal-head h2{margin:0 0 .25rem;font-size:1.15rem}.playlists-modal-sub{margin:0;font-size:.85rem;color:var(--text-muted)}.playlists-modal-close{padding:.35rem}.playlists-modal-toolbar{display:flex;align-items:center;gap:.65rem;padding:.75rem 1.25rem}.playlists-modal-count{margin-left:auto;font-size:.85rem;color:var(--text-muted)}.playlists-track-table-wrap{flex:1;overflow:auto;padding:0 1.25rem}.playlists-track-table{width:100%;border-collapse:collapse;font-size:.88rem}.playlists-track-table th,.playlists-track-table td{padding:.55rem .45rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.playlists-track-table th{color:var(--text-muted);font-weight:600;font-size:.78rem}.playlists-track-title{font-weight:600}.playlists-track-artist{font-size:.8rem;color:var(--text-muted)}.playlists-track-artist-link{color:var(--accent);text-decoration:none}.playlists-track-artist-link:hover{text-decoration:underline}.playlists-track-row{display:flex;align-items:center;gap:.75rem;min-width:0}.playlists-track-main{min-width:0}.playlists-track-cover{width:40px;height:40px;border-radius:6px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);color:var(--text-muted)}.playlists-track-cover img{width:100%;height:100%;object-fit:cover}.playlists-match{display:inline-block;padding:.15rem .45rem;border-radius:999px;font-size:.75rem;background:#ffffff0f}.playlists-match--in_library{color:var(--success);background:#22c55e1f}.playlists-match--awaits{color:#fbbf24;background:#fbbf2424}.playlists-server-track-table tr.is-awaits-primary{opacity:.72}.playlists-match--suggested{color:#c4b5fd;background:#7c3aed2e}.playlists-match--none{color:var(--text-muted)}.playlists-modal-foot{display:flex;justify-content:flex-end;gap:.65rem;padding:.9rem 1.25rem 1.1rem;border-top:1px solid var(--border)}.playlists-server-track-table-wrap{padding:.35rem .5rem .75rem;max-height:420px}.playlists-server-track-table{table-layout:fixed;font-size:.82rem}.playlists-server-track-table th,.playlists-server-track-table td{padding:.45rem .35rem;vertical-align:middle}.playlists-server-track-table .col-check{width:2rem}.playlists-server-track-table .col-pos{width:2rem;text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums}.playlists-server-track-table .col-cover{width:3rem}.playlists-server-track-table .col-title{width:16%}.playlists-server-track-table .col-album,.playlists-server-track-table .col-artist{width:12%}.playlists-server-track-table .col-date,.playlists-server-track-table .col-duration{width:3.5rem;white-space:nowrap;text-align:center}.playlists-server-track-table .col-source{width:6.5rem;white-space:nowrap;text-align:center;color:var(--text-muted);font-size:.82rem;overflow:hidden;text-overflow:ellipsis}.playlists-server-track-table .col-status{width:7.5rem;white-space:nowrap;text-align:center}.playlists-server-track-table tr.is-inactive{opacity:.55}.playlists-track-empty-filter{padding:1rem .75rem;text-align:center;color:var(--text-muted);font-size:.9rem}.playlists-server-track-table .col-map,.playlists-server-track-table .col-couplings,.playlists-server-track-table .col-presence{width:6.5rem;white-space:nowrap;text-align:center}.playlists-server-track-table .col-check,.playlists-server-track-table .col-play,.playlists-server-track-table .col-actions{text-align:center}.playlists-server-track-table .col-play{width:2.75rem;overflow:hidden}.playlists-server-track-table .col-status .playlists-match,.playlists-server-track-table .col-map .playlists-track-service-icons,.playlists-server-track-table .col-couplings .playlists-track-service-icons,.playlists-server-track-table .col-presence .playlists-track-service-icons{display:inline-flex;justify-content:center;align-items:center;vertical-align:middle}.playlists-server-track-table .playlists-track-artist{font-size:.85rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlists-server-track-table .col-actions{width:2.5rem}.playlists-server-track-table .col-album,.playlists-server-track-table .col-artist,.playlists-server-track-table .col-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlists-server-track-table tr.is-selected{background:color-mix(in srgb,var(--accent, #3b82f6) 10%,transparent)}.playlists-track-service-icons{display:inline-flex;align-items:center;gap:.2rem}.playlists-track-service-empty{color:var(--muted, #888);font-size:.85rem;opacity:.7}.playlists-track-service-btn{display:inline-grid;place-items:center;width:1.55rem;height:1.55rem;border-radius:6px;border:1px solid rgba(148,163,184,.18);background:#ffffff08;color:var(--text-muted);opacity:.45;padding:0}button.playlists-track-service-btn{cursor:pointer}button.playlists-track-service-btn:hover:not(:disabled){opacity:.85;border-color:#94a3b859}.playlists-track-service-btn.is-linked{opacity:1;border-color:transparent}.playlists-track-service-btn.is-unavailable{opacity:.55;border-color:#f8717173;filter:grayscale(.35)}.playlists-track-service-btn--deezer.is-linked{background:#a238ff2e}.playlists-track-service-btn--yandex.is-linked{background:#fcc41929}.playlists-track-service-btn--navidrome.is-linked{background:#38bdf829;color:#7dd3fc}.playlists-track-service-btn--tunetide.is-linked{background:color-mix(in srgb,var(--accent, #3b82f6) 18%,transparent);color:var(--accent, #3b82f6)}.playlists-track-service-btn--play.is-linked{color:var(--accent)}button.playlists-track-service-btn--play.is-playing{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.playlists-track-play-error{margin:.35rem .5rem 0}.playlists-map-track-ref{display:flex;align-items:center;gap:.65rem;margin:0 1.25rem .75rem;color:var(--text-muted);font-size:.88rem}.playlists-map-track-cover{flex-shrink:0;width:3rem;height:3rem;border-radius:6px;object-fit:cover;background:#ffffff0a}.playlists-map-track-cover--placeholder{display:inline-grid;place-items:center;color:var(--text-muted);font-size:1rem;border:1px solid rgba(148,163,184,.16)}.playlists-map-track-play{flex-shrink:0;min-width:2rem;min-height:2rem;padding:.35rem}.playlists-map-track-ref-text{min-width:0;display:flex;flex-direction:column;gap:.1rem}.playlists-map-track-ref-text strong{color:var(--text);font-size:.95rem;font-weight:600}.playlists-map-track-ref-text span{color:var(--text-muted);font-size:.82rem}.playlists-map-track-ref-text .match-modal-release-link{margin-top:.15rem}@media (max-width: 700px){.playlists-header{flex-direction:column}.playlists-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:0}.playlists-tab{white-space:nowrap}.playlists-server-head{flex-direction:column}.playlists-server-actions{width:100%;justify-content:stretch}.playlists-server-actions .playlists-action-btn{flex:1 1 auto}.playlists-server-title{white-space:normal}}.settings-users-intro{margin:0 0 1rem}.users-form{display:flex;flex-direction:column;gap:.75rem}.users-list{display:flex;flex-direction:column;gap:.65rem}.users-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.users-row:last-child{border-bottom:none}.users-row-title{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.users-row-login{color:var(--text-muted);font-size:.9rem}.users-badge-admin,.users-badge-off{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .45rem;border-radius:999px}.users-badge-admin{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.users-badge-off{background:#ff6b7a26;color:var(--danger)}.users-row-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.users-edit-fields{display:grid;gap:.5rem;margin-top:.65rem;max-width:360px}.users-delete-btn{color:var(--danger)}@media (max-width: 700px){.users-row{flex-direction:column}.users-row-actions{justify-content:flex-start}}
