:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1115;--bg-elevated:#171a21;--bg-hover:#1f232c;--border:#272b35;--text:#e8eaed;--text-muted:#9aa1ac;--accent:#f50;--accent-hover:#f73;--accent-contrast:#fff;--danger:#e5484d;--success:#2fa84f;--warning:#d9a441;--radius-sm:4px;--radius:8px;--radius-lg:14px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--player-height:76px;--sidebar-width:232px;--max-content:1240px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--shadow:0 6px 24px #00000059}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--bg-elevated:#f5f6f8;--bg-hover:#ebedf0;--border:#dcdfe4;--text:#16181d;--text-muted:#626873;--shadow:0 6px 24px #0000001f}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{margin:0 0 var(--space-3);font-weight:650;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 var(--space-3)}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.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}.skip-link{left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-3);background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius);transition:top .15s;position:absolute;top:-60px}.skip-link:focus{top:var(--space-3)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);min-height:38px;color:var(--text);font:inherit;cursor:pointer;font-weight:550;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--bg-hover)}.btn-sm{min-height:30px;padding:var(--space-1) var(--space-3);font-size:.85rem}.btn-icon{border-radius:50%;width:38px;min-height:38px;padding:0}.icon-btn{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--bg-hover)}.icon-btn[aria-pressed=true]{color:var(--accent)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field label{color:var(--text-muted);font-size:.85rem;font-weight:550}input,textarea,select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);min-height:38px;color:var(--text);font:inherit}textarea{resize:vertical;min-height:96px}input:focus,textarea:focus,select:focus{border-color:var(--accent)}.checkbox{align-items:center;gap:var(--space-2);flex-direction:row}.checkbox input{width:auto;min-height:auto}.checkbox label{color:var(--text)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.alert{padding:var(--space-3);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:var(--space-4);font-size:.9rem}.alert-error{border-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.alert-success{border-color:var(--success);color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent)}.alert-info{color:var(--text-muted);background:var(--bg-elevated)}.muted{color:var(--text-muted)}.small{font-size:.85rem}.row{align-items:center;gap:var(--space-3);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.wrap{flex-wrap:wrap}.stack{gap:var(--space-3);flex-direction:column;display:flex}.grow{flex:1;min-width:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{padding:2px var(--space-2);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-radius:999px;font-size:.72rem;font-weight:600;display:inline-block}.badge-accent{border-color:var(--accent);color:var(--accent)}.badge-danger{border-color:var(--danger);color:var(--danger)}.badge-success{border-color:var(--success);color:var(--success)}.badge-warning{border-color:var(--warning);color:var(--warning)}.tag-chip{padding:2px var(--space-2);background:var(--bg-hover);color:var(--text-muted);border-radius:999px;font-size:.78rem;display:inline-block}.tag-chip:hover{color:var(--accent);text-decoration:none}.app-shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100%;padding-bottom:var(--player-height);grid-template-rows:1fr;display:grid}.sidebar{height:calc(100vh - var(--player-height));border-right:1px solid var(--border);background:var(--bg-elevated);padding:var(--space-4);align-self:start;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);color:var(--accent);font-size:1.15rem;font-weight:750;display:flex}.nav{flex-direction:column;gap:2px;display:flex}.nav a{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--text-muted);font-weight:550;display:flex}.nav a:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.nav a.active{background:var(--bg-hover);color:var(--accent)}.nav-section{margin-top:var(--space-5);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding-left:var(--space-3);font-size:.72rem}.topbar{z-index:20;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.content{max-width:var(--max-content);padding:var(--space-5);width:100%;margin:0 auto}.mobile-nav{display:none}.grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(168px,1fr));display:grid}.track-card{min-width:0}.cover{aspect-ratio:1;border-radius:var(--radius);background:var(--bg-hover);margin-bottom:var(--space-2);position:relative;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%}.cover-placeholder{height:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:2rem;display:flex}.cover .play-overlay{right:var(--space-2);bottom:var(--space-2);background:var(--accent);width:44px;height:44px;color:var(--accent-contrast);cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s,transform .15s;display:flex;position:absolute;transform:translateY(6px)}.cover:hover .play-overlay,.cover .play-overlay:focus-visible{opacity:1;transform:translateY(0)}@media (hover:none){.cover .play-overlay{opacity:1;transform:none}}.track-list{flex-direction:column;display:flex}.track-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2);border-radius:var(--radius);border-bottom:1px solid var(--border);grid-template-columns:32px 44px 1fr auto auto;display:grid}.track-row:hover{background:var(--bg-hover)}.track-row.is-current{color:var(--accent)}.track-row .index{text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums}.track-row .thumb{border-radius:var(--radius-sm);object-fit:cover;background:var(--bg-hover);width:44px;height:44px}.track-row .meta{min-width:0}.track-row .duration{color:var(--text-muted);font-variant-numeric:tabular-nums}.drag-handle{cursor:grab;color:var(--text-muted);padding:var(--space-1);background:0 0;border:none}.drag-handle:active{cursor:grabbing}.sortable-item{background:var(--bg)}.sortable-item.dragging{opacity:.6;background:var(--bg-hover)}.mini-player{z-index:40;height:var(--player-height);align-items:center;gap:var(--space-4);padding:0 var(--space-4);background:var(--bg-elevated);border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mini-player .now-playing{align-items:center;gap:var(--space-3);min-width:0;display:flex}.mini-player .now-playing img{border-radius:var(--radius-sm);object-fit:cover;width:48px;height:48px}.player-controls{flex-direction:column;align-items:center;gap:2px;display:flex}.player-buttons{align-items:center;gap:var(--space-1);display:flex}.player-extras{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}.progress-row{align-items:center;gap:var(--space-2);width:min(520px,46vw);color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem;display:flex}.seek{appearance:none;background:var(--border);cursor:pointer;border:none;border-radius:2px;flex:1;height:4px;min-height:auto;padding:0}.seek::-webkit-slider-thumb{appearance:none;background:var(--accent);border-radius:50%;width:12px;height:12px}.seek::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:12px;height:12px}.volume{width:90px}.play-button{background:var(--accent);width:40px;height:40px;color:var(--accent-contrast);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.full-player{z-index:60;background:var(--bg);padding:var(--space-5);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.full-player .artwork{aspect-ratio:1;border-radius:var(--radius-lg);object-fit:cover;width:min(360px,78vw);margin:0 auto var(--space-5);background:var(--bg-hover);box-shadow:var(--shadow)}.queue-panel{right:0;bottom:var(--player-height);z-index:50;background:var(--bg-elevated);border-left:1px solid var(--border);width:min(380px,92vw);padding:var(--space-4);box-shadow:var(--shadow);position:fixed;top:0;overflow-y:auto}.comment{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);display:flex}.avatar{object-fit:cover;background:var(--bg-hover);border-radius:50%;flex-shrink:0;width:36px;height:36px}.avatar-lg{width:96px;height:96px}.timestamp-link{color:var(--accent);cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:none;padding:0}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--text-muted);text-transform:uppercase;font-size:.8rem;font-weight:600}tbody tr:hover{background:var(--bg-hover)}.stat-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.stat .value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.stat .label{color:var(--text-muted);font-size:.82rem}.chart{height:140px;padding-top:var(--space-3);align-items:flex-end;gap:2px;display:flex}.chart .bar{background:var(--accent);border-radius:2px 2px 0 0;flex:1;min-width:3px;min-height:2px}.pagination{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-5);display:flex}.empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted)}.skeleton{background:linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-hover) 50%, var(--bg-elevated) 75%);border-radius:var(--radius);background-size:200% 100%;animation:1.2s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.section{margin-bottom:var(--space-6)}.section-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:baseline;display:flex}.auth-page{max-width:380px;padding:var(--space-5);margin:8vh auto}.dialog-backdrop{z-index:70;padding:var(--space-4);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);width:min(460px,100%);max-height:90vh;box-shadow:var(--shadow);overflow-y:auto}.tabs{gap:var(--space-1);border-bottom:1px solid var(--border);margin-bottom:var(--space-4);display:flex}.tabs button{padding:var(--space-2) var(--space-3);color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;font-weight:550}.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.progress-bar{background:var(--bg-hover);border-radius:3px;height:6px;overflow:hidden}.progress-bar>div{background:var(--accent);height:100%;transition:width .2s}@media (width<=860px){.app-shell{padding-bottom:calc(var(--player-height) + 56px);grid-template-columns:1fr}.sidebar{display:none}.content{padding:var(--space-4) var(--space-3)}.mini-player{gap:var(--space-2);grid-template-columns:1fr auto;bottom:56px}.mini-player .progress-row,.mini-player .player-extras{display:none}.mobile-nav{z-index:45;background:var(--bg-elevated);border-top:1px solid var(--border);height:56px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav a{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.68rem;display:flex}.mobile-nav a.active{color:var(--accent)}.mobile-nav a:hover{text-decoration:none}.track-row{grid-template-columns:44px 1fr auto}.track-row .index{display:none}.grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
