@font-face{font-family:Material Symbols Rounded;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/material-symbols-rounded.ttf) format("truetype")}.mi{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle}.mi-sm{font-size:18px}.mi-lg{font-size:32px}.mi-xl{font-size:48px}:root{--bg: #0a0a0a;--surface: #141414;--surface-2: #1e1e1e;--surface-3: #2a2a2a;--surface-4: #3e3e3e;--border: #333;--text: #ffffff;--text-2:#eaeaea;--text-muted: #888;--accent: #ff8f8f;--accent-2: #d17878;--accent-hover: #ffbebe;--danger: #e74c3c;--success: #2ecc71;--warning: #f39c12;--radius: 8px;--radius-lg: 12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5;padding-bottom:300px}a{color:var(--text);text-decoration:none}a:hover{color:var(--accent-hover)}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--surface);border-bottom:none;position:sticky;top:0;z-index:100}.header h1{font-size:1.4rem;font-weight:700;letter-spacing:-.02em}.logo-wrap{position:relative}.logo-arrow{font-size:1.2rem;vertical-align:-3px;opacity:.5;transition:transform .2s,opacity .15s}.logo-menu.open~h1 .logo-arrow,.logo-wrap:hover .logo-arrow{opacity:.8}.logo-menu.open~h1 .logo-arrow{transform:rotate(180deg)}.logo-menu{display:none;position:absolute;top:calc(100% + .5rem);left:0;background:var(--surface-2);border-radius:var(--radius);padding:.5rem 0;min-width:220px;box-shadow:0 8px 24px #0006;z-index:200}.logo-menu.open{display:block}.logo-menu-item{display:block;padding:.6rem 1.25rem;color:var(--text-muted);font-size:1.4rem;font-weight:700;letter-spacing:-.02em;text-decoration:none;transition:color .15s,background .15s;white-space:nowrap}.logo-menu-item:hover{color:var(--text);background:#ffffff0d}.logo-menu-item.active{color:var(--accent)}.header nav{display:flex;gap:1rem;align-items:center}#auth-nav{display:contents}.header nav a,.header nav button{color:var(--text-muted);font-size:.9rem;cursor:pointer;background:none;border:none;font-family:inherit;transition:color .15s}.header nav a:hover,.header nav button:hover{color:var(--text)}.header nav a.active{color:var(--accent)}.container{max-width:1200px;margin:0 auto;padding:2rem}.section-title{font-size:.8rem;font-weight:600;margin-bottom:1rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.3rem}.section-title .mi-sm{font-size:.85rem}.home-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--surface-3)}.home-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.home-section-header .section-title{margin-bottom:0}.home-view-all{color:var(--accent);font-size:.85rem;text-decoration:none;white-space:nowrap}.home-view-all:hover{text-decoration:underline}.list-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;position:sticky;top:65px;z-index:50;background:var(--bg);padding:1rem 0}.list-toolbar .section-title{margin-bottom:0}.toolbar-controls{display:flex;align-items:center;gap:.75rem;flex:1}.toolbar-search{flex:1;background:var(--surface-2);border:none;border-radius:6px;color:var(--text);padding:.4rem .75rem;font-size:.9rem;outline:none;height:34px;box-sizing:border-box}.toolbar-search:focus{background:var(--surface-3)}.toolbar-search-toggle{display:none}.toolbar-count{font-size:.75rem;color:var(--text-muted);white-space:nowrap;margin-left:auto}.toolbar-icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.4rem;border-radius:6px;height:34px;width:34px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.toolbar-icon-btn:hover{color:var(--text);background:var(--bg-card)}.sort-menu{min-width:170px}.sort-option .sort-check{font-size:1rem;visibility:hidden}.sort-option.active .sort-check{visibility:visible;color:var(--accent)}.select-check{width:24px;height:24px;min-width:24px;display:none;align-items:center;justify-content:center;margin-right:8px;color:var(--text-muted);cursor:pointer}.select-check.checked{color:var(--accent)}.select-mode .select-check{display:flex}.select-mode .track-row{cursor:pointer}.select-mode .track-row.selected{background:var(--surface-2)}.select-mode .video-card.selected,.select-mode .playlist-card.selected{outline:2px solid var(--accent);outline-offset:-2px}.video-card .select-check{position:absolute;top:8px;left:8px;z-index:3;margin-right:0;background:#00000080;border-radius:50%}.playlist-card .select-check{position:static;margin-right:0}.playlists-toolbar{display:flex;align-items:center;justify-content:flex-end;padding:0 0 8px}.bulk-action-bar{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:var(--surface-2);border-radius:var(--radius-lg);padding:6px 10px;display:flex;align-items:center;gap:4px;z-index:1000;box-shadow:0 4px 20px #00000080;flex-wrap:nowrap}.bulk-action-bar.hidden{display:none}.bulk-count{color:var(--text-muted);font-size:.85rem;white-space:nowrap;min-width:20px;text-align:center;padding:0 4px}.bulk-action-bar .btn{padding:6px 8px;min-width:0}.bulk-action-bar .btn .mi{margin:0}.bulk-delete-btn{color:var(--danger)!important}@media(max-width:768px){.bulk-action-bar{bottom:70px}}.track-list{display:flex;flex-direction:column;gap:2px}.track-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;padding-left:calc(1rem - 3px);background:var(--surface);border-radius:var(--radius);cursor:pointer;transition:background .15s}.track-item:hover{background:var(--surface-2)}.track-item.playing{background:var(--surface-2);border-left:3px solid var(--accent);padding:.6rem .75rem;padding-left:calc(.75rem - 3px)}.track-item.playing .track-play-btn{background:var(--accent)}.track-item.playing .track-play-btn .mi{color:var(--text)}.track-item.track-highlight{animation:trackHighlight 2s ease-out}@keyframes trackHighlight{0%,30%{background:color-mix(in srgb,var(--accent) 25%,transparent)}to{background:transparent}}.track-play-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--text-2);color:var(--bg);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;flex-shrink:0}.track-play-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.track-info{min-width:0;flex:1}.track-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-name{font-size:.85rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-duration{font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.track-plays{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:var(--text-muted);white-space:nowrap}.track-date{font-size:.8rem;color:var(--text-muted);white-space:nowrap;min-width:5.5rem;text-align:right;font-variant-numeric:tabular-nums}.track-thumb-wrap{position:relative;width:40px;height:40px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.track-thumb-wrap .track-play-btn.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:var(--radius);background:#00000080;opacity:0;transition:opacity .15s}.track-thumb-wrap:hover .track-play-btn.overlay{opacity:1}.track-thumb{width:40px;height:40px;border-radius:var(--radius);object-fit:cover;flex-shrink:0;cursor:pointer}.artwork-upload{flex:1;aspect-ratio:1;border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color .2s}.artwork-upload:hover{border-color:var(--accent)}.replace-mp3-row{display:flex;align-items:center;gap:.5rem}.replace-mp3-name{font-size:.85rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.artwork-preview{width:100%;height:100%;object-fit:cover}.artwork-placeholder{color:var(--text-muted)}.player-track-info{display:flex;align-items:center;gap:.75rem;min-width:0}.player-track-text{min-width:0}.player-thumb{width:40px;height:40px;border-radius:4px;object-fit:cover;flex-shrink:0}.fs-player-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;filter:brightness(.25);z-index:-1;pointer-events:none}.fs-player-artwork{display:none}.popular-show-more{display:flex;justify-content:center;width:100%;align-items:center;gap:.25rem;margin-top:.5rem;font-size:.85rem;color:var(--text-muted);padding:.4rem .75rem;margin-bottom:50px;background-color:var(--surface-3)}.popular-show-more:hover{color:var(--text)}.track-actions{display:flex;gap:.5rem;opacity:0;transition:opacity .15s}.track-item:hover .track-actions{opacity:1}.more-menu-wrap{position:relative}.more-menu{display:none;position:absolute;right:0;top:100%;z-index:200;background:var(--surface);border:none;border-radius:.5rem;box-shadow:0 4px 16px #0006;min-width:160px;padding:.25rem 0;flex-direction:column}.more-menu.open{display:flex}.more-menu-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:none;border:none;color:var(--text);font-size:.85rem;cursor:pointer;white-space:nowrap;text-align:left;width:100%}.more-menu-item:hover{background:var(--hover)}.video-card-actions .more-menu-toggle{background:#00000080;color:#fff}.video-card-actions .more-menu{right:auto;left:0;bottom:auto}.playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.5rem}.playlist-card{background:var(--surface);border-radius:var(--radius);padding:.75rem 1rem;cursor:pointer;transition:background .15s;border:none;position:relative;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.playlist-card:hover{background:var(--surface-2)}.playlist-card h3{font-size:1rem;margin-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.playlist-card-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.playlist-card .meta{font-size:.8rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.album-card{border-radius:var(--radius);cursor:pointer;overflow:hidden;background:var(--surface);transition:background .15s}.album-card:hover{background:var(--surface-2)}.album-card-art{aspect-ratio:1;overflow:hidden}.album-card-art img{width:100%;height:100%;object-fit:cover;display:block}.album-card-placeholder{display:flex;align-items:center;justify-content:center;background:var(--surface-2);padding:1rem;text-align:center}.album-card-placeholder span{font-size:1rem;font-weight:600;color:var(--text-muted);word-break:break-word}.album-card-info{padding:.5rem .75rem}.album-card-info h3{font-size:.9rem;margin-bottom:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-card-info .meta{font-size:.75rem;color:var(--text-muted)}.player-bar{position:fixed;bottom:0;left:0;right:0;background:var(--surface-3);border-top:none;padding:.75rem 2rem;display:none;grid-template-columns:auto auto auto 1fr auto;align-items:center;gap:.75rem;z-index:200}.player-bar.active{display:grid}.player-controls{display:contents}.player-buttons{display:flex;align-items:center;gap:.5rem;order:1}.player-track-info{min-width:0;order:2}.player-track-info .title{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-track-info .artist{font-size:.8rem;color:var(--text-muted)}.player-bar-actions{order:3}.progress-bar{order:4}.player-btn{background:none;border:none;color:var(--text);font-size:1.1rem;cursor:pointer;padding:.25rem;transition:color .15s}.player-btn:hover{color:var(--accent)}.player-bar-actions{display:flex;align-items:center;position:relative}.player-bar-actions .more-menu{bottom:100%;top:auto;right:0;margin-bottom:4px}.player-btn.main{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;font-size:1rem;display:flex;align-items:center;justify-content:center}.player-btn.main:hover{background:var(--accent-hover)}.progress-bar{width:100%;display:flex;align-items:center;gap:.5rem}.progress-bar span{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:40px}.progress-track{flex:1;height:32px;background:var(--surface-3);border-radius:4px;cursor:pointer;position:relative;overflow:hidden;padding:4px}.waveform-canvas{position:absolute;top:4px;left:4px;right:4px;bottom:4px;width:calc(100% - 8px);height:calc(100% - 8px);pointer-events:none}.progress-fill{height:100%;background:transparent;border-radius:0;width:0%;transition:width .1s linear;position:relative;z-index:1;border-right:2px solid var(--accent)}.progress-track:hover .progress-fill{border-right-color:var(--accent-hover)}.player-volume{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;order:5}.volume-slider{width:100px;-webkit-appearance:none;height:4px;background:var(--surface-4);border-radius:2px;outline:none}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer}.btn{padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-muted);border:none}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:3rem 2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:2rem}.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);background:#6c63ff0d}.upload-zone .icon{font-size:3rem;margin-bottom:1rem}.upload-zone p{color:var(--text-muted);margin-bottom:.5rem}.upload-zone .hint{font-size:.85rem;color:var(--text-muted)}.upload-queue{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.upload-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--surface);border-radius:var(--radius)}.upload-item .name{flex:1;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-item .status-badge{font-size:.8rem;padding:.2rem .6rem;border-radius:999px}.status-processing{background:#f39c1226;color:var(--warning)}.status-ready{background:#2ecc7126;color:var(--success)}.status-error{background:#e74c3c26;color:var(--danger)}.status-uploading{background:#6c63ff26;color:var(--accent)}.pending-files{margin:1rem 0}.pending-files-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.pending-file-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--surface);border-radius:var(--radius)}.pending-file-item .name{flex:1;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-remove{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.pending-remove:hover{color:var(--danger)}.upload-progress-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;margin-bottom:.5rem;font-size:.85rem;font-weight:600;color:var(--text-secondary)}.pending-status{font-size:.75rem;font-weight:600;white-space:nowrap}.pending-status:empty{display:none}.pending-status.status-uploading{color:var(--accent)}.pending-status.status-done{color:#4caf50}.pending-status.status-error{color:var(--danger)}.pending-status.status-skipped{color:var(--text-secondary)}.pending-file-item.upload-active{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.pending-file-item.upload-done{opacity:.5}.pending-file-item.upload-skipped{opacity:.4}.bulk-upload-note{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--surface);border-radius:var(--radius);font-size:.85rem;color:var(--text-secondary)}.bulk-upload-note .mi{font-size:1.1rem;color:var(--accent)}.duplicate-list{max-height:300px;overflow-y:auto;margin:1rem 0}.dupe-group{margin-bottom:.75rem}.dupe-group-header{font-weight:600;font-size:.85rem;color:var(--text-secondary);margin-bottom:.25rem;padding:.25rem 0}.dupe-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;font-size:.85rem;border-radius:var(--radius)}.dupe-item .mi{font-size:1rem}.dupe-keep{color:var(--text)}.dupe-keep .mi{color:var(--accent)}.dupe-remove{color:var(--text-secondary);opacity:.5;text-decoration:line-through}.dupe-remove .mi{color:var(--text-secondary)}.dupe-server{color:var(--text-secondary);opacity:.7}.dupe-server .mi{color:var(--text-secondary)}.dupe-suffix{margin-left:.5em;font-size:.8em;opacity:.7;font-style:italic}.dupe-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dupe-date{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.upload-post-btn{display:flex;align-items:center;gap:.4rem;font-size:1rem;padding:.6rem 1.5rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:none;align-items:center;justify-content:center;z-index:550;overflow-y:auto;padding:1rem}.modal-overlay.open{display:flex}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:2rem;width:90%;max-width:500px;border:1px solid var(--border);max-height:calc(100vh - 2rem);overflow-y:auto;margin:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{margin:0}.modal-header-btns{display:flex;gap:.5rem}.modal-header-btns .btn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.modal h2{margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.3rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-size:16px;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-actions{display:flex;gap:.5rem;justify-content:space-between;align-items:center;margin-top:1.5rem}.form-actions-right{display:flex;gap:.5rem;align-items:center}.login-container{max-width:360px;margin:8rem auto;padding:2rem;background:var(--surface);border-radius:var(--radius-lg);border:none}.login-container h2{text-align:center;margin-bottom:1.5rem}.remember-me{margin:.75rem 0 0}.remember-me label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary);cursor:pointer}.error-msg{color:var(--danger);font-size:.85rem;margin-top:.5rem;text-align:center}.tabs{display:flex;gap:0;border-bottom:none;margin-bottom:2rem}.tab{padding:.75rem 1.5rem;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;background:none;border-top:none;border-left:none;border-right:none;font-family:inherit;font-size:.95rem}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.view{display:none}.view.active{display:block}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state .icon{font-size:3rem;margin-bottom:1rem}.admin-track-item{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--surface);border-radius:var(--radius)}.admin-track-item+.admin-track-item{margin-top:2px}.playlist-header{margin-bottom:2rem}.playlist-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.playlist-header h2{font-size:1.5rem;margin-bottom:.25rem}.playlist-header p{color:var(--text-muted)}.reorder-actions{display:flex;gap:.5rem}.drag-handle{cursor:grab;color:var(--text-muted);font-size:1.2rem;flex-shrink:0;-webkit-user-select:none;user-select:none;touch-action:none}.drag-handle:active{cursor:grabbing}.reorder-mode .track-item{transition:transform .15s,opacity .15s,background .15s;-webkit-user-select:none;user-select:none}.reorder-mode .track-item.dragging{opacity:.4;background:var(--surface-2)}.reorder-mode .track-item:not(.dragging){cursor:default}.drag-clone{position:fixed;z-index:9999;pointer-events:none;opacity:.85;background:var(--surface-2);border-radius:var(--radius);box-shadow:0 4px 16px #0000004d}.back-link{display:inline-block;margin-bottom:1rem;color:var(--text-muted);font-size:.9rem}.back-link:hover{color:var(--text)}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.video-card{background:var(--surface);border-radius:var(--radius-lg);border:none;transition:transform .1s,background .15s;position:relative}.video-card:hover{transform:translateY(-2px);background:var(--surface-2)}.video-card-thumb{position:relative;width:100%;aspect-ratio:16/9;background:var(--surface-3);background-size:cover;background-position:center;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);overflow:hidden}.video-card-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000004d;opacity:0;transition:opacity .15s}.video-card-thumb:hover .video-card-play{opacity:1}.video-card-play .mi{font-size:48px;color:#fff;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}.video-card-duration{position:absolute;bottom:6px;right:6px;background:#000000b3;color:#fff;font-size:.75rem;padding:2px 6px;border-radius:4px;font-variant-numeric:tabular-nums}.video-card-info{padding:.75rem 1rem}.video-card-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-card-meta{font-size:.85rem;color:var(--text-muted);display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.video-card-actions{position:absolute;top:.5rem;right:.5rem;z-index:2}.video-card.menu-elevated{z-index:10}.video-card-visibility{position:absolute;top:6px;left:6px;z-index:2;font-size:18px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}.video-card-visibility.is-private{color:var(--text-muted);opacity:.5}.video-card-visibility.is-public{color:var(--accent);opacity:.7}.video-card-visibility:hover{opacity:1}.video-player-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;background:#000;display:none;flex-direction:column;align-items:center;justify-content:center}.video-player-overlay.open{display:flex}.video-player-close{position:absolute;top:1rem;right:1rem;z-index:601;background:#00000080;border:none;color:#fff;cursor:pointer;padding:.5rem;border-radius:50%;line-height:0}.video-player-close .mi{font-size:28px}.video-player-el{width:100%;height:100%;max-height:100vh;object-fit:contain;background:#000}.video-player-info{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(transparent,#000c);pointer-events:none}.video-player-title{font-size:1.1rem;font-weight:500;color:#fff}.video-player-artist{font-size:.9rem;color:#ffffffb3}.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;z-index:101}.hamburger span{display:block;width:24px;height:2px;background:var(--text);border-radius:2px;transition:transform .25s,opacity .25s}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:768px){.header{padding:.75rem 1rem}.container{padding:1rem}.player-bar{grid-template-columns:1fr 1fr;padding:.5rem 1rem;gap:.5rem}.player-volume{display:none}.player-controls{display:flex;flex-direction:column;gap:.25rem}.player-buttons,.player-track-info,.player-bar-actions,.progress-bar{order:unset}.track-item{gap:.75rem}.track-actions{opacity:1}.track-duration,.track-date{display:none}.admin-track-item{grid-template-columns:1fr auto;gap:.5rem}.admin-track-item .btn{padding:.35rem .5rem;font-size:.75rem}.playlist-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.video-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.video-card-actions{opacity:1}.upload-zone{padding:2rem 1.5rem}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{white-space:nowrap;padding:.6rem 1rem;font-size:.85rem}.login-container{margin:4rem auto}}@media(max-width:520px){.hamburger{display:flex}.header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;padding:1rem;gap:.75rem;box-shadow:0 8px 24px #0006}.header nav.open{display:flex}.header nav a,.header nav button{font-size:1rem;padding:.4rem 0}.header{position:relative}.header h1,.logo-menu-item{font-size:1.1rem}.container{padding:.75rem}.player-bar{grid-template-columns:auto 1fr auto;padding:.5rem .75rem;gap:.5rem;align-items:center}.player-controls{display:flex;flex-direction:row;align-items:center;gap:0;order:-1}.player-controls .progress-bar{display:none}.player-controls .player-buttons{gap:0;order:unset}.player-controls .player-btn:not(.main){display:none}.player-track-info{order:0}.player-btn.main{width:36px;height:36px;font-size:.9rem;position:relative}.player-btn.main:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background:conic-gradient(var(--accent) var(--progress-deg, 0deg),transparent var(--progress-deg, 0deg));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));pointer-events:none}.player-volume{display:none}.player-track-info{display:flex;align-items:center;gap:.75rem;overflow:hidden;order:0}.player-track-text{overflow:hidden}.player-track-text .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-track-text .artist{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem}.player-bar-actions{order:1}.player-thumb{display:none!important}.track-item{padding:.6rem .75rem;gap:.5rem}.track-thumb-wrap,.track-thumb{width:32px;height:32px}.track-play-btn{width:32px;height:32px;font-size:12px}.track-title{font-size:.9rem}.file-name{font-size:.8rem}.track-actions .btn-sm{padding:.25rem .4rem;font-size:.7rem}.playlist-grid{grid-template-columns:1fr}.playlist-grid.album-grid{grid-template-columns:repeat(3,1fr)}.album-grid .album-card-info{padding:.3rem .5rem}.album-grid .album-card-info h3{font-size:.75rem}.album-grid .album-card-info .meta{font-size:.65rem}.album-grid .album-card-placeholder span{font-size:.75rem}.playlist-card{padding:.6rem .75rem}.playlist-card h3{font-size:.95rem}.list-toolbar{flex-direction:column;align-items:stretch;top:0}.toolbar-controls{max-width:none;flex-wrap:wrap}.toolbar-search{display:none;width:100%;flex:1;order:99;flex-basis:100%;font-size:16px}.toolbar-search.open{display:block}.toolbar-search-toggle{display:flex}.video-grid{grid-template-columns:repeat(2,1fr)}.video-card-play{opacity:1}.upload-zone{padding:1.5rem 1rem}.upload-zone .icon{font-size:2rem;margin-bottom:.5rem}.upload-item{padding:.5rem .75rem;gap:.5rem}.upload-item .name{font-size:.8rem}.admin-track-item{grid-template-columns:1fr;gap:.5rem}.admin-track-item>:last-child{display:flex;gap:.5rem}.modal{width:95%;padding:1.5rem}.modal h2{font-size:1.2rem;margin-bottom:0}.modal-header-btns .btn .btn-label{display:none}.modal-header-btns .btn{padding:.4rem .5rem;max-width:none}.login-container{margin:2rem .75rem;padding:1.5rem}.section-title{font-size:.8rem}.playlist-header h2{font-size:1.2rem}.container{padding-bottom:80px}.empty-state{padding:2rem 1rem}.empty-state .icon{font-size:2rem}.player-bar{cursor:pointer}}.fs-player{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:linear-gradient(180deg,var(--surface-2) 0%,var(--bg) 100%);display:none;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;gap:2rem}.fs-player.open{display:flex}.fs-player-close{position:absolute;top:1rem;left:1rem;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem}.fs-player-close:hover{color:var(--text)}.fs-player-close .mi{font-size:32px}.fs-player-info{text-align:center;max-width:90%}.fs-player-title{font-size:1.5rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.25rem}.fs-player-artist{font-size:1rem;color:var(--text-muted)}.fs-player-progress{width:100%;max-width:400px}.fs-progress-track{position:relative;height:80px;background:var(--surface-3);border-radius:8px;cursor:pointer;touch-action:none;overflow:hidden}.fs-progress-fill{height:100%;background:transparent;border-radius:6px;width:0%;pointer-events:none}.fs-progress-thumb{position:absolute;top:50%;left:0%;width:36px;height:36px;background:var(--accent);border-radius:50%;transform:translate(-50%,-50%);touch-action:none;cursor:grab;box-shadow:0 0 8px #6c63ff80}.fs-progress-thumb:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:50%}.fs-progress-thumb:active{cursor:grabbing;transform:translate(-50%,-50%) scale(1.15);opacity:.5}.fs-progress-times{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.fs-player-buttons{display:flex;align-items:center;gap:2.5rem}.fs-player-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:.5rem;transition:color .15s,transform .1s}.fs-player-btn:hover{color:var(--accent)}.fs-player-btn:active{transform:scale(.9)}.fs-player-btn .mi{font-size:48px}.fs-player-btn.fs-main{width:80px;height:80px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}.fs-player-btn.fs-main:hover{background:var(--accent-hover);color:#fff}.fs-player-btn.fs-main .mi{font-size:40px}.fs-player-actions{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:.5rem;width:100%}.fs-player-actions .fs-player-btn{padding:.375rem}.fs-player-actions .fs-player-btn .mi{font-size:36px}.fs-player-btn.is-private{color:var(--text-muted);opacity:.5}.fs-player-btn.is-public{color:var(--accent);opacity:.7}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:4px}.toggle-row{display:flex;align-items:center;justify-content:space-between}.toggle-group{display:flex;align-items:center}.toggle-group .artwork-upload{flex:none;width:80px;height:80px}.toggle-icon-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .75rem;border-radius:var(--radius);background:none;border:none;cursor:pointer;color:var(--text-muted);opacity:.5;transition:color .15s,opacity .15s;flex:1;text-align:center}.toggle-icon-btn:hover{opacity:.8}.toggle-icon-btn:has(input:checked){color:var(--accent);opacity:.7}.toggle-icon-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--surface-3);border-radius:24px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-inline{margin:0}.toggle-label{font-size:.85rem;color:var(--text-muted);margin-left:.25rem}.track-visibility{display:inline-flex;align-items:center;margin-left:.25rem}.track-visibility.is-private{color:var(--text-muted);opacity:.5}.track-visibility.is-public{color:var(--accent);opacity:.7}.track-visibility:hover{opacity:1}.visibility-indicator[data-video-id]{cursor:pointer}.visibility-indicator[data-video-id]:hover{opacity:.7}.track-pinned{display:inline-flex;align-items:center;margin-left:.25rem;color:var(--accent);opacity:.7}.track-notes-icon{display:inline-flex;align-items:center;margin-left:.25rem;color:var(--text-secondary);opacity:.5;cursor:default}#edit-track-notes{width:100%;min-height:60px;resize:vertical;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.5rem;font-family:inherit;font-size:.9rem}.month-section-header{font-size:.85rem;font-weight:600;color:var(--text-muted);padding:.75rem 0 .25rem;letter-spacing:.02em;grid-column:1 / -1;scroll-margin-top:80px}.month-section-header:first-child{padding-top:0}.month-jump-menu{max-height:60vh;overflow-y:auto;right:auto;left:0}.month-jump-item{white-space:nowrap}.pinned-section{margin-bottom:1.5rem}.pinned-section h2{font-size:1.1rem;margin:0 0 .5rem;color:var(--text-muted);display:flex;align-items:center;gap:.35rem}.pinned-section h2 .mi{font-size:18px;color:var(--accent)}.playlist-visibility{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.35rem}.playlist-visibility.is-private{color:var(--text-muted);opacity:.5}.playlist-visibility.is-public{color:var(--accent);opacity:.7}.playlist-header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.photo-card{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;cursor:pointer;background:var(--surface)}.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.photo-card:hover img{transform:scale(1.05)}.photo-card-visibility{position:absolute;top:6px;left:6px;z-index:2;font-size:18px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}.photo-card-visibility.is-private{color:var(--text-muted);opacity:.5}.photo-card-visibility.is-public{color:var(--accent);opacity:.7}.photo-card-visibility:hover{opacity:1}.photo-card .video-card-actions .more-menu-toggle{opacity:0;transition:opacity .15s}.photo-card:hover .video-card-actions .more-menu-toggle{opacity:1}.pending-photo-thumb{width:48px;height:48px;object-fit:cover;border-radius:4px;flex-shrink:0}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:700;background:#000000f2;display:none;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox-image{max-width:90vw;max-height:85vh;object-fit:contain;-webkit-user-select:none;user-select:none}.lightbox-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#fff;cursor:pointer;z-index:2;font-size:32px}.lightbox-close .mi{font-size:32px}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:2}.lightbox-nav:hover{background:#fff3}.lightbox-nav .mi{font-size:32px}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-info{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(transparent,#000000b3);color:#fff;pointer-events:none}.lightbox-title{font-weight:500;font-size:1.1rem}.lightbox-date{font-size:.85rem;color:#fff9;margin-top:.25rem}@media(max-width:520px){.photo-grid{grid-template-columns:repeat(2,1fr);gap:.25rem}.lightbox-nav{width:36px;height:36px}.lightbox-nav .mi{font-size:24px}}
