* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --accent:#7DD3FC; --accent-dark:#38BDF8; --accent-glow:rgba(125,211,252,0.12);
  --bg:#080C10; --bg2:#0D1117; --bg3:#161B22; --bg4:#21262D;
  --text:#E6EDF3; --text2:#8B949E; --text3:#484F58;
  --border:rgba(125,211,252,0.08); --border2:rgba(125,211,252,0.15);
  --radius:12px; --radius-sm:8px;
}
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:var(--bg); color:var(--text); min-height:100vh; font-size:14px; line-height:1.5; }
a { color:var(--accent); text-decoration:none; }
::-webkit-scrollbar { width:6px; } ::-webkit-scrollbar-track { background:var(--bg2); } ::-webkit-scrollbar-thumb { background:var(--bg4); border-radius:3px; } ::-webkit-scrollbar-thumb:hover { background:var(--accent); }

.nav { display:flex; align-items:center; gap:8px; padding:0 24px; height:56px; background:var(--bg2); border-bottom:1px solid var(--border); position:sticky; top:0; z-index:100; }
.nav-logo { display:flex; align-items:center; gap:10px; font-weight:700; font-size:15px; color:var(--text); margin-right:16px; }
.logo-icon { width:28px; height:28px; border-radius:8px; background:linear-gradient(135deg,#1E3A5F,#0E7490); border:1px solid var(--border2); display:flex; align-items:center; justify-content:center; font-size:14px; }
.nav a { color:var(--text2); font-size:14px; padding:6px 12px; border-radius:var(--radius-sm); transition:all 0.15s; }
.nav a:hover { color:var(--text); background:var(--bg3); }
.nav a.active { color:var(--accent); }
.nav-spacer { flex:1; }
.nav-bot-tag { font-size:12px; color:var(--text3); background:var(--bg3); padding:4px 10px; border-radius:20px; border:1px solid var(--border); }
.online-dot { width:8px; height:8px; background:#3FB950; border-radius:50%; display:inline-block; margin-right:6px; box-shadow:0 0 6px rgba(63,185,80,0.5); }

.page { padding:24px; max-width:1200px; margin:0 auto; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; }
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr;}}

.card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius); padding:20px; transition:border-color 0.2s; }
.card:hover { border-color:var(--border2); }
.card-title { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.08em; color:var(--text3); margin-bottom:16px; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:8px 16px; border-radius:var(--radius-sm); border:none; cursor:pointer; font-size:14px; font-weight:500; transition:all 0.15s; outline:none; }
.btn-primary { background:var(--accent); color:#080C10; font-weight:600; }
.btn-primary:hover { background:var(--accent-dark); transform:translateY(-1px); }
.btn-ghost { background:var(--bg3); color:var(--text2); border:1px solid var(--border); }
.btn-ghost:hover { background:var(--bg4); color:var(--text); border-color:var(--border2); }
.btn-icon { width:36px; height:36px; padding:0; border-radius:50%; background:var(--bg3); color:var(--text2); border:1px solid var(--border); font-size:16px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all 0.15s; }
.btn-icon:hover { background:var(--bg4); color:var(--text); border-color:var(--border2); }
.btn-icon.active { background:var(--accent-glow); color:var(--accent); border-color:var(--accent); }
.btn-play { width:48px; height:48px; border-radius:50%; background:var(--accent); color:#080C10; font-size:20px; border:none; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all 0.15s; font-weight:700; }
.btn-play:hover { background:var(--accent-dark); transform:scale(1.05); }

input[type="text"],input[type="password"],input[type="number"],select,textarea { background:var(--bg3); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text); padding:8px 12px; font-size:14px; outline:none; width:100%; transition:border-color 0.15s; }
input:focus,select:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow); }
input::placeholder { color:var(--text3); }
input[type="range"] { -webkit-appearance:none; width:100%; height:4px; background:var(--bg4); border-radius:2px; outline:none; padding:0; border:none; }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance:none; width:14px; height:14px; border-radius:50%; background:var(--accent); cursor:pointer; }

.progress-bar { width:100%; height:4px; background:var(--bg4); border-radius:2px; overflow:hidden; cursor:pointer; }
.progress-fill { height:100%; background:var(--accent); border-radius:2px; transition:width 1s linear; }

.badge { display:inline-block; padding:2px 8px; border-radius:20px; font-size:11px; font-weight:600; }
.badge-accent { background:var(--accent-glow); color:var(--accent); border:1px solid var(--border2); }
.badge-green { background:rgba(63,185,80,0.1); color:#3FB950; border:1px solid rgba(63,185,80,0.2); }
.badge-gray { background:var(--bg3); color:var(--text2); border:1px solid var(--border); }

.toast-container { position:fixed; bottom:24px; right:24px; display:flex; flex-direction:column; gap:8px; z-index:9999; }
.toast { background:var(--bg3); border:1px solid var(--border2); border-left:3px solid var(--accent); border-radius:var(--radius-sm); padding:10px 16px; font-size:13px; color:var(--text); animation:slideIn 0.2s ease; max-width:320px; }
.toast.error { border-left-color:#F85149; } .toast.success { border-left-color:#3FB950; }
@keyframes slideIn { from{transform:translateX(100%);opacity:0} to{transform:translateX(0);opacity:1} }

.login-page { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--bg); }
.login-card { background:var(--bg2); border:1px solid var(--border2); border-radius:var(--radius); padding:44px 40px; width:100%; max-width:380px; text-align:center; box-shadow:0 24px 48px rgba(0,0,0,0.5); }
.login-logo { width:60px; height:60px; border-radius:16px; background:linear-gradient(135deg,#1E3A5F,#0E7490); border:1px solid var(--border2); display:flex; align-items:center; justify-content:center; font-size:28px; margin:0 auto 20px; }
.login-title { font-size:22px; font-weight:700; margin-bottom:6px; }
.login-sub { color:var(--text2); font-size:14px; margin-bottom:28px; }

.track-thumb { width:56px; height:56px; border-radius:var(--radius-sm); object-fit:cover; background:var(--bg3); flex-shrink:0; }
.queue-item { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
.queue-item:last-child { border-bottom:none; }
.queue-item-info { flex:1; min-width:0; }
.queue-item-title { font-size:14px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.queue-item-author { font-size:12px; color:var(--text2); }
.queue-item-dur { font-size:12px; color:var(--text3); white-space:nowrap; }

.now-playing-thumb { width:100%; aspect-ratio:1; border-radius:var(--radius); object-fit:cover; background:var(--bg3); margin-bottom:16px; }
.now-playing-title { font-size:18px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:4px; }
.now-playing-author { color:var(--text2); font-size:14px; margin-bottom:16px; }

.controls { display:flex; align-items:center; justify-content:center; gap:12px; margin:16px 0; }
.volume-row { display:flex; align-items:center; gap:10px; margin-top:12px; }
.volume-icon { color:var(--text3); font-size:16px; flex-shrink:0; }
.search-row { display:flex; gap:8px; margin-bottom:16px; }
.search-row input { flex:1; }

.stat-card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius); padding:16px 20px; display:flex; align-items:center; gap:14px; transition:border-color 0.2s; }
.stat-card:hover { border-color:var(--border2); }
.stat-icon { width:40px; height:40px; border-radius:var(--radius-sm); background:var(--accent-glow); color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; border:1px solid var(--border2); }
.stat-label { font-size:12px; color:var(--text2); } .stat-value { font-size:20px; font-weight:700; }

.guild-selector { display:flex; align-items:center; gap:8px; padding:6px 12px; background:var(--bg3); border:1px solid var(--border); border-radius:var(--radius-sm); }
.guild-icon { width:24px; height:24px; border-radius:50%; background:linear-gradient(135deg,#1E3A5F,#0E7490); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; color:var(--accent); flex-shrink:0; }
.guild-name { font-size:13px; font-weight:500; }

.upload-zone { border:2px dashed var(--border); border-radius:var(--radius); padding:40px; text-align:center; color:var(--text2); cursor:pointer; transition:all 0.15s; margin-bottom:20px; }
.upload-zone:hover,.upload-zone.dragover { border-color:var(--accent); background:var(--accent-glow); color:var(--text); }
.upload-zone-icon { font-size:36px; margin-bottom:8px; } .upload-zone-text { font-size:14px; } .upload-zone-sub { font-size:12px; color:var(--text3); margin-top:4px; }

.library-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.library-item { background:var(--bg3); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; display:flex; flex-direction:column; gap:6px; transition:border-color 0.15s; }
.library-item:hover { border-color:var(--border2); }
.library-item-name { font-size:13px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.library-item-meta { font-size:11px; color:var(--text3); } .library-item-actions { display:flex; gap:6px; margin-top:4px; }

.filter-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:8px; }
.filter-btn { padding:10px; background:var(--bg3); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text2); font-size:13px; cursor:pointer; text-align:center; transition:all 0.15s; }
.filter-btn:hover { border-color:var(--accent); color:var(--text); }
.filter-btn.active { background:var(--accent-glow); border-color:var(--accent); color:var(--accent); }

.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.section-title-lg { font-size:18px; font-weight:700; }
.empty-state { text-align:center; padding:40px; color:var(--text3); }
.empty-state-icon { font-size:36px; margin-bottom:8px; opacity:0.5; }

.perm-row { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
.perm-row:last-child { border-bottom:none; }
.perm-name { flex:1; font-size:14px; }
select.perm-select { width:auto; padding:4px 8px; font-size:13px; }

.upload-progress { background:var(--bg3); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; margin-bottom:8px; }
.upload-progress-name { font-size:13px; font-weight:500; margin-bottom:6px; }
.upload-progress-bar { width:100%; height:3px; background:var(--bg4); border-radius:2px; overflow:hidden; }
.upload-progress-fill { height:100%; background:var(--accent); border-radius:2px; transition:width 0.2s; }
.upload-progress-meta { display:flex; justify-content:space-between; margin-top:4px; font-size:11px; color:var(--text3); }

.login-logo-text { font-size:24px; font-weight:700; color:var(--accent); margin-bottom:4px; }
.login-by { font-size:13px; color:var(--text3); margin-bottom:20px; }

.login-logo-text { font-size:26px; font-weight:700; color:var(--accent); margin-bottom:4px; }
.login-by { font-size:13px; color:var(--text3); margin-bottom:20px; }
