@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.p.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_7f7f2741-module__GzzlXW__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_7f7f2741-module__GzzlXW__variable{--font-sans:"Manrope", "Manrope Fallback"}
:root{--bg-deep:#000;--bg:#121212;--bg-elevated:#181818;--bg-raised:#242424;--bg-hover:#333;--border:#2a2a2a;--border-strong:#454545;--text:#fff;--text-muted:#b3b3b3;--text-faint:#7e7e7e;--accent:#1ed760;--accent-hover:#3be477;--accent-contrast:#000;--accent-soft:color-mix(in srgb, var(--accent) 14%, transparent);--accent-surface:color-mix(in srgb, var(--accent) 16%, var(--bg-elevated));--danger:#f2545b;--success:#1ed760;--fs-xs:.8rem;--fs-sm:.875rem;--fs-lg:1.25rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:20px;--sp-5:32px;--sp-6:40px;--radius-sm:6px;--radius:10px;--radius-lg:16px;--sidebar-width:244px;--player-height:92px;--player-cover:56px;--mobile-nav-height:62px;--hairline:inset 0 0 0 1px #ffffff12;--shadow-art:0 2px 10px #0006, var(--hairline);--shadow:0 8px 24px #0006;--ease:cubic-bezier(.2, 0, 0, 1);--transition:.16s var(--ease);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (max-width:900px){:root{--player-height:74px;--player-cover:46px}}@property --cover-tint{syntax:"<color>";inherits:true;initial-value:#0000}
*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg-deep);color:var(--text);font-family:var(--font-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}h1,h2,h3{margin:0;font-weight:700;line-height:1.25}h1{letter-spacing:-.025em;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem)}h2{font-size:var(--fs-lg);letter-spacing:-.01em}h3{font-size:1rem}p{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}ul,ol{margin:0;padding:0;list-style:none}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--text);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--text-muted)}.hint{color:var(--text-muted);font-size:var(--fs-sm);margin-top:12px}@media not all and (max-width:900px){.show-mobile{display:none!important}}@media (max-width:900px){.hide-mobile{display:none!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.shell{grid-template-columns:var(--sidebar-width) 1fr;gap:var(--sp-2);padding:var(--sp-2);grid-template-rows:auto 1fr auto;grid-template-areas:"sidebar topbar""sidebar content""sidebar player";height:100dvh;display:grid}.sidebar{flex-direction:column;grid-area:sidebar;gap:4px;padding:12px;display:flex;overflow-y:auto}.brand{font-weight:700;font-size:var(--fs-lg);align-items:center;gap:10px;padding:4px 10px 20px;display:flex}.brand-logo{object-fit:cover;border-radius:10px;width:34px;height:34px;display:block}.nav-heading{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:20px 12px 6px;font-weight:700}.nav-link{border-radius:var(--radius);color:var(--text-muted);transition:background var(--transition), color var(--transition);align-items:center;gap:12px;padding:10px 12px;display:flex}.nav-link:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.nav-link.is-active{background:var(--bg-raised);color:var(--text);font-weight:600}.sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:auto;padding-top:16px;display:flex}.locale-switcher{font-size:var(--fs-xs);letter-spacing:.04em;font-weight:700}.user-chip{border-radius:var(--radius);background:var(--bg-raised);min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:6px 10px;overflow:hidden}.topbar{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-lg);background:var(--bg);grid-area:topbar;align-items:center;display:flex}.topbar .search-field{flex:1;max-width:none}.content{overscroll-behavior:contain;padding:var(--sp-5) var(--sp-6) var(--sp-6);border-radius:var(--radius-lg);background:var(--bg);gap:var(--sp-6);flex-direction:column;grid-area:content;display:flex;overflow-y:auto}.content>section{gap:var(--sp-3);flex-direction:column;display:flex}.mobile-nav{display:none}@media (max-width:900px){.shell{grid-template:"topbar""content"1fr"player""nav"/1fr;gap:0;padding:0}.sidebar{display:none}.topbar,.content{border-radius:0}.topbar{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.content{padding:var(--sp-4) var(--sp-3) var(--sp-5);gap:var(--sp-5)}.mobile-nav{height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg-elevated);border-top:1px solid var(--border);grid-area:nav;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.mobile-nav-link{min-width:0;color:var(--text-faint);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 2px;font-size:.68rem;font-weight:600;display:flex}.mobile-nav-link>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mobile-nav-link:hover{text-decoration:none}.mobile-nav-link.is-active{color:var(--accent)}}.sheet-backdrop{z-index:80;background:#0000008c;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet{max-height:82dvh;padding:var(--sp-2) var(--sp-3) calc(var(--sp-4) + env(safe-area-inset-bottom));border-top:1px solid var(--border-strong);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg-elevated);box-shadow:var(--shadow);animation:sheet-in .18s var(--ease);overflow-y:auto}.sheet-grabber{background:var(--border-strong);border-radius:999px;width:38px;height:4px;margin:6px auto 10px}.sheet .nav-link{padding:12px}.sheet-footer{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);display:flex}@keyframes sheet-in{0%{opacity:0;transform:translateY(12%)}}
.page-header{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;display:flex}.page-subtitle{margin-top:var(--sp-1);color:var(--text-faint);font-size:var(--fs-sm)}.page-actions{align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.section-header{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.section-tools{align-items:center;gap:var(--sp-3);display:flex}.shelf-nav{gap:var(--sp-1);display:flex}.section-title{font-size:var(--fs-lg);letter-spacing:-.01em;margin:0;font-weight:700}.empty-state{padding:var(--sp-5) 0;color:var(--text-muted)}.empty-panel{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);flex-direction:column;display:flex}.load-error{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--danger) 40%, var(--border));background:color-mix(in srgb, var(--danger) 12%, var(--bg-elevated));flex-wrap:wrap;display:flex}.pagination{justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-1);display:flex}@media (max-width:900px){.page-header{align-items:flex-start}}
.button{border:1px solid var(--border-strong);cursor:pointer;font-size:var(--fs-sm);white-space:nowrap;transition:background var(--transition), border-color var(--transition);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;font-weight:550;display:inline-flex}.button:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--text)}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:650}.button-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.text-button{cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm);background:0 0;border:0;padding:0;font-weight:600}.text-button:hover:not(:disabled){color:var(--text);text-decoration:underline}.text-button:disabled{opacity:.5;cursor:not-allowed}.icon-button{width:34px;height:34px;color:var(--text-muted);cursor:pointer;transition:color var(--transition), background var(--transition);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.icon-button:hover:not(:disabled){color:var(--text);background:var(--bg-hover)}.icon-button.is-active{color:var(--accent)}.icon-button:disabled{opacity:.45;cursor:not-allowed}.play-button,.play-all{background:var(--accent);color:var(--accent-contrast);cursor:pointer;transition:background var(--transition);border:0;border-radius:50%;place-items:center;display:grid}.play-button{width:42px;height:42px}.play-all{width:54px;height:54px}.play-button:hover:not(:disabled),.play-all:hover:not(:disabled){background:var(--accent-hover)}.play-all:disabled{opacity:.4;cursor:not-allowed}@media (max-width:900px){.icon-button{width:40px;height:40px}}
input[type=text],input[type=password],input[type=search],input[type=number],select{border-radius:var(--radius);background:var(--bg-raised);width:100%;transition:border-color var(--transition);border:1px solid #0000;padding:10px}input:focus,select:focus{border-color:var(--text)}.select-field select{appearance:none;cursor:pointer;background-color:var(--bg-raised);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3b3b3' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;background-size:16px;border-radius:999px;width:auto;padding:10px 36px 10px 14px}.search-field{background:var(--bg-raised);color:var(--text-muted);border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;max-width:560px;padding:0 14px;display:flex}.search-field:hover{background:var(--bg-hover)}.search-field input{background:0 0;border:0;padding:12px 0}.search-field input:focus{outline:none}.search-field:focus-within{border-color:var(--text);color:var(--text)}.inline-form{border-radius:var(--radius);background:var(--bg-elevated);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:16px;display:flex}.inline-form-fields{flex-wrap:wrap;flex:1;gap:10px;min-width:240px;display:flex}.inline-form-fields>input{flex:1;min-width:180px}.inline-form-actions{gap:8px;display:flex}
.menu-anchor{position:relative}.menu{z-index:40;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-raised);min-width:210px;max-height:320px;box-shadow:var(--shadow);padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.menu button{border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;font-size:var(--fs-sm);background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;display:flex}.menu button:hover{background:var(--bg-hover)}.menu button.is-danger{color:var(--danger)}.menu button:disabled{cursor:default;color:var(--text-faint);background:0 0}.menu-separator{background:var(--border);height:1px;margin:6px 4px}.menu-label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:4px 10px;font-weight:700}.menu-hint{color:var(--text-faint);font-size:var(--fs-sm);padding:6px 10px;display:block}.chip-row{flex-wrap:wrap;gap:10px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--bg-elevated);cursor:pointer;font-size:var(--fs-sm);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;display:inline-flex}.chip:hover{background:var(--bg-hover)}.chip.is-active{border-color:var(--accent);background:var(--accent-surface);color:var(--text)}.chip-count{color:var(--text-faint);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.card-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(164px,1fr));display:grid}.shelf{gap:var(--sp-4);overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:var(--sp-1) 0 var(--sp-2);grid-auto-columns:164px;grid-auto-flow:column;display:grid;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 56px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 56px),#0000)}.shelf>*{scroll-snap-align:start}.card{gap:var(--sp-1);padding:var(--sp-3);border-radius:var(--radius);background:var(--bg-elevated);transition:background var(--transition), border-color var(--transition);border:1px solid #0000;flex-direction:column;min-width:0;display:flex}.card:hover{background:var(--bg-raised);border-color:var(--border);text-decoration:none}.card-button{cursor:pointer;text-align:left;font:inherit;border:1px solid #0000}.card.is-current .card-title{color:var(--accent)}.card-art{aspect-ratio:1;width:100%;margin-bottom:var(--sp-2);border-radius:var(--radius-sm);background:var(--bg-raised);box-shadow:var(--shadow-art);position:relative;overflow:hidden}.card-art:has(.cover-round){background:0 0;border-radius:50%}.card-art-playlist{color:#ffffffd1;place-items:center;display:grid}.card-art-playlist svg{width:38%;max-width:72px;height:38%;max-height:72px}.card:hover .card-art img{transform:scale(1.04)}.card-play{right:var(--sp-2);bottom:var(--sp-2);background:var(--accent);width:36px;height:36px;color:var(--accent-contrast);opacity:0;transition:opacity var(--transition), transform var(--transition);border-radius:50%;place-items:center;display:grid;position:absolute;transform:translateY(6px)}.card:hover .card-play,.card.is-current .card-play{opacity:1;transform:translateY(0)}.card-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.card-subtitle{color:var(--text-muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cover{border-radius:var(--radius-sm);background:var(--bg-raised);flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.cover-round,.cover-round img{border-radius:50%}.cover img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition);display:block}.cover[data-placeholder]{box-shadow:var(--hairline)}.cover-fallback{color:#ffffffd1;letter-spacing:.02em;place-items:center;width:100%;height:100%;font-size:clamp(.8rem,30cqw,4.5rem);font-weight:700;line-height:1;display:grid;container-type:inline-size}.cover-fallback svg{width:38%;max-width:72px;height:38%;max-height:72px}@media (max-width:900px){.card-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.shelf{gap:var(--sp-3);grid-auto-columns:140px;-webkit-mask-image:none;mask-image:none}}@media (max-width:380px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(122px,1fr))}}
.detail-header{align-items:flex-end;gap:var(--sp-5);padding:var(--sp-4);border-radius:var(--radius-lg);background-image:linear-gradient(180deg, color-mix(in srgb, var(--cover-tint) 42%, transparent), transparent);transition:--cover-tint .7s var(--ease);flex-wrap:wrap;display:flex}.detail-art{border-radius:var(--radius);width:210px;height:210px;box-shadow:var(--shadow-art);color:var(--text-faint);flex:none;place-items:center;display:grid;overflow:hidden}.detail-art-round{border-radius:50%}.detail-meta{gap:var(--sp-2);flex-direction:column;flex:1;min-width:min(260px,100%);display:flex}.detail-kind{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-weight:700}.detail-facts{color:var(--text-muted);font-size:var(--fs-sm)}.detail-artist{color:var(--text);font-weight:600}.detail-description{color:var(--text-muted);max-width:62ch}.detail-actions{align-items:center;gap:var(--sp-3);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}@media (max-width:900px){.detail-header{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3)}.detail-art{width:118px;height:118px}.detail-description{font-size:var(--fs-sm)}}
.track-list{flex-direction:column;display:flex}.track-row{border-radius:var(--radius-sm);transition:background var(--transition);grid-template-columns:44px minmax(0,3fr) minmax(0,2fr) 76px 88px;align-items:center;gap:12px;padding:9px 10px;display:grid}.track-row:has(.track-date){grid-template-columns:44px minmax(0,3fr) minmax(0,2fr) 110px 76px 88px}.track-head{border-bottom:1px solid var(--border);color:var(--text-faint);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;border-radius:0;padding-bottom:8px;font-weight:700}.track-head>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.track-row:not(.track-head):hover,.track-row.is-current:not(:hover){background:var(--bg-elevated)}.track-row.is-drop-target{outline:2px dashed var(--accent);outline-offset:-2px}.track-row[draggable=true]{cursor:grab}.track-index{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:var(--fs-sm);align-items:center;gap:4px;display:flex}.drag-handle{color:var(--text-faint);opacity:0;transition:opacity var(--transition)}.track-row:hover .drag-handle{opacity:1}.track-play{width:26px;height:26px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:none}.track-row:not(.track-head):hover .track-number{display:none}.track-row:not(.track-head):hover .track-play{display:grid}.track-main{align-items:center;gap:12px;min-width:0;display:flex}.track-titles{flex-direction:column;min-width:0;display:flex}.track-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.track-title.is-current-text{color:var(--accent)}.track-artist,.track-album a,.track-album,.track-date{color:var(--text-muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.track-duration{text-align:right;color:var(--text-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.track-actions{opacity:0;transition:opacity var(--transition);justify-content:flex-end;align-items:center;gap:2px;display:flex}.track-row:hover .track-actions,.track-row:focus-within .track-actions,.track-row.is-current .track-actions{opacity:1}.track-actions .icon-button.is-active{opacity:1;color:var(--accent)}@media (max-width:900px){:is(.track-row,.track-row:has(.track-date)){grid-template-columns:34px minmax(0,1fr) auto auto;gap:8px;padding:8px 4px}.track-album,.track-date,.track-head .track-album,.track-head .track-date{display:none}.track-actions{opacity:1}.track-actions .icon-button{width:36px;height:36px}.track-row:not(.track-head) .track-number{display:none}.track-row:not(.track-head) .track-play{width:32px;height:32px;display:grid}.track-head .track-index{visibility:hidden}}@media (max-width:380px){:is(.track-row,.track-row:has(.track-date)){grid-template-columns:34px minmax(0,1fr) auto}.track-duration,.track-head .track-duration{display:none}}
.seekbar{--progress:0%;--seek-fill:var(--text);appearance:none;cursor:pointer;background:0 0;width:100%;height:16px;margin:0;display:block}.seekbar::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--seek-fill) var(--progress), var(--border-strong) var(--progress));border-radius:999px;height:5px}.seekbar::-moz-range-track{background:linear-gradient(to right, var(--seek-fill) var(--progress), var(--border-strong) var(--progress));border-radius:999px;height:5px}.seekbar:hover,.seekbar:focus-visible{--seek-fill:var(--accent)}.seekbar::-webkit-slider-thumb{appearance:none;background:var(--text);opacity:0;width:13px;height:13px;transition:opacity var(--transition);border:0;border-radius:50%;margin-top:-4px}.seekbar::-moz-range-thumb{background:var(--text);opacity:0;width:13px;height:13px;transition:opacity var(--transition);border:0;border-radius:50%}.seekbar:hover::-webkit-slider-thumb{opacity:1}.seekbar:focus-visible::-webkit-slider-thumb{opacity:1}.seekbar:hover::-moz-range-thumb{opacity:1}.seekbar:focus-visible::-moz-range-thumb{opacity:1}.seekbar:disabled{cursor:default}.volume-bar{max-width:118px}.player{min-height:var(--player-height);border-radius:var(--radius-lg);background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb, var(--cover-tint) 22%, transparent), color-mix(in srgb, var(--cover-tint) 22%, transparent));transition:--cover-tint .7s var(--ease);grid-area:player;padding:10px 20px;position:relative;overflow:hidden}.seekbar.player-seek{z-index:0;width:100%;height:100%;margin:0;position:absolute;inset:0}.seekbar.player-seek::-webkit-slider-runnable-track{background:linear-gradient(to right, #ffffff17 var(--progress), #ffffff09 var(--progress), #ffffff09 var(--buffered,0%), transparent var(--buffered,0%));border-radius:0;height:100%}.seekbar.player-seek::-moz-range-track{background:linear-gradient(to right, #ffffff17 var(--progress), #ffffff09 var(--progress), #ffffff09 var(--buffered,0%), transparent var(--buffered,0%));border-radius:0;height:100%}.seekbar.player-seek::-webkit-slider-thumb{opacity:0;width:0;height:0}.seekbar.player-seek::-moz-range-thumb{opacity:0;width:0;height:0}.player-idle{place-items:center;display:grid}.player .icon-button{width:40px;height:40px}.player .play-button{width:54px;height:54px}.player-inner{z-index:1;pointer-events:none;align-items:center;gap:var(--sp-4);grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);height:100%;display:grid;position:relative}.player-inner button,.player-inner a,.player-inner input{pointer-events:auto}.player-track{align-items:center;gap:12px;min-width:0;display:flex}.player-cover-button{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;padding:0;line-height:0}.player-cover-button .cover,.fullscreen-art{box-shadow:var(--shadow-art)}.player-meta{flex-direction:column;min-width:0;display:flex}.player-title{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.player-artist{color:var(--text-muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-center{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.transport{align-items:center;gap:8px;display:flex}.transport-large{justify-content:center;gap:18px}.time{color:var(--text-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;text-align:center;min-width:40px}.player-right{justify-content:flex-end;align-items:center;gap:6px;display:flex}.time-pair{min-width:auto;margin-right:var(--sp-1);white-space:nowrap}.player-mobile-progress{margin-top:2px}.queue-panel{right:18px;bottom:calc(var(--player-height) + var(--sp-2) + var(--sp-2));z-index:50;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-raised);width:min(360px,100vw - 36px);max-height:min(60vh,520px);box-shadow:var(--shadow);flex-direction:column;padding:14px;display:flex;position:fixed}.queue-panel>header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.queue-actions{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:6px;padding:4px 2px 10px;display:flex}.queue-list{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.queue-list li{border-radius:var(--radius-sm);align-items:center;gap:4px;display:flex}.queue-list li:hover{background:var(--bg-hover)}.queue-list li.is-current .queue-title{color:var(--accent)}.queue-item{cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.queue-meta{flex-direction:column;flex:1;min-width:0;display:flex}.queue-title{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.queue-artist{color:var(--text-muted);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fullscreen-player{z-index:90;padding:max(16px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));background-color:var(--bg);background-image:linear-gradient(180deg, color-mix(in srgb, var(--cover-tint) 55%, transparent), transparent 62%);transition:--cover-tint .7s var(--ease);flex-direction:column;display:flex;position:fixed;inset:0}.fullscreen-player .icon-button{width:44px;height:44px}.fullscreen-player .play-button{width:64px;height:64px}.fullscreen-header{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.fullscreen-header-actions{align-items:center;gap:4px;display:flex}.fullscreen-body{flex-direction:column;flex:1;justify-content:center;gap:22px;width:100%;max-width:460px;min-height:0;margin:0 auto;display:flex}.fullscreen-art{aspect-ratio:1;border-radius:var(--radius-lg);align-self:center;width:100%;max-height:44vh;overflow:hidden}.fullscreen-art .cover{width:100%;height:100%}.fullscreen-meta{text-align:center;flex-direction:column;gap:4px;display:flex}.fullscreen-meta h2{font-size:1.35rem}.fullscreen-progress{flex-direction:column;gap:2px;display:flex}.fullscreen-times{color:var(--text-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.fullscreen-extra{justify-content:space-between;align-items:center;gap:16px;display:flex}.fullscreen-volume{flex:1;align-items:center;gap:8px;max-width:200px;display:flex}.fullscreen-queue{flex:1;padding-top:12px;overflow-y:auto}@media (max-width:900px){.player{min-height:var(--player-height);border-top:1px solid var(--border);border-radius:0;padding:8px 10px 4px}.player-inner{grid-template-columns:1fr;gap:0}.player-track{gap:10px}.player-mobile-controls{align-items:center;gap:2px;margin-left:auto;display:flex}.player-mobile-controls .icon-button,.player-track>.icon-button{width:40px;height:40px}.player-mobile-progress{margin-top:0}.player-mobile-progress .seekbar{height:14px}.queue-panel{width:auto;left:12px;right:12px;bottom:calc(var(--player-height) + var(--mobile-nav-height) + env(safe-area-inset-bottom) + 10px);max-height:min(52dvh,420px)}}
.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);color:var(--text-muted);text-align:center;transition:border-color var(--transition), background var(--transition);flex-direction:column;align-items:center;gap:12px;padding:44px 24px;display:flex}.dropzone.is-dragging{border-color:var(--accent);background:var(--accent-surface);color:var(--text)}.upload-queue{flex-direction:column;gap:14px;display:flex}.file-list,.failure-list{flex-direction:column;gap:2px;display:flex}.file-list li,.failure-list li{border-radius:var(--radius-sm);background:var(--bg-elevated);font-size:var(--fs-sm);align-items:center;gap:14px;padding:10px 12px;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.failure-list li{border-left:3px solid var(--danger)}.failure-reason{color:var(--danger);font-size:var(--fs-sm)}.progress{background:var(--bg-raised);border-radius:999px;height:34px;position:relative;overflow:hidden}.progress-bar{background:var(--accent);height:100%;transition:width .18s linear}.progress-label{font-size:var(--fs-sm);color:var(--text);place-items:center;font-weight:600;display:grid;position:absolute;inset:0}
.modal-backdrop{z-index:100;background:#0000009e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-raised);width:min(520px,100%);max-height:88dvh;box-shadow:var(--shadow);overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.modal-body{flex-direction:column;gap:6px;padding:18px;display:flex}.modal-body label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:8px;font-weight:600}.field-row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.modal-actions{gap:10px;margin-top:20px;display:flex}.toast-stack{z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:18px;right:18px}.toast{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-raised);box-shadow:var(--shadow);font-size:var(--fs-sm);pointer-events:auto;align-items:flex-start;gap:10px;max-width:min(360px,100vw - 36px);padding:12px 12px 12px 16px;animation:.16s toast-in;display:flex}.toast-message{flex:1;min-width:0}.toast-dismiss{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:0;flex-shrink:0;padding:0 4px;font-size:1rem;line-height:1.2}.toast-dismiss:hover{opacity:1}.toast-success{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.toast-error{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}@media (max-width:900px){.modal-backdrop{padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom))}.field-row{grid-template-columns:1fr}.modal-actions .button{flex:1;justify-content:center}.toast-stack{top:max(12px, env(safe-area-inset-top));left:12px;right:12px}.toast{max-width:none}}
.admin-tabs{margin-bottom:var(--sp-4);border-bottom:1px solid var(--border);gap:4px;display:flex}.admin-tab{font-size:var(--fs-sm);color:var(--text-muted);transition:color var(--transition), border-color var(--transition);border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-weight:600}.admin-tab:hover{color:var(--text)}.admin-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.admin-table{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.admin-row{align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);border-bottom:1px solid var(--border);grid-template-columns:1.4fr 1.4fr .6fr .8fr;padding:12px 16px;display:grid}.admin-row:last-child{border-bottom:none}.admin-row:not(.admin-row-head):hover{background:var(--bg-hover)}.admin-row-head{background:var(--bg-elevated);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-weight:600}.admin-row-artist{grid-template-columns:40px 1.6fr 1fr auto}.admin-row-artist a{font-weight:600}.admin-row-artist a:hover{color:var(--accent)}.role-badge{font-size:var(--fs-xs);color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 9px;font-weight:600;display:inline-block}.image-picker{gap:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border);align-items:flex-start;display:flex}.image-picker-preview{width:96px;height:96px;font-size:var(--fs-lg);color:var(--accent-contrast);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid;overflow:hidden}.image-picker-preview img{object-fit:cover;width:100%;height:100%}.image-picker-actions{align-items:flex-start;gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.image-picker-actions .hint{margin:0}.checkbox-field{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);display:flex;color:var(--text)!important;font-weight:400!important}.checkbox-field input{width:auto;accent-color:var(--accent)}@media (max-width:900px){.admin-tabs{scrollbar-width:none;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{white-space:nowrap;padding:10px 12px}.admin-row,.admin-row-artist{gap:var(--sp-1);grid-template-columns:1fr}.admin-row-head{display:none}.image-picker{flex-direction:column;align-items:center}}
.login-page{background:var(--bg);place-items:safe center center;min-height:100dvh;padding:24px;display:grid;position:relative}.login-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);flex-direction:column;gap:6px;width:min(390px,100%);padding:30px;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-bottom:18px;display:flex}.login-brand .brand-logo{border-radius:18px;width:72px;height:72px}.login-card label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:12px;font-weight:600}.login-card .button{justify-content:center;margin-top:22px}.login-locale{position:absolute;top:16px;right:16px}
.boot-screen{align-content:center;place-items:center;gap:16px;height:100dvh;display:grid}.boot-pulse{background:var(--accent);border-radius:50%;width:42px;height:42px;animation:1.2s ease-in-out infinite pulse}.skeleton{border-radius:var(--radius);background:var(--bg-elevated);animation:1.4s ease-in-out infinite pulse}.skeleton-card{aspect-ratio:.78}.skeleton-rows{flex-direction:column;gap:8px;display:flex}.skeleton-row{height:52px}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}

