:root{--primary:#1db954;--primary-hover:#1ed760;--primary-dark:#169c46;--bg-primary:#121212;--bg-secondary:#1e1e1e;--bg-tertiary:#282828;--bg-elevated:#2a2a2a;--bg-card:#1a1a2e;--text-primary:#fff;--text-secondary:#b3b3b3;--text-muted:#6a6a6a;--success:#1db954;--warning:#ffb700;--error:#f44;--info:#5865f2;--discord:#5865f2;--discord-hover:#4752c4;--accent-voice:#23b366;--accent-mute:#ffb700;--accent-deafen:#f44;--accent-stream:#9147ff;--border-color:#333;--border-radius:8px;--border-radius-lg:12px;--shadow-sm:0 2px 4px rgba(0,0,0,.1);--shadow-md:0 4px 12px rgba(0,0,0,.15);--shadow-lg:0 8px 24px rgba(0,0,0,.2);--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--sidebar-width:240px;--header-height:60px}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-hover)}button{cursor:pointer;font-family:inherit;border:none;outline:none}input,select,textarea{font-family:inherit;font-size:var(--font-size-md)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.flex{display:flex}.flex-center{justify-content:center}.flex-between,.flex-center{display:flex;align-items:center}.flex-between{justify-content:space-between}.grid{display:grid}.text-center{text-align:center}.text-muted{color:var(--text-secondary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideUp{animation:slideUp .3s ease-out}.animate-pulse{animation:pulse 2s infinite}.animate-spin{animation:spin 1s linear infinite}