:root{--bg:#1a1a2e;--surface:#16213e;--surface-2:#1f2b47;--border:#2a3a5c;--text:#e0e0e0;--text-muted:#8892a4;--accent:#5865f2;--accent-hover:#4752c4;--danger:#ed4245;--success:#57f287;--warning:#fee75c;--radius:10px;--shadow:0 4px 24px #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif}.btn{border-radius:var(--radius);background:var(--surface-2);color:var(--text);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 20px;font-size:14px;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--border)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-discord{background:var(--accent);color:#fff;border-radius:12px;padding:14px 28px;font-size:16px}.btn-discord:hover{background:var(--accent-hover)}header{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 24px;display:flex}.header-left,.header-right{align-items:center;gap:12px;display:flex}header h2{font-size:1.1rem;font-weight:600}.board-layout{min-height:calc(100vh - 57px);display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:260px;padding:16px;overflow-y:auto}.sidebar h4{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;margin-bottom:6px;font-size:12px}.sidebar-channel-name{margin-bottom:16px;font-size:14px;font-weight:600}.user-list{flex-direction:column;gap:8px;list-style:none;display:flex}.user-card{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px}.user-card-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.user-avatar{background:var(--accent);border-radius:50%;flex-shrink:0;width:28px;height:28px}.user-card-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;overflow:hidden}.user-stop-btn{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:3px 8px;font-size:11px}.user-stop-btn:hover{opacity:.85}.user-controls{flex-direction:column;gap:6px;display:flex}.user-control-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.user-control-row label{color:var(--text-muted);white-space:nowrap;font-size:11px}.user-control-row input[type=range]{width:80px;accent-color:var(--accent)}.user-control-row .range-val{text-align:right;min-width:24px;font-size:11px}.board-main{flex:1;min-width:0;padding:24px;position:relative;overflow-y:auto}.sound-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;display:grid}.sound-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:120px;padding:24px 16px;transition:background .12s,transform .1s,border-color .15s,box-shadow .15s;display:flex;position:relative}.sound-card:hover{background:var(--surface-2);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 20px #5865f226}.sound-card:active{transform:scale(.95)}.sound-card.playing{border-color:var(--success);box-shadow:0 0 16px #57f28740}.sound-card.muted{opacity:.45;border-style:dashed}.sound-card-id{color:var(--text-muted);background:var(--bg);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:10px;position:absolute;top:6px;left:6px}.sound-card-icon{font-size:28px;line-height:1}.sound-card-name{text-align:center;word-break:break-word;font-size:13px;font-weight:500}.sound-card-slug{color:var(--text-muted);opacity:.7;font-family:monospace;font-size:10px}.sound-card-uploader{color:var(--text-muted);font-size:11px}.sound-card-controls{align-items:center;gap:6px;width:100%;margin-top:4px;display:flex}.sound-mute-btn{cursor:pointer;opacity:.85;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:18px;line-height:1;display:flex}.sound-mute-btn:hover{opacity:1;background:var(--border)}.sound-vol-wrap{flex:1;align-items:center;display:flex}.sound-vol-wrap input[type=range]{width:100%;height:4px;accent-color:var(--accent);cursor:pointer}.sound-card-edit{background:var(--surface-2);width:30px;height:30px;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;opacity:.85;border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:background .15s;display:none;position:absolute;top:8px;right:40px}.sound-card-edit:hover{background:var(--accent);color:#fff;border-color:var(--accent);opacity:1}.sound-card:hover .sound-card-edit{display:flex}.sound-card-delete{background:var(--danger);color:#fff;cursor:pointer;opacity:.85;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;display:none;position:absolute;top:8px;right:8px}.sound-card-delete:hover{opacity:1}.sound-card:hover .sound-card-delete{display:flex}.empty-state{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:60px 20px}.fab{background:var(--accent);color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow);z-index:100;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:28px;transition:background .15s,transform .1s;display:flex;position:fixed;bottom:28px;right:28px}.fab:hover{background:var(--accent-hover);transform:scale(1.08)}.modal-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border:1px solid var(--border);width:90%;max-width:420px;box-shadow:var(--shadow);border-radius:14px;padding:28px}.modal-content h3{margin-bottom:20px}.modal-content label{color:var(--text-muted);margin-bottom:14px;font-size:14px;display:block}.modal-content input[type=text],.modal-content input[type=number],.modal-content input[type=file]{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);border-radius:8px;margin-top:6px;padding:10px 12px;font-size:14px;display:block}.modal-content input:focus{border-color:var(--accent);outline:none}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.cooldown-bar{background:var(--surface);width:100%;height:4px;overflow:hidden}.cooldown-fill{background:var(--danger);width:0%;height:100%;transition:width .1s linear}#toast-container{z-index:300;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.toast{background:var(--surface-2);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);border-radius:8px;padding:10px 20px;font-size:14px;animation:.2s ease-out toast-in}.toast.fade-out{opacity:0;transition:opacity .4s}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.emoji-picker-row{align-items:center;gap:8px;margin-top:6px;display:flex;position:relative}.emoji-chosen{background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex}.emoji-chosen:hover{border-color:var(--accent)}.emoji-grid{background:var(--surface);border:1px solid var(--border);z-index:50;max-height:200px;box-shadow:var(--shadow);border-radius:10px;grid-template-columns:repeat(8,1fr);gap:4px;padding:8px;display:grid;position:absolute;top:50px;left:0;overflow-y:auto}.emoji-grid button{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.emoji-grid button:hover{background:var(--surface-2)}.emoji-picker-backdrop{z-index:299;background:0 0;position:fixed;inset:0}.emoji-picker-popup{z-index:300;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;width:320px;padding:10px;position:fixed}.emoji-tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:8px;padding-bottom:6px;display:flex}.emoji-tabs button{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:16px}.emoji-tabs button.active{opacity:1;background:var(--surface-2)}.emoji-tabs button:hover{opacity:1}.emoji-grid-scroll{max-height:240px;overflow-y:auto}.emoji-grid-inner{grid-template-columns:repeat(8,1fr);gap:2px;display:grid}.emoji-grid-inner button{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;font-size:20px;display:flex}.emoji-grid-inner button:hover{background:var(--surface-2)}.theme-picker{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.theme-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:border-color .15s,transform .1s}.theme-swatch:hover{transform:scale(1.15)}.theme-swatch.active{border-color:var(--accent)}.guild-picker{max-width:900px;margin:40px auto;padding:0 24px}.guild-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.guild-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:12px;padding:16px;transition:background .15s,border-color .15s;display:flex}.guild-card:hover{background:var(--surface-2);border-color:var(--accent)}.guild-icon{background:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:flex;overflow:hidden}.guild-icon img{object-fit:cover;width:100%;height:100%}select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;font-size:13px}select option{background:var(--surface)}.login-card{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.logo{color:var(--accent);align-items:center;gap:12px;display:flex}.logo h1{font-size:2rem;font-weight:700}.subtitle{color:var(--text-muted);margin-bottom:24px}.trimmer-section{margin-top:8px}.trimmer-section label{color:var(--text-muted);margin-bottom:4px;font-size:13px;display:block}.audio-trimmer{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px}.trimmer-waveform{cursor:col-resize;border-radius:4px;overflow:hidden}.trimmer-waveform canvas{width:100%;height:60px;display:block}.trimmer-info{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:8px;font-size:12px;display:flex}.btn-sm{padding:3px 10px;font-size:12px}.modal-wide{max-width:560px}.trim-warning{color:var(--danger);margin-top:6px;font-size:12px}.trim-over{color:var(--danger);font-weight:600}.import-actions-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.import-sound-list{flex-direction:column;gap:4px;max-height:320px;margin-bottom:12px;display:flex;overflow-y:auto}.import-sound-item{background:var(--bg);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.import-sound-item:hover{background:var(--surface-2)}.import-sound-item.imported{opacity:.5;cursor:default}.import-sound-item input[type=checkbox]{flex-shrink:0}.import-sound-emoji{text-align:center;width:24px;font-size:18px}.import-sound-name{flex:1}.import-badge{color:var(--text-muted);background:var(--surface-2);border-radius:4px;padding:2px 6px;font-size:11px}.voice-status{border-radius:6px;padding:4px 10px;font-size:13px;font-weight:500}.voice-status.connected{color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent)}.voice-status.disconnected{color:var(--text-muted);background:var(--surface-2)}.voice-hint{text-align:center;color:var(--text-muted);background:var(--surface-2);border-radius:8px;margin-bottom:8px;padding:8px;font-size:13px}.sound-grid.disabled{opacity:.6}@media (width<=768px){.board-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:200px}.sound-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.board-main{padding:16px}header{padding:10px 16px}.guild-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
